天天看點

作為計算機專業學生,最應該學習的課程前五位是什麼?

我認為最應該學習的前五位課程是:

資料結構與算法

作業系統

計算機網絡

資料庫

至少一門程式設計語言(C/C++、java、C#、python等)

一、資料結構與算法

這裡把資料結構和算法整在了一起,其實資料結構與算法是互相獨立的學科。但是二者之間關系又很密切,資料結構用于解決資料存儲問題,而算法是思考如何利用存儲的資料快速無誤地解決問題。在解決問題的過程中,資料結構要配合算法選擇最優的存儲結構來存儲資料,而算法也要結合資料存儲的特點,用最優的政策來分析并處理資料,由此可以最高效地解決問題。

作為計算機專業最重要的必修學科之一,計算機專業考研的必考知識,以及衆多 IT 公司筆、面試的側重考點,僅僅這些光環,就足以說明學習資料結構與算法的重要性。學習資料結構需要讀者有一定的空間想象能力,是以強烈建議讀者在看文字資料的同時,再找一套相應的視訊資料,兩者結合來學習,往往會事半功倍。學習過程中一定要多動手,邊學習邊畫圖。因為,對于資料結構中的存儲結構來說,尤其是樹結構和圖結構,存儲結構确實比較複雜,僅靠空間想象難免會有纰漏,而通過親手畫圖往往能避免很多“坑”。

另外,可以在leetcode和牛客網多刷題。

LeetCode101題解 算法官方完整版 位元組跳動50道高頻算法.rar

比較系統地學習資料結構的話,推薦看《大話資料結構》、《算法(第4版)》和《資料結構與算法分析》。

如果剛接觸資料結構的話,可以從《算法圖解》、《我的第一本算法書》入手。

網課

1、郝斌資料結構

雖然比較老,但是講的比較詳細,容易了解,對初學者非常友好。

https://www.bilibili.com/video/BV1Ut411a7rN?from=search&seid=14411767501116137153

2、資料結構-浙江大學

課程是由陳越與何欽銘共同錄制,b站與慕課網都有,慕課網比較清晰一些

https://www.icourse163.org/course/ZJU-93001?from=searchPage#/info

3、資料結構與算法基礎

課程由青島大學王卓老師錄制,非常适合考研,講的題比較多。

https://www.bilibili.com/video/BV1nJ411V7bd?p=1

二、作業系統

作業系統作為最基礎的計算機專業課程,可以說是對日後工作影響最大,也是面試中最常涉及的。作業系統中設計方式、算法以及解決問題的邏輯都可以應用到程式系統設計中。一些理論基礎也能解決有時候所謂知其然不知其是以然的問題。

對一些以後從事後端開發方向(例如C/C++後端開發)的小夥伴而言,作業系統是必須要紮實掌握的。如果不懂作業系統,你在未來學習程式設計語言的進階特效,涉及到線程程序排程,多線程、鎖、記憶體配置設定,或者是學習Linux相關的知識時,都會一頭霧水。

現代作業系統(第3版)

本書是作業系統領域的經典之作,講的全面詳細,包括程序、線程、存儲管理、檔案系統、I/O、死鎖、接口設計、多媒體、性能權衡,以及有關作業系統設計的最新趨勢。不僅涵蓋了現代作業系統的原理和實踐,而且特别關注了Linux作業系統、Windows Vista作業系統、嵌入式作業系統、實時作業系統以及多媒體作業系統。是以也是面試筆試作業系統的寶典。

其他書籍:

《作業系統真象還原》、《30天自制作業系統》。

視訊

作業系統(哈工大李治軍老師)32講(全)超清

https://www.bilibili.com/video/BV1d4411v7u7?p=1

2020 南京大學 “作業系統:設計與實作” (蔣炎岩)

https://www.bilibili.com/video/BV1N741177F5?p=1

三、計算機網絡

計算機網絡相關知識的在網際網路校園招聘技術崗位的考察中可以說是重中之重。大家可以看下很多面經中都有計算機網絡的題目。像ip, tcp/udp,http相關協定的都是高頻考點。

TCP/IP詳解 卷1:協定

堪稱 TCP/IP 領域的聖經。作者 W. Richard Stevens,他從使用者(程式員)的角度,以 tcpdump 為工具,對 TCP 協定抽絲剝繭娓娓道來,讓人歎服。恐怕 TCP 協定的設計者也難以講解得如此出色,至少不會像他這麼耐心細緻地畫幾百幅收發 package 的時序圖。

計算機網絡:系統方法(原書第5版)

經典書籍,着重看TCP/UDP部分。

計算機網絡微課堂

https://www.bilibili.com/video/BV1c4411d7jb?p=1

韓立剛計算機網絡 謝希仁 第7版

https://www.bilibili.com/video/BV1gV411h7r7?p=1

四、資料庫

做項目幾乎離不開資料庫,是以資料庫必須掌握,資料庫也是計算機專業必須的一門功能。

書籍

見書單

計算機專業必讀書籍彙總!(含下載下傳)

MySQL_基礎+進階篇- 資料庫 -sql -mysql教程_mysql視訊_mysql入門_尚矽谷

https://www.bilibili.com/video/BV12b411K7Zu?from=search&seid=2779357081480449466

五、至少一門程式設計語言

必須掌握至少一門程式設計語言(C/C++、java、C#、python等),不論做什麼項目,可定需要程式設計語言實作的。