當(dāng)前位置:首頁(yè) > 技術(shù)學(xué)院 > 技術(shù)前線
[導(dǎo)讀]別在學(xué)習(xí)框架了,那些讓你起飛的計(jì)算機(jī)基礎(chǔ)知識(shí)。

我之前里的文章,寫(xiě)的大部分都是與計(jì)算機(jī)基礎(chǔ)知識(shí)相關(guān)的,這些基礎(chǔ)知識(shí),就像我們的內(nèi)功,如果在未來(lái)想要走的更遠(yuǎn),這些內(nèi)功是必須要修煉的??蚣芮ё?nèi)f化,而這些通用的底層知識(shí),卻是幾乎不變的,了解了這些知識(shí),可以幫助我們更快著學(xué)習(xí)一門(mén)知識(shí),更加懂得計(jì)算機(jī)的運(yùn)行機(jī)制。當(dāng)然,在面試中也經(jīng)常會(huì)被問(wèn)到,特別是對(duì)于應(yīng)屆生,對(duì)于春秋招,也可以看看我前陣子寫(xiě)過(guò)的文章歷經(jīng)兩個(gè)月,我的秋招之路結(jié)束了!。也有讀者經(jīng)常問(wèn)的計(jì)算機(jī)基礎(chǔ)知識(shí)究竟是指啥?學(xué)習(xí)順序?推薦書(shū)籍?

我公眾號(hào)的讀者學(xué)生以及非科班的應(yīng)該挺多的,所以我今天這篇文章就寫(xiě)一寫(xiě),我學(xué)過(guò)的計(jì)算機(jī)基礎(chǔ)知識(shí),看過(guò)的書(shū)以及我學(xué)過(guò)的順序

當(dāng)然,以下是我個(gè)人的一些經(jīng)驗(yàn),并且學(xué)過(guò)的一些知識(shí),僅供參考,也歡迎大家進(jìn)行補(bǔ)充

一、計(jì)算機(jī)網(wǎng)絡(luò)

在我們用的程序中,99% 都離不開(kāi)網(wǎng)絡(luò),作為一個(gè)程序員,我覺(jué)得了解計(jì)算機(jī)網(wǎng)絡(luò)是必須的,在大學(xué)的課程中,一般也都會(huì)開(kāi)設(shè)這一門(mén)課。

在我學(xué)習(xí)這門(mén)課之前,我就特別好奇,一臺(tái)電腦是怎么把消息發(fā)給另外一臺(tái)電腦的呢?例如:

1、兩臺(tái)電腦啥線路也沒(méi)有相連,怎么就能把消息發(fā)送給他呢?

2、世界上的電腦那么多,咋就能找到那臺(tái)特點(diǎn)的電腦呢?有人說(shuō)我們可以 MAC 或者 IP 來(lái)唯一標(biāo)識(shí)啊,可是,我就有點(diǎn)疑惑了,世界那么大,電腦那么多,有了這個(gè)標(biāo)識(shí),我們?cè)撛趺凑业剿?遍歷所有電腦?

3、多個(gè)程序同時(shí)發(fā)消息給一臺(tái)電腦,電腦是如何準(zhǔn)確把這些消息拿給這些不同程序的呢?

4、發(fā)送的消息丟失了怎么辦?

總之,一大堆疑問(wèn),看了計(jì)算機(jī)網(wǎng)絡(luò)之后,才豁然開(kāi)朗。自己也寫(xiě)了一篇評(píng)價(jià)不錯(cuò)的文章:一文讀懂一臺(tái)計(jì)算機(jī)是如何把數(shù)據(jù)發(fā)送給另一臺(tái)計(jì)算機(jī)的

所以這里,我是強(qiáng)烈建議大家學(xué)一下的,在面試中,計(jì)算機(jī)網(wǎng)絡(luò)也是高頻考點(diǎn),這里我大致總結(jié)一下一些必學(xué)協(xié)議以及面試高頻考點(diǎn):

1、http協(xié)議,包括:封裝格式,常見(jiàn)響應(yīng)碼,不同版本的區(qū)別,常見(jiàn)請(qǐng)求方法,存在哪些安全隱患,啥是無(wú)狀態(tài)協(xié)議等。

2、https協(xié)議:http 是明文傳輸,https 是加密安全的,需要知道 https 是如何加密的、數(shù)字證書(shū)如何形成,啥的對(duì)稱加密、非對(duì)稱加密。

3、TCP協(xié)議:三次握手、四次揮手、如何保證可靠傳輸、流量控制、擁塞控制。

4、UDP:這個(gè)大致了解即可,好像內(nèi)容比較少

5、DNS、ICMP、ARP、DHCP(我就不一個(gè)一個(gè)寫(xiě)了)

上面寫(xiě)的這些協(xié)議,我覺(jué)得是比較重要的,特別是在面試中。我公眾號(hào)文章也寫(xiě)了好幾篇這些協(xié)議的,大家可以去計(jì)算機(jī)基礎(chǔ)那個(gè)模塊找。

對(duì)于新手推薦視頻:可以看韓老師講的視頻,在嗶哩嗶哩搜索韓老師就可以找到 韓老師講搞笑《計(jì)算機(jī)網(wǎng)絡(luò)原理》。

推薦書(shū)籍:《計(jì)算機(jī)網(wǎng)絡(luò):自頂向下》、《圖解http》

我是先看了視頻,在看這兩本書(shū)的(文末我會(huì)給出電子版)。

大家也可以關(guān)注我的微信公眾號(hào):苦逼的碼農(nóng),第一時(shí)間獲取我的文章以及一些資料

二、操作系統(tǒng)

操作系統(tǒng)也是一門(mén)非常重要的知識(shí),在面試中也是問(wèn)的非常多(當(dāng)然,看公司,有些公司技術(shù)棧是 Java 的,可能問(wèn)的比較少)。對(duì)于操作系統(tǒng),要學(xué)的也挺多,例如:

啥是進(jìn)程,啥是線程,他們的本質(zhì)區(qū)別?我們運(yùn)行一個(gè)程序時(shí),數(shù)據(jù)放在哪里?代碼放在哪里?咋就還要分堆和棧?線程切換時(shí)是上下文是啥意思?

虛擬地址是什么鬼東西?線程需要那么多種狀態(tài)干啥子?什么是樂(lè)觀鎖、悲觀鎖?死鎖是怎么造成的?解決死鎖的策略有哪些?等等

有人說(shuō)學(xué)操作系統(tǒng)太他媽枯燥了,確實(shí)挺枯燥,不過(guò)說(shuō)實(shí)話,我還是學(xué)的挺有意思的,感覺(jué)可以學(xué)到很多種策略,一種比一種好,每次看完都是:我去,咋我就想不到呢。我覺(jué)得,對(duì)于前期,我們需要多參考別人的策略,看多了,有了一定的基礎(chǔ),慢慢形成自己的策略,總之,看這些書(shū),不單要掌握這些知識(shí)點(diǎn),更重要的是一種思維邏輯的提升

對(duì)于操作系統(tǒng),我總結(jié)了下面一些比較核心,面試相對(duì)容易被考到的。

1、進(jìn)程的通信方式(我寫(xiě)過(guò)一篇很不錯(cuò)的文章:記一次面試:進(jìn)程之間究竟有哪些通信方式? ---- 告別死記硬背)

2、進(jìn)程、線程究竟是由什么組成的?有哪些數(shù)據(jù)?

3、內(nèi)存管理,包括:虛擬內(nèi)存(重點(diǎn))、分頁(yè)、分段、分頁(yè)系統(tǒng)地址映射、內(nèi)存置換算法(重點(diǎn))。

4、死鎖的處理策略(死鎖預(yù)防、死鎖檢測(cè)與恢復(fù)、死鎖避免)

5、進(jìn)程調(diào)度算法

6、磁盤(pán)尋道算法

上面說(shuō)的這些,我認(rèn)為是比較重要的,如果你沒(méi)學(xué)過(guò),我相信學(xué)了之后,你可以學(xué)到很多東西,知識(shí)點(diǎn)只是其中之一。

推薦視頻:這個(gè)我沒(méi)看過(guò)視頻,所以想學(xué)的,我推薦去中國(guó)mooc大學(xué)找各大高校的課,也可以去國(guó)外找對(duì)應(yīng)的課。

推薦書(shū)籍:我看過(guò)的書(shū)籍是《操作系統(tǒng)—精髓與設(shè)計(jì)原理(第八版)》,不過(guò)大佬們都推薦《深入理解計(jì)算機(jī)操作系統(tǒng)(原書(shū)第三版)》,我看過(guò)目錄,感覺(jué)還不錯(cuò),這里也推薦這一本。不過(guò)對(duì)于零基礎(chǔ)的,我建議可以先看一本專門(mén)給小白看的書(shū):《程序是如何跑起來(lái)的》。

操作系統(tǒng)的學(xué)習(xí),還是挺枯燥的,不過(guò),只有把最難的啃過(guò)去,才能變的更加強(qiáng)大

數(shù)據(jù)庫(kù)(這里我用 MySQL)

在大學(xué)的課程里,一般都會(huì)開(kāi)設(shè)一門(mén)數(shù)據(jù)庫(kù)的課程,不過(guò)這門(mén)數(shù)據(jù)庫(kù)是沒(méi)有針對(duì)某一種數(shù)據(jù)庫(kù)語(yǔ)言的(例如 MySQL、Oracle)。不過(guò)我這里只講 MySQL的學(xué)習(xí),別問(wèn)為什么,問(wèn)就是我逃了二十分之十九的課。

把MySQL學(xué)好,還是特別重要的,千萬(wàn)不能停留在會(huì)用的層面上,而是應(yīng)該要了解一下原理,特別是對(duì)于要面試的同學(xué),會(huì)問(wèn)挺多原理,我每次被問(wèn)到 MySQL 我都會(huì)信心大增,因?yàn)槲译m然不大好寫(xiě) SQL,但是,知道挺多原理,記得騰訊、shopee面試時(shí),面完 MySQL,面試官好像對(duì)我刮目相看了。好了,不吹了,說(shuō)這些也是強(qiáng)大 MySQL 的重要性。下面就說(shuō)我學(xué)過(guò)的一些知識(shí)以及推薦的學(xué)習(xí)資料吧。

對(duì)于 MySQL,需要學(xué)的還挺多的,例如,

1、一條 sql 語(yǔ)句是如何執(zhí)行的?進(jìn)行更新時(shí)又是怎么處理的?

2、索引是如何實(shí)現(xiàn)的?多種引擎的實(shí)現(xiàn)區(qū)別?聚族索引,非聚族索引,二級(jí)索引,唯一索引、最左匹配原則等等(非常重要)

3、事務(wù)相關(guān):例如事務(wù)的隔離是如何實(shí)現(xiàn)的?事務(wù)是如何保證原子性?不同的事務(wù)看到的數(shù)據(jù)怎么就不一樣了?難道每個(gè)事務(wù)都拷貝一份視圖?MVCC 的實(shí)現(xiàn)原理(重要)等等。

4、各種鎖相關(guān),例如表鎖,行鎖,間隙鎖,共享鎖,排他鎖。這些鎖的出現(xiàn)主要是用來(lái)解決哪些問(wèn)題?(重要)

5、日志相關(guān):redolog,binlog,undolog,這些日志的實(shí)現(xiàn)原理,為了解決怎么問(wèn)題?日志也是非常重要的吧,面試也問(wèn)的挺多。

6、數(shù)據(jù)庫(kù)的主從備份、如何保證數(shù)據(jù)不丟失、如何保證高可用等等。

還有一些常用命令也要知道。

我覺(jué)得,只要你了解了以上的原理,那么對(duì)數(shù)據(jù)庫(kù)調(diào)優(yōu)的幫助是非常大的,上面除了第六點(diǎn),其他五點(diǎn),在應(yīng)屆生的面試中,極其高頻。

推薦書(shū)籍:連 sql 都不會(huì)寫(xiě)的,推薦《SQL必知必會(huì)》,接著推薦《MySQL技術(shù)內(nèi)幕:InnoDB存儲(chǔ)引擎》。

這里我必須推薦下極客時(shí)間的一個(gè)專欄:《MySQL實(shí)戰(zhàn)45講》,講的非常好,看完應(yīng)付面試,我覺(jué)得夠了,我每次面試 MySQL 幾乎都加分,離不開(kāi)這個(gè)專欄。如何你想要購(gòu)買(mǎi),可以在我的公眾號(hào)回復(fù)**『數(shù)據(jù)庫(kù)』**,我會(huì)給你發(fā)對(duì)應(yīng)的購(gòu)買(mǎi)鏈接(注意,這個(gè)可不是廣告哈,大家買(mǎi)不買(mǎi)看自己)

文章首發(fā)公眾號(hào)『苦逼的碼農(nóng)』,更多原創(chuàng),可搜索關(guān)注

四、數(shù)據(jù)結(jié)構(gòu)與算法

數(shù)據(jù)結(jié)構(gòu)與算法,我就不想多說(shuō)了,看我文章的都知道,我寫(xiě)的文章 80% 是數(shù)據(jù)結(jié)構(gòu)與算法相關(guān)的,重要性不用說(shuō)。我秋招最大的優(yōu)勢(shì)估計(jì)就是數(shù)據(jù)結(jié)構(gòu)與算法的掌握了。上面三門(mén)課程的學(xué)習(xí),基本也都是離不開(kāi)數(shù)據(jù)結(jié)構(gòu)的,對(duì)于如何學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)與算法,我覺(jué)得可以在寫(xiě)一篇文章了,所以數(shù)據(jù)結(jié)構(gòu)與算法的學(xué)習(xí),我這里不寫(xiě)了,可以關(guān)注我的文章,我明天會(huì)寫(xiě)一篇與算法相關(guān)的。

論面試,我覺(jué)得 操作系統(tǒng)+計(jì)算機(jī)網(wǎng)絡(luò)+數(shù)據(jù)庫(kù) + 算法 這三個(gè)是問(wèn)的最多的,所以我寫(xiě)的比較詳細(xì),對(duì)于學(xué)習(xí)計(jì)算機(jī)基礎(chǔ),不為了面試的話,我覺(jué)得下面的也及其重要。我分出來(lái)說(shuō),是為了那些要急著面試的人,可以重點(diǎn)學(xué)習(xí)下上面這四個(gè)。我的公眾號(hào)『苦逼的碼農(nóng)』也會(huì)經(jīng)常寫(xiě)這些知識(shí)的文章

五、匯編

我覺(jué)得,如何有時(shí)間,學(xué)習(xí)下匯編是必須的,學(xué)習(xí)了匯編,能夠更好著幫助我們知道計(jì)算機(jī)是如何處理程序代碼的,例如寄存器和內(nèi)存是如何使用的?循環(huán)、函數(shù)調(diào)用、數(shù)組是如何實(shí)現(xiàn)的?地址是怎么一回事?等等。

很多二進(jìn)制代碼是可以反編譯成匯編的,如何你會(huì)匯編,那么可以幫助我們更好著去理解一些東西。所以這里建議大家學(xué)習(xí)下匯編,并且要?jiǎng)邮謱?xiě)一些程序。

對(duì)于匯編的資料,我可能沒(méi)啥好推薦的,自己看的不多??催^(guò)兩本書(shū),對(duì)于入門(mén)的,我建議看 王爽的那本書(shū)《匯編語(yǔ)言(第三版)》,不過(guò)這本只適合入門(mén),如果想繼續(xù),可以看《匯編程序設(shè)計(jì)》。

編譯原理

說(shuō)實(shí)話,編譯原理還挺難,反正我覺(jué)得很難,不過(guò)有時(shí)間我覺(jué)得可以學(xué)學(xué),學(xué)了這個(gè)你可以知道我們的編譯器如何分析我們的代碼的,例如詞法分析,語(yǔ)法分析,語(yǔ)義分析等等。當(dāng)然,你未來(lái)可能會(huì)自己寫(xiě)個(gè)特定分析代碼的編譯器也不一定,這個(gè)時(shí)候,就更加需要學(xué)了。

對(duì)于學(xué)習(xí)的資料,我覺(jué)得可以看視頻 + 書(shū)。視頻的話中國(guó) mooc 大學(xué)搜索即可,書(shū)的話,說(shuō)時(shí)候,我也看的不多,只看過(guò)學(xué)校指定的教材,所以這里給不了多少建議,自己當(dāng)當(dāng)自行搜索,哪本熱門(mén)賣(mài)哪本勒。

總結(jié)

暫時(shí)先介紹這么多吧,說(shuō)實(shí)話,學(xué)了這些,不單單是多學(xué)了一門(mén)知識(shí),更重要的是可以提升你的羅輯思維,給你帶來(lái)更多的 idea。在之后我的公眾號(hào)里,我也是主要寫(xiě)計(jì)算機(jī)基礎(chǔ) + 算法。而這些,是值得每一個(gè)程序員去學(xué)習(xí)的,無(wú)論你是什么崗位。而且知識(shí)知識(shí)學(xué)了之后,你去學(xué)習(xí)其他知識(shí),我相信可以上手的更快滴。

上面涉及到的書(shū)籍,我也去給你們搜索來(lái)了電子版的,百度云鏈接很容易失效,如果你想獲取這些書(shū)籍,也可以關(guān)注我的公眾號(hào):帥地玩編程,后臺(tái)回復(fù)『計(jì)算機(jī)基礎(chǔ)』即可獲取,文章會(huì)首發(fā)于我的公眾號(hào),如果想第一時(shí)間看我的文章,也歡迎關(guān)注哦。

兄dei,如果覺(jué)得我寫(xiě)的不錯(cuò),不妨幫個(gè)忙

1、關(guān)注我的原創(chuàng)微信公眾號(hào)「帥地玩編程」,每天準(zhǔn)時(shí)推送干貨技術(shù)文章,專注于寫(xiě)算法 + 計(jì)算機(jī)基礎(chǔ)知識(shí)(計(jì)算機(jī)網(wǎng)絡(luò)+ 操作系統(tǒng)+數(shù)據(jù)庫(kù)+Linux),聽(tīng)說(shuō)關(guān)注了的不優(yōu)秀也會(huì)變得優(yōu)秀哦。

2、給俺點(diǎn)個(gè)贊唄,可以讓更多的人看到這篇文章,順便激勵(lì)下我,嘻嘻。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉