提起程序員,大家的第一印象是?

而程序員的日常?

而以代碼為主要工作的程序員,一天寫(xiě)多少代碼才算達(dá)標(biāo)?
來(lái)自 CSDN 論壇的程序員們說(shuō):
- 真正優(yōu)秀的程序員都拿著高工資,其本上不用怎么寫(xiě)代碼,如果你還拼命在寫(xiě)代碼,說(shuō)明離“優(yōu)秀”還有一段距離。
- 很多時(shí)候都在分析問(wèn)題,查看代碼,寫(xiě)代碼越來(lái)越少了。
- 如果寫(xiě)的話,基本上每天 100 到 200 行,但是更多的時(shí)候在開(kāi)會(huì)、開(kāi)會(huì)、開(kāi)會(huì)。
自知乎的程序員們說(shuō):
- 無(wú)須看重代碼行數(shù),程序員的價(jià)值在于思考,而不在于打字?jǐn)?shù)量。
- 真正寫(xiě)出來(lái)可用的代碼,一天平均幾十行就很好不錯(cuò)了。
- 負(fù)的。我們不生產(chǎn)代碼,我們只是 GitHub 的搬運(yùn)工。
- 最多的時(shí)候,一個(gè)禮拜寫(xiě)了上萬(wàn)行代碼,那時(shí)候每天睡覺(jué)都很香,因?yàn)槔郏?/section>
- 比爾蓋茨曾說(shuō)過(guò):“用代碼行數(shù)來(lái)衡量程序的開(kāi)發(fā)進(jìn)度,就好比用重量來(lái)衡量飛機(jī)的制造進(jìn)度。”
的確,在編寫(xiě)代碼之前,需要有需求獲取分析、需求建模、系統(tǒng)的架構(gòu)、系統(tǒng)模塊的設(shè)計(jì)、以及之后的測(cè)試等工作需要做。最終所編碼的時(shí)間也所剩無(wú)幾了。在國(guó)內(nèi)某些公司,對(duì)于一些熟練的程序員,每天 100 行代碼是正常的生產(chǎn)率(包括需求分析、設(shè)計(jì)、編碼、單元測(cè)試和系統(tǒng)測(cè)試)。但是對(duì)于缺乏編碼經(jīng)驗(yàn)的畢業(yè)生或轉(zhuǎn)型的從業(yè)者來(lái)說(shuō),代碼產(chǎn)出量也須另當(dāng)別論了。在國(guó)外,作為科技巨頭的之一的 Google,他們的工程師每天能寫(xiě)多少的代碼呢?Google 的 AdMob 全棧工程師 Raymond Farias 曾發(fā)表評(píng)論表示:“我的同事告訴我,根據(jù)以往的調(diào)查證明,一名高效的工程師每天能寫(xiě) 100-150 行代碼。”我嘲笑了他并稱他的估計(jì)值肯定低了很多。為了證明他的估計(jì)值錯(cuò)誤,我以在 Google 工作中最有效率的一個(gè)月為例,并使用了 Google 一款內(nèi)部工具,即可以查看每天的代碼增量(包括添加、刪除、更改的代碼行數(shù))。我匯總了我一個(gè)月的代碼數(shù)據(jù),進(jìn)行求和,并除以 20(因?yàn)橹苣┎簧习啵┑贸銎骄鶖?shù)。猜猜得出的數(shù)字是多少?在我最忙碌高效的一個(gè)月上得出的結(jié)論,事實(shí)證明,我之前的觀點(diǎn)錯(cuò)了。此外,我也檢測(cè)了我的同事,幾乎每個(gè)人的數(shù)據(jù)都一樣。那這樣的數(shù)據(jù)怎么足夠呢?由此,在 Quora 上,Oak Lomonosovas 對(duì) Google 有多少名軟件工程師進(jìn)行了回答, 估計(jì) Google 大約有 4 萬(wàn)名工程師。而在這些工程師中有些人代碼產(chǎn)出量比較少,因?yàn)榧夹g(shù)經(jīng)理或者主管因?yàn)楹芏嗟臅?huì)議或者假期并不會(huì)寫(xiě)太多的代碼,因此,一位工程師 100 行應(yīng)該是更為準(zhǔn)確的猜測(cè)了。基于以上,Google 每天的代碼量粗略估計(jì)為 400 萬(wàn)行代碼。有很多人認(rèn)為一天寫(xiě) 100 ~ 150 行代碼,怎么能算高效?那么我們來(lái)計(jì)算一下:1.一天工作 8 小時(shí)里,你有多長(zhǎng)時(shí)間是在真的在寫(xiě)代碼?2.你算一算自己工作中平均每天寫(xiě)幾行能通得過(guò) code review 的有測(cè)試的 production quality 的代碼?這些,你猜對(duì)了嗎?
你呢,1天寫(xiě)多少行代碼呢?