資源描述:
《編譯原理及實(shí)踐(o)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、bbs.theithome.com基礎(chǔ)的重要性(程序員之路)學(xué)習(xí)編程有幾年了,感覺走了不少彎路,而不少的學(xué)弟學(xué)妹又在重蹈我當(dāng)初的覆轍,不免有些痛心。最近在網(wǎng)上也看了許多前輩們的經(jīng)驗(yàn)建議,再結(jié)合自己的學(xué)習(xí)經(jīng)歷在這里談?wù)劵A(chǔ)的重要性,希望幫助大家少走些彎路。什么是基礎(chǔ)呢?就是要把我們大學(xué)所學(xué)的離散數(shù)學(xué),算法與數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng),計(jì)算機(jī)體系結(jié)構(gòu),編譯原理等課程學(xué)好,對(duì)計(jì)算機(jī)的體系,CPU本身,操作系統(tǒng)內(nèi)核,系統(tǒng)平臺(tái),面向?qū)ο缶幊?程序的性能等要有深層次的掌握。初學(xué)者可能體會(huì)不到這些基礎(chǔ)的重要性,學(xué)習(xí)js
2、p,donet,mfc,vb的朋友甚至?xí)?duì)這些嗤之以鼻,但是一開始沒學(xué)好基礎(chǔ)就去學(xué)jsp或donet會(huì)產(chǎn)生很壞的影響,而且陷入其中不能自拔。我上大二的時(shí)候還對(duì)編程沒什么概念,就上了門C++也不知道能干什么,老師說MFC也不知道是什么東西,看別的同學(xué)在學(xué)asp.net就跟著學(xué)了,然后就了解到.net,j2ee,php是什么了,就覺得軟件開發(fā)就是用這些了,而上的那些專業(yè)課又與我們學(xué)的sqlserver啊,css啊,ajax啊,毫無關(guān)系,就感慨啊,還不如回家自學(xué)去就為一個(gè)文憑嗎?還不如去培訓(xùn),浪費(fèi)這么多
3、錢.于是天天基本上沒去上什么課,天天就在做網(wǎng)站,幾個(gè)學(xué)期就做了三個(gè)網(wǎng)站。感覺做這些網(wǎng)站就是學(xué)到些技巧,沒什么進(jìn)步,這些技巧就好比別人的名字,告訴你你就知道了,網(wǎng)上也都可以搜到。那時(shí)候就覺得把.net學(xué)好就行了,搞j2ee的比較難,搞api編程就別想了,操作系統(tǒng)更是望塵莫及了。后來隨著學(xué)習(xí)的深入和看了網(wǎng)上許多前輩們的建議才對(duì)這些基礎(chǔ)的重要性有所體會(huì)。雖然.net或java的開發(fā)并不直接用到匯編,操作系統(tǒng)這些,但是不掌握這些基礎(chǔ)是有很大問題的,因?yàn)槟阒恢淙徊恢渌腥?,在mfc和.net里面控件一拖
4、什么都做好了,很方便,但是出了問題可能就解決不了,有些在網(wǎng)上搜都搜不到。這就是基礎(chǔ)沒打好,不知道它的原理就不知道出錯(cuò)的原因。在學(xué).net的時(shí)候常會(huì)討論那些控件該不該用別人說盡量別用也不知道為什么?不讓用是因?yàn)槟阍诟邔娱_發(fā),你不知道它的原理出錯(cuò)了你可能解決不了,但其實(shí)是應(yīng)該用的,不然人家開發(fā)它干嘛,但要在了解它的原理后去用就會(huì)很方便。要編寫出優(yōu)秀的代碼同樣要扎實(shí)的基礎(chǔ),如果數(shù)據(jù)結(jié)構(gòu)和算法學(xué)的不好,怎么對(duì)程序的性能進(jìn)行優(yōu)化,怎樣從類庫中選擇合適的數(shù)據(jù)結(jié)構(gòu)。如果不了解操作系統(tǒng),怎樣能了解這些開發(fā)工具的原
5、理,它們都是基于操作系統(tǒng)的。不了解匯編,編譯原理,怎么知道程序運(yùn)行時(shí)要多長(zhǎng)時(shí)間要多少內(nèi)存,就不能編出高效的代碼。如果沒有學(xué)好基礎(chǔ)一開始就去學(xué).net,java這些越往后就會(huì)覺得越吃力,它們涉及的技術(shù)太多了,而且不但在更新,對(duì)于三層啊,mvc,orm這些架構(gòu),你只會(huì)用也不明白為什么用,就感覺心里虛,感覺沒學(xué)好。而你把面向?qū)ο?,軟件工程,設(shè)計(jì)模式這些基礎(chǔ)學(xué)好了再去看這些就可以一不變應(yīng)萬變。大家不要被新名詞、新技術(shù)所迷惑.NET、XML等等技術(shù)固然誘人,可是如果自己的基礎(chǔ)不扎實(shí),就像是在云里霧里行走一樣
6、,只能看到眼前,不能看到更遠(yuǎn)的地方。這些新鮮的技術(shù)掩蓋了許多底層的原理,要想真正的學(xué)習(xí)技術(shù)還是走下云端,扎扎實(shí)實(shí)的把基礎(chǔ)知識(shí)學(xué)好,有了這些基礎(chǔ),要掌握那些新技術(shù)也就很容易了。開始編程應(yīng)該先學(xué)C/C++,系統(tǒng)api編程,因?yàn)樗鼈兏咏讓?,學(xué)習(xí)他們更能搞清楚原理。學(xué)好了c/C++編程和基礎(chǔ),再去學(xué)習(xí)mfc,.net這些就會(huì)比較輕松,而且很踏實(shí)。假設(shè)學(xué)習(xí)VB編程需要4個(gè)月,學(xué)習(xí)基礎(chǔ)課程和VC的程序設(shè)計(jì)需要1年。那么如果你先學(xué)VB,再來學(xué)習(xí)后者,時(shí)間不會(huì)減少,還是1年,而反過來,如果先學(xué)習(xí)后者,再來學(xué)V
7、B,也許你只需要1個(gè)星期就能學(xué)得非常熟練。bbs.theithome.com編程就好比練功,如果學(xué)習(xí).net,mfc,vb等具體的語言和工具是外功(招式),對(duì)基礎(chǔ)的學(xué)習(xí)就是內(nèi)功,只注重招式而內(nèi)功不扎實(shí)是不可能成為高手的。很多人會(huì)認(rèn)為《射雕英雄傳》中馬玉道長(zhǎng)什么都沒有教郭靖,馬道長(zhǎng)教的表面看來是馬步?jīng)_權(quán)實(shí)則都是內(nèi)功心法,郭靖拜師洪七之后開始練習(xí)降龍十八掌憑借的就是這深厚的內(nèi)功,吞食蝮蛇寶血又加上練習(xí)了周博通傳授的九陰真經(jīng)和外加功夫雙手互博技之后,終于練就行走江湖的武功,由此可見馬玉道長(zhǎng)傳授給了郭靖的
8、是最基礎(chǔ)的,也是最重要的觀念,編程也好比蓋高樓,根基沒打好早晚有一天會(huì)挎掉的,而且蓋得越高,損失也越慘重。這些底層知識(shí)和課本不是沒有用也不是高深的不能學(xué),而是我們必須掌握的基礎(chǔ)。這些是個(gè)人的愚見,說的不是很清楚,大家可以看看這些前輩們的經(jīng)驗(yàn),相信看完后大家一定會(huì)有所體會(huì)的。為了方便大家閱讀,我把這些前輩們的建議的文章整理成了pdf,大家在下面下載吧!希望對(duì)大家有幫助。pdf地址:http://bbs.theithome.com/read-htm-tid-123.html說了這么多無