1,高等數(shù)學(xué):為了及格,同時(shí)幫助概率及格
2,概率:為了證明高等數(shù)學(xué)可以幫助及格
3,線性代數(shù):如果你學(xué)習(xí)計(jì)算機(jī)圖形學(xué),就是opengl/direct3d的話,里面的3d模型的空間坐標(biāo)用矩陣來(lái)表示的,如果你需要把它們進(jìn)行投影,疊加,移動(dòng),就需要矩陣乘法/變換/轉(zhuǎn)置等等,所以還是很有用的
4,離散數(shù)學(xué):主要是給你打下計(jì)算機(jī)數(shù)據(jù)模型的理論基礎(chǔ)。里面包含集合,數(shù),圖,等等,更重要的是如果你以后要搞研究,研究0錯(cuò)誤程序,就是完全沒有bug的程序,就需要用它上面的推導(dǎo)理論來(lái)對(duì)程序經(jīng)行證明。如果你要通過系統(tǒng)分析員,這個(gè)也是要考試的
5, 數(shù)字電路/計(jì)算機(jī)組成/計(jì)算機(jī)技術(shù):如果你是一個(gè)很深入的程序員,你會(huì)問:為什么瀏覽器可以顯示那么多東西->有html語(yǔ)言->html語(yǔ) 言是怎么開發(fā)的->高級(jí)語(yǔ)言->高級(jí)語(yǔ)言怎么完成的->匯編->匯編怎么來(lái)的->固化/機(jī)器語(yǔ)言->機(jī)器語(yǔ)言如何能 操縱計(jì)算機(jī)->在節(jié)拍電路的干預(yù)下,內(nèi)部芯片的結(jié)構(gòu)把0/1字符串譯碼,操作累加器,總線,內(nèi)存做不同的操作那好,這個(gè)過程差一個(gè)東西都不可以,如 果你只學(xué)習(xí)里面的高級(jí)語(yǔ)言部分,那豈不是神龍見首不見尾,感覺很不爽???所以你要能自己做一個(gè)計(jì)算機(jī)出來(lái)才好?。?!
數(shù)字電路是學(xué)習(xí)門電路組成的,就是如何把流動(dòng)的電信號(hào)保持下來(lái),同時(shí)讓他們有規(guī)律地變化
計(jì)算機(jī)組成是讓你用門電路來(lái)設(shè)計(jì)內(nèi)存/cup/時(shí)鐘等等
計(jì)算機(jī)技術(shù)是讓你綜合學(xué)到的東西,做一個(gè)簡(jiǎn)單的計(jì)算機(jī)出來(lái)。
有 了哪些知識(shí),當(dāng)然還要包括編譯原理,軟件工程,操作系統(tǒng),數(shù)據(jù)庫(kù),網(wǎng)絡(luò),你學(xué)習(xí)其他的語(yǔ)言,什么vc/vb/deliphi等等,每種語(yǔ)言不超過3個(gè)月你 就是高手。你要學(xué)windows程序,要用api,只需要15天就可以作出像模像樣的東西。當(dāng)然,我這里是指語(yǔ)言本身而言。有了這些基礎(chǔ)和語(yǔ)言掌握的熟 練,你想學(xué)數(shù)據(jù)庫(kù)編程,好,復(fù)習(xí)一下數(shù)據(jù)庫(kù)的課程,查閱一下sql的語(yǔ)法,1天就有眉目了。你要學(xué)網(wǎng)絡(luò)編程,選擇一種庫(kù),看看文檔,明白函數(shù)的用法,也就 是一兩天的問題。等你做出點(diǎn)東西,有了信心,你也就有了經(jīng)驗(yàn)。這個(gè)時(shí)候去明白j2ee/.net 等等的frame work,就很容易了。參看以下design pattern,你也就胸有成竹,做個(gè)小組長(zhǎng)也可以。再過幾年,有了機(jī)會(huì),說(shuō)不定就當(dāng)了manager,等了到了三十多歲,你不想干軟件了,你有計(jì)算機(jī)組 成的基礎(chǔ),找?guī)讉€(gè)高手帶你一下,你可以去做單片機(jī)的匯編語(yǔ)言編程,可以去做embeded system
所以,學(xué)好了基礎(chǔ),也就是厚積薄發(fā),后面你想怎么發(fā)展都可以!
學(xué)了數(shù)字電路才知道,原來(lái)很神秘的電腦是由一些觸發(fā)器,邏輯門組成的,把它們集成再集成,就成了電腦 了,譯碼器,全加器,計(jì)數(shù)器......
CMOS不過就是一種存儲(chǔ)器,BIOS不過就是面向硬件的一種已編好的子程序,(和C的庫(kù)函數(shù)差不多,我認(rèn)為)學(xué)好了匯編,我可以自己編(還讓我花了30人民幣,買 了一本CMOS設(shè)置書,認(rèn)為它很高深莫測(cè))
不學(xué)好C,怎么學(xué)好WINDOWS程序設(shè)計(jì),怎么能做一個(gè)優(yōu)秀的程序設(shè)計(jì)人員
不學(xué)好前人花幾十年時(shí)間總結(jié)出來(lái)的數(shù)據(jù)結(jié)構(gòu),你的進(jìn)步能有多快,那是讓你踩在巨人的肩膀上。(你要是天才,我就沒話說(shuō)了,不過要是學(xué)了,你會(huì)更天才)
這是我自己經(jīng)歷的一點(diǎn)學(xué)習(xí)基礎(chǔ)課的過程,它給我解疑釋惑,當(dāng)然這些問題在行家眼里可能不值一哂,但它是每一個(gè)新手必經(jīng)的過程。
更為關(guān)鍵的是,基礎(chǔ)課給了我們最核心的知識(shí),讓我們能在離開學(xué)校后有繼續(xù)學(xué)習(xí)的能力。它給了我們一個(gè)知識(shí)結(jié)構(gòu),讓我們能在他的基礎(chǔ)上擴(kuò)充,把新的東西加入自己的知識(shí)框架中,這是基礎(chǔ)課重要的意義所在。很多人提到基礎(chǔ)學(xué)好 之后,學(xué)習(xí)新東西很快,就是這個(gè)道理。
不可否認(rèn)的是,基礎(chǔ)課很枯燥,很費(fèi)勁。但這要看你怎么去看它,你想一想,學(xué)好了他,就能抓到計(jì)算機(jī)的本質(zhì),能讓他對(duì)你俯首帖耳,這難道還不夠激動(dòng)人心嗎?老在別人的基礎(chǔ)之上作設(shè)計(jì),卻不懂所以然,不悶嗎?
既然討論的題目是給在校大學(xué)生一點(diǎn)建議,那我也說(shuō)一點(diǎn)兒。
先說(shuō)技術(shù)層面的,在學(xué)好專業(yè)課的基礎(chǔ)上看一些學(xué)校里不講的新知識(shí),新技術(shù),能促進(jìn)你的融會(huì)貫通,但不可本未倒置 。
再說(shuō)最關(guān)鍵的,最想說(shuō)的,請(qǐng)?jiān)谛5膶W(xué)生們珍惜你的時(shí)光,不要都 去打了游戲,談了戀愛,時(shí)光寶貴,機(jī)會(huì)難得。
我經(jīng)常對(duì)自己說(shuō),如果再讓我上一次學(xué),我會(huì)......
可是不會(huì)了,我只好對(duì)自己說(shuō),如果我現(xiàn)在再不學(xué),就會(huì)......
于 是我努力去學(xué),邊工作,邊學(xué)習(xí),舍不得丟掉一節(jié)課,在校的學(xué)生們可能無(wú)法體會(huì)聽老師講課的幸福,自學(xué)時(shí)怎么也搞不清的東西,老師一句話就茅塞頓開,老師那 清晰的思路也讓你受益匪淺(在這里應(yīng)該感謝那些老師們,雖然他們有些時(shí)候的簡(jiǎn)略很讓人惱火)。但越學(xué),心里越?jīng)]底,有太多的東西我都沒學(xué)好,更有很多東西 根本就不知道,正所謂皓首窮經(jīng)。
我不時(shí)的咒罵自己的懶惰,也許是過于愚笨,努力不夠,學(xué)習(xí)計(jì)算機(jī)也有三年多了,直到現(xiàn)在,我才覺得自己開始了解計(jì)算機(jī),才明確了方向。
我從文科轉(zhuǎn)入這一專業(yè),而且也不小了,就憑著我對(duì)計(jì)算機(jī)有著強(qiáng)烈的興趣。他是人類智慧的體現(xiàn),程序設(shè)計(jì)更是一種藝術(shù),他能讓我們的才華得到充分發(fā)揮,我會(huì)繼續(xù)努力下去的,雖然有些遲了,但為了不更遲。
希望在校的學(xué)生們能多珍惜一些時(shí)間,不要比我還遲。
下 來(lái)如果覺得自己接受能力強(qiáng)的話就可以開始學(xué)C了(注意不是C++),如果感覺有困難也可以先學(xué)Pascal過度一下。還有很重要的一點(diǎn)就是千萬(wàn)不要一開始 就學(xué)VB,DELPHI,VC之類的東西,這些東西在一開始學(xué)會(huì)對(duì)你造成很壞的影響。有可能會(huì)把你引入另外一個(gè)錯(cuò)誤的學(xué)習(xí)方向而忽略了真正應(yīng)該掌握的東 西。學(xué)C主要是學(xué)過程話的程序設(shè)計(jì),學(xué)會(huì)把自己的程序分成許多的函數(shù)(或過程),養(yǎng)成良好的編程習(xí)慣。這時(shí)可以多看一下高人的程序,不一定要懂意思,主要 是學(xué)會(huì)別人程序的格式(比如變量如何起名,怎么劃分函數(shù))。除開掌握基本的控制流語(yǔ)句外,應(yīng)該學(xué)習(xí)一些很簡(jiǎn)單的I/O函數(shù)和數(shù)學(xué)函數(shù)。C的學(xué)習(xí)主要是你舍 棄原來(lái)BASIC程序那種把所有語(yǔ)句積成一大堆的風(fēng)格,要學(xué)會(huì)使用函數(shù),提高代碼重用性。對(duì)于指針之類的東西如果實(shí)在看不懂可以先不去管,到后面會(huì)有辦 法。當(dāng)你能夠比較自如的用C編寫一些小的計(jì)算程序時(shí),你就可以開始你的數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)了(數(shù)學(xué)的學(xué)習(xí)主要是在學(xué)校,自己要多用心)。數(shù)據(jù)結(jié)構(gòu)你可以一點(diǎn)一 點(diǎn)漫漫看,并不需要專門空出一段時(shí)間來(lái)專門研究,這樣的目的是讓你能夠很好的掌握它,要學(xué)會(huì)用數(shù)據(jù)結(jié)構(gòu)的知識(shí)來(lái)規(guī)范自己的程序設(shè)計(jì)和提高程序的效率。學(xué)完 C我認(rèn)為接著最好學(xué)習(xí)匯編。這個(gè)或許有許多人都會(huì)反對(duì),然而我個(gè)人認(rèn)為這樣是很好的。從最基本的DOS匯編開始,買本《IBM PC匯編程序設(shè)計(jì)》(清華黃皮)一定要一點(diǎn)一點(diǎn)吃透,實(shí)在看不懂就跳,反復(fù)的嚴(yán)讀是一定可以看懂的。匯編是一定要掌握的,因?yàn)樗婕暗胶芏嘧罨镜闹R(shí)。 掌握了匯編和對(duì)I/O有了個(gè)很徹底的認(rèn)識(shí)后,應(yīng)該去學(xué)編譯原理。這個(gè)東西并不要精通,但是一定要知道,在大腦里要有一個(gè)這樣的概念,這對(duì)你對(duì)程序語(yǔ)言的控 制能力都有很大的幫助。這樣最基本的學(xué)習(xí)就算完成了。一般智力正常的人前一段東西應(yīng)該都是可以掌握的。接著后面的學(xué)習(xí)就要看你自身的造化了。這個(gè)時(shí)候你應(yīng) 該研究一下數(shù)據(jù)結(jié)構(gòu),不要分散自己學(xué)習(xí)的注意力,要知道數(shù)據(jù)結(jié)構(gòu)是異常重要的(相信我,絕對(duì)沒錯(cuò))如果你覺得自己已經(jīng)對(duì)于樹,連表,堆棧之類的東西和排 序,遞歸之類的算法已經(jīng)十分清楚,就可以開始學(xué)習(xí)C++了。學(xué)習(xí)前一定要有個(gè)正確的認(rèn)識(shí),那就是C和C++是兩個(gè)不同的東西。學(xué)習(xí)C++是為了學(xué)習(xí)面向?qū)?象的程序設(shè)計(jì),這個(gè)時(shí)候你對(duì)于指針應(yīng)該也能夠掌握了(有匯編的基礎(chǔ)),主要抓住C++和C相比的一些新特性,對(duì)于多態(tài)之類的特性要注意理解掌握,如果沒有 搞懂就堅(jiān)決不要往下學(xué)習(xí)。一些基本的概念掌握以后可以看一些別人設(shè)計(jì)的程序,學(xué)習(xí)別人怎么利用面向?qū)ο蟮姆椒▉?lái)設(shè)計(jì)程序的。這個(gè)東西也是人之間拉開檔次的 一個(gè)環(huán)節(jié),可以和數(shù)據(jù)結(jié)構(gòu)放在同等重要的地位。我就見過有的人都大學(xué)畢業(yè)了還搞不懂virtual到底是怎么一回事情。其實(shí)我認(rèn)為學(xué)到這里你已經(jīng)為你成為 一個(gè)優(yōu)秀的程序員打下了很好的基礎(chǔ),你已經(jīng)能夠應(yīng)用C++,懂得面向?qū)ο蟪绦蛟O(shè)計(jì),對(duì)數(shù)據(jù)結(jié)構(gòu)掌握很好,掌握匯編和編譯原理。接下來(lái)的學(xué)習(xí)就是基于操作平 臺(tái)的了,一般是先學(xué)windows(Microsoft畢竟是老大),先學(xué)win32 api,搞請(qǐng)windows基本消息機(jī)制和原理,有匯編基礎(chǔ)基本上不會(huì)碰到什么困難。其實(shí)只要會(huì)了API,其余什么MFC,VCL都是囊中之物了,都不過 是對(duì)于API的封裝而已。VC,C++Builder都可輕松拿下,這只是開發(fā)工具的問題。以后的OLE(ActiveX),.NET,數(shù)據(jù)庫(kù)就要看自己 的發(fā)展方向而定了。我在這里強(qiáng)調(diào)的是前面的基本能力的學(xué)習(xí),后面操作平臺(tái)雖然知識(shí)體系龐大,然而畢竟比較死,更好掌握。最后編程能力的高低主要還是有以下 幾點(diǎn)決定:1。編程的習(xí)慣 2。數(shù)學(xué)能力(包括邏輯思維,分析問題的能力) 3。對(duì)數(shù)據(jù)結(jié)構(gòu)的認(rèn)識(shí)能力 4。經(jīng)驗(yàn)的多少(包括多使用語(yǔ)言的掌握能力)
學(xué)習(xí)編程的道路是充滿艱辛,漫長(zhǎng)而曲折的,作者羅列了一堆自己知道的編程方面的知識(shí),并且給出了一個(gè)具體的順序,所謂先學(xué)什么,后學(xué)什么;沒學(xué)會(huì)什么,就一定不要去學(xué)另一個(gè)什么.....其中很多內(nèi)容有一些道理。但是總是難逃片面。
從 入門到精通一類的東西看的太多了,難道真的憑借一本書就能從一個(gè)電腦盲編程精通的專家了么。我鄭重的建議那些想“速成”高手的人,放棄你的想法吧。一個(gè)計(jì) 算機(jī)專業(yè)的本科生,要花上4年時(shí)間才能畢業(yè),需要學(xué)習(xí)的專業(yè)知識(shí)豈是一朝一夕就能掌握的。就算去除一些公共課所占用的時(shí)間,我覺得要入計(jì)算機(jī)行業(yè)這個(gè)“門 ”,至少需要兩年的時(shí)間。兩年后才能說(shuō),對(duì)計(jì)算機(jī)有一些了解了,知道了計(jì)算機(jī)的基本組成原理,對(duì)時(shí)鐘晶振,中斷芯片有一定了解,用匯編簡(jiǎn)單控制8259編 程。也知道了一些計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言方面的原理,掌握了一倆門傳統(tǒng)的樣板編程語(yǔ)言,了解了i++和++i對(duì)于VC的編譯器來(lái)說(shuō)意味著什么,有了一些數(shù)據(jù)結(jié) 構(gòu)方面的認(rèn)識(shí),能把現(xiàn)實(shí)生活中的一些問題用程序模擬出來(lái)。
但這一切也不 過是剛剛?cè)腴T而已,只是打基礎(chǔ)。至于以后再學(xué)習(xí)Windows系統(tǒng)原理,消息機(jī)制,掌握這個(gè)類庫(kù),那個(gè)類庫(kù);抑或是研究Linux內(nèi)核,進(jìn)而了解嵌入式系 統(tǒng)開發(fā)工具和方法,那要看個(gè)人喜好了。我只是舉幾個(gè)例子,但是隨便那個(gè),要敢說(shuō)自己已經(jīng)完全掌握,至少還要幾年吧。
如 果上面的東西中有的已經(jīng)很精通了,可以稱為專家了,那么恭喜你,你可以考慮把這些東西再總結(jié),提升一個(gè)層次,從系統(tǒng)架構(gòu)角度回顧一下要實(shí)現(xiàn)某個(gè)需求,通常 需要使用什么技術(shù),多少人,多長(zhǎng)時(shí)間來(lái)開發(fā),成本多少,收益多少,風(fēng)險(xiǎn)又有多少,還可以總結(jié)出一些控制軟件開發(fā)進(jìn)度的方法,生成軟件的方法,人們把這些方 法歸納起來(lái)叫做軟件工程。而你,也應(yīng)該是一個(gè)項(xiàng)目經(jīng)理了吧。
如果這些東西都學(xué)會(huì)了,再次恭喜你,你可以考慮能不能把現(xiàn)有的客戶拉到自己身邊來(lái),找個(gè)人給自己投資,成立自己的軟件公司。成為浩浩蕩蕩的軟件創(chuàng)業(yè)者中微不足道的一員。
我本科經(jīng)管,去年跨專業(yè)考計(jì)算機(jī)研。
我自學(xué)了,VB,VC,數(shù)據(jù)結(jié)構(gòu),離散,操作系統(tǒng),數(shù)據(jù)庫(kù)原理等。
開 學(xué)以來(lái)做完了數(shù)字圖像處理的所有的實(shí)驗(yàn)--有個(gè)別實(shí)驗(yàn)還是很難的。我從paperVC++被逼--也算是熟練(離精通差遠(yuǎn)了)而系里其他的同學(xué)卻沒有一個(gè) 自己全部編出來(lái)的,都是抄書的。但并不能說(shuō)明他們的計(jì)算機(jī)水平都差,比起編程水平,我更佩服那些真正計(jì)算機(jī)專家--盡管他們不編程。但是他們的研究成果往 往大大幫助我們編程,很多編程思想都是他們過去的研究成果??!我們就算編出來(lái)了--也就是說(shuō)明我們有點(diǎn)小聰明,但決不可以和系統(tǒng)完備的大智慧相比!就像我 們可以利用數(shù)學(xué)定理計(jì)算一些復(fù)雜的數(shù)學(xué)題目一樣,這沒什么了不起--真正了不起了還是那些定理提出者,和證明者。這一個(gè)學(xué)期前我一直想好好地把編程好好學(xué) 學(xué),可是越來(lái)越覺得數(shù)學(xué)功底不足(當(dāng)然不僅僅只高數(shù))。現(xiàn)在真佩服那些數(shù)學(xué)家!真正的計(jì)算機(jī)專家!過去學(xué)數(shù)據(jù)結(jié)構(gòu)時(shí),八皇后,背包,搜索--一直令人頭 疼,好像懂,但不爽,記不住。在一個(gè)專家(圖靈獎(jiǎng)獲得者)的看似簡(jiǎn)單思想的指引下--這些算法統(tǒng)一到了一起-------一切似乎都那么明了!顯然如果你 編程的話也提高編成的水平。還有記得學(xué)數(shù)據(jù)庫(kù)原理,開始那段自己在沒有規(guī)則指引的條件下想理清楚各種事物的關(guān)系時(shí),是那么的混亂。而有了 armstrong公理系統(tǒng)的三條規(guī)則---世界就一下子變得清晰!--這個(gè)最好的程序員能做到嗎,他也只能每次遇到具體問題,每次發(fā)揮它聰明去理關(guān)系, 也難保不出錯(cuò),還要累死大量腦細(xì)胞!
既然讀研究生,重點(diǎn)在思想。但我有自知之明,我們那么好的功底,也許以后就是編編程序,難弄出這種精華的東西,但是注重思想的學(xué)習(xí)-會(huì)對(duì)學(xué)具體知識(shí)起到巨大指導(dǎo)作用。所以我不會(huì)覺得編程水平低的就不行--很可能比程序高手的價(jià)值高很多倍!
但迫于個(gè)人造詣和以后就業(yè)的壓力,還是把流行技術(shù)性的東西掌握一下好。
你 的學(xué)習(xí)軌跡不代表別人需要向你學(xué)習(xí),還是看看老外那些大師的言談吧,老外認(rèn)為學(xué)習(xí)編程的過程有兩種,一是打好所有的基礎(chǔ)之后再去實(shí)戰(zhàn);二是有點(diǎn)基礎(chǔ)就先實(shí) 戰(zhàn),一邊實(shí)戰(zhàn)一邊補(bǔ)充理論。實(shí)際上大多數(shù)老外傾向于后者。按照你的辦法光是學(xué)這些基礎(chǔ)就要耗掉太多的時(shí)間,卻沒有一點(diǎn)自己編出點(diǎn)程序后的喜悅感,恐怕還沒 實(shí)戰(zhàn)就已經(jīng)先厭倦了。就像你看到的所有大師級(jí)的編程書籍,他們總是在適當(dāng)?shù)臅r(shí)候來(lái)個(gè)簡(jiǎn)單的sample讓你感受一下,而不是先把所有的理論都講完后再在最 后一章給你一個(gè)復(fù)雜的sample.總之一句話,學(xué)以致用。學(xué)的目的是為了用,只有用了才知道該學(xué)什么。軟件知識(shí)有如汪洋大海,浩瀚無(wú)邊,沒有人敢說(shuō)自己 在各方面都精通的,需要根據(jù)實(shí)際需要以及自己既定的目標(biāo)去發(fā)展。
說(shuō)到數(shù)學(xué)對(duì)軟件開發(fā)的重要性,嚴(yán)格講是對(duì)于自然科學(xué)的重要性,地球人都知道。哪一個(gè)自然科學(xué)的重大成果不是數(shù)學(xué)家或具有深厚數(shù)學(xué)功底的自然科學(xué)家創(chuàng)造的。遠(yuǎn)的不說(shuō),
近 代通信理論奠基人是美國(guó)數(shù)學(xué)家香農(nóng);近代控制理論奠基人維納也是數(shù)學(xué)家。自然科學(xué)玩到尖端就是在玩數(shù)學(xué),數(shù)學(xué)是推動(dòng)自然科學(xué)進(jìn)步的主要?jiǎng)恿?。但正如人們?說(shuō)的:“除非你是天才,否則你不要去研究數(shù)學(xué)”。偌大的中國(guó),有幾個(gè)具有國(guó)際聲望的數(shù)學(xué)家?說(shuō)白了,我們大多數(shù)人都不是天才,我們學(xué)習(xí)軟件,應(yīng)用與興趣至 上,別把自己搞得跟個(gè)苦行僧似的拼著命去苦練成高手,我相信大多數(shù)學(xué)編程的人一是為了生存,二是為了興趣。去體會(huì)編程的樂趣吧,當(dāng)然要想獲得這種樂趣,你 得勤奮點(diǎn)。
終于點(diǎn)到題目上來(lái)了。大多數(shù)的人都希望自己的東西能夠馬上跑 起來(lái),變成錢。這種想法對(duì)一個(gè)已經(jīng)進(jìn)入職業(yè)領(lǐng)域的程序員或者項(xiàng)目經(jīng)理來(lái)說(shuō)是合理的,而且IT技術(shù)進(jìn)步是如此的快,不跟進(jìn)就是失業(yè)。但是對(duì)于初學(xué)者來(lái)說(shuō)(尤 其是時(shí)間充裕的大中專在校生),這種想法是另人費(fèi)解的。一個(gè)并未進(jìn)入到行業(yè)競(jìng)爭(zhēng)中來(lái)的初學(xué)者最大的資本便是他有足夠的時(shí)間沉下心來(lái)學(xué)習(xí)基礎(chǔ)性的東西,學(xué)習(xí) why 而不是how。時(shí)髦的技術(shù)往往容易掌握,而且越來(lái)越容易掌握,這是商業(yè)利益的驅(qū)使,為了最大化的降低軟件開發(fā)的成本。但在IT領(lǐng)域內(nèi)的現(xiàn)實(shí)就是這樣,越容 易掌握的東西,學(xué)習(xí)的人越多,而且淘汰得越快。每一次新的技術(shù)出來(lái),都有許多初學(xué)者跟進(jìn),這些初學(xué)者由于缺乏必要的基礎(chǔ)而使得自己在跟進(jìn)的過程中花費(fèi)大量 的時(shí)間,而等他學(xué)會(huì)了,這種技術(shù)也快淘汰了?;A(chǔ)的課程,比方數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng)原理等等雖然不能讓你立馬就實(shí)現(xiàn)一個(gè)linux(這是許多人嘲笑理論課程 無(wú)用的原因),但它們能夠顯著的減少你在學(xué)習(xí)新技術(shù)時(shí)學(xué)習(xí)曲線的坡度。而且對(duì)于許多關(guān)鍵的技術(shù)(比方Win32 SDK 程序的設(shè)計(jì),DDK的編程)來(lái)說(shuō)甚至是不可或缺的。
一個(gè)活生生的例子是 我和我的一個(gè)同學(xué),在大一時(shí)我還找不到開機(jī)按紐,他已經(jīng)會(huì)寫些簡(jiǎn)單的匯編程序了。我把大二的所有時(shí)間花在了匯編,計(jì)算機(jī)體系結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng)原理 等等這些課程的學(xué)習(xí)上,而他則開始學(xué)習(xí)HTML和VB,并追趕ASP的潮流。大三的時(shí)候我開始學(xué)習(xí)Windows 操作系統(tǒng)原理,學(xué)習(xí)SDK編程,時(shí)間是漫長(zhǎng)的,這時(shí)我才能夠用VC開發(fā)出象模象樣的應(yīng)用程序。我曾一度因?yàn)橥瑢W(xué)的程序已經(jīng)能夠運(yùn)行而自己還在學(xué)習(xí)如何創(chuàng)建 對(duì)話框而懊惱不已,但臨到畢業(yè)才發(fā)現(xiàn)自己的選擇是何等的正確。和我談判的公司開出的薪水是他的兩倍還多。下面有一個(gè)不很恰當(dāng)?shù)谋确剑杭僭O(shè)學(xué)習(xí)VB編程需要 4個(gè)月,學(xué)習(xí)基礎(chǔ)課程和VC的程序設(shè)計(jì)需要1年。那么如果你先學(xué)VB,再來(lái)學(xué)習(xí)后者,時(shí)間不會(huì)減少,還是1年,而反過來(lái),如果先學(xué)習(xí)后者,再來(lái)學(xué)VB,也 許你只需要1個(gè)星期就能學(xué)得非常熟練。幾個(gè)重要的基礎(chǔ)課程
如果你是學(xué)生,或者如果你有充足的時(shí)間。我建議你仔細(xì)的掌握下面的知識(shí)。我的建議是針對(duì)那些希望在IT技術(shù)上有所成就的初學(xué)者。同時(shí)我還列出了一些書目,這些書應(yīng)該都還可以在書店買到。說(shuō)實(shí)在的,我在讀其他人的文章時(shí)最大的心愿就是希望作者列出一個(gè)書單。
大 學(xué)英語(yǔ)-不要覺得好笑。我極力推薦這門課程是因?yàn)闆]有專業(yè)文檔的閱讀能力是不可想象的。中文的翻譯往往在猴年馬月才會(huì)出來(lái),而現(xiàn)在的許多出版社干脆就直接 把E文印刷上去。學(xué)習(xí)的方法是強(qiáng)迫自己看原版的教材,開始會(huì)看不懂,用多了自然熟練。吃得苦下得狠心絕對(duì)是任何行業(yè)都需要的品質(zhì)。
計(jì) 算機(jī)體系結(jié)構(gòu)和匯編語(yǔ)言-關(guān)于體系結(jié)構(gòu)的書遍地都是,而且也大同小異,倒是匯編有一本非常好的書?!?0x86匯編語(yǔ)言程序設(shè)計(jì)教程》(清華大學(xué)出版社, 黑色封面,楊季文著)。你需要著重學(xué)習(xí)386后保護(hù)模式的程序設(shè)計(jì)。否則你在學(xué)習(xí)現(xiàn)代操作系統(tǒng)底層的一些東西的時(shí)候會(huì)覺得是在看天書。
計(jì) 算機(jī)操作系統(tǒng)原理-我們的開發(fā)總是在特定的操作系統(tǒng)上進(jìn)行,如果不是,只有一種可能:你在自己實(shí)現(xiàn)一個(gè)操作系統(tǒng)。無(wú)論如何,操作系統(tǒng)原理是必讀的。這就象 我們?yōu)橐粋€(gè)芯片制作外圍設(shè)備時(shí),芯片基本的工作時(shí)序是必需了解的。這一類書也很多,我沒有發(fā)現(xiàn)哪一本書非常出眾。只是覺得在看完了這些書后如果有空就應(yīng)該 看看《Inside Windows 2000》(微軟出版社,我看的是E文版的,中文的書名想必是Windows 2000 技術(shù)內(nèi)幕之類吧)。關(guān)于學(xué)習(xí)它的必要性,ZDNET上的另一篇文章已經(jīng)有過論述。
數(shù) 據(jù)結(jié)構(gòu)和算法-這門課程能夠決定一個(gè)人程序設(shè)計(jì)水平的高低,是一門核心課程。我首選的是清華版的(朱戰(zhàn)立,劉天時(shí))。很多人喜歡買C++版的,但我覺得沒 有必要。C++的語(yǔ)法讓算法實(shí)現(xiàn)過程變得復(fù)雜多了,而且許多老師喜歡用模塊這一東西讓算法變得更復(fù)雜。倒是在學(xué)完了C版的書以后再來(lái)瀏覽一下C++的版的 書是最好的。
軟件工程-這門課程是越到后來(lái)就越發(fā)現(xiàn)它的重要,雖然剛開 始看時(shí)就象看馬哲一樣不知所云。我的建議是看《實(shí)用軟件工程》(黃色,清華)。不要花太多的時(shí)間去記條條框框,看不懂就跳過去。在每次自己完成了一個(gè)軟件 設(shè)計(jì)任務(wù)(不管是練習(xí)還是工作)以后再來(lái)回顧回顧,每次都會(huì)有收獲。
Windows 程序設(shè)計(jì)-《北京大學(xué)出版社,Petzold著》我建議任何企圖設(shè)計(jì)Windows 程序的人在學(xué)習(xí)VC以前仔細(xì)的學(xué)完它。而且前面的那本《Inside Windows 2000》也最好放到這本書的后面讀。在這本書中,沒有C++,沒有GUI,沒有控件。有的就是如何用原始的C語(yǔ)言來(lái)完成Windows 程序設(shè)計(jì)。在學(xué)完了它以后,你才會(huì)發(fā)現(xiàn)VC其實(shí)是很容易學(xué)的。千萬(wàn)不要在沒有看完這本書以前提前學(xué)習(xí)VC,你最好碰都不要碰。我知道的許多名校甚至都已經(jīng) 用它作為教材進(jìn)行授課??梢娖渲匾?。
上面的幾門課程我認(rèn)為是必學(xué)的重要課程(如果你想做Windows 程序員)。
對(duì) 于其它的課程有這樣簡(jiǎn)單的選擇方法:如果你是計(jì)算機(jī)系的,請(qǐng)學(xué)好你所有的專業(yè)基礎(chǔ)課。如果不是,請(qǐng)參照計(jì)算機(jī)系的課程表。如果你發(fā)現(xiàn)自己看一本書時(shí)無(wú)法看 下去了,請(qǐng)翻到書的最后,看看它的參考文獻(xiàn),找到它們并學(xué)習(xí)它們,再回頭看這本書。如果一本書的書名中帶有“原理”兩個(gè)字,你一定不要去記憶它其中的細(xì) 節(jié),你應(yīng)該以一天至少50頁(yè)的速度掌握其要領(lǐng)。盡可能多的在計(jì)算機(jī)上實(shí)踐一種理論或者算法。
你還可以在CSDN上閱讀到許多書評(píng)。這些書評(píng)能夠幫助你決定讀什么樣的書。
日三省乎己
每 天讀的書太多,容易讓人迷失方向。一定要在每天晚上想想自己學(xué)了些什么,還有些什么相關(guān)的東西需要掌握,自己對(duì)什么最感興趣,在一本書上花的時(shí)間太長(zhǎng)還是 不夠等等。同時(shí)也應(yīng)該多想想未來(lái)最有可能出現(xiàn)的應(yīng)用,這樣能夠讓你不是追趕技術(shù)潮流而是引領(lǐng)技術(shù)潮流。同時(shí),努力使用現(xiàn)在已經(jīng)掌握的技術(shù)和理論去制作具有 一定新意的東西。堅(jiān)持這樣做能夠讓你真正成為一個(gè)軟件“研發(fā)者”而不僅僅是一個(gè)CODER。
把最多的時(shí)間花在學(xué)習(xí)上
這 是對(duì)初學(xué)者最后的忠告。把每個(gè)星期玩SC或者CS的時(shí)間壓縮到最少,不玩它們是最好的。同時(shí),如果你的ASP技術(shù)已經(jīng)能夠來(lái)錢,甚至有公司請(qǐng)你兼職的話, 這就證明你的天份能夠保證你在努力的學(xué)習(xí)之后取得更好的收益,你應(yīng)該去做更復(fù)雜的東西。眼光放長(zhǎng)遠(yuǎn)一些,這無(wú)論是對(duì)誰(shuí)都是適用的。
相信你已經(jīng)能夠決定是否學(xué)習(xí)C?;蛘呤裁磿r(shí)候去學(xué)它了。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。