摘要:極客時間平臺我本身一直都很認可和信任,更重要的是我看了目錄和內容,感覺確實不錯,爲了針對性的解決大家學習中的困難,徐文浩在專欄中結合自己多年硬件研究和軟件開發經驗,通過日常工作實際場景+硬件發展歷史+軟件開發案例,深入淺出的爲你講解計算機組成原理的核心知識,教你真正看懂、學會、記住,從源頭理解軟、硬件的共同之處,洞悉性能問題的本質,學以致用。在這裏特別推薦個靠譜的學習資料,極客時間的新專欄《深入淺出計算機組成原理》,在考研統考的4門核心基礎課程中,極客時間已經出了數據結構與算法、操作系統,計算機網絡相關的3門很受歡迎的計算機基礎課程,這是第4門也是非常重要的第一課,等你做了多年開發以後,會發現,原來這麼多年就是圍繞這4門課程打轉。

對於程序員來說,計算機組成原理相關知識重要嗎?

不知道大家有沒有發現各個大學計算機系的培養計劃,它們都有差不多十來門核心課程。其中,“計算機組成原理”卻是入門和底層知識的第一課。

爲什麼這樣說?想象一下,一名賽車手不知道賽車的內部構成和工作原理,你覺得他能駕馭賽車,在專業賽事中奪冠嗎?

同樣的道理,要成爲一名優秀的軟件工程師,寫得一手好程序,就要了解計算機是怎麼工作的,深入計算機組成原理。

我們直接用肉眼來看,計算機是由CPU、內存、顯示器這些設備組成的硬件,而大部分人工作後從事的是軟件開發,顯然,在硬件和軟件之間需要一座橋樑,而“計算機組成原理”就扮演了這樣一個角色,它既隔離了軟件和硬件,也提供了讓軟件無需關心硬件,就能直接操作硬件的接口。

簡單地說,你只需要對硬件有原理性的理解,就可以信賴硬件的可靠性,安安心心用高級語言來寫程序。無論是寫操作系統、編譯器這樣的硬核代碼,還是寫Web應用、手機App這樣的應用層代碼,你都可以做到心裏有底。

如上圖,學習組成原理之後,向下,你可以學習數字電路相關的課程,向上,你可以學習編譯原理、操作系統這些核心課程。它會讓你真正對計算機的知識有一個全局的瞭解。

當然,這門課還可以直接解決你在併發編程、性能優化中經常遇到的一些困惑,比如CPU Cache的原理是什麼,CPU和I/O之間是如何通信的,虛擬內存是要解決什麼問題。

如果你看過倚天屠龍記,會發現張無忌幾個時辰,就把別人幾十年沒有練成的乾坤大挪移學會了,最根本的原因,是他有“九陽神功”練就的內功底子!

同樣的,深入學習這門“底層知識”,就是在練扎馬步、核心肌肉力量,提升你自己的“根骨”和“資質”,從而拔高你發展的上限。

如何系統的學習?

作爲計算機底層知識第一課,當然不那麼好啃,概念多,太抽象,難理解,不好學以致用。我身邊不少想打好這門“硬核內功”的工程師,大都是買了資料,前面100頁已經發黃了,後面500頁從來沒有打開過;不少非科班出身的程序員,直接說“這些書根本看不懂”,典型的“買書如山倒,讀書如抽絲”。

在這裏特別推薦個靠譜的學習資料,極客時間的新專欄《深入淺出計算機組成原理》,在考研統考的4門核心基礎課程中,極客時間已經出了數據結構與算法、操作系統,計算機網絡相關的3門很受歡迎的計算機基礎課程,這是第4門也是非常重要的第一課,等你做了多年開發以後,會發現,原來這麼多年就是圍繞這4門課程打轉。

這個課的作者是徐文浩,一個目前正在創業的工程師。7歲開始接觸代碼,近30年的碼齡,畢業於上海交通大學計算機系,在 Trilogy Software 寫過各種大型企業軟件,也曾任 MediaV 技術總監,從零開始搭建支撐每天百億流量的廣告算法系統,提升了十倍以上的廣告收入和 ROI;2016年底進軍人工智能領域,創辦 BotHub.AI,成爲唯一進入 F8 大會開發者代表的中國公司。

爲什麼推薦這門課程?

極客時間平臺我本身一直都很認可和信任,更重要的是我看了目錄和內容,感覺確實不錯,爲了針對性的解決大家學習中的困難,徐文浩在專欄中結合自己多年硬件研究和軟件開發經驗,通過日常工作實際場景+硬件發展歷史+軟件開發案例,深入淺出的爲你講解計算機組成原理的核心知識,教你真正看懂、學會、記住,從源頭理解軟、硬件的共同之處,洞悉性能問題的本質,學以致用。

爲了方便大家的學習,徐文浩老師特地整理了一份學習腦圖,希望你對將要學習的內容有個總綱的瞭解,做到心中有數。

你能獲得什麼?

1、學以致用的計算機底層知識

專欄會以日常開發中的真實案例,幫你理解計算機的各個組件是怎麼運作的,遇到問題的根源是什麼,從知識→應用→知識,形成閉環,學以致用。

比如說,CPU裏面的冒險和分支預測的策略,就好像在接力賽跑裏面後面幾棒的選手早點起跑,如果交接棒沒有問題,自然佔了便宜,但是如果沒能交接上,就會喫個大虧。

2、30+計算機組成原理核心要點

作者會把整個的計算機組成原理通過指令、計算、CPU、存儲系統和IO串起來,以一個程序的執行過程進行逐層分解,從歷史視角講清楚“是什麼”,結合案例講清楚“怎麼做”,帶你搞懂計算機組成原理中最核心、最重要的內容。

3、洞悉性能問題的本質

學習計算機組成原理,其實就是理解計算機是怎麼運作的,以及爲什麼這麼運作。在此基礎上,我們才能又快又準地優化性能,提升效率。而我們想要解決性能問題,其實就是在此基礎上,去關注時鐘週期時間、每條指令的平均時鐘週期數CPI、指令數。

4、組成原理在工業界的實際應用

理解了計算機各個組件的運作之後,還將手把手帶你實操。利用存儲器層次結構設計大型 DMP 系統,並通過 Disruptor,跟你一起感受 CPU 的風馳電掣,讓你真正學有所用。

“練拳不練功,到老一場空”。做一個真正的工程師,越早弄清楚計算機的底層原理,在你的知識體系中“儲蓄”起這些知識,也就意味着你有越長的時間來收穫學習知識的“利息”。長久的“複利效應”,會讓你的未來走的更遠更輕鬆。

相關文章