我真傻,招了一堆只會“谷歌”的程序員!
整理 | 鄭麗媛 ,出品 | CSDN(ID:CSDNnews)編輯:小林 Coding
不同于幾十年前曾經(jīng)尚在起步的互聯(lián)網(wǎng)時代,現(xiàn)在我們可以借助網(wǎng)絡(luò)解決各類問題:從生活瑣粹到專業(yè)技術(shù),只要耐心,就一定能找到答案。
一如國內(nèi)大多習(xí)慣于“百度一下,你就知道”,谷歌也是多數(shù)國外用戶首選的搜索引擎——按理說,這并沒有什么不好。
然而,國外有位程序員老歌 @nmivan 曾分享過一則他被“谷歌”坑了的故事:“我這個白癡,招到了一堆只會‘谷歌’的程序員!”
以下是 @nmivan 的親身經(jīng)歷(為更具代入感,本文將以第一人稱敘述)。
自負(fù)如我,決定把“筆試”變?yōu)椤皺C考”
我是一名技術(shù)面試官,一直都在負(fù)責(zé)公司的技術(shù)面試,有一套雖非原創(chuàng)、但簡約有效的招聘流程:先對應(yīng)聘者進(jìn)行一輪面試,再讓其做一些編程筆試——是真的“筆”試,就像在大學(xué)里考試一樣,應(yīng)聘者需要在紙上寫下解決問題的代碼。
事實證明,這個招聘流程很合理:我們所聘用的所有程序員都成為當(dāng)?shù)?IT 社區(qū)的重要專家,其中一半以上還在各個領(lǐng)域建立了自己的 IT 業(yè)務(wù)。
這般成績令我有些“迷失”了。在我看來,能招到這些優(yōu)秀人才完全歸功于我這個技術(shù)面試官所制定的招聘流程,而為了跟上時代發(fā)展,我決定在原本基礎(chǔ)上進(jìn)行一點改變。
“為什么要讓他們在紙上亂寫亂畫,這方式仿佛停留在古代?!笨紤]到我自己也快忘了在沒有 IDE、上下文代碼、調(diào)試等現(xiàn)代開發(fā)工具的幫助下編寫代碼是什么感覺,我改變了技術(shù)面的方式:從“筆試”變?yōu)椤皺C考”,即應(yīng)聘者無需再手“寫”代碼,改為在電腦上敲代碼。
最初,他們的表現(xiàn)確實不負(fù)期望
我的做法是,跟應(yīng)聘者說明編程任務(wù)后,給他/她一臺電腦,要求其在半個小時到一個小時內(nèi)完成——在此期間,我會離開處理一些其他工作。
等我回來后,迎接我的就是一個現(xiàn)成且完整的解決方案,不僅代碼漂亮,性能優(yōu)化得也很好。天真如我的第一反應(yīng)是:當(dāng)代人竟如此熱愛技術(shù),編寫代碼對他們來說就像呼吸一樣簡單!
因此毫無疑問,我雇用了這些人,他們最初也確實不負(fù)期望。
對新員工來說,一般入職的頭幾個月是一個挑戰(zhàn),因為他們忙于學(xué)習(xí)任務(wù)編碼,無法獨自承擔(dān)工作。意外的是,我在那批通過“機考”招聘進(jìn)來的程序員身上,完全沒有看到這類問題。
他們總是輕而易舉地完成我下達(dá)的簡單任務(wù),甚至還在沒有尋求幫助的情況下獨自處理了復(fù)雜任務(wù)——那時我再次天真地感慨:看看這正在成長的一代,多么美好??!
當(dāng)時,我以為永遠(yuǎn)都會這樣,他們將一直保持著目前生產(chǎn)力的增長速度持續(xù)提升??蓭讉€月之后,我逐漸意識到不對勁。
3-6 個月后,他們集體達(dá)到了一個“平臺期”
準(zhǔn)確來說,應(yīng)該是 3-6 個月后,他們的生產(chǎn)力集體達(dá)到了一個“平臺期”,再也無法增長。更不幸的是,疫情也在那時爆發(fā)了,所有人都開始遠(yuǎn)程辦公。
在那段遠(yuǎn)程辦公的日子里,他們的生產(chǎn)力從未提高,始終停留在實習(xí)生水平,導(dǎo)致我一直在群里瘋狂催進(jìn)度。
在我看來,這個問題應(yīng)該歸咎于遠(yuǎn)程辦公,他們可能缺乏動力、缺乏現(xiàn)場交流,隔著屏幕我也無法施展我的個人魅力。
因此當(dāng)我的上司向我質(zhì)問“因為遠(yuǎn)程工作,導(dǎo)致了生產(chǎn)力的增長停滯不前?”時,我十分篤定地回答:是的,只要我們一回到辦公室,生產(chǎn)力就會飆升!
打臉的是,等到八月份回辦公室工作后,我絕望地發(fā)現(xiàn):生產(chǎn)力還是完全沒有增長啊!為了解決這個問題,我親自下場,嘗試對他們提供幫助:這個任務(wù)不會處理?你看好,我來給你演示一遍,下次你要記住……
但很快,我就意識到這個方法效率太低,所以我決定回到處理問題的根源:技術(shù)面試。依舊還是“機考”,但不同的是,這一次我不會離開了,而是坐在他們旁邊。
本來我的打算是,對他們進(jìn)行一系列測試,先從基礎(chǔ)開始,再逐步提高難度。
離譜的是,這個計劃在基礎(chǔ)階段就結(jié)束了——他們之中,只有十分之一的人了解如何使用基本實體、類型;更糟糕的是,甚至只有 2-3 人在使用內(nèi)置幫助和上下文代碼補全的情況下才勉強完成得不錯。
我對這個結(jié)果十分震驚:他們根本就找不到屬性和方法,更別說使用了,他們甚至連最基本的任務(wù)都做不了,可之前的優(yōu)越表現(xiàn)是怎么回事?
直到有一個人在測試期間問了我一句:“我能谷歌一下嗎?”——那個瞬間,我這個“白癡”終于頓悟了。
破案了:一堆只會“谷歌”的程序員
在得到問題答案后,我大約用了兩天時間進(jìn)行消化,越想越生氣:
他們在初次應(yīng)聘時交給我的漂亮代碼來自互聯(lián)網(wǎng); 入職后的最初幾個月,他們生產(chǎn)力的爆炸式增長也來自互聯(lián)網(wǎng)上找到的解決方案; 他們在不了解基本結(jié)構(gòu)的情況下進(jìn)行編碼……不對,或許應(yīng)該說是下載或復(fù)制了代碼,反正他們一點都不知道怎么寫。
講道理,我可以理解他們想上網(wǎng)了解一些技術(shù)的工作原理,也可以理解他們想快速查找一些針對性資料,可讓我最不能接受的是:你怎么可以從網(wǎng)上復(fù)制一些作為程序員來說最基本的東西?!
面對我的質(zhì)問,他們顯得非常不以為然:“這有什么大不了的?”他們的態(tài)度讓我感到非常無力,我冷靜了幾天,開始思考這個問題的罪魁禍?zhǔn)住艺J(rèn)為,答案應(yīng)該是我。
是我傻,我沒有看清他們這一代人習(xí)慣遵循的行為方法,也沒有意識到這些習(xí)慣存在所導(dǎo)致的“膚淺”及其嚴(yán)重性。
對我來說,他們真是非常糟糕的混蛋
我還記得,在我上大學(xué)的第一天,一位副院長曾告訴我們:“大學(xué)不是給你知識的,而是教你如何靠自己獲取知識的?!?/p>
能在 2000 年代初學(xué)習(xí),我覺得我很幸運,我因此養(yǎng)成了從書本中找到問題答案的習(xí)慣——一切問題,想要解決就必須看書。相比之下,“谷歌”程序員就顯得沒那么幸運了,因為他們隨時隨地都可以獲取任何信息。
書上曾說:“大腦形成最重要的是,它精確加強了一個人使用的那些神經(jīng)連接?!边@句話也就是說,如果你不斷地編寫代碼,你就會做得越來越好;如果你經(jīng)常在網(wǎng)上尋找信息,你就可以掌握這項技能;如果你一直從網(wǎng)上復(fù)制代碼,你就會成為這方面的大師。
可惜,并非所有代碼都是開源的,此時這類“谷歌”程序員的平臺期也就到了——他們的生產(chǎn)力不是體現(xiàn)在編寫代碼上,而是從互聯(lián)網(wǎng)上復(fù)制代碼的效率。
或許在某些情況下,“谷歌”程序員會超越普通程序員,尤其在解決標(biāo)準(zhǔn)任務(wù)方面。但對我來說,他們真是非常糟糕的混蛋。
網(wǎng)友:“工作就是場開卷考試”
至此,@nmivan 分享的這個故事就結(jié)束了。
但我們在國內(nèi)外許多平臺上都可以發(fā)現(xiàn)類似提問:“程序員寫代碼時用百度/谷歌搜索,會被其他人鄙視嗎?”
部分人認(rèn)為,工作就是場開卷考試,借助互聯(lián)網(wǎng)無傷大雅:
“個人覺得,工作就是開卷考試,關(guān)鍵知識混個臉熟,能通過手冊、搜索、Stackoverflow 等找到就行。那種要敲一天代碼、千篇一律的項目要少做,與其敲代碼得累個半死,不如在項目結(jié)束時多總結(jié)一下,把共通的地方抽象出來,做好封裝或記錄下來,下次直接調(diào)用或復(fù)制粘貼?!?/p>
“能利用好身邊資源的人,總不會太差?!?/p>
也有部分人認(rèn)為,新人通過這種途徑可以理解,但程序員要想提升自己,還是不能只用現(xiàn)成的解決方案:
“想要成為一個好的程序員,不能只用別人現(xiàn)成的解決方案,一定要自己也能輸出解決方案。雖然都說不要重復(fù)造輪子,但這是針對公司來說的。對個人來說,提高能力的途徑,其中一條就是重復(fù)造輪子?!?/p>
“小公司可能需要這種程序員,但作為在大公司專攻一個領(lǐng)域的大牛,確實不太行?!?/p>
那么,你對于這個現(xiàn)象有什么看法?歡迎在評論區(qū)留言。
參考鏈接:https://habr.com/en/post/521104/

