譯者按
這篇譯文來自英年早逝的天才少年Aaron Swartz。Aaron在14歲的時(shí)候就參與創(chuàng)造RSS 1.0規(guī)范。并且是Python框架web.py的作者以及Markdown的主要貢獻(xiàn)者之一。Aaron致力于推動(dòng)互聯(lián)網(wǎng)信息的開放與自由,曾創(chuàng)辦網(wǎng)上免費(fèi)圖書館Open Library,以及反對(duì)互聯(lián)網(wǎng)審查(SOPA)的Demand Progress。這名年輕的斗士迫于政府以及司法的壓力于2013年自殺身亡,享年26歲。
Aaron在這篇文章里著重介紹了他是如何招聘程序員的,然而文中的觀點(diǎn)其實(shí)同樣適用于鑒別任何一個(gè)職位的候選人??赡苡幸恍┘?xì)節(jié)方法不太適用于國內(nèi)目前這個(gè)招聘環(huán)境,不過大多數(shù)思考以及一些要點(diǎn)的提煉都非常值得借鑒。我在摸索招聘的過程中也是從這篇文章受益匪淺,每次閱讀都會(huì)有新的收獲。而對(duì)于招聘另一端的求職者來講,根據(jù)Aaron的評(píng)判來看自己哪里做的不足,想必也一定會(huì)有所收益。
祝大家閱讀愉快!
在招聘一個(gè)程序員的時(shí)候(或者其他任何人)你應(yīng)該問自己三個(gè)問題:他聰明嗎?他靠譜嗎(能按時(shí)交付,原文是:get stuff done)?你愿意跟他一起工作嗎?
那些很聰明但不靠譜的人可以是你的朋友,但不應(yīng)該是你的員工。你可以在他們拖延自己的工作的時(shí)候跟他們討論你遇到的問題。那些靠譜但是不夠聰明的人效率會(huì)太低:不聰明的人往往不會(huì)變通,跟他們工作很慢并且讓人感到沮喪。而那些你不愿意一起工作的人,你為什么要招他?
常規(guī)的程序員招聘流程是:a) 看簡(jiǎn)歷, b) 電話上問一些有難度的問題, c) 現(xiàn)場(chǎng)給他們一個(gè)編程問題。我覺得這是一個(gè)很糟糕的套路。簡(jiǎn)歷上信息很有限,面試中又容易緊張,候選人很可能表現(xiàn)不出實(shí)際的水平。編程通常情況下不是一個(gè)需要在高壓下完成的工作。所以在一個(gè)人緊張的時(shí)候看他的表現(xiàn)是一件很沒有意義的事情。而且面試中的一些問題看起來就像是專門用來折磨候選人的。我認(rèn)為我是一個(gè)很不錯(cuò)的程序員,不過我從來沒通過過這些面試,而且估計(jì)以后也不會(huì)。
所以當(dāng)我招人的時(shí)候,我就去考察這三個(gè)問題。評(píng)估他是否靠譜,我會(huì)問他之前做過什么。如果候選人很靠譜,那么一定做成過一些事——比如程序員都會(huì)有項(xiàng)目經(jīng)驗(yàn),畢竟現(xiàn)在很容易就可以參與到開源項(xiàng)目中,紙上談兵不可能成為優(yōu)秀的程序員。我會(huì)要一份代碼樣例和 demo,然后看代碼寫的如何。這樣你可以快速獲取大量的信息,因?yàn)槟悴皇窃谧屗麘?yīng)對(duì)面試,而是看他們?cè)趯?shí)際中用到的代碼。它們夠簡(jiǎn)潔嗎?夠清晰嗎?夠優(yōu)雅嗎?可用嗎?你會(huì)想把這樣的代碼放進(jìn)你的產(chǎn)品里嗎?
想要看他們是否聰明,我會(huì)跟他們聊聊天。首先,我會(huì)盡可能地消除對(duì)方的壓力:比如地點(diǎn)會(huì)約在咖啡廳,會(huì)說清楚這不是一個(gè)面試,并且盡力使自己量表現(xiàn)得隨意和友好一些。我永遠(yuǎn)都不會(huì)問一些標(biāo)準(zhǔn)的“面試問題”——我會(huì)像跟在派對(duì)上遇到的人一樣跟他們聊天(如果你在派對(duì)上問別人他們的優(yōu)點(diǎn)和缺點(diǎn)或者去估算芝加哥有多少鋼琴調(diào)音師的話,你的問題就大了…)。我認(rèn)為我在聊天時(shí)很容易判斷一個(gè)人是否聰明,就像我可以一眼看出一個(gè)人是否有魅力。
不過如果非要我給出聰明的判斷標(biāo)準(zhǔn),我會(huì)著重于以下三點(diǎn):
第一,他們對(duì)事物的認(rèn)知是什么樣的?問他們最近都在思考哪些問題并且深入的問下去。他們看起來像是詳細(xì)地了解這個(gè)問題嗎?他們能清楚地闡述它嗎(清晰的解釋一個(gè)問題表示他們真正的理解它了)?關(guān)于這個(gè)話題他們知道一些你不知道的事嗎?
第二,是否有好奇心?他們會(huì)回應(yīng)甚至反問你嗎?是真的感興趣還是只是禮貌地應(yīng)付?針對(duì)你說的東西他們會(huì)問后續(xù)的問題嗎?他們的問題會(huì)啟發(fā)你思考嗎?
第三,是否會(huì)學(xué)習(xí)?在對(duì)話中的某個(gè)節(jié)點(diǎn),你很可能會(huì)向他們解釋一些事情。他們是真的理解你所說的還是只是點(diǎn)頭微笑?有些人會(huì)對(duì)某個(gè)小領(lǐng)域有些研究,不過對(duì)其他的東西不感興趣。有些人會(huì)僅僅停留在好奇而不會(huì)去真的學(xué)習(xí)研究,他們問很多問題卻從來聽不進(jìn)去。你要找以上三點(diǎn)都滿足的人。
最后,我會(huì)通過跟他們一起出去待待來判斷是否愿意和他們一起工作。很多牛人會(huì)在一個(gè)小時(shí)的交流里表現(xiàn)得討人喜歡,不過在幾個(gè)小時(shí)后那些反常的特征就會(huì)顯露出來。所以在聊天結(jié)束后,可以邀請(qǐng)他們跟團(tuán)隊(duì)一起吃個(gè)飯或是在辦公室里玩?zhèn)€小游戲。別忘了盡力營(yíng)造輕松的氛圍。重點(diǎn)是看他們會(huì)不會(huì)讓你反感。
如果所有這些都很不錯(cuò),在確認(rèn)發(fā)出 offer 之前,我會(huì)最后做一個(gè)基礎(chǔ)測(cè)試來確保我沒被耍:要求他們做一部分真正的工作。通常這意味著選取一部分相對(duì)獨(dú)立的代碼工作讓他們?nèi)?shí)現(xiàn)(如果你堅(jiān)持想要看一個(gè)人在高壓下的表現(xiàn),設(shè)置一個(gè) deadline)。如果需要,你可以付給他們報(bào)酬,不過我發(fā)現(xiàn)對(duì)于大多數(shù)程序員而言,只要能夠事后把自己的工作開源,他們并不在乎完成一個(gè)像這樣的小任務(wù)。這個(gè)測(cè)試獨(dú)立存在時(shí)并沒有意義,不過如果他們滿足了以上的三點(diǎn),這個(gè)測(cè)試足夠證明他們沒有騙你,并且能夠真正靠譜地完成工作。
(我認(rèn)識(shí)的人有的會(huì)說“不如先把這個(gè)人招過來,工作一個(gè)月然后再看怎么樣”。這通常行不通。如果你不能在一個(gè)小項(xiàng)目后做出決定,你可能一個(gè)月后也同樣做不出決定,這樣就會(huì)使你招到一個(gè)不夠優(yōu)秀的人。還不如直接拒絕掉并且著力于找到更好的人。)
我對(duì)這套方法非常滿意。當(dāng)我略過以上某一步的時(shí)候,我通常會(huì)招到一個(gè)錯(cuò)的人并且最終不得不讓他走。但是當(dāng)我遵循這個(gè)方法的時(shí)候,我總是能招到那些讓我覺得不跟他們工作是種遺憾的人。最后,我很驚訝這么多公司還在用一些很蠢的方法去招人。
歡迎關(guān)注我的公眾號(hào):sadhrd , 一起聊聊職場(chǎng)、段子和升職技巧:)