開發者技能修煉的五個等級

ZHOU_VIP發表於2017-04-26

第一階梯:Typer,打字員

每一位開發者在正式踏上開發道路之前,都需要經過毫無程式設計經驗的“第一階段”。

這時他們對於程式的理解僅限於照著書本或記憶進行有規律的字元錄入,甚至不清楚自己所輸入的字元代表什麼指令,因此每當錯誤出現時常常顯得手足無措,懷疑軟體、懷疑係統,甚至開始懷疑人生,到頭來卻發現只是少輸入了個分號。

該階段雖然看起來簡單,但確實也是最容易將門外漢攔在開發者殿堂之外的門檻。

對於位於該層的小白而言,切記不要迷戀《30天從入門到精通》等武林祕籍,對沒有入門的人來說很容易變成《兩週從入門到放棄》。其實也並非沒有入門捷徑,找個真人師傅帶進門就好了。

第二階梯:Developer,開發工程師

作為擁有0-3年程式設計經驗的第二層,可以正式的稱呼自己為“編碼菜鳥”了。

這時的他們對程式設計概念已經有了初步的理解,知道了變數、邏輯與函式的意義。同時也可以熟練的使用CV大法(Control+C、Control+V)來模仿前輩的案例或網路例項進行功能實現了,但也僅僅只能實現需求邏輯而已。同時因為並不理解這段程式碼的真實含義,所以實現的這坨程式碼通常讓人頭痛不已,是BUG的高發地。

對於位於該層的菜鳥而言,切記不要迷戀《Thinking In XX》系列的書刊,最好的修煉方式還是多閱讀開源工程程式碼,多參與專案實踐,完成一個由量到質的蛻變,從而進入下一個等級。

(圖片來自:http://lateralresearch.com/)

第三階梯:Research&Developer(R&D) ,研發工程師

作為擁有3-5年程式設計經驗的中間層,進入該層的“攻城獅”們已經開始被委以重任,負責攻城拔寨,調研新型武器,屬於團隊裡面的攻堅小能手、小白與菜鳥所仰望的大牛了。

與此同時,這一層級也是所有層級裡面最危險、最容易迷失的一層,其危險在於因為沉迷於舒適區與盲目自信而停滯不前,最終因精力的衰退而被小鮮肉所替代;其迷失在於僅善於解決專案中曾負責或以前接觸過的某一塊的問題,對於系統架構欠缺整體的意識,不具備建立一個全新系統的能力。

對位於該層的“攻城獅”們而言,切記不要沉迷於程式碼的表面,也不要侷限於API或原始碼庫的收集,最好的修煉方式是不斷地思考與錘鍊自身對最佳實踐方式的理解感悟,從而為進入下一階段打下堅實的基礎。

第四階梯:Architect,架構師

作為擁有5-8年程式設計經驗的開發者頂層,進入該層的大師們對於某一領域的系統研究已經“摸得門清”,通常他們是使系統“拔地而起”、“聳入雲霄”的設計師。

(圖片來自:http://t.cn/R6rj4rO)

他們更喜歡形容自己為“藝術家”而不是架構師,他們即使喝上一斤“關公坊+酸梅湯”都能準確的給你畫出其設計過的系統架構圖、功能結構圖、資料庫模型,並能基於系統實際使用情況進行基於架構的系統結構優化、效能優化等。

進入此階段的工程師已經脫離了對招式的執念,步入了對於設計與程式設計之道的藝術修行道路。

第五階梯:Consultant,諮詢師

諮詢師是一個特殊的存在,如果說架構師是追求於設計之道與藝術之道的苦行僧,那諮詢師就是這條道路上的佈道家。

他們一般有著廣闊的見識與豐富的實戰經驗,也許他並未開發過多麼經典的架構,但經過短暫的觀察即可指出對於當前架構的優化意見;也許他並不能寫出多麼高深複雜的原始碼,但通常可以用最簡單的辦法解決技術上的難題;也許它並不瞭解你所遇問題的業務背景與專業技術,但可以通過跨領域知識啟迪你解決問題。

上文的階梯劃分出自我過往八年的工作經驗,對於第四、第五階梯,我本無意劃出高下之分,怎奈文筆功力有限,只好粗斷為兩個部分。回顧前文,我對於開發者的階段劃分又有了新的想法,開發者在歷經以上五個層級之後又該如何發展,是科學家還是哲學家?我想聽聽你的見解。

相關文章