java新手代碼大全 一名優(yōu)秀的JAVA程序員平常一天至少寫多少行代碼?
一名優(yōu)秀的JAVA程序員平常一天至少寫多少行代碼?普通Java工程師,一天平均有效代碼量約50~70行,注意有效代碼。復(fù)制到復(fù)制不算數(shù)。這是估計(jì)的,不是逐行計(jì)算的。剛開始寫的時(shí)候,你一定會(huì)覺得累,因?yàn)?/p>
一名優(yōu)秀的JAVA程序員平常一天至少寫多少行代碼?
普通Java工程師,一天平均有效代碼量約50~70行,注意有效代碼。復(fù)制到復(fù)制不算數(shù)。這是估計(jì)的,不是逐行計(jì)算的。剛開始寫的時(shí)候,你一定會(huì)覺得累,因?yàn)槟銓?duì)很多東西、語(yǔ)法、用法等都不熟悉。還有,你照本宣科嗎?如果你有自己的想法,把它們編出來,然后把它們寫下來,我曾經(jīng)連續(xù)工作36個(gè)小時(shí)(編碼)。我只是覺得下半身不舒服。至于我的手,我一點(diǎn)也不累。
每天在公司寫3000行代碼,在行業(yè)內(nèi)是個(gè)什么水平?
3000行。這是在沒有我大腦的情況下計(jì)算代碼生成器代碼的結(jié)果。如果你不是在一家外包公司,你就是底層的藍(lán)領(lǐng)軟件工人。當(dāng)然,公司也不小。質(zhì)量代碼,每天100行甚至30行已經(jīng)很好了。
我曾經(jīng)接手一個(gè)項(xiàng)目,由2-30人維護(hù),但在運(yùn)行中仍然存在問題。當(dāng)時(shí)的問題是是否用新的建筑重新開發(fā)。在研究了項(xiàng)目架構(gòu)和代碼之后,我決定優(yōu)化現(xiàn)有的項(xiàng)目,而不是重新開發(fā)它。一個(gè)團(tuán)隊(duì)做了客戶要求的新模塊,我?guī)ьI(lǐng)團(tuán)隊(duì)做了提高穩(wěn)定性和使項(xiàng)目可維護(hù)性的工作。最后,在保持函數(shù)不變的情況下,我將項(xiàng)目的代碼減少到原來的十分之一,性能提高了100倍,數(shù)據(jù)量減少了30%。維修人員減少到5人。客戶反應(yīng)好,維修費(fèi)用不變,所以利潤(rùn)很高。我每天的代碼量相對(duì)于整個(gè)項(xiàng)目是負(fù)的。我以后做的就是每月檢查新代碼,找出不符合規(guī)范的代碼,要求整改,把不聽話的程序員轉(zhuǎn)到開發(fā)團(tuán)隊(duì)做藍(lán)領(lǐng)。我什么時(shí)候才能理解架構(gòu)的規(guī)范和意義,然后考慮培訓(xùn)和改進(jìn)。就像軍訓(xùn)一樣,我們會(huì)在方陣中邁出積極的一步,然后上來打一場(chǎng)硬仗。
要求團(tuán)隊(duì)必須有經(jīng)驗(yàn)并精通體系結(jié)構(gòu)。如果人不多,會(huì)有2-3人。如果人太多,他們就做不到。
當(dāng)你的代碼減少到100行,公司對(duì)你的評(píng)價(jià)還可以時(shí),你就真的是在編程,而不是在砌磚。
對(duì)程序員來說最難的是寫代碼嗎?
對(duì)于高級(jí)程序員來說,一天可以完成10000行代碼,編寫代碼是最不熟練的事情。
對(duì)于程序員來說,最困難的是理解需求以及將自然語(yǔ)言轉(zhuǎn)換為數(shù)學(xué)語(yǔ)言的過程。這個(gè)詞就是形式化。早期的程序員需要直接與用戶聯(lián)系,花費(fèi)大量的時(shí)間與用戶溝通,抽象出用戶所需要的功能和性能,組織整個(gè)系統(tǒng)的數(shù)據(jù)字典?,F(xiàn)在很多公司把這部分工作交給產(chǎn)品經(jīng)理,這既是好事,也是壞事,所以程序員很難成長(zhǎng)成為老板。
其次,難點(diǎn)在于系統(tǒng)架構(gòu),包括通信協(xié)議、結(jié)構(gòu)分層、軟件重用和算法。一個(gè)公司總是需要有人來做,但它可能只需要一個(gè)人來做,通常是技術(shù)總監(jiān)。
程序員代碼量過20萬行,是一種什么體驗(yàn)?
如果一個(gè)獨(dú)立的項(xiàng)目由一個(gè)人維護(hù)超過20W,那真的很難??梢哉f是重復(fù)重構(gòu)、分解模塊、提取公共庫(kù)、進(jìn)行分層處理,以及引入工具來使用lint工具進(jìn)行代碼。當(dāng)代碼量超過5萬條時(shí),他們開始注意命名規(guī)則、文檔、注釋、模塊的初步劃分,并熟練使用調(diào)試工具和命令。但有時(shí)他們不得不尋找使用方法。寫日志有點(diǎn)武斷。
當(dāng)代碼達(dá)到100000行時(shí),模塊劃分完成,系統(tǒng)分層開始。同時(shí)介紹了代碼掃描工具。同時(shí),調(diào)試級(jí)別完善,崩潰時(shí)生成核心文件,便于分析。日志非常標(biāo)準(zhǔn)和完整。同時(shí),開始做代碼檢查。提供各種接口文檔。并開始了解操作系統(tǒng)和虛擬機(jī),以及編程語(yǔ)言和各種庫(kù)的底層細(xì)節(jié)。他已經(jīng)是某個(gè)領(lǐng)域的資深人士了。
涉及到200000行時(shí),有代碼規(guī)范、日志規(guī)范、架構(gòu)設(shè)計(jì)、性能指標(biāo)、硬件要求、異常處理、數(shù)據(jù)描述、接口描述、數(shù)據(jù)流圖、配置表、數(shù)據(jù)字典、歷史異常摘要等文檔。同時(shí),它涉及到網(wǎng)絡(luò)、文件、操作系統(tǒng)、腳本和語(yǔ)言。在這個(gè)階段,維護(hù)代碼,做一個(gè)小改動(dòng)都嚇壞了。是個(gè)專家。
一個(gè)程序員的代碼編寫量,能否決定他的編程水平?
自2003年以來,我們一直在做程序設(shè)計(jì)。一般來說,我們寫的代碼越多,我們需要的代碼就越少。
在程序開發(fā)之初,我主要做了功能實(shí)現(xiàn)。負(fù)責(zé)項(xiàng)目設(shè)計(jì)的同事把界面寫得很好,剩下的就是功能實(shí)現(xiàn)。實(shí)現(xiàn)寫功能并不困難。簡(jiǎn)單地說,數(shù)據(jù)以固定格式處理后,就可以發(fā)回。在此期間,每天的代碼量相對(duì)較大,平均每天大約有500行。
隨著他們編碼能力的提高,很多代碼重用會(huì)做得更好。在整個(gè)實(shí)現(xiàn)過程中,他們會(huì)采用比較簡(jiǎn)單的實(shí)現(xiàn)方法,也懂得如何使用模塊化的開發(fā)模式。通過這個(gè)過程,代碼的數(shù)量在一定程度上減少了,但是思考的時(shí)間變長(zhǎng)了,有時(shí)需要一些時(shí)間來驗(yàn)證。在2006年確定自己的主要方向時(shí),代碼量再次下降。因?yàn)楣ぷ髦行囊呀?jīng)從函數(shù)編寫調(diào)整到了一些框架設(shè)計(jì)和算法實(shí)現(xiàn),這段時(shí)間每天的代碼量大約在200行左右,其中很多是編寫接口。在此期間,重點(diǎn)工作是實(shí)現(xiàn)算法,做數(shù)據(jù)分析和建模。在這段時(shí)間里,還使用了Matlab,因此編碼量大大減少,但難度增加了很多。有時(shí)需要一周甚至更長(zhǎng)的時(shí)間來完成算法的驗(yàn)證。
2010年之后,我將機(jī)器學(xué)習(xí)和大數(shù)據(jù)添加到我的主要攻擊方向。這時(shí),我每天的代碼量又下降了,平均有100多行。有時(shí)一天可以寫幾十行代碼,對(duì)算法進(jìn)行分析、訓(xùn)練和驗(yàn)證的時(shí)間就變長(zhǎng)了。當(dāng)java第一次被使用時(shí),代碼的數(shù)量可能會(huì)更多。后來,當(dāng)使用Python時(shí),代碼量減少了很多。目前,算法的實(shí)現(xiàn)也采用Python。
事實(shí)上,在計(jì)算機(jī)研發(fā)中,編程更像是一種工具。無論使用何種語(yǔ)言,最終的任務(wù)都是實(shí)現(xiàn)功能。編碼量與角色有很大關(guān)系,但與編程水平?jīng)]有直接關(guān)系。當(dāng)然,高級(jí)程序員必須有大量的代碼基礎(chǔ),這是毋庸置疑的。
程序員不寫代碼是不是要廢了?
感謝您的邀請(qǐng)
!作為一名IT行業(yè)從業(yè)者,同時(shí)也是一名計(jì)算機(jī)專業(yè)的研究生導(dǎo)師,我將回答這個(gè)問題。
首先,隨著程序員的不斷升級(jí),他們?cè)诓煌碾A段可能會(huì)面臨不同的崗位任務(wù)。盡管編寫代碼是一項(xiàng)相對(duì)例行的任務(wù),但如果程序員長(zhǎng)大后成為架構(gòu)師、算法設(shè)計(jì)師、咨詢專家等,那么編寫代碼的數(shù)量將不可避免地下降。在一些分工明確的開發(fā)團(tuán)隊(duì)中,算法設(shè)計(jì)者更重要的是通常不需要從事算法實(shí)現(xiàn)的工作,因此程序員是否需要編寫代碼來具體分析問題。
一般來說,應(yīng)用程序級(jí)程序員每天需要編寫的代碼量相對(duì)較大。大多數(shù)代碼都與業(yè)務(wù)實(shí)現(xiàn)高度相關(guān)。由于目前軟件產(chǎn)品的迭代速度非常快,應(yīng)用級(jí)程序員的工作量也比較大。然而,由于研發(fā)級(jí)崗位的主要開發(fā)任務(wù)是一些系統(tǒng)級(jí)的任務(wù),如容器和平臺(tái)的開發(fā),因此研發(fā)級(jí)崗位的代碼量遠(yuǎn)遠(yuǎn)少于應(yīng)用級(jí)崗位。雖然這些任務(wù)的開發(fā)很困難,但代碼量并不多。因此,隨著程序員能力的不斷提高和職務(wù)的提升,代碼量將呈現(xiàn)整體下降的趨勢(shì)。
隨著云計(jì)算的普及,特別是PAAS的逐漸成熟,未來將編寫大量的應(yīng)用級(jí)代碼,這也將在一定程度上促進(jìn)應(yīng)用級(jí)程序員的后升級(jí)。對(duì)于目前從事應(yīng)用級(jí)開發(fā)的程序員,特別是從事企業(yè)定制軟件開發(fā)的程序員,要及時(shí)制定自己的自主學(xué)習(xí)計(jì)劃,盡快完成升級(jí)后的工作。
最后,隨著人工智能產(chǎn)品的不斷應(yīng)用,未來程序員的主要任務(wù)將逐漸從繁瑣的基礎(chǔ)代碼編寫中解放出來,更多的精力將花在資源整合和產(chǎn)品創(chuàng)新上。