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