你以爲你本身算是一名優秀的開發者嗎?若是是的話,你有沒有考慮過,做爲一名優秀的開發者,你具有哪些優秀的品質?好的開發者和差的開發者區別在哪裏?經驗?技能?仍是天賦?如何才能成爲一名優秀的開發者?程序員
1. 具備很強的分析思惟
做爲一名優秀的開發者,你須要思考,觀察數據,記憶而且分析這些現象和內容,並解決問題。雖然這一點有些抽象,但很不幸的是這是很是重要的一點。爲何很不幸呢?由於這一點意味着不是每個人都能成爲優秀的開發者,即便他們很努力。這種分析思惟有點像是天生的。若是你沒有這個能力的話,仍是儘早改行。
分析性思惟是能夠鍛鍊的,例如解決算法和邏輯問題會讓你在這方面有所提升。可是每一個人都有一個上限,難以超越。
2. 對軟件有一個宏觀的理解
開發一個軟件有點像是下棋 - 你要贏得比賽就要預測後面幾步。在編程的時候,你不光要看到眼前的代碼,你還要想到未來要寫的代碼。做爲一名優秀的開發者,你不該該只盯着軟件的一小部分,你應該看到軟件的總體結構。你須要知道如何實現一項功能,也須要知道爲何實現一項功能。
3. 從業務的角度理解軟件開發
在個人概念中,一名優秀的開發者不只是面向技術的。你同時須要面向業務,理解客戶的需求。若是你作不到這一點的話,有不少潛在的問題:誤解業務需求,軟件可用性差等等。
那麼如何作一個面向業務的開發者呢?算法
4. 善於協做
一名優秀的開發者不是隻會單打獨鬥的。一個項目要成功的話,團隊內部的溝通和協做是相當重要的。不善於協做的開發者是沒法融入團隊的。我知道有不少牛逼的開發者都很內向,可是在現代開發過程當中,光寫代碼是不夠的。
敏捷的世界須要好的開發者
我上面說的幾點也許在多年前是不成立的。若是咱們沒有進入敏捷的時代,任何合格的「碼農」均可以被稱做合格的「開發者」。但事實是咱們已經進入敏捷的時代,咱們須要敏捷的開發者,可以分析問題,從業務的角度考慮問題,對軟件有全局觀,而且善於協做。編程
原文連接,OSChina.NET 原創編譯.net
------- 譯者總結 -------blog
隨着時代的發展,純粹的coding,碼農(programmer)已經不能知足需求。時代須要的是開發者(developer)。做爲開發者你須要「善於分析問題,對軟件開發有大局觀,懂得業務需求,善於溝通協做」。開發
我我的愈來愈感受到,隨着移動互聯網的興起,「開發者」這個概念被提的愈來愈多。IT界的大勢正在推進着對開發者這個角色的需求。開發者是程序員,但程序員不必定是開發者。get