我認為,一個程式設計師的成長可分為如下六個階段。第一階段此階段主要是能熟練地使用某種語言。這就相當於練武中的套路和架式這些表面的東西。第二階段此階段能精通基於某種平臺的介面(例如我們現在常用的Win 32的API函式)以及所對應語言的自身的庫函式。到達這個階段後,也就相當於可以進行真實散打對練了,可以真正地在實踐中做些應用。第三階段此階段能深入地瞭解某個平臺系統的底層,已經具有了初級的內功的能力,也就是“手中有劍,心中無劍”。第四階級此階段能直接在平臺上進行比較深層次的開發。基本上,能達到這個層次就可以說是進入了高層次。這時進入了高階內功的修煉。比如能進行VxD或作業系統的核心的修改。這時已經不再有語言的束縛,語言只是一種工具,即使要用自己不會的語言進行開發,也只是簡單地熟悉一下,就手到擒來,完全不像是第一階段的時候學習語言的那種情況。一般來說,從第三階段過渡到第四階段是比較困難的。為什麼會難呢?這就是因為很多人的思想轉變不過來。第五階級此階段就已經不再侷限於簡單的技術上的問題了,而是能從全域性上把握和設計一個比較大的系統體系結構,從核心到外層介面。可以說是“手中無劍,心中有劍”。到了這個階段以後,能對市面上的任何軟體進行剖析,並能按自己的要求進行設計,就算是MS Word這樣的大型軟體,只要有充足的時間,也一定會設計出來。第六階級此階段也是最高的境界,達到“無招勝有招”。這時候,任何問題就純粹變成了一個思路的問題,不是用什麼程式碼就能表示的。也就是“手中無劍,心中也無劍”。
我認為,一個程式設計師的成長可分為如下六個階段。第一階段此階段主要是能熟練地使用某種語言。這就相當於練武中的套路和架式這些表面的東西。第二階段此階段能精通基於某種平臺的介面(例如我們現在常用的Win 32的API函式)以及所對應語言的自身的庫函式。到達這個階段後,也就相當於可以進行真實散打對練了,可以真正地在實踐中做些應用。第三階段此階段能深入地瞭解某個平臺系統的底層,已經具有了初級的內功的能力,也就是“手中有劍,心中無劍”。第四階級此階段能直接在平臺上進行比較深層次的開發。基本上,能達到這個層次就可以說是進入了高層次。這時進入了高階內功的修煉。比如能進行VxD或作業系統的核心的修改。這時已經不再有語言的束縛,語言只是一種工具,即使要用自己不會的語言進行開發,也只是簡單地熟悉一下,就手到擒來,完全不像是第一階段的時候學習語言的那種情況。一般來說,從第三階段過渡到第四階段是比較困難的。為什麼會難呢?這就是因為很多人的思想轉變不過來。第五階級此階段就已經不再侷限於簡單的技術上的問題了,而是能從全域性上把握和設計一個比較大的系統體系結構,從核心到外層介面。可以說是“手中無劍,心中有劍”。到了這個階段以後,能對市面上的任何軟體進行剖析,並能按自己的要求進行設計,就算是MS Word這樣的大型軟體,只要有充足的時間,也一定會設計出來。第六階級此階段也是最高的境界,達到“無招勝有招”。這時候,任何問題就純粹變成了一個思路的問題,不是用什麼程式碼就能表示的。也就是“手中無劍,心中也無劍”。