程序員怎樣才能達到編程的最高境界?最高境界絕對不是你去編兩行代碼,或者是幾分鐘能寫幾行代碼,或者是用什麼所謂的可視化工具產生最少的代碼這些工做,這都不是真正的高手境界。即便是這樣的高手,那也都是無知者的自封。linux
一個程序員的成長可分爲以下六個階段:程序員
第一階段 此階段主要是能熟練地使用某種語言。這就至關於練武中的套路和架式這些表面的東西。編程
第二階段 此階段能精通基於某種平臺的接口(例如咱們如今經常使用的win 32的api函數)以及所對應語言的自身的庫函數。到達這個階段後,也就至關於能夠進行真實散打對練了,能夠真正地在實踐中作些應用。api
第三階段 此階段能深刻地瞭解某個平臺系統的底層,已經具備了初級的內功的能力,也就是「手中有劍,心中無劍」。函數
第四階級 此階段能直接在平臺上進行比較深層次的開發。基本上,能達到這個層次就能夠說是進入了高層次。這時進入了高級內功的修煉。好比能進行vxd或操做系統的內核的修改。工具
這時已經再也不有語言的束縛,語言只是一種工具,即便要用本身不會的語言進行開發,也只是簡單地熟悉一下,就手到擒來,徹底不像是第一階段的時候學習語言的那種狀況。通常來講,從第三階段過渡到第四階段是比較困難的。爲何會難呢?這就是由於不少人的思想變不過來。學習
第五階級 此階段就已經再也不侷限於簡單的技術上的問題了,而是能從全局上把握和設計一個比較大的系統體系結構,從內核到外層界面。能夠說是「手中無劍,心中有劍」。到了這個階段之後,能對市面上的任何軟件進行剖析,並能按本身的要求進行設計,就算是ms word這樣的大型軟件,只要有充足的時間,也必定會設計出來。操作系統
第六階級 此階段也是最高的境界,達到「無招勝有招」。這時候,任何問題就純粹變成了一個思路的問題,不是用什麼代碼就能表示的。也就是「手中無劍,心中也無劍」。設計
此時,對於練功的人來講,他已不用再去學什麼少林拳,只是在旁看一下少林拳的對戰,就能把此拳拿來就用。這就是真正的大師級的人物。這時,win 32或linux在你眼裏是沒有什麼差異的。接口
每個階段再向上發展時都要按必定的方法。第1、第二個階段經過自學就能夠完成,只要多用心去研究,耐心地去學習。
要想從第二個階段過渡到第三個階段,就要有一個好的學習環境。例若有一個高手帶領或公司裏有一個好的練手環境。通過2、三年的積累就能達到第三個階段。可是,有些人到達第三個階段後,經常就很難有境界上的突破了。他們這時會產生一種觀念,認爲軟件無非如此,認爲本身已無所不能。其實,這時若是遇到大的或難些的軟件,他們每每仍是無從下手。
那麼,同爲程序員的你,又是什麼「段位」呢?