電腦科學速成課

来源:https://www.cnblogs.com/tyson03/archive/2023/11/18/17840204.html
-Advertisement-
Play Games

建議看看電腦科學速成課,一門很全面的電腦原理入門課程,短短10分鐘可以把大學老師十幾節課講的東西講清楚!整個系列一共41個視頻,B站上有中文字幕版。 每個視頻都是一個特定的主題,例如軟體工程、人工智慧、操作系統等,主題之間都是緊密相連的,比國內很多大學電腦課程強太多! 這門課程通過生動形象的講 ...


建議看看電腦科學速成課,一門很全面的電腦原理入門課程,短短10分鐘可以把大學老師十幾節課講的東西講清楚!整個系列一共41個視頻,B站上有中文字幕版。

每個視頻都是一個特定的主題,例如軟體工程、人工智慧、操作系統等,主題之間都是緊密相連的,比國內很多大學電腦課程強太多!

這門課程通過生動形象的講解方式,向普通人介紹了電腦科學相關的基礎知識,包括電腦的發展史、二進位、指令和程式、數據結構與演算法、人工智慧、電腦視覺、自然語言處理等等。

每節課程短小精悍,只有短短十幾分鐘,適合平時碎片化時間觀看。

課程目錄如下,光看課程大綱都有學習的欲望~

  1. 早期的計算
  2. 電子計算
  3. 布爾邏輯與邏輯電路
  4. 二進位
  5. 算術邏輯單元
  6. 寄存器 & 記憶體
  7. 中央處理器
  8. 指令和程式
  9. 高級 CPU 設計
  10. 編程史話
  11. 編程語言
  12. 編程原理:語句和函數
  13. 演算法初步
  14. 數據結構
  15. 阿蘭·圖靈
  16. 軟體工程
  17. 集成電路、摩爾定律
  18. 操作系統
  19. 記憶體 & 儲存介質
  20. 文件系統
  21. 壓縮
  22. 命令行界面
  23. 屏幕 & 2D 圖形顯示
  24. 圖形用戶界面
  25. 3D 圖形
  26. 電腦網路
  27. 互聯網
  28. 萬維網
  29. 網路安全
  30. 黑客與攻擊
  31. 加密
  32. 機器學習與人工智慧
  33. 電腦視覺
  34. 自然語言處理
  35. 機器人
  36. 電腦中的心理學
  37. 教育型科技
  38. 奇點,天網,電腦的未來

課程地址:https://www.bilibili.com/video/av21376839/?vd_source=2b77c4a826e636ae19a4f75a4b2ca146

建議關閉彈幕認真觀看~

在這裡給大家分享一本谷歌大佬撰寫的演算法手冊,整整 300 道 LeetCode 題目,並且都是最優解,非常強!這本手冊幫助不少朋友加入大廠,大家加油!

Github瘋傳!谷歌大佬撰寫的演算法手冊開源了

操作系統

無論學習什麼編程語言,和需要和操作系統打交道。如果對操作系統不熟悉,那麼你在未來的學習路上將會遇到很多障礙,比如線程進程調度、記憶體分配、Java的虛擬機等知識,都會一頭霧水。所以只有把操作系統搞明白了,才能夠更好地學習電腦的其他知識。

視頻教程推薦

Udacity的Advanced OS公開課:https://www.classcentral.com/course/udacity-advanced-operating-systems-1016

還有國內不錯的操作系統的課程,清華大學的公開課:https://www.xuetangx.com/course/THU08091000267/5883104?channel=search_result

由清華大學兩位老師向勇、陳渝講授,同時配有一套完整的實驗,實驗內容是從無到有地建立起一個小卻五臟俱全的操作系統,以主流操作系統為實例,以教學操作系統ucore為實驗環境,講授操作系統的概念、基本原理和實現技術,為學生從事操作系統軟體研究和開發,以及充分利用操作系統功能進行應用軟體研究和開發打下扎實的基礎。

另外推薦另一門MIT操作系統課程:MIT6.268

課程地址:https://pdos.csail.mit.edu/6.828/2018/schedule.html

MIT6.828 是一門非常值得學習的課程,廣受好評。

只要你跟著項目一步一步走,做完 6 個實驗,就能實現一個簡單的操作系統內核。

每個實驗都有對應的知識點,學完理論知識後會有相應的練習,學習體驗非常棒!

建議在開始學習這門課之前先熟悉C和彙編,對電腦組成有一定瞭解。

操作系統主要知識點

  • 操作系統的基礎特征
  • 進程與線程的本質區別、以及各自的使用場景
  • 進程的幾種狀態
  • 進程通信方法的特點以及使用場景
  • 進程任務調度演算法的特點以及使用場景
  • 死鎖的原因、必要條件、死鎖處理。手寫死鎖代碼、Java是如何解決死鎖的。
  • 線程實現的方式
  • 記憶體管理的方式
  • 虛擬記憶體的作用,分頁系統實現虛擬記憶體原理
  • 頁面置換演算法的原理
  • 靜態鏈接和動態鏈接

電腦組成原理

電腦組成原理,主要學習電腦的基本組成原理和內部運行機制,並探索硬、軟體之間相互作用的關係,以及如何有效利用硬體提高系統性能。

視頻推薦

電腦組成原理(哈工大劉巨集偉): https://www.bilibili.com/video/BV1WW411Q7PF

劉巨集偉老師主講,他的課不僅適合考研人,也非常適合初學者,初學者也聽得懂。

【麻省理工學院-中文字幕版】電腦組成原理:https://www.bilibili.com/video/BV1kU4y177x9

課程為 MIT 6.004 Computation Structures, Spring 2017,如果英文不錯,可以跟著學學,課程質量很高的。

編譯原理

編譯原理介紹了編譯程式構造的原理與實踐,讓你明白高級語言都是如何被轉換為另外一種語言的。學完編譯原理,可以嘗試自己去實現一個完整的小型面向對象語言編譯程式。

推薦哈工大的編譯原理視頻:https://www.bilibili.com/video/BV1zW411t7YE?p=1&vd_source=2b77c4a826e636ae19a4f75a4b2ca146

比起很多磚頭書和博客,強太多!陳鄞老師的 PPT 做的很好,講得也很通俗易懂,課程評價也很高。推薦!

另外推薦一門課,編譯原理-國防科技大學:https://www.bilibili.com/video/BV12741147J3

課程前置知識:具備電腦程式設計語言和程式設計知識,對數據結構與演算法、電腦原理、離散數學等相關知識有一定瞭解更好。視頻簡潔明瞭,適合多刷幾遍。

數據結構和演算法

為什麼學習數據結構與演算法?對於電腦專業的同學來說,這門課程是必修的,考研基本也是必考科目。對於程式員來說,數據結構與演算法也是面試、筆試必備的非常重要的考察點。

數據結構與演算法是程式員內功體現的重要標準之一,且數據結構也應用在各個方面。數據結構也蘊含一些面向對象的思想,故學好掌握數據結構對邏輯思維處理抽象能力有很大提升。

視頻推薦

UCSanDiego的數據結構與演算法專項課程https://www.coursera.org/specializations/algorithms

浙大陳越姥姥的數據結構課程

https://www.bilibili.com/video/BV1H4411N7oD

浙江大學陳越姥姥和何欽銘教授聯合授課,非常經典的課程。姥姥我的偶像!

小甲魚的數據結構和演算法課程https://www.bilibili.com/video/BV1jW411K7yg

數據結構與演算法主要學習以下內容:

  • 基本數據結構(數組、鏈表、棧、隊列等)
  • 樹(二叉樹、avl樹、b樹、紅黑樹等)
  • 堆結構
  • 排序演算法(冒泡排序、選擇排序、插入排序、快速排序、歸併排序、堆排序等及時間空間複雜度)
  • 動態規劃、回溯、貪心演算法(多刷刷leetcode)
  • 遞歸
  • 位運算

學完感覺還很吃力?可以藉助一些刷題網站鞏固下。下麵推薦幾個刷題網站。

在這裡跟大家分享一份2024屆秋招信息彙總表,目前已更新2000家,不僅有互聯網公司,還有外企、國企、各類研究所,不斷更新中,可以對照投遞,避免錯過秋招信息!

https://mp.weixin.qq.com/s?__biz=Mzg2OTY1NzY0MQ==&mid=2247495731&idx=1&sn=3d43de73833cd050c3bd78830272e6de&chksm=ce9b0d75f9ec84634b6009eaef765724f8d0bfeb9949b355bcda61215a8af155eadb36d2960e&token=1670473754&lang=zh_CN#rd

牛客網

作為牛客紅名大佬,來給牛客宣傳一波!(牛客打錢!)

牛客網擁有超級豐富的 IT 題庫,題庫+面試+學習+求職+討論,基本涵蓋所有面試筆試題型,堪稱"互聯網求職神器"。在這裡不僅可以刷題,還可以跟其他牛友討論交流,一起成長。牛客上還會各種的內推機會,對於求職的同學也是極其不錯的。

LeetCode

力扣,強推!力扣虐我千百遍,我待力扣如初戀!

從現在開始,每天一道力扣演算法題,堅持幾個月的時間,你會感謝我的(傲嬌臉)

我剛開始刷演算法題的時候,就選擇在力扣上刷。最初刷easy級別題目的時候,都感覺有點吃力,堅持半年之後,遇到中等題目甚至hard級別的題目都不慌了。

不過是熟能生巧罷了。

LintCode

與Leetcode類似的刷題網站。

LeetCode/LintCode的題目量差不多。LeetCode的test case比較完備,並且LeetCode有討論區,看別人的代碼還是比較有意義的。

LintCode的UI、tagging、filter更加靈活,更有優點,大家選擇其中一個進行刷題即可。

電腦網路

電腦網路這門課需要學習電腦網路的概念、原理和體繫結構,知道電腦分層結構,物理層、數據鏈路層、介質訪問子層、網路層、傳輸層和應用層的基本原理和協議,掌握以 TCP/IP 協議族為主的網路協議結構,並且瞭解網路新技術的最新發展。

書籍推薦

《電腦網路自頂向下方法》

這本書是經典的電腦網路教材,採用作者獨創的自頂向下方法來講授電腦網路的原理及其協議,自第1版出版以來已經被數百所大學和學院選作教材。書中從應用層講起,然後展開,擺脫了從物理層開始的枯燥,直接接觸應用實例,更能吸引讀者的興趣。而且,書上很多例子舉的很好,生動形象。

分享一份圖解PDF系列圖書,包括操作系統、網路、電腦組成原理等電腦基礎書籍!強烈建議你收藏起來!

https://mp.weixin.qq.com/s/CEruH9L1jJHIUcHspztn9Q

視頻推薦

視頻推薦中科大鄭烇、楊堅全套《電腦網路(自頂向下方法 第7版,James F.Kurose,Keith W.Ross)》課程。這門課是2020年秋科大自動化系本科課程錄製版,可與中科大學生一起完成專業知識的學習。

https://www.bilibili.com/video/BV1JV411t7ow?p=7&vd_source=2b77c4a826e636ae19a4f75a4b2ca146

另外還可以看看哈爾濱工業大學李全龍老師的電腦網路課程:https://www.bilibili.com/video/BV1Up411Z7hC

電腦網路核心知識點

  • 網路分層結構
  • TCP/IP
  • 三次握手四次揮手
  • 滑動視窗、擁塞控制
  • HTTP/HTTPS
  • 網路安全問題(CSRF、XSS、SQL註入等)

資料庫

互聯網應用大多屬於數據密集型應用,對於真實世界的數據密集型應用而言,除非你準備從基礎組件的輪子造起,不然根本沒那麼多機會去擺弄花哨的數據結構和演算法。

實際生產中,數據表就是數據結構,索引與查詢就是演算法。而應用代碼往往扮演的是膠水的角色,處理IO與業務邏輯,其他大部分工作都是在數據系統之間搬運數據。在最寬泛的意義上,有狀態的地方就有資料庫。它無所不在,網站的背後、應用的內部,單機軟體,區塊鏈里,甚至在離資料庫最遠的Web瀏覽器中。

書籍推薦

  • 《MySQL必知必會》
  • 《高性能MySQL》

《MySQL必知必會》主要是Mysql的基礎語法,很好理解。後面有了基礎再看《高性能mysql》,這本書主要講解索引、SQL優化、高級特性等,很多Mysql相關面試題出自《高性能MySQL》這本書,值得一看。

視頻推薦

伯克利的 CS168 課程:https://archive.org/details/UCBerkeley_Course_Computer_Science_186

國內中國人民大學王珊老師的《資料庫系統概論》:https://www.bilibili.com/video/BV1pW411W7Do

最後給大家分享200多本電腦經典書籍PDF電子書,包括C語言、C++、Java、Python、前端、資料庫、操作系統、電腦網路、數據結構和演算法、機器學習、編程人生等,感興趣的小伙伴可以自取:

https://mp.weixin.qq.com/s?__biz=Mzg2OTY1NzY0MQ==&mid=2247486208&idx=1&sn=dbeedf47c50b1be67b2ef31a901b8b56&chksm=ce98f646f9ef7f506a1f7d72fc9384ba1b518072b44d157f657a8d5495a1c78c3e5de0b41efd&token=1652861108&lang=zh_CN#rd

碼字不易,如果覺得對你有幫助,可以點個贊鼓勵一下!

我是 @程式員大彬 ,專註分享互聯網校招、自學CS經驗,歡迎大家關註~


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 如圖: 已知圖片中標註1、2、3對應的內容 在業務中我需要獲取標誌2對應的"58"這個值,但是這個值不包括在某個標簽中,在span“集數”和br標簽之間,為了減小獲取"58"這個值不被之前的標簽數量的影響 先獲取標簽1所對應的元素,因為標簽1有property="v:initialReleaseDa ...
  • 題目 基礎結構體練習: 創建一個名為Person的結構體,包含name(字元串類型)和age(整數類型)兩個欄位。 寫一個函數,接收一個Person實例作為參數,並列印出這個人的名字和年齡。 結構體方法練習: 為Person結構體添加一個方法birthday,當調用時,它將這個人的年齡增加1。 創建 ...
  • trait是什麼? Rust中的trait是一種定義可被多種類型實現的共用行為的方式。它類似於Java或C#中的介面。通過trait,你可以定義一組方法簽名(有時包括預設實現),不同的類型可以實現這些方法。這有助於抽象通用功能並確保不同類型間一定程度的一致性。 當一個類型實現了一個trait,它承諾 ...
  • 要知道經典類和新式類的區別,首先要掌握類的繼承 類的繼承的一個優點就是減少代碼冗餘 廣度優先和深度優先,這主要是在多類繼承的時候會使用到 經典類和新式類的主要區別就是類的繼承的方式 經典類遵循深度優先的規則,新式類遵循廣度優先的規則。 至於什麼是深度優先什麼是廣度優先,可以看如下示例: class ...
  • 1.輸入日期,判斷這一天是這一年的第幾天 import datetime def day_of_year(): year = eval(input('請輸入年份:')) month = eval(input('請輸入月份:')) day = eval(input('請輸入天:')) date1 = ...
  • 最近天氣降溫厲害,咱們用Python來分析一下空氣質量如何~ 話不多說,我們直接開始上手。 環境以及模塊 環境使用 Python 3.8 Pycharm nodejs 模塊使用 import requests import execjs import json requests和execjs 都是第 ...
  • Windows Management Instrumentation(WMI)是一種用於管理和監視`Windows`操作系統的框架。它為開發人員、系統管理員和自動化工具提供了一種標準的介面,通過這個介面,可以獲取有關電腦系統硬體、操作系統和應用程式的信息,以及對系統進行管理和控制的能力。WQL 的... ...
  • 在 Go 語言中,panic、recover 和 defer 是用於處理異常情況的關鍵字。它們通常一起使用來實現對程式錯誤的處理和恢復。 1. defer 語句 defer 用於在函數返回之前執行一段代碼。被 defer 修飾的語句或函數會在包含 defer 的函數執行完畢後執行。defer 常用於 ...
一周排行
    -Advertisement-
    Play Games
  • 1、預覽地址:http://139.155.137.144:9012 2、qq群:801913255 一、前言 隨著網路的發展,企業對於信息系統數據的保密工作愈發重視,不同身份、角色對於數據的訪問許可權都應該大相徑庭。 列如 1、不同登錄人員對一個數據列表的可見度是不一樣的,如數據列、數據行、數據按鈕 ...
  • 前言 上一篇文章寫瞭如何使用RabbitMQ做個簡單的發送郵件項目,然後評論也是比較多,也是準備去學習一下如何確保RabbitMQ的消息可靠性,但是由於時間原因,先來說說設計模式中的簡單工廠模式吧! 在瞭解簡單工廠模式之前,我們要知道C#是一款面向對象的高級程式語言。它有3大特性,封裝、繼承、多態。 ...
  • Nodify學習 一:介紹與使用 - 可樂_加冰 - 博客園 (cnblogs.com) Nodify學習 二:添加節點 - 可樂_加冰 - 博客園 (cnblogs.com) 介紹 Nodify是一個WPF基於節點的編輯器控制項,其中包含一系列節點、連接和連接器組件,旨在簡化構建基於節點的工具的過程 ...
  • 創建一個webapi項目做測試使用。 創建新控制器,搭建一個基礎框架,包括獲取當天日期、wiki的請求地址等 創建一個Http請求幫助類以及方法,用於獲取指定URL的信息 使用http請求訪問指定url,先運行一下,看看返回的內容。內容如圖右邊所示,實際上是一個Json數據。我們主要解析 大事記 部 ...
  • 最近在不少自媒體上看到有關.NET與C#的資訊與評價,感覺大家對.NET與C#還是不太瞭解,尤其是對2016年6月發佈的跨平臺.NET Core 1.0,更是知之甚少。在考慮一番之後,還是決定寫點東西總結一下,也回顧一下.NET的發展歷史。 首先,你沒看錯,.NET是跨平臺的,可以在Windows、 ...
  • Nodify學習 一:介紹與使用 - 可樂_加冰 - 博客園 (cnblogs.com) Nodify學習 二:添加節點 - 可樂_加冰 - 博客園 (cnblogs.com) 添加節點(nodes) 通過上一篇我們已經創建好了編輯器實例現在我們為編輯器添加一個節點 添加model和viewmode ...
  • 前言 資料庫併發,數據審計和軟刪除一直是數據持久化方面的經典問題。早些時候,這些工作需要手寫複雜的SQL或者通過存儲過程和觸發器實現。手寫複雜SQL對軟體可維護性構成了相當大的挑戰,隨著SQL字數的變多,用到的嵌套和複雜語法增加,可讀性和可維護性的難度是幾何級暴漲。因此如何在實現功能的同時控制這些S ...
  • 類型檢查和轉換:當你需要檢查對象是否為特定類型,並且希望在同一時間內將其轉換為那個類型時,模式匹配提供了一種更簡潔的方式來完成這一任務,避免了使用傳統的as和is操作符後還需要進行額外的null檢查。 複雜條件邏輯:在處理複雜的條件邏輯時,特別是涉及到多個條件和類型的情況下,使用模式匹配可以使代碼更 ...
  • 在日常開發中,我們經常需要和文件打交道,特別是桌面開發,有時候就會需要載入大批量的文件,而且可能還會存在部分文件缺失的情況,那麼如何才能快速的判斷文件是否存在呢?如果處理不當的,且文件數量比較多的時候,可能會造成卡頓等情況,進而影響程式的使用體驗。今天就以一個簡單的小例子,簡述兩種不同的判斷文件是否... ...
  • 前言 資料庫併發,數據審計和軟刪除一直是數據持久化方面的經典問題。早些時候,這些工作需要手寫複雜的SQL或者通過存儲過程和觸發器實現。手寫複雜SQL對軟體可維護性構成了相當大的挑戰,隨著SQL字數的變多,用到的嵌套和複雜語法增加,可讀性和可維護性的難度是幾何級暴漲。因此如何在實現功能的同時控制這些S ...