都知道計算機(jī)基礎(chǔ)很重要绅项,但是到底該怎么學(xué)呢?

很多程序員都知道學(xué)習(xí)計算機(jī)基礎(chǔ)知識非常的重要比肄,但是面對大量枯燥的理論知識該如何去學(xué)快耿,如何有節(jié)奏的推進(jìn)囊陡,從中得到一些正面的反饋,我覺得很多人都沒有想清楚掀亥。我曾經(jīng)也有這樣的困惑撞反,于是我翻閱很多大牛博客和付費(fèi)的專欄,從中找到一些很好的建議搪花,也用親身經(jīng)歷證明這些建議確實是有效的遏片。

不要讓你所學(xué)的概念變成孤島,概念清晰撮竿,聯(lián)系緊密才有戰(zhàn)斗力

先講一個故事吮便,2000 年我從昆明到上海,開始滬飄的歲月幢踏。剛到上海髓需,找不到好工作,只能大量地學(xué)習(xí)和看書房蝉,C/C++/Java僚匆,TCP/IP,Windows 編程惨驶,Unix 編程白热,等等。結(jié)果呢粗卜,書太多了屋确,根本看不過來。我想要更多地掌握知識续扔,結(jié)果我發(fā)現(xiàn)以死記硬背的方式根本就是在使蠻力學(xué)習(xí)攻臀,我很難在很短的時間內(nèi)學(xué)習(xí)很多的知識。于是我自己發(fā)明了一種叫“聯(lián)想記憶法”的方法纱昧,比如刨啸,在學(xué)習(xí) C++ 的時候,面對《C++ Primer》這種厚得不行的書识脆,我就使用聯(lián)想記憶法设联。我把 C++ 分成三部分。第一部分是 C++ 是用來解決 C 語言的問題的灼捂,那么 C 語言有什么問題呢离例?指針、宏悉稠、錯誤處理宫蛆、數(shù)據(jù)拷貝…… C++ 用什么技術(shù)來解決這些問題呢?第二部分是 C++ 的面向?qū)ο筇匦裕悍庋b的猛、繼承耀盗、多態(tài)想虎。封裝,讓我想到了構(gòu)造函數(shù)叛拷、析構(gòu)函數(shù)等舌厨。構(gòu)造函數(shù)讓我想到了初始化列表,想到了默認(rèn)構(gòu)造函數(shù)胡诗,想到了拷貝構(gòu)造函數(shù)邓线,想到了 new……多態(tài)淌友,讓我想到了虛函數(shù)煌恢,想到了 RTTI,RTTI 讓我想到了 dynamic_cast 和 typeid 等震庭。第三部分是 C++ 的泛型編程瑰抵。我想到了 template,想到了操作符重載器联,想到了函數(shù)對象二汛,想到 STL,想到數(shù)據(jù)容器拨拓,想到了 iterator肴颊,想到了通用算法,等等渣磷。于是婿着,我通過“順藤摸瓜”的方式,從知識樹的主干開始做廣度或是深度遍歷醋界,于是我就得到了一整棵的知識樹竟宋。這種“順藤摸瓜”的記憶方式讓我記住了很多知識。最重要的是形纺,當(dāng)出現(xiàn)一些我不知道的知識點時丘侠,我就會往這棵知識樹上掛,而這樣一來逐样,也使得我的學(xué)習(xí)更為系統(tǒng)和全面蜗字。這種畫知識圖的方式可以讓你從一個技術(shù)最重要最主干的地方出發(fā)開始遍歷所有的技術(shù)細(xì)節(jié),也就是畫地圖的方式脂新。如果你不想在知識的海洋中迷路挪捕,你需要有一份地圖,所以戏羽,學(xué)習(xí)并不是為了要記憶那些知識點担神,而是為了要找到一個知識的地圖,你在這個地圖上能通過關(guān)鍵路徑找到你想要的答案始花。

———摘自左耳耗子陳皓

我之前在學(xué)習(xí)java語言時也犯了概念孤島的錯誤妄讯,Java常用的關(guān)鍵字不下50個孩锡,我當(dāng)時非常簡單粗爆的想要記住每個關(guān)鍵字用法,結(jié)果就陷入了記了忘亥贸,忘了記的惡性循環(huán)中躬窜。殊不知這些關(guān)鍵字并不是憑空出現(xiàn)的,而是作者依據(jù)多年的軟件開發(fā)經(jīng)驗還使用者的反饋來設(shè)計炕置,所有的關(guān)鍵字都可以被劃分為幾大使用場景荣挨,例如:訪問控制(private 私有的;protected 受保護(hù)的朴摊;public 公共的)默垄,錯誤處理(catch 處理異常;finally 有沒有異常都執(zhí)行甚纲;throw 拋出一個異常對象口锭;throws 聲明一個異常可能被拋出介杆;try 捕獲異常)鹃操,基本類型(boolean 布爾型;byte 字節(jié)型春哨;char 字符型荆隘;double 雙精度;float 浮點赴背;int 整型椰拒;long 長整型;short 短整型癞尚;變量引用)等等耸三。這些應(yīng)用場景在腦海中就像一個個索引,在實踐中需要的時候浇揩,再按圖索驥去查找仪壮,非常的便捷與高效。

其實上面提到的學(xué)習(xí)方法胳徽,并非僅僅是經(jīng)驗之談积锅,這背后是由相關(guān)的理論支撐的。在很多講解大腦機(jī)制或記憶力的書籍中都提到一個相似的觀點养盗。

大腦中并沒有一個單獨(dú)的區(qū)域或結(jié)構(gòu)來存儲‘記憶’缚陷,曾有這樣一種假設(shè),人類提取記憶就是各個記憶碎片的‘重組’的過程往核。賦予隨機(jī)無序的信息以系統(tǒng)結(jié)構(gòu)箫爷,讓毫無意義的信息變得更加有意義,才能使那些容易遺忘的東西變得難以忘記。

自問自答虎锚,層層深入

舉個我學(xué)習(xí)計算機(jī)網(wǎng)絡(luò)的例子硫痰,我是以TCP/IP協(xié)議族作為起點的,通過學(xué)習(xí)窜护,我大致理解了消息傳遞的過程效斑,消息先從應(yīng)用層→傳輸層→網(wǎng)絡(luò)層→數(shù)據(jù)鏈路層→物理層經(jīng)過層層包裝,拆散柱徙,一幀一幀的由傳輸介質(zhì)把消息發(fā)送給目標(biāo)計算機(jī)缓屠,然后目標(biāo)計算機(jī)在由物理層→數(shù)據(jù)鏈路層→網(wǎng)絡(luò)層→傳輸層→應(yīng)用層,經(jīng)過層層解開包裝护侮,最后到應(yīng)用層還原消息敌完。這時候我腦海中的計算機(jī)的通信模型就像兩座沒有天橋的雙子塔,消息從A塔走到B塔必須從A塔頂層走到走到B塔后再從一層上到頂層概行。這個模型非常的簡潔明了蠢挡,也很好理解弧岳,但這只是一個骨架凳忙,真正遇到實際的問題,單靠這個模型是無法解決的禽炬。還有很多細(xì)節(jié)需要完善涧卵,這個過程是非常漫長的,需要你不停的自問自答腹尖,大量閱讀相關(guān)書籍柳恐,把這些新的概念掛到這個框架上。我舉一個如何通過自問自答和動手實踐來完善細(xì)節(jié)例子热幔,當(dāng)家都對ping這個命令和熟悉乐设,我們通過它來判斷本機(jī)和目標(biāo)機(jī)器能不能通訊。那么我們ping一臺同一個局域網(wǎng)內(nèi)的機(jī)器中間經(jīng)歷哪些過程呢绎巨?當(dāng)你需要詳細(xì)去講述這個過程的時候會突然的發(fā)現(xiàn)近尚,使用單純的使用雙子塔模型好像又不那么清晰了。首先第一點场勤,你會想戈锻,消息經(jīng)過五層協(xié)議層層封裝后,是如何發(fā)出去的呢和媳?這時候你通過查資料了解到格遭,局域網(wǎng)一般是通過一種叫交換機(jī)的設(shè)備將不同的機(jī)器連接到一起組成的。而交換機(jī)是一種二層設(shè)備留瞳,只有物理層和數(shù)據(jù)鏈路層拒迅,它能根據(jù)mac地址將消息轉(zhuǎn)發(fā)到目標(biāo)機(jī)器。這時,你會感覺清晰一點璧微,但是骤竹,你很快又會發(fā)現(xiàn)一個新的疑點。我ping的是IP地址啊往毡,那電腦是如何知道目標(biāo)的MAC地址的呢蒙揣?于是,你帶著問題去查找了相關(guān)的資料开瞭,后來你發(fā)現(xiàn)電腦并沒有什么神奇的黑魔法懒震,能夠預(yù)知目標(biāo)的mac地址,它和你一樣嗤详,不懂就問个扰。那它是如何問的呢?這時就引入了一個叫ARP協(xié)議的東西葱色。首先電腦會以廣播的方式發(fā)送一個帶有源IP源mac地址递宅,和目標(biāo)ip的數(shù)據(jù)包到局域網(wǎng)中,相當(dāng)于吼一聲苍狰,IP是xxxx的mac地址是什么办龄?這時如果目標(biāo)機(jī)器接收到這條廣播之后,拿過來一看淋昭,發(fā)現(xiàn)IP地址是自己的俐填,就會向發(fā)送這條廣播的電腦回復(fù),告訴它自己的mac地址是xxxx翔忽。于是發(fā)送ARP協(xié)議的電腦就知道對方的mac,它們倆就可以愉快的交流了英融,電腦還會自動去建立和維護(hù)一張IP地址和mac地址的映射表,這樣在短時間內(nèi)它們在通訊時歇式,只需要發(fā)一次ARP廣播就可以了驶悟。你看,通過這次自問自答和查找相關(guān)的資料是不是又完善了很多細(xì)節(jié)呢材失。我們對局域網(wǎng)內(nèi)信息如何傳輸?shù)牧私獾母釉敿?xì)了痕鳍,還引入了一些新的概念,例如:交換機(jī)豺憔,ARP協(xié)議额获,廣播,等等恭应。學(xué)習(xí)就是這么一個先了解大致的框架抄邀,然后再通過不停的提出問題解決問題,在解決問題中完善細(xì)節(jié)昼榛,層層深入的過程境肾。如果這時你覺得還不夠清晰剔难,那就動手實踐一下吧,給你介紹一個網(wǎng)絡(luò)分析神器——wireshark奥喻,他能捕捉網(wǎng)絡(luò)中的數(shù)據(jù)包偶宫,用圖形界面將其展示出來,非常的清晰和直觀环鲤。自己動手配置一個網(wǎng)絡(luò)實驗室也很簡單纯趋,只需要找到兩臺能上網(wǎng)的機(jī)器,可以是電腦或者手機(jī)冷离,在加上一個家用的路由器吵冒,就可以組成一個局域網(wǎng)啦。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末西剥,一起剝皮案震驚了整個濱河市痹栖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瞭空,老刑警劉巖揪阿,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異咆畏,居然都是意外死亡南捂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進(jìn)店門鳖眼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來黑毅,“玉大人,你說我怎么就攤上這事钦讳。” “怎么了枕面?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵愿卒,是天一觀的道長。 經(jīng)常有香客問我潮秘,道長琼开,這世上最難降的妖魔是什么祟印? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任伦泥,我火速辦了婚禮,結(jié)果婚禮上灰羽,老公的妹妹穿的比我還像新娘躏精。我一直安慰自己渣刷,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布矗烛。 她就那樣靜靜地躺著辅柴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上碌嘀,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天涣旨,我揣著相機(jī)與錄音,去河邊找鬼股冗。 笑死霹陡,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的止状。 我是一名探鬼主播穆律,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼导俘!你這毒婦竟也來了峦耘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤旅薄,失蹤者是張志新(化名)和其女友劉穎辅髓,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體少梁,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡洛口,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了凯沪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片第焰。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖妨马,靈堂內(nèi)的尸體忽然破棺而出挺举,到底是詐尸還是另有隱情,我是刑警寧澤烘跺,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布湘纵,位于F島的核電站,受9級特大地震影響滤淳,放射性物質(zhì)發(fā)生泄漏梧喷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一脖咐、第九天 我趴在偏房一處隱蔽的房頂上張望铺敌。 院中可真熱鬧,春花似錦屁擅、人聲如沸偿凭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽笔喉。三九已至取视,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間常挚,已是汗流浹背作谭。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留奄毡,地道東北人折欠。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像吼过,于是被迫代替她去往敵國和親锐秦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,700評論 2 345