下面說說我的學(xué)習(xí)看法吧: 在我看來,對一個計算機專業(yè)的學(xué)生最基本的要求之一就是:從你按下電腦電源鍵開始到啟動你的第一個軟件為止,,這其中發(fā)生了什么,,不要求很詳細,但至少也得知道個大概,。學(xué)計算機有兩個關(guān)鍵要抓?。ㄆ鋵嵰簿蛢蓚€點):一是要學(xué)會一項技能-----編程,二要清楚一個概念----軟和硬,??梢赃@樣說不會編程就一定學(xué)不好計算機,不會編程你都不好意思說你是學(xué)計算機的,。下到計算機組成原理,,中到操作系統(tǒng),上到應(yīng)用軟件,,哪個地方不需要編程,。一談到編程就不能不學(xué)習(xí)算法不能不學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),一般的許多經(jīng)典的基礎(chǔ)性算法都不需要學(xué)什么數(shù)學(xué)(排序,、選擇,、寬度優(yōu)先、深度優(yōu)先,、分支,、DP,、貪心算法等),,只需要培養(yǎng)一種所謂的“計算機思維”就夠了,而從事人工智能等職業(yè)還必須得輔以一定的數(shù)學(xué)基礎(chǔ),,如線性代數(shù),,概率論,高數(shù)等(考研也要考),。軟和硬,,要求我們明白軟件和硬件其實是一體的,只不過一個是虛擬的,,一個是實實在在的東西,。其關(guān)鍵就是搞清楚一個功能什么時候應(yīng)分配給軟件實現(xiàn)什么時候應(yīng)分配給硬件實現(xiàn)。軟和硬,,還要求我們明白軟件如何控制硬件,,也就是說你敲兩行代碼,為什么將代碼輸入到你的智能洗衣機的芯片里面后你的洗衣機就會唱歌了,。在我看來,,要想明白“軟和硬”,,上圖橙色圈中操作系統(tǒng)(以下簡稱OperatingSystem)又是重中之重。OS也是整個計算機核心知識圈的核心,。正是OS,,把底層硬件和上層應(yīng)用軟件聯(lián)系起來,把整個計算機結(jié)合成一個整體,。OS一般都用C語言寫的代碼外加一些匯編代碼,,這些代碼中又把各種算法,各種數(shù)據(jù)結(jié)構(gòu)很好的結(jié)合在一起,,以及用這些代碼去控制各種硬件,,運行各種軟件,從而把整個橙色圈都很好的聯(lián)系了起來,,可以說OS學(xué)好了,,計算機就學(xué)完一半內(nèi)容了。橙色圈,,這些都是一個Cser實實在在的軟實力 下面說說我的大學(xué)歷程吧(大一上下,、大二上下、大三上): 總述:師傅領(lǐng)進門,,修行在個人,!我的大學(xué)基本就是自學(xué)。 核心課程篇: 主課---55%的精力 ,,副課---30%的精力 ,,15%未用。 大一上期核心課:學(xué)會一門編程語言(一定要熟悉語法)并且會編程解決基本問題,,強烈推薦C++,,比C高級但又接近底層。大學(xué)的一切基本都是建立在一門編程語言上的,,學(xué)第一門編程語言語法的一定要方方面面都學(xué)到我強烈建議一定要買一本書把語法盡量多了解一點,,把各種庫函數(shù)多記一點,一定要通過練習(xí)書上的代碼來鞏固,。同時我也強烈建議到學(xué)校的ACM網(wǎng)站上把入門的基礎(chǔ)題給做了,,這一步意義非凡#1:通過編程,你能熟練使用各種庫函數(shù),,并且熟悉語法,,當(dāng)初花了整整一天的時間搞懂了指針怎么用,然后學(xué)數(shù)據(jù)結(jié)構(gòu)的鏈表,,樹都是小Case,;LastButNotLeast:你能培養(yǎng)計算機思維(只可意會不可言傳),這將為你以后的學(xué)習(xí)打下堅實的基礎(chǔ)。我當(dāng)初為了做一道題我可以在圖書館從早坐到晚(剛?cè)腴T嘛,,即使一道簡單的題目也要做好久好久),,這一步你以后學(xué)數(shù)據(jù)結(jié)構(gòu)學(xué)算法鋪平道路。當(dāng)然我強烈建議在高考完的那個暑假就學(xué)完一門編程語言(網(wǎng)上找視頻),,然后就能讓你大學(xué)的各項規(guī)劃提前一個學(xué)期,。 寒假:ACM網(wǎng)站上做題(當(dāng)然是基礎(chǔ)題啦)/隨便 大一下期核心課:主課--數(shù)據(jù)結(jié)構(gòu),副課--算法,。在大一上期期末一個多月就開始了自學(xué)數(shù)據(jù)結(jié)構(gòu)之路,。因為C++語法學(xué)得好,指針很熟練,,所以按照數(shù)據(jù)結(jié)構(gòu)書上的講解,,然后自己看代碼就很輕松,不用一邊找思路還要一邊翻語法,。然后老師上課講起來聽起來就很輕松了(我們班許多人學(xué)了一個學(xué)期連編一個簡單的鏈表都要翻這里翻那里還一運行程序就崩潰),。可以說任何一門專業(yè)課都離不開數(shù)據(jù)結(jié)構(gòu),,不管是算法還是操作系統(tǒng),,計算機組成原理,還是圖形學(xué)計算機網(wǎng)絡(luò),。數(shù)據(jù)結(jié)構(gòu)一定要一遍一遍的親自動手編程,,否則你是永遠都學(xué)不好的。當(dāng)數(shù)據(jù)結(jié)構(gòu)學(xué)完(強調(diào)自學(xué)完,,因為跟著老師的進度來你是永遠沒多余的時間來學(xué)習(xí)副課的)大半時便可以著手進行算法的學(xué)習(xí)了(一般期末一個月到一個半月左右開始),。 暑假:隨便 大二上期核心課:主課--算法+數(shù)字邏輯 ,副課--操作系統(tǒng),,單片機,。算法作為主課當(dāng)然是承上啦。數(shù)字邏輯作為計算機組成原理的先修課程要學(xué)扎實,,最重要的是明白“邏輯門”,、“節(jié)拍(時鐘)”、“時延”,、“同步異步”等概念。然后期末那一個半月左右就可以開始啟下了,,開始學(xué)操作系統(tǒng)了,。當(dāng)然,操作系統(tǒng)學(xué)校一般都是大二下開,,但是我是自己提前學(xué),。第一次學(xué),完全分不清硬件軟件,看書的第一遍我是一臉懵逼,,完全不明白,,只知道因該是這樣,他說的好像是這么回事,,數(shù)字邏輯到還好,,自學(xué)沒毛病。但是數(shù)字邏輯學(xué)完大半還是看不懂操作系統(tǒng)最核心的進程調(diào)度,,文件系統(tǒng),,內(nèi)存分配(緩存,更新),,所以說看書的第一遍主要是在腦海中有一個大概映像,,等你知識面展開了外加上之前有個大概映像,那時操作系統(tǒng)學(xué)起來很快而且思路清晰,。這個學(xué)期當(dāng)我們把我們用來學(xué)習(xí)數(shù)字邏輯的書(書單中我推薦的書)學(xué)完大半(時間不夠,,看不完)計算機組成原理大體框架也學(xué)完了(所以說教材一定要選好)。我在期末考試期間還花了十天學(xué)習(xí)了單片機(自己花了188RMB買的,,學(xué)單片機還是強烈推薦買一個單片機(不推薦使用軟件模擬),,我攢了一個半月的錢才買的)(復(fù)習(xí)什么嘍,只要平時學(xué)習(xí)到位,,考前一天就復(fù)習(xí)完了) 寒假:復(fù)習(xí)數(shù)字邏輯(只看書不做題而且不去上課也沒去上機沒平時分結(jié)果掛了,。。悲催) 大二下期核心課:主課--計算機組成原理+操作系統(tǒng),。不管是打算考研還是找工作,,這個學(xué)期都是提升自我軟實力或硬實力的重要學(xué)期?!哆壿嬇c計算機設(shè)計基礎(chǔ)》后半部分便是講計算機組成的,,這學(xué)期只要花一個月左右接著上學(xué)期把剩下的一小部分看,這個學(xué)期便不怎么需要花精力在計組上了,,只需上課跟著老師走就行了,。計組只是為操作系統(tǒng)打基礎(chǔ)。在我看來,,學(xué)好操作系統(tǒng),,最重要的是要學(xué)好操作系統(tǒng)的理論。當(dāng)然,,光學(xué)理論你會被抽象死去了,,光學(xué)理論,學(xué)了就忘,,只知道好像是這樣,。要想學(xué)好我覺得有兩個工作必不可少:一是學(xué)匯編,一定要學(xué)匯編;二是照著某些書自己動手寫一個操作系統(tǒng)內(nèi)核(也許我們寫的不能被稱為一個內(nèi)核),,即使寫不出來,,照著書上的代碼一行一行敲也行,但一定要敲一遍,,運行一遍,,通過這一步你會明白什么是實模式,什么是保護模式,,清楚的明白什么是“軟”,,什么是“硬”,也會知道如何用代碼去操作硬件,,同時將你學(xué)到的理論用上(調(diào)度,,內(nèi)存分配等等),你就知道操作系統(tǒng)中如信號量等概念大概是如何實現(xiàn)的,,你還會知道你學(xué)的算法會在什么時候被用上,,這樣你就不會覺得操作系統(tǒng)抽象了。這個學(xué)期我,,15%的精力花在x86匯編語言的學(xué)習(xí)上,,30%的精力花在在裸機上建立最基本的操作系統(tǒng)環(huán)境上(實模式),40%的精力花在自己動手寫操作系統(tǒng)內(nèi)核上(保護模式),。雖然最終以失敗告終(內(nèi)核寫好了,,但是和底層匯編代碼結(jié)合起來,結(jié)果一大堆一大堆硬件細節(jié)錯誤,,啰嗦死的,,一運行就崩潰,哎呀?jīng)]事,,只要我們明白操作系統(tǒng)大概是怎么個樣子就行了,,畢竟以后沒哪個會真的去寫一個操作系統(tǒng))。 暑假:計算機網(wǎng)絡(luò)(慕課)+《計算機網(wǎng)絡(luò)》書籍 大三上期:這個學(xué)期也是很重要的一個學(xué)期,,這個學(xué)期主要是學(xué)習(xí)灰色圈。但對于我來說這是我吊兒郎當(dāng)?shù)囊粋€學(xué)期,,我打算考研,,所以這個學(xué)期基本上屬于科普階段,進一步拓展知識面的一個階段,。我就只說說這個學(xué)期我的學(xué)習(xí)過程,,大家仁者見仁智者見智: 8.27~9月中旬 《計算機網(wǎng)絡(luò)》掃尾階段 9.3~12月中旬 《編譯原理》核心部分--------------------算是我這學(xué)期的主課吧 10月~1月 Java | python,靜不下心來看書時就學(xué)一點不用動腦子的 11月~1月 《人工智能:一種現(xiàn)代方法》第一部分到第四部分-------算是我這學(xué)期的又一門主課吧 12月~12月中旬 《計算機體系結(jié)構(gòu)》,,操作系統(tǒng)和計算機組成原理學(xué)好了,這門課稍微花點時間學(xué)一下就可以了。 12月~1.21 基本上是玩 1.1~1.18 《Windows核心編程》,,在Windows平臺下通過代碼加深對操作系統(tǒng)各個概念的理解,。唉,不學(xué)一點玩都玩不心安 1.15晚上~1.16早晨 通宵復(fù)習(xí)法:編譯原理復(fù)習(xí)日 1.18晚上~1.19零點 熬夜復(fù)習(xí)法:復(fù)習(xí)java 1.21晚上~1.22早晨 通宵復(fù)習(xí)法:計算機圖形學(xué)科普日+計算機體系結(jié)構(gòu)復(fù)習(xí)日 1.22 下午:回家 15%素質(zhì)提高篇: 大一上期:剛深淵 大一下期:stl以及泛型編程《STL 源碼剖析》(侯捷著),;接觸linux《鳥哥的Linux私房菜》,;網(wǎng)頁設(shè)計 大二上期:單片機;《深入淺出MFC》(侯捷著),,唉,,看了就忘了;學(xué)習(xí)用Vim寫程序,,用Gcc編譯程序,,用gdb調(diào)試 大二下期:學(xué)習(xí)編譯Linux內(nèi)核,安裝linux內(nèi)核,;《Linux內(nèi)核設(shè)計與實現(xiàn)》 大三上期:學(xué)習(xí)python基本語法;摸眼搶大龍,;選修文化經(jīng)典研讀《紅樓夢》(老師:沒讀過紅樓夢都不能稱之為一個文化人) 【附注】我的大學(xué)基本都是自學(xué)。我的觀點是:本科打基礎(chǔ),,知識面一定要廣,不求你有多精通,,只求別人說到這個你要大致知道是什么,,同時基礎(chǔ)要打好(橙色圈,,藍色圈),專攻什么的留到研究生階段再去弄,。寒暑假我一般都靜不下心來看專業(yè)書,,所以我一般寒暑假都是在中國大學(xué)慕課網(wǎng)上看視頻學(xué)習(xí)專業(yè)課。當(dāng)你看不進書的時候去看視頻吧,,視頻最好的一點就是不怎么需要靜心思考 |
|