五年程序人生路-普通的程序員與優(yōu)秀的程序員的差別_第1頁(yè)
已閱讀1頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、五年程序人生路普通的程序員與優(yōu)秀的程序員的差別.txt∞一人行必會(huì)發(fā)情二人行必會(huì)激情三人行必有奸情就不會(huì)被珍惜。真實(shí)的女孩不完美,完美的女孩不真實(shí)。得之坦然,失之淡然,順其自然,爭(zhēng)其必然。論壇里很多人都喜歡聊程序人生的話題,我也來(lái)發(fā)一封帖子。給大家一個(gè)參考,也讓自己有一翻自??!希望更多有經(jīng)驗(yàn)的程序員看到后,也能在此記錄一下自己程序生涯,相互學(xué)習(xí)!本人普通院校,非計(jì)算機(jī)專業(yè)本科畢業(yè)。從畢業(yè)到現(xiàn)在也工作有五年了。回憶起程序人生,也頗有一翻滋

2、味。本人是從大三上學(xué)期開(kāi)始學(xué)習(xí)計(jì)算機(jī)的,因?yàn)槟菚r(shí)電腦突然一下比較普及,本人家里也有能力買臺(tái)電腦。買了電腦后,最先看的是C語(yǔ)言的數(shù)據(jù)結(jié)構(gòu)。用電腦調(diào)試書里面的各種程序,那時(shí)第一次看數(shù)據(jù)結(jié)構(gòu),我接近全力去看,但是沒(méi)看懂多少東西。只是把書里面的代碼敲了一遍,運(yùn)行后看看是否和書里面說(shuō)的結(jié)果是一樣。但很多時(shí)候,第一次都是沒(méi)通過(guò)調(diào)試的,發(fā)現(xiàn)不是這里抄錯(cuò)了,就是那里抄錯(cuò)了。通過(guò)不斷的查找,最后才能運(yùn)行正確,那時(shí)心里就會(huì)才生少許的成就感,感覺(jué)自己寫的程序

3、調(diào)通了(雖然只是照著抄了一遍)。看完數(shù)據(jù)結(jié)構(gòu)(其實(shí)有很多東西還是不懂),我去找了本計(jì)算機(jī)組成原理來(lái)看。結(jié)果看得自己更加模糊。因?yàn)檫@本書里沒(méi)有代碼,只有一些抽象概念,當(dāng)時(shí)好像只記得CPU有幾個(gè)寄存器尋址,還有些補(bǔ)碼,反碼什么的。那個(gè)書又厚,硬著頭皮翻了一遍后就沒(méi)看了。接著買了本操作系統(tǒng)原理來(lái)看。也是很難看,都是些概念的東西,又沒(méi)代碼調(diào)試。比如什么GDT,虛擬內(nèi)存分段,分頁(yè),實(shí)模式,保護(hù)模式,中斷等等。也是硬著頭皮翻一遍,能懂多少是多少。看

4、完后,接著就看那個(gè)編譯原理,因?yàn)榫W(wǎng)上都說(shuō)懂編譯原理的人都很牛,我也希望變成牛人所以也去搞了本回來(lái)看。結(jié)果發(fā)現(xiàn),能懂編譯原理的人,確實(shí)比較牛。里面涉及到自動(dòng)機(jī)的概念。屬于用計(jì)算機(jī)來(lái)做人工自能的范疇。我也很想成為牛人,硬著頭皮看,結(jié)果還是有心無(wú)力。經(jīng)過(guò)這樣一個(gè)過(guò)程,雖說(shuō)很多都不懂,但卻使我對(duì)編程從一無(wú)所知到有了一種模糊的認(rèn)識(shí)。大概懂得了什么叫做內(nèi)存分配,還有程序的那些字母符號(hào)是怎么被計(jì)算機(jī)執(zhí)行的。這時(shí)回頭把原來(lái)的數(shù)據(jù)結(jié)構(gòu)翻出來(lái)再讀一遍,突然

5、發(fā)現(xiàn)這本書比起其他三本都容易,也很好懂。明白了什么叫做算法,并且可以嘗試去實(shí)現(xiàn)自己想的一些算法。當(dāng)時(shí)的自豪感油然而生。感覺(jué)電腦可以按照我的想法去工作了,非常興奮。雖然那時(shí)我并不懂得多少C語(yǔ)言,對(duì)指針也只大概知道是什么東西,實(shí)際中還是不會(huì)應(yīng)用。但至少可以利用我所知道的,來(lái)實(shí)現(xiàn)我所想到的。在當(dāng)時(shí)一股沖動(dòng)之下,寫了幾個(gè)自己記憶由心的算法:1,從1到100,每數(shù)到7的時(shí)候,把該數(shù)字提出來(lái),剩下的數(shù)字繼續(xù)循環(huán),問(wèn)最后剩下的一個(gè)數(shù)字是多少。我記得好

6、像是50。2,任意輸入數(shù)字,和“()”幾個(gè)符號(hào)組成一個(gè)算術(shù)表達(dá)式,計(jì)算出值是多少。3,記得看過(guò)計(jì)算機(jī)組成原理里面有個(gè)磁盤調(diào)度算法,用的是現(xiàn)在電梯常用的電梯算法。感覺(jué)這個(gè)算法很好,就去用C語(yǔ)言實(shí)現(xiàn)了一遍。剛開(kāi)始寫程序,都是一個(gè)main函數(shù)全部搞定。慢慢的,在算法實(shí)現(xiàn)的過(guò)程中發(fā)現(xiàn),如果一個(gè)算法太大,一路寫下去,代碼會(huì)很長(zhǎng),并且很容易想了前面就忘后面該怎么寫,或者寫到后面,忘了前面寫的是什么。這時(shí),就產(chǎn)生了一種想法,就是剛開(kāi)始設(shè)計(jì)算法的時(shí)候,

7、想好哪幾步,然后每一步用一個(gè)函數(shù)代替。main函數(shù)中只是分步函數(shù)的流程控制。這樣main函數(shù)的代碼就大大的減少,邏輯變得非常清晰。然后可以像填空一樣把每個(gè)分部函數(shù)完成。接著在子函數(shù)里面還可以分成子函數(shù),分到后來(lái),發(fā)現(xiàn)很多函數(shù)可以被其他的函數(shù)調(diào)想找出一種架構(gòu),加快自己下一個(gè)項(xiàng)目的開(kāi)發(fā)進(jìn)度。但是每次開(kāi)發(fā)完后,發(fā)現(xiàn)上次設(shè)計(jì)的架構(gòu)真垃圾。開(kāi)發(fā)過(guò)很多項(xiàng)目,每次都想了一些新的架構(gòu)方法。到現(xiàn)在沉淀下來(lái)的還值得用的架構(gòu)思想也沒(méi)多少。記得在做JSP的時(shí)候

8、,感覺(jué)JSP里面服務(wù)端代碼和HTML混在一起,很難看。不如.的事件驅(qū)動(dòng)好用。就去寫個(gè)模塊,讓JSP也實(shí)現(xiàn)事件驅(qū)動(dòng)的模式。結(jié)果寫到后來(lái),也沒(méi)得到什么好處,并且感覺(jué)有點(diǎn)不倫不類,后來(lái)項(xiàng)目慢慢做大了,才漸漸明白面向?qū)ο蟮挠靡?。?dāng)一個(gè)項(xiàng)目很小,邏輯很簡(jiǎn)單的時(shí)候,用面向?qū)ο蟮姆椒ㄔO(shè)計(jì)用處不大,反倒是組件用處更大。因?yàn)轫?xiàng)目小,基本上都是建幾張表,改改HTML的工作。但是項(xiàng)目一大,邏輯變復(fù)雜了,如果你要理清楚邏輯,這里就需要一種方法論。我一開(kāi)始寫算法

9、的那種方法有點(diǎn)不適用了。原來(lái)那種是從頂層開(kāi)始,向下細(xì)分。是一種至上而下的設(shè)計(jì)方法。而面向?qū)ο蟛皇?,它是一種由點(diǎn)及面的設(shè)計(jì)方法。面向?qū)ο笫窍日页鲆粋€(gè)個(gè)對(duì)象點(diǎn),然后再找出每個(gè)點(diǎn)之間的關(guān)系。在實(shí)際的項(xiàng)目中,你很難從上至下的設(shè)計(jì)。因?yàn)轫?xiàng)目需求往往剛開(kāi)始很不全面,很多項(xiàng)目后來(lái)改得都是面目全非。從上至下的設(shè)計(jì)不適合這種平凡的修改。并且當(dāng)需求很大時(shí),他涉及東西太多,你也很難從一個(gè)俯視的角度去全面的看這個(gè)系統(tǒng)。所以從上至下的設(shè)計(jì)不能滿足要求。打個(gè)比方,

10、記得一個(gè)項(xiàng)目已經(jīng)做了80%,結(jié)果客戶覺(jué)得用得不方便,要改一下。很多原來(lái)做的功能都不需要,并且提了幾個(gè)新功能。但這幾個(gè)功能也只是對(duì)原來(lái)的功能稍加改動(dòng)。但是邏輯上看卻是大相徑庭。人腦不是電腦,如果想著這個(gè)代碼,去改那個(gè)代碼,勢(shì)必到后來(lái)讓自己也搞糊涂了。所以需要抽象出幾個(gè)對(duì)象出來(lái),是按照客戶的思維方式。然后抽象出來(lái)的對(duì)象里面包含原來(lái)的功能。這樣做起來(lái)就事半功倍。在工作的磨練中,慢慢的發(fā)現(xiàn)了普通的程序員與優(yōu)秀的程序員的一些差別:1普通的程序員遇

11、到問(wèn)題喜歡張口就問(wèn)別人,問(wèn)之前沒(méi)經(jīng)過(guò)大腦想想。這是一個(gè)不好的習(xí)慣。其一,自己都沒(méi)仔細(xì)想想,就算別人幫你把問(wèn)題解決了,你自己不多久就會(huì)忘記。下次遇到,照樣是不會(huì)。因?yàn)檫@個(gè)問(wèn)題你沒(méi)有經(jīng)過(guò)大腦。其二,能夠回答你問(wèn)題的人,多半是有一定經(jīng)驗(yàn)了。他們或許很會(huì)安排好自己的事情,管理好自己的時(shí)間。如果時(shí)常去打斷他們,他們會(huì)覺(jué)得你很煩。優(yōu)秀的程序員多半會(huì)先到網(wǎng)上查找一下相關(guān)問(wèn)題,看看網(wǎng)上有沒(méi)有相關(guān)解決方法。經(jīng)過(guò)一翻查找,他會(huì)把這個(gè)問(wèn)題記得比較牢。2,在一

12、個(gè)項(xiàng)目的合作開(kāi)發(fā)中,普通程序員往往只了解自己開(kāi)發(fā)那方面的東西。項(xiàng)目做完后往往對(duì)整個(gè)項(xiàng)目有哪些功能都不太清楚??赡軙?huì)有人抱怨,自己工作都做不完,哪有時(shí)間去了解整個(gè)系統(tǒng)。但現(xiàn)實(shí)多半是,花大量的時(shí)間去網(wǎng)上閑逛,卻不愿花時(shí)間去增進(jìn)知識(shí)。如果總認(rèn)為項(xiàng)目的設(shè)計(jì)是設(shè)計(jì)者的工作,自己沒(méi)必要去了解。那么這樣的程序員只能是手工勞動(dòng)者。優(yōu)秀的程序員會(huì)對(duì)整個(gè)項(xiàng)目有認(rèn)識(shí),對(duì)一些自己感興趣的功能會(huì)去做一下了解,更優(yōu)秀一點(diǎn)的,會(huì)去對(duì)整個(gè)項(xiàng)目的架構(gòu)設(shè)計(jì)做一下了解。自問(wèn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論