在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣測定程序員的代碼基因

工程師人生 ? 來源:工程師吳畏 ? 2018-12-24 14:47 ? 次閱讀

上個月,在負責技術晉升評審的過程中,有人認為在評審過程中以述職講述為主,可能對某些比較擅長寫代碼而不擅于演講的同學不公平。而對于中級別的程序員技術晉升我們更傾向于篩選出擅長編程,而非僅僅是說得好的同學。

這個過程里面,存在四種情形:

代碼寫得好,也說得好

代碼寫得好,但說不出

代碼寫得不太行,但說得很好

兩者都不行

晉升篩選的目標是選出 1 和 2 兩種,篩掉 3 和 4。這里面的挑戰在于,在采用述職答辯這種形式下,1 和 3 這兩種很難分辨,同時 2 和 4 也很難分辨。關鍵就在于如何識別并判斷代碼寫得好還是不好的問題,區分度的標尺怎么定的問題。這個判斷問題在面試程序員時也存在,要不就先從「代碼面試」說起吧。

1

在我過去十年多一些的從業經歷中,倒是面試過很多次,其中不乏面試寫代碼的。

剛畢業那年第一次去面試,聊了沒幾句面試官就給了一張白紙和鉛筆,要求在紙上用 C 語言寫一個快速排序算法的實現。這次經歷我記憶猶新,差不多半小時,我磕磕碰碰的寫了一個實現。在和面試官討論時,被指出了不少沒考慮到的情形和漏洞,后來的結果自然是沒能通過。

現在回想起來,在紙上編程真是一件很難受的事情。雖然五十年代的程序員基本都在紙上編程,那是因為那時計算機的運行成本很高。但面試時的紙上編程,一方面時間很有限,另一方面環境和氛圍比真正的編程要緊張不少。所以,我是不支持紙上編程這種形式的,它既不能讓候選人很好的發揮,另外一方面也可能沒有足夠的區分度。比如,像上面那樣寫一個著名的算法實現,背過和沒背過差別可以很大,但對真正的編程能力卻不足以區分。

后來,再有一次面試,被要求在白板上編程,我是拒絕的。只在白板上寫了思路,并沒有去寫細節的代碼實現,不過這次倒是通過了。

2

除了要求在紙上寫代碼的,也有公司會要求上機編程,我在工作一年多以后的第一次跳槽就經歷過這么一次。

第一輪的面試以問答為主,但第二輪就直接給了一個題目,并分配了一臺電腦要求直接編程實現。題目并不算大,題目細節記不清了,大概記得是搭建一個 Web 應用之類的,考察的更多是工程應用能力,而非算法。

如今回想起來,其實就是判斷下實際的動手能力,看能不能干活。既不用和當時一些外企偏愛的邏輯智力題較勁,也沒有讓人尷尬的紙上或白板編程環節。當時面試的一家國企的軟件部門,還算比較務實,但對候選人的編程潛力和能力的要求真不高。

3

十多年前,大家都看那些跨國巨頭的軟件外企是怎么玩的,而今天,大家都看互聯網的巨頭是怎么玩的。

互聯網的巨頭標桿當然是 Google,但 Google 式的代碼能力面試槽點也是在網上被人噴的不行。比如,最著名的一條,Max Howell(Mac 下的著名軟件 Homebrew 的作者)在面試 Google 被拒后發過一條推文:

Google: 90% of our engineers use the software you wrote(Homebrew), but you can‘t invert a binary tree on a whiteboard so fuck off.(我們 90% 的工程師都用你寫的軟件,但你不能在白板上翻轉二叉樹,所以滾蛋吧。)

正因如此,有人對 Google 面試的吐槽像下面這樣:

“谷歌式” 的面試真心是讓人又愛又恨,它糟糕透了:好的應聘者落選,壞的應聘者背背答案就能通過,呵呵。

好吧,上面這句吐槽,我就看到了恨,倒沒看到愛在哪里。《Coders at Works》一書(中文翻譯版叫《編程人生:15位軟件先驅訪談錄》)作者 Peter Seibel 曾采訪 Ken Thompson,一位傳奇程序員,C 語言和 Unix 的發明者、圖靈獎得主,他后來加入了 Google。

Peter Seibel: 我知道 Google 有一個規定,每個新員工都要在接受編程語言測試之后,才允許提交代碼。那就是說你也得考(你自己發明的)C 啰?

Thompson: 是啊,我還沒考呢。

Seibel: 你還沒考? 難道你還不能提交代碼嗎?

Thompson: 是啊,我不能提交代碼,不行。..我只是還沒有去考試,還沒覺得有必要去考。

我猜這可能就是 Google 讓人“愛”的地方,Google 堅持了一個對所有人一視同仁的標準和規則,即使這個標準有時執行起來得出的結果讓人覺得非常不合理。

之前看過一個 Google 官方的代碼面試視頻,還考察寫代碼的過程。不用紙筆,而是請面試者打開一個協同工作的窗口,兩個人開同一個頁面。你改了什么,對方那邊是實時反應的。這意味著你的面試官可以在另一端看到你是怎樣完成的這段代碼,你先寫了哪個變量,后寫了哪個方法,中途覺得哪里不對,做了怎樣的刪除,做了怎樣的修改。..從開始到最終完成,面試官一清二楚。

這個過程其實比看最終的代碼更能直接反應編程能力和思考過程,當然這對候選人也會帶來一定的心理壓力。我覺著完全讓候選人不知情的情況去觀察可能更有利于真實水平的發揮,否則觀測本身就有可能影響結果。

4

另外,還有一家面試代碼能力很有特色的公司:ThoughtWorks。

它有一套與一般公司有點不一樣的面試流程。對候選人快速初步篩選后,會發給候選人一些題目,讓候選人選用其喜歡的任何語言來編程解決。候選人會提交代碼用于后續的面試過程使用,在后續面試過程中將與一位 ThoughtWorker 一起結對編程,擴展最初的代碼,添加新的特性,在這個過程中來判斷候選人的代碼能力。

對,這的確是一個獨具特色的篩選程序員代碼能力的過程,比 Google 式的實時觀察更進一步。但這種小眾的篩選過程都面臨一個問題:可操作性比較復雜,而且成本高。在面臨需要大規模的招聘和篩選(晉升)時,可操作性和成本就是一個繞不過的檻。

5

我大概就知道上面這些代碼面試方式,似乎沒有哪種讓人感覺特別完美。

我們考察算法和數據結構,是希望候選人能夠具備某些關于算法和數據結構的知識,雖然這些知識很可能在實際工作中并不常用到。候選人也許會去提前學習和記住一些面經中的內容,這樣你就評估不了真實的解決問題的能力,而僅僅是看到了他重復回放算法的過程。一些開發人員可能會過于緊張,所以在面試或述職時失敗,但也許他們真得具備獨立解決問題的能力。而紙上或白板編程是不太好的,這種方式會導致代碼人員犯一些在工作中不一定會發生的錯誤。而且,這種方式又慢又痛苦。

我在想,理想情況下候選人應該有一個全面的 GitHub “簡歷”。一份好的 GitHub “簡歷” 包括了你的代碼作品以及形成這個作品的過程記錄。而 GitHub commit log 天然具有這樣的過程跟蹤能力,所以我們就能從中看到很多東西。而一份不好的 GitHub “簡歷” 就是一次性的把作品提交上去后再也沒有變化,而不是借助 GitHub 的過程記錄來完成這個作品。

有了 GitHub 這個代碼簡歷,就能分析出一個程序員的「代碼基因」。代碼基因是我臨時聯想到的一個概念,因為在讀《信息簡史》這本書時,里面仔細分析了基因的本質,在這里我覺得二者(代碼與基因)有相似點可以結合。

基因定義為一種遺傳的基本單位,是某種表現型差異的根源。在生物學里,它存在于一種物質中,這種物質是一種核酸,更具體點,就是脫氧核糖核酸(DNA)。薛定諤曾經把基因想象為:某種遺傳特征的假想的物質載體。一種微小的實體,卻包含了生物體的全部模式,并且這個模式還必須是個四維對象 —— 生物體本身是三維結構,再加上從胚胎到成年的每個發育階段演變的時間維度。

所以,這就是為什么要具有過程記錄能力的 GitHub “簡歷”,它才擁有時間這個維度,一個代碼作品從無到有的演變過程全部記錄了下來。通過這樣的“簡歷”,我們就可以針對一些代碼的設計演變去問問題,去測定程序員的代碼基因。如果我們大量去讀過一些著名開源軟件的代碼,就會發現一些好代碼中不僅僅體現了規范性,還體現了特有程序員的「代碼基因」所形成的根本性的表現差異。

可惜的是,測定「代碼基因」依然是無法規模化的方式,更何況很多程序員根本沒有一份合格的 Github “簡歷”。

。..

如果用像《中國好聲音》這樣的唱歌比賽來做個類比,一份合格的 Github “簡歷” 達成了基本的技能要求。高辨識度的「代碼基因」達成了音色的要求,而實際在《好聲音》中評委大部分的轉身都是因為音色而轉的。

兩個同樣品質的東西,識別成本低的,通常會勝出。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 代碼
    +關注

    關注

    30

    文章

    4846

    瀏覽量

    69268
  • 程序員
    +關注

    關注

    4

    文章

    953

    瀏覽量

    29900
收藏 人收藏

    評論

    相關推薦

    阿里云升級通義靈碼AI程序員,全面上線

    和JetBrains IDEs兩大主流開發環境,這意味著開發者可以在自己熟悉的開發平臺上,無縫接入并使用這款AI工具。 除了支持主流開發環境外,通義靈碼AI程序員還引入了多項新特性,如多文件代碼修改和上下文感知等。這些特性使得AI能夠更好地理解開發者的意圖和需
    的頭像 發表于 01-09 11:16 ?333次閱讀

    TMS320C6000程序員指南

    電子發燒友網站提供《TMS320C6000程序員指南.pdf》資料免費下載
    發表于 12-24 17:19 ?0次下載
    TMS320C6000<b class='flag-5'>程序員</b>指南

    TMS320C55x DSP CPU程序員參考補充

    電子發燒友網站提供《TMS320C55x DSP CPU程序員參考補充.pdf》資料免費下載
    發表于 12-21 11:36 ?0次下載
    TMS320C55x DSP CPU<b class='flag-5'>程序員</b>參考補充

    UCD3138A64/UCD3138128程序員手冊

    電子發燒友網站提供《UCD3138A64/UCD3138128程序員手冊.pdf》資料免費下載
    發表于 12-09 14:42 ?0次下載
    UCD3138A64/UCD3138128<b class='flag-5'>程序員</b>手冊

    機械革命發布CODE AI程序員

    近日,英特爾新質生產力技術生態大會在成都舉行,機械革命作為重要參展商帶來了多款明星產品引爆全場!其中更是在AI PC軟件生態產品發布分論壇上,Intel、智譜、機械革命三方聯合發布了專為程序員設計的CODE AI程序員本,成為本次大會的一大亮點。
    的頭像 發表于 11-30 10:34 ?614次閱讀

    Linux驅動程序程序員指南

    電子發燒友網站提供《Linux驅動程序程序員指南.pdf》資料免費下載
    發表于 11-22 15:53 ?0次下載
    Linux驅動<b class='flag-5'>程序</b><b class='flag-5'>程序員</b>指南

    AI編程工具會不會搶程序員飯碗

    AI編程工具可輔助編程,減少手動編碼,提升效率,對程序員有積極影響也有挑戰。程序員需深化技能、拓寬知識應對。長遠看,AI與人類程序員將共生共榮。
    的頭像 發表于 11-08 10:17 ?266次閱讀

    第五屆長沙·中國1024程序員節開幕

    據官方媒體報道,10月24日;? 第五屆長沙·中國1024程序員節在湖南湘江新區開幕;本次中國1024程序員節以“智能應用新生態”為主題。設置有岳麓對話、技術英雄會、主題峰會及賽事、展覽等活動,一場
    的頭像 發表于 10-25 15:42 ?250次閱讀

    京東上萬程序員都AI用它!

    對大模型生成代碼進行智能修復,為程序員開啟代碼漏洞修復的“自動駕駛”模式,不但減少人工接入、提高工作效率,更為企業抵御內外部各種攻擊構建起一道堅固的安全屏障,確保業務的連續性和穩定性。 JoyCoder是京東云自主研發的一款輔助
    的頭像 發表于 07-17 16:29 ?321次閱讀
    京東上萬<b class='flag-5'>程序員</b>都AI用它!

    程序員節視頻創意大賽,用串口屏贏取千元大獎

    10月24日,程序員專屬的節日里,我們盛大開啟“程序員節視頻創意大賽”特別活動!這不僅是一場視覺的盛宴,更是智慧與創意的璀璨碰撞。我們誠摯邀請每一位程序員及編程愛好者,拿起你的鏡頭,記錄下那些平凡日子中的不凡瞬間,讓編程的魅力與
    的頭像 發表于 07-08 10:38 ?72次閱讀
    <b class='flag-5'>程序員</b>節視頻創意大賽,用串口屏贏取千元大獎

    程序員節視頻創意盛宴,邀您共襄盛舉!

    10月24日,程序員專屬的節日里,我們盛大開啟“程序員節視頻創意大賽”特別活動!這不僅是一場視覺的盛宴,更是智慧與創意的璀璨碰撞。我們誠摯邀請每一位程序員及編程愛好者,拿起你的鏡頭,記錄下那些平凡日子中的不凡瞬間,讓編程的魅力與
    的頭像 發表于 07-04 09:00 ?67次閱讀
    <b class='flag-5'>程序員</b>節視頻創意盛宴,邀您共襄盛舉!

    助力程序員告別困擾已久的夢魘-Bug

    程序員的噩夢是什么?不用懷疑,就是讓你加班到崩潰的Bug!下面是經過業界大佬們“長期加班”積累的小妙招,助力你離早下班又進一步~一、定位Bug范圍及性質要有效解決問題,首先要縮小范圍,集中關注最近
    的頭像 發表于 07-02 08:10 ?426次閱讀
    助力<b class='flag-5'>程序員</b>告別困擾已久的夢魘-Bug

    適者生存,程序員最終會流向哪……

    程序員沒有永遠的護城河!!就目前的互聯網大環境來看,it行業已經是……
    的頭像 發表于 03-11 17:11 ?452次閱讀
    適者生存,<b class='flag-5'>程序員</b>最終會流向哪……

    薪資高、青春飯,是不是程序員=青樓?

    花期太短。技術迭代快,年齡大容易失業。 就這幾年的互聯網環境而言,不管是前端、Java、Android開發等等行業。已經感受到程序員不是太卷就是工作難找,薪資過低。以前高工現在拿著中低程序員薪資
    發表于 03-06 21:32

    GitHub Copilot:你的代碼超級助手!程序員的最強福音

    今天小啟給大家安利一款令人興奮的AI工具——GitHubCopilot。它無疑是程序員們的最強福音!無論你是新手還是經驗豐富的開發者,GitHubCopilot都將成為你的代碼超級助手。想象一下
    的頭像 發表于 03-05 08:04 ?1246次閱讀
    GitHub Copilot:你的<b class='flag-5'>代碼</b>超級助手!<b class='flag-5'>程序員</b>的最強福音
    主站蜘蛛池模板: 免费色视频 | 日本视频www色 | 噜噜噜久久久 | 欧美一级视频精品观看 | 国产18到20岁美女毛片 | 成zzzwww日本免费 | 五月天婷婷爱 | 狠狠色成人综合首页 | 黄视频免费在线观看 | 午夜毛片视频 | 国产精品1区2区3区在线播放 | 欧美成人影院免费观 | www.av天天| 色偷偷91久久综合噜噜噜 | 美女色18片黄黄色 | 黄色片啪啪 | 在线看黄的网站 | 午夜视频在线观看完整高清在线 | 欧美一卡二卡3卡4卡无卡六卡七卡科普 | 黄色片啪啪 | 国产在线色| 欧美中出 | 4虎 影视 免费 | 天天干天天干 | 最黄色的视频 | 国产香港三级理论在线 | 国产精品福利午夜h视频 | 久久视频免费 | 免费久久久久 | 国产精品电影一区 | 亚洲一卡二卡在线 | 亚洲成人在线网 | 欧美另类69| 欧美日本一区二区三区 | 国产成人精品免费视频大全可播放的 | 99久久免费精品视频 | 天天操网站 | 国产一级爱c片免费播放 | 天天干干天天 | 天天干在线播放 | 亚洲国产成人精品不卡青青草原 |