



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
程序員面試什么最重要〖摘要〗相信和不少朋友一樣,有了幾年工作經(jīng)驗(yàn)成為Senior后就開始了面試別人的經(jīng)歷。歡迎閱讀關(guān)于面試技巧的文章,小編特別整理了一篇?程序員面試什么最重要》,或許對(duì)你有所啟發(fā),供大家閱讀參考。
程序員面試一直是社區(qū)樂于討論的熱門話題。我自己從06年實(shí)習(xí)以來(lái),先后經(jīng)歷了4家軟件公司,全部是外企,其中有世界500強(qiáng)的通信企業(yè),有從事期權(quán)期貨交易的歐洲中等規(guī)模的金融公司,也有為大型汽車制造商開發(fā)Android智能汽車的新興公司。跨入IT行業(yè)以來(lái),我在求職過(guò)程中經(jīng)歷過(guò)屢次面試,最近兩年也有過(guò)屢次面試別人的經(jīng)驗(yàn)。我感覺現(xiàn)在到了對(duì)這個(gè)問(wèn)題發(fā)表自己看法的時(shí)候,這篇文章是我站在面試官角度對(duì)于程序員面試問(wèn)題的一個(gè)階段性反思和經(jīng)驗(yàn)總結(jié)。
【目標(biāo)】
相信和不少朋友一樣,有了幾年工作經(jīng)驗(yàn)成為Senior后就開始了面試別人的經(jīng)歷。我在最初這個(gè)階段只是按照自己的想象把〞找到根底好的程序員“,〞找到算法能力優(yōu)秀的程序員“,〞找到有Android開發(fā)經(jīng)驗(yàn)的程序員“等作為面試的目標(biāo)。但是,實(shí)際的經(jīng)歷告訴我,尤其是按“根底好〞,“算法好〞這些目標(biāo)招到的人最終效果并不好。比方,有的面試者根底知識(shí)和算法掌握情況不錯(cuò),進(jìn)程、線程、內(nèi)存等概念清晰,根本的Hash,二叉樹,快速排序等數(shù)據(jù)結(jié)構(gòu)和算法也比擬熟悉,但是進(jìn)公司后在實(shí)際工作中表現(xiàn)得很糟糕。后來(lái),我才發(fā)現(xiàn)原來(lái)是我的面試目標(biāo)出了問(wèn)題,我原先的面試辦法更像是大學(xué)的算法或操作系統(tǒng)期末考試,按照這種辦法讓許多并不適宜的人通過(guò)了面試,同時(shí)也可能錯(cuò)過(guò)了許多適宜的人。
后來(lái),我的反思是,從公司的角度講,面試的基本目的是找到"能夠干好工作"的人,而“高學(xué)歷〞,“算法好〞,“根底好〞,“有經(jīng)驗(yàn)〞這些都是表象而不是基本,它們并不能直接和“工作好〞劃等號(hào)。
【辦法】
目標(biāo)明確了,但接下來(lái)的問(wèn)題是若面試者是一個(gè)黑盒系統(tǒng),“工作好〞不是直接可觀測(cè)變量,你所能直接觀測(cè)的變量是根底、算法、經(jīng)驗(yàn)、學(xué)歷、性格、談吐、年齡等等。所以,實(shí)際上,你只能從“根底好〞,“算法好〞等可以直接觀測(cè)的量去推測(cè)“工作好〞的概率,這就是一個(gè)在“X好“條件下"工作好“的條件概率問(wèn)題:P(工作好|X好)。
根據(jù)這個(gè)模型,面試所應(yīng)該考察哪些方面就很明顯了,那就是選擇那種有辨別性的方面來(lái)考察。比方,考察面試者的體型特征沒有太大意義,因?yàn)镻(工作好|高),P(工作好|矮),P(工作好|胖),P(工作好|瘦)的概率都差不多;所以,體型特征不具有辨別性,這不是面試所應(yīng)該關(guān)注的內(nèi)容。
面試官應(yīng)當(dāng)結(jié)合職位的要求明確哪些因素具有比擬好的辨別性。比方,如果要招一名技術(shù)門檻比擬高的3D游戲引擎開發(fā)項(xiàng)目師,面試者A具有3D游戲引擎開發(fā)的經(jīng)驗(yàn),但是在根底知識(shí)和算法面試方面表現(xiàn)一般;面試者B相反,根底知識(shí)和算法面試表現(xiàn)很好,但沒有游戲開發(fā)經(jīng)驗(yàn),而你只能選擇其一。你選誰(shuí)呢《其實(shí),這就是兩個(gè)條件概率問(wèn)題P(工作好|經(jīng)驗(yàn)好,根底一般,算法一般)和P(工作好|沒經(jīng)驗(yàn),根底好,算法好)。這個(gè)問(wèn)題就留給面試官來(lái)判斷了,就我個(gè)人而言,對(duì)于技術(shù)門檻較高需要技術(shù)積累的職位,經(jīng)驗(yàn)更加表明問(wèn)題,因此,我更傾向于面試者A。
下面,我再結(jié)合自己的經(jīng)驗(yàn)談?wù)剬?duì)面試中常見方面的看法。
【算法】
算法是Google和MS等大公司面試所重點(diǎn)考察的內(nèi)容。我個(gè)人很喜歡算法,曾經(jīng)加入ACM/ICPC拿過(guò)北京賽區(qū)的13名。但是,就個(gè)人經(jīng)驗(yàn)來(lái)看,我所接觸過(guò)的絕大多數(shù)開發(fā)職位而言,算法都不適合作為考察面試者優(yōu)劣的主要因素。對(duì)于普通的非算法性開發(fā)職位,考察面試者的算法就相當(dāng)于考察他打乒乓球好不好一樣,與目標(biāo)“工作好〞的相關(guān)性太低。就我個(gè)人的經(jīng)驗(yàn)來(lái)看,差不多P(工作好|算法好)=50%,也就是算法面試沒有太大的辨別性。
甚至,還有一種很不好的情況特別多地出現(xiàn)在算法好的面試者身上,我稱之為“只磨刀,不砍柴〞。什么意思呢《有類人只對(duì)什么A*算法,異步編程,JVM類加載機(jī)制這種純技術(shù)問(wèn)題感興趣,對(duì)實(shí)現(xiàn)用戶需求毫無(wú)興趣。這類人看起來(lái)有一定的技術(shù)能力,但是對(duì)公司來(lái)講奉獻(xiàn)十分有限,甚至不如技術(shù)一般但認(rèn)真負(fù)責(zé)的人。所以,一旦遇到面試者算法好,我就特別留意考察會(huì)不會(huì)是這種“只磨刀,不砍柴〞的人。
另外,雖然我個(gè)人不了解Google和MS,但我對(duì)于其特別重視考察算法能力的面試策略是持疑心態(tài)度的。即使在這樣的大公司,算法雖然重要,但可以想象在工程實(shí)施過(guò)程所遇到的各種各樣問(wèn)題中,算法問(wèn)題絕大多數(shù)時(shí)候不會(huì)是主要瓶頸,沒有到那種需要每個(gè)人都是算法高手的情況。實(shí)際上,絕大多數(shù)工程真正難點(diǎn)并不是一兩個(gè)算法瓶頸,甚至也不是單點(diǎn)的技術(shù)瓶頸,而是系統(tǒng)性的組織、協(xié)調(diào)、設(shè)計(jì)、開發(fā)問(wèn)題,有大量的看起來(lái)不是則有技術(shù)含量的臟活累活,也有許多問(wèn)題是由于信息缺乏,并不是技術(shù)能力強(qiáng)就能克服這些困難。一個(gè)團(tuán)隊(duì)優(yōu)勢(shì)互補(bǔ),有人算法強(qiáng),有人業(yè)務(wù)分析能力強(qiáng),有人擅長(zhǎng)后端效勞,有人擅長(zhǎng)前端界面,有人聰慧,有人踏實(shí),這是的。如果按照“算法好〞的單一規(guī)范選材,必定會(huì)把許多優(yōu)秀的人才拒之門外。
補(bǔ)充:在更多地了解了Google和等一流公司的面試細(xì)節(jié)之后,我對(duì)這個(gè)問(wèn)題的認(rèn)識(shí)有了一定的改變,實(shí)際上這些公司在面試過(guò)程中并不完全強(qiáng)調(diào)技巧性很強(qiáng)的算法,而是更加注重編碼(Coding)能力,只是在進(jìn)行編碼測(cè)試的過(guò)程中往往是通過(guò)一些簡(jiǎn)單算法題來(lái)進(jìn)行的。我對(duì)于這種面試辦法越來(lái)越觀賞,并且也作為了我們公司面試過(guò)程中的重點(diǎn)環(huán)節(jié),因?yàn)榫幋a能力的測(cè)試是十分必要的,它有著知識(shí)性問(wèn)題無(wú)法取代的作用,如果一個(gè)面試者連“判斷一個(gè)字符串是否是另一個(gè)字符串的子串〞這樣的題目都無(wú)法正確并快速地實(shí)現(xiàn),則根本上可以直接排除了。我這里所強(qiáng)調(diào)的是不必考察高難度的算法問(wèn)題,并非不重視編碼能力測(cè)試,請(qǐng)讀者不要誤解。
【根底】
根底面試是指考察諸如指針使用、進(jìn)程線程概念等根底知識(shí)的面試,十分類似于大學(xué)期末考試題。我曾經(jīng)以為根底面試十分重要,但是現(xiàn)在不這么看了。在工作中根底確實(shí)是重要的,但是在面試過(guò)程中,它必須具有辨別性才有意義,也就是說(shuō)P(工作好|根底好)的概率要高,則考察指針使用,進(jìn)程線程區(qū)別這樣的根底題目才有它的意義。我的實(shí)際經(jīng)驗(yàn)是,根底面試并不具有很好的辨別性,和算法一樣,差不多P(工作好|根底好)=50%。同時(shí),根底面試是最容易準(zhǔn)備的,中國(guó)人有長(zhǎng)期的應(yīng)試教育經(jīng)驗(yàn),要準(zhǔn)備幾個(gè)把玩指針題目太容易了。
我曾經(jīng)遇到過(guò)這樣的面試者,他的C語(yǔ)言根底和編譯、鏈接等原理掌握得非常好,給我留下了深刻的印象,我給的面試結(jié)論是:知識(shí)面不寬,只會(huì)C語(yǔ)言,但根底很扎實(shí),倡議錄用。后來(lái)的事情證明了那個(gè)結(jié)論的前半局部是對(duì)的,但是〞倡議錄用“錯(cuò)了。他在實(shí)際工作中表現(xiàn)得一塌糊涂,不理解需求,不理解整體架構(gòu);同時(shí),上班時(shí)間不是花在工程上,而是花在閱讀諸如?程序員的自我涵養(yǎng)》之類的書籍上。最后,這位同事由于長(zhǎng)期“不出活〞離開了公司。
根底不是不重要,而是“根底好〞缺乏以表明面試者能干好工作,因?yàn)楦资菍儆诓糠中灾R(shí),而實(shí)際工作需要綜合性能力,二者有天壤之別。C語(yǔ)言、操作系統(tǒng)能考高分,但是不會(huì)寫程序的人在大學(xué)我們還見得少嗎《軟件開發(fā)就像蓋房子,綜合能力是設(shè)計(jì)和搭骨架,根底知識(shí)是碼磚。張小龍?jiān)菷oxmail是Delphi開發(fā)的,他它不懂C#,你如果要招聘一個(gè)開發(fā)Email客戶端的人,你考察他對(duì)CLR掌握得好不好有意義嗎《讓張小龍來(lái)開發(fā)一個(gè)C#版的Foxmail真的會(huì)有困難嗎《你招一個(gè)精通C#但沒有Email客戶端開發(fā)經(jīng)驗(yàn)的人來(lái)真的比張小龍靠譜嗎《
我說(shuō)根底知識(shí)不重要,和古人說(shuō)的“不積洼步無(wú)以至千里〞是不是矛盾呢《不矛盾!“洼步〞與“千里〞是一種可累加關(guān)系,但再多的“根底知識(shí)〞都累加不成“綜合能力〞。學(xué)習(xí)軟件開發(fā)要像持續(xù)集成一樣,一開始就是一個(gè)完整的系統(tǒng),雖然規(guī)模不大,問(wèn)題很多,但它麻雀雖小五臟俱全,從小系統(tǒng)到大系統(tǒng),從簡(jiǎn)單系統(tǒng)到復(fù)雜系統(tǒng)逐步演化。
所以,根底好本身缺乏以表明太多的問(wèn)題,必須進(jìn)一步考察綜合能力。對(duì)于根底面試表現(xiàn)不好的面試者,如果時(shí)間允許也要進(jìn)一步考察,有的面試者其實(shí)是有能力的,只是沒有進(jìn)行充沛的準(zhǔn)備。最理想的狀態(tài)當(dāng)然是根底和綜合能力俱佳,假設(shè)不能兼顧,應(yīng)當(dāng)綜合能力優(yōu)先。
【經(jīng)驗(yàn)】
這里所說(shuō)的經(jīng)驗(yàn)不是通過(guò)工作了多少年來(lái)衡量的,而主要是指面試者的經(jīng)歷,比方,是否完整地實(shí)現(xiàn)過(guò)一個(gè)軟件,或作為主要開發(fā)者完成過(guò)一個(gè)工程。經(jīng)驗(yàn)的重要性在于它能表明一個(gè)人的綜合能力。從工程的性質(zhì)、規(guī)模和難度,面試官就可以大致判斷出面試者的綜合能力。如果一個(gè)面試者一直在大公司負(fù)責(zé)一個(gè)小模塊的開發(fā)維護(hù),則根本可以判斷他不具備獨(dú)立或作為主要開發(fā)者承當(dāng)一個(gè)工程的能力,只適合在另一家大公司做類似的事情。對(duì)于門檻較高需要長(zhǎng)期技術(shù)積累的職位,相關(guān)經(jīng)驗(yàn)更顯得尤為重要,比方,Linux內(nèi)核開發(fā),JVM開發(fā),游戲引擎開發(fā),數(shù)據(jù)庫(kù)實(shí)現(xiàn),高級(jí)UX等。對(duì)于這類職位,沒有經(jīng)驗(yàn)的面試者即使綜合素質(zhì)不錯(cuò)也是需要長(zhǎng)時(shí)間的學(xué)習(xí)和積累才能勝任。所以,根本上如果確定了你的職位屬于此類,則相關(guān)經(jīng)驗(yàn)毫無(wú)疑問(wèn)應(yīng)該成為首選因素,換句話說(shuō),P(工作好|相關(guān)經(jīng)驗(yàn)好)的概率是非常高的。
通過(guò)工程經(jīng)驗(yàn)判斷面試者的優(yōu)劣比通過(guò)根底和算法測(cè)試更加靠譜,所以,面試過(guò)程中面試官應(yīng)該花比擬多的時(shí)間聽面試者介紹工程經(jīng)驗(yàn),并進(jìn)行深入地探討交流,了解面試者的知識(shí)面、思維能力、敘述能力等。同時(shí),可以結(jié)合工程提一些根底知識(shí)和算法的問(wèn)題,比方,如果面試者做過(guò)C++相關(guān)的工程,那就可以問(wèn)他如何進(jìn)行內(nèi)存管理《是否熟悉智能指針《如果面試者的答復(fù)不能令人稱心,則就根本上可以判斷他的工程做得不是很好。
要注意的是,經(jīng)驗(yàn)也是一個(gè)多維度的事物。比方,C++股票交易中間件系統(tǒng),這就波及(C++,中間件,股票)3個(gè)維度。假如面試者A做過(guò)C++股票交易客戶端,面試者B做過(guò)C的股票交易中間件。從語(yǔ)言角度看,A最匹配,從工程性質(zhì)看,B最匹配,你如何選擇《這就是在多個(gè)維度中,哪個(gè)維
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 換熱站工程合同范本
- 《城市綠地喬木栽植技術(shù)規(guī)程》(征求意見稿)編制說(shuō)明
- 2025年分離鉗行業(yè)深度研究分析報(bào)告
- 合同種類選擇(共6篇)
- Module 2 Unit 1課時(shí)二教學(xué)設(shè)計(jì)-海南???024-2025學(xué)年九年級(jí)上學(xué)期英語(yǔ)
- Starter Unit 3 Welcome!(教學(xué)設(shè)計(jì))2024-2025學(xué)年人教版(2024)七年級(jí)英語(yǔ)上冊(cè)
- 2025至2030年廳堂柜項(xiàng)目投資價(jià)值分析報(bào)告
- 《角的分類》第三課時(shí)(教學(xué)設(shè)計(jì))-2024-2025學(xué)年人教版數(shù)學(xué)四年級(jí)上冊(cè)
- 2025年陶瓷晶體諧振器項(xiàng)目可行性研究報(bào)告
- 2025年銅頭項(xiàng)目可行性研究報(bào)告
- 成人住院患者跌倒風(fēng)險(xiǎn)評(píng)估及預(yù)防,中華護(hù)理學(xué)會(huì)團(tuán)體標(biāo)準(zhǔn)
- 陰式子宮全切術(shù)-手術(shù)室護(hù)理查房
- 職業(yè)健康檢查流程圖
- 提高電費(fèi)回收率(QC)
- EIM Book 1 Unit 7 Learning languages單元知識(shí)要點(diǎn)
- 呼吸系統(tǒng)疾病與麻醉(薛張剛)
- WOMAC骨性關(guān)節(jié)炎指數(shù)評(píng)分表
- CRPS電源設(shè)計(jì)向?qū)?CRPS Design Guide r-2017
- SH/T 1627.1-1996工業(yè)用乙腈
- GB/T 5534-2008動(dòng)植物油脂皂化值的測(cè)定
- GB/T 30797-2014食品用洗滌劑試驗(yàn)方法總砷的測(cè)定
評(píng)論
0/150
提交評(píng)論