计算机专业要学几门课呀,计算机专业学生一定要学好这几门课!
很多程序員,包括計算機(jī)專業(yè)出身的程序員,也包括通過自學(xué)成為程序員的非科班同學(xué),在工作一兩年后甚至更久后,基本上都會碰到技術(shù)瓶頸,由此可能產(chǎn)生很長一段時間的迷茫期。
本文的題目是"計算機(jī)專業(yè)學(xué)生一定要學(xué)好這幾門課",并不一定指的是計算機(jī)專業(yè)的學(xué)生才要學(xué)習(xí)、掌握這些內(nèi)容,我認(rèn)為任何程序員都有必要學(xué)習(xí)和掌握這些內(nèi)容。
計算機(jī)組成原理
不管是寫程序做軟件還是搞科研發(fā)論文,不對底層有一個清晰的認(rèn)識,你的整個前進(jìn)道路都是模糊不清的。
而只對體系結(jié)構(gòu)的了解是遠(yuǎn)遠(yuǎn)不夠的,深挖才是歸途,為什么現(xiàn)在很多解析內(nèi)存CPU技術(shù)的博文博客火呢?是因為大家都忽略,也因為大家都知道這是多么有用。
如果不做底層的分析,就無法精準(zhǔn)的定位問題,也就自然寫不出切合真實計算邏輯的簡單而又高效的優(yōu)秀代碼。
知乎有個觀點(diǎn)——讀優(yōu)秀的代碼,從OS開始。讀這些就是你學(xué)習(xí)認(rèn)知底層的過程,就是在站在巨人肩膀上遠(yuǎn)眺的歷程。
計算機(jī)操作系統(tǒng)
無論你學(xué)習(xí)什么編程語言,都避免不了和操作系統(tǒng)打交道,比如你學(xué)習(xí) Java,用到多線程技術(shù),實際上操作系統(tǒng)才是負(fù)責(zé)管理進(jìn)程和線程的;
比如你學(xué)習(xí)到內(nèi)存分配的知識,c++ 里可以直接分配一段內(nèi)存,此時實際上是調(diào)用操作系統(tǒng)提供的 API 進(jìn)行內(nèi)存分配。
如果不懂操作系統(tǒng),你在未來學(xué)習(xí)編程語言的高級特效,涉及到線程進(jìn)程調(diào)度,內(nèi)存分配,或者是學(xué)習(xí) Linux 相關(guān)的知識時,都會一頭霧水,所以,只有學(xué)會了操作系統(tǒng),才能夠更好地學(xué)習(xí)其他語言和技術(shù)。
數(shù)據(jù)結(jié)構(gòu)與算法
程序 = 數(shù)據(jù)結(jié)構(gòu) + 算法,對于初學(xué)者可能還不能完全地理解這句話,不過對于已經(jīng)工作兩三年的小伙伴相信對這句話是深信不疑的。
對于數(shù)據(jù)結(jié)構(gòu)與算法的學(xué)習(xí),分為三個步驟:
首先先大致了解什么是算法,可以通過一些科普讀物來入門,這個過程稱之為入門階段;
接著可以嘗試實現(xiàn)一些比較容易的數(shù)據(jù)結(jié)構(gòu)和算法,這樣可以更加深對數(shù)據(jù)結(jié)構(gòu)和算法的了解,這個過程稱之為實踐階段;
最后去了解數(shù)據(jù)結(jié)構(gòu)與算法背后的相關(guān)數(shù)學(xué)原理等,這個過程稱之為原理階段。
以上這些課程的學(xué)習(xí)并不是一朝一夕能夠搞定的,也不是在大學(xué)期間就能夠完全學(xué)懂的,不過如果有可能,還是盡自己全力能掌握多少就掌握多少,剩下的不是特別明白的,需要在以后的工作中慢慢體會、慢慢理解。
總結(jié)
以上是生活随笔為你收集整理的计算机专业要学几门课呀,计算机专业学生一定要学好这几门课!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html 选中tag标签,HTML Ta
- 下一篇: html中怎么使用数字轮播,【求助】页面