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





