想了解計算機的底層原理?這些資源通俗易懂又有趣

2021-02-17 算法與數據結構

我在這周更新的文章《學編程,學化學和學開車》中,向大家介紹了和計算機底層運行原理相關的諸多學科。

關於這些學科要不要學?什麼時候學?應該怎麼學?我在這篇文章中都有一定的介紹。

不過,因為對於大多數非科班同學來說,很難有一兩年完整的學習時間,系統學習這麼多的科目;

與此同時,即使是科班同學,大多數在學校學習的時候,因為沒有實際的項目工程經驗,所以對這些課程真正的用處也沒有深刻理解,導致學得非常粗淺。很多同學在工作以後,都希望能夠快速高效地「回爐」這些課程的精華內容。

在這篇文章中,我就向大家推薦一系列學習計算機底層原理的資源。

這篇文章中推薦的很多資源,都結合了在我知識星球上大家的討論內容。在這裡,也感謝大家的分享:)

1. Crash Course

首先,推薦一個視頻資源,來自國外著名的 Youtube 頻道:Crash Course。

Crash Course 自 2011 年 12 月 2 日建立,至今已經 8 年多的時間了,在 Youtube 上的訂閱量達到了 1000 萬級別,當然,我也是其中之一。

他家視頻的觀看量更是高達 12 億之多,可以說是 Youtube 上最火的教育頻道之一。

Crash Course 涵蓋的主題極其廣泛:哲學,經濟學,歷史,文學,心理學,數學,化學,近乎無所不包。當然,還包括在這篇文章中,我想向大家推薦的:計算機科學。

Crash Course 的這套計算機科學視頻一共 41 集,平均每集 10 分鐘。整體課程主要關注計算機底層原理,屬於科普性的講解。

實際上,Crash Course 成立之初的定位,就是讓那些想學點兒東西,但是又沒有大塊兒時間的人,每天不用找 1-2 個小時,只用 10-20 分鐘,就能學習一些知識。

雖然平均每集只有 10 分鐘,但是 Crash Course 的視頻信息量還是很大的,語速也很快。儘管如此,因為只是科普性的講解,所以大家不需要真正地記憶理解什麼,當做紀錄片看就好了。

精心設計的內容,精緻的動畫,以及通俗的講解,相信適合大多數同學:)

CrashCourse 的 Youtube 官方頻道地址:

https://www.youtube.com/user/crashcourse

國內的同學如果想看中文字幕版本,在 B 站就能直接看到。這套計算機科普視頻被國內翻譯為【計算機科學速成課】。

傳送門:

https://www.bilibili.com/video/av21376839?from=search&seid=46761191568656985

另外,Crash Course 在國內有專門的中文字幕組,同步更新國外視頻的中文字幕版本。雖然進度肯定還是稍微落後於官方速度的,但是因為 Crash Course 已出的視頻量也很大,所以肯定能滿足同學們學習的需求。

CrashCourse 中文字幕組的網址在上面的截圖上已經有了:

crashcourse.club。很好記:)

對了,其實不用去 B 站,直接在這個中文字幕組網站,就能看到全部有中文字幕的視頻。

另外,值得一提的是,現在 Crash Course 上除了這套 Computer Science 介紹計算機的底層原理,還有很多視頻系列也和計算機有關。我簡單總結如下:

21 集的人工智慧科普。

45 集的統計學科普。

46 集的科技史。

30 集專門介紹遊戲。

是不是很酷?:)

2. 一本書,名叫 code

第二個推薦,是一本書,名字就叫《Code》,副標題是 The Hidden Language of Computer Hardware and Software。

這本書有中譯本,翻譯成《編碼:隱匿在計算機軟硬體背後的語言》,在豆瓣上評分 9.2。

我直接把豆瓣上的內容簡介摘抄下來,如下:

本書講述的是計算機工作原理。作者用豐富的想像和清晰的筆墨將看似繁雜的理論闡述得通俗易懂,你絲毫不會感到枯燥和生硬。更重要的是,你會因此而獲得對計算機工作原理較深刻的理解。這種理解不是抽象層面上的,而是具有一定深度的。

這本書在美國 Amazon 上,在 Machine Theory(機器理論) 類別中,常年位居第一名。


順便一提的是,在 Machine Theory(機器理論) 類別中,常年位居第二名的圖書,這個公眾號也介紹過,就是 Advances in Financial Machine Learning。大家可以參考在 【是不是很酷】開源資源 分享 | 第 1 期 的內容。

在 Machine Theory(機器理論) 類別中,常年位居第四名的圖書,我也極其推薦。這是一本來自 1999 年的書,叫 Gödel, Escher, Bach: An Eternal Golden Braid。

這本書有中文版,中文翻譯為《哥德爾、艾舍爾、巴赫:集異璧之大成》。豆瓣評分高達 9.4。

這本書曾獲普利茲文學獎。別看獲得的是文學獎,但是它描述的,切切實實是理工世界的事情。整本書結合了數理邏輯學、可計算理論、人工智慧學、語言學、遺傳學、音樂、繪畫等等多個領域的理論,絕對是一本奇書。

當然,亞馬遜的計算機相關的圖書不僅僅有 Machine Theory(機器理論)這一個類別,還有非常多的類別,篇幅原因,我就不過多介紹了。以後有機會,再和大家介紹更多我覺得非常有意義的書:)

不過,根據各大排行榜去尋找優質的圖書,是我尋找優質圖書的一種主要方式。大家也可以試試看:)

3. 程序是怎樣跑起來的

這是一本日本作者的圖書,名字是《程序是怎樣跑起來的》。豆瓣評分 8.0。

這本書我沒有看過。不過既然有同學推薦,我就擺在這裡。

值得一提的是,這本書在國內被圖靈教育放在了一個《圖靈程序設計叢書,圖解與入門系列》這樣的一個系列圖書中。

我簡單看了看,這個系列圖書的作者都是日本人,包含《圖解 HTTP》,《網絡是怎樣連接的》,《圖解 TCP/IP》,《圖解密碼技術》,等等等等。

如果對這個風格比較接受的同學,都可以參考。

4. 深入學習計算機系統

這本書大名鼎鼎,相信學習計算機的同學都聽過。

Computer Systems: A Programmer's Perspective。中文翻譯:《深入學習計算機系統》,最新版是第三版。

這本書豆瓣評分高達 9.8。

這本書整體編寫更像課本,而不是科普讀物。

這本書的作者,是卡內基梅隆大學(CMU)的計算機系主任。是卡內基梅隆大學(CMU)ICS 課程的御用課本。ICS 的全稱是:Introduction to Computer Systems,翻譯過來就是:計算機系統導論。

由於這本書太過經典,我知道很多同學讀過中文版以後,都會想再讀一遍英文版收藏。所幸,這本書在國內有官方引進的英文版,非常適合收藏。

好了,今天就向大家介紹這麼多。

●編號1198,輸入編號直達本文

●輸入m獲取文章目錄

程式設計師數學學習

鍛鍊數學邏輯思維

相關焦點

  • 通俗易懂地介紹計算機運行原理,看了就能懂
    本文利用比喻來描述計算機運行原理。無論現在計算機做得有多小、多薄,它的底層原理是一樣的。還有鍵盤、滑鼠等輸入設備,可能有人說沒有內存,其實了解計算機原理的都知道,內存只不過是一個特殊的存儲設備,只是它存儲的速度特別快而已。電腦剛發明出來的時候呢,指令都是手動板開關來輸入的,談不上存儲的概念。其次就要介紹二進位。
  • 【底層原理】四位計算機的原理及其實現
    你是否想過,計算機為什麼會加減乘除?或者更直接一點,計算機的原理到底是什麼?
  • 計算機原理!
    讓我感到最迷惑的是,書中出現大量的、我從未見過的詞彙和知識點,而很少提及這些知識點具體是怎麼被應用的,怎麼被發明或者發現的,為什麼會是現在這樣、為什麼就不能是那樣,而且這些知識點給我的感覺是離散的,他們之間的關聯到底是怎麼樣的,我很想弄明白。我感到大學計算機教材中的知識體系與高中基礎學科知識體系有明顯不同——你需要具備太多讓人絕望的知識背景。
  • AP | AP計算機A & AP計算機原理
    2016至2017學年新增一門AP考試科目——Computer  Science Principles(計算機科學原理),該課程是以計算機原理和基礎知識為主,含編程方面的知識。通過AP計算機科學原理的學習,可以讓學生了解計算機科學的概貌、內容、研究方法。
  • Go語言潛力有目共睹,但它的Goroutine機制底層原理你了解嗎?
    通過本文你將了解到以下內容:什麼是協程以及橫向對比優勢Go語言的Goroutine機制底層原理和特點聊聊協程大家對於進程、線程二位明星都很熟悉,但協程就沒有火了進程的創建和銷毀都是系統資源級別的,因此是一種比較昂貴的操作,進程是搶佔式調度其有三個狀態:等待態、就緒態、運行態。進程之間是相互隔離的,它們各自擁有自己的系統資源, 更加安全但是也存在進程間通信不便的問題。
  • 從計算機原理的角度談C語言數據類型,小白必看!
    很多同學在學習的時候不理解數據類型,因為對計算機及原理知之甚少。所以,在學習數據類型之前,如果你要是知道計算機的工作原理,那麼會對這裡的學習、理解有非常大的幫助。開關的原理:繼電器計算機原理簡述簡單來說,計算機內部全部都是由一個個很小的「開關」組成的。
  • 畢業後想拿大廠offer?你得完整擁有這些計算機知識體系!
    深入學習 C 語言,能夠了解計算機底層的執行原理,是理解程序運行機制的絕佳語言,無出其右。在這裡,不得不引用對C語言最經典的總結:任何比C語言更低級的語言,都不足以完整地抽象一個計算機系統;任何比C高級的語言,都可以用C來實現。
  • 大學生丨畢業後想拿大廠offer?你得完整擁有這些計算機知識
    深入學習 C 語言,能夠了解計算機底層的執行原理,是理解程序運行機制的絕佳語言,無出其右。  記得南大有個老師說過 「我們不是學習使用計算機的,而是學習如何造計算機」,雖然造計算機有點誇張,但是至少我們得了解下計算機的實現原理,了解下代碼是怎麼被 CPU 執行的吧?不然其實你會很困惑,明明一堆英文字母,怎麼在 CPU 這種電路上跑起來的,我大一學 C 語言就百思不得其解,直到後來學了組成原理和數字邏輯。
  • 程式設計師:結合計算機底層分析「線程安全性的原理分析」
    //對threadOneFlag變量的修改在線程Thread_One中並不可見threadOneFlag = false;threadTwoFlag = false;}運行結果:從硬體層面了解可見性的本質
  • AP計算機科學A和計算機原理有什麼區別
    新東方網>留學>留學考試>AP>正文AP計算機科學A和計算機原理有什麼區別 2019-02-20 11:53 來源:新東方網
  • 為什麼計算機編程用英文卻不用中文?
    有很多剛開始學計算機編程的朋友心裡會有個疑問,用漢字編程難道不是更通俗易懂,為什麼編程語音都是英文?在這裡筆者給解答一下。首先糾正一下,並非沒有漢字編程,只不過用的人比較少,知名度比較低。現在來說說為什麼編程多用英文,這和計算機的運行原理有關係,計算機真正能識別的底層其實就是數據0和1,無數的0,1變換組合成無窮多的可供計算機識別的內容。機器雖然能識別,但如果全是0和1的話,這樣的程序人無法識別也無法操作。因此在機器語言之上人類又開發了便於開發人員設計和能讀懂的高級程序語言,高級語言再經過轉換變成機器能夠讀懂的內容,是這麼一個流程。
  • Linux 進程、線程、文件描述符的底層原理
    Linux 中的進程其實就是一個數據結構,順帶可以理解文件描述符、重定向、管道命令的底層工作原理,最後我們從作業系統的角度看看為什麼說線程和進程基本沒有區別。一、進程是什麼首先,抽象地來說,我們的計算機就是這個東西:這個大的矩形表示計算機的內存空間,其中的小矩形代表進程,左下角的圓形表示磁碟,右下角的圖形表示一些輸入輸出設備,比如滑鼠鍵盤顯示器等等。
  • 原來gdb的底層調試原理這麼簡單
    針對上面這些疑惑,我們就來聊聊 GDB 的底層調試原理,我們來看一下 GDB 是通過什麼機制來控制指令集的執行。內容比較多,看完本文需要的時間可能長一些,為了您的健康,不建議在處於蹲姿的時候閱讀這篇文章。
  • 女生想學計算機麼?來看一看適合女生選擇的計算機專業方向
    隨著時代的發展,計算機專業是越來越受歡迎,本身也有著「萬金油」之稱。不過網絡上也有很多人說,女生不適合學計算機專業,那么女生真的不適合嗎?答案當然是否定的。首先我們來看一下,計算機專業在大學一般又分為偏硬體方向和偏軟體方向。
  • git底層原理,從常見操作解釋git的底層原理,再也不怯
    一、git的基本使用在這裡插入圖片描述git clone 克隆遠程資源到本地目錄,作為工作目錄;然後在本地的克隆目錄上添加或修改文件;如果遠程修改了,需要同步遠程的內容,直接git pull就可以更新本地的文件;本地在修改之後,可以通過git status 查看修改的文件。
  • 深入了解面向切面編程 Spring底層兩種動態代理實現原理及區別
    Spring的AOP底層通過動態代理實現,Spring能夠為容器中管理的對象生成動態代理對象。我們如果使用JDK提供的方法實現動態代理是非常複雜的,Spring對該方法進行了封裝,我們只需要通過對applicationContext中的標籤進行配置,即可實現動態代理。
  • 計算機中的Map接口
    在計算機中想到集合和容器,我們應該想到List,Set,Queue隊列,Map這幾個集合容器。而我們在其中這幾個當中選取適合裝我們所需的數據。舉個生活的小李子,提水,你想到的是什麼?你第一反應想到的應該是桶這一類的東西,我覺得你不會想到用缸這一龐然大物。以現實生活中的例子反應到計算機中,就通俗易懂了!
  • 最全中科大計算機學院課程資源(含答案)
    機器之心整理機器之心編輯部我們經常能在網上找到美國頂級大學公開的計算機科學課程,但對國內院校的課程了解不多。剛剛,我們在 GitHub 上發現了一個不錯的 repo:中國科學技術大學計算機學院課程資源,目前已經收集了中國科學技術大學的課程資源(主要是計算機學院的課程),包括課程電子版書籍、參考書、slides (ppt)、考試試卷、學習心得,甚至某些書的答案也包含其中。
  • 關於量子計算機的原理和應用,搞清楚這些就夠了
    量子力學跟經典力學其實有很大的差異,甚至有一些量子力學原理至今無法解釋,著名的物理學家費曼就曾經說過,目前世界上沒有人懂量子力學,所以那些打著量子XX的產品你懂的。想要理解量子計算機必須要了解三件事情,這三件事情只要你了解大概就知道量子計算機是什麼東西,不要覺得你經典力學學得好就能理解,其實基礎物理學的太好的人學量子力學會更吃力,因為它真的是顛覆了所有的經典力學基礎。
  • 計算機專業必讀哪兩本經典書籍?
    第一種工程師總是尋求深入學習計算機科學的方法,或是通過傳統的方法學習,或是在職業生涯中永無止息地學習;第二種工程師 通常浮於表面,只學習某些特定的工具和技術,而不研究其底層的基本原理,僅僅在技術潮流的風向改變時學習新的技能。 如今,湧入計算機行業的人數激增,然而計算機專業的畢業生數量基本上未曾改變。