計算機碩士如何規(guī)劃三年的學習與生活

結束了為期三個多月的秋招,決定在學生生涯的最后階段對自己的技術棧做一個整理,第一篇首先從碩士三年的學習規(guī)劃談起吧秋茫。

先做一個簡單的自我介紹,博主本人就讀于上海某高校計算機專業(yè)乃秀,科班出身肛著。熱愛存儲與虛擬化技術,在相關領域有一定的技術積累跺讯,包括數(shù)據(jù)庫枢贿、rocksdb存儲引擎、文件系統(tǒng)刀脏、NVMe driver局荚、虛擬化以及kernel by pass技術。在秋招中有幸獲得阿里愈污、騰訊耀态、百度、Intel暂雹、網(wǎng)易互娛首装、金山云等公司的offer。在此希望能夠為未來的同學介紹一些碩士期間的學習路線杭跪,希望大家能夠有效利用三年的學習時間仙逻,積累自己的技術棧驰吓。

1. 確立目標

大家剛入學,首先要對自己未來三年后的規(guī)劃有明確的目標系奉。對于一般人來說(大神除外)棚瘟,無非主要關注兩種選擇,一是未來能夠加入到喜歡的公司繼續(xù)搬磚做工程技術(工程型)喜最,另外一種是希望能夠做research,參與最前沿的科研項目庄蹋,將來能夠?qū)⒆约旱膶W術成果發(fā)表在頂會上(學術型)瞬内。只要大家能夠確定自己的目標,制定相應的學習計劃限书,堅持下去虫蝶,就一定會有收獲。當然倦西,在自己剛入學還在迷茫時候能真,可以試著嘗試先選定一個努力的目標,只有試了才知道自己適不適合扰柠。博主本人屬于工程學術兼?zhèn)湫头垲恚唧w的學習規(guī)劃后面將詳細介紹。

2. 制定規(guī)劃

在這不具體介紹每個專業(yè)的學習規(guī)劃是什么卤档,因為計算機方向?qū)嵲谔嗔蓑茫瑢τ诿恳粋€方向都要涉及到特別多的技術積累,在這是講不清的劝枣,況且博主對其它方向也不是特別熟悉汤踏。在這里主要告訴大家,該如何摸索自己的學習規(guī)劃舔腾,坦白的說溪胶,就是在這個方向上我如何學哪些東西,才能在將來秋招大隊中顯示出自己獨特的地方稳诚。在此以博主自己的“存儲”方向為例哗脖,來說明如何摸索。

基礎知識
基礎知識相當重要扳还,主要是計算機相關的必修課懒熙,如語言相關、數(shù)據(jù)結構普办、操作系統(tǒng)工扎、數(shù)據(jù)結構、計算機網(wǎng)絡等衔蹲≈铮基本上對于所有的計算機方向來說呈础,都離不開上述基礎知識。雖然說把這些學好橱健,貌似還做不了什么成就出來而钞,但沒有這些基礎知識是萬萬不能的。然而拘荡,大多數(shù)同學對基礎知識還有很大的誤區(qū)臼节,認為所從事的工作就是以語言劃分為主的,本科加碩士七年時間珊皿,只要熟練掌握一門語言网缝,例如Java,未來就能勝任一份工作蟋定,這是遠遠不夠的粉臊。編程語言是計算機學科中最重要的一項基礎知識,也是做其它事情的先前條件驶兜。就好像剛出生的小孩子一樣扼仲,學會了走路說話,似乎還不能自己獨立做一些事情抄淑,然而如果連說話走路都還沒有達到的話屠凶,還說明還是需要很多的時間來成長的。其實編程語言是大二就應該熟練掌握的知識肆资,而且至少需要會三種不同的編程語言阅畴。個人認為,語言只是基礎迅耘,必須熟練掌握贱枣,沒有哪個語言好,哪個語言不好颤专。各類編程語言(C/C++纽哥、Java、Python栖秕、Shell春塌、Golang等)都是相通的,不存在會不會的問題簇捍,團隊需要什么只壳,老板需要什么,大家就用什么暑塑,即使不熟悉的吼句,看個兩三天基本就應該可以上手工作了。

以存儲方向為例事格,這是我遇到的各種編程語言的使用場景:
C:底層基本都是用C寫的(例如文件系統(tǒng)惕艳、driver)搞隐,C是我個人使用最多的語言。
C++:由于喜歡鉆研數(shù)據(jù)庫的源碼远搪,因此如果要自己動手修改MySQL內(nèi)核劣纲、Rocksdb引擎等,都必須掌握C++谁鳍。否則源碼看不懂癞季,自己改內(nèi)核也無從下手。
Python:因為在論文中倘潜,博主經(jīng)常會遇到一些算法方面的研究绷柒,因此在模擬各類不同的算法時,經(jīng)常會選用Python最為測試語言窍荧。
Shell:由于經(jīng)常操作Linux,對于一些經(jīng)常使用的集成測試恨憎,都會手寫shell腳本來完成蕊退。并且針對一些有規(guī)律的重復性操作,自己經(jīng)常會寫一些shell腳本來控制憔恳,大大提高了自己的工作效率瓤荔。
Golang:由于在深圳某T公司實習的時候,項目需要優(yōu)化Kafka的客戶端钥组,因此使用golang進行重構输硝,雖然之前沒接觸過golang,但看了一天教程程梦,基本第二天就直接開始用golang來coding了点把。

此外還有數(shù)據(jù)結構、操作系統(tǒng)等屿附,此處不再多敘述郎逃,如果在基礎知識方面還很欠缺的話,建議多花額外的時間補習挺份。

必備工具
熟練掌握各類工具真的是事倍功半褒翰。最早的時候沒有在這方面投入很多精力,導致失去了很多東西匀泊。因此建議大家在自己方向上的必備工具一定要花時間去學習优训,這是未來在效率上和別人競爭的神器。下面還是以我的專業(yè)"存儲"方向為例各聘,來說明工具的重要性揣非。

在做存儲相關的技術時,經(jīng)常會遇到行一些奇葩的bug躲因,例如I/O hang妆兑,segmentation fault等魂拦。此外,存儲方面大部分的主要關注點是性能的提升搁嗓,因此不同的類型的性能評估測試也是必備項芯勘。此外,對于經(jīng)常寫代碼的同學來說腺逛,好的編輯器荷愕,例如vim,各種調(diào)試棍矛、測試工具都是必不可少的安疗。

  1. fio: 大名鼎鼎的fio,用來直接評估裸盤以及文件系統(tǒng)的I/O性能够委。
  2. perf:可以用來生成火焰圖分析程序中的熱點函數(shù)以及CPU使用率等荐类,直觀的分析出程序中的瓶頸以及問題所在。
  3. cgroup:在做性能評估的時候茁帽,經(jīng)常會遇到為了達到真實的使用場景玉罐,用于一些資源限制,系統(tǒng)資源分配管理的工具潘拨。
  4. gdb:Linux下編程吊输,尤其是系統(tǒng)軟件,都離不開gdb的調(diào)試铁追。尤其經(jīng)常遇到segmentation fault的時候季蚂。熟練的使用gdb決定了debug的速度。
  5. valgrind:程序檢測工具琅束,就算再嚴謹?shù)娜伺てǎy免會遇到一些疏忽的意向不到的錯誤,例如memory leak涩禀。因此疯搅,熟練使用這類工具能夠保證代碼的質(zhì)量,提前解決一些意想不到的bug埋泵。
  6. vim:vim真的是特別強大的編輯器幔欧,尤其是在Linux環(huán)境下工作的同學,vim的常用配置方法以及各種快捷鍵都是必須要熟練掌握的技術丽声。

此處不再一一介紹礁蔗,主要是向大家說明工具的重要性。

提升階段
在有了牢固的基礎知識以及熟練掌握各類神器工具之后雁社,后面需要開始進階學習浴井,并不斷的動手提升自己。

首先是基本的進階霉撵,就是一些常見的算法與編程磺浙。建議可以通過在各類編程平臺上動手練習(例如leetcode)洪囤,一是鍛煉自己的算法思維以及語言的熟練度;其次是學習其它大神的寫代碼規(guī)范撕氧。如果能夠堅持一到兩年瘤缩,每天至少一道題的話,會有很大的提高伦泥,這個過程是量變到質(zhì)變的過程剥啤。

其次是閱讀學習一些優(yōu)秀項目的源碼,如果能夠?qū)⒁粋€項目理解到一行行代碼程序的話不脯,才是真正的學習到其精華府怯,并且能夠加深對其的認識。例如防楷,我們都學過操作系統(tǒng)牺丙,知道操作系統(tǒng)基本的線程管理、內(nèi)存管理复局、I/O系統(tǒng)等冲簿。但都是理解在文字概念的層面,如果能夠深入內(nèi)核源碼肖揣,去細細品味每一個子模塊民假,每一個數(shù)據(jù)結構的話浮入,對個人的技術來說是很大的提升龙优。例如,在博主大四的時候事秀,便開始閱讀Linux內(nèi)核文件系統(tǒng)與內(nèi)存管理相關的源碼彤断。當然,當你第一次看這么龐大的項目的時候易迹,一定是一臉懵逼宰衙,不知所云。所有人都會經(jīng)歷從不會到會再到精通的過程睹欲,沒有人第一次看就能直接看懂的供炼。我們要做的是,堅持不懈窘疮。在別人看電視劇的時候袋哼,我們在看源碼,在別人玩游戲的時候闸衫,我們還在看源碼涛贯,在別人逛淘寶的時候,我們還在看源碼蔚出。所以當別人在最后抱怨太難放棄的時候弟翘,你基本已經(jīng)上道了虫腋。

博主在碩士期間精讀過多個優(yōu)秀項目的源碼,ext4稀余、blobstore悦冀、Redis、Rocksdb滚躯、SPDK雏门、DPDK等。

進階學習
要想在相關領域內(nèi)學習到最前沿的技術掸掏,個人認為有兩個最佳的渠道茁影。一是各類開源社區(qū),二是各類計算機頂會的論文丧凤。

首先從開源社區(qū)談起募闲,隨著我國互聯(lián)網(wǎng)的發(fā)展,越來越多的大公司開始倡導去IOE愿待,因此隨之而來的是各種開源項目的不斷崛起浩螺。而且越來越多的企業(yè)開始使用開源軟件作為底層服務軟件,并且為了更夠更加匹配公司的實際業(yè)務環(huán)境仍侥,越來越多優(yōu)秀的開發(fā)者加入到開源社區(qū)當中來要出。因此,為了學習到這些新技術的發(fā)展方向农渊,要時長關注各類社區(qū)的動向患蹂,最好能參入其中。首先砸紊,若想了解到更多的未來發(fā)展方向传于,可以訂閱社區(qū)的mailing list,看社區(qū)中的大牛經(jīng)常會提出什么討論醉顽,新的patch等沼溜。其次,再不斷的學習相關源碼的時候游添,試著做一些優(yōu)化系草,可以向社區(qū)提patch,來參與其中唆涝。對于大家來說找都,這個剛開始不容易上手,可以選擇先從文檔和注釋做起石抡,比如有一些文檔寫的不夠全面檐嚣、不夠規(guī)范,或者有一些必要的地方缺少注釋說明,這些都可以作為一個貢獻去向社區(qū)提request嚎京。在逐漸的更加熟悉后嗡贺,可以經(jīng)常關注該項目的github issues,看是否有一些bug需要解決鞍帝,可以嘗試幫著社區(qū)解bug诫睬,其次也可以針對一些該項目缺少的功能,自己進行開發(fā)帕涌,向社區(qū)做貢獻摄凡。這是一個很好的學習路徑。

其次是各類計算機頂會蚓曼。各大公司和名校的最新research都會發(fā)表在一些好的計算機會議上亲澡。要經(jīng)常關注每年的會議,精讀自己感興趣領域的最新研究纫版。例如床绪,博主是學存儲方向的,因此經(jīng)常會關注一些系統(tǒng)和數(shù)據(jù)庫方面的會議其弊,例如FAST癞己、OSDI、VLDB梭伐、USENIX ATC等痹雅。例如,經(jīng)常閱讀這些頂會的論文糊识,你將會發(fā)現(xiàn)绩社,如今LSM Tree、用戶態(tài)軟件棧技掏、Open Channel SSD铃将、RDMA项鬼、NVDIMM等哑梳,都是目前近幾年無論在企業(yè)界還是學術界都特別關心的技術。通過閱讀學習這些優(yōu)秀的論文绘盟,一是能夠?qū)W習到其中精妙的系統(tǒng)設計鸠真,二是能夠?qū)W習到很多表達的技巧(包括presentation、做PPT龄毡、畫各類圖等)吠卷,這些積累都是特別重要的財富。

其次沦零,無論是參與到開源社區(qū)中祭隔,還是精讀論文,都需要有一個良好的英語基礎路操。無論是閱讀疾渴、寫作千贯、還是聽力和口語都是必須的。因此搞坝,每天留出額外的時間去學習英語是必不可少的搔谴。博主本人在這方面就有些缺失,因此目前仍在不斷努力加強中桩撮。

4. 核心競爭力

確立了目標與學習計劃是遠遠不夠的敦第,態(tài)度決定一切。最主要的還是腳踏實地店量,一步步地去學習芜果。當然,學習的過程中難免會遇到很多困難融师,最主要的還是堅持不懈师幕,勇敢的去戰(zhàn)勝困難。要向優(yōu)秀的人看齊诬滩,不要被外界的東西所打擾霹粥。例如,書還沒看兩頁疼鸟,就去打游戲了后控。剛配了一個環(huán)境,遇到點困難就放棄了空镜,轉身去看電視劇了浩淘。這樣是萬萬不能的。

要有堅定和果斷的意志吴攒。以博主本人碩士期間的生活舉例张抄,通常周中晚上都是12點、1點睡覺洼怔,早上一般都是7點吃過早飯就坐在實驗室了署惯。中途從不玩手機、不打游戲镣隶、不看劇极谊、不逛淘寶的。但是周末喜歡出去瘋玩兩天安岂,周末除了特殊情況需要加班加點趕論文外轻猖,一般情況周末是不去實驗室的。因此域那,可以做到勞逸結合咙边。但個人非常喜歡技術,曾經(jīng),修改一個開源項目败许,自己琢磨到半夜友瘤,在遇到問題真的很難過,但在自己的堅持下檐束,當新的功能可以完全跑起來的時候辫秧,半夜回去躺下都激動不已,難以入眠被丧。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末盟戏,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子甥桂,更是在濱河造成了極大的恐慌柿究,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件黄选,死亡現(xiàn)場離奇詭異蝇摸,居然都是意外死亡,警方通過查閱死者的電腦和手機办陷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門貌夕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人民镜,你說我怎么就攤上這事啡专。” “怎么了制圈?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵们童,是天一觀的道長。 經(jīng)常有香客問我鲸鹦,道長慧库,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任馋嗜,我火速辦了婚禮齐板,結果婚禮上,老公的妹妹穿的比我還像新娘嵌戈。我一直安慰自己覆积,他們只是感情好听皿,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布熟呛。 她就那樣靜靜地躺著,像睡著了一般尉姨。 火紅的嫁衣襯著肌膚如雪庵朝。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天,我揣著相機與錄音九府,去河邊找鬼椎瘟。 笑死,一個胖子當著我的面吹牛侄旬,可吹牛的內(nèi)容都是我干的肺蔚。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼儡羔,長吁一口氣:“原來是場噩夢啊……” “哼宣羊!你這毒婦竟也來了?” 一聲冷哼從身側響起汰蜘,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤仇冯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后族操,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苛坚,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年色难,在試婚紗的時候發(fā)現(xiàn)自己被綠了泼舱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡枷莉,死狀恐怖柠掂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情依沮,我是刑警寧澤涯贞,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站危喉,受9級特大地震影響宋渔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜辜限,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一皇拣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧薄嫡,春花似錦氧急、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至哑蔫,卻和暖如春钉寝,著一層夾襖步出監(jiān)牢的瞬間弧呐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工嵌纲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留俘枫,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓逮走,卻偏偏與公主長得像鸠蚪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子师溅,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,732評論 25 707
  • 用兩張圖告訴你邓嘹,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 12,699評論 2 59
  • 看百度百科 中文名 主營業(yè)務 對象 經(jīng)營目標而從事的日诚找龋活動 接下來要做的是把課文上的邏輯整理出來汹押,做出思維導...
    aabebw閱讀 191評論 0 0
  • 在一座房子里,有一根蠟燭起便,它有十尺長棚贾,原先在主人眼里很有價值,可是榆综,科學的發(fā)展妙痹,使房子里有了臺燈,而它...
    李文濤123閱讀 1,228評論 0 1
  • 文/樂小魚兒 楊桃第一次知道,父親楊建國有情況判沟,是在她十歲的時候耿芹。 讀三年級的楊桃,因為數(shù)學課本忘在了家里挪哄,跟老師...
    樂小魚兒閱讀 1,582評論 80 74