03.07 如果讓你選擇計算機本科最重要的三門課,你會選什麼?


首先,我先就題目中的問題做一個明確的回答,然後再做一下詳細的分析。

我認為本科階段計算機專業最重要的三門課程分別是:高等數學、線性代數、概率論與數理統計。如果是最重要的三門專業課,我認為是:計算機體系結構、計算機網路、算法分析。

作為計算機專業的學生一定要有一個紮實的數學基礎,說白了計算機問題歸根到底就是個數學問題,這就是為什麼我要把高等數學、線性代數和概率作為最重要的三門課程列出來。計算機最常見的解決方案在金融、通信、管理領域和工業控制,這些領域無一例外都對數學有較高的要求,如何通過計算機軟件實現算法進而來完成問題的求解,這是計算機解決問題的一般過程。

2018年頗為流行的領域集中在人工智能和區塊鏈上,很多人都認為區塊鏈技術將迎來其出現到現在以來最大的風口,2018年區塊鏈將迎來很多落地項目。

人工智能從大的方面包含語言處理、知識表示、自動推理、機器學習、計算機視覺以及機器人學,從知識結構分為:問題求解、推理與規劃、不確定知識與推理(概率推理)、學習(樣例學習、學習概率模型等)、通訊、感知與行動等幾個大的方面。這些內容的基礎就是各種算法的實現及應用,通過對算法實現的大量訓練來完成針對各種場景的實際應用,所以在人工智能領域數學扮演的角色是毫無疑問的主角,程序設計往往只是一個工具而已。

說到這裡不得不提一下大數據,在大數據領域數學也是主角。這讓我想起了鄂維南院士曾經在一次會議的發言中提到:做大數據不是知道如何使用Hadoop、Spark就可以的,真正的難點和重點在算法上。

區塊鏈技術的核心問題就是算法的實現,做為區塊鏈技術的代表應用比特幣本身就是一個算法的解。很多人提到的“挖礦”,就是利用計算機在求解的過程,所以說要想搞清楚區塊鏈要有一定的數學思維和數學知識。

作為計算機專業的學生來說,計算機體系結構和網絡是重要的基礎課程,對計算機的整體結構和通信有深入的瞭解對日後的工作和科研都至關重要。

說到這裡,很多非計算機專業的同學可能會感到困惑,為什麼沒有提到一個編程語言呢?因為編程語言在計算機課程體系中是比較簡單的內容,完全可以自學。

當然,計算機專業的其他課程同樣重要。計算機領域需要各種類型的人才,並不是所有的人都需要跟數學打交道,比如前端設計幾乎用不到數學知識。所以,對數學不感興趣的同學也可以從事計算機行業。

關注我,瞭解更多計算機領域的知識,我是悟空問答的簽約作者,我是奮鬥在互聯網領域的IT人。


IT人劉俊明


我已經離開大學的校園10多年了,說實話,大學的課程已經無法全部記得。而且我讀大學的時候,計算機還並不是一個普及的家用設備。

我記得我的第一臺電腦配置是:賽揚533M、64M內存,2M TNT2顯卡,56K貓,20G硬盤。這個是在我高三的時候買的。

雖然現在記不住有哪些專業課程了,不過,大學一直是我覺得很後悔的一個時間段。

因為我的大學時間80%都是浪費了的。真正在自己懂事以後,才會明白,時間是多麼重要。大學的時間對一個人真正的意義。

在大學以後,我們再也不可能有那麼多自由的時間,那麼多學習的機會,那麼多志同道合之人了。

所以,如果我的大學時間能夠再來一次,我一定不會放過學習任何一個課程的機會,因為他們都非常的重要。任何一門課程,都會成為我們未來成長的基礎。

如果讓我一定要在大學的課程中選擇3個我覺得最重要的課程的話,我相信我會這樣選擇!

英語

這其實並不是計算機專業的專業課,但是,我覺得這個是想要學好計算機專業知識的基礎。因為,不管是Java還是C++,或者其他語言,他們都並不是中國人創造的,我們需要了解這些知識的話,有些時候就一定需要去閱讀一些外國人的博客,瀏覽外國論壇或者讀一些英文專業書籍。

我可以很負責人的說,國內的這些技術論壇和國外的相比,還是有很大差距的。

如果你用百度,輸入一段你的疑問或者遇到的問題,然後你會搜索到很多同樣的提問,但是很多時候要不是沒有答案就是錯誤的答案。

但是你如果在Google上,用英文去搜索你的問題,你大部分時候會找到你想要的答案的。

所以,學好英語,它會是你未來的利器。

軟件工程

軟件工程是我第二會選擇,感覺軟件工程在大學剛剛畢業的好像沒有太大的用處,但是,他能夠讓你從全局來認識軟件。

很多時候,我們會因為要趕時間,要搶市場,把軟件工程中很多的理論知識拋之腦後,但是真正在我們完成工作後,我們發現,我們其實走了很多的彎路,我們的成本和時間並不比我們遵循軟件工程的理論知識少,可能還會要高一點。

我們每個人都會成長,不可能永遠作為程序員,從一個點來切入一個項目,為了自己未來的發展,讓自己從全局來看到一個項目,能夠在項目中給出自己的建議,這樣,我們才能夠體現自己的價值。

算法設計與分析

我當年讀書的時候,其實完全沒有去學算法設計,我認為自己以後應該不會去從事和算法有關的工作,所以,我的高數也是勉勉強強的程度。

雖然老師們常常說,數學是一切的基礎,想要能夠做好程序,就一定要學好數學,我曾經嗤之以鼻。

但隨著科技的發展,這句話靈驗了,AI來了,AI需要的並不是程序員,而是懂算法,數學好,能寫程序的人。

對於人工智能編程來說,寫程序非常簡單,但是其中的算法是非常複雜的。當AI炒的火熱的時候,我也去下載了TensorFlow,然後想做點demo,不過當我看了文檔以後,我果斷的放棄了。

那些算法公式我已經基本還給我的老師了,看的我頭痛。

我相信,未來的計算機發展,肯定會從編程的需求慢慢的傾向於算法的需求。所以,算法一定是必備的基礎知識了。

小結

當然,還有很多很多都需要好好學習的,類似通訊原理、信息安全等等。

我認為,大學學習的基礎知識都是非常重要的,我們用不到,只是因為時候未到,但不要因此而忽視它們。


會技術的葛大爺


其實在計算機本科,想要深入,有很多門課都是比較重要的。

首先是那四門最重要的課 算法與數據結構 計算機操作系統 計算機網絡 計算機做成原理。除此之外,還有一些比較重要的課,比如數據庫系統概論和編譯原理和四門數學離散數學,線性代數 高等數學 概率論。

除此之外,還要學一門語言,其實還是c和c++比較好,因為考研院校一般都會要求這門語言。

說了這麼多,好像和題主的問題有所偏離,我也正面回答一下我認為比較重要的三門課

首先是算法與數據結構,這門課的重要性是學計算機的人都知道的。你可以不知道其他課,但是你這個必須會,因為你會算法,都可以靠這個吃飯了,而且面試中,考算法也是比較直接考察你的能力的一門課,所以他的重要性簡直不言而喻。

其他排名不分先後。

剩下我認為是計算機網絡和計算機操作系統,這兩門在你做程序的時候都會接觸到,會實際的碰到這方面的知識。

但是你說其他課不重要嗎?不是的,你想專研計算機,瞭解計算機,其他的課程是你幾乎必須要學的,要了解他們的原理。只是說相對一個普通的程序員,在你實際運用上,這三門課的知識相對容易遇到。

謝謝觀看,喜歡的點個關注,如有不合適之處,請指出。


一個不正經的程序員


計算機涉及的課程很多,在這眾多的學科中,選擇三種,確實不容易。

1、計算機組成原理應該算一個,因為畢竟你是學計算機的,不理解系統總線、存儲器、輸入輸出系統、指令系統、CPU原理等等內容,你不可能寫出高深的程序,更何況對服務器,系統的優化。

還有一本神書。

2、一門編程語言,建議學習C++ JAVA 。這個不用多講,如果計算機原來相當於槍支,那麼編程語言就是子彈。

3、數據結構和算法。程序設計 = 算法 + 數據結構 這個是計算機工作者之間流傳的一句名言。斗轉星移,儘管新技術方法不斷湧現,但是都是萬變不離其宗。不掌握數據結構和算法如無源之水,走不了多遠。


此心源自不由人


我是頭條作者銀魂的傀儡。

這個問題大V洋洋灑灑,都跑偏了好嘛。

注意樓主說的是本科階段、本科階段、本科階段,是課程不是專業課。

首當其衝的是英語、英語、英語。

做了開發這麼多年,英語太重要了。英語不好,你連個變量名都起不好,代碼風格就先不過關,誰接手你的代碼,肯定罵娘。

計算機學科的經典書籍,幾乎全是國外大佬的,翻譯質量不敢恭維,能看原文是最好的。

頂會的paper集中了最有用的知識,英語不好怎麼看?開源社區英語不好怎麼參與,社區文檔怎麼閱讀?

英語不好,基本是告別了成為頂尖高手的可能。

其次是數學。

這個樓裡那個大V講的很好了。數學是算法的基礎,還能鍛鍊嚴謹的思維。學好了,無論是工作求職,還是學術科研,都是很有優勢的。

第三我就不提了,因為我認為最重要就英語和數學。

其他的看你的愛好,喜歡算法就鑽研算法,喜歡Linux就鑽研體系結構操作系統。屬於術業有專攻的範疇了。


銀魂的傀儡


我說下自己的觀點吧,主要是自己以後想朝什麼方面發展吧,比如我java開發的


1、c語言

因為你讀計算機專業,多半會進入軟件開發行業,而開發行業中必須要學一門編程語言,而我覺著最好的入門編程語言學習就是c語言,為什麼尼?

c為解釋型編程語言,不像其他面嚮對象語言一樣,通過c語言的底子,可以更好的看出編程的基礎有多紮實,然後學一些面向對象型的編程語言,如java,PHP,Python等等


2、java

學完語言後,再去學習java,只知道當時學的非常輕鬆


3、MySQL

MySQL數據庫,目前為止最受歡迎的中小型項目必備的數據庫,主要特點就是輕便、免費等


以上三門是基礎學科,許多人為了快速擠進開發行業,直接找培訓機構整完三四個月,和別人讀完四年大學的人,各種基礎知識根本沒法比,以後再高的樓房也會倒的很快。


一滴水的世界丶旋


這個我也來答上一答

不能籠統的說哪三門課,因為計算機專業的就業面特別廣,三門課實在是太過籠統,有很大的侷限性,應該分方向細說

1,如果搞硬件開發,底層設計,我認為最重要的三門課為,組成原理,彙編語言,C語言程序設計

2,如果搞軟件開發,數據結構,C語言程序設計,面向對象程序設計

3,如果網絡運營,則操作系統,計算機網絡,C語言程序設計?Linux?(這方面瞭解的不多)

4,如果以後搞網絡編程,則C語言程序設計,面向對象程序設計,JAVA

想起來的就這麼多,不一定準確,但我認為C語言應該是編程的九陽真經。

看拋磚引玉………………


909135138


我覺得最重要的三門課,Linux,數據庫,C語言,通過Linux把計算機體系結構,操作系統,計算機硬件結構,軟件結構都能學到,數據庫基本上是軟件開發躲不開的一門課,C語言不僅僅是編程,更多是編程思維,距離硬件比較近,使用最廣泛的,底層系統離不開的語言。當然,TCP/IP也是計算機離不開的,網絡編程,集群架構都需要深厚的網絡功底。


蘇尚停at漫天遍野的雨


本人大學本科是計算機科學與軟件工程專業,從大一到大四學了幾十門課程學的時候並沒有比較哪一門比較重要當然潛意識都會認為專業課程是最重要的,確實也是,那麼專業課程裡選三門的話我會選《數據結構》、《編譯原理》《操作系統》簡單說下我的理由,僅供參考。

《數據結構》會讓你在今後的工作中知道算法有哪些,數據存儲方式有哪些,使用正確的算法能起到事半功倍的效果。

《編譯原理》幫助開發人員理解程序執行的一般原理和技術方法,當你知道它的原理後往往能很快的對故障問題針對性的快速解決。

《操作系統》對於開發程序的人來說,開發一款軟件是需要一個平臺來支撐的,這個平臺就是基於操作系統而言的,因此瞭解各種操作系統也是很有必要的。


醋拌檸檬不酸


首先要看你側重那一方面,是偏硬件還是偏軟件,偏硬件的話我覺得計算機組成原理、操作系統、還有微機原理;如果你更偏重於軟件的話,那就是數據結構、算法、還有就是c語言。

其實不僅僅是這六門課程,在整個的學習過程中還有一些比如編譯原理、線性代數、離散數學這些課程也非常重要。這其中有些課程是另外一些課程的先修課程,比如說數據結構和線性代數還有離散數學三門課程相比較,你會發現數據結構就是用編程語言來描述線性代數和離散數學的一門學科。


分享到:


相關文章: