優秀的程式員和一般的程式員差別在哪?(知網)

來源:互聯網
上載者:User

轉載:http://www.zhihu.com/question/19759297#269442郭凜,軟體工藝師

在我平時所見到的程式員中,如果純以編碼能力來看,個人覺得可以分為五類,依次是:

1. 拷貝型
拷貝型選手就是傳說中的“代碼拷貝員”了,他們對實現功能幾乎沒有思路,所作的事情就是從網上或是之前其他團隊成員寫的代碼中拷貝出片段,然後放到項目中,如果運行項目出現了期望結果,則表示任務完成。
這類人只會改代碼,卻不會寫代碼。他們大多對編程毫沒有興趣,只是希望以此糊口而已。

2. 新手型
當產品有功能需求時,由於經驗有限,程式員並不完全知道要如何?這個功能,需要通過學習、尋找資料等方式來解決問題。
這種情況下的編碼過程,程式員的主要目標是“完成功能”,那麼很難有多餘的心思去考慮邊界條件、效能、可讀性、可擴充性、編碼規範等問題,因此代碼bug可能較多,穩定性不高。常常會發生開發花費1個月,改bug卻要改上好幾個月的事情。

3. 學習型
這類程式員對所在領域的語言已經比較瞭解,對於一般功能可以有較為清晰的實現思路,給出需求時可以通過自己的思路來實現,並且會一定程度上考慮邊界條件和效能問題。但僅此而已,他們對可讀性和可擴充性考慮很少,也沒有項目層級的考慮,主要是希望通過實現代碼來練手或是學習。
這類程式員最大的表現在於喜歡“創造代碼”,即使有現成的實現,他們也希望自己來實現一套,以達到“學習”的目的。他們不喜歡複用別人的代碼,看見項目中別人實現了相類似的功能,他們會以“需求不同”的借口來自己重新實現一套。這類人一般來說對技術有著較為濃厚的興趣,希望能夠通過項目來進行學習。
從項目的角度來說,這種做法最大的麻煩在於開發週期可能較長(相比直接使用現成的實現),並且會使得項目代碼膨脹,影響未來的維護。但這類程式員由於有興趣,如果好好培養或許會成為明天的牛人。

4. 實現型
這類程式員一般有較為豐富的經驗,由於寫得太多,因此不再追求“創造代碼”來進行學習,同時對所在領域可能涉及的很多第三方架構或是工具都比較熟悉,當接受到產品需求時,對功能實現方案已經瞭然於胸,因此他們可以快速的實現需求,並且對邊界、效能都有一定程度的考慮。因為能夠快速實現需求功能,經常會被團隊評價為“牛人”。但他們一般僅僅停留在“完成功能”層級上,對代碼的可讀性、可擴充性、編碼規範等考慮較少,對項目總體把握也較少(例如控制項目膨脹、方便部署等架構層級的東西)。
這類程式員最大的表現在於喜歡“開發項目”,卻不喜歡“維護項目”。他們產出的代碼最大的問題就是維護較為困難,可能過上幾個月回頭看自己的代碼都會暈頭轉向。因此即使是自己寫的代碼,仍然不願意維護,一般會苦了後來人。
因為介面設計的缺乏,當需求變更時,發現代碼要改的東西太多,然後抱怨需求變化,卻很少認為是自己的代碼問題。這樣的項目如果經過長時間的變更維護,最終會變得難以維護(一般表現在需求變更回應時間越來越長)甚至無法維護,最終要麼是半死不活,要麼是被推倒重來。

5. 架構型
這類程式員比實現型更進一步,他們經驗豐富,對相關架構和工具等都很熟悉,“完成功能”“穩定性”“效能”這些已經不再是他們的追求,更優美的代碼、更合理的架構才是目標。
這類程式員代碼設計大多建立在對需求的詳細瞭解和對需求變更的預測上——可擴充性較好;代碼細節也盡量多的考慮邊界情況、效能——穩定高效;代碼命名和注釋都恰到好處——可讀性較高;同時在開發過程中他們會不斷重構,對代碼做減法——保證項目可持續發展;等等

但由於考慮問題較多,單從“實現功能”階段來看,完成速度不一定會比“實現型”要快。只是到了項目中後期優勢才會慢慢體現出來

郝培強,iApp4Me創始人,iOS開發人員

我覺得好程式員的標準:
1、要懂邏輯,這點其實挺難達到,很多很不錯的程式員其實邏輯能力不行,所以我覺得限制了他們更深一層次的發展。或者說限制了他們解決特別複雜問題的能力。
2、要有分析能力。這也是解決複雜問題不可或缺的能力。
3、要會自學,技術發展速度很快,如果沒有自學能力會被淘汰的。所以在中國英語要好,不然看不懂最新的技術走向。
4、要有良好的時間管理習慣和意識。
5、要有耐心,肯於付出。
6、要有良好的工作習慣。
7、會看且勤於看文檔。

我自己很多點都達不到,但是希望能努力,慢慢達到吧。



人月神話,關注產品管理,IT專案管理,SOA

1.對編程有濃厚的興趣,由興趣能驅動自己的探索和鑽研精神,優秀程式員一般喜歡用業餘時間探索和自己琢磨點東西,研究點開源架構和原始碼,關注新技術,喜歡研究和探索演算法,邏輯方面的內容。
2.優秀程式員一般比較懶於做重複的事情,對於重複事情有專屬的程式員思維,即通過程式或其它自動化方式解決重複問題,而留更多時間去思考。
3.優秀程式員更多的會從簡易功能實現,花哨的介面轉移到對安全,效能,可擴充等底層架構的關注。
4.優秀程式員一般有較明顯的自戀和偏執特徵,有較為希望獨自工作的特徵,比較難於被非技術背景管理者駕馭,高度強調自我能力價值的被認可,而且很多優秀程式員並不是好教練。
5.優秀程式員一般有較為紮實的演算法,資料結構等理論知識的基礎。這些讓他們在迅速進入新領域的時候快人一籌。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.