初級程序員比招式,高級程序員只看內(nèi)功!對于程序員來說,計算機(jī)組成原理相關(guān)知識重要嗎? 不知道大家有沒有發(fā)現(xiàn)各個大學(xué)計算機(jī)系的培養(yǎng)計劃,它們都有差不多十來門核心課程。其中,“計算機(jī)組成原理”卻是入門和底層知識的第一課。 為什么這樣說?想象一下,一名賽車手不知道賽車的內(nèi)部構(gòu)成和工作原理,你覺得他能駕馭賽車,在專業(yè)賽事中奪冠嗎? 同樣的道理,要成為一名優(yōu)秀的軟件工程師,寫得一手好程序,就要了解計算機(jī)是怎么工作的,深入計算機(jī)組成原理。 我們直接用肉眼來看,計算機(jī)是由CPU、內(nèi)存、顯示器這些設(shè)備組成的硬件,而大部分人工作后從事的是軟件開發(fā),顯然,在硬件和軟件之間需要一座橋梁,而“計算機(jī)組成原理”就扮演了這樣一個角色,它既隔離了軟件和硬件,也提供了讓軟件無需關(guān)心硬件,就能直接操作硬件的接口。 簡單地說,你只需要對硬件有原理性的理解,就可以信賴硬件的可靠性,安安心心用高級語言來寫程序。無論是寫操作系統(tǒng)、編譯器這樣的硬核代碼,還是寫Web應(yīng)用、手機(jī)App這樣的應(yīng)用層代碼,你都可以做到心里有底。 如上圖,學(xué)習(xí)組成原理之后,向下,你可以學(xué)習(xí)數(shù)字電路相關(guān)的課程,向上,你可以學(xué)習(xí)編譯原理、操作系統(tǒng)這些核心課程。它會讓你真正對計算機(jī)的知識有一個全局的了解。 當(dāng)然,這門課還可以直接解決你在并發(fā)編程、性能優(yōu)化中經(jīng)常遇到的一些困惑,比如CPU Cache的原理是什么,CPU和I/O之間是如何通信的,虛擬內(nèi)存是要解決什么問題。 如果你看過倚天屠龍記,會發(fā)現(xiàn)張無忌幾個時辰,就把別人幾十年沒有練成的乾坤大挪移學(xué)會了,最根本的原因,是他有“九陽神功”練就的內(nèi)功底子! 同樣的,深入學(xué)習(xí)這門“底層知識”,就是在練扎馬步、核心肌肉力量,提升你自己的“根骨”和“資質(zhì)”,從而拔高你發(fā)展的上限。 如何系統(tǒng)的學(xué)習(xí)? 作為計算機(jī)底層知識第一課,當(dāng)然不那么好啃,概念多,太抽象,難理解,不好學(xué)以致用。我身邊不少想打好這門“硬核內(nèi)功”的工程師,大都是買了資料,前面100頁已經(jīng)發(fā)黃了,后面500頁從來沒有打開過;不少非科班出身的程序員,直接說“這些書根本看不懂”,典型的“買書如山倒,讀書如抽絲”。 在這里特別推薦個靠譜的學(xué)習(xí)資料,極客時間的新專欄《深入淺出計算機(jī)組成原理》,在考研統(tǒng)考的4門核心基礎(chǔ)課程中,極客時間已經(jīng)出了數(shù)據(jù)結(jié)構(gòu)與算法、操作系統(tǒng),計算機(jī)網(wǎng)絡(luò)相關(guān)的3門很受歡迎的計算機(jī)基礎(chǔ)課程,這是第4門也是非常重要的第一課,等你做了多年開發(fā)以后,會發(fā)現(xiàn),原來這么多年就是圍繞這4門課程打轉(zhuǎn)。 △掃碼免費(fèi)試讀或訂閱 這個課的作者是徐文浩,一個目前正在創(chuàng)業(yè)的工程師。7歲開始接觸代碼,近30年的碼齡,畢業(yè)于上海交通大學(xué)計算機(jī)系,在 Trilogy Software 寫過各種大型企業(yè)軟件,也曾任 MediaV 技術(shù)總監(jiān),從零開始搭建支撐每天百億流量的廣告算法系統(tǒng),提升了十倍以上的廣告收入和 ROI;2016年底進(jìn)軍人工智能領(lǐng)域,創(chuàng)辦 BotHub.AI,成為唯一進(jìn)入 F8 大會開發(fā)者代表的中國公司。 為什么推薦這門課程? 極客時間平臺我本身一直都很認(rèn)可和信任,更重要的是我看了目錄和內(nèi)容,感覺確實不錯,為了針對性的解決大家學(xué)習(xí)中的困難,徐文浩在專欄中結(jié)合自己多年硬件研究和軟件開發(fā)經(jīng)驗,通過日常工作實際場景 硬件發(fā)展歷史 軟件開發(fā)案例,深入淺出的為你講解計算機(jī)組成原理的核心知識,教你真正看懂、學(xué)會、記住,從源頭理解軟、硬件的共同之處,洞悉性能問題的本質(zhì),學(xué)以致用。 為了方便大家的學(xué)習(xí),徐文浩老師特地整理了一份學(xué)習(xí)腦圖,希望你對將要學(xué)習(xí)的內(nèi)容有個總綱的了解,做到心中有數(shù)。 你能獲得什么? 1、學(xué)以致用的計算機(jī)底層知識 專欄會以日常開發(fā)中的真實案例,幫你理解計算機(jī)的各個組件是怎么運(yùn)作的,遇到問題的根源是什么,從知識→應(yīng)用→知識,形成閉環(huán),學(xué)以致用。 比如說,CPU里面的冒險和分支預(yù)測的策略,就好像在接力賽跑里面后面幾棒的選手早點起跑,如果交接棒沒有問題,自然占了便宜,但是如果沒能交接上,就會吃個大虧。 2、30 計算機(jī)組成原理核心要點 作者會把整個的計算機(jī)組成原理通過指令、計算、CPU、存儲系統(tǒng)和IO串起來,以一個程序的執(zhí)行過程進(jìn)行逐層分解,從歷史視角講清楚“是什么”,結(jié)合案例講清楚“怎么做”,帶你搞懂計算機(jī)組成原理中最核心、最重要的內(nèi)容。 3、洞悉性能問題的本質(zhì) 學(xué)習(xí)計算機(jī)組成原理,其實就是理解計算機(jī)是怎么運(yùn)作的,以及為什么這么運(yùn)作。在此基礎(chǔ)上,我們才能又快又準(zhǔn)地優(yōu)化性能,提升效率。而我們想要解決性能問題,其實就是在此基礎(chǔ)上,去關(guān)注時鐘周期時間、每條指令的平均時鐘周期數(shù)CPI、指令數(shù)。 4、組成原理在工業(yè)界的實際應(yīng)用 理解了計算機(jī)各個組件的運(yùn)作之后,還將手把手帶你實操。利用存儲器層次結(jié)構(gòu)設(shè)計大型 DMP 系統(tǒng),并通過 Disruptor,跟你一起感受 CPU 的風(fēng)馳電掣,讓你真正學(xué)有所用。 “練拳不練功,到老一場空”。做一個真正的工程師,越早弄清楚計算機(jī)的底層原理,在你的知識體系中“儲蓄”起這些知識,也就意味著你有越長的時間來收獲學(xué)習(xí)知識的“利息”。長久的“復(fù)利效應(yīng)”,會讓你的未來走的更遠(yuǎn)更輕松。 |
|