如何招到一名靠譜的程序員

我的上一份工作是在一家世界500強(qiáng)金融集團(tuán)擔(dān)任架構(gòu)師他匪,當(dāng)時(shí)片择,公司的IT團(tuán)隊(duì)規(guī)模將近2000人。與其他IT公司一樣拴疤,程序員的流動(dòng)性也比較高永部,而作為架構(gòu)師,我需要為所在的部門招聘各個(gè)層級(jí)的開發(fā)人員呐矾,當(dāng)然也包括外包苔埋。在這長達(dá)5年時(shí)間里,我面試了大約400名程序員蜒犯。我并沒有參加過任何人力資源方面的培訓(xùn)组橄,也沒有正式研究過如何面試程序員,但是我通過對(duì)大量程序員的面試愧薛,以及錄用后效果的觀察晨炕,得出了一套自己的面試策略,去找到那些真正靠譜的程序員毫炉。

1. 簡歷看人

閱讀簡歷永遠(yuǎn)是面試的第一步瓮栗。好的簡歷一定是正確、清晰并且能夠體現(xiàn)候選人最有價(jià)值一面的瞄勾。我首先會(huì)過濾掉那些包含錯(cuò)別字费奸,文句不通或沒有邏輯性的簡歷,因?yàn)?b>如果一個(gè)程序員連自己的簡歷都不愿意去仔細(xì)檢查并完善的話进陡,很難想象他寫出來的代碼質(zhì)量會(huì)如何愿阐。接著,我便會(huì)重點(diǎn)閱讀簡歷中的項(xiàng)目經(jīng)驗(yàn)部分趾疚,在這里我能夠看到面試者的開發(fā)經(jīng)驗(yàn)缨历,技能棧,并且判斷他們熟悉的技術(shù)框架糙麦、工具是否與目前公司要求相匹配辛孵。

這里,我還會(huì)特別關(guān)注面試者是如何來寫這部分項(xiàng)目經(jīng)驗(yàn)的赡磅,你需要用盡可能簡練的文字來描述項(xiàng)目的背景魄缚,你在項(xiàng)目中承擔(dān)的角色、參與項(xiàng)目的時(shí)長焚廊,你用到的技術(shù)冶匹、以及你在項(xiàng)目中的亮點(diǎn)等信息。優(yōu)秀的程序員們往往有一個(gè)共同的特質(zhì)咆瘟,那就是善于歸納嚼隘,并能夠一針見血的發(fā)現(xiàn)問題或把一個(gè)問題說清楚。我經(jīng)程徊停看到面試者在簡歷中像寫故事一般地描述他們的項(xiàng)目經(jīng)歷飞蛹,光這一個(gè)章節(jié)就有好幾頁须肆,其實(shí)這反而會(huì)給你減分,因?yàn)檫@會(huì)讓面試官判斷你缺乏必要的歸納能力桩皿。

最后你的一些與編程有關(guān)的社會(huì)化活動(dòng),如:你在GitHub上的開源項(xiàng)目幢炸,在知乎泄隔、V2EX中給他人的解答以及你的個(gè)人技術(shù)博客等等都會(huì)給你加分,因?yàn)檫@說明你對(duì)所從事的工作有著極大的熱情宛徊,并愿意在業(yè)余時(shí)間去學(xué)習(xí)和提高自己佛嬉,就像在我之前的 “給職場(chǎng)新人的10點(diǎn)職業(yè)建議” 一文中提到的,如果你要成為一個(gè)領(lǐng)域的專家闸天,那你必須花費(fèi)超過10,000小時(shí)暖呕,而這光靠工作時(shí)間是遠(yuǎn)遠(yuǎn)不夠的。

2. 給面試者10分鐘介紹自己最擅長的

當(dāng)面試者通過了筆試和HR面試之后苞氮,你就需要面對(duì)面地對(duì)候選人進(jìn)行面試湾揽。我遠(yuǎn)不是什么面試專家,但我有一些自己的獨(dú)特方法笼吟。我討厭問一些很個(gè)人的問題库物,比如你的職業(yè)規(guī)劃是什么?你為什么想換工作贷帮?等等戚揭。我更愿意給面試者10分鐘時(shí)間,讓他介紹自己最擅長和最感興趣的領(lǐng)域撵枢。這往往能幫助我很快作出下面的判斷:

這個(gè)人對(duì)他所做的事情是否充滿激情

他們是否能在團(tuán)隊(duì)中很有效地進(jìn)行溝通

他們是否在專業(yè)領(lǐng)域足夠擅長

你的團(tuán)隊(duì)是否會(huì)樂于和這個(gè)人一起工作

這一招我在面試中用得很多民晒,而實(shí)踐證明也確實(shí)非常有效。

3. 基礎(chǔ)打牢了嗎锄禽?

一般潜必,有一定規(guī)模的公司都會(huì)為面試者安排機(jī)考或筆試,從而能首先篩掉一批未能通過的面試者沟绪。另一些規(guī)模較小的或初創(chuàng)公司則會(huì)讓面試官直接進(jìn)行技術(shù)面試刮便。其實(shí),我覺得這兩者的差別不大绽慈,有經(jīng)驗(yàn)的面試官往往能夠通過幾個(gè)最簡單的技術(shù)問題恨旱,判斷出面試者的技術(shù)基礎(chǔ)是否牢固,這不是為了證明他有多優(yōu)秀坝疼,而是用來判斷他是否是一名合格的程序員搜贤。對(duì)于我來說,并不看重機(jī)考的成績钝凶,因?yàn)闄C(jī)試的考題很多能夠在網(wǎng)上得到仪芒,特別對(duì)于一些外包公司唁影,他們總是能夠通過各種途徑得到考題,從而使得他們推送的外包能夠順利通過筆試掂名。

下面是我經(jīng)常會(huì)問的幾個(gè)問題(JAVA):

HashTable與HashMap有什么區(qū)別

Servlet是線程安全的嗎据沈?

JSP中 @include跟jsp:include的區(qū)別

HTTP的response code 403和500分別代表什么

......

這些問題都很簡單,但一些基礎(chǔ)不牢的程序員往往會(huì)在這個(gè)時(shí)候露餡饺蔑。當(dāng)然锌介,根據(jù)面試崗位的不同,你還可以有針對(duì)性地問一些問題猾警,例如孔祸,你需要找一個(gè)能寫核心算法的程序員(比如 銀行的總賬計(jì)算,或者保險(xiǎn)公司的保費(fèi)計(jì)算)发皿,那么你可以問一些算法相關(guān)的問題崔慧。

4. 技術(shù)深度夠嗎?

具備牢固的技術(shù)基礎(chǔ),一般就可以滿足項(xiàng)目中普通程序員的要求了穴墅,但如果你需要找的是一個(gè)資深程序員惶室,那么你還需要對(duì)面試者的技術(shù)深度進(jìn)行考察。我們現(xiàn)在做項(xiàng)目時(shí)都會(huì)大量使用框架封救,這能使我們的開發(fā)效率和質(zhì)量都得到提升和保障拇涤,但同時(shí)也降低了對(duì)于程序員開發(fā)技能的要求。因此我一般會(huì)詢問面試者下面的問題誉结,來考察他對(duì)所使用框架的掌握程度鹅士。

請(qǐng)你描述一下,在這個(gè)項(xiàng)目中惩坑,從一個(gè)HTTP請(qǐng)求發(fā)起掉盅,到最終的Response返回,它在你的系統(tǒng)和框架內(nèi)部是如何流轉(zhuǎn)的以舒?

這個(gè)問題往往能夠判斷出面試者對(duì)于相關(guān)技術(shù)掌握的深度趾痘。較初級(jí)的開發(fā)人員描述的層級(jí)往往比較淺,比如使用Spring MVC框架的蔓钟,只能說到實(shí)現(xiàn)一個(gè)Controller繼承BaseCommandController(甚至很多開發(fā)人員只知道繼承了一個(gè)公司內(nèi)部框架的基類)永票,至于再往下Spring框架是如何進(jìn)行內(nèi)部流轉(zhuǎn)的,就再也說不清楚了滥沫。而更資深的開發(fā)人員侣集,往往能說出框架內(nèi)部的實(shí)現(xiàn)機(jī)制,以及如何調(diào)用和處理的兰绣。在面試者描述的過程中世分,你還可以穿插詢問一些比較有深度的問題,比如框架中某個(gè)類這樣設(shè)計(jì)是哪一種設(shè)計(jì)模式的體現(xiàn)缀辩,采用這樣的設(shè)計(jì)有什么好處等等臭埋。這比讓面試者默寫一個(gè)設(shè)計(jì)模式代碼要有效踪央、自然得多。

除了技術(shù)層面上的考察之外瓢阴,對(duì)于資深開發(fā)人員畅蹂,還需要考察他們的設(shè)計(jì)能力。說到軟件設(shè)計(jì)荣恐,大部分面試者都能熟練地背出面向?qū)ο蟮娜齻€(gè)基本特性:繼承魁莉、封裝、多態(tài)募胃,也能把它們的概念描述清楚。但我一般會(huì)問下面的這個(gè)問題來考察他們的面向?qū)ο笤O(shè)計(jì)能力畦浓。

請(qǐng)用一段程序代碼描述我們所在的這間房間痹束。

我驚訝地發(fā)現(xiàn)至少有一半的面試者都很難準(zhǔn)確使用Interface和Class來給房間建模,也有一些人會(huì)將最基本的代碼語法或關(guān)鍵字寫錯(cuò)讶请。

5. 選擇適合所在企業(yè)文化的人

這一點(diǎn)也曾是我經(jīng)歷的一個(gè)誤區(qū)祷嘶,我總是希望能為團(tuán)隊(duì)招到技術(shù)能力最強(qiáng)的人,而忽略了他是否與整個(gè)公司和團(tuán)隊(duì)的文化相匹配夺溢。這往往會(huì)造成论巍,雖然招到了人,但沒過多久就因?yàn)槔砟畈煌粴g而散的結(jié)果风响,反而給公司帶來了損失嘉汰。讓我們看看GitHub的負(fù)責(zé)人是怎么說的。

我們很嚴(yán)肅地看待我們自己關(guān)于招聘流程的哲學(xué)状勤。我們希望每一個(gè)GitHub員工都了解他們所要面對(duì)的環(huán)境鞋怀,并保證他們是能夠很好適應(yīng)的。這包括我們所創(chuàng)造的文化持搜、哲學(xué)密似、計(jì)劃、錯(cuò)誤甚至是晚餐葫盼。比起他們的技能是否滿足要求残腌,我們更看重他們的潛力以及是否能夠適應(yīng)我們的企業(yè)文化。

我曾在具有鮮明文化差異的不同公司或團(tuán)隊(duì)工作贫导,看到許多崇尚開放抛猫、開源的程序員在一個(gè)相對(duì)封閉,具有很多流程以及規(guī)范限制的公司中很難發(fā)揮脱盲,最終選擇離開邑滨。因此在招聘程序員時(shí),選擇合適的往往比選擇最優(yōu)秀的更重要钱反。

6. 行為面試法

行為面試法可能是我在整個(gè)面試過程中唯一用到的教科書面試方法掖看。一個(gè)程序員是否能夠很好地工作匣距,不僅取決于他能否順利地完成開發(fā)任務(wù),更重要的是在遇到一些特殊場(chǎng)景或問題時(shí)哎壳,他能否合理有效地處理和解決毅待。行為面試法能夠幫助我們從面試者描述的過去某一具體事件中,預(yù)測(cè)未來他在工作中可能的表現(xiàn)归榕。下面便是一個(gè)我經(jīng)常用到的問題尸红。

請(qǐng)談?wù)勀阍谶@個(gè)項(xiàng)目中遇到的最大困難或挑戰(zhàn)是什么,你是如何解決的刹泄。

從面試者對(duì)上面這個(gè)問題的回答中外里,我能夠很好地判斷他是否有較強(qiáng)的獨(dú)立解決問題的能力,而我認(rèn)為這是除技術(shù)能力之外特石,程序員最應(yīng)具備的能力盅蝗。

7. 給他們一個(gè)虛擬任務(wù)

經(jīng)過上面的這些環(huán)節(jié),你可能對(duì)面試者的整體情況已經(jīng)比較滿意姆蘸,但先別急著下結(jié)論墩莫。我曾見過能夠順利通過上面所有面試步驟,并且被雇傭的程序員逞敷,當(dāng)他們進(jìn)入實(shí)際工作后卻沒能把事情做好狂秦。

在你確定是否錄用他們之前,可以給他們一個(gè)虛擬任務(wù)推捐。我不是說一個(gè)抽象的程序問題裂问,而是指一個(gè)真實(shí)的,可能就存在于你當(dāng)前項(xiàng)目中牛柒,并且需要在一兩個(gè)小時(shí)之內(nèi)完成的一個(gè)開發(fā)任務(wù)愕秫。我曾經(jīng)出過這樣的考題:

寫一個(gè)小程序?qū)⒁粋€(gè)以特定格式(如CSV)存儲(chǔ)的文本文件轉(zhuǎn)換為XML格式,并存儲(chǔ)為另一個(gè)文件焰络。

你可以給他一臺(tái)已經(jīng)配置好開發(fā)環(huán)境以及IDE的電腦戴甩,讓他當(dāng)場(chǎng)編寫代碼。當(dāng)然如果時(shí)間有限闪彼,你也可以直接詢問面試者的實(shí)現(xiàn)思路甜孤,并簡單用偽代碼來描述處理過程。通過這個(gè)測(cè)試畏腕,你能夠看到很多細(xì)節(jié)缴川,比如面試者是否有良好的編碼習(xí)慣,異常處理是否規(guī)范描馅,代碼邏輯是否縝密高效把夸,以及他的開發(fā)效率是否足夠高。如果面試者給出了非常優(yōu)秀的解答铭污,那么你就應(yīng)該能夠判斷他確實(shí)是一個(gè)優(yōu)秀的候選人了恋日,因?yàn)槲覐臎]碰到過能夠通過上面的測(cè)試膀篮,卻在實(shí)際工作中無法做好的人。

8. 以上絕不能保證你招到合適的程序員

你可以在面試程序員時(shí)參考上面的這些步驟岂膳,對(duì)于我來說大多數(shù)情況下它們都是有效的誓竿,但偶爾也會(huì)出錯(cuò)。你需要結(jié)合你所在公司和團(tuán)隊(duì)的實(shí)際情況谈截,提煉你覺得有用的面試步驟筷屡,并忽略其他的,最終形成屬于你自己的面試策略簸喂。另外毙死,你還需要根據(jù)面試時(shí)的實(shí)際情況,隨機(jī)應(yīng)變喻鳄,因?yàn)槿耸亲顝?fù)雜的動(dòng)物规哲,而面試過程卻是需要雙方互動(dòng)的。

想象一下诽表,在你退休之前的未來幾十年時(shí)間里,你都需要每周40小時(shí)地工作隅肥,因此無論是公司還是應(yīng)聘者都應(yīng)該互相尊重竿奏,建立充分的信任,并充分判斷是否適合對(duì)方后腥放,再確定是否雇用某人或接受一個(gè)公司的職位泛啸。你的目標(biāo)不應(yīng)該是簡單的獲得一份工作或者雇傭某個(gè)人,而應(yīng)該以獲得更多的工作樂趣和建立更良好的工作關(guān)系為目的去看待招聘這件事秃症,切忌不要急于求成候址,就像談戀愛一樣,當(dāng)雙方都有感覺時(shí)种柑,一切就水到渠成了岗仑。

又到了一年中的招聘熱季了,希望每一位年輕的程序員朋友都能找到一份讓自己快樂的工作-

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末聚请,一起剝皮案震驚了整個(gè)濱河市荠雕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌驶赏,老刑警劉巖炸卑,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異煤傍,居然都是意外死亡盖文,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門蚯姆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來五续,“玉大人洒敏,你說我怎么就攤上這事》蹬粒” “怎么了桐玻?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長荆萤。 經(jīng)常有香客問我镊靴,道長,這世上最難降的妖魔是什么链韭? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任偏竟,我火速辦了婚禮,結(jié)果婚禮上敞峭,老公的妹妹穿的比我還像新娘踊谋。我一直安慰自己,他們只是感情好旋讹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布殖蚕。 她就那樣靜靜地躺著,像睡著了一般沉迹。 火紅的嫁衣襯著肌膚如雪睦疫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天鞭呕,我揣著相機(jī)與錄音蛤育,去河邊找鬼。 笑死葫松,一個(gè)胖子當(dāng)著我的面吹牛瓦糕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播腋么,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼咕娄,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了珊擂?” 一聲冷哼從身側(cè)響起谭胚,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎未玻,沒想到半個(gè)月后灾而,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扳剿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年旁趟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡锡搜,死狀恐怖橙困,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情耕餐,我是刑警寧澤凡傅,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站肠缔,受9級(jí)特大地震影響夏跷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜明未,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一槽华、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧趟妥,春花似錦猫态、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至疚膊,卻和暖如春义辕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背酿联。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留夺巩,地道東北人贞让。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像柳譬,于是被迫代替她去往敵國和親喳张。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,108評(píng)論 25 707
  • 我的上一份工作是在一家世界500強(qiáng)金融集團(tuán)擔(dān)任架構(gòu)師美澳,當(dāng)時(shí)销部,公司的IT團(tuán)隊(duì)規(guī)模將近2000人。與其他IT公司一樣制跟,...
    技匠閱讀 13,293評(píng)論 48 290
  • 切換頁面一般有如下兩種情況: 在當(dāng)前瀏覽器里打開多個(gè)窗口舅桩,窗口間切換 打開多個(gè)瀏覽器,瀏覽器之間切換 1. 切換窗...
    linlu_home閱讀 4,428評(píng)論 2 1
  • 聚焦于你的核心能力雨膨,為朋友圈帶來價(jià)值 形象管理最核心的理念是一致性擂涛,朋友圈不是生活的復(fù)制品,不要去講究時(shí)間聊记、場(chǎng)合撒妈,...
    阿羅的甜蜜圈閱讀 375評(píng)論 0 0
  • 第一日恢暖,第一次見面,我手捧一小束紅玫瑰 紅色代表熱情狰右,玫瑰表示原本平靜的內(nèi)心泛起的漣漪 第二日杰捂,我手捧一只橙色麗格...
    驕傲的彩虹旗閱讀 289評(píng)論 0 0