国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣測(cè)定程序員的代碼基因

工程師人生 ? 來源:工程師吳畏 ? 2018-12-24 14:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

上個(gè)月,在負(fù)責(zé)技術(shù)晉升評(píng)審的過程中,有人認(rèn)為在評(píng)審過程中以述職講述為主,可能對(duì)某些比較擅長(zhǎng)寫代碼而不擅于演講的同學(xué)不公平。而對(duì)于中級(jí)別的程序員技術(shù)晉升我們更傾向于篩選出擅長(zhǎng)編程,而非僅僅是說得好的同學(xué)。

這個(gè)過程里面,存在四種情形:

代碼寫得好,也說得好

代碼寫得好,但說不出

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

兩者都不行

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

1

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

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

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

后來,再有一次面試,被要求在白板上編程,我是拒絕的。只在白板上寫了思路,并沒有去寫細(xì)節(jié)的代碼實(shí)現(xiàn),不過這次倒是通過了。

2

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

第一輪的面試以問答為主,但第二輪就直接給了一個(gè)題目,并分配了一臺(tái)電腦要求直接編程實(shí)現(xiàn)。題目并不算大,題目細(xì)節(jié)記不清了,大概記得是搭建一個(gè) Web 應(yīng)用之類的,考察的更多是工程應(yīng)用能力,而非算法。

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

3

十多年前,大家都看那些跨國(guó)巨頭的軟件外企是怎么玩的,而今天,大家都看互聯(lián)網(wǎng)的巨頭是怎么玩的。

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

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% 的工程師都用你寫的軟件,但你不能在白板上翻轉(zhuǎn)二叉樹,所以滾蛋吧。)

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

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

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

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

Thompson: 是啊,我還沒考呢。

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

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

我猜這可能就是 Google 讓人“愛”的地方,Google 堅(jiān)持了一個(gè)對(duì)所有人一視同仁的標(biāo)準(zhǔn)和規(guī)則,即使這個(gè)標(biāo)準(zhǔn)有時(shí)執(zhí)行起來得出的結(jié)果讓人覺得非常不合理。

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

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

4

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

它有一套與一般公司有點(diǎn)不一樣的面試流程。對(duì)候選人快速初步篩選后,會(huì)發(fā)給候選人一些題目,讓候選人選用其喜歡的任何語(yǔ)言來編程解決。候選人會(huì)提交代碼用于后續(xù)的面試過程使用,在后續(xù)面試過程中將與一位 ThoughtWorker 一起結(jié)對(duì)編程,擴(kuò)展最初的代碼,添加新的特性,在這個(gè)過程中來判斷候選人的代碼能力。

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

5

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

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

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

有了 GitHub 這個(gè)代碼簡(jiǎn)歷,就能分析出一個(gè)程序員的「代碼基因」。代碼基因是我臨時(shí)聯(lián)想到的一個(gè)概念,因?yàn)樵谧x《信息簡(jiǎn)史》這本書時(shí),里面仔細(xì)分析了基因的本質(zhì),在這里我覺得二者(代碼與基因)有相似點(diǎn)可以結(jié)合。

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

所以,這就是為什么要具有過程記錄能力的 GitHub “簡(jiǎn)歷”,它才擁有時(shí)間這個(gè)維度,一個(gè)代碼作品從無到有的演變過程全部記錄了下來。通過這樣的“簡(jiǎn)歷”,我們就可以針對(duì)一些代碼的設(shè)計(jì)演變?nèi)枂栴},去測(cè)定程序員的代碼基因。如果我們大量去讀過一些著名開源軟件的代碼,就會(huì)發(fā)現(xiàn)一些好代碼中不僅僅體現(xiàn)了規(guī)范性,還體現(xiàn)了特有程序員的「代碼基因」所形成的根本性的表現(xiàn)差異。

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

。..

如果用像《中國(guó)好聲音》這樣的唱歌比賽來做個(gè)類比,一份合格的 Github “簡(jiǎn)歷” 達(dá)成了基本的技能要求。高辨識(shí)度的「代碼基因」達(dá)成了音色的要求,而實(shí)際在《好聲音》中評(píng)委大部分的轉(zhuǎn)身都是因?yàn)橐羯D(zhuǎn)的。

兩個(gè)同樣品質(zhì)的東西,識(shí)別成本低的,通常會(huì)勝出。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4968

    瀏覽量

    73990
  • 程序員
    +關(guān)注

    關(guān)注

    4

    文章

    956

    瀏覽量

    30942
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    芯盾時(shí)代SDP助力企業(yè)應(yīng)對(duì)核心機(jī)密泄露危機(jī)

    無論你是程序員、文案、財(cái)務(wù),無論你想擼代碼、出海報(bào)、做報(bào)表,各式各樣的AI總能滿足你的需求,讓你的工作更加輕松。
    的頭像 發(fā)表于 12-26 11:49 ?666次閱讀

    大理的AI野心藏不住了——風(fēng)花雪月中千名程序員探討人工智能

    2025 年12月4日至6日第二屆CCF程序員大會(huì)暨大理人工智能與應(yīng)用國(guó)際開發(fā)者大會(huì)在大理圓滿落幕。
    的頭像 發(fā)表于 12-24 17:45 ?721次閱讀
    大理的AI野心藏不住了——風(fēng)花雪月中千名<b class='flag-5'>程序員</b>探討人工智能

    分析嵌入式軟件代碼的漏洞-代碼注入

    進(jìn)行編譯 在大多數(shù)情況下,程序故意像執(zhí)行代碼一樣執(zhí)行數(shù)據(jù)是不尋常的,但將數(shù)據(jù)用于構(gòu)造有意執(zhí)行的對(duì)象卻很常見。 1、格式化字符串漏洞 大多數(shù)C程序員熟悉printf函數(shù)。大體上,這些格式字符串
    發(fā)表于 12-22 12:53

    程序員最常見謊言

    了。 28我已經(jīng)測(cè)試過了,這個(gè)功能沒問題,可以上線了。 29別擔(dān)心,這個(gè)問題很快就能解決。 30代碼快寫完了,已經(jīng)完成 90% 了 。 希望大家對(duì)程序員多一些容忍以及諒解! 各位程序員你們都被我說中了哪些?說說你們的觀點(diǎn)
    發(fā)表于 12-10 08:24

    軟通國(guó)際亮相2025沙中開源與AI科技峰會(huì)

    2025年11月11日,由沙特程序員協(xié)會(huì)(parmg)主辦的"2025沙中開源與AI科技峰會(huì)"在利雅得盛大啟幕。
    的頭像 發(fā)表于 11-14 17:45 ?1479次閱讀

    20個(gè)低代碼開發(fā)平臺(tái)多維度對(duì)比:解鎖企業(yè)應(yīng)用開發(fā)新動(dòng)能

    差異、需求變更等因素而拉長(zhǎng)時(shí)間戰(zhàn)線。進(jìn)入設(shè)計(jì)階段,無論是產(chǎn)品功能設(shè)計(jì),繪制用戶旅程圖、定義交互規(guī)范,還是技術(shù)架構(gòu)設(shè)計(jì),選擇技術(shù)棧、設(shè)計(jì)系統(tǒng)模塊并規(guī)劃擴(kuò)展性,都需要精心打磨。隨后的編碼環(huán)節(jié),程序員需一行行編寫代碼實(shí)現(xiàn)系統(tǒng)
    的頭像 發(fā)表于 11-05 17:04 ?697次閱讀

    奔赴熱AI,碼力全開!Talkweb House@1024程序員日系列活動(dòng)圓滿收官

    1024程序員日”系列活動(dòng)至此劃上了一個(gè)圓滿句號(hào)。本屆1024程序員節(jié)以“AI構(gòu)建世界,智能引領(lǐng)未來”為主題,廣邀技術(shù)大咖、產(chǎn)業(yè)領(lǐng)袖、企業(yè)代表與全球開發(fā)者齊聚星城
    的頭像 發(fā)表于 10-27 18:59 ?782次閱讀
    奔赴熱AI,碼力全開!Talkweb House@1024<b class='flag-5'>程序員</b>日系列活動(dòng)圓滿收官

    開鴻智谷“以賽促學(xué)、以賽選才”|1024程序員節(jié)暨開源鴻蒙構(gòu)建大會(huì)圓滿落幕!

    10月24日,由開鴻智谷聯(lián)合主辦的長(zhǎng)沙1024程序員節(jié)暨開源鴻蒙構(gòu)建大會(huì)在長(zhǎng)沙圓滿落幕。本次活動(dòng)以“湘聚長(zhǎng)沙,共赴熱AI”為主題,通過技術(shù)分享與實(shí)戰(zhàn)競(jìng)賽相結(jié)合的方式,著力培養(yǎng)“開源鴻蒙+AI”領(lǐng)域
    的頭像 發(fā)表于 10-27 17:58 ?709次閱讀
    開鴻智谷“以賽促學(xué)、以賽選才”|1024<b class='flag-5'>程序員</b>節(jié)暨開源鴻蒙構(gòu)建大會(huì)圓滿落幕!

    1024程序員節(jié) | 致敬用代碼構(gòu)建美好未來的你

    ?
    的頭像 發(fā)表于 10-24 20:56 ?1261次閱讀
    1024<b class='flag-5'>程序員</b>節(jié) | 致敬用<b class='flag-5'>代碼</b>構(gòu)建美好未來的你

    AI技術(shù)在工程設(shè)計(jì)的應(yīng)用

    在不需要硬件交互的純軟件項(xiàng)目中,ChatGPT和Gemini等大語(yǔ)言模型(LLM)可以幫助程序員以前所未有的速度加速開發(fā)進(jìn)程。這種輔助通常包括在開發(fā)人員編寫代碼時(shí)提供補(bǔ)全建議,或在排查錯(cuò)誤和語(yǔ)法錯(cuò)誤時(shí)提供故障排除建議——這些都是耗時(shí)的編程環(huán)節(jié)。
    的頭像 發(fā)表于 09-23 16:21 ?890次閱讀
    AI技術(shù)在工程設(shè)計(jì)的應(yīng)用

    程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)

    的地址)出發(fā),采用推導(dǎo)的方式,深入淺出的分析了廣大C程序員學(xué)習(xí)和開發(fā)中遇到的難點(diǎn)。 2. 從方法論的高度對(duì)C語(yǔ)言在數(shù)據(jù)結(jié)構(gòu)和算法方面的應(yīng)用進(jìn)行了深入講解和闡述。 3. 講解了絕大多數(shù)C程序員開發(fā)
    發(fā)表于 05-13 16:45

    CY7C68013A無PID和VID,如何制作PDF?

    我用 CY7C68013A MCU 設(shè)計(jì)了一個(gè) PCB,所以這意味著我不是程序員之類的。 但是我嘗試上傳一些代碼,但沒有 PID 和 VID。 我找到了一些關(guān)于如何制作的 PDF,但那些對(duì)我來說很難。 有人可以幫我嗎?
    發(fā)表于 05-13 07:50

    計(jì)算機(jī)網(wǎng)絡(luò)排錯(cuò)思路總結(jié)

    明人不說暗話,這篇文章我們來聊一個(gè)非常有用,同時(shí)也是程序員必備的技能,那就是網(wǎng)絡(luò)排錯(cuò)思路大總結(jié)。
    的頭像 發(fā)表于 04-01 17:32 ?893次閱讀
    計(jì)算機(jī)網(wǎng)絡(luò)排錯(cuò)思路總結(jié)

    如何在 樹莓派 上編寫和運(yùn)行 C 語(yǔ)言程序

    ,一本很好的書是BrianKernighan和DennisRitchie所著的《TheCProgrammingLanguage》。這本書對(duì)經(jīng)驗(yàn)豐富的程序員和想學(xué)習(xí)C語(yǔ)
    的頭像 發(fā)表于 03-25 09:28 ?1157次閱讀
    如何在 樹莓派 上編寫和運(yùn)行 C 語(yǔ)言<b class='flag-5'>程序</b>?

    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python程序

    是一種非常有用的編程語(yǔ)言,其語(yǔ)法易于閱讀,允許程序員使用比匯編、C或Java等語(yǔ)言更少的代碼行。Python編程語(yǔ)言最初實(shí)際上是作為L(zhǎng)inux的腳本語(yǔ)言而開發(fā)的。Py
    的頭像 發(fā)表于 03-25 09:27 ?2046次閱讀
    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python<b class='flag-5'>程序</b>?