大學計算機課程學習路線


大學計算機課程學習路線1

如果你是一個計算機相關專業大學低年級學生,那么這篇文章就是為你寫的。

我之前曾經發過一篇博文《大學計算機專業那些課》來談論大學中各門課程的意義和重要性。那是針對更寬泛的范圍來說的,這篇文章則更加精要和簡約。因為這里研究的僅僅是核心計算機課程,更重要的是,這里要說的是這些課程之間的關系,以及它到底講得是些什么東西。我想這些課程最終是要組成一個體系的。

請注意我這里所說的是通常情況下的核心課程,每個學校在課程設置是可能是存在差異的,但總體上框架應該是不變的。

最開始的第一門課應該是“C語言程序設計”,這基本上屬於你日后一切學習的開始,簡單說這門課程的主要目的和內容就是介紹一種計算機語言的語法內容,至於怎么學好它,之前的文章都談過了,這里就不羅嗦了。

之后的課程會分為三條線,第一條線的第一門課程是“數據結構與算法”。這很簡單,一些有了語言基礎之后,為了更好的使用語言去解決問題,就必須學習結構知識和算法。至於怎么學好它,之前的文章也談過了——請注意,如何學都不是本文的重點。本文的重點在於告訴你你將來都會學些什么以及該學些什么。

“數據結構與算法”的后續課程是什么?答案應該是《編譯原理》。很奇怪吧?課程就是這樣設計的,其實這個路線也不是我發明的,國外大學的CS Course的體系也是這么設計的。編譯原理說白了就是介紹編譯器如何工作的,是讓計算機理解計算機語言的一種方法和理論。這個工作過程之中蘊含了大量的算法,而且是非常復雜的算法,很多人甚至認為編譯原理是計算機專業本科階段最難的一門課程。主要就是因為這里面的算法太復雜,當然也會用到很多結構,樹可能是用得最多的。當然,這就是相當於是數據結構與算法課程的一個后續性課程,類似一道附加題。最近聽一個學生說有些學校本科已經取消這門課了,我想應該是較少一部分學校的做法吧。不過,中國的學習並不太重視這門課倒是真的。一般課程設置就是一個學期左右的課時。但是一般的國外學校這門課都要學上1年,甚至兩年之久。這條線路到編譯這里就應該是終點了。下面我們再來介紹剩下的兩條線路。



大學計算機課程學習路線2

書接上文,下面我們來談談大學計算機課程學習的第二條路線。
在你具有了一定C語言基礎之后,除了前面講的第一條路線以外,你已經可以開始下面這條路線的學習了。
為了更好地探究計算機系統的研究機制,在學習了C語言之后,下面一門需要學習的課程是“匯編語言和微機接口技術”,這門課程包含兩部分的內容,一部分就是匯編語言,匯編是一種更底層的語言(相對於C而言),說白了它就是一種“用助記符描述的機器語言”。很多人剛學匯編的時候都覺得很復雜,因為它跟硬件緊密相關,就是那些個寄存器也夠初學者糊塗一陣子的。這門課程的另外一部分內容是微機接口技術,目前國內高校這部分內容都是基於80X86系列芯片的。已經可以看到這門課其實涉及到了很多硬件的知識,其實還不止,關於I/O控制,寄存器,中斷,這門課里都有體現的。
接下來要學習的內容就是《計算機組成原理與體系結構》。其實我特別奇怪,我在寫學習路線1(也就是前一篇文章)的時候,有讀者認為在學習C語言之前,或者在學習其他專業課程之前,最先要學的就是這個東西。我不知道大家是不是覺得大學第一門專業課就是這個,我覺得這么想的人是不且實際,信口開河的。這門課程還是比較深的一門課程,在匯編和接口之后安排這門課程是比較的。不過國外的一些先進的計算機教育體系確實也有在較開始的時候開設一門概論課來作為導引,有時候叫Computer System Introduction,有時候叫Computer Culture,其實內容差不多,但作為計算機專業課程的導引課程,這些課程的設置里面已經設計到組原和OS的初步內容了。但這和Computer Structrue & Architecture還是有區別的。
接下來的一門課程是《計算機操作系統》,如果外行聽起來可能覺得這個課應該是學如何使用操作系統的吧,就像“WindowsXP 速成”?非也!這門課程是講OS是如何設計的,或者說是如何實現一個OS(當然做要比說起來難多了)。之所以這門課程被安排在組原之后,那是因為這反映了一種自底向上的學習路線。操作系統當然是在計算機系統之上來搭建的。向調度啊、虛擬內存啊這些問題都是由操作系統來控制的。我最近所寫的《代碼揭秘》基本上是屬於這條路線上的內容的,不同的是我采用了一種更貼合讀者理解方式的描述,因為在講述這些原理之前,我都是采用C語言實例來作為引子的。有空也推薦大家看看,應該學校里的圖書館是可以借到的。前一陣子一位四川大學的計算機青年教師給我寫信談起我這本書時,我才知道高校的圖書館里原理已經可以借到了。以上就是大學計算機課程學習的第2條路線,下面我們來講最后一條路線。

大學計算機課程學習路線3

終於要給這個系列的文章畫上句號了,時間有點久了,我自己都快忘了還有一個系列文章沒結束呢,呵呵。
書接上文,下面我們來介紹大學計算機課程學習的最后一條路線。
最后一條路線屬於應用型的,也就是說當你學完了基本的原理之后,一方面為了日后更好的工作,另一方面如果從事研究工作也可擇其一而繼續深入探究,那么最好總之要上升到一定應用層面的東西。
在你有了一定的C基礎之后,學校可能會開一些面向對象程序設計方面的課程,可能是C++或者Java,因為面向對象的語言在實際開發中正廣泛的被使用。無論是C++還是Java,跟C來說本質上都是語言,只不過他們多了一些OOP方面的特性。如何學好它們,我前面的文章中已經談過,這里就不多言了。
接下來的一門課程應該是“數據庫系統”,這門課不是教你怎么使用SQL SERVER或者DB2的,學校里的課程遠沒這么前沿。數據庫系統這門課依然偏重更多理論,盡管數據庫相比於組原和OS來說已經是上層建築了。這門課講的多是些數據庫系統設計方面的原則,例如如何解決關系問題或者SQL語言等等。
再之后可能會學的課程是“計算機網絡”,這門課里會更加系統的向你介紹網絡方面的知識,TCP、UDP,HTTP這些名詞會粉末登場。注意這門課一般不是教授你如何布網的,例如如何配置路由器這種東西一般是CCNA里面的內容了。這門課里講的更多的是上層原理與協議。
以上就是一般的大學計算機課程學習的幾條路線。他們彼此聯系,共同作用。注意我這里講的內容不是給你推薦學習方向,而是告訴你大學里會學什么,之間聯系如何。從之前的文章評論里不難看出,有的同學好像根本沒理解文章的意思,說自己好像更適合哪條路線的樣子,其實適不適合哪條線的問題根本不存在,這些東西你都得學,既然學就要學好。本身就是一個體系的,怎么能做瞎子摸象的事情呢?現在CSDN學生大本營搞得不錯,資源很多,訪問量很大,但也能客觀的看出瀏覽的人真的是分好多等的,有的是謙遜而好學的,有的則是蜻蜓點水的過客。浮躁之氣甚囂塵上,胸中無物自然談吐輕浮,看什么都不求甚解,淺嘗輒止,多少有些自以為是、妄自尊大了。這也是我在此開博四個月余來的感受吧。希望大家都能保持一顆平常心,戒驕戒躁,平和的埋頭學習吧。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com