點擊上方“大魚機(jī)器人”,選擇“置頂/星標(biāo)公眾號”
福利干貨,第一時間送達(dá)!
本文源于知乎回答,文末點擊閱讀原文,即可查看原問題,以下為原文。
-正文-
在啃掉一本本計算機(jī)經(jīng)典書籍和寫下大量代碼以后。
疫情原因回不去學(xué)校,作為一個馬上畢業(yè),即將入職騰訊的大四生,分享一下自己的學(xué)習(xí)歷程吧。
本人在大學(xué)之前從未接觸過編程,最開始的編程學(xué)習(xí)還是在高考完后,從書店買了本C Primer Plus,然后暑假開始啃,前前后后也就看了幾十頁。
大一上的時候,來到了華中師范大學(xué),還沒有轉(zhuǎn)專業(yè)到計算機(jī),一直在自學(xué)C語言和看一些計算機(jī)入門書籍(編碼、計算機(jī)科學(xué)概論)。
當(dāng)時也很迷茫,不知道以后道路如何,所以也學(xué)了一些雜七雜八的東西(前端 python啥的),所幸的是,當(dāng)時堅持把C Primer Plus結(jié)結(jié)實實地精讀了一遍,而且?guī)缀蹙毩?xí)題都做了,算是比較好的開端。
大一下,轉(zhuǎn)專業(yè)到計算機(jī)了,開始自學(xué)數(shù)據(jù)結(jié)構(gòu),算法和C++,部分看完了 數(shù)據(jù)結(jié)構(gòu)與算法分析,并且把書上的數(shù)據(jù)結(jié)構(gòu)實現(xiàn)了一遍,記得當(dāng)時五月份給自己的flag是看完C++ Primer,然后每天上課看,晚飯吃完后也跑去七號樓刷書,最后囫圇吞棗似的看完了大部分。
大一暑假,txr大佬給我說他面試通過了華科的聯(lián)創(chuàng)團(tuán)隊Unique Studio,而且給我說他們團(tuán)隊都特別厲害,有些人在軍訓(xùn)的時候就把C++ Primer給蹲著看完了,當(dāng)時十分欽佩,幻想也能夠進(jìn)入貴團(tuán)隊。
于是打算在大二上的時候,去報名他們的秋招。所以,那個暑假在學(xué)校自學(xué),呆了五十多天。最初,拿起一本APUE,看了一章后感覺看不懂又放下了。
然后,又拿起一本紅色封面的算法第四版,這本書看完了,并且用C++把上面的算法都實現(xiàn)了一遍。另外,聽知乎大佬說CSAPP是必看的神書,當(dāng)時也懵懵懂懂地看了前面三章,做了lab。
為了學(xué)習(xí) linux,還看了一本叫 linux 命令行大全的書。武漢的夏天很熱,只能寂寞待在宿舍的我,打開了 LeetCode 的世界,寫了一百多道題。
大二上,十月,忐忑迎來了聯(lián)創(chuàng)的面試,前面兩輪都過了,直到其特色的“熬夜測試”環(huán)節(jié),因為實力不足+精力不足,測試敗北,沒有通過。
清晨七點,在回學(xué)校的公交車上思考自己不足,總結(jié)是知識體系仍然不夠完全,而且深度也不夠。后來這個學(xué)期有點“誤入歧途”的意思,入了 Machine Learning 的坑,記得當(dāng)時花了好幾個月刷完西瓜書和吳恩達(dá)機(jī)器學(xué)習(xí)課程的講義(真佩服當(dāng)時的毅力,都是英文和公式推導(dǎo)),后來想了想,ML/DL這個東西有點玄學(xué),于是毅然決定成為一名做工程的程序員。
總的來說,雖然這個學(xué)期的時間都投入到 ML 的學(xué)習(xí)中,沒有學(xué)習(xí)工程方面的東西,只有用python寫了一點好玩的爬蟲,但是給了我以后堅定走工程方向的決心吧。
大二下,這個學(xué)期是打下計算機(jī)知識基礎(chǔ)的關(guān)鍵時期。從知乎找了一系列書單,看完了CSAPP(做了lab,為了bomb lab還通宵了,強(qiáng)迫癥想讓自己把炸彈都拆了)、半本算法導(dǎo)論、effective C++、計算機(jī)網(wǎng)絡(luò)系統(tǒng)方法(前三章)、部分TCP/IP詳解等,做了一些項目,比如正則引擎(這個是參考了輪子哥的教程)等等,嘗試寫JSON庫(未遂)。
其實,因為學(xué)校只是一個普通211,找到好工作的學(xué)長學(xué)姐先例很少,一直是沒有信心自己能去大廠,直到當(dāng)時了解到孟永康學(xué)長在春招收割了一系列offer后,才有了些許信心,相信自己如果能夠像他那樣努力,那么也能夠找到好工作(感謝myk學(xué)長那時的鼓勵和指導(dǎo))。
所以,定下了一年把自己水平提升到能夠在大三下春招的時候拿下大廠offer的目標(biāo)。
大二暑假和大三上也一直為這個目標(biāo)奮斗,補(bǔ)上了APUE、部分UNP、深度探索C++對象模型、STL源碼剖析、操作系統(tǒng)概念、操作系統(tǒng)真象還原、Linux多線程服務(wù)端編程、部分C++ template、部分C++ Concurrency in Action等書籍。
然后,也一直沒有放棄刷題,LeetCode寫到了三百多道。同時也做了一些項目,跟著操作系統(tǒng)真象還原寫的操作系統(tǒng)、簡單的協(xié)程庫,閱讀了一些優(yōu)秀的開源項目,SGI STL、muduo、libgo、libco等。
中途還對haskell產(chǎn)生過興趣,打印了一本Learn Yourself Haskell For Great Good,看完后感覺坑太深,還是專注找工作吧,haskell對我一直都有很強(qiáng)的吸引力,但是這種也只能作為愛好吧。
另外,編譯器也是有這種魔力,看了部分編譯原理(龍書)、部分現(xiàn)代編譯原理(虎書)和部分Engineering a Compiler,多次嘗試寫自己的編譯器,多次未遂(不過現(xiàn)在有空了,在補(bǔ)上之前的爛尾項目)。當(dāng)年的筆記哈哈:
部分學(xué)習(xí)筆記
時間到了12月份,9號樓某個自習(xí)室內(nèi),txr大佬一直鼓勵我去投簡歷找實習(xí),本來我一直畏畏縮縮,對自己不太有信心,被鼓勵后想著投就投吧。當(dāng)時投了字節(jié)跳動和momenta的實習(xí),面試都比較順利,于是在大三上就在字節(jié)跳動開始了愉快的實習(xí),比自己的計劃早了大半年。
當(dāng)時為了準(zhǔn)備面試,看了好多牛客網(wǎng)的面經(jīng),查漏補(bǔ)缺式地補(bǔ)齊自己的知識盲區(qū)。
大三下,基本都是在實習(xí),學(xué)習(xí)了很多工程實踐上的東西,接觸了go的技術(shù)棧,并且對devops和軟件工程方面有了認(rèn)知,包括代碼管理、發(fā)布流程、微服務(wù)啥的。
然后實習(xí)的時候騎驢找馬,找到了騰訊的暑期實習(xí)。因為這個時候沒有了找工作的壓力,所以開始學(xué)一些自己感興趣的東西,包括Rust(至今水平還是不太行)、分布式系統(tǒng)(DDIA、MIT6.824等),零零散散學(xué)了點東西。
大三暑假,騰訊實習(xí)了兩個月,開始學(xué)習(xí)kubernetes、各種中間件等實際業(yè)務(wù)用到的東西,這個時候就感覺擁有到扎實的計算機(jī)基礎(chǔ)是最重要的東西。
最后,順利拿到了騰訊轉(zhuǎn)正和字節(jié)跳動的秋招offer,兩家都給的比較高,選擇了工作體驗更喜歡的騰訊哈哈。
總的來說,學(xué)習(xí)計算機(jī)是需要積累的,花一兩年時間啃下那些厚厚的經(jīng)典書籍后,才能構(gòu)建自己的知識體系,然后閱讀大量優(yōu)秀源碼,做一些有趣的項目,編程能力就能突飛猛進(jìn)啦。
現(xiàn)在回頭來看,大學(xué)時光真是如此寶貴,這是人生中為數(shù)不多可以靜心學(xué)習(xí)的一段時間,可以不用考慮任何其他事情,每天學(xué)習(xí)十多個小時。
部分藏書
往期好文合集
模塊化編程到底有多重要? 厲害了!華為繼鴻蒙OS后,即將發(fā)布國產(chǎn)編程語言,打破國外壟斷!2020年9月編程語言排行榜:C語言繼續(xù)第一,你站哪個?
最 后
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!