「必讀」計算機專業學生一定要學好哪些課程?

作為一名學計算機的同學,你覺得最應該學好哪些課程呢?

「必讀」計算機專業學生一定要學好哪些課程?

就小茴香來說,感覺在大學的時候,各種課程學了很多,樣樣有所觸及,但樣樣都不精。

所謂師傅領進門,修行靠個人,如果還想要掌握的更多更精的話,還需要自己花費大量的時間去琢磨。

我就後悔呀,當初怎麼沒有認真聽老師的新聞評論課,其實重要的是課程嗎?

是!但是最重要的,還是在這門課程中對你批判思維的訓練。

所以我就覺得,不管學習什麼,看起來是學習知識,但也是在修煉這個行業必要的素質。

「必讀」計算機專業學生一定要學好哪些課程?

對於咱們學計算機專業的小夥伴們來說,我相信也是這樣。

未來想從事這個行業的你,知道自己需要掌握哪些技能和素質,學習哪些課程,會對以後的自己有所裨益嗎?

小茴香在查看了一些行業內專業人士的經驗和知識以後,整理了一下幾門課程,希望這樣的參考會讓你變得更強。

01

英語

英語是萬金油,學習計算機的你,無論以後打算考研還是工作,英語的好處不言而喻。

去那些純英文的程式設計網站,BBS,討論組,個人部落格,增長見識的同時,也可以讓你逐步認清這個世界,瞭解到外面的人正在做什麼,在想什麼,社會潮流發展趨勢是什麼。

從而更加清晰行業發展的動態是什麼,透過進一步觀察和思考,提前規劃好未來的發展方向。

其次,如果你想要考研的話,英語也是必須要攻克的難題。

與其等到考研的時候再一邊慌忙補英語短板,一邊學習專業課,不如早一些開始,為以後的學習做一些必要的鋪墊,提早養成學習英語的好習慣。

還記得我之前文章提到的技術大佬AZ老師嗎?他現在每天都會花時間聽英語音訊,幾十年如一日,看國外的科研論文根本不在話下。

02

數學

過硬的數學功底使得你能看到一些新技術的出現而不茫然,看到的舊的技術能快速的跟進上手。

這就是所謂“知識”和“技能”的關係,將工具運用到純熟的地步,你會發現別人遇到的很多問題在你這裡都不是問題了,看起論文來也得心應手啦,這就是潛移默化和下意識的作用。

之前和跨專業學習程式設計的小夥伴聊天,他也提到自己大學學的是數學,在已有的基礎上,即使是跨專業學習也不會很費勁。

「必讀」計算機專業學生一定要學好哪些課程?

03

計算機組成原理

不管是寫程式做軟體還是搞科研發論文,不對底層有一個清晰的認識,你的整個前進道路都是模糊不清的。

而只對體系結構的瞭解是遠遠不夠的,深挖才是歸途,為什麼現在很多解析記憶體CPU技術的博文部落格火呢?是因為大家都忽略,也因為大家都知道這是多麼有用。

如果不做底層的分析,就無法精準的定位問題,也就自然寫不出切合真實計算邏輯的簡單而又高效的優秀程式碼。

知乎有個觀點——讀優秀的程式碼,從OS開始。讀這些就是你學習認知底層的過程,就是在站在巨人肩膀上遠眺的歷程。

小夥伴們可以看看這本書——《深入理解計算機系統》,這本書會比課本給你帶來更多的東西。

「必讀」計算機專業學生一定要學好哪些課程?

04

計算機作業系統

無論你學習什麼程式語言,都避免不了和作業系統打交道,

比如你學習 Java,用到多執行緒技術,實際上作業系統才是負責管理程序和執行緒的;

比如你學習到記憶體分配的知識,c++ 裡可以直接分配一段記憶體,此時實際上是呼叫作業系統提供的 API 進行記憶體分配。

如果不懂作業系統,你在未來學習程式語言的高階特效,涉及到執行緒程序排程,記憶體分配,或者是學習 Linux 相關的知識時,都會一頭霧水,所以,只有學會了作業系統,才能夠更好地學習其他語言和技術。

基於此,計算機作業系統的知識點會頻繁出現在筆試環節。

05

資料結構與演算法

相信無論是已經畢業的同學還是正在學校學習的同學,都或多或少地被資料結構與演算法這門課給折磨過。

資料結構與演算法這門課開篇就講了一個非常重要的概念:

程式 = 資料結構 + 演算法,對於初學者可能還不能完全地理解這句話,不過對於已經工作兩三年的小夥伴相信對這句話是深信不疑的。

對於資料結構與演算法的學習,分為三個步驟:

首先先大致瞭解什麼是演算法,可以透過一些科普讀物來入門,這個過程稱之為入門階段;

接著可以嘗試實現一些比較容易的資料結構和演算法,這樣可以更加深對資料結構和演算法的瞭解,這個過程稱之為實踐階段;

最後去了解資料結構與演算法背後的相關數學原理等,這個過程稱之為原理階段。

不管你認為資料結構與演算法重要與否,你都必須有所瞭解,因為在面試環節肯定會問的。

更多資訊請關注公眾號【老九學堂】