技術能力層次的思考

軟件開發這個職業,可能是最好的職業,也可能是最壞的職業。最好的職業就是,可以發揮你最大的創造力,可以不斷提升自己,可以入行就有不錯的待遇,甚至可能一夜暴富的機會等等。最壞的職業可能就是,新技術層出不窮,一不留神就可能被淘汰,必須花大量的時間學習充電,並且中國面臨更大的成本壓力等。


如何不斷提升自己,是每個技術人員必須思考的問題。從技術能力上,可以大致劃分爲三個層次:第一個層次,掌握實施方法,如各種編程技巧等;第二個層次,掌握具體方法,如架構設計,解決方案等;第三個層次,掌握抽象方法,如設計模式,解決問題框架等。


第一個層次,掌握實施方法,基本上是程序員的要求,如掌握Java的各種語法,能夠按照規範完成相應的程序,能夠使用相應的框架,如SSH,編寫Web應用。常見的問題有,多而不精,大都了了,使用1年Java,開始用.net,之後使用PHP,除非是特殊的人才,基本成了萬金油的角色,很難進入第二個層次,這在中小公司不斷打轉的人身上都能看到;雖然使用一種技巧,但是始終作維護相關的工作,在一個已有系統上修修補補,這在大中型的企業,特別是外企比較多,幾年工作只是在已有框架上就行功能開發,如果本身缺乏深入研究的精神,也基本成爲企業的螺絲釘而已。比較理想的情況是進入一個新項目,有高手指導,項目進行的不錯,成長是非常快的,如前些年進入阿里巴巴,QQ等的這撥人,比較容易突破了第一層次的限制。


第二個層次,掌握具體方法,可以進行架構設計,解決方案設計。對於使用Java進行Web開發,就需要對於Spring Framework等開發框架進行深入理解,對於相關軟件也有深入研究,並且積累了足夠的行業知識,能夠針對業務需求,進行解決方案和技術架構的設計工作。如果工作接觸的系統,都是比較小規模,並且層次比較低,在這個層次上也很難成爲優秀的架構師,很多隻是徒有架構師的Title而已。現在比較好的條件是,優秀開源項目比較多,如Spring Framework, Lucene等,如果能夠對於這些系統達到源代碼級的精通,又有實際的應用場景,想不優秀也難。如果只是使用.net這樣的封閉系統,也只有在業務上下功夫了。


第三個層次,掌握抽象方法,如設計模式,方法論框架等。真正達到這個層次,也就所謂掌握了軟件的道,無疑是大師級人物,從小裏算,承擔總監級角色應該沒有問題。而當今軟件無處不在的情況下,在一個細分領域,能夠真正貫通,也已經成爲非常了不起的人物了。達到這個層次,需要天分,更需要不斷努力,同樣也需要機遇,也就是實踐的機會,否則,即使是諸葛亮,如果是沒有出山的機會,終老於南陽,又能如何?


掌握軟件的道,是每技術人員的夢想,這需要我們腳踏實地,不斷完善自己,不斷在能力上進行跨越,升級,最後才能成就完美人生。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章