程式設計師怎樣才能達到程式設計的最高境界?(送給喜歡寫程式碼的朋友)
程式設計師怎樣才能達到程式設計的最高境界?最高境界絕對不是你去編兩行程式碼,或者是幾分鐘能寫幾行程式碼,或者是用什麼所謂的視覺化工具產生最少的程式碼這些工作,這都不是真正的高手境界。即使是這樣的高手,那也都是無知者的自封。
我認為,一個程式設計師的成長可分為如下六個階段。
Ø 第一階段
此階段主要是能熟練地使用某種語言。這就相當於練武中的套路和架式這些表面的東西。
Ø 第二階段
此階段能精通基於某種平臺的介面(例如我們現在常用的Win 32的API函式)以及所對應語言的自身的庫函式。到達這個階段後,也就相當於可以進行真實散打對練了,可以真正地在實踐中做些應用。
Ø 第三階段
此階段能深入地瞭解某個平臺系統的底層,已經具有了初級的內功的能力,也就是“手中有劍,心中無劍”。
Ø 第四階級
此階段能直接在平臺上進行比較深層次的開發。基本上,能達到這個層次就可以說是進入了高層次。這時進入了高階內功的修煉。比如能進行VxD或作業系統的核心的修改。
這時已經不再有語言的束縛,語言只是一種工具,即使要用自己不會的語言進行開發,也只是簡單地熟悉一下,就手到擒來,完全不像是第一階段的時候學習語言的那種情況。一般來說,從第三階段過渡到第四階段是比較困難的。為什麼會難呢?這就是因為很多人的思想轉變不過來。
Ø 第五階級
此階段就已經不再侷限於簡單的技術上的問題了,而是能從全域性上把握和設計一個比較大的系統體系結構,從核心到外層介面。可以說是“手中無劍,心中有劍”。到了這個階段以後,能對市面上的任何軟體進行剖析,並能按自己的要求進行設計,就算是MS Word這樣的大型軟體,只要有充足的時間,也一定會設計出來。
Ø 第六階級
此階段也是最高的境界,達到“無招勝有招”。這時候,任何問題就純粹變成了一個思路的問題,不是用什麼程式碼就能表示的。也就是“手中無劍,心中也無劍”。
此時,對於練功的人來說,他已不用再去學什麼少林拳,只是在旁看一下少林拳的對戰,就能把此拳拿來就用。這就是真正的大師級的人物。這時,Win 32或Linux在你眼裡是沒有什麼差別的。
每一個階段再向上發展時都要按一定的方法。第一、第二個階段通過自學就可以完成,只要多用心去研究,耐心地去學習。
要想從第二個階段過渡到第三個階段,就要有一個好的學習環境。例如有一個高手帶領或公司裡有一個好的練手環境。經過二、三年的積累就能達到第三個階段。但是,有些人到達第三個階段後,常常就很難有境界上的突破了。他們這時會產生一種觀念,認為軟體無非如此,認為自己已無所不能。其實,這時如果遇到大的或難些的軟體,他們往往還是無從下手。
現在我們國家大部分程式設計師都是在第二、三級之間。他們大多都是通過自學成才的,不過這樣的程式設計師一般在軟體公司也能獨當一面,完成一些軟體的模組。
但是,也還有一大堆處在第一階段的程式設計師,他們一般就能玩玩VB,做程式時,去找一堆控制元件整合一個軟體。
現在一種流行的說法是,中國軟體人才現在是一個橄欖型的人才結構,有大量的中等水平的程式設計師,而初級和高階程式設計師比較少。而我認為,現在中國絕大多數都是初級的程式設計師,中級程式設計師很少,高階的就更少了。所以,現在的人才結構是“方塔”形,這是一種斷層的不良結構。而真正成熟的軟體人才結構應該是平滑的三角形結構。這樣,初級、中級、高階程式設計師才能充分地各施所長。
我認為,一個程式設計師的成長可分為如下六個階段。
Ø 第一階段
此階段主要是能熟練地使用某種語言。這就相當於練武中的套路和架式這些表面的東西。
Ø 第二階段
此階段能精通基於某種平臺的介面(例如我們現在常用的Win 32的API函式)以及所對應語言的自身的庫函式。到達這個階段後,也就相當於可以進行真實散打對練了,可以真正地在實踐中做些應用。
Ø 第三階段
此階段能深入地瞭解某個平臺系統的底層,已經具有了初級的內功的能力,也就是“手中有劍,心中無劍”。
Ø 第四階級
此階段能直接在平臺上進行比較深層次的開發。基本上,能達到這個層次就可以說是進入了高層次。這時進入了高階內功的修煉。比如能進行VxD或作業系統的核心的修改。
這時已經不再有語言的束縛,語言只是一種工具,即使要用自己不會的語言進行開發,也只是簡單地熟悉一下,就手到擒來,完全不像是第一階段的時候學習語言的那種情況。一般來說,從第三階段過渡到第四階段是比較困難的。為什麼會難呢?這就是因為很多人的思想轉變不過來。
Ø 第五階級
此階段就已經不再侷限於簡單的技術上的問題了,而是能從全域性上把握和設計一個比較大的系統體系結構,從核心到外層介面。可以說是“手中無劍,心中有劍”。到了這個階段以後,能對市面上的任何軟體進行剖析,並能按自己的要求進行設計,就算是MS Word這樣的大型軟體,只要有充足的時間,也一定會設計出來。
Ø 第六階級
此階段也是最高的境界,達到“無招勝有招”。這時候,任何問題就純粹變成了一個思路的問題,不是用什麼程式碼就能表示的。也就是“手中無劍,心中也無劍”。
此時,對於練功的人來說,他已不用再去學什麼少林拳,只是在旁看一下少林拳的對戰,就能把此拳拿來就用。這就是真正的大師級的人物。這時,Win 32或Linux在你眼裡是沒有什麼差別的。
每一個階段再向上發展時都要按一定的方法。第一、第二個階段通過自學就可以完成,只要多用心去研究,耐心地去學習。
要想從第二個階段過渡到第三個階段,就要有一個好的學習環境。例如有一個高手帶領或公司裡有一個好的練手環境。經過二、三年的積累就能達到第三個階段。但是,有些人到達第三個階段後,常常就很難有境界上的突破了。他們這時會產生一種觀念,認為軟體無非如此,認為自己已無所不能。其實,這時如果遇到大的或難些的軟體,他們往往還是無從下手。
現在我們國家大部分程式設計師都是在第二、三級之間。他們大多都是通過自學成才的,不過這樣的程式設計師一般在軟體公司也能獨當一面,完成一些軟體的模組。
但是,也還有一大堆處在第一階段的程式設計師,他們一般就能玩玩VB,做程式時,去找一堆控制元件整合一個軟體。
現在一種流行的說法是,中國軟體人才現在是一個橄欖型的人才結構,有大量的中等水平的程式設計師,而初級和高階程式設計師比較少。而我認為,現在中國絕大多數都是初級的程式設計師,中級程式設計師很少,高階的就更少了。所以,現在的人才結構是“方塔”形,這是一種斷層的不良結構。而真正成熟的軟體人才結構應該是平滑的三角形結構。這樣,初級、中級、高階程式設計師才能充分地各施所長。
相關文章
- 為什麼程式設計師喜歡在半夜寫程式碼?程式設計師
- 寫給新入行的程式設計師小朋友程式設計師
- 一個老程式設計師的程式設計之路,寫給年輕的程式設計師們程式設計師
- 程式設計師是怎樣把女朋友聊沒的?程式設計師
- 給程式設計師的幾點程式設計經驗----《編寫高質量程式碼》程式設計師
- Java程式設計師不喜歡Golang的地方 - GavinJava程式設計師Golang
- 最簡短的話,寫給身邊的程式設計師朋友吧程式設計師
- 程式設計師為什麼喜歡在晚上編碼程式設計師
- 程式設計師最喜歡的五大神器程式設計師
- 程式設計師如何寫出好程式碼?程式設計師
- 好程式設計師不寫程式碼程式設計師
- 程式設計師節只有程式設計師才能看懂的祝福語程式設計師
- 跨專業轉行的程式設計師,怎樣才能拿高薪?程式設計師高薪
- 中國程式設計師與美國程式設計師寫程式碼的區別分析程式設計師
- 寫給前端程式設計師的命令列入門前端程式設計師命令列
- 菜雞程式設計師是如何寫程式碼的?程式設計師
- 程式設計師的工作就只有寫程式碼麼???程式設計師
- VsCode成為Python程式設計師最喜歡使用的IDEVSCodePython程式設計師IDE
- 當程式設計師寫不出程式碼了……程式設計師
- 《程式碼大全》程式設計師們怎樣花費自己的時間程式設計師
- 菜鳥程式設計師都是怎樣寫程式碼的?你也可以學一手程式設計師
- 程式設計師朋友推薦的好用API程式設計師API
- 幽默:VSCode是程式設計師最好的朋友VSCode程式設計師
- 寫給前端程式設計師的英文學習指南前端程式設計師
- 程式設計師喜歡Linux系統的原因是什麼?程式設計師Linux
- 以前的程式設計師,現在的程式設計師程式設計師
- 1024程式設計師節,向用程式碼改變世界的程式設計師致敬!程式設計師
- 程式設計師寫的跳轉程式設計師
- 老程式設計師的10個程式設計小技巧,教你寫出高質量程式碼!程式設計師
- 給程式設計師的一頓午餐?程式設計師
- 程式設計師的生活:白天寫程式碼,夜裡擺地攤,週末送外賣程式設計師
- 1024 寫給程式設計師的一些建議程式設計師
- 程式設計師們,你們再這樣下去會沒朋友的程式設計師
- 程式設計師接私活怎樣防止做完了不給錢?程式設計師
- 這些資深程式設計師的程式設計小技巧,教你寫出高質量程式碼!程式設計師
- 美女程式設計師觀點:程式設計師最重要的非程式設計技巧程式設計師
- Python程式設計 聖誕樹教程 (附程式碼)程式設計師的浪漫Python程式設計師
- 天天寫業務程式碼的程式設計師,怎麼成為技術大牛程式設計師
- 5位女性程式設計師的自白:計算機不撒謊;女程式設計師的程式碼一樣也很棒程式設計師計算機