當前位置:
首頁 > 科技 > 接觸代碼30年,為什麼覺得這門底層知識一定要掌握?

接觸代碼30年,為什麼覺得這門底層知識一定要掌握?

如果從 7 歲第一次在少年宮寫程序開始算起,到今天,我的碼齡快有 30 年了。

05 年上海交通大學計算機系畢業後,我寫過各種大型企業軟體,也從零開始搭建過廣告演算法系統,16 年底進軍人工智慧領域,這期間我最大的感受就是,軟體開發行業發展變化太快了,有時候不免會覺得焦慮,唯一的解決辦法,就是迎頭趕上,並選擇那些最有挑戰的去學。

在攻克一個又一個領域之後,我發現這些看似新興的技術,背後的原理和邏輯卻是融會貫通的,無外乎計算機組成原理、數據結構、演算法、操作系統這些基礎知識,它就像一座大樓的地基,決定了我們的技術高度,而這其中,「計算機組成原理」更是入門識的第一課。

在這個高級語言層出不窮的時代,我們如果不學彙編、不理解一點硬體,就好比一名賽車手不知道賽車的內部構成和工作原理,你相信他能在專業賽事中奪得冠軍嗎?

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

舉個例子,如果你不懂浮點數的原理,你能知道為什麼計算金額的時候不能用浮點數,而要用定點數或者整數? 為什麼在做機器學習、圖形運算的時候,我們又會選擇使用浮點數?再或者字元編碼,為什麼會遇到亂碼?在 Web 頁面展現,網路傳輸數據、日誌文件,又或資料庫層面,遇到中文乃至更多語言的亂碼的時候,到底是哪裡出錯了?I/O 也是工程師日常工作中非常重要的一個知識點,當你遇到伺服器性能調優的時候,很多時候瓶頸都在 I/O,你會看到機器的 load 很高,看到 io_wait 很大,我們該從哪些角度去排查問題?

我說的這些問題,你應該常常遇到。在我看來,底層原理知識不等於簡單基礎知識,或者說不等於不重要的知識。相反,組成原理是讓你搞懂計算機的本質。

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

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

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

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

在很早之前,極客時間的編輯找到我,想讓我開一個計算機組成原理的課程,在考研統考的 4 門核心基礎課程中,極客時間已經出了數據結構與演算法、操作系統,計算機網路相關的 3 門很受歡迎的計算機基礎課程,這是第 4 門,也是計算機底層知識的第一課,等你做了多年開發以後,會發現,原來這麼多年就是圍繞這 4 門課程打轉。

市面上有不少經典的書籍,我身邊很多工程師卻只囤積沒怎麼學,大部分反饋概念偏多,太抽象,難理解,不好學以致用,不少非科班出身的程序員,直接說「這些書根本看不懂」。

基於此,我和極客時間共同打磨了《深入淺出計算機組成原理》專欄,這個專欄目前已 9800 同學加入學習了,在這裡我收集了一些同學們遇到的問題,大家有遇到過嗎?

我是誰?

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

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

很開心看到同學們對這個課程重要性的認知,也看到了大家對專欄的期待。

跟上節奏學習,希望你可以收穫

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

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

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

我會把整個的計算機組成原理通過指令、計算、CPU、存儲系統和 I/O 串起來,以一個程序的執行過程進行逐層分解,從歷史視角講清楚「是什麼」,結合案例講清楚」怎麼做「。

3、洞悉性能問題的本質

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

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

我將手把手帶你實操,利用存儲器層次結構設計大型 DMP 系統,並通過 Disruptor,跟你一起感受 CPU 的風馳電掣,讓你真正學有所用。

總之,學好這門「硬核內功」,會讓你在整個軟體開發領域中,看到更加廣闊的天地,它還會為你帶來更多的職業發展機會,比如像我自己的團隊里,有個小夥伴開始是做演算法應用開發的,因為有紮實的計算機基礎知識,後來就轉去開發 TVM 這樣的深度學習編譯器了,是不是很厲害?

InfoQ 粉絲專屬福利

1、原價¥99,限時拼團¥79,使用 InfoQ 粉絲優惠口令:「infoqbang」,再減 5 元,到手價¥74 元。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 InfoQ 的精彩文章:

技術輪迴,靜態Web再度成為新趨勢?
AI與IoT之間差的是數據?揭秘Keep快速入局AIoT的三大絕招

TAG:InfoQ |