高手成長的六個階段
程式設計師怎樣才能達到程式設計的最高境界?最高境界絕對不是你去編兩行**,或者是幾分鐘能寫幾行**,或者是用什麼所謂的視覺化工具產生最少的**這些工作,這都不是真正的高手境界。即使是這樣的高手,那也都是無知者的自封。
我認為,乙個程式設計師的成長可分為如下六個階段。
ø 第一階段
此階段主要是能熟練地使用某種語言。這就相當於練武中的套路和架式這些表面的東西。
ø 第二階段
此階段能精通基於某種平台的介面(例如我們現在常用的win 32的api函式)以及所對應語言的自身的庫函式。到達這個階段後,也就相當於可以進行真實散打對練了,可以真正地在實踐中做些應用。
ø 第三階段
此階段能深入地了解某個平台系統的底層,已經具有了初級的內功的能力,也就是「手中有劍,心中無劍」。
ø 第四階級
此階段能直接在平台上進行比較深層次的開發。基本上,能達到這個層次就可以說是進入了高層次。這時進入了高階內功的修煉。比如能進行vxd或作業系統的核心的修改。
這時已經不再有語言的束縛,語言只是一種工具,即使要用自己不會的語言進行開發,也只是簡單地熟悉一下,就手到擒來,完全不像是第一階段的時候學習語言的那種情況。一般來說,從第三階段過渡到第四階段是比較困難的。為什麼會難呢?這就是因為很多人的思想轉變不過來。
ø 第五階級
此階段就已經不再侷限於簡單的技術上的問題了,而是能從全域性上把握和設計乙個比較大的系統體系結構,從核心到外層介面。可以說是「手中無劍,心中有劍」。到了這個階段以後,能對市面上的任何軟體進行剖析,並能按自己的要求進行設計,就算是ms word這樣的大型軟體,只要有充足的時間,也一定會設計出來。
ø 第六階級
此階段也是最高的境界,達到「無招勝有招」。這時候,任何問題就純粹變成了乙個思路的問題,不是用什麼**就能表示的。也就是「手中無劍,心中也無劍」。
此時,對於練功的人來說,他已不用再去學什麼少林拳,只是在旁看一下少林拳的對戰,就能把此拳拿來就用。這就是真正的大師級的人物。這時,win 32或linux在你眼裡是沒有什麼差別的。
每乙個階段再向上發展時都要按一定的方法。第
一、第二個階段通過自學就可以完成,只要多用心去研究,耐心地去學習。
要想從第二個階段過渡到第三個階段,就要有乙個好的學習環境。例如有乙個高手帶領或公司裡有乙個好的練手環境。經過
二、三年的積累就能達到第三個階段。但是,有些人到達第三個階段後,常常就很難有境界上的突破了。他們這時會產生一種觀念,認為軟體無非如此,認為自己已無所不能。其實,這時如果遇到大的或難些的軟體,他們往往還是無從下手。
現在我們國家大部分程式設計師都是在第
二、**之間。他們大多都是通過自學成才的,不過這樣的程式設計師一般在軟體公司也能獨當一面,完成一些軟體的模組。
但是,也還有一大堆處在第一階段的程式設計師,他們一般就能玩玩vb,做程式時,去找一堆控制項整合乙個軟體。
現在一種流行的說法是,中國軟體人才現在是乙個橄欖型的人才結構,有大量的中等水平的程式設計師,而初級和高階程式設計師比較少。而我認為,現在中國絕大多數都是初級的程式設計師,中級程式設計師很少,高階的就更少了。所以,現在的人才結構是「方塔」形,這是一種斷層的不良結構。而真正成熟的軟體人才結構應該是平滑的三角形結構。這樣,初級、中級、高階程式設計師才能充分地各施所長
初級程式設計師和高階程式設計師的區別
一般對於乙個問題,初級程式設計師和高階程式設計師考慮這個問題的方法絕對是不同的。比如,在初級程式設計師階段時,他會覺得vb也能做出應用來,且看起來也不錯。
但到了中級程式設計師時,他可能就不會選擇vb了,可能會用mfc,這時,也能做出效果不錯的程式。
到高階程式設計師時,他絕對不是首先選擇以上工具,vb也好,vc也好,這些都不是他考慮的問題。這時考慮的絕對是什麼才是具有最快效率、最穩定性能的解決問題的方法。
軟體和別的產品不同。比如,在軟體中要達到某個目標,有
n種方法,但是在
n種方法中,只有一種方法或兩種方法是最好的,其他的都很次。所以,要做乙個好的系統,是很需要耐心的。如果沒有耐心,就不會有細活,有細活的東西才是好東西。我覺得做軟體是這樣,做任何事情也是這樣的,一定要投入。
程式設計師到達最高境界的時候,想的就是「我就是程式,程式就是我」。這時候我要做乙個軟體,不會有自己主觀的思路,而是以機器的思路來考慮問題,也就是說,就是以程式的思考方式來思考程式,而不是以我去設計程式的方式去思考程式。這一點如果不到比較高的層次是不能明白的。
你設計程式不就是你思考問題,然後按自己的思路去做程式嗎?
其實不是的。在我設計這個程式的時候,相當於我「鑽」入這個程式裡面去了。這時候沒有我自己的任何思維,我的所有思維都是這個程式,它這步該怎麼走,下步該怎麼走,它可能會出現什麼情況。我動這個部分的時候,別的部分是否要干擾,也許會動一發而牽全身,它們之間是怎麼相互影響的?
也只有到達這個境界,你的程式才能真正地寫好,絕對不是做個什麼視覺化。視覺化本身就是「我去設計這個程式」,而真正的程式高手是「我就是程式」,這兩種方法絕對是不同的。比如,我要用vb去設計乙個程式,和我本身就是乙個程式的思維方式,是不一樣的。別人也許覺得作業系統很深奧,很複雜,其實,如果你到達高手狀態,你就是作業系統,你就能做任何程式。
對待軟體要有乙個全面的分析方法,光說理論是沒有用的。如果你沒有經過第
一、第二、第
三、第四這四個階段,則永遠到達不了高境界。因為空中樓閣的理論沒有用,而這些必須是一步一步地去做出來。
乙個高階程式設計師應該具備開放性思維,從裡到外的所有的知識都能了解。然後,看到世界最新技術就能馬上掌握,馬上了解。實際上,技術到達最高的境界後,是沒有分別的。任何東西都是相通的,只要你到達這個境界以後,什麼問題一看就能明白,一看就能抓住最核心的問題,最根本的根本,而不會被其他的枝葉或表象所迷惑,做到這一步後才算比較成功。
從程式設計師本身來說,如果它到達這一步以後,他就已經形成了開闊的思維。他有這種開放性思維的話,他就能做戰略決策,這對他將來做任何事情都有好處。事實上,會做程式後,就會有一種分析問題的方法,學會怎麼樣把問題的表象剖開,看到它的本質。這時你碰到任何具體的問題,只要給點時間,都能輕而易舉地解決。實際上,對開發計算機軟體來說,沒有什麼做不了的軟體,所有的軟體都能做,只是看你有沒有時間,有沒有耐心,有沒有資金做支撐。
這幾年,尤其是這兩三年,估計到2023年前,中國軟體這個行業裡面大的軟體公司就能形成。現在就已經在形成,例如用友,它上市後,地位就更加穩固了。其他大的軟體企業會在這幾年內迅速長大。這時候,包括流通渠道、經銷商的渠道也會迅速長大。也就是說,到2023年以後,中國軟體這個行業的門檻比現在還要高很多,與美國不會有太大的差別。此時,中國軟體才真正體現出它的威力來。如果你是這些威力中的一員,就已經很厲害了。
程式設計高手箴言 高手成長的六個階段
程式設計師怎樣才能達到程式設計的最高境界?最高境界絕對不是你去編兩行 或者是幾分鐘能寫幾行 或者是用什麼所謂的視覺化工具產生最少的 這些工作,這都不是真正的高手境界。即使是這樣的高手,那也都是無知者的自封。我認為,乙個程式設計師的成長可分為如下六個階段。l第一階段 此階段主要是能熟練地使用某種語言。...
高手成長的六個階段
程式設計師怎樣才能達到程式設計的最高境界?最高境界絕對不是你去編兩行 或者是幾分鐘能寫幾行 或者是用什麼所謂的視覺化工具產生最少的 這些工作,這都不是真正的高手境界。即使是這樣的高手,那也都是無知者的自封。我認為,乙個程式設計師的成長可分為如下六個階段。第一階段 此階段主要是能熟練地使用某種語言。這...
軟體高手的六個階段
程式設計師怎樣才能達到程式設計的最高境界?最高境界絕對不是你去編兩行 或者是幾分鐘能寫幾行 或者是用什麼所謂的視覺化工具產生最少的 這些工作,這都不是真正的高手境界。即使是這樣的高手,那也都是無知者的自封。乙個程式設計師的成長可分為如下六個階段。第一階段 能熟練地使用某種語言。這就相當於練武中的套路...