什麼是程序員的優秀品質?

【CSDN編譯】使用一種特殊的編程語言、編程很牛,單單靠這個並不能說一名程序員/開發者就是優秀程序員/開發者。   快速發展的開發環境使得這個行業比我今天看到的任何一個行業都要發展迅速,這既有積極的一面也有消極的一面:今天的程序員/開發者有很多編程語言、開發工具和開發平臺可選,但是建立一個安全、可擴展的環境卻變得難了很多;硬件和軟件正日新月異地變得更加複雜,但現在學習新技術比過去要難太多了。

    以下是優秀程序員應當具備的品質:

語言和工具(Languages and Tools:)

    任何程序員/開發者需要具備的第一個技能就是,能夠用編程語言工作並會使用與之相關的主要開發工具,包括:工具、IDEs, web 框架, messaging APIs。

程序設計方法(Programming Paradigm:)

舉例來說,很好地理解面向對象,這對使用強制式語言(Imperative Language也稱過程式語言)寫出可維護的代碼至關重要。在企業開發中你會遇到各種不同的問題,理解多種程序設計方法並知道何時使用,將使這些問題迎刃而解。

領域專長的知識(Domain Specific Knowledge:)

如果想編寫系統來解決特定領域內的問題,那麼擁有該領域的專長知識將非常重要。
儘管許多這樣的知識是由項目的商業分析員(Business Analyst)來獲悉,但如果開發者也能獲取,那麼跟用戶的交流將會更加容易,而且更能夠理解他們的專業詞彙。

人際關係(People Skills:)

    軟件開發中最重要的技能之一就是能夠與其他開發者一起高效工作——同事、質量/商業分析員(Quality/Business Analysts),客戶,用戶,很多很多……如果你能夠很好地處理這些關係,那麼成功的大路也離你不遠矣。

解決問題(Problem Solving:)

    有能力解決那些沒有明顯解決方法的問題,這一點在軟件開發中很重要。當把你的應用配置到JBoss或者通過一個測試找到一個棘手bug的時候,理智地編程將成爲調試一個類路徑(class path)問題。

溝通能力(Good Communication skills:)

    在軟件世界中,人們通常認爲好的溝通能力就是流利地說話,事實上這遠不是。這指的是:你能夠多麼有效地與其他人交流。作爲一名優秀的開發者,你應當能夠很好地表達你的想法,很好地聽,以及很好地掌控你與他人溝通的過程。

讀書(Read Books:)

    讀大量書將瞭解很多不同的技術,讀書使你對一種技術有了快速、直接的視角。通常你應當選擇知名學者的書,他們推崇實踐和用技術解決問題的多種方法。在這個過程中,你將學到很多並逐漸形成自己的方法。沒準哪天你也就能出書了呢。

實踐、實踐再實踐(Practice, Practice and Practice)

    許多開發者擁有大量理論知識,他們飽覽書籍和技術資料。然而,怎樣運用這些知識卻讓他們望而卻步。這是因爲他們缺乏實踐。你工作的效率和效力只能通過你實踐中編寫代碼來獲得。唯一能使你成爲優秀開發者的方法就是實踐、實踐再實踐。

遵循範例和最好的實踐(Follow Patterns and Best Practices :)

    範例和實踐反映了技術指導、常見技術問題和基於真實事件的實踐。學習的過程是循序漸進的,但是一勞永逸。這會節省你非常多的時間和精力,讓你的工作更加有效。遵循一本“代碼編程指南”(Code Design Guideline),經常使用代碼分析工具將檢測和分析你的代碼。

討論/小組溝通(Discussion/Newsgroup:)

    參加開發社區會提高你的領導能力以及貢獻感,二者都是成功的必需品。在社區內參加一場含量較高的技術討論將使你充滿成就感,而且會增長你的知識,因爲其中的智者會查看和評點你的解決方法,你也會查看和評點他們的。而且這個過程教會你接納並感激別人的建議。如果她/他做出了積極的貢獻,不要忘了讚揚和鼓勵('pat someone on the back')。

網絡和數據庫知識(Knowledge of Networking and Databases:)

有人也許不贊成這點,但是一個優秀的開發者應當知道網絡和數據庫的基本東西。而且在思考解決方法的時候,不要忘記將二者考慮在內。擁有二者的知識,能夠幫你寫出更好的代碼並節省你很多時間。

博客、寫文章(Blog/ Write Articles:)

    我們中有誰能夠記住每件事?我不能,所以我把他們記下來。當我需要的時候,可以回頭翻閱參考。除此之外,我可以藉此從讀者那裏獲得反饋,讓我對同樣的問題收穫更多的方法。我已經獲悉了許多與我工作有關的反饋,雖然有好有壞,但我會一一驗證,這個過程也讓我受益匪淺。

KISS

    不要想歪了,這裏的KISS不是你想的那樣,是指讓應用/方法直短、簡單(Keep Implementations/Approaches Short and Simple的簡寫)。不要使用行話來讓事情更加複雜,因爲人們很難理解它們。最好的方法是簡化你的設計並避免過度設計(over-engineering)的東西。

像測試者一樣思考(Think as a Tester:)

開發者和測試者,來自兩個不同陣營的兩類人羣,隨時準備同彼此較量。我發現二者的合作將產生非常好的結果。既不會損害開發者的利益也不會損害測試者的利益。實際上,長期來看,像測試者一樣思考有利於減少你代碼的bug,而且會形成很好的編程習慣和思維。

堅持一致是遊戲規則(Consistency is the name of the game:)

    你是否經常跳槽或者被你的薪水所打擊?如果是,那麼靜坐下來放鬆下並重新規劃。好好想想不要讓你的決定天馬行空,爲了不斷向前,你需要一個堅實的決定並堅持不懈。

參加技術研討會/大事件(Attend technology seminars and events:)

    如果你所在的城市有技術研討會,一定要抽出時間參加。大部分的研討會是免費的,而且會提供新技術的重要信息。

萬家通吃還是一門獨大?(Jack of all or Master of One?:)

    嗯……這個問題不好回答。在現在的環境下,你必須掌握一種以上的技術。儘管這不容易,但是好的開發者還是能夠做到。其中的關鍵就在於適應性:如果你精於某種技術,那麼給以機會你將較容易地在短期內掌握一種新技術。你不妨試試,多掌握一種技術可以讓你在使用中對比、選擇。

停止抱怨(Stop complaining:)

    是否軟件沒有做成,是否測試人員給你檢查出一堆bug?許多開發者的本能反應是抵制情緒進而非常抵制這種情況。由於這種情緒是自然反應未經控制,所以它不可取。靜心分析爲什麼軟件失敗、爲什麼有如此多bug,這是一個學習的經歷將使你未來的工作受益良多。

    最後,請記住你不是要永遠做個程序員。所以一旦你自我滿足並覺得自己是個優秀的程序員,你就得重新規劃你自己(re-program yourself)。擴展你的興趣。開發只是這個過程的一部分,瞭解用戶和商業實際上是一種藝術,每個人應當以此爲目標並努力掌握它。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章