① IT面試經驗:程序員面試什麼最重要
程序員面試一直是社區樂於討論的熱門話題。我自己從06年實習以來,先後經歷了4家軟體公司,全部是外企,其中有世界500強的通信企業,有從事期權期貨交易的歐洲中等規模的金融公司,也有為大型汽車製造商開發Android智能汽車的新興公司。跨入IT行業以來,我在求職過程中經歷過多次面試,最近兩年也有過多次面試別人的經驗。我感覺現在到了對這個問題發表自己看法的時候,這篇文章是我站在面試官角度對於程序員面試問題的一個階段性反思和經驗總結。
目標
相信和不少朋友一樣,有了幾年工作經驗成為Senior後就開始了面試別人的經歷。我在最初這個階段只是按照自己的想像把」找到基礎好的程序員「,」找到演算法能力優秀的程序員「,」找到有Android開發經驗的程序員「等作為面試的目標。但是,實際的經歷告訴我,尤其是按「基礎好」,「演算法好」這些目標招到的人最終效果並不好。比如,有的面試者基礎知識和演算法掌握情況不錯,進程、線程、內存等概念清晰,基本的Hash,二叉樹,快速排序等數據結構和演算法也比較熟悉,但是進公司後在實際工作中表現得很糟糕。後來,我才發現原來是我的面試目標出了問題,我原先的面試方法更像是大學的演算法或操作系統期末考試,按照這種方法讓許多並不合適的人通過了面試,同時也可能錯過了許多合適的人。
後來,我的反思是,從公司的角度講,面試的根本目的是找到「能夠干好工作」的人,而「高學歷」,「演算法好」,「基礎好」,「有經驗」這些都是表象而不是根本,它們並不能直接和「工作好」劃等號。
方法
目標明確了,但接下來的問題是假設面試者是一個黑盒系統,「工作好」不是直接可觀測變數,你所能直接觀測的變數是基礎、演算法、經驗、學歷、性格、談吐、年齡等等。所以,實際上,你只能從「基礎好」,「演算法好」等可以直接觀測的量去推測「工作好」的概率,這就是一個在「X好「條件下」工作好「的條件概率問題:P(工作好 | X好)。
根據這個模型,面試所應該考察哪些方面就很明顯了,那就是選擇那種最具有區分性的方面來考察。比如,考察面試者的體型特徵沒有太大意義,因為P(工作好|高),P(工作好|矮),P(工作好|胖),P(工作好|瘦)的概率都差不多;所以,體型特徵不具有區分性,這不是面試所應該關注的內容。
面試官應當結合職位的要求明確哪些因素具有比較好的區分性。比如,如果要招一名技術門檻比較高的3D游戲引擎開發工程師,面試者A具有3D游戲引擎開發的經驗,但是在基礎知識和演算法面試方面表現一般;面試者B相反,基礎知識和演算法面試表現很好,但沒有游戲開發經驗,而你只能選擇其一。你選誰呢?其實,這就是兩個條件概率問題P(工作好|經驗好,基礎一般,演算法一般)和P(工作好|沒經驗,基礎好,演算法好)。這個問題就留給面試官來判斷了,就我個人而言,對於技術門檻較高需要技術積累的職位,經驗更加說明問題,因此,我更傾向於面試者A。
下面,我再結合自己的經驗談談對面試中常見方面的看法。
演算法
演算法是Google和MS等大公司面試所重點考察的內容。我個人很喜歡演算法,曾經參加ACM/ICPC拿過北京賽區的13名。但是,就個人經驗來看,我所接觸過的絕大多數開發職位而言,演算法都不適合作為考察面試者優劣的主要因素。對於普通的非演算法性開發職位,考察面試者的演算法就相當於考察他打乒乓球好不好一樣,與目標「工作好」的相關性太低。就我個人的經驗來看,差不多P(工作好|演算法好)=50%,也就是演算法面試沒有太大的區分性。
甚至,還有一種很不好的情況特別多地出現在演算法好的面試者身上,我稱之為「只磨刀,不砍柴」。什麼意思呢?有類人只對什麼A*演算法,非同步編程,JVM類載入機制這種純技術問題感興趣,對實現用戶需求毫無興趣。這類人看起來有一定的技術能力,但是對公司來講貢獻十分有限,甚至不如技術一般但認真負責的人。所以,一旦遇到面試者演算法好,我就特別留意考察會不會是這種「只磨刀,不砍柴」的人。
另外,雖然我個人不了解Google和MS,但我對於其特別重視考察演算法能力的面試策略是持懷疑態度的。即使在這樣的世界級大公司,演算法雖然重要,但可以想像在項目實施過程所遇到的各種各樣問題中,演算法問題絕大多數時候不會是主要瓶頸,沒有到那種需要每個人都是演算法高手的情況。實際上,絕大多數項目真正難點並不是一兩個演算法瓶頸,甚至也不是單點的技術瓶頸,而是系統性的組織、協調、設計、開發問題,有大量的看起來不是那麼有技術含量的臟活累活,也有許多問題是由於信息不足,並不是技術能力強就能克服這些困難。一個團隊最好優勢互補,有人演算法強,有人業務分析能力強,有人擅長後端服務,有人擅長前端界面,有人聰明,有人踏實,這是最好的。如果按照「演算法好」的單一標准選材,必定會把許多優秀的人才拒之門外。
基礎
基礎面試是指考察諸如指針使用、進程線程概念等基礎知識的面試,十分類似於大學期末考試題。我曾經以為基礎面試十分重要,但是現在不這么看了。在工作中基礎的確是重要的,但是在面試過程中,它必須具有區分性才有意義,也就是說P(工作好|基礎好)的概率要高,那麼考察指針使用,進程線程區別這樣的基礎題目才有它的意義。我的實際經驗是,基礎面試並不具有很好的區分性,和演算法一樣, 差不多P(工作好|基礎好) = 50%。同時,基礎面試是最容易准備的,中國人有長期的應試教育經驗,要准備幾個把玩指針題目太容易了。
我曾經遇到過這樣的面試者,他的C語言基礎和編譯、鏈接等原理掌握得非常好,給我留下了深刻的印象,我給的面試結論是:知識面不寬,只會C語言,但基礎很扎實,建議錄用。後來的事情證明了那個結論的前半部分是對的,但是」建議錄用「錯了。他在實際工作中表現得一塌糊塗,不理解需求,不理解整體架構;同時,上班時間不是花在項目上,而是花在閱讀諸如《程序員的自我修養》之類的書籍上。最後,這位同事由於長期「不出活」離開了公司。
基礎不是不重要,而是「基礎好」不足以說明面試者能幹好工作,因為基礎是屬於局部性知識,而實際工作需要綜合性能力,二者有天壤之別。C語言、操作系統能考高分,但是不會寫程序的人在大學我們還見得少嗎? 軟體開發就像蓋房子,綜合能力是設計和搭骨架,基礎知識是碼磚。張小龍原先Foxmail是Delphi開發的,他它不懂C#,你如果要招聘一個開發.NET Email客戶端的人,你考察他對CLR掌握得好不好有意義嗎? 讓張小龍來開發一個C#版的Foxmail真的會有困難嗎? 你招一個精通C#但沒有Email客戶端開發經驗的人來真的比張小龍靠譜嗎?
我說基礎知識不重要,和古人說的「不積窪步無以至千里」是不是矛盾呢?不矛盾!「窪步」與「千里」是一種可累加關系,但再多的「基礎知識」都累加不成「綜合能力」。學習軟體開發要像持續集成一樣,一開始就是一個完整的系統,雖然規模不大,問題很多,但它麻雀雖小五臟俱全,從小系統到大系統,從簡單系統到復雜系統逐步演化。
所以,基礎好本身不足以說明太多的問題,必須進一步考察綜合能力。對於基礎面試表現不好的面試者,如果時間允許也要進一步考察,有的面試者其實是有能力的,只是沒有進行充分的准備。最理想的狀態當然是基礎和綜合能力俱佳,若不能兼顧,應當綜合能力優先。
經驗
這里所說的經驗不是通過工作了多少年來衡量的,而主要是指面試者的經歷,比如,是否完整地實現過一個軟體,或作為主要開發者完成過一個項目。經驗的重要性在於它能說明一個人的綜合能力。從項目的性質、規模和難度,面試官就可以大致判斷出面試者的綜合能力。如果一個面試者一直在大公司負責一個小模塊的開發維護,那麼基本可以判斷他不具備獨立或作為主要開發者承擔一個項目的能力,只適合在另一家大公司做類似的事情。對於門檻較高需要長期技術積累的職位,相關經驗更顯得尤為重要,比如,Linux內核開發,JVM開發,游戲引擎開發,資料庫實現,高級UX等。對於這類職位,沒有經驗的面試者即使綜合素質不錯也是需要長時間的學習和積累才能勝任。所以,基本上如果確定了你的職位屬於此類,那麼相關經驗毫無疑問應該成為首選因素,換句話說,P(工作好 | 相關經驗好)的概率是非常高的。
通過項目經驗判斷面試者的優劣比通過基礎和演算法測試更加靠譜,所以,面試過程中面試官應該花比較多的時間聽面試者介紹項目經驗,並進行深入地探討交流,了解面試者的知識面、思維能力、表達能力等。同時,可以結合項目提一些基礎知識和演算法的問題,比如,如果面試者做過C++相關的項目,那就可以問他如何進行內存管理?是否熟悉智能指針?如果面試者的回答不能令人滿意,那麼就基本上可以判斷他的項目做得不是很好。
要注意的是,經驗也是一個多維度的事物。比如,C++股票交易中間件系統,這就涉及(C++,中間件,股票) 3個維度。假如面試者A做過C++股票交易客戶端,面試者B做過C的股票交易中間件。從語言角度看,A最匹配,從項目性質看,B最匹配,你如何選擇?這就是在多個維度中,哪個維度更重要的問題,就這個例子而言,我個人更傾向於B,因為我認為中間件開發經驗是主要矛盾,而從C切換到C++並不是問題。所以,面試官需要判斷哪一種經驗是主要的,而哪一種經驗是次要的。比如,我們招聘Android應用開發,這個職位的Android技術門檻並不高,它的真正難點在於做出好的用戶體驗(UX)。所以,如果一個面試者沒有Android的經驗我們是可以接受的,但是我希望他在UX方面有經驗,至少做過其他平台的移動應用開發。
性格
現在,我來談我認為最重要的因素:性格。這可能是許多初為面試官的朋友所難以想像的,怎麼會是性格最重要呢?說實話,當我意識到這一點時,我自己也很驚訝!說白了,還是 P(工作好|性格好)的概率最高啊。我的實際經驗是,如果一個人的性格好,他能把工作做好的可能性是最高的,性格好遠比基礎好、演算法好要靠譜。
一個人如果技術上有缺陷,經驗上有不足,但性格好,在團隊中是很容易由其他人來補位的,他自己也很容易逐漸補起來;相反,如果一個人的性格不好,所有的技術優勢經驗優勢都發揮不出來,甚至還會起到負作用,而且性格缺點很難改變。我一直談到實際工作所需要的是綜合性的能力,這種綜合能力的發揮中性格是至關重要的。項目中不止會遇到技術問題,要涉及溝通、協調,不同的人不同的部門既有合作又有磨擦,如何處理這些事情都需要一個良好的性格。可以說,在開發團隊里讓你與眾不同的不是你從哪個學校畢業,也不是你過去的經驗,而是你的性格。
當然,性格是一個復雜的東西,它包含了很多的方面,並非所有方面都是程序員面試所需要關注的。我的經驗是可以重點考察這些方面:
1) 態度積極還是消極。有的面試者在談吐中就會自然給你一種積極上進的感覺,或者你可以在他的經歷中發現他積極的因素,這些都不是太難看出來的。相反,有的面試者你能明顯感覺到他的消極情緒。積極性在工作中是十分重要的,積極的人能給團隊帶來朝氣,也更易於合作。基本上,如果確定面試者屬於態度積極的,他通過我這一關的可能性就會大大增加;相反,如果確定屬於態度消極的,即使技術能力不錯我也會十分謹慎。
2) IQ。我的經驗是,總體來看,聰明的人在工作中的表現更為優秀。在面試中要考察一個人是否聰明並不一定要像Google和MS那樣找些專門測試IQ的智力題,其實,你只需要看他討論問題是不是很有邏輯性,思考和說話是不是反應敏捷就可以做出大致的判斷。另外,眼睛是人心靈的窗戶,一個人聰明與否,眼睛是會說話的。不過,聰明也不完全是優點,比如,當公司或項目遇到困難時,往往是聰明人先跑掉了,堅守的往往是IQ一般的人。
3) 語言表達能力。語言表達能力也是程序員十分重要的一項素質,它關繫到項目中的溝通是否順暢。面試官可以看看面試者能否用簡明的語言介紹清楚曾經做過的項目,能否抓住要點,能否考慮到聽者的相關背景。一般來講,語言表達能力強的人綜合能力都不會太差。
4) 是否具有用戶意識。有人說程序員是做研發的,哪來什麼用戶?只有銷售、市場人員才會和用戶打交道。其實,這是完完全全的錯誤認識。你寫一個模塊,甚至一個API,只要有別人用,他就是你的用戶。有的程序員設計一個模塊或是一個軟體總是習慣於從使用者的角度來考慮,盡量地方便使用者,這就是一種良好的用戶意識。具有良好的用戶意識的人更能考慮別人的感受和整體的需要,而不是單純地從自己和局部來思考問題。當面試者談及過去的項目經驗時,面試官可以常常站在用戶的角度對其進行提問,從這個過程中觀察其是否具有良好的用戶意識。
5) 如何應對質疑和壓力。面試官應該對面試者的回答以及以往項目進行合理的質疑,看看他如何應對。曾經有一位面試者談到做游戲登錄伺服器的經歷,我就問:「如果登錄伺服器掛了,怎麼辦呢」?他說原先雖然沒有考慮這個問題,但是可以怎麼怎麼改進。其實,大家都理解項目中有各種不完美,這裡面原因很多,只要面對質疑和壓力能從容應對努力往好的方向思考解決就可以了,不需要掩飾缺陷,更不應該有情緒。我遇到過有的面試者,一旦你對其項目提出質疑,他馬上產生反抗情緒,或不高興,或不承認有問題,這很容易一下子看出來他在工作中容不得質疑和批評,這種人要想合作就很困難。
6) 個性特點。許多面試者喜歡在簡歷上寫「精通C++/Linux「,這些字眼看得人麻木,如果有人寫」喜歡C++/Linux「,我就會有一種眼前一亮的感覺。「精通」是沒有感情色彩的敘述,而「喜歡」包含了面試者的個性,我更願意看到面試者的個性。我相信對某樣東西真正的熱情遠比你當前對它的掌握程度更為重要。其實,N年的經歷告訴我們,同一個班的同學,同一個項目組的同事,雖然每天所學的知識,所接觸的工作都是相同的,但其實每個人的成績和表現差異是十分明顯的。那麼,到底本質的差異是什麼呢?其實,就是每個人的個性。是個性使得有的人業余時間去打球,有的人業余時間去看書,有的人喜歡Linux,有的人喜歡Mac。一個人在團隊中扮演的角色也和他的個性有很大的關系。面試官應該引導面試者展現自己的個性,並判斷其是否有益於團隊。
總結
最後總結起來,我的經驗是: 1) 面試官的目標是找到」工作好「的人,一定要圍繞這個目標來進行面試,如果把面試當成了演算法或操作系統期末考試這就走入了誤區;2) 面試過程是通過學歷、性格、基礎、經驗、演算法等可以測試的因素去綜合判斷面試者「工作好」的概率;3) 在各種因素中,性格 > 經驗 > 基礎 > 演算法。性格是最重要的,如果性格不好,所有技術能力都會大打折扣,而且技術缺陷容易彌補,性格缺陷很難改變;經驗體現了一個人的綜合能力,你可以從面試者過去的經歷中判斷他能從事哪種工作,不能從事哪種工作;基礎和演算法則主要起到輔助參考的作用,基礎好的程序員一般適應性比較強,學新技術更快,但是切忌單純從基礎來判斷一個人的能力。
② 面試中的優缺點程序員面試什麼最重要
一般來說程序員面試靠弊喚的是技術,你去了手寫代碼或者代碼分析要能把他拿下,這就差不多了,當然如果你面對的是人事部不懂程序的,多給他展示一下自己的工作經驗和成果,適時透露出自己悉卜弊在貴公司的發展規睜族劃和忠誠度,都可以
③ 企業需要什麼樣的程序員
我們很多學習Java真的不是為了夢想,不是愛好,僅僅是成為拿到高薪的那個人,成為同學里賺的最多的人,成為別人嘴裡談著的那個人。
Java程序員高薪
Java程序員工資真的高,並且一直居高不下,北京程序員平均工資是13K。而且隨著閱歷的不斷積累,成為資深工程師,工資更會成倍的增長,更加搶手,有回報的工作才會有更多的人去追逐。
那麼企業招什麼樣的Java程序員呢?
收獲心儀的offer,拿到滿意的薪資,找到一份安身立命的工作,是很多Java准從業者的第一個步驟,今天北大青鳥來說下企業針對程序員最看重哪些,程序員不僅要求技術過硬,對軟實力也有一定的考核,請看以下總結:
01、熟悉JavaScript
毫無懸念,Java排在了第一位。JavaScript是目前最受招聘公司追捧的技能,被認為是當今市場中高度可移植的寶貴技能。如果這項基本能力不具備的話,作為程序員可能會被無限鄙視吧。所以,面試之前,必須重溫Java,這是必考項。
02、了解大數據
近年來,大數據的概念被越來越多的公司提及。不僅互聯網前源公司,傳統行業例如教育和服務行業例如健身機構,都在著手做大數據。大數據就要求慶培存儲匯總工具穩定,並且有一定的商業分析能力,可能還需要准備一些數據讀取、交互、轉移甚至是出現遺漏等問題的解決方案。小編認為,大數據的考核不僅僅是技術,還包含對程序員眼界以及IT靈敏度的測試。
03、掌握全棧
越是頂級的公司對這一要求越高,這也是對程序員綜合素質的考核,在小編看來,這類程序員的晉升可能性也是最大,一專多能是每個公司都渴求的人才。
04、我了解多種語言
沒錯,前幾年的招聘基本都是Java和C語言,但是隨著近幾年經濟衰退,不少人發現,很多公司在招程序員的時候會要求會用RubyonRails,Python/Django,Node.js,以及在出現的函數式編程語言中,慧差態Scala是最普遍的。
05、安全性
根據研究報告,去年深受安全漏洞之害的公司知道2023年什麼技術對他們而言是最有用的。隨著雲計算使用的增長,安全性和合規性越來越為組織所擔憂,這導致了對安全,合規,治理和數據管理專家的需求熱潮。
06、轉到移動端
有沒有發現,地鐵、商場、餐廳、超市等等,所有場合,無論是瀏覽新聞、視頻,還是購物支付,還是出門打車,只要一部手機,全部搞定。現在人們對手機的依賴達到了史無前例的最高點,移動開發者備受追捧,尤其是那些可以廣泛發布自己作品的開發人員。要成為一個成功的移動開發者不是通過特定的技術技能來實現的,而是通過商務頭腦實現的。
編寫代碼僅僅是項目的第一階段。昌平鎮北大青鳥認為知道如何推廣移動app,如何吸引和留住客戶,才是成功的推動力。
④ 程序員的成功面試技巧
程序員的成功面試技巧
程序員的成功面試技巧,程序員在近幾年來是很熱門的一個職位,因為在很多人眼裡程序員的收入是很高的,程序員想要工資高在面試的時候也是很講究技巧的,下面分享程序員的成功面試技巧?
1、給自己寫一份非常專業的簡歷
我的建議是,如果你想增加自己的入選機會,那最好還是花點錢製作遲凳一份專業的簡歷。相較於你將來可能得到的巨大收獲,這真的只是一個小小的投資。
2、研究面試官
當我聯系程序員來面試的時候,我總是會事先發電子郵件給他,並附上我的名字和博客地址。但是讓我驚訝的是,當我給他面試的時候,他竟然對我還是一無所知。
再舉個正面的例子,我在面試時也碰到過這類開發人員,甚至能對我以前寫的一篇博客或者做的教學視頻上面的內容侃侃而談。
你說我會推薦哪個?
面試官也是人,也會有人性的弱點和特點。Dale Carnegie曾說過,要讓別人對你感興趣,最簡單的方法就是你先表達出對對方的興趣。
不管這種方法是否有欠公正,但是如果你想面試成功,那麼我建議你事先最好先好好研究一下你應聘的這家公司和面試官(如果知道的話)。
當今社會的信息是如此的發達,我們完全可以在Facebook、Twitter、微博、博客上找到任何人的資料。即使你只是大致瀏覽一番,也會讓你受益良多。
3、獲得內部推薦
知道找工作最簡單的方法是什麼嗎?那就是獲得內部推薦。
這不但可以增加面試機會,還能提升40%的錄用幾率。
前陣子,我找到了一家心儀的公司。然後直接投簡歷?NONO,猜猜我是怎麼做的吧?
首先我找到一名和我有共同想法和意見的開發人員,然後開始關注他的博客。
接著我在他的博客中留言、發表建議,並且表現出對他的工作和公司非常感興趣的想法。最後我成功拿到了這個寶貴的內部推薦資格。
很多程序員會說,「可是,某某某公司裡面的人我一個也不認識啊」。如果你想就此放棄,那當我什麼也沒說,如果你願意試試,我敢打賭,你總能想出一種方法達到你的目的。
不過這有個秘訣,那就是首先你得在網上創建自己的「名片」——讓別人有了解你的機會,所以do it now吧。
4、 學會解決演算法問題
這是每一個開發人員都應該具備的重要技能,而且真要掌握起來也並非那麼難。
在很多面試中,都會有這樣的問題,要求你在白板或者電腦上解決編程問題,但是許多程序員,即使是那些非常優秀的程序員,都會一下子大腦一片空白,完全理不出思路來。
如果你能花時間學會如何解決這種類型的面試問題,那麼下次再碰到這種場景,就不會這么緊張了。
我們會緊張其實和怯場無關,主要是因為我們不熟悉這些問題,也沒有自信能解決這種問題。
在這方面建立起自信之後,你就再也不會緊張了。
5、活力洋溢地回答問題
只用一個字或者一句話,照本宣科平平無奇地回答問題,或許在技術上是正確的,但是你忘了應該藉此機會好好展示自己的激情——這才是一個開發人員能帶給團隊的最大正能量。
舉個例子說,如果我問你什麼是多態性,我不是要你按照課本中的定義重復給我聽,我希望你能就這個主題闡述一下,然後我們可以更深入地聊一聊。
6、小心「陷阱」問題
你為什麼換工作?
說說你最大的優點和缺點。
最近一次你是如何解決和同事之間發生的技術分歧的?
在回答問題之前,你最好明白面試官問這些問題的目的,掌握如何回答這類問題的技巧。
就先說說第一個問題吧「你為什麼換工作?」
侍坦在大多數情況下,面試官想知道的是你是否是一個愛說三道四、慣於誹謗抨擊僱主的人。所以千萬不要上當。
7、永遠不要撒謊
最糟糕的事就是在面試的時候撒謊。
知之為知之,不知為不知,如果你確實不知道,千萬不要自作聰明來編造問題的答案。
相反,你應該誠實地說,你不知道或者你並不是100%肯定,但是你願意嘗試一下,然後再講講自己的想法。碼談旅講完之後也可以問面試官正確答案是什麼,以顯示你對此非常感興趣。
實話告訴你,大多數面試官問的問題都是他們知道的問題,不然如果你濫竽充數給你通過的話就會顯得他們像個傻瓜。所以千萬不要抱著僥幸心理,一旦發現你在撒謊,面試官馬上就會質疑你的人品。
8、不要太誠實
很多程序員會過多地透露自己的信息,不要以為誠實和完全透明就是最好的政策,殊不知過猶不及。
第7條所說的不可撒謊誠然不錯,但是我們也沒必要將自己所有生活的細節和所有缺點都告訴給面試官。
有個性是好的,但是如果暴露了性格缺陷就壞事了。
試想一下,要是你說自己喜歡賭博或者沉迷於魔獸世界,我敢打賭,面試官肯定會重新審視你。所以在說自己信息的時候一定要慎重,因為這不但會暴露你的缺陷,還會顯得你缺乏應有的.判斷力。
9、掌握計算機科學的基礎知識
是的,很多程序員在面試的時候,甚至理直氣壯地說,他們不知道鏈表和堆棧,因為他們沒有受到正規教育或者早就還給老師了。
我也承認我們在工作的時候是用不到那些深層次的計算機科學概念的,但是作為一個專業的軟體開發人員,你至少應該知道一些基本知識。
舉個例子說吧,你請電工來重新給你家的房子布線,但是這電工一點也不知道任何電氣工程的基本知識,你還請他干不?同理,我們也是如此。
10、關於經驗
這是最後一點,但並非最不重要的,很多開發人員,特別是剛進入這一行的新手,往往缺乏相關的經驗,也不知道如何增加所謂的工作經驗。
這有點像是雞和蛋哪個先出現的問題。
那麼又該如何增加經驗呢?
關鍵是要用創造性的方式。有很多方法都可以獲得工作經驗,但是卻不必真正去一家公司上班。
給你點提示:
參加開源項目
啟動開源項目
做一個移動app,放到App Store里
寫一個小型的Web應用程序
參與代碼交流和用戶組
這些方式都可以作為工作經驗寫到簡歷中去,只要自己有想法,不愁沒經驗。
希望這些技巧能對各位有所裨益。如有不同想法,也請不吝賜教。
程序員的中年危機是什麼
中年程序員危機
近日,中興網信員工歐某打開26樓辦公室窗戶縱身躍下,結束了42歲的生命。
目前有多種說法,有說因股份轉讓價過低和人事部產生分歧,有說疑因內部宮斗被離職,甚至還有消息說歐有精神方面的問題。
盡管具體原因仍待進一步的核實,但卻由此引發網上一波關於中年職場危機,特別是中年程序員危機的討論。
一般來說,一個行業的收縮導致人員數量與結構的調整,大致可以用一個簡單的模型來描述:行業規模縮減,行業人員減少,公司數量減少或規模縮減,進而導致管理層崗位變少,原本的管理層,被迫降至轉入下一級崗位。
這種降崗機制層層傳遞,高層降為中層,中層降為基礎管理崗,基礎管理崗降為一線員工。與此同時,由於行業規模的縮減,一線員工數量也在減少。
於是,一線員工失業,同時,停止招收該行業的新畢業生。在這個模型中,一般來說,即便行業收縮,中層也不用愁就業,仍可留在本行業中,最壞也不過是降崗。
中年人學習能力下降明顯
不過,在程序員行業中,有一些特別的因素,導致了其不同於一般行業的現象。
35-45歲的中年人,學習能力下降明顯。與此同時,這是一個新技術不斷涌現的時代。
一個人進入職場初期的技能、概念,過了20年後,已經完全不一樣了。程序員這個行業,更是把這個特點發揮到極致。
此外,精力明顯下降,不能熬夜,加之家務瑣事纏身,高強度工作即便有意願也很難付諸行動。
如果說其他行業的中層人員降級後仍可游刃有餘的話,這個行業的中層降崗後,會不如自己新崗位上的同事。
所以,程序員密集的IT、通訊行業,很多中層員工就處於一個很尷尬的地位。即便勉為其難地接受,也會面臨收入大幅度下降的心理適應問題。
如果考慮到資產配置中較高的按揭比例,當資金鏈斷掉,這就成為不可承受之重。
⑤ 程序員面試有哪些技巧
不管你是職場老手還是菜鳥,掌握Java程序員面試的技巧是很有必要的,今天跟隨昌平鎮IT培訓一起來了解一下。
Java程序員面試時該有的技巧
一份專業簡歷很重要
在這里小編給你的建議是:如果你想提高自己的入選機會,那最好還是花點心思製作一份專業的簡歷,相較於你將來可能得到的巨大收獲,這一點時間還是可以流失的。
了解你所要面試的企業
我們來舉個例子:就拿我們的面試來說,會事先發電子郵件給面試者,並附上動力節點的名字和博客地址。但是讓我驚訝的是,當我給他面試的時候,他竟然對我們還是一無所知。
我們在來舉例正面例子:我們在面試時也碰到過這類Java開發人員,他能對我們官網以前寫的一篇博客或者做的教學視頻上面的內容侃侃而談。(相比而言,你說我會選擇哪個?要讓別差爛漏人對你感興趣,最簡單的方法就是你先表達出對對方的興趣。不管這種方法是否有欠公正,但是如果你想面試成功,那麼小編建議你事先了解一下你應聘的這家公司)。
當今社會的信息是如此的發達,我們完全可以在Facebook、Twitter、微博、博客上找到任何公司的資料。即使你只是大致瀏覽一番,也會讓你受益良多。
不要在面試官面前撒謊
知之為知之,不知為不知,如果你確實不知道,千萬不要自作聰明來編造問題的答案。
相反,你應該誠實的說,你不知道或者你並不是百分百的肯定,但是你願意嘗試一下,然後再講講自己的想法,講完後也可以問面試官正確答案是什麼,從而顯示你對此非常感興趣。
一般來講,面試官問的問題大多都是他們知道的問題如果你濫竽充數抱著僥幸心理,一旦被發現,面試官馬上會質疑你的人品
學會解決演算法問題
這是每一個開發人員都應該具備的重要技能,而且真要掌握起來也並不是那麼難
在很多面試中,都會有這樣的問題,要求你在白板或者電腦上解決軟體編程問題,但是許多程序員,即使是那些非常優秀的程序員,都會一下子大腦一片空白,完全理不出思路來。如果你能花時間學會如何解決這種類型的面試問題,那麼下次再碰到這種場景,就不會這么緊張了。我們會緊張其實和怯場無關,主要是因為我們不熟悉這些歷虧問題,也沒有自信能解決這種問題。在這方面建立起自信之後,你就再也不會緊張了。
活力洋溢地回答問題
只用一個字或者一句話,照本宣科平平無奇地回答問題,或許在技術上是正確的,虛爛但是你忘了應該藉此機會好好展示自己的激情——這才是一個開發人員能帶給團隊的最大正能量。
⑥ 什麼樣的程序員最搶手,什麼樣的程序員漲薪最多
首先,我們來看影響程序員漲薪的因素。
一、 什麼樣的程序員漲薪最多?
安卓、iOS、Web前端薪資漲幅都較其他語言要高。對單個程序員來說,想要獲得較高的薪資漲幅,選定熱門的語言與工作地是成功的基石。
二、 什麼樣的程序員最搶手?
最直接相關的兩個因素是:使用的編程語言與工作的城市。
移動開發與Web前端的需求量很大,所以這一類程序員能拿到更多的面試邀請。
而北京互聯網行業更加發達,所以北京的程序員也更加搶手。
負相關的兩個因素是:工作年限與求職的主動性。每個主動求職者平均收到5.6個面試offer,被動求職者則為8.4個,說明被動求職者正是因為具有市場上更為緊缺的技能所以不會急於換工作。
工作年限在5年以上的程序員收到的面試邀請沒有剛工作2年左右的程序員多。我覺得這主要是因為適合有豐富工作經驗的程序員的工作機會更少。
三、互聯網公司如何招聘好的人才?
首先看看薪資這個因素:
1、最有效的薪資漲幅應該在10%-60%間,這個區間的offer程序員很容易接受;同時,程序員對>60%的薪資漲幅並沒有表現出相應明顯更高的接受率。可能的原因是,此類offer多由金融或傳統行業中的土豪轉型互聯網後開出,程序員未必感冒。 土豪們要加油了。
備註:圖中「橫坐標0.6 ~ 2」表示offer 薪資與目前薪資的比例,即0.6表示offer 薪資是目前薪資的0.6倍。
2、從面試邀請的分布來看,還是較符合正態分布的。
其次,公司需要至少考慮兩個問題:
♦ 誰來發offer ?專業的HR,還是上級工程師,亦或是CEO、CTO親自上場?
♦ 怎樣發offer?面試邀請寫些什麼內容呢,以情動人,還是拿錢砸人?
從結果看,個性的面試邀約與合適的薪資是影響最大的因素。個性的面試邀請,既能完美展現公司的實力,又體現了對對方的足夠重視和強烈的需求。在我看過的面試邀請中不乏印象深刻的offer,或高貴冷艷、或賣萌 搞笑 、或文采飛揚。
以後我也會在招聘上足夠重視每個求職者,在時間允許的情況下,給他們開出屬於自己的個性面試邀請。
比較令我吃驚並不敢相信的是,來自工程師/co-founder發出的面試邀請居然是負面影響的,能想到的唯一理由是,很多CEO或CTO還處於初創無助期,So Sad…
最後,就是程序員拒絕的理由:
大多數拒絕理由與錢無關!
⑦ 你要面試一個程序員,應該問他什麼問題
首先面試程序員分有沒有經驗
面試沒有經驗的程序員就隨便問問點ssm,ssh五大框架問題,多線程什麼的,再問問是否會點前端技術
有經驗就看看他的簡歷,問他簡歷項目上的問題,可以圍繞著簡歷上的項目問,通過他的回答涉及到的技術點之類的,拓展出去問其他的
⑧ 程序員應該怎樣去面試 程序員面試注意事項
程序員面試注意事項如下。
1、呈現出自己完整的知識結構。
對於程序員來說,最重要的一件事情就是在短短的面試過程中呈現出自己完整的知識結構。要想做到這一點,一定要在自我介紹的過程中下足功夫,既簡練又豐富,引起面試官的重視。
2、重視項目經驗的介紹。
無論是應聘初級程序員還是主力程序員,項目經驗都是面試官最為關注的內容之一,也是面試者能力的衡量標准之一。在項目介紹的時候要選擇比較有代表性的項目,簡單的說就是規模越大越好,參與程度越深越好。能夠清晰的描述自己在項目中的工作職責和最終的完成情況。
3、重視解決問題的能力。
通過一個具體的難點問題如何解決來呈現自己解決問題的能力,這種做法更有說服力,而且盡量突出重點內容,比如演算法設計、實現過程、驗證過程等內容,解決問題的能力是主力程序員的核心競爭力之一。
4、突出自己的學習能力。
程序員在整個職業生涯中需要不斷的學習,因為整個IT領域的技術更新速度是比較快的,面試官往往對程序員的學習能力比較關注,可以通過不同的項目採用不同的技術方案來體現自己較強的學習能力。
5、體現出自己的交流能力。
交流能力對於程序員來說也是非常重要的,項目開發過程中需要頻繁的交流,所以交流能力也是面試官比較關注的方面之一。體現交流能力的關鍵是把握住交流的主線,所有的思路要緊緊圍繞核心問題,盡量不要做過多的擴展,這樣容易顧此失彼。
6、描述自己的職業規劃。
一個好的職業規劃會給面試官留下一個好印象,也會為自己爭取到更好的職位奠定一個基礎。
⑨ 程序員個性面試
程序員個性面試
程序員個性面試,面試都是龍爭虎鬥的,人外有人天外有天,把自己有優秀的一面在面試官面前展示出來,關鍵是要做好自己的本職工作,如果遇到不合理的面試要求要學會拒絕,程序員個性面試,你學會了嗎?
考官好,我是計算機專業的面試者xxx,侍晌轎我此次應聘的職位是IT行業的軟體工程師,這份工作不僅與我的專業對口,同時也是我的特長與興趣所在。現在我就從以下三個方面介紹自己:
1、學習能力:我有較強的科研能力,能熟練的進行Windows2000和LINUX操作,並能使用VB,DELPHI等語言編程。能運用網頁三劍客Photoshop軟體進行相關工作。
2、實踐能力:我的專長是軟體開發,我希望能從事這方面的工作經驗,並且我曾經發過多個系統,如人事檔案管理系統,工資管理系統等等。
3、交際能力:我的性格沉穩,能坐得住,對IT行業的工作,具有非常好的適應能力,而且為人謙和,具有很強的組織和協調能力 ,富有的事業心和責任感使我能夠面對任何困難和挑戰。
從以上的簡單自我介紹,我希望公司能給我一個展示自己能力的機會,讓我我可以學以致用,同時我也很欣賞XX公司的企業文化與工作環境。我願意成為企業一員,為企業的發展貢獻自己的一份力量。 我的職業生涯目標是,做一個既懂技術,又懂業務的復合型人才。
您好!我是一名即將於xxxx年畢業的xx大學xx學院學生,所學專業是計算機。大學四年來,我學習刻苦,成績優異,曾多次獲得獎學金。在師友的嚴格教益和個人努力下,我具備了扎實的基礎知識。在軟體方面,系統掌握了C語言,數據結構,資料庫原理,匯編語言,老肆軟體工程等,並對面向對象的DELPHI和VC等Windows編程有一定了解。課外我還自學了VBVF編程,ASP動態網頁及SQL Server等網路資料庫編程語言。現已能獨立編寫專業的資料庫管理系統。在硬體方面,通過參與單片機設計,組裝收音機,網路工程的`規劃與管理及組建等實踐活動,我掌握了計算機的工作原理及計算機網路原理技術。
自入校以來,我充分利用謹寬業余時間廣泛的參加社會實踐活動。在我校信息學院計算機實驗室工作的兩年裡,不但使我的專業技能得到了升華,也使我的管理和組織才能得以發揮和進一步的鍛煉,得到了領導和老師的肯定和表揚。而且,曾經在歐亞科技等一些公司的打工經歷使我具有一定的營銷經驗和社會經歷,且業績斐然。除此之外,在校期間,我還做過家教、社會調查等社會實踐活動,積累了豐富的實踐經驗。
若有幸加盟,我可以致力於貴公司的軟體開發或根據公司的需要隨時致力於某方面的工作和學習。「順兮,逆兮,無阻我飛揚」是我的座右銘;「如臨深淵,如履薄冰」是我的工作態度;「真誠,守信」是我的最大特點;開闊的胸襟使我獲得許多朋友。聰明的頭腦,創造的思維,開拓進取的堅韌,加上純熟的專業技能,相信我是您的最佳選擇。
你好!我叫xx,我是一名即將畢業本科學生,我的專業特長是:能熟練地運用編程工具Eclipse開發應用軟體,熟悉C,Java,SQL,Oracle,JSP,SSH等,SQLServer20xx的操作。熟悉dreamweaver等工具編排和快速製作網頁。對Internet有一定的使用經驗和理解。
對於軟體測試技術,軟體質量保證以及軟體項目管理有一定的了解。我力求上進、吃苦耐勞,勤奮工作,我通過積極參與社會實踐活動,鍛煉了我組織、管理和交際的能力,培養了我全面的綜合素質。這一切賦予了我作為當代青年所必備的能力、膽識和責任心,也磨練了我吃苦耐勞的精神和了解了為人處世的道理。我會盡我所能為公司服務,把公司的事當作自己的事處理。我希望在新的崗位中發揮我的創造性、積極性,用我所學,為您所用。我相信沒有最好,只有更好,在您的信任和培養下我堅信我會做得更好!