為什么高級工程師討厭編程面試?
本文轉載自公眾號“讀芯術”(ID:AI_Discovery)。
而你應該使用什么
想象一下,你是一家希望招募新老師的K-8小型學校的校長。由于你的老師少于20名,因此必須確保雇用的每個人都可以教任何年級。更復雜的是,你最近失去了一位最好的老師,一位擁有15年經驗的人,以及許多初級老師的導師。你怎么能代替她?
經過一番思考,你可以制作出自己認為是一種創造性的面試方法。當候選人出現時,你要求他們教授從K-8課程中汲取的教訓。為了確保候選人全面發展,在面試開始之前不告訴他們要教的課程。如果他們做到了這一點,就可以推斷出他們可以輕松地教任何東西,因為他們對于隨機選擇的主題上,在壓力下表現出色,你發出的通知是你正在招聘,并且有一些真正出色的應聘者。但是,對于這種新方法的首次測試,你打算嘗試通過推薦進行嘗試,該老師是你的一名員工過去與之合作過的老師,并聲稱是學校的明星。你會為她申請的運氣感到驚訝,并認為她將是新面試過程的完美考驗。你聯系她安排面談日期,并告訴她你正在使用的這項新技術,以便給她一些準備的機會。
然后面試的日子到了,你的候選人出現在學校。你會感覺到她有點緊張,這很奇怪,因為她是一位經驗豐富的候選人,簡歷無懈可擊。你決定不對此進行詳細介紹,而是將她帶到一個教室中開始采訪。 "我希望您教給我一門關于數論的課程"。那時,她的臉下沉了,因為你不認識她,所以她十年多沒教過8年級了。但她始終是專業人士,因此上了臺并開始課程。她談到質數,以及如何確定給定數字是否可以被2、5和10整除,但她仍在努力。當你詢問GCF和LCM時,她需要澄清首字母縮寫詞,你認為這是一個不好的信號。你解釋說,您指的是"最大公約數"和"最小公倍數",但此時可以說出她的信心已被擊中,并且你的聲音中有些淡淡的煩惱。
在一小時結束時,她偶然發現了數字理論的要點,但并沒有讓你充滿信心,她可以在一群表現不佳的8年級學生面前盯牢這節課。她在其他基于行為的面試中表現出色,但你無法擺脫這種感覺,因為她可能不是最佳的室內老師。經過深思熟慮,你決定放棄她,并雇用經驗不足的老師,他們在"課程測試"方面表現出色。
盡管這似乎是一個完全人為的示例,并且是面試授課申請人的一種奇怪方法,但這恰恰是用來面試軟件工程師的方法。盡管我并不是要說編程面試完全被打破了(盡管其他人已經做到了),但我堅信,在面試高級工程師時他們沒有方向。
為什么?簡而言之,高級工程師是不同的,典型的編程面試使他們處于劣勢,原因有很多:
(1) 他們需要花費大量的準備時間-編程面試從軟件開發的整個領域汲取,因此很難為詳盡的準備做準備。對于高級工程師,此問題有兩種解決方法。首先,顧名思義,他們被進一步取消了學業,這可能是他們最后一次遇到軟件開發中一些更深奧的方面(動態編程,紅黑樹甚至是遞歸)。在各種各樣的算法和數據結構上刷新它們的內存可能會花費大量的準備時間。除此之外,高級工程師對時間的壓力更大(他們要求苛刻的工作,并且通常承擔重大的個人責任),這成為一場完美的風暴。我知道有幾種情況,高級工程師詢問了給定雇主的面試過程,并且聽說有一次編程面試,就拒絕面試。
(2) 他們推動高級工程師以不同的方式工作-高級工程師與用于編程面試的基本開發環境相距甚遠。他們通常具有經過高度優化的環境,經過多年的完善,旨在使他們擺脫不必要的編程負擔。在不加限制的人為的時間約束下,將其從中分離出來會使他們處于明顯的劣勢。此外,他們可能在過去幾年中使用了現有雇主的專有庫(內存管理,錯誤檢查,跟蹤)。一次編程面試使他們突然脫離了舒適區,回到了標準庫和簡單文本編輯器的世界。
(3) 他們并沒有真正測試過您希望他們聘用后會做什么—也許與高級工程師進行編程面試中最令人震驚的方面是他們只測試了要雇用他們做的一小部分。高級工程師的收入通常比新畢業生的收入高3-5倍(或更高)。期望他們產生比新畢業生多3到5倍的代碼是不合理的–一天中沒有足夠的時間。相反,你正在尋找他們來幫助初級工程師團隊,指導那些人,識別系統性問題,調試最復雜的問題,以及在進行編碼時了解復雜的系統以及在其中進行編碼所需的復雜工作。這些方面都沒有在編程面試中得到測試,這是高級工程師討厭它們的主要原因之一。
(4) 他們發出了不好的信息-正如您所知,你并不是要雇用高級工程師來編寫代碼,他們也知道。但是,當在招聘過程中強調編程面試時,就會讓高級工程師第二次猜測要招聘的職位。"他們只是想讓我成為碼農嗎?""我會在這里浪費我的才能嗎?""這是向前邁出的一步,還是向后邁了一步?"如果你想要的最后一件事是讓有才華的工程師對面試過程中的角色或您的公司有疑問。問他們編程面試問題就可以了。
總結所有這些因素,高級工程師討厭編程面試也就不足為奇了。如果想吸引最優秀的高級工程師并減少在這個特別緊張的勞動力市場中的面試摩擦,我建議不要再問他們編程面試問題了。
但是,你可能在想,我怎么知道他們是否可以編程?如果您不愿雇用高級工程師而對他們的編碼能力一無所知,建議您提供簡短的實地工作(最多不超過一兩個小時)。大多數高級工程師應該能夠找到少量時間來完成這樣的任務,尤其是因為這樣做省去了編碼面試所需的準備工作,并且可以分成更小的時間片,從而更適合他們的繁忙日程。帶回家的作業還允許他們在其本機IDE中工作(如果愿意的話),并花費任何必要的時間重新熟悉標準庫。
另外一個好處是,申請人可以根據自己的意愿花一些時間進行練習,這一事實可以深入了解使他們打勾的原因。他們對注釋是否體貼?是否全面考慮測試?他們是否以合理且易于理解的方式來組織代碼?他們是否在乎提交的工作質量?換句話說,你不僅會知道他們是否可以編寫代碼,而且會知道他們是否可以很好地編寫代碼,并且設置的更為現實。
高級工程師是任何軟件組織的命脈。他們是最理想,最昂貴且最難吸引的。尤其是在歷史上緊張的勞動力市場上,招聘過程需要針對他們的特定需求進行量身定制,因為你比他們更需要他們。
高級工程師討厭編程面試,如果您想采用最好的面試,你也應該討厭他們。
【責任編輯:趙寧寧 TEL:(010)68476606】