計算機專業這麼多課程怎麼學?
【學生來信】
我是一名三線城市二本的計算機系的學生,現在是準大三的學生。現在有兩個問題擺在面前,不知所措,希望您能給點建議。
第一個就是計算機專業的專業課太多了,繁多的程式語言課之外還有資料庫、作業系統、計算機網路、計算機組成原理、介面、演算法、資料結構,這些課該怎麼學呢?剛了您的博文《大學內的“學無用處論”》,感覺您說的很對,大學的課都應該學,但是有一個問題就是如果都學,那麼估計很難避免泛泛而過的結局(我不是什麼天才,我們的老師雖然有負責任的老師,但是就我個人學資料庫原理的經歷而言,我感覺學完所有這些真的很難),怎麼解決這個問題,老師能給點意見嗎??
另外一個問題是我從去年暑假開始到現在一直在學以php為中心的web開發,學到今天也算是學到不少東西,web前端、後端,資料庫等,中間也做了幾個成或沒成的專案,但越來越感覺到沒法繼續下去了,在學校做的東西很多時候都是使用者很少,而且過程不完整的(基本是從策劃到美工到程式設計師一鍋燴),想繼續深入卻沒有頭緒,同時因為一直以來的在web方面的時間投入,我現在只有一些 標準c/c++ 和零散的一些 演算法和資料結構的基礎,想轉變主攻方向,但是卻不知道該怎麼轉,轉了之後又怕把現有的給丟棄、浪費了時間。老師,能不能給我點意見,該怎麼面對現在的情況,像之前那種學法,合適嗎?我現在該轉型嗎?如果要轉,怎麼轉呢??
【我的答覆】
第一個問題問得很好,我想展開來對此多說一些。
對計算機專業,你列出了那麼一大堆課程,其實不光是計算機專業,哪個專業不是有很多課程的呢?這個問題其實也困擾了我很久,當時我想在自己的課程中給學生更多的學習任務時,不敢這樣去做,生怕讓學生的負擔太重而吃不消。首先想到的是中外的區別。在很長的一段時間,我考察過國外不同層次的高校的培養方案(上網考察),通過看書瞭解了國外的教學模式,也深入瞭解過自CC2001以後的IEEE-CS/ACM的培養方案的建議(我國的計算機專業教學指導委員會制定的規範與之相符,並且國內各大學的培養方案的核心課程都是在此建議的框架內製定的)。所以,這樣的安排,並不是國內的高校有意增加課程所致。
有人會搬出中國學生要多學的外語、政治課等來,這算是中國學生的額外負擔了。實際上,在目前的發展階段,我國大學生掌握一門外語是必須的。其他專業不表,計算機專業的學生不會看英文文件,不會與國外同行簡單交流,在這個平坦的世界中,是無法立足的。現在各高校普遍地將英語四級與畢業證脫了鉤,採取分級教學的模式,也不是所有學生都要在外語方面投入那麼多精力了。這是一個減輕學生負擔的好的現象。要說外語學習負擔重,完全是學習方法不對頭,這點不再多表。教育部列出了幾門必修的“政治”課(國外也有類似的要求,但實施的辦法不一樣,不一定是用課程的形式要求),要在大學前兩年佔用一些學時。但據我所知,在政治課最多的時候,大概一週4個學時,在課堂上認真聽講或將課本看一遍的已經是不錯了,頂多在考前突擊幾天而已。所以,這是國內學生的額外負擔所在,但一個是必須的,負擔在減輕,另一個也沒有到了要壓垮學生的程度。
在這一番的考察當中,我卻發現一個事實:國外大學生的學習負擔、壓力要遠大於國內的大學生,國外大學生在學習的投入上要遠多於國內的大學生,我們的學生投入不夠有各種各樣的原因,但在這樣一個時期,再多一些的投入是可以的,也是必要的。這也成了後來我堅定地在我的課堂中要求學生多投入,在課外學習的要求上提出更多要求的依據。事實證明,一旦學生在投入之後,學習找到感覺,他會自己更多投入,與此同時,人的整個精神面貌得以改善,課外的活動、其他素質的拓展也不會落下。
回到你的問題上來,那麼多的課程,如何去學?其實這麼多的課程,並不是密集在同一時間段內開出的。按照各課程的關係,每學期開多少門課,要用多少學時,估多少實驗,學生應該在課外自己匹配多少學時,有幾門課要考試,這在制定培養方案時都要考慮進去的。所以,你也不必慌亂,課程安排有節奏,你也找出你學習的節奏即可。每個學期最核心的三、四門課程,提高聽講的效率(預習、複習之類的手段根據自己的習慣定),及時地鞏固,建議手邊要有一兩本其他版本的教科書做參考(我的學生中,能做到課後將講過的教材上的相關內容看一下的同學都不算多,不知你的情況怎樣)。對於需要做練習的課程,如數學、演算法類的課程,要做練習題,對需要實踐的,可能課程有實驗,要認真做,根據自己的情況,再拓展一些實踐。在大學的學習,一定要有自己個性的安排的。可以是和剛剛講過的內容相關的小實驗,也可以同步地完成一個和課程相關的“大”實踐,例如學作業系統時,分析開源作業系統的原始碼,學編譯系統時,做一個簡單的編譯系統等。由於各種原因,課程只解決基本問題,課外拓展對同學們而言是必要的。不在於一時投入了多少,而在於持續地、有節奏、有計劃地執行,這要有一個良好的習慣。這樣的安排,在我們正常的一天學習8-10小時是可以做到的。不至於像傳說中的哈佛,圖書館是通宵開放的,不少人晚上在圖書館趴桌子上打個盹(這也是不健康的生活方式)。所以,對於你學資料庫的感受,是不是該做的環節沒有做,該有的實驗沒有體會進去的緣故。總之,學習需要投入,這點要保證,學習的方法、習慣要講究,應該從這個自己的角度考慮問題,而不是看著貌似課程多了、難了,就想些客觀的原因。
關於第二個問題。能在課外安排自己的學習,非常好的事情。如果說轉,轉到哪個方向是關鍵,只要是自己感興趣的,就可以轉,不要有其他顧慮。轉了以後,現在已經做過的並不是浪費了時間,它給你多少體驗,給了你多少放眼看周圍世界的機會,這是在學習期間,尤其是低年級時學習的最寶貴的收穫。你目前一鍋燴的經歷,是很好的經歷,不必糾結。結合已經瞭解到的資訊、興趣、當前可以利用的條件,以及技術和市場的前景,或在現在的基礎上深入,或轉哪個方向,這應該由你回答,到了高年級,應該定下主攻方向。
祝你能拋開顧慮,放手為自己安排出有效的學習來。