程序員怎樣才能達到編程的最高境界?最高境界絕對不是你去編兩行代碼,或者是幾分鐘能寫幾行代碼,或者是用什麼所謂的可視化工具產生最少的代碼這些工做,這都不是真正的高手境界。即便是這樣的高手,那也都是無知者的自封。php
我認爲,一個程序員的成長可分爲以下六個階段。程序員
Ø 第一階段
此階段主要是能熟練地使用某種語言。這就至關於練武中的套路和架式這些表面的東西。編程
Ø 第二階段
此階段能精通基於某種平臺的接口(例如咱們如今經常使用的Win 32的API函數)以及所對應語言的自身的庫函數。到達這個階段後,也就至關於能夠進行真實散打對練了,能夠真正地在實踐中作些應用。函數
Ø 第三階段
此階段能深刻地瞭解某個平臺系統的底層,已經具備了初級的內功的能力,也就是「手中有劍,心中無劍」。工具
Ø 第四階級
此階段能直接在平臺上進行比較深層次的開發。基本上,能達到這個層次就能夠說是進入了高層次。這時進入了高級內功的修煉。好比能進行VxD或操做系統的內核的修改。學習
這時已經再也不有語言的束縛,語言只是一種工具,即便要用本身不會的語言進行開發,也只是簡單地熟悉一下,就手到擒來,徹底不像是第一階段的時候學習語言的那種狀況。通常來講,從第三階段過渡到第四階段是比較困難的。爲何會難呢?這就是由於不少人的思想轉變不過來。操作系統
Ø 第五階級
此階段就已經再也不侷限於簡單的技術上的問題了,而是能從全局上把握和設計一個比較大的系統體系結構,從內核到外層界面。能夠說是「手中無劍,心中有劍」。到了這個階段之後,能對市面上的任何軟件進行剖析,並能按本身的要求進行設計,就算是MS Word這樣的大型軟件,只要有充足的時間,也必定會設計出來。.net
Ø 第六階級
此階段也是最高的境界,達到「無招勝有招」。這時候,任何問題就純粹變成了一個思路的問題,不是用什麼代碼就能表示的。也就是「手中無劍,心中也無劍」。設計
此時,對於練功的人來講,他已不用再去學什麼少林拳,只是在旁看一下少林拳的對戰,就能把此拳拿來就用。這就是真正的大師級的人物。這時,Win 32或Linux在你眼裏是沒有什麼差異的。接口
每個階段再向上發展時都要按必定的方法。第1、第二個階段經過自學就能夠完成,只要多用心去研究,耐心地去學習。
要想從第二個階段過渡到第三個階段,就要有一個好的學習環境。例若有一個高手帶領或公司裏有一個好的練手環境。通過2、三年的積累就能達到第三個階段。可是,有些人到達第三個階段後,經常就很難有境界上的突破了。他們這時會產生一種觀念,認爲軟件無非如此,認爲本身已無所不能。其實,這時若是遇到大的或難些的軟件,他們每每仍是無從下手。
如今咱們國家大部分程序員都是在第2、三級之間。他們大多都是經過自學成才的,不過這樣的程序員通常在軟件公司也能獨當一面,完成一些軟件的模塊。
可是,也還有一大堆處在第一階段的程序員,他們通常就能玩玩VB,作程序時,去找一堆控件集成一個軟件。
如今一種流行的說法是,中國軟件人才如今是一個橄欖型的人才結構,有大量的中等水平的程序員,而初級和高級程序員比較少。而我認爲,如今中國絕大多數都是初級的程序員,中級程序員不多,高級的就更少了。因此,如今的人才結構是「方塔」形,這是一種斷層的不良結構。而真正成熟的軟件人才結構應該是平滑的三角形結構。這樣,初級、中級、高級程序員才能充分地各施所長。
本文摘自: 智趣網-C語言/C++語言編程技術交流論壇(http://www.bczh.net) 詳細出處請參考:http://www.bczh.net/forum.php?mod=viewthread&tid=1317&extra=