|
不知覺做軟件開發(fā)已經(jīng)有6年了,回看自己的經(jīng)歷,可以說是相當有成就感,6年中通過不斷的學習的實踐,從一個菜鳥成長為一名軟件架構(gòu)師,這個過程可以說充滿樂趣。通過學習各種理論、技術(shù)、方法,并有在實踐中應(yīng)用,觀察它們的效果,思考它們之間的關(guān)系,再把不同事物融合在一起,形成一個完整的能力體系,以此來挑戰(zhàn)更艱巨的軟件開發(fā)任務(wù)。
我現(xiàn)在是一個框架師,所以看問題喜歡從總體架構(gòu)出發(fā),所以我認為人的能力也有一個架構(gòu)存在,每個的能力架構(gòu)都不一樣,有的人能力架構(gòu)比較合理,有的人則不那么合理,合理的能力架構(gòu)能讓較少能力元素(知識、技能、方法等)發(fā)揮出較大的作用,不合理的能力架構(gòu)會浪費人的能力,讓所學無所用。
什么樣的能力結(jié)構(gòu)是比較合理的呢,這不是一個簡單的問題,這里我根據(jù)自己的經(jīng)驗總結(jié)提出一個參考模型,這個參考模型采用我們常見的分層架構(gòu)模式。我認為一個軟件開發(fā)人員的能力大體應(yīng)該分為四個層次:
最高層:過程控制和管理 |
第三層:方法、思想和理論 |
第二層:具體技術(shù)、語言和工具 |
最底層:基礎(chǔ)原理、基礎(chǔ)知識 |
層以層之間存在一定的關(guān)系,上一層必須以下一層為基礎(chǔ),而上一層又反過來影響下一層。最底層是基礎(chǔ)原理和基本技術(shù):包括計算機原理、電路、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫原理、編譯原理、操作系統(tǒng)等。這些知識是很基礎(chǔ)的有了一定的基礎(chǔ)才能更好的學習其它能力
第二層是具體技術(shù)、語言和工具,包括各種編程語言、開發(fā)環(huán)境、數(shù)據(jù)庫、開發(fā)框架等。每顯然,一般情況下要學習第二層的內(nèi)容必須要有以最底層的能力為基礎(chǔ),當然也有人沒有任何基礎(chǔ)就能學習第二層的能力,但是一般這樣學習效果很差,知其然不知其所以然,遇到一些問題也會不知所措。另一方面第二層的學習又會反過來影響最底層的能力,它能鞏固基礎(chǔ)知識的學習,能暴露出你在基礎(chǔ)方面的不足,還能驅(qū)動你對基礎(chǔ)知識的學習。當我還是個程序員的時候,學習的內(nèi)容主要集中在這兩個層次。
第三層是方法、思想和理論,包括面向?qū)ο笏枷?、設(shè)計原理、設(shè)計模式、需求工程、UML等,同樣第三層的能力也要以第二層為基礎(chǔ),具個例子來說,要學習面向?qū)ο蟮脑O(shè)計方法首先要學會一門面向?qū)ο笳Z言還要會使用case工具,同時第三層的能力又會反過來影響第二層,好的方法能更好的發(fā)揮你的技術(shù),還可以彌補技術(shù)的不足,舉幾個例子來說,設(shè)計做的好是不是寫起程序來很輕松,斷言、單元測試這些方法能讓代碼的質(zhì)量達到前所未有的高度。
最高層是過程控制和管理,這個層次的能力通常涉及時間跨度和團隊協(xié)作,包括項目管理的能力,軟件過程的控制能力、版本控制的能力、需求管理的能力等。同樣這一層次的能力也要以第三層的能力為基礎(chǔ),舉例來說,如果軟件沒有好的架構(gòu),那不管采用什么過程最終都會一團糟,而良好的設(shè)計能力,再加上迭代的開發(fā)過程、嚴格的版本控制,就一定能開發(fā)出優(yōu)秀的軟件。
通過這個模型我們不難看出,一個優(yōu)秀的軟件開發(fā)人員各個層次的能力應(yīng)該是比較均衡的,并且這些能力不應(yīng)該是獨立,它們應(yīng)該能組合在一起發(fā)揮出整體性的威力。
通過這個模型也可以指導(dǎo)我們的學習過程,一般地,我們應(yīng)該先掌握下一層的能力再掌握上一層的能力,但又不能只停留在下一層。我見過不少大學生,剛開始工作就學習項目管理,還一些做項目N年的前輩,能夠把類庫倒背如流,還不知什么是UML、什么是內(nèi)聚、藕合和粒度。我覺得這都不是好的現(xiàn)象,我認為能力的學習也應(yīng)該采取迭代的方式,我們先要打基礎(chǔ),但也不需要打一個完美的基礎(chǔ),我認為打個三成就夠了,然后就可以嘗試學習上一層的的能力,可能你會掌握一成上層的能力,這時會發(fā)現(xiàn)基礎(chǔ)還打的有問題,然后再帶著你的問題來補基礎(chǔ)。如此反復(fù),當你上一層的能力也達到三成時,又可以嘗試再上層的學習。這時就把上一層當成是基礎(chǔ)再上一層當成是上層。如此反復(fù)直到你爽了為止,哈哈。
it知識庫:軟件開發(fā)人員的能力模型,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。