自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

你們不能這樣招聘程序員

開發(fā) 前端 移動開發(fā)
作為程序員,找工作有時候似乎挺苦逼的。說真的,讓我去掉前面這句中“似乎”二字吧。就是苦逼!很多人都曾抱怨處在招聘的一方很糟糕。但是應(yīng)聘的一方(我現(xiàn)在所在的一方)也很苦逼。招聘方遇到的困境,也恰恰是造成痛苦流程的原因。
[[233976]]

作為程序員,找工作有時候似乎挺苦逼的。

說真的,讓我去掉前面這句中“似乎”二字吧。就是苦逼!很多人都曾抱怨處在招聘的一方很糟糕——我們沒有任何可靠的方式來甄別會寫代碼并且寫得好的人。這的確是真的,我們這行在這方面做得很糟糕。即使是在最常見的開發(fā)者群體(美國人、男性、白人、較為年輕和中產(chǎn)背景)當中,我們的甄別能力也絕對是一敗涂地,而當面對更廣泛的人群時,我們只會干得更差。但我們不得不擴大范圍,因為就算我們沒有道德感,我們也面臨著數(shù)量的問題,職位崗位比上述“精英”多,總共只有那么多美國中產(chǎn)二十多歲的白人男性,然后其中一半根本不會應(yīng)聘你們只發(fā)股權(quán)的“支持Uber、23andme、推特、部落沖突的無人機運輸”公司,因為他們正在你創(chuàng)業(yè)的星巴克馬路對面的另一家星巴克成立自己的公司。另一方面稱職并且想要技術(shù)崗位卻沒得到的女性、非白人、外國人數(shù)量簡直太多了。

但是應(yīng)聘的一方(我現(xiàn)在所在的一方)也很苦逼。招聘方遇到的困境,也恰恰是造成痛苦流程的原因。

教育很爛

我們嘗試過的其中一個方法是看學歷。但是我們根本不擅長在學校教人編程。涉及到計算機的課程,應(yīng)該是數(shù)學系還是工程系的延伸,多數(shù)大學都決定不下來。結(jié)果他們最后弄出來的是詭異的融合,但其實兩者都不是;或者他們在教編程,但是語言和技術(shù)已經(jīng)落后現(xiàn)有規(guī)范好多年;又或者他們讓學生死記算法列表及其復雜度,這會讓學生誤以為編程不過是死記硬背,然后成為一個能輸出正確算法名字和偽代碼的自動機。因為公司真正想找的是就是復讀機,難道不是嗎?直接開發(fā)一個數(shù)據(jù)結(jié)構(gòu)的復讀機,可能再加上一個排序算法的復讀機,大概就能省下很多面試的時間。

我深信現(xiàn)有的教育方式及其缺陷,是造成我們聽到的軟件招聘恐怖故事的原因。擁有 CS 碩士學位,卻似乎不能從一張白紙開始寫代碼的人,其實不差;更有可能是他們受到的教育輕視實際編程而注重理論。在郵件列表和論壇發(fā)布“請給我寫好的代碼”帖子的人,其實不差;更有可能他們受到的教育建基于背誦和應(yīng)試。另外如果你從沒讀過著名物理學家費曼造訪一所采用這個方法的大學的故事,我強烈推薦它。

那仍然是編程教學處在的階段:我們知道自己需要程序員,而我們沒有足夠多的程序員來寫代碼,更別說教出更多的程序員,所以這種死記硬背的現(xiàn)象廣泛存在,這是因為這已經(jīng)是我們現(xiàn)在力所能及的范圍。我們只是希望我們“教”出來的學生,會跑去看 Ruby on Rails 的教程,然后無意中看見 GitHub 的文檔,然后從中神奇地學會真正的軟件開發(fā)、架構(gòu)和最佳規(guī)范。因為大家都明白,他們不可能在學校里學會這些。

與此同時另一方面,在我合作過的技術(shù)牛人當中,大多數(shù)根本沒有軟件工程和計算機科學的大學背景;很多人直到快上完學才第一次寫代碼( 不要臉的偏見:我直到快大學畢業(yè)才開始通常意義上的“編程”,我也是在畢業(yè)幾年后才開始以此謀生)。很多真正厲害的人會被“計算機科學本科”這一條件過濾掉,這是招聘方不謹慎定下職位要求時會遇到的問題。即使招聘方費心加上“或擁有相當?shù)慕?jīng)驗”,他們甚至也還是被過濾掉,因為履歷上的學位似乎就是招聘者和 HR 篩選推送給實際技術(shù)人員的求職者的第一條依據(jù)。

順帶一提,我有一個哲學學位。并不是炫耀,不過軟件領(lǐng)域很多我認識并尊敬的非常厲害的人都有著相同的背景。

所以將學歷作為篩選標準效果并不好;公司也很苦逼,因為擁有 CS 學位并不意味著一個人已經(jīng)準備好坐下來寫代碼;準備好寫代碼的求職者也苦逼,因為沒有 CS 學位仍然是個短板,而且為了學位回歸學校四年并不輕松。而且每一飛秒都有五萬個編程訓練營/培訓班被啟動,從中出來的人擁有哲學系、文學系、神學系、歷史系和現(xiàn)代 A 線詩歌符號學的學位,但是當他們經(jīng)歷了訓練營后,他們大概至少能和計算機系的學生水平相當,因為 CS 的課程基本都很爛,而且主動加入編程訓練營的人通常很聰明而且充滿動力。而且如果他們能學會拆解 A 線詩歌,基本就能確認他們能用你的 JavaScript 框架寫出一個 CRUD 應(yīng)用程序,因為那個 JavaScript 框架上周才發(fā)布,所以根本沒有多少人擁有超過一兩天的 ReAngleBoneASS 實戰(zhàn)經(jīng)驗。

編程面試很爛

由于學歷不靠譜,另一個甄別會編程的人的方式是編程面試。求職者和公司內(nèi)部的某人交談(通常是電話或者視頻聊天),并被要求寫出解決問題的代碼。如果你還保留著好奇心我就告訴你吧,我們不擅長用這個方式選出會編程的人。簡單來說,此類面試并不靠譜,因為它們太短、太做作、太壓迫。

詳細一點來說:我認識多個頂級人才被他們絕對勝任的職位給拒了,就因為這種編程面試。我傾向于把它們看作“問個謎語”風潮的最新版,這個環(huán)節(jié)當年由于微軟的實施而流行一時,因為每家公司都想像微軟一樣又大又成功?,F(xiàn)在,人們聽說谷歌會進行編程面試,并且看到Jeff Atwood 的 FizzBuzz 測試,而每家公司都想像谷歌一樣又大又成功,并且與 Jeff Atwood 的招聘恐怖故事產(chǎn)生共鳴,所以現(xiàn)在所有人都在進行編程面試。但是這種面試依舊很爛。可能這是因為谷歌據(jù)說用的是白板,而其他公司用的是電話。

想不想看一個非常稱職卻因為編程面試而被拒絕的一個例子?他被拒是因為面試官在電話那頭筆錄錯了他念的 Bash 腳本,這當然讓腳本出了問題。我絕對沒有開玩笑或者夸張,而除了“神經(jīng)病”我實在找不到其他形容。如果用的是白板,他就被錄取了。

事實上,我十分確定我搞砸過一次編程面試(至少我到現(xiàn)在還沒收到該公司的答復)。要記住我并不是剛畢業(yè)入行的人。我已經(jīng)有超過十年的 Web 應(yīng)用開發(fā)經(jīng)驗,處理過各種各樣的規(guī)模系統(tǒng);我是一個非常重要的 Web 框架的核心團隊成員,并且可能是這方面的世界級專家;我真的寫了關(guān)于使用該框架的書(最早的幾本之一),有時會被聘請去教這個框架,以及被學術(shù)會議邀請去做關(guān)于這個框架的 keynote 演講。我曾經(jīng)有一陣子沒怎么睡覺,全程死死盯著一個正在運行的程序,想要理清 Django 的舊式系統(tǒng),發(fā)現(xiàn)我的精神動物是一只遲緩的懶猴,而過了一陣子當我的意識像甘道夫那樣重新塞進身體時,我提交了僅僅兩行代碼進行反擊,解決了五個“深藏 Django 腹中”不同的 bug。我挺擅長這些的,如果你還沒注意到的話我希望你記住這點咯。

我希望你注意到,因為我基本確信我最近搞砸了一次編程面試。

我不會提那家公司的名字,因為這跟本文無關(guān)。我也不會公布他們問的題目,因為那也同樣無關(guān)。那個題目并沒有 FizzBuzz 那么簡單,但還是很簡單,是我下意識就能提出好幾種解決方式的那種問題。面試官否決了我偏好的方法(大概因為這個方法直接調(diào)用標準庫的函數(shù)而無法展示我能手動解決),于是我換了另一個方式。而我從記憶中重新構(gòu)筑這個方法的時候恰巧犯了一個小錯誤,因為我過于自信了并且想跟面試官聊其他的,于是我想著我都知道怎么只靠記憶完成這個解決方案了,為啥不趕緊水過這個題目,然后談?wù)勎艺嬲诤醯氖履亍?/p>

順便一提,我出了一個小筆誤,就是我給錯誤的循環(huán)變量加了值。單字母的變量名很糟糕,即使是在你為了敷衍面試官而寫的傻瓜程序里;再說白一點,代碼能跑起來,但是結(jié)果是錯誤的。

而當程序跑完然后吐出錯誤的結(jié)果時,我全部的自信都蕩然無存,內(nèi)心OS:“我的個天!為啥不對!我應(yīng)該知道的呀”,然后我一邊瘋狂調(diào)試,一邊嘗試向面試官解釋我的做法并且回答他們的問題,一邊讀代碼、看結(jié)果、加 debug 語句來查看中間值,然后整個氣氛是:「哦!提醒一下,這會決定你是否能得到心儀的工作,所以別有任何負擔哦」。

所以雖然我修改好了,但是用了比正常更多的時間,這讓我想到我是不是可能會變成 Atwood 風格的失敗招聘故事的新事例。“沒錯,有個擁有十年經(jīng)驗的人,所謂‘專家’,通過了前兩輪電面,結(jié)果他居然連這個超級簡單的函數(shù)都不會寫,還花了九牛二虎之力來找到自己的錯誤。用這題當過濾器真是爽歪歪!”

如果你曾經(jīng)在一輪技術(shù)面試之后感覺糟糕,如果你曾經(jīng)感覺你徹底失敗,是個廢物,不該獲得任何職位,只想住到遠離計算機、技術(shù)和那些讓你產(chǎn)生這種情緒的招聘流程的話:我真希望我能說一切正在好轉(zhuǎn)。我能說的是,你并不是一個人。我自身的傲慢和想要趕緊完事然后往下繼續(xù)的不耐煩,是我在那次面試失敗的主因。

但是那并不會讓最終的結(jié)果容易接受,也大概不會讓這種面試變成公司有力的工具;這些面試似乎就是因為它們自身的屬性而無法避免地會擠走合格的候選人。也就是說:缺乏經(jīng)驗的應(yīng)聘者更有可能缺乏自信而大腦一片空白;或者花費太多力氣來想出驚艷面試官的奇招,以至于最終垂死掙扎,看著無能;而有經(jīng)驗的應(yīng)聘者很可能(我就是)把這種面試看成煩人的形式主義,只想越快搞定越好(約時間進行編程面試的時候,我甚至還跟招聘方開玩笑說我至少能用六種語言寫 FizzBuzz,所以他們就直接告訴我想要哪種吧),面試結(jié)果只會符合古希臘人教育我們對于過分自信的期望。

而作為應(yīng)聘者/候選人,這種面試更是爛。壓力太大和缺乏容錯空間,總是會讓人感覺身體不適。編程面試對精神的虐待也同樣糟糕。這真的是一個簡單的“來證明你會寫 for 循環(huán)吧”的題目嗎?還是說這是一道藏著面試官想讓你發(fā)現(xiàn)并闡述的深層問題的陷阱題?

這真的只是在考察基本的編程技巧嗎?會不會有一些知名的算法或技巧,而你沒有的 CS 學位早就會讓你滾瓜爛熟,甚至能作為軟件共濟會的接頭暗號?你是不是應(yīng)該展示你精通這個語言和工具,還是說他們想你開口說出心中所想,來展示你可以好好分析這個問題?如果你能在 A 線詩歌里面藏頭打出“FizzBuzz”,面試官會不會對你印象更好?

這些念頭會全程縈繞在你的腦海。他們會使你麻痹,抽空你的自信和思考能力,然后讓你看上去完全不勝任。但是 $大公司 就是這么干的,他們又大又有錢又成功,所以其他人也會跟著做,留下一片大腦麻痹、毫無自信、猶豫再三再四再七十四的僵尸程序員,他們只會語氣平平大聲喊“超出遞歸最大深度”,而那些公司只會全程抱怨為什么就是找不到人才,然后麻煩誰能清理一下這些僵尸嗎?

一切都很爛

我曾多次處在招聘雙方的處境,我也經(jīng)歷過這個欣欣向榮的軟件行業(yè)的各個階段的面試(我似乎平均每五年就要找一輪工作,這讓我對各個階段都有一些有趣的印象)。而我從中學到的只是我們干得太糟糕了。科學哲學(我在學校學過一點)有個很有名的“劃界問題”:如何區(qū)分真正的科學,和那些用 看起來是正經(jīng)科學的字眼 包裝起來的偽科學。這個問題,至今仍沒有什么靈丹妙藥。

軟件開發(fā)也面臨著劃界問題,但我們的問題有點不同:我們需要知道的不僅僅是誰已經(jīng)會寫代碼,還要知道寫得多好,而在那些還不會寫的有志之士當中,他們還差多少,還需要多少幫助才能做到(換言之,不僅僅是“我們可以聘用誰”,還有“高低職位分別可以聘用誰”,以及“我們可以招哪個實習生然后給他推薦好的培訓日后再聘用他”)。這邊也沒有靈丹妙藥;如果存在的話,我們早就找到了,因為很多天才都花了大量的時間在尋找它。

至今為止,我發(fā)現(xiàn)有用的做法總會在其他時候失靈。那包含了審查 GitHub 或其他類似的東西來評估能力;用人際關(guān)系和介紹信來找出已經(jīng)證明自己的人;用對話形式、交換人生故事的面試(也就是面試官和應(yīng)聘者聊一些看過做過的事,還有他們解決問題的方式);編程面試;“關(guān)鍵詞”面試(我參加過一次面試,目標真的就只是看應(yīng)聘者有沒有“說出關(guān)鍵詞”,來看他們是不是真的熟悉這個領(lǐng)域);高壓面試;低壓面試;短合同觀察期;實習生返聘計劃;團隊融入面試;結(jié)對編程;黑客馬拉松;一對一面試;多對一面試;你再隨便想一個吧,肯定被使用過了而且成功率最高只有一半。

因此這對雇主很不利。我應(yīng)該提到過對應(yīng)聘者來說也很爛了吧?太多流程都嚴重有失公允,然后由于面試官和應(yīng)聘者立場上的鴻溝,這些流程更加糟糕。有時候你甚至不知道有人在評估你(特別是當流程第一環(huán)節(jié)就是 GitHub 主頁篩選的時候),而且被找來主管技術(shù)/編程面試的人,經(jīng)常把這看作一件浪費時間的苦差事,他們不會花時間準備,甚至不會了解一下應(yīng)聘者,甚至不知道他們來面試什么崗位(我遭遇過好幾次這樣的情況,我敢說一個連應(yīng)聘者的簡歷都懶得看的面試官,是不會讓應(yīng)聘者想要加入他們的)。除此之外,就算是最好的技術(shù)面試,也有很強的對抗性因素,這也特別讓人不舒服。

但是作為應(yīng)聘者,不在面試前惡補公司的技術(shù)結(jié)構(gòu),可能加上一些技術(shù)面經(jīng),包含排序、搜搜算法和怎么計算費米對芝加哥鋼琴調(diào)音師人數(shù)的估計算法的復雜度。應(yīng)聘者事先不做準備,那就太離譜了。因為就算面試官可以完全不了解應(yīng)聘者和那個職位,應(yīng)聘者必須做足功夫,說不定面試官真的會問調(diào)音師那道題。

我知道理論上這種非人性化和脫節(jié),是太多人申請技術(shù)崗位的副作用;讓流程人性化和處理所有申請,這兩者不可兼得。但這肯定會讓求職者充滿苦澀。我真希望,我能感覺我是作為一個將要成為同事的人在接受面試,而不是由可替換齒輪 #7365 作為可替換齒輪 #9540 崗位的面試官,然后由于更多的可替換齒輪在排隊面試而時間有限。而且如果你是最早的五千個齒輪,你只能獲得股權(quán)。

這完全沒考慮到人與人的差別,有些人擅長應(yīng)對形式化的面試,而有些人并不擅長。(這兩點都看不出,這個人會在真正的工作環(huán)境做得如何;如果看得出的話,那某種程度上,這些面試技巧可以用來申請我并不想要的那種職位。)

那我們該怎么做?

老實說,我根本不知道。技術(shù)招聘對各方來說都很爛,而且沒有簡單的解決方式。甚至都沒有能讓我們撐到解決方式出爐的權(quán)宜之計。不過我還是會提一些東西,只因為洋洋灑灑寫 3,000 字吐槽卻不提出建議,看上去太糟糕了。

一旦一家公司大到分離出專門的招聘團隊或部門時,HR 就會變成應(yīng)聘者和現(xiàn)有員工雙方的痛點。我的意思是應(yīng)聘者面對的很多招聘者,他們自己都只是剛剛找到工作。這就降低了他們的反應(yīng)能力以及說服其他人這家公司值得加入的能力,拖慢了整個招聘流程。

如果你的招聘團隊像旋轉(zhuǎn)門一樣很多人進進出出,你就該找出原因并解決問題,保證你放在那里的人真的了解公司,了解你在找的人才,別讓任何一方(應(yīng)聘者或需要信任的團隊)空等。說的就是你,上次電話一個禮拜了都還沒發(fā)送“招聘進度”郵件的某某公司。

當你依靠開發(fā)者進行面試時,請負責任地排好班。你已經(jīng)在占用他們的時間,而且強迫他們切換注意力了;確保他們有足夠的時間來不僅僅是打一個 30 分鐘的電話,還要瀏覽應(yīng)聘者的簡歷、GitHub 等,了解他們主管的職位的細節(jié)。跟一個能說出“我發(fā)現(xiàn)你做了/貢獻了(項目)”并且能把這個項目跟公司和職位扯上關(guān)系的人交談雖然只是一個小美好,但是小美好可以產(chǎn)生深遠的影響。還有要確保面試官想要當面試官;我能判斷出對方很明顯只想面試趕緊結(jié)束然后回到“宏圖大計”,這很糟糕。

別搞編程面試,如果可以的話,看看應(yīng)聘者寫過的代碼,或者向他們描述你最近遇到的一個小 bug,然后問他們會怎么解決。如果你能相處跟職位相關(guān)的問題那就更好了。讓應(yīng)聘者選擇在電話上解釋,或者寫下來發(fā)郵件給你。我認識一些能寫出神級代碼卻沒辦法開口好好解釋的人,我也認識擅長開口解釋卻害怕寫哪怕只是零散代碼的人;除非你的職位要求特別的演說/寫作能力,不然就別偏向任何一邊。

如果你必須進行編程面試,把用時和壓力控制在合理的范圍——你家的開發(fā)者都未必能在 30 分鐘內(nèi)在面對陌生人電話聽寫軟件輸出的情況下解決 bug,那就別強迫應(yīng)聘者了。還有,你可以讓討厭面試的開發(fā)者改變心態(tài):“這不是面試,是代碼評估”。所有人都能把代碼評估“電解”成 Agile™ 和 Lean® 等等的關(guān)鍵詞。代碼評估有開發(fā)者渴望的元素!

在所有這些之上最重要的是,請人性化一些。我們不是機器;我們只是讓機器做有趣的事情。有時候我們甚至可以讓它們做正確而有趣的事情。但我們終究是人類,而現(xiàn)在的招聘流程存在鴻溝般嚴重的人性化缺失。對人類人性化一些吧,其他所有事情都會輕松很多。

責任編輯:未麗燕 來源: 代碼灣編譯
相關(guān)推薦

2014-03-04 09:43:23

程序員外包

2016-04-28 11:17:33

互動出版網(wǎng)

2014-11-25 10:14:04

程序員

2014-11-26 09:21:30

程序員

2011-07-07 10:14:14

編程

2013-06-05 10:49:57

招聘招聘程序員

2013-06-08 14:12:13

程序員招聘

2015-11-17 09:30:23

程序員招聘建議

2019-01-02 07:36:28

微軟 Windows 程序員

2014-01-08 09:26:05

程序員招聘

2013-10-29 10:24:31

程序員漫畫

2012-09-29 10:49:36

程序員debug架構(gòu)

2022-01-29 00:08:30

程序員編程語言Java

2020-05-08 10:28:29

Node.js程序員JavaScript

2014-04-01 09:13:23

程序員招聘

2020-08-10 08:12:18

Java程序員開發(fā)

2015-07-14 10:21:58

2015-10-23 15:49:55

程序員加薪升職

2015-05-13 10:42:21

程序員代碼

2015-10-26 09:10:38

程序員加薪新方法
點贊
收藏

51CTO技術(shù)棧公眾號