開發(fā)者技能修煉的5個等級,你沖關(guān)到哪兒了?
***階梯:Typer,打字員
每一位開發(fā)者在正式踏上開發(fā)道路之前,都需要經(jīng)過毫無編程經(jīng)驗的“***階段”。
這時他們對于程序的理解僅限于照著書本或記憶進(jìn)行有規(guī)律的字符錄入,甚至不清楚自己所輸入的字符代表什么指令,因此每當(dāng)錯誤出現(xiàn)時常常顯得手足無措,懷疑軟件、懷疑系統(tǒng),甚至開始懷疑人生,到頭來卻發(fā)現(xiàn)只是少輸入了個分號。
該階段雖然看起來簡單,但確實也是最容易將門外漢攔在開發(fā)者殿堂之外的門檻。
對于位于該層的小白而言,切記不要迷戀《30天從入門到精通》等武林秘籍,對沒有入門的人來說很容易變成《兩周從入門到放棄》。其實也并非沒有入門捷徑,找個真人師傅帶進(jìn)門就好了。
第二階梯:Developer,開發(fā)工程師
作為擁有0-3年編程經(jīng)驗的第二層,可以正式的稱呼自己為“編碼菜鳥”了。
這時的他們對編程概念已經(jīng)有了初步的理解,知道了變量、邏輯與函數(shù)的意義。同時也可以熟練的使用CV大法(Control+C、Control+V)來模仿前輩的案例或網(wǎng)絡(luò)實例進(jìn)行功能實現(xiàn)了,但也僅僅只能實現(xiàn)需求邏輯而已。同時因為并不理解這段代碼的真實含義,所以實現(xiàn)的這坨代碼通常讓人頭痛不已,是BUG的高發(fā)地。
對于位于該層的菜鳥而言,切記不要迷戀《Thinking In XX》系列的書刊,***的修煉方式還是多閱讀開源工程代碼,多參與項目實踐,完成一個由量到質(zhì)的蛻變,從而進(jìn)入下一個等級。
(圖片來自:http://lateralresearch.com/)
第三階梯:Research&Developer(R&D) ,研發(fā)工程師
作為擁有3-5年編程經(jīng)驗的中間層,進(jìn)入該層的“攻城獅”們已經(jīng)開始被委以重任,負(fù)責(zé)攻城拔寨,調(diào)研新型武器,屬于團(tuán)隊里面的攻堅小能手、小白與菜鳥所仰望的大牛了。
與此同時,這一層級也是所有層級里面最危險、最容易迷失的一層,其危險在于因為沉迷于舒適區(qū)與盲目自信而停滯不前,最終因精力的衰退而被小鮮肉所替代;其迷失在于僅善于解決項目中曾負(fù)責(zé)或以前接觸過的某一塊的問題,對于系統(tǒng)架構(gòu)欠缺整體的意識,不具備建立一個全新系統(tǒng)的能力。
對位于該層的“攻城獅”們而言,切記不要沉迷于代碼的表面,也不要局限于API或源碼庫的收集,***的修煉方式是不斷地思考與錘煉自身對***實踐方式的理解感悟,從而為進(jìn)入下一階段打下堅實的基礎(chǔ)。
第四階梯:Architect,架構(gòu)師
作為擁有5-8年編程經(jīng)驗的開發(fā)者頂層,進(jìn)入該層的大師們對于某一領(lǐng)域的系統(tǒng)研究已經(jīng)“摸得門清”,通常他們是使系統(tǒng)“拔地而起”、“聳入云霄”的設(shè)計師。
他們更喜歡形容自己為“藝術(shù)家”而不是架構(gòu)師,他們即使喝上一斤“關(guān)公坊+酸梅湯”都能準(zhǔn)確的給你畫出其設(shè)計過的系統(tǒng)架構(gòu)圖、功能結(jié)構(gòu)圖、數(shù)據(jù)庫模型,并能基于系統(tǒng)實際使用情況進(jìn)行基于架構(gòu)的系統(tǒng)結(jié)構(gòu)優(yōu)化、性能優(yōu)化等。
進(jìn)入此階段的工程師已經(jīng)脫離了對招式的執(zhí)念,步入了對于設(shè)計與編程之道的藝術(shù)修行道路。
第五階梯:Consultant,咨詢師
咨詢師是一個特殊的存在,如果說架構(gòu)師是追求于設(shè)計之道與藝術(shù)之道的苦行僧,那咨詢師就是這條道路上的布道家。
他們一般有著廣闊的見識與豐富的實戰(zhàn)經(jīng)驗,也許他并未開發(fā)過多么經(jīng)典的架構(gòu),但經(jīng)過短暫的觀察即可指出對于當(dāng)前架構(gòu)的優(yōu)化意見;也許他并不能寫出多么高深復(fù)雜的源碼,但通??梢杂米詈唵蔚霓k法解決技術(shù)上的難題;也許它并不了解你所遇問題的業(yè)務(wù)背景與專業(yè)技術(shù),但可以通過跨領(lǐng)域知識啟迪你解決問題。
上文的階梯劃分出自我過往八年的工作經(jīng)驗,對于第四、第五階梯,我本無意劃出高下之分,怎奈文筆功力有限,只好粗?jǐn)酁閮蓚€部分?;仡櫱拔?,我對于開發(fā)者的階段劃分又有了新的想法,開發(fā)者在歷經(jīng)以上五個層級之后又該如何發(fā)展,是科學(xué)家還是哲學(xué)家?我想聽聽你的見解。