1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        帥地吐血整理:那些讓你起飛的計(jì)算機(jī)基礎(chǔ)知識(shí)

        共 4124字,需瀏覽 9分鐘

         ·

        2021-09-02 16:46

        我公眾號(hào)里的文章,寫(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ǔ)充,文章涉及的資料文末都會(huì)提供。

        一、計(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)電腦啥線(xiàn)路也沒(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. MTU,MAC地址,以太網(wǎng)協(xié)議。

        2. 廣播與 ARP 協(xié)議

        網(wǎng)絡(luò)層

        1. ip 地址分類(lèi)

        2. IP 地址與 MAC 地址區(qū)別

        3. 子網(wǎng)劃分,子網(wǎng)掩碼

        4. ICMP 協(xié)議及其應(yīng)用

        5. 路由尋址

        6. 局域網(wǎng),廣域網(wǎng)區(qū)別

        傳輸層(主要就是 TCP)

        1. TCP首部報(bào)文格式(SYN、ACK、FIN、RST必須知道)

        2. TCP滑動(dòng)窗口原理,TCP 超時(shí)重傳時(shí)間選擇

        3. TCP 擁塞控制,TCP 流量控制

        4. TCP 三次握手與四次揮手以及狀態(tài)碼的變化

        5. TCP連接釋放中TIME_WAIT狀態(tài)的作用

        6. SYN 泛洪攻擊

        7. TCP 粘包,心跳包

        8. UDP 如何實(shí)現(xiàn)可靠傳輸

        9. UDP 與 TCP 的區(qū)別

        10. UDP 以及 TCP 的應(yīng)用場(chǎng)景

        應(yīng)用層

        1. DNS 原理以及應(yīng)用

        2. HTTP 報(bào)文格式,HTTP1.0、HTTP1.1、HTTP2.0 之間的區(qū)別

        3. HTTP 請(qǐng)求方法的區(qū)別:GET、HEAD、POST、PUT、DELETE

        4. HTTP 狀態(tài)碼

        5. HTTP 與 HTTPS 的區(qū)別

        6. 數(shù)字證書(shū),對(duì)稱(chēng)加密與非對(duì)稱(chēng)加密

        7. cookie與session區(qū)別

        8. 輸入一個(gè)URL到顯示頁(yè)面的流程(越詳細(xì)越好,搞明白這個(gè),網(wǎng)絡(luò)這塊就差不多了)

        上面寫(xiě)的這些協(xié)議,我覺(jué)得是比較重要的,特別是在面試中。之前寫(xiě)過(guò)一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)入門(mén)教程:別看教材了,帥地熬夜肝了一份計(jì)算機(jī)網(wǎng)絡(luò)極簡(jiǎn)入門(mén)教程

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

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

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

        二、操作系統(tǒng)

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

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

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

        大致就是如下知識(shí)

        1. 進(jìn)程與線(xiàn)程區(qū)別
        2. 線(xiàn)程同步的方式:互斥鎖、自旋鎖、讀寫(xiě)鎖、條件變量
        3. 互斥鎖與自旋鎖的底層區(qū)別
        4. 孤兒進(jìn)程與僵尸進(jìn)程
        5. 死鎖及避免
        6. 多線(xiàn)程與多進(jìn)程比較
        7. 進(jìn)程間通信:PIPE、FIFO、消息隊(duì)列、信號(hào)量、共享內(nèi)存、socket

        8. 管道與消息隊(duì)列對(duì)比

        9. fork進(jìn)程的底層:讀時(shí)共享,寫(xiě)時(shí)復(fù)制

        10. 線(xiàn)程上下文切換的流程

        11. 進(jìn)程上下文切換的流程

        12. 進(jìn)程的調(diào)度算法

        13. 阻塞IO與非阻塞IO

        14. 同步與異步的概念

        15. 靜態(tài)鏈接與動(dòng)態(tài)鏈接的過(guò)程

        16. 虛擬內(nèi)存概念(非常重要)

        17. MMU地址翻譯的具體流程

        18. 缺頁(yè)處理過(guò)程

        19. 缺頁(yè)置換算法:最久未使用算法、先進(jì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ǔ)的,我建議可以先看一本專(zhuān)門(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ì)信心大增。

        記得騰訊、shopee面試時(shí),面完 MySQL,面試官好像對(duì)我刮目相看了。好了,不吹了,說(shuō)這些也是強(qiáng)大 MySQL 的重要性。下面就說(shuō)我學(xué)過(guò)的一些知識(shí)以及推薦的學(xué)習(xí)資料吧。

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

        1、一條 sql 語(yǔ)句是如何執(zhí)行的?也就是說(shuō),從客戶(hù)端執(zhí)行了一條 sql 命令,服務(wù)端會(huì)進(jìn)行哪些處理?(例如驗(yàn)證身份,是否啟用緩存啥的)。

        2、索引相關(guān):索引是如何實(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ù)不丟失、如何保證高可用等等。

        7、一些故障排查的命令,例如慢查詢(xún),sql 的執(zhí)行計(jì)劃,索引統(tǒng)計(jì)的刷新等等。

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

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

        數(shù)據(jù)結(jié)構(gòu)與算法,我就不想多說(shuō)了,看我文章的都知道,,重要性不用說(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)與算法,可以看這篇:【方法篇】帥地也學(xué)過(guò)幾年算法,談一談「如何學(xué)好算法」。

        五、匯編

        我覺(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í)話(huà),編譯原理還挺難,反正我覺(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ū)。視頻的話(huà)中國(guó) mooc 大學(xué)搜索即可,書(shū)的話(huà),說(shuō)時(shí)候,我也看的不多,只看過(guò)學(xué)校指定的教材,所以這里給不了多少建議,自己當(dāng)當(dāng)自行搜索,哪本熱門(mén)賣(mài)哪本勒。

        七、計(jì)算機(jī)組成原理

        其實(shí)組成原理我覺(jué)得也是挺難的,如果你數(shù)字電路學(xué)的比較好,可能會(huì)稍微簡(jiǎn)單一些,記得當(dāng)時(shí)這門(mén)課的最后一個(gè)任務(wù)就是自己做一個(gè) 8 位的 CPU,通過(guò)做這個(gè) CPU,真的漲了 很多知識(shí)。

        對(duì)于這門(mén)課的學(xué)習(xí),我覺(jué)得重點(diǎn)就是要弄明白整數(shù)啊,浮點(diǎn)數(shù)啊,這些在計(jì)算機(jī)是如何存儲(chǔ)的,兩個(gè)數(shù)相加是如何通過(guò)電路的與或門(mén)操作的。

        個(gè)人覺(jué)得,跟著學(xué)校的課本來(lái)就行,不用學(xué)的太深入,面試問(wèn)的也不多。

        八、學(xué)習(xí)順序

        個(gè)人覺(jué)得算法,計(jì)算機(jī)網(wǎng)絡(luò),操作系統(tǒng)和 MySQL 是剛需,這幾門(mén)要先學(xué),如果是大一大二,推薦優(yōu)先學(xué)算法,然后計(jì)算機(jī)網(wǎng)絡(luò),操作系統(tǒng)和數(shù)據(jù)庫(kù)這些,也可以并行學(xué)習(xí)。

        至于匯編,編譯原理和計(jì)算機(jī)組成原理,其實(shí)面試考的不多,可以有時(shí)間再學(xué),沒(méi)時(shí)間就先放一放。

        總結(jié)

        暫時(shí)先介紹這么多吧,說(shuō)實(shí)話(huà),學(xué)了這些,不單單是多學(xué)了一門(mén)知識(shí),更重要的是可以提升你的羅輯思維,給你帶來(lái)更多的 idea。

        然后上面的書(shū)籍我也整理好了,但是書(shū)籍經(jīng)常百度云失效 + 版權(quán)風(fēng)險(xiǎn),大家如果需要,可以加我的企業(yè)微信,通過(guò)好友請(qǐng)求后,發(fā)送「資源」,會(huì)自動(dòng)拉你進(jìn)群,之后群公告文檔領(lǐng)取。

        記住,好友請(qǐng)求通過(guò)后,發(fā)送「資源」兩個(gè)字,一定要按照要求來(lái),否則不會(huì)拉,為了節(jié)省帥地的時(shí)間,大家進(jìn)去記得看公告,資源都在公告里。

        一定要看公告,資料在公告文檔

        一定要看公告,資料在公告文檔

        一定要看公告,資料在公告文檔

        瀏覽 92
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            西西特级444大胆高清张悠雨 | 国在线播放 | 男人天堂无码 | 精品国产乱码久久久久久蜜坠欲下 | 艹在线| 91视频aiai | 亚洲五月天中文字幕在线播放 | 国产色情aⅴ一级毛片 | 亚洲精品少妇久久久久久海角社区 | 扒开腿狂躁女人爽出白浆2 |