亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 870 | 回復(fù): 0
打印 上一主題 下一主題

編程高手是怎樣煉成的 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2007-02-08 13:53 |只看該作者 |倒序瀏覽
程序員怎樣才能達(dá)到編程的最高境界?最高境界絕對不是你去編兩行代碼,或者是幾分鐘能寫幾行代碼,或者是用什么所謂的可視化工具產(chǎn)生最少的代碼這些工作,這都不是真正的高手境界。即使是這樣的高手,那也都是無知者的自封。
我認(rèn)為,一個程序員的成長可分為如下六個階段。
Ø         第一階段
此階段主要是能熟練地使用某種語言。這就相當(dāng)于練武中的套路和架式這些表面的東西。
Ø         第二階段
此階段能精通基于某種平臺的接口(例如我們現(xiàn)在常用的Win 32的API函數(shù))以及所對應(yīng)語言的自身的庫函數(shù)。到達(dá)這個階段后,也就相當(dāng)于可以進(jìn)行真實散打?qū)毩,可以真正地在實踐中做些應(yīng)用。
Ø         第三階段
此階段能深入地了解某個平臺系統(tǒng)的底層,已經(jīng)具有了初級的內(nèi)功的能力,也就是“手中有劍,心中無劍”。
Ø         第四階級
此階段能直接在平臺上進(jìn)行比較深層次的開發(fā)。基本上,能達(dá)到這個層次就可以說是進(jìn)入了高層次。這時進(jìn)入了高級內(nèi)功的修煉。比如能進(jìn)行VxD或操作系統(tǒng)的內(nèi)核的修改。
這時已經(jīng)不再有語言的束縛,語言只是一種工具,即使要用自己不會的語言進(jìn)行開發(fā),也只是簡單地熟悉一下,就手到擒來,完全不像是第一階段的時候?qū)W習(xí)語言的那種情況。一般來說,從第三階段過渡到第四階段是比較困難的。為什么會難呢?這就是因為很多人的思想轉(zhuǎn)變不過來。
Ø         第五階級
此階段就已經(jīng)不再局限于簡單的技術(shù)上的問題了,而是能從全局上把握和設(shè)計一個比較大的系統(tǒng)體系結(jié)構(gòu),從內(nèi)核到外層界面?梢哉f是“手中無劍,心中有劍”。到了這個階段以后,能對市面上的任何軟件進(jìn)行剖析,并能按自己的要求進(jìn)行設(shè)計,就算是MS Word這樣的大型軟件,只要有充足的時間,也一定會設(shè)計出來。
Ø         第六階級
此階段也是最高的境界,達(dá)到“無招勝有招”。這時候,任何問題就純粹變成了一個思路的問題,不是用什么代碼就能表示的。也就是“手中無劍,心中也無劍”。
此時,對于練功的人來說,他已不用再去學(xué)什么少林拳,只是在旁看一下少林拳的對戰(zhàn),就能把此拳拿來就用。這就是真正的大師級的人物。這時,Win 32或Linux在你眼里是沒有什么差別的。
每一個階段再向上發(fā)展時都要按一定的方法。第一、第二個階段通過自學(xué)就可以完成,只要多用心去研究,耐心地去學(xué)習(xí)。
要想從第二個階段過渡到第三個階段,就要有一個好的學(xué)習(xí)環(huán)境。例如有一個高手帶領(lǐng)或公司里有一個好的練手環(huán)境。經(jīng)過二、三年的積累就能達(dá)到第三個階段。但是,有些人到達(dá)第三個階段后,常常就很難有境界上的突破了。他們這時會產(chǎn)生一種觀念,認(rèn)為軟件無非如此,認(rèn)為自己已無所不能。其實,這時如果遇到大的或難些的軟件,他們往往還是無從下手。
現(xiàn)在我們國家大部分程序員都是在第二、三級之間。他們大多都是通過自學(xué)成才的,不過這樣的程序員一般在軟件公司也能獨當(dāng)一面,完成一些軟件的模塊。
但是,也還有一大堆處在第一階段的程序員,他們一般就能玩玩VB,做程序時,去找一堆控件集成一個軟件。
現(xiàn)在一種流行的說法是,中國軟件人才現(xiàn)在是一個橄欖型的人才結(jié)構(gòu),有大量的中等水平的程序員,而初級和高級程序員比較少。而我認(rèn)為,現(xiàn)在中國絕大多數(shù)都是初級的程序員,中級程序員很少,高級的就更少了。所以,現(xiàn)在的人才結(jié)構(gòu)是“方塔”形,這是一種斷層的不良結(jié)構(gòu)。而真正成熟的軟件人才結(jié)構(gòu)應(yīng)該是平滑的三角形結(jié)構(gòu)。這樣,初級、中級、高級程序員才能充分地各施所長。
一般對于一個問題,初級程序員和高級程序員考慮這個問題的方法絕對是不同的。比如,在初級程序員階段時,他會覺得VB也能做出應(yīng)用來,且看起來也不錯。
但到了中級程序員時,他可能就不會選擇VB了,可能會用MFC,這時,也能做出效果不錯的程序。
到高級程序員時,他絕對不是首先選擇以上工具,VB也好,VC也好,這些都不是他考慮的問題。這時考慮的絕對是什么才是具有最快效率、最穩(wěn)定性能的解決問題的方法。
軟件和別的產(chǎn)品不同。比如,在軟件中要達(dá)到某個目標(biāo),有n種方法,但是在n種方法中,只有一種方法或兩種方法是最好的,其他的都很次。所以,要做一個好的系統(tǒng),是很需要耐心的。如果沒有耐心,就不會有細(xì)活,有細(xì)活的東西才是好東西。我覺得做軟件是這樣,做任何事情也是這樣的,一定要投入。
程序員到達(dá)最高境界的時候,想的就是“我就是程序,程序就是我”。這時候我要做一個軟件,不會有自己主觀的思路,而是以機(jī)器的思路來考慮問題,也就是說,就是以程序的思考方式來思考程序,而不是以我去設(shè)計程序的方式去思考程序。這一點如果不到比較高的層次是不能明白的。
你設(shè)計程序不就是你思考問題,然后按自己的思路去做程序嗎?
其實不是的。在我設(shè)計這個程序的時候,相當(dāng)于我“鉆”入這個程序里面去了。這時候沒有我自己的任何思維,我的所有思維都是這個程序,它這步該怎么走,下步該怎么走,它可能會出現(xiàn)什么情況。我動這個部分的時候,別的部分是否要干擾,也許會動一發(fā)而牽全身,它們之間是怎么相互影響的?
也只有到達(dá)這個境界,你的程序才能真正地寫好,絕對不是做個什么可視化?梢暬旧砭褪恰拔胰ピO(shè)計這個程序”,而真正的程序高手是“我就是程序”,這兩種方法絕對是不同的。比如,我要用VB去設(shè)計一個程序,和我本身就是一個程序的思維方式,是不一樣的。別人也許覺得操作系統(tǒng)很深奧,很復(fù)雜,其實,如果你到達(dá)高手狀態(tài),你就是操作系統(tǒng),你就能做任何程序。
對待軟件要有一個全面的分析方法,光說理論是沒有用的。如果你沒有經(jīng)過第一、第二、第三、第四這四個階段,則永遠(yuǎn)到達(dá)不了高境界。因為空中樓閣的理論沒有用,而這些必須是一步一步地去做出來。
一個高級程序員應(yīng)該具備開放性思維,從里到外的所有的知識都能了解。然后,看到世界最新技術(shù)就能馬上掌握,馬上了解。實際上,技術(shù)到達(dá)最高的境界后,是沒有分別的。任何東西都是相通的,只要你到達(dá)這個境界以后,什么問題一看就能明白,一看就能抓住最核心的問題,最根本的根本,而不會被其他的枝葉或表象所迷惑,做到這一步后才算比較成功。
從程序員本身來說,如果它到達(dá)這一步以后,他就已經(jīng)形成了開闊的思維。他有這種開放性思維的話,他就能做戰(zhàn)略決策,這對他將來做任何事情都有好處。事實上,會做程序后,就會有一種分析問題的方法,學(xué)會怎么樣把問題的表象剖開,看到它的本質(zhì)。這時你碰到任何具體的問題,只要給點時間,都能輕而易舉地解決。實際上,對開發(fā)計算機(jī)軟件來說,沒有什么做不了的軟件,所有的軟件都能做,只是看你有沒有時間,有沒有耐心,有沒有資金做支撐。
這幾年,尤其是這兩三年,估計到2005年前,中國軟件這個行業(yè)里面大的軟件公司就能形成。現(xiàn)在就已經(jīng)在形成,例如用友,它上市后,地位就更加穩(wěn)固了。其他大的軟件企業(yè)會在這幾年內(nèi)迅速長大。這時候,包括流通渠道、經(jīng)銷商的渠道也會迅速長大。也就是說,到2005年以后,中國軟件這個行業(yè)的門檻比現(xiàn)在還要高很多,與美國不會有太大的差別。此時,中國軟件才真正體現(xiàn)出它的威力來。如果你是這些威力中的一員,就已經(jīng)很厲害了。
別人可能知道比爾·蓋茨是個談判的高手,是賣東西的高手,其實,比爾·蓋茨從根本上來說是個程序高手,這是他根本中的根本。他對所有的技術(shù)都非常敏感,一眼就看到本質(zhì),而且他本身也能做程序,時常在看程序,F(xiàn)在他不做董事長,而做首席設(shè)計師,這時他就更加接近程序的本質(zhì)。因為他本身就有很開闊的思維,又深入到技術(shù)的本身,所以他就知道技術(shù)的方向。這對于一個公司,對他這樣的人來說,是非常重要的。
如果他判斷錯誤一步,那公司以后再回頭就很難了。計算機(jī)的競爭是非常激烈的,不能走錯半步。很多公司以前看上去很火,后來就
銷聲匿跡了,就是因為它走錯一步,然后就不行了。為什么它會走錯?因為他不了解技術(shù)的本質(zhì)在哪里,技術(shù)的發(fā)展方向在哪里。
比爾·蓋茨因為父母是學(xué)法律的,所以他本身就很能“侃”,很有說服力,而他又是做技術(shù)的,就非常清楚技術(shù)的方向在哪里,所以他才能把方向把握得很準(zhǔn)確,公司越來越大。而別的公司只火一陣子,他卻火了還會再火。就算微軟再龐大,你如果不把握好軟件技術(shù)的最前沿,一樣也會玩完。就像Intel時刻把握著CPU 的最新技術(shù),才能保證自己是行業(yè)老大。技術(shù)決定它的將來。
所以,程序員要能達(dá)到這樣的目標(biāo),就要有非常強(qiáng)的耐心和非常好的機(jī)遇才有可能。事實上,現(xiàn)在的機(jī)會挺好的,2005年以前機(jī)會都非常大,以后機(jī)會會比較小。但是,如果有耐心的話,你還是會有機(jī)會的,機(jī)會都是出在耐心里。我記得有句話說“雄心的一半是耐心”,我認(rèn)為雄心的三分之二都是耐心。如果你越有野心,你就越要有耐心,你的野心才有可能實現(xiàn)。如果你有野心而沒有耐心,那都是胡思亂想,別人一眼就能看穿。最后在競爭中,對手一眼就看到你的意圖,那你還有什么可競爭的?
另外,很多人都認(rèn)為程序員是三十歲以前的職業(yè),到了三十歲以后,就不應(yīng)再做程序員了,F(xiàn)在的很多程序員也有這種想法,我覺得這種想法很不對。
在20世紀(jì)80年代末到90年代初,那時軟件還沒有形成行業(yè),程序員不能以此作為謀生的手段時,你必須轉(zhuǎn)行,因為你年輕的時候不用考慮吃飯的問題,天天“玩”都可以,但是以后就不可能了。
據(jù)我了解,微軟里面的那些高手,幾乎都是四五十歲的,而且都是做底層的。他們是上世紀(jì)70年代就開始“玩”程序的,所以對于整個計算機(jī),他們是太清楚了,F(xiàn)在有些人主觀臆斷地希望微軟第二天倒閉就好了,但那可能性太小了。因為那些程序員是從CPU是4004的時候開始,玩到現(xiàn)在奔騰IV,沒有哪一代東西他們沒有經(jīng)歷過。
你知道他們現(xiàn)在正在玩什么嗎?現(xiàn)在正在玩64位的CPU。你說你普通的程序員,有這個耐心嗎?沒有這個耐心,你絕對做不了,你也絕對當(dāng)不了高手。他為什么能做?因為他不僅是玩過來的,而且他還非常有耐心,每一步技術(shù)他都跟得上,所以對他來說,沒有任何的難度和壓力。
因為計算機(jī)技術(shù)沒有任何時候是突變的。它的今年和去年相差不會很大,但是回過頭來看三年以前的情況,和現(xiàn)在的距離就很大。所以說,如果你每年都跟著技術(shù)進(jìn)步的話,你的壓力就很小,因為你時刻都能掌握最新的技術(shù)。但是,如果你落下來,別說十年,就是三年,你就趕不上了。
如果你一旦趕不上,就會覺得非常吃力;如果你趕不上,你就會迷失方向;如果你迷失了方向,你就覺得計算機(jī)沒有味道,越做越?jīng)]勁。當(dāng)你還只是有個思路的時候,別人的產(chǎn)品都做出來了,因為你的水平跟別人相差太遠(yuǎn),人家早就想到的問題,你現(xiàn)在才開始認(rèn)識。水平越高,他就看得越遠(yuǎn),那么他的思維就越開闊;水平越低,想的問題就越窄。
64位CPU是這個十年和下個十年最重要的技術(shù)之一,誰抓住這個機(jī)會,誰就能抓住未來賺錢的商機(jī)。CPU是英特爾設(shè)計的,對這一點他肯定清楚。舉例來說,如果從64位的角度來看現(xiàn)在的32位,就像從現(xiàn)在的角度去看DOS。你說DOS很復(fù)雜嗎?當(dāng)你在DOS年代的時候,你會覺得DOS很復(fù)雜。你說現(xiàn)在的 Windows不夠復(fù)雜嗎?Windows太復(fù)雜了,但是你到了64位的時候再去看Windows,就如同現(xiàn)在看DOS一樣。
整個64位系統(tǒng)的平臺和思維方式、思路都比現(xiàn)在更開闊,打個比方說,現(xiàn)在的Windows里面能開n個DOS窗口,每個DOS窗都能運行一個程序。到達(dá) 64位的時候,操作系統(tǒng)事實上能做到開n個X86,開n個Windows 98,然后再開n個Windows 95都沒有問題,系統(tǒng)能做到這一步,甚至你的系統(tǒng)內(nèi)開n個Windows NT都沒有關(guān)系。這就是64位和32位的差別。所以,微軟的那些“老頭”,四、五十歲的那幾個做核心的人,現(xiàn)在正在玩這些東西。
現(xiàn)在64位的CPU都出來一二年了,你說有什么人去做這些應(yīng)用嗎?沒有,有的就是那幾個UNIX廠商做好后給自己用的。
所以,追求技術(shù)的最高境界的時候,實際上是沒有年齡限制的。對我來說,現(xiàn)在都三十三了,我從來沒有想過退出這行,我覺得我就能玩下去,一直玩到退休都沒有問題。我要時刻保持技術(shù)的最前端,這樣的話對我來說是不困難的,沒有任何累的感覺。
很多人說做程序不是人干的事情,是非人的待遇。這樣,他們一旦成立一個公司,做出一點成績,在輝煌的時候馬上就考慮退出。因為他們太苦了,每天晚上熬夜,每天晚上燒了兩包煙還不夠,屋子里面簡直就缺氧了,好像還沒有解決問題。
白天睡覺,晚上干活,那當(dāng)然累死了,這是自己折騰自己。所以,做程序員一定要有一種正常的心態(tài),就是說,你做程序的時候,不要把自己的生活搞得顛三倒四的。如果非得搞得晚上燒好多煙才行,這樣你肯定折騰不到三十歲,三十歲以后身體就差了。
事實上,我基本上就沒有因為做程序而熬夜的。我只經(jīng)歷過三次熬夜,一次是在學(xué)校的時候,1986年剛接觸計算機(jī)時,一天晚上跟一個同桌在計算機(jī)室內(nèi)玩游戲,研究了半天,搞著搞著就到了天亮,這是第一次。然后在畢業(yè)之前,在286上做一個程序。還有一次就是超級解霸上市前,那時公司已吹得很大了,那天晚上沒法睡覺。
一般來說,我也是十二點鐘睡覺,第二天七點就起了。所以說,只有具有正常的生活、正常的節(jié)奏,才有正常的心態(tài)來做程序員,這樣,你的思路才是正常的,只有正常的東西才能長久。搞疲勞戰(zhàn)或者是黑白顛倒,時間長久后就玩不轉(zhuǎn)了,玩著玩著就不想玩了。
只要你不想玩,不了解新技術(shù),你就會落后,一旦落后,你再想追,就很難了

本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/8362/showart_244654.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP