(點選上方公眾號,可快速關註)
編譯:伯樂線上/飛哥的咖啡
http://blog.jobbole.com/113652/
為什麼程式員找不到工作:4 個恐怖故事
【伯樂線上導讀】:當求職被拒時,我們多半會認為是自己的錯:“我被三家公司拒了,我可能是一個差勁的工程師。”招聘比你想象的還要複雜。工程師出身的技術獵頭 Iwan 在本文講了 4 個故事,那些優秀的工程師,因為一些無關技術水平或文化契合等原因,遭到拒絕。
以下是全文:
我做了很長一段時間的技術招聘後,我可以向你保證,招聘過程中的隨機因素和幹擾因素(false negatives)也很重要。通常,拒絕是由於發生的偶然事件和一些不合理的原因(true negative)造成的。
恐怖故事 1:候選人因框架而拒
針對一家代理公司的前端需求,我推薦了一個前端工程師,他對 ECMAScript 和開源專案做出了很大的貢獻。我花了好幾個星期找到這個人,並花了好幾個小時來詳細評估他,包括影片面試(我們喜歡在 coderfit.com 上這樣做)。但是,僅僅在審查了 10 分鐘他提交的程式碼後,代理公司的一名工程師就拒絕了他。候選人甚至沒有得到一個合適的拒絕理由,僅有公司寄給他一個固定模板的回覆:
“[…]儘管你的簡歷和求職信很有競爭力,我們的招聘團隊審查你的應用程式後,認為你不在我們的考慮範圍內。“[…]
這是一個非常糟糕的回覆,因為他從沒提交過求職信!讀完回覆後,我拋下手中的一切事情,開車來到他們的辦公室,去和代理公司的那個工程師談談,因為他拒絕的這位候選者,是我在 2017 年面試過中的最佳前端工程師。
期初,代理公司負責面試的工程師沒有告訴我真正拒絕的理由,他只是說儘管結構是正確的,所有 ES6 運運算元和短函式都是正確的,但“程式碼設計過度”。經過 10 分鐘的討論後,拒絕的理由清晰:因為候選人使用了一個面試官不知道的 MVC 框架。我覺得候選人能在編碼面試中使用這個框架非常了不起,所以我無法理解這(對面試的公司而言)會是一個問題。
透過一些背景調查,我明白了更深層次的原因,也知道了為什麼候選人要使用這個 MVC 框架:招聘公司希望尋找的,是可重覆迴圈利用的程式和方案(以節約相應的時間和金錢),而首席工程師(不是那個面試官)向我抱怨,候選人這樣的則更傾向於“為每個客戶重新造輪子”,這明顯不符合公司的訴求。然而,我推薦的候選人在他的空閑時間,做了一個定製框架,恰恰解決了代理公司正面臨的一些問題。
但是那位面試官沒有看過我的文章或影片採訪記錄,他沒有考慮候選人使用這個框架的原因,只是單純地給出了“拒絕”這一結果。而且,團隊領導人(同時也是候選人的支持者)正巧在休假,他也無法幹預結果。
提示:在做評估之前,先瞭解別人對候選人的看法,這不好。但在某些情況下,如果有特殊狀況,這樣做還是有意義的。
這個故事讓人特別難過,因為 CEO 相信我並給我一些額外的報酬,讓我給他們帶來“最好的人”,所以我對這事格外用心。然而,我卻沒有得到公司員工和招聘負責人的支援,他們並沒有真正意義上評估我推薦的候選人。拒絕候選人的工程師甚至告訴我:“招聘對我們來說,無足輕重。”如果你作為招聘人員獲得了額外的報酬,這會讓你更有動力和使命感;但如果你缺乏被僱傭團隊的支援,那麼招聘的價值就幾乎不存在了。
更糟糕的是,這位候選人在受到這樣的待遇後,產生了抵觸情緒,不想再和其他瑞士僱主有所接觸(吐槽點:來自 HR 的模板式回覆,沒有反饋,程式碼提交後等待兩周才被審核)。
恐怖故事 2:前谷歌工程師差點因為不知道貝葉斯公式被拒
一家創業公司為了招聘一位 Python 工程師,面試了一個在谷歌工作四年的程式員。由於每個人都認為他會要求一份從谷歌到蘇黎世的補償金(超過 200k 瑞士法郎,工程師平均工資的兩倍),我在推薦他的時候碰到了點阻力。
然而,他提出的要求合情合理,只是想要(加入)一個和諧的團隊,來面對有趣的技術挑戰。因此,他接受了每一輪面試,並給大多數和他交談過的人留下了深刻印象。一家初創公司讓他經歷了四輪面試,而最後一輪他和麵試團隊裡的每個人都談了一次。
面試結束後,一個人站了起來,明確表示不應該僱傭候選人,因為他不知道/不能解釋貝葉斯公式(Bayesian formula)。
幾乎沒人關心這點,技術主管除外,他是唯一與團隊共擔風險的人,並直接向 CEO 彙報。幾個月以來團隊都沒有僱傭任何人。面對這種情況,他行使了自己的否決權,並明確表示,因為沒有熟記一些細節的瑣事而拒絕一名優秀的工程師,這是一個非常愚蠢的理由。他們最終僱傭了候選人。後來的結果證明,被僱傭的工程師是公司有史以來做出最大貢獻的人。
事實證明,技術主管的決定是正確的:候選人安裝了開發環境後,在第一天就破紀錄地把三個 bug 解決了。之後,每個人都很激動,對這個決定感到高興。
谷歌等一些大公司使用技巧或演演算法問題,是因為這些大公司能夠承擔招聘過程中的錯漏問題:它們可以拒絕很多優秀的候選人,是因為有無數人想為它們工作(谷歌每年有 300 萬個求職申請)。正如 Erin Ptacek 曾說過的:“瘋狂的定義就是以谷歌的風格做事,並期待成功降臨。”
恐怖故事 3:程式員被 HR “遺忘”了
通常,我密切關註我的候選人,以及他們在招聘渠道的進展。當我在度假時,一個 CEO 接受了我推薦的一名程式員,但遠在另一個國家的 HR 部門卻沒有跟進。由於我在度假,我也沒有及時跟進,而候選人考慮了幾周後,得出了他被拒絕的結論,因為沒有人跟進,告知他結果(如果沒有人跟進,也並不意味著拒絕)。這是一個典型的工程錯誤。
兩個月後,我再次接觸這位候選人,問他發生了什麼事。他和 HR 都不明白為什麼沒有後續進展了。所以我給所有相關人員都寫了郵件,詢問我們是否能結束整個招聘流程。
一般而言,HR 薪資較低、內部結構混亂。內部招聘人員通常還要負責其他行政任務,而不只是招聘事務。更糟糕的是,有時小公司甚至沒有 HR 部門,而前臺的人負責簡歷的審核、拒絕和轉發操作。這些人通常不太瞭解技術崗位的要求。他們從招聘經理那裡接受了 15 分鐘的簡報,知道了一些資訊關於“正在尋找的人才”,然後做些適當的“過濾”。由於缺乏相關知識和對崗位的瞭解,結果往往不盡如人意。
恐怖故事 4:候選人因為比面試官牛叉被拒
有 Hacker News 網友評論說,有時候優秀的候選人不會被錄用,因為他們太優秀了~ 所以,我寫下了一直困擾我的第 4 個故事:
我也曾碰到過這種情況,現在我仍然認為候選人的技術能力比面試官要好。那位候選人是個 22 歲的天才程式員,對開源程式做出過貢獻,但在程式碼篩選階段被拒,我們就叫那個拒絕的面試官 Jon 好了。我對此感到十分震驚,所以我打了個電話來討論此事。HR、Jon 和我三人參與了這次電話會議。
Jon 在電話裡給出的理由有點可笑,我甚至不確定 Jon 是不是認真的。值得一提的是,Jon 的 Github 貢獻,推送請求(pull request)等其他方面都很糟糕,但正是他負責招聘的簡歷篩選,所以我必須聽聽他的反饋。
Jon 指出了程式碼中的一些問題,甚至讓我們在共享螢幕上看看。他提到的所有事情,其實都是更符合當下的傾向性選擇,而不是真正的問題。他批評的其他東西在外行看來確實有問題,但實際上都有著很好的理由去解釋(冗長的 try catch 塊,是由於程式碼與互動的 API 不乾凈)。然後我就發火了,他的這些批評激發了我防禦機制,並提出候選人程式碼的質量比 Jon 發在 Github 上的還要好,此時的我像變了個人似的。此時,HR 制止了我,並提醒道“我們現在並不是在評估 Jon”。但為時已晚,我只好快速轉移話題,並結束了電話。
這可能成為另一篇博文的素材,如果這也解釋了人們為什麼暗地裡喜歡僱傭比他們笨一點,或能力差一點的人;個人面試官和公司作為一個整體,可能會害怕僱傭那些知道的更多,或比他們更有才的候選人。因為候選人太優秀而拒絕他們,這樣的理由並不能讓人接受,所以退一步方法是聚焦在候選人弱點或不同的地方,以此讓候選人退縮。
結語
招聘比你想象的還要複雜。如果你被拒了,這不代表你是一個不合格的工程師,因為被拒的原因可能有很多。
如果你不清楚為什麼會有招聘中介公司的存在,那麼,我來告訴你,它們有時可以阻止本文提到的一些事情的發生。我們將人與賴以生存的工作進行匹配,除了遊戲制定者,我們在這場遊戲中擁有最大可能性,來消除彼此的障礙,讓人們得到工作。如果你有瘋狂的被拒故事,請在下方留言。
看完本文有收穫?請轉發分享給更多人
關註「資料分析與開發」,提升資料技能