版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Q:如何成為好的程序員?Krest:你們在學(xué)校都學(xué)些什么課程?問這個問題的原因是,我認(rèn)為學(xué)校的計算機科學(xué)基礎(chǔ)課很重要。如果你所在學(xué)校的課程設(shè)置合理,那你應(yīng)該先把主要精力花在這些基礎(chǔ)課上。很多學(xué)生看到基礎(chǔ)理論就茫然,不知道這些圖表符號,甚至硬件的知識對將來的軟件開發(fā)有什么用。用處大得很哪。比如,操作系統(tǒng)課里講到的多線程的東西在系統(tǒng)編程里很有用。又比如,盡管你將來不會去涉及電腦的硬件,計算機架構(gòu)里的知識對分析算法的性能(快慢等等)很有用???/p>
2、以把計算機語言和開發(fā)工具比作文字,而把計算機科學(xué)的知識比做思想。只有思想,不會行文,不行;但行文流暢,思想空洞,也不行。大學(xué)的階段正是打好基礎(chǔ),豐富思想的年代。成為一名好的程序員,不是簡單地通過學(xué)幾門課程就能做到的。我個人認(rèn)為成為一名好的程序員的要素有:扎實的基礎(chǔ)知識;很強的解決問題的能力;熟練的編程調(diào)試能力;創(chuàng)新能力;團隊合作能力;持續(xù)的自學(xué)能力;好奇心。這些能力和品質(zhì)(甚至可以說是習(xí)慣)都應(yīng)該是從大學(xué)階段就著手培養(yǎng),并且從身邊的小事
3、開始培養(yǎng)。比如,很多中國的大學(xué)畢業(yè)生都缺乏編程和調(diào)試經(jīng)驗。學(xué)習(xí)C語言,考試過關(guān)就算學(xué)會了。課題項目中,只要程序能夠編譯,運行,并且輸入輸出滿足要求就了事了。但是,寫程序的時候是否想過如何把程序?qū)懙酶泳珶挘咝?,高質(zhì)量?對程序調(diào)試中出現(xiàn)的問題是否刨根問底知道原因,還是不求甚解搪塞過去算數(shù)?還有,很多中國的大學(xué)畢業(yè)生對于知識的掌握膚淺,機械,沒有好奇心,不會刨根問底。比如,學(xué)會了C,有沒有看過一個object在編譯后,在匯編代碼中是如何被
4、初始化的?這個object的各個成員在內(nèi)存中是如何放的?在一個成員函數(shù)被調(diào)用的時候編譯器在匯編代碼中加入了哪些額外的動作?虛函數(shù)的調(diào)用是如何實現(xiàn)的這些東西恐怕在編程語言或編譯原理中都沒有詳細(xì)提到。但是,你是否有過好奇心去知道?最后,一些中國學(xué)生的大問題就是死記硬背,沒有學(xué)到某種算法技術(shù)的根本原理,沒有應(yīng)變和創(chuàng)新的能力。比如,有個問題是如何在不用額外內(nèi)存的情況下把一棵樹的同一層節(jié)點都連起來。很多學(xué)生都能夠回答這是一個廣度遍歷的問題。但是,
5、課本上說了廣度遍歷是一定要有額外數(shù)據(jù)結(jié)構(gòu)輔助的(隊列)。所以,不給額外內(nèi)存怎么行?請看,課本上說的用隊列的方法記住了,但是就是不知道為什么要用隊列。如果深刻掌握了這個隊列的作用,那么這個問題是很容易的。舉了這么多例子,我想說明的事,想成為一位好程序員(其實從事任何一個行業(yè)都是如此),重要的是要養(yǎng)成一個鉆研,好奇,創(chuàng)新,動手,合作,不滿足于填鴨,不滿足于考試交差,不滿足于表象的一種優(yōu)秀的習(xí)慣。這不是學(xué)幾門課能夠一蹴而就的。當(dāng)然,如果你的在
6、校課程不能使你滿足,我以及論壇上的朋友可能能夠給你推薦一些書或科目。我覺得要提高編程的能力,有一位良師很重要。這位良師可以是在編程方面比你走在前面的同學(xué),也可以是學(xué)校里你幫他做項目的老師,也可以是校外公司里的老師或老板。很多東西在實際的項目中,有一位良師察看你的程序,幫你指出不足,手把手地指導(dǎo)你調(diào)試,會對你很有幫助。所以,當(dāng)學(xué)會了書本上的基本知識以后,可以努力尋找一些有實用性的項目,借機在項目中找到高手指導(dǎo)。這個項目可以在學(xué)校找,也可以
7、到校外找。一開始不要計較報酬,甚至如果能夠?qū)さ礁呤种更c,白干也行。其次是讀好的源代碼。多讀好的源代碼就像多讀好的文章,會有利于自己寫作。能夠讀懂別人的代碼也是一門硬功夫。將來很多項目中你不會重頭做,而是在半途加入(一般文檔又不很齊全),因此需要能夠很快讀懂別人代碼和想法的能力。再次是看一些編程方面的好書。WritingSolidCode是一本很經(jīng)典的書。最近出的WritingSecureCode也不錯。在你熟練掌握C以后,可以學(xué)一下C并
8、熟悉面向?qū)ο蟮某绦蛟O(shè)計思路。在掌握C的基礎(chǔ)上可以看一下DesignPatterns??茨阋丫幊虒W(xué)到多么專業(yè)。到一定程度,你會發(fā)現(xiàn)如果沒有學(xué)過數(shù)據(jù)結(jié)構(gòu),算法原理,編譯原理和操作系統(tǒng),可能在某些方面會遇到一些障礙。所以,如果有精力和條件的話,可以同時了解這些方面的知識。最后,我要提醒你不要因為編程這一業(yè)余愛好而影響了你本專業(yè)的課程,除非你決定轉(zhuǎn)行。對很多在校學(xué)生來說,本專業(yè)的成績很重要,因為這個成績可能會影響到將來找工作,申請研究生院等等
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 如何做一個優(yōu)秀程序員
- 做一個合格的程序員2008
- 怎樣做一個好營業(yè)員
- 做一個優(yōu)秀的導(dǎo)購員
- 怎樣做一個合格的服裝營業(yè)員
- 如何成為一個好的程序員
- android一個程序員的入門書
- 怎樣做一個合格倉庫管理員
- 一個老程序員的心里話
- 如何成為一個好的程序員84392
- 寫給想當(dāng)程序員的朋友 -- 一個還不太老的程序員的體會
- 如何做一個優(yōu)秀的服務(wù)員
- 如何做一個優(yōu)秀的銷售員
- 怎樣做一個更有魅力的人
- 如何做一個優(yōu)秀的營業(yè)員
- 怎樣做一個優(yōu)秀的系統(tǒng)分析師
- 一個程序員給初學(xué)編程人的建議
- 如何做一個優(yōu)秀的服務(wù)員46672
- 怎樣做一個優(yōu)秀的系統(tǒng)分析師16171
- 怎樣做一個合格的大學(xué)生
評論
0/150
提交評論