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