????本人目前研三档桃,就讀于*****學(xué)校,本碩同地蝶防,回顧自我往昔甚侣,再結(jié)合散落其他高校同學(xué)的學(xué)習(xí)軌跡,覺得剛學(xué)習(xí)計算機的同學(xué)可能會碰到各種各樣的問題和疑惑间学,所以從今天開始殷费,開始整理自己的學(xué)習(xí)筆記和心得發(fā)于簡書,記錄自己即將結(jié)束的大學(xué)生涯
????首先低葫,在我們學(xué)習(xí)任何一門學(xué)問之前详羡,得理清一個知識圖譜,然后按照上面實事求是嘿悬,一步步穩(wěn)扎穩(wěn)打進(jìn)行实柠,以下是我的學(xué)習(xí)路線
1.計算機語言
????這個問題是初學(xué)者(特別是大一、大二)一定會碰到的疑惑(我以前也是碰到過)善涨,據(jù)我所知窒盐,各高校對于基礎(chǔ)語言的教學(xué)都不同,c/c++钢拧、java蟹漓、c#是最多的,大家可能還會聽過什么python娶靡、javascript、php看锉、R等等姿锭,計算機語言繁多冗雜,以下是2017年語言排名:
所以伯铣,我們是不是就選擇排名第一的java入手學(xué)習(xí)呢呻此?注意,此處的排名只是使用人數(shù)的統(tǒng)計腔寡,并不代表語言本身的優(yōu)劣焚鲜。所以,接下來,我說說對于新手選擇語言的建議:
很多語言領(lǐng)域性比較強忿磅,個人而言糯彬,我們還是從c/c++或者java中選擇一個開始入手。語言之間的對比暫且不談葱她,很多文章書籍針對初學(xué)者上來就是各種語言的對比撩扒,然而,新手怎會看得懂吨些,徒增疑惑和壓力罷了搓谆。我以前是從c/c++入手的,以后的學(xué)習(xí)資料也以此為主豪墅。對于計算機語言來說泉手,我們要做的是堅持一條主線,把自己選擇的語言學(xué)精學(xué)深偶器,然后擴展發(fā)散斩萌,而不是今天這個語言看兩眼,明天那個語言看兩眼状囱∈趼悖總有人忽悠你說,計算機語言不重要亭枷,重要的是思想袭艺。這句話本身沒錯,但絕不代表你可以粗淺切換(真想拍死當(dāng)年忽悠我的人)叨粘。記住猾编,大部分功能所有語言都可以實現(xiàn)!但你得至少精于一門!(c語言隨便找本升敲、c++ primer 答倡、深度探索c++對象模型、effective c++)
2.操作系統(tǒng)
????這是一個有點龐雜的知識體系驴党,涉及的內(nèi)容廣且泛瘪撇,需要多年的經(jīng)驗和總結(jié)來體驗和感悟,對于這個領(lǐng)域港庄,最終我們要到達(dá)一種能調(diào)試系統(tǒng)源碼的程度倔既,這確實非常復(fù)雜,就算是現(xiàn)今工作多年的程序員們很多也是做不到的鹏氧,這也是區(qū)分真正高手和普通高手的一個瓶頸渤涌,對于新手,目前還是以看概念為主把还,以后我會慢慢解析实蓬。概念書籍一般高校的上課就可完成茸俭,但若是想要深入,還需要額外啃大量很厚的書籍安皱,我推薦《unix環(huán)境編程高級編程》调鬓,《深入理解LINUX內(nèi)核》等(ps:就算是很多研究生目前也是做不到的,這是一個長期而艱巨的任務(wù)练俐,可貫徹始終)袖迎,以后我會慢慢更新講解。很多人缺乏這方面的深入腺晾,導(dǎo)致基礎(chǔ)不牢燕锥。比如我吐槽很多年的一個梗,在你學(xué)完這門課之后悯蝉,別人問你归形,對于進(jìn)程線程你有什么理解?書上標(biāo)準(zhǔn)回答:進(jìn)程是具有一定獨立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次運行活動,進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨立單位.線程是進(jìn)程的一個實體,是CPU調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨立運行的基本單位. 一個進(jìn)程可以包含多個線程鼻由。好暇榴,這確實算是回答了,針對考試也沒問題蕉世。但只是表象的描述蔼紧,實質(zhì)的理解是什么呢?進(jìn)程在操作系統(tǒng)中到底是怎樣的一種存在狠轻?(ps:以前學(xué)習(xí)這的時候我總是很虛奸例,感覺太抽象,直到后來閱讀源碼向楼,想必大家或多或少也有相同感受)查吊。其實是以task_struct結(jié)構(gòu)體來實現(xiàn)(就是c語言中的一種結(jié)構(gòu)體),展開論述湖蜕,special offer就是你的(當(dāng)然逻卖,這有些托大,不過如果你回答到了這種程度昭抒,確實就證明你比別人的理解深刻评也,在面試中加分 ),不要局限于課本和考試灭返,要有一種打破砂鍋問到底的精神盗迟,追根溯源,方成大道婆殿。
3.計算機網(wǎng)絡(luò)
????以前我上課的時候老師講的是謝希仁的《計算機網(wǎng)絡(luò)》诈乒,我覺得這本書就是個類似導(dǎo)論簡介一樣的東西罩扇,多是概念的理解婆芦,然后有句話說得好--“紙上得來終覺淺怕磨,絕知此事要躬行∠迹”單是理解概念只能應(yīng)付應(yīng)付應(yīng)試教育肠鲫,記住,我們學(xué)習(xí)的是計算機或粮,概念映射不到程序导饲,和一條咸魚有什么區(qū)別!此處,我強烈推薦《unix網(wǎng)絡(luò)編程卷1》氯材、《unix網(wǎng)絡(luò)編程卷2》渣锦,我始終認(rèn)為,你有沒有真正學(xué)到網(wǎng)絡(luò)氢哮,在于你閉上眼睛時袋毙,能聯(lián)想到網(wǎng)絡(luò)間的運行方式,能想到代碼怎么寫冗尤。
4.數(shù)據(jù)結(jié)構(gòu)和算法
編程之美听盖、劍指offer、帕哑撸客網(wǎng)左秋云皆看、牛客網(wǎng)左程云講解視頻等背零。
????針對上述的每本書腰吟,我都會慢慢開始詳解(當(dāng)然目前推薦都是基礎(chǔ)而已,還有很多很多東西捉兴,后續(xù)將慢慢展開蝎困,期間還會穿插很多小例子來提起學(xué)習(xí)的激情和動力),暫且寫到這吧倍啥,以后不定期持續(xù)更新禾乘,多關(guān)注,多點贊~~