本文記錄了本人招聘程序員的方法,希望能幫助你建立一個(gè)出色的團(tuán)隊(duì)。
一般來(lái)說(shuō)招聘程序員不算難。但要總結(jié)出如何招聘程序員,特別是招聘優(yōu)秀程序員還是比想象中要困難的。尤其是你要招聘一個(gè)全職的員工(無(wú)論是否遠(yuǎn)程工作)。這里面涉及到很多東西,比如文化背景,職業(yè)素養(yǎng)還有最重要的方面-技術(shù)領(lǐng)域(程序員是否知道如何實(shí)現(xiàn)他們口中宣稱的技術(shù))。我們假設(shè)你只是在招聘一個(gè)外包人員來(lái)做一個(gè)小項(xiàng)目,如果要招優(yōu)秀程序員仍然是不容易的。你如何考評(píng)應(yīng)聘人員?你如何知道怎樣可行怎樣不行?你如何發(fā)現(xiàn)自己是在拿錢(qián)打水漂?答案是你根本就不知道。
你竭盡全力的面試候選人然后挑選最合格人的加入團(tuán)隊(duì)。如果這個(gè)人不行你就換一個(gè),直到找到那個(gè)能呆下來(lái)的。問(wèn)題是沒(méi)人說(shuō)非得要走這個(gè)流程。我下面將分享我在招聘程序員時(shí)采用的方法,通過(guò)這種方式在過(guò)去幾年里我招到了最優(yōu)質(zhì)的遠(yuǎn)程工作者,外包人員和全職員工。我招聘遠(yuǎn)程程序員和現(xiàn)場(chǎng)程序員時(shí)也采用了同樣的方式。
在我找到了候選人后,我會(huì)讓他們經(jīng)歷四輪面試:
四輪面試流程:
非正式HR電話溝通(電話/Skype/Google Hangout)
技術(shù)電話溝通 (電話/Skype/Google Hangout)
編程測(cè)試篩選
文化融合評(píng)估
如果候選人通過(guò)了所有的四輪測(cè)試,那很可能你找對(duì)人了。上述流程找到的人具有下面的特點(diǎn):
技術(shù)上能夠完成工作任務(wù)
能夠融入公司文化
善于有效溝通和發(fā)散思維
四輪流程的目標(biāo)
可能你也注意到前兩輪篩選都是采用電話/Skype/Google Hangout作為溝通工具。為啥哩?答案非常簡(jiǎn)單:時(shí)間寶貴啊。時(shí)間一去不復(fù)返…如果我能為團(tuán)隊(duì)節(jié)省會(huì)議室,出差等我會(huì)很樂(lè)意去做。這就是電話面試的目的。通常候選人也會(huì)傾向于這種方式,畢竟這節(jié)省的是大家的時(shí)間啊。所以前幾步的目的就是為了節(jié)省公司和員工的時(shí)間。
我們的目標(biāo)是:節(jié)約時(shí)間!
每一輪都是在不同時(shí)間完成的。一般來(lái)說(shuō)最少也得間隔4到6個(gè)小時(shí)吧。留出時(shí)間間隔的目的是讓團(tuán)隊(duì)有時(shí)間決定是否讓候選人進(jìn)入下一個(gè)流程。例如:第一輪面試后團(tuán)隊(duì)決定放棄后續(xù)的面試,那就可以通過(guò)電子(郵件或電話)方式通知候選人然后繼續(xù)自己愉快的一天。第二步第三步是一樣的道理。第四步就是要上手的了,后面會(huì)細(xì)說(shuō)。這也可以說(shuō)是“敏捷”式招聘。每一步都是迭代式的循環(huán)并建立于上一步的成功。也可以看著是一種測(cè)試驅(qū)動(dòng)(TDD)式招聘流程。 第一步測(cè)試通過(guò)了嗎?通過(guò)了就進(jìn)入第二步。第二步通過(guò)了嗎?通過(guò)了,太好了。進(jìn)入第三步吧, 第三步通過(guò)了嗎?沒(méi)有。 好吧,GameOver了, 不用浪費(fèi)后面的時(shí)間了。
步驟細(xì)說(shuō)
下面就細(xì)說(shuō)一下各個(gè)步驟,并提供了參考提問(wèn),外部資源的鏈接以及優(yōu)化流程的建議。
第一輪:非正式HR篩選(10到30分鐘)
終極目標(biāo):基于基本對(duì)話和HR的經(jīng)典必殺問(wèn)題判斷候選人是否適合目標(biāo)崗位
第一輪其實(shí)是很短的。 又想到了節(jié)約時(shí)間的問(wèn)題—這是第一道關(guān)卡。你也可以把它變得更短。你需要確認(rèn)這個(gè)人能有效的溝通,思路清晰沒(méi)有社交恐懼癥啥的。比如有人滿嘴的”Cao” (原文是F開(kāi)頭的四字單詞),那這種人就很可能不太適合團(tuán)隊(duì)。
這一輪一般交給招聘經(jīng)理(有時(shí)候就是你(HR), 有時(shí)候是別人)。這一輪經(jīng)理應(yīng)該描述工作性質(zhì)并與候選人對(duì)話。下面是一些參考問(wèn)題:
為什么申請(qǐng)這個(gè)職位?
在X方面你有多少經(jīng)驗(yàn)?(X就是你們正在干的事兒,或者是新技術(shù)等等)
談?wù)勀愕纳弦环莨ぷ鳎?/p>
接下來(lái)還可以采用傳統(tǒng)的面試問(wèn)題。例如下面這些:
你會(huì)如何處理X情況?(X就是HR的經(jīng)典問(wèn)題)
講講你遇到無(wú)法解決的問(wèn)題時(shí),后來(lái)是怎樣解決的?
跟同事有不同意見(jiàn),你是如何處理的?
你對(duì)我們公司有了解嗎?
你對(duì)我們有問(wèn)題要問(wèn)嗎?
此時(shí)此刻,你就可也判斷候選人是不是思路清晰,或者是跟你在扯八卦。也就可以判斷是否進(jìn)入下一步:技術(shù)篩選
第二輪: 技術(shù)篩選(10到30分鐘)
終極目標(biāo):采用問(wèn)答形式判斷候選人是否具有所需的技術(shù)(Skype/Hangout/電話形式)
技術(shù)篩選是第二道關(guān)卡。這一輪應(yīng)該持續(xù)10到30分鐘取決于問(wèn)題的難度。如果候選人答不上的問(wèn)題太多,可以隨意縮短時(shí)間。所提的問(wèn)題根據(jù)招聘的程序員類型有所區(qū)別。但應(yīng)該覆蓋正在使用的一些編程語(yǔ)言基礎(chǔ),框架基礎(chǔ),服務(wù)器。可以提一些開(kāi)放式的問(wèn)題讓候選人自己解釋。盡量避免問(wèn)一些是/非問(wèn)題。下面是一些參考問(wèn)題:
NodeJS 參考提問(wèn):
請(qǐng)解釋NodeJS里ExpressJS的作用以及你為什么會(huì)使用它
Sync和Async call的區(qū)別以及你更傾向于采用哪種方式,為什么?
你使用哪個(gè)測(cè)試框架?
知道V8是什么嗎?
Android 參考提問(wèn):
什么是AsyncTask,什么時(shí)候你會(huì)使用它?
什么是Gradle以及使用場(chǎng)景
如何在Android上做單元測(cè)試
Rails 參考提問(wèn):
什么是asset管道
什么是控制器(controller)?
什么是RSpec以及使用場(chǎng)景?
什么是路由?
通常這類面試由團(tuán)隊(duì)成員進(jìn)行。有時(shí)候是兩個(gè)程序員。如果是兩個(gè)面試官,相互間要有個(gè)暗號(hào)告訴對(duì)方候選人不合適以節(jié)省時(shí)間。我之前就采用了下面的方式:
“提醒我跟你講早上我在加油站的遭遇”
“面試結(jié)束后提醒我給我表弟打電話”
道理你應(yīng)該已經(jīng)懂了。自己編一個(gè)吧。至少有50%的時(shí)間你希望盡快結(jié)束面試因?yàn)楹蜻x人不靠譜。記住,目標(biāo)是:節(jié)約時(shí)間。
第三輪: 編程測(cè)試(2-4個(gè)小時(shí)/夜間)
終極目標(biāo):判斷候選人擁有通過(guò)代碼解決問(wèn)題的能力。了解代碼質(zhì)量。
面試過(guò)程中,要求候選人采用指定的語(yǔ)言解決實(shí)際問(wèn)題。一個(gè)有經(jīng)驗(yàn)的程序員應(yīng)該在一個(gè)小時(shí)之內(nèi)解決問(wèn)題。我會(huì)給出2-4小時(shí)的范圍以便候選人有足夠的時(shí)間完成任務(wù)。為了公平公正我一般會(huì)允許候選人在家里舒適的環(huán)境下接受面試,以排除壓力并了解他們實(shí)際如何解決問(wèn)題。有些公司更喜歡在現(xiàn)場(chǎng)給候選人提供電腦和網(wǎng)絡(luò)。不管哪種方式,目標(biāo)很簡(jiǎn)單:了解候選人能否寫(xiě)出正確的代碼。
編程測(cè)試是很好的調(diào)節(jié)閥。不是說(shuō)問(wèn)題有多難(恰恰相反,問(wèn)題很簡(jiǎn)單),而是因?yàn)槟憧梢粤私鈱?duì)方的代碼質(zhì)量,同時(shí)也能找到以下問(wèn)題的答案:
候選人的溝通能力
候選人是否知道服從指示?
候選人知道如何使用Git和GitHub嗎(后面會(huì)細(xì)說(shuō))
候選人知道最佳代碼實(shí)踐嗎?
候選人知道如何寫(xiě)代碼嗎?
候選人能通過(guò)測(cè)試嗎?
如果我讓候選人在空閑時(shí)間里在家面試,我一般會(huì)告訴他們我會(huì)在下午5點(diǎn)通過(guò)郵件告訴他們題目以及解決問(wèn)題的提示。我告訴他們最遲在明天中午12點(diǎn)前得完成。問(wèn)題會(huì)發(fā)布到GitHub/BitBucket的repo里,這個(gè)repo會(huì)為每個(gè)候選人創(chuàng)建一個(gè)。repo包含了所有關(guān)于問(wèn)題的描述。候選人需要做的就是跟隨指示并將結(jié)果發(fā)給我。下面是一些我創(chuàng)建的例子:
NodeJS 例子
Android 例子
Rails 例子
你可以fork這些例子并保存。如果你訪問(wèn)過(guò)這些網(wǎng)站中的任何一個(gè)你就會(huì)發(fā)現(xiàn)這里面的每一個(gè)例子都要求候選人經(jīng)歷一系列步驟。如果候選人不清楚干什么,他們可以跟我確認(rèn)或者直接在Goolge上找答案。候選人完成后需要提交一個(gè)pull 請(qǐng)求給我,然后我可以進(jìn)行評(píng)審。我知道不是所有人都用Git來(lái)管理源代碼,所以你可以進(jìn)行修改,以便采用mercurial或者SVN來(lái)管理。
這種方式可以說(shuō)是神來(lái)之筆,因?yàn)樗苋矫媪私夂蜻x人。比如候選人是否能按時(shí)寫(xiě)出代碼完成工作。同時(shí)也能讓我審查代碼來(lái)判斷到底是好還是壞。基于我的經(jīng)驗(yàn),平均60%的候選人不能完成任務(wù),因?yàn)樗麄儾恢廊绾谓鉀Q問(wèn)題。這也是我讓他們?cè)诩颐嬖嚨脑颉牡谝徊降降谌蕉伎梢赃h(yuǎn)程進(jìn)行。這為公司節(jié)約了時(shí)間。在這完成了任務(wù)的40%的人中,只有20%的人做對(duì)了,并且到這個(gè)時(shí)候基本上只剩下一兩個(gè)候選人看起來(lái)不錯(cuò)。如果你有更多的選擇當(dāng)然更好。
對(duì)于這種方式有一個(gè)很正常的顧慮:萬(wàn)一他們作弊怎么辦?如果他們叫朋友或者其他人當(dāng)槍手怎么辦?是有這種可能,但我認(rèn)為現(xiàn)實(shí)中也存在這個(gè)問(wèn)題。有時(shí)候程序員不知道如何解決問(wèn)題就會(huì)尋求幫助。他們通過(guò)QQ向朋友求助,或者是在網(wǎng)上搜或者是找一些滿足要求的開(kāi)源項(xiàng)目來(lái)修改。這就是程序員的作風(fēng),管你是在家還是在公司誰(shuí)關(guān)心。如果對(duì)方真是在欺騙,我想很快我也能發(fā)現(xiàn)。就算是對(duì)方被招進(jìn)來(lái)了,團(tuán)隊(duì)也能很快發(fā)現(xiàn)問(wèn)題。這時(shí)候你就需要需要決定是否要留下這個(gè)人了。
如果候選人沒(méi)能完成測(cè)試,這就直接是紅牌了。當(dāng)然出的問(wèn)題也應(yīng)該足夠簡(jiǎn)單讓有經(jīng)驗(yàn)的程序員能在一個(gè)小時(shí)內(nèi)完成。如果不能完成,要么是題目太難了要么是候選人不合適。如果你用的是我上面提到的鏈接(或者類似的),那就不存在這個(gè)問(wèn)題。對(duì)于那些沒(méi)通過(guò)測(cè)試的,我建議放棄后面的面試直接換下一個(gè)人。
對(duì)那些完成題目的我會(huì)審查代碼。如果沒(méi)問(wèn)題我會(huì)繼續(xù)面試。這種情況其實(shí)很少。一般我會(huì)問(wèn)候選人為什么會(huì)用他的方式去寫(xiě)代碼。比如我會(huì)問(wèn)一個(gè)做Android題目的人為什么會(huì)用HttpGet而不是類似OkHttp或http-request的庫(kù)。對(duì)于做NodeJS題目的人我會(huì)問(wèn)為什么會(huì)采用原生的http請(qǐng)求而不是restler或rest。問(wèn)這些問(wèn)題的目的是考察候選人的思維方式,也能更多的了解他們的性格。有時(shí)你也能從他們身上學(xué)到一些東西。
如果沒(méi)人解決問(wèn)題,那就繼續(xù)發(fā)布職位需求。有時(shí)候我要發(fā)好幾遍才能找到合適的人。
第四輪:文化融合評(píng)估(2-4小時(shí))
目標(biāo):考察候選人是否能融入公司文化
到這一步,候選人通過(guò)了HR和技術(shù)的電話面試,以及編程測(cè)試。或許你認(rèn)為應(yīng)該聘用這個(gè)人了。但注意不要被激動(dòng)沖昏頭腦—你需要了解這個(gè)人是不是能夠和你以及團(tuán)隊(duì)一起和諧共事。這時(shí)候我會(huì)把候選人帶到辦公室和團(tuán)隊(duì)見(jiàn)面并共用午餐。我一般叫他們?cè)谥付ǖ臅r(shí)間來(lái)公司(上午11點(diǎn)到12點(diǎn))并安排團(tuán)隊(duì)午飯。我們會(huì)去一個(gè)常去的地方吃飯。不要去一個(gè)高檔的或者團(tuán)隊(duì)不熟悉的地方吃飯。否則團(tuán)隊(duì)不會(huì)全部參加或則氣氛變味。我們需要的是平常和正常,就是一個(gè)每天工作狀態(tài)的展示。這樣我們能評(píng)估他的個(gè)性并試圖發(fā)現(xiàn)一些影響團(tuán)隊(duì)和諧的因素。如果我們發(fā)現(xiàn)有人感覺(jué)不對(duì),我們就不會(huì)聘用候選人。因?yàn)橐院蟮穆愤€長(zhǎng),如果一見(jiàn)不能鐘情,日久就要生恨,工作也不會(huì)出色。
情景再現(xiàn): 有個(gè)人前幾輪結(jié)果都恨優(yōu)秀。我有點(diǎn)小激動(dòng)。我?guī)麄兂鋈コ晕顼埐虐l(fā)現(xiàn)他們非常沒(méi)素質(zhì),極端的具有消極進(jìn)攻性(passive aggressive)而且有時(shí)非常計(jì)較。我們都應(yīng)該有過(guò)這種感受:不要惹桌子對(duì)面的那個(gè)人。后來(lái)我就認(rèn)為這人不適合團(tuán)隊(duì)也沒(méi)有發(fā)offer。
你還應(yīng)該帶新人在辦公室/園區(qū)等轉(zhuǎn)一轉(zhuǎn)。跟他們講講職位以了解他們的興趣。問(wèn)他們一些針對(duì)公司的寬泛?jiǎn)栴},看他們是否對(duì)公司進(jìn)行過(guò)了解。總之就是要了解這個(gè)人。你要問(wèn)自己這樣一個(gè)問(wèn)題:要是這個(gè)人在下班后跟你一起吃飯喝東西你愿意嗎?如果你的回答是不,那又是紅牌需要商榷了。
候選人走后,和團(tuán)隊(duì)的人聊一聊他們的看法(如果這個(gè)人是招進(jìn)來(lái)的第一個(gè)人,只有靠直覺(jué))。如果候選人還靠譜那就發(fā)offer,否則—下一位。
總結(jié):
好馬不好找,找好馬還要省錢(qián)就更難。上面的四輪法則將幫你節(jié)省時(shí)間并找到最佳人選。不要怕嘗試下一個(gè)人選。與其招庸人不如耐心等。記住,第三輪是調(diào)節(jié)閥。這里是“行”與“不行”的分水嶺。如此多的人卡在這一關(guān)讓我有點(diǎn)驚訝。祝大家找馬順利。
-
程序員
+關(guān)注
關(guān)注
4文章
953瀏覽量
29856
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
阿里云升級(jí)通義靈碼AI程序員,全面上線
TMS320C55x DSP CPU程序員參考補(bǔ)充
![TMS320C55x DSP CPU<b class='flag-5'>程序員</b>參考補(bǔ)充](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
UCD3138A64/UCD3138128程序員手冊(cè)
![UCD3138A64/UCD3138128<b class='flag-5'>程序員</b>手冊(cè)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
機(jī)械革命發(fā)布CODE AI程序員本
Linux驅(qū)動(dòng)程序程序員指南
![Linux驅(qū)動(dòng)<b class='flag-5'>程序</b><b class='flag-5'>程序員</b>指南](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AI編程工具會(huì)不會(huì)搶程序員飯碗
第五屆長(zhǎng)沙·中國(guó)1024程序員節(jié)開(kāi)幕
程序員節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎(jiǎng)
![<b class='flag-5'>程序員</b>節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎(jiǎng)](https://file1.elecfans.com/web2/M00/8D/79/wKgaomS7KZ-AY3GzAAArJzrUg1c443.png)
程序員節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!
![<b class='flag-5'>程序員</b>節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!](https://file1.elecfans.com/web2/M00/F7/E1/wKgaomaDZHyAdCpxAACC-PIdRiA155.png)
助力程序員告別困擾已久的夢(mèng)魘-Bug
![助力<b class='flag-5'>程序員</b>告別困擾已久的夢(mèng)魘-Bug](https://file.elecfans.com/web2/M00/20/B3/pYYBAGGfNNmAK-PZAAJsGM5Cgk0227.jpg)
請(qǐng)問(wèn)workbench生成代碼時(shí)怎么選擇foc或梯形六步法?
適者生存,程序員最終會(huì)流向哪……
![適者生存,<b class='flag-5'>程序員</b>最終會(huì)流向哪……](https://file1.elecfans.com/web2/M00/C4/93/wKgaomXtvQOAe7rJAATFhYYm6E8233.jpg)
薪資高、青春飯,是不是程序員=青樓?
瑞薩Flash程序員V3 發(fā)布說(shuō)明
![瑞薩Flash<b class='flag-5'>程序員</b>V3 發(fā)布說(shuō)明](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論