使用一種特殊的程式語言、程式設計很牛,單單靠這個並不能說一名程式設計師/開發者就是優秀程式設計師/開發者。
快速發展的開發環境使得這個行業比我今天看到的任何乙個行業都要發展迅速,這既有積極的一面也有消極的一面:今天的程式設計師/開發者有很多程式語言、開發工具和開發平台可選,但是建立乙個安全、可擴充套件的環境卻變得難了很多;硬體和軟體正日新月異地變得更加複雜,但現在學習新技術比過去要難太多了。
以下是優秀程式設計師應當具備的品質:
語言和工具(languages and tools)
程式設計方法(programming paradigm)
舉例來說,很好地理解物件導向,這對使用強制式語言(imperative language也稱過程式語言)寫出可維護的**至關重要。在企業開發中你會遇到各種不同的問題,理解多種程式設計方法並知道何時使用,將使這些問題迎刃而解。
領域專長的知識(domain specific knowledge)
如果想編寫系統來解決特定領域內的問題,那麼擁有該領域的專長知識將非常重要。
[size=xx-small][/size]
儘管許多這樣的知識是由專案的商業分析員(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
像測試者一樣思考(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)。擴充套件你的興趣。開發只是這個過程的一部分,了解使用者和商業實際上是一種藝術,每個人應當以此為目標並努力掌握它。
[color=darkred][/color]
什麼是程式設計師的優秀品質?
csdn編譯 使用一種特殊的程式語言 程式設計很牛,單單靠這個並不能說一名程式設計師 者就是優秀程式設計師 開發者。快速的開發環境使得這個行業比我今天看到的任何乙個行業都要發展迅速,這既有積極的一面也有消極的一面 今天的程式設計師 開發者有很多程式語言 開發工具和開發可選,但是建立乙個安全 可擴充套...
什麼是程式設計師的優秀品質?
使用一種特殊的程式語言 程式設計很牛,單單靠這個並不能說一名程式設計師 開發者就是優秀程式設計師 開發者。快速發展的開發環境使得這個行業比我今天看到的任何乙個行業都要發展迅速,這既有積極的一面也有消極的一面 今天的程式設計師 開發者有很多程式語言 開發工具和開發平台可選,但是建立乙個安全 可擴充套件...
什麼是程式設計師的優秀品質?
csdn編譯 使用一種特殊的程式語言 程式設計很牛,單單靠這個並不能說一名程式設計師 開發者就是優秀程式設計師 開發者。快速發展的開發環境使得這個行業比我今天看到的任何乙個行業都要發展迅速,這既有積極的一面也有消極的一面 今天的程式設計師 開發者有很多程式語言 開發工具和開發平台可選,但是建立乙個安...