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