版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
我面試程序員的經(jīng)驗一個能一網(wǎng)打盡的技術(shù)問題資料僅供參考我面試程序員的經(jīng)驗:一個能一網(wǎng)打盡的技術(shù)問題-09-0114:52佚名techug字號:T|T我始終相信,一個熱愛編程的人不會只在工作中編程,在家中她們也會繼續(xù)創(chuàng)造樂趣,這是一種愛好。多少次,我在工作中因為蛋疼的Eclipse而感到失望,只能在我回家后,寫RubyonRails代碼尋找快樂,放松身心!AD:WOT全球軟件技術(shù)峰會北京站課程視頻發(fā)布11月21日-22日與WOT技術(shù)大會相約深圳現(xiàn)在搶票常見的招聘過程我之前的主要工作是參與招聘并進行技術(shù)面試,招聘的總過程如下:1.HR所進行的面試:判斷候選人是不是一個連環(huán)殺手或精神病。2.技術(shù)專家進行的面試:判斷候選人是不是一個優(yōu)秀的程序員。3.大老板進行的面試:判斷候選人愿意接受多少報酬。我面試過兩種類型的人:實習(xí)生和準(zhǔn)員工。實習(xí)生只需要經(jīng)歷以上第二條步驟即可,其它人則需要經(jīng)歷所有的步驟。在那個公司工作的兩年多時間里,我進行了超過200次技術(shù)面試,這對我來說是一種豐富的學(xué)習(xí)經(jīng)歷,我逐步弄清了這一過程的實質(zhì)。這里有一個很重要的前提,請你記住,在法國你不能輕易解雇一個人,雇傭了一個錯誤的家伙,你就等著抱憾終身吧。找出最好的候選人極為關(guān)鍵,不能犯任何錯誤,這是一個繁瑣的過程,但我樂在其中。特別專業(yè)的中彩票式技術(shù)問題在,我進行了我的第一次技術(shù)面試,當(dāng)時,公司已經(jīng)有了一套工作流程供我參照:面試時間1小時,候選人有30分鐘時間回答15個測試問題,之后我們會花15分鐘時間討論她們的回答,外加15分鐘時間回答關(guān)于工作方面的問題。我很快就意識到這樣的問卷是多么的糟糕,我的意思是,你竭盡全力也找不出比它更坑爹的東西了。我們公司里大概有50%的項目都是使用Java編寫的,因此測試題就非常專注于Java,其中包含了5個瑣碎的問題,緊接著是10個關(guān)于特定Java框架的極難問題,比如我們經(jīng)常使用的問題有:類和對象的區(qū)別?;騍truts2中的execAndwait攔截器的用途是什么?見鬼的是,甚至是我自己都無法解釋這些問題或再補充點什么,每一次面試我都祈禱候選人不會用這些問題來反問我!對一個面試官來說,這很諷刺,不是嗎?無論如何我還是會快速瀏覽一下她們的回答(2-5分鐘),之后將時間放在討論她們的簡歷上,這浪費了很多時間,于是我決定改進一下。我上網(wǎng)比較了成百上千個面試問題,那時我相信我們必須在測試中放置正確的問題,才能展示一個人才的真正優(yōu)秀之處,正所謂“好馬配好鞍”。寬泛的、怎么回答都正確技術(shù)問題經(jīng)過大約一個月的研究,我已經(jīng)在網(wǎng)上找遍了各種問題,提煉出最好的50個問題,我認(rèn)為它們都是好問題,因為用任何語言都能回答它們,同時難度也是平穩(wěn)提升的。我將這50個問題打散,組成5套10大題,隨機分發(fā)。示例:單例是什么?你什么時候會用它/不用它?這問題好多了吧,我覺得顯而易見的,一個給力的問題一般會得到一個給力的回答作為回報,我實踐了幾個星期,可是不知何故這并不完全奏效,我覺得我已經(jīng)做的很好了,但結(jié)果卻并不怎么好。是的,這些問題能夠測試出一個人是否熟悉編程理論,然而最終我對此人能否編程依然一無所知,直到最后我也不確定用這種方法招聘員工能比用以前那種粗糙的struts2問卷好多少。我想了很多,我意識到這其中有兩個巨大的問題:1.問題太泛了,如果不專注于某一種語言,我無法討論諸如SQL,前端細(xì)節(jié)等話題。2.問題太短了,10個泛泛而談的問題涉及面太窄,我沒法經(jīng)過其它方式判斷此人是否是優(yōu)秀的程序員。我需要的是更多的問題,而且這些問題必須針對候選人所申請的工作內(nèi)容。面試問題寶典:10萬個為什么事情逐漸有點失控了,當(dāng)時我繼續(xù)深入研究,并創(chuàng)立了一個全自動化的測試工具(在一個實習(xí)生的幫助下):測試經(jīng)理(QM)。這個工具使招聘過程變得完美:在初次面試后,HR會選擇三個與工作描述相關(guān)的話題,之后工具會自動生成一組多項選擇題,其中包含3*20=60個隨機但具體的問題,其難度符合測試者的經(jīng)驗水準(zhǔn)。示例:(javascript)vari=0;functiona(){vari=2;i++;}a();alert(i);=>0?2?3?之后,工具會繪制一個小圖表,產(chǎn)生并發(fā)送郵件給HR,直接顯示結(jié)果,而不是一堆無用的指標(biāo)。這是我多么為之驕傲的工具!我急切盼望著有候選人能夠測試這套系統(tǒng)!我坐在HR旁邊,在內(nèi)部系統(tǒng)上觀察候選人選擇某些答案后的實時分?jǐn)?shù)。QM使我們所有的工作都變得更容易了,看上去非常完美,直到在我們自己的開發(fā)人員上測試它時……好吧,情況比我們想象中的更為離奇,我們之中許多優(yōu)秀的開發(fā)人員會獲得和被我拒絕的那些人一樣的分?jǐn)?shù),這才是正解,QM被證明是無效的!我花費了很多時間建立這個工具,同時也花費了很多時間認(rèn)識到我犯了一個巨大的錯誤:我們希望對結(jié)果進行自動化處理,這迫使我們只能設(shè)置選擇題。用戶只需要選擇一個答案,因而問題最后大多演變成了技巧性問題,最終的結(jié)果是我們根本沒有測試軟件開發(fā)的技能!要面對這副窘境非常艱難,但最后我還是承認(rèn)這個工具產(chǎn)生了反作用,展示了錯誤的印象。面試時讓程序員去編碼8個月過去了,我做了更多的研究,視察了一些美國公司篩選候選人的過程,這時候我決定去追求另一種方法:只需編碼。這是程序員得到報酬的原因啊,所以為什么不直接展示給我看她們是怎樣寫代碼的呢?你會覺得這很合乎邏輯……在經(jīng)歷了前幾個月的教訓(xùn)后,現(xiàn)在測試變得很簡單:我會給出三個算法題,你需要在30分鐘內(nèi)解決它們。候選人能夠任意選擇語言,并使用一臺電腦作答(無法連接網(wǎng)絡(luò))。這些都是網(wǎng)上能找到的經(jīng)典問題:其中一個算法題一般涉及字符串操作(比如在一句句子中逆置單詞),另一個問題涉及循環(huán)(比如計算斐波那契數(shù)列),最后一個問題涉及集合(比如列表排序)。示例:printoutdigits1-100.formultiplesof3,printoutfoo.formultiplesof5,printoutbar.formultiplesofboth3and5,printoutfoobar.所有事情都變得更清晰,更美好了。我能夠很直觀地看到誰在代碼中縮進、注釋、遵循約定、尋找解決方案,等等。我能夠據(jù)此判斷這個人在過去的編程量,另外,經(jīng)過與她們討論問題的答案也能獲得很多信息。我覺得候選人對這些測試題應(yīng)該會感覺良好,因為我已經(jīng)試圖解除她們所有的壓力,她們能夠從容作答,選擇她們想用的任何一門語言,征求建議,等等。起初,我對結(jié)果感到很振奮,并繼續(xù)執(zhí)行了幾個月,然而再一次的,我意識到我遺漏了些什么……仿佛有些事不對勁……事實上我確實能夠依靠這種方式找出能解決算法問題的人,但她們真的是我所要尋找的優(yōu)秀程序員嗎?請你思考一下,一個程序員的水平是不是由她能否解決一個數(shù)學(xué)問題所定義的?是不是由她能否寫出復(fù)雜度為O(nlogn)而非O(n^2)的排序所決定的?能夠一網(wǎng)打盡的面試問題我很清楚的記得,當(dāng)我初學(xué)編程時,windows3.1還未問世,QBasic語言是搭載在MSDOS5.0上的,它包含自帶的幫助信息,其中有所有的函數(shù)和關(guān)鍵字,像一本完美的離線手冊。至今我還記得那時候編程的獨特感受,縈繞在我心頭,每一次我敲擊F5,看到我寫的程序在我眼前執(zhí)行,每一行代碼,每一個提示,甚至是顏色,或難以解決的問題……我簡直是在天堂。我記得我在每一條命令前添加行號,用可怕的GOTO填滿我的代碼,同時每天又能學(xué)到很多令人振奮的新東西。我熱愛編程,我會夜以繼日地編寫游戲、解決問題,并展示給我父母和朋友。時光飛逝,我從QBasic到pascal到vb,經(jīng)過2400bps的調(diào)制解調(diào)器和家庭電話線路,為我們的BBS(AtomicBBS)編寫游戲。我并不優(yōu)秀,好吧事實上我的代碼相當(dāng)糟糕!但我熱愛它!!我不能失去它……我猜有些人在她們第一次駕駛飛機、駕駛船只、吸食大麻、吃innout(譯注:美國一家漢堡快餐店)時會感受到她們的腎上腺素涌出的感覺,對我來說,那就是編程、編譯和運行。25年前我獲得了這種感受,至今它從未離我而去,我為編程而生,我永遠都是程序員。我始終相信,一個熱愛編程的人不會只在工作中編程,在家中她們也會繼續(xù)創(chuàng)造樂趣,這是一種愛好。多少次,我在工作中因為蛋疼的Eclipse而感到失望,只能在我回家后,寫RubyonRails代碼尋找快樂,放松身心!回到上一個話題,在一年的嘗試和失敗后,我完全放棄了技術(shù)測試。我會坐在候選人身邊,花5到10分鐘閱讀和點評她的簡歷,不問任何問題,之后我會翻過簡歷,看著候選人的眼睛問道:“我們剩下大概30分鐘時間,你能告訴我你所編寫過的最成功的項目的情況嗎?”這個簡單、獨特和客觀的問題是關(guān)鍵。一些人會含糊地回答她們之前的工作或?qū)W校的項目,而另一些人會突然變得生龍活虎,盡管一開始她們還有點放不開,她們會熱情激昂的談?wù)撍齻兙帉懙挠螒?、制作的站點、貢獻的開源項目、開發(fā)的工具,她們會很驕傲的展示給我看。我時常會被她們的侃侃而談吸引和著迷,繼而詢問她們這些喜愛的項目的所有細(xì)節(jié),她們的話匣子打開了,講述了她們所攻克的技術(shù)難題,加上一些小小的個人情懷,仿佛這就是她們的孩子。還有一點無法令人忘懷:我仿佛能夠看到她們眼中的光芒,仿佛能夠看到她們小時候編譯和運行第一個helloworld程序的情景,很快,我意識到了我們的共同點,我們都是程序員。她們中的絕大多數(shù)人沒有接觸過struts或其它我們正在使用的指定框架,然而當(dāng)她們一進入工作后,她們總是會成為金牌程序員。她們學(xué)習(xí)快速,能寫出更好的代碼,她們用創(chuàng)造力和正能量激勵著其它人,她們
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度“唐代宮廷樂器制作與租賃合同”3篇
- 運輸物流行業(yè)租賃合同:物流
- 試用期內(nèi)勞動合同范本
- 2025年度廁所革命項目施工與監(jiān)理合同3篇
- 小型廣場簡單施工合同
- 銀川市孵化器租賃協(xié)議
- 2025高新技術(shù)項目孵化合同
- 混凝土拆除施工合同
- 2025年度熱水器產(chǎn)品回收與環(huán)保處理協(xié)議范文3篇
- 廣告公司寫字樓租賃合同模板
- 2024屆北京市通州區(qū)英語高三上期末統(tǒng)考試題含解析
- 國家免疫規(guī)劃疫苗兒童免疫程序說明-培訓(xùn)課件
- 能源管理體系記錄表單
- 智慧城市建設(shè)課件
- 污水處理廠提標(biāo)升級可研
- 湖南省建設(shè)工程施工階段監(jiān)理服務(wù)費計費規(guī)則【實用文檔】doc
- GB/T 6913-2008鍋爐用水和冷卻水分析方法磷酸鹽的測定
- GB/T 18717.2-2002用于機械安全的人類工效學(xué)設(shè)計第2部分:人體局部進入機械的開口尺寸確定原則
- 中國文化概論(第三版)全套課件
- 117-鋼結(jié)構(gòu)工程質(zhì)量常見問題與管控措施
- SHS5230三星指紋鎖中文說明書
評論
0/150
提交評論