寫了100萬行代碼的程序員是什麼樣的程序員?

WEB技能圈兒


寫過十幾年的代碼,寫的代碼有沒有100萬行沒有做過具體的統計,寫代碼的行數和程序員的能力沒有太直接的關係,代碼編寫能力只是編程能力的一個體現,不能以偏概全,而且不同的崗位代碼能力數量差異非常大,常見的前端工程師以及應用級開發代碼量比系統級開發或者底層開發代碼量少了許多,所以代碼量並沒有太多的可比性。

只有有過實際項目開發經驗的工程師,都有一個認識,寫代碼的時間只佔總工程量的百分20,編碼能力稍微差點的就是佔據百分30,其實要做一個項目首先要進行可行性分析,然後是功能分析,也就是需求分析,代碼完成階段,測試階段,聯合調試,最後出廠,到客戶再提出新的需求再返回來修改,這一系列的過程都會花費大量的時間,寫代碼的時間只佔很小的一部分,代碼只是展示形式,對於編程的認知到了一定層面編程語言就是工具一般的存在,如果拿代碼的總量來衡量編程水準就會顯得比較狹隘。

寫代碼直接的表現是實現功能,最終編程的最終的目的是給生活提升了多少便利,站在不同的角度能給出不同的結論。還有人糾結於掌握多少編程語言,掌握多種編程工具而已,編程能力的核心解決實際問題的能力,解決問題能力包含具體的代碼實現,功能需求最優的實現,以及準確的測試手段,還包含著和客戶的溝通能力,當然最核心的架構能力以及算法邏輯,都可以歸結於解決問題能力,幾乎每個企業都有一個或者多個定海神針般的人物存在,幾乎大家解決不了的問題都會交給他去解決,特別是項目交付的關鍵時期。

判斷一個程序員的能力,代碼能力只是業務能力的一個體現,很多程序員覺得實現自己的功能模塊就萬事大吉了,把自己做的東西和實際應用場景結合的太少了,從來不去考慮是不是有更好的使用方式,很多頂層的架構師除了研究本身代碼,還會從生活中尋找創新的靈感,如果只是一個滿足於現狀的程序員基本上決定了未來的發展,優秀的程序員的從來對於自己寫的代碼帶著有色眼鏡在審視,從純粹的代碼角度考慮代碼的質量遠大於代碼的數量,不停的折騰代碼,不停的尋找更好的實現方式,是優秀程序員的一個基本特質。

曾經共事過一個同事,代碼基本功極強,平時寫代碼基本上都是一次性過,很少在編譯的時候來回修改語法錯誤,最經典的一次是一個團隊實現的一週實現的代碼,被這位神奇的同事一晚上給重構了,早上上班發現自己的代碼都沒了都換成他的了,很多人覺得不爽,但重構的代碼質量無可挑剔,實力的體現,平時特別喜歡研究一些編程規範,經常拿著C99這些標準研究來研究去,有時候還會喊出一句怪不得那,寫代碼就是一種享受,境界不同產出的結果也會不同。

希望能幫到你。


大學生編程指南


程序員寫了100萬行代碼就會變得很厲害嗎?其實不然,衡量程序員厲害的並非是你寫的代碼多少,得看你是什麼類型的程序員。下面先說說常見的幾種程序員的類型:

1.COPY俠

複製粘貼別人代碼的程序員並不少見,一方面是因為懶,另一方面也是確實沒思路。所做的事情也就是從網上他人的代碼裡拷貝片段,放在項目中跑通了,這個任務也就完成了。

其實copy俠對編程沒太大的興趣,久而久之他們僅有修改代碼的能力,卻不會寫代碼。之所以幹這行主要是以此養家餬口,並沒有什麼職業理想。

2.新手上路

有句話叫:現學現賣。

加上程序員本身就是個需要長期學習的職業,很多新手在接觸到項目的時候,並不完全知道要如何實現這個功能,這時需要通過學習、尋找資料等方式來解決問題。

所謂的新手上路,程序員的目的是“完成功能”,解決目前所面對的問題。在這種工作狀態下,很多程序員都是十分被動的,因此也很難有多餘的時間去考慮邊界條件、性能、可擴展性、編碼規範等問題,因此代碼bug可能比較多,穩定性不高。可能常常會出現這種情況——編程2分鐘,尋找bug2小時。

3.學習選手

相較於上一種程序員,這類程序員對所在領域的語言已經比較瞭解,對於一般功能可以有較為清晰的實現思路。當他們接到需求時,能夠通過自己的思路來實現,而且會在一定程度上考慮邊界條件和性能問題。當然,他們對可讀性和可擴展性考慮很少,也沒有項目級別的考慮。

學習選手最大的表現在於喜歡“創造代碼”,即使有現成的實現,他們也希望自己來實現一套,以達到“學習”的目的。他們不喜歡複用別人的代碼,看見項目中別人實現了相類似的功能,他們會以“需求不同”的藉口來自己重新實現一套。這類人一般來說對技術有著較為濃厚的興趣,希望能夠通過項目來進行學習。

興趣是最好的最好的老師,學習型的程序員如果能堅持在技術上的盡頭,將有可能成為技術牛人。

4.實現牛人

一般來說,實現型的人才都有十分豐富的經驗,俗話說程序員必須得寫夠百萬行代碼。熟能生巧,因此不再追求“創造代碼”來進行學習,同時對所在領域的相關東西十分熟悉,因此對需求和項目都瞭然於胸,他們可以快速實現需求功能,因此也是別人眼中的“技術牛人”。但他們一般僅僅停留在“完成功能”級別上,對代碼的可行性、可擴展性、代碼規範等等考慮較少,對項目總體的把握也較少。

大牛一般都有這樣的習慣,對於開發有著足夠的熱情,但對於維護則不太上心。他們產出的代碼最大的問題在於維護成本,可能前不久寫的代碼過段時間再看就會暈頭轉向。

5.架構把控

這類程序員比上一類型的程序員更進一步,他們經驗十分豐富,對相關框架和工具的熟悉程度很高,“完成功能”、“性能”、“穩定性”這些已經不再是他們的追求,更完美的代碼、更合理的框架才是目標。

對比上一種類型的程序員,他們的優勢在於整理把控,在工作過程中儘量把握代碼命名、註釋及邏輯分離,保證可讀性,也就是說盡可能的保證項目的可持續發展。但正是由於他們的工作方式,可能在“實現階段”來看速度會慢於“實現牛人”,他們的優勢只有在項目後期才會慢慢體現出來。

當然,作為優秀的程序員必須要懂邏輯,其次還有足夠的分析能力和自學能力。在學習的過程中不斷培養技術能力,同時擴展自己的視野,從項目的整個流程去著手考慮,將會擁有更加開闊的職業天地。

所以講真,程序員寫百萬行代碼實際事件正常不過的事情。


子非良駒


寫一百行代碼,他未必是一個編程大神,但一定是個經驗豐富的開發者。

編程水平的高級並不是看數量,不是看行數,而是看代碼的質量,代碼執行的效率,或者說代碼帶來的性能問題。

量變產生質變?

如果一個程序員寫了一百萬行代碼,無論是不是單純的複製粘貼,抄襲他一定也是需要先閱讀別人的代碼。也就是說,即使是抄一百萬行,這裡指帶著理解得去搬運,那也算是“閱碼無數”。這會讓他成為一位對代碼非常熟悉的人。假如是自己純手敲,那可想而知他的技術成就。

但是如果只是搬運,只是寫業務代碼,寫兩百萬行可能也並沒有很高深的技術,只有熟練的編程能力。

一百萬行代碼算多嗎?

如果天天在寫代碼,一個程序員一千行代碼大概需要兩三天的話,一週大概可以寫兩千行代碼。一個月可以寫接近一萬行代碼,一年可以寫十二萬代碼,這樣算下來需要十年左右寫完一百萬行。這個確實有點嚇人,因此個人認為寫一百萬行代碼的程序員全世界也難找。

宇文氏總結:完成一個功能並不是代碼越多越好,也不一定越簡潔越好,要做到代碼多一行會累贅,少一行有缺失,那一定是一段值得品讀的代碼。

關注“極客宇文氏”,更多新鮮編程見解

極客宇文氏


寫了100萬行代碼就一定牛逼嗎?不一定。
不可否認,在大部分互聯網公司,尤其是一些外包公司,技術人員要沒日沒夜的趕進度,每天的代碼量幾乎都過千,一個月下來怎麼著都有幾十萬的代碼量了。但是你敢說這些程序員的水平一定就高嗎?
有多少程序員寫出來的東西只能算勉強能用,甚至於有些完全就不能用,一用就崩潰的那種。
換句話說,一個有著10年工作經歷的程序員,水平一定高過一個只有2年經驗的程序員嗎?不一定!
記住一點:編程並非純技術的工作,它始終是一個創造性的工種。因為編程的最終目的就是將人類腦子裡思考出來的邏輯轉換成一系列操作計算機的指令,然後讓計算機遵循這些指令去解決問題。
除了寫代碼,我們還需要將更多的時間花在思考和Design上。下手敲代碼前,好好想想這個產品或者項目到底要實現什麼功能、未來走向是什麼、我要怎麼做才能讓它更加穩定等等。
程序員不需要沒日沒夜的敲代碼,我們得提高效率,並且在完成項目後反思和總結經驗,而不僅僅是完成任務就了事兒。

叩丁狼教育科技


畢業設計用java寫一個交通分配軟件,完全手寫,從最底層的路網網絡(也可抽象為任何行業的網絡,就是點線面)寫起,寫各種路網操作工具(包括最起初的增刪查改,到點獲取相關線,線獲取區域面等等)然後到寫基礎算法,在以基礎算法為基礎寫複雜算法。然後每寫一部分就總結,再改編,套用設計模式,抽象接口等等,期間還用到了matlab混編技術,以及百度地圖js api等等,最後統計java代碼寫了3560行,js代碼376行,歷時半年左右。然後參加畢業設計,本來導師是內定好我們組的優秀畢業設計的(不是我,但也是我參與了的一個國家級比賽項目,內定給我舍友,我是二把手),結果在現場,我演講完所有參與的導師都給了我95+,神奇般的也成了優秀畢業生,這個是不屬於任何內定唯一額外的一個。我說這些並不是說自己多麼優秀,而是覺得老師們的肯定就是對我編程付出的最好肯定。還有,我不是計算機專業出身,我是學交通的😂

所以呢,寫100萬行代碼確實挺難的,這需要足夠的熱愛與技術。而且隨著技術的提高,很多東西都不是自己去寫,更多的是學習別人寫的優秀的庫,這也使得自己寫的代碼量更少了。順便說一下,後來因為畢業沒讀研,我也沒從事編程相關的行業,編程一下子有點沒了用處,一時間我也蠻失落的,有點光輝後的暗淡。一時間又覺得寫了大半年就輝煌了幾天,有點失落。後來也一度對java產生了偏見,覺得不好玩,學習時間太長,出成果太慢,然後轉戰前端。。。上班後又趁著晚上業餘時間寫前段,至今連學習加幾個小項目也有2000行左右代碼了吧。總之一路走來不容易,尤其是自學的我,經常為一個簡單的小問題而糾結半天,就缺那麼一個人指點。但我還是對編程喜愛有加,寫過的代碼講起來如數家珍,滔滔不絕。這就夠了。

如果一個人一生能寫100萬行代碼,那肯定是要麼是天才要麼是Ai,正常思考的人寫代碼都不太可能達到這個量級,而且我也想不出一個人寫百萬行代碼的項目會是出於什麼需求和目的。。沒寫一半應該就會走火入魔吧,哈哈。


糖炒小小慄


前段時間的工作是幫別人優化代碼。 一個文件寫了幾千行, 優化後, 所有功能都在, 每個文件代碼只有三四百行, 算五十個文件, 我已經刪了別人辛苦寫的五萬行代碼。 自己創作了不到一千行


遙遠的狼族


我從業12年平均每天100行左右大概200萬行!最後的感覺是想怎麼做可能花個七小時 寫代碼一小時甚至半小時搞定 。另外會覺得程序開發數學很重要於是惡補數學。最後我的工作的職位已不是開發工程師 我做到了諮詢部門的經理。在我心裡我永遠是一個程序員 因為我愛編程


沙迦的袈裟


改變世界的程序員。談談玩吧,多進制只是量子智能的基礎識別(你們用那個退火機玩的識別)。我們需要在那個退火機上,加入幾組01條件,例如靜止,移動。相對絕對,真假等等01條件。然後進行自我識別,也就是谷歌那個ai,自我深度學習。產生的邏輯,作為自我意識的程序,最終形成一個,自我意識。

接下來,我這個自我意識,將來他所做的一切事情,都由這個自我意識的邏輯決定。什麼是決定,拿那個自動駕駛舉例,它掃描到的東西是條件之一,自我意識是另一個條件也是主要控制輸出的條件。最後兩個計算,完成輸出。就是這個ai表現出的動作,眼神,慾望,愛,等等

哦,我們是在創造人嗎?這個ai也許會有信仰哦!!!!!!!


雲輕38628585


兩種吧,一種是特別熱愛編程的人,一種是,最沒有水平的程序員只是靠堆砌代碼的。

一般情況下,一個高水平的程序員平均每天可以寫五十或者更少的有效代碼,真正產生效益的代碼,而其他的代碼就是保證這幾十行代碼的工作。

所以寫一百萬行代碼的程序員,我還沒有見到過,也沒有見到任何一個大牛站出來說自己寫了一百萬行代碼。

如果有誰,知道,回覆我一下,謝謝!


楊興華


這個和自己有關,有的人能自我反省,有的人不行,如果能自我反省,只要幾個項目,就能練出大神,有些人不能自我反省,寫一輩子,都是爛代碼,程序只只要,天天糾結這麼寫不好,那麼寫不好,有一天突然找到這樣寫,可以現實重用,異常好處理,接口簡單,依賴很少,那就是比較完美的解決方案,就離高手不遠了,別信什麼設計模式,那個學了會誤導人,我見過抽象工廠模式幾千行代碼,直到現在都不懂幹嘛,一堆根本沒辦法調試的代碼,我把需求花一小時看完,寫了個十來行的一個函數,用線程調用,把那原來幾千行刪了,就完做。做程序,第一考慮的用簡單方法去解決需求,不是考慮什麼面向對象,什麼重載,虛函數,什麼模式,什麼語言,只要簡單,好理解,辦事,比什麼都強,有點片面啊,還有很小機會要踫上要省內存,運行速度要快,


分享到:


相關文章: