這一年的學習/科研生涯回顧(非純技術文)

序言

不知不覺間,大學四年時光悄然而逝。我也已經正式成爲了一名研究生,在科研之路上也小小地邁步向前了。但是回過頭來去想這一年所做的事,卻沒有太大的滿足感和成就感,心頭仍然籠罩着不知所向的陰霾。

因此,我想通過簡單地梳理過去的所做所思所感,給今天的自己一點回味,一點啓發,也讓我記住:從前的光陰,沒有白費,更應該珍惜眼前短暫的時光,早出成果。

遲到的開始

我雖然確定保研的時間比較早,在大二下學期完時就沒有什麼懸念了,但進入科研狀態很晚。當別的優秀的同學在大三上時就紛紛聯繫導師,進實驗室看論文搞研究的時候,我仍然重複着課堂——食堂——圖書館——寢室四點一線的生活。

對於此,我一直是耿耿於懷的。如果我早點進入狀態,多參加實驗項目,那麼我的本科時光也許就更加有意義了。然而,後悔和自怨自艾此時已於事無補,從現在起專心科研和論文才是必由之路。

而我真正開始讀論文的起點,是從做畢業設計開始的。

畢業設計

我在去年十二月的時候聯繫了我很敬佩的一個導師,想跟着他做關於網絡算法方面的課題,他欣然同意並安排了一個師兄指導我。

當時第一次正經讀論文,感覺一遍過去後只是按部就班地將英文翻譯成中文而已,根本沒法概括文章的精要和價值,更不必提複述給他人聽了。因此,這一篇論文我前後反反覆覆讀了大約有十遍,才終於明白作者做了一件什麼事,爲什麼要做這件事,有什麼特殊價值,和別人的工作有什麼聯繫又有什麼區別,哪裏可以改進等等。

但是這篇論文是師兄直接發給我的,而我自己還不知道該如何高效地查找自己需要的文獻,因此也多次請教師兄,終於慢慢地進入狀態了。通過文獻引用目錄,谷歌學術關鍵詞等,找到了相關的一些有用的文獻資料。

當然,那個時候還有一個很大的問題,我判斷一篇文章是否可以讀的標準很膚淺,就是看引用和年份。引用數量越多越好,發表年份越新越好。直到後來進入現在指導我的導師的討論組,才習得不同期刊和會議論文的等級差別。原來我一直不知道我第一篇讀的論文是什麼等級的,它引用少但是文章新,不好判斷。但從會議IEEE INFOCOM來看,既是SCI收錄又是CCF A類,基本可以斷定是一篇質量較高的論文。

在做畢業設計的過程中,我就將該論文通篇翻譯成了漢語,也同步到CSDN博客上了,但是不知道我這種自作主張的做法是否對其他學習者有用,也許只是一種自嗨吧。這個論壇裏大部分還應該是技術和項目驅動的。

我是一個從通信跨專業保研到計算機系的學生,深刻地明白自己相較於科班出身的計算機研究生的差距在哪裏。編程絕對是最主要的一點,本科只粗略接觸C語言,雖然自學了Java和Python但是感覺學得一點都不繫統不專業。

編程是必備的技能

在做畢業設計的過程中,需要用到一個針對Linux平臺開源的SDN網絡仿真軟件Mininet,在進行算法嵌入和網絡仿真時需要自己編寫腳本,而核心的控制器則完全需要編程人員按照Mininet的接口自己去寫。我第一次認認真真地以面向對象的方式寫Python就是從這裏開始,大概花了一星期將頭腦中構思的算法轉換成了一千多行代碼。

這些代碼並不都是我自己的產物,其中一部分是源於我讀的第一篇論文的算法實現。所以,我大部分的時間只是將別人的工作重現了一遍。在算法方面編寫程序,其實還不算複雜,真正複雜的地方在於構思算法的過程。而現在我所處的科研狀態,則幾乎完全跟算法無關,是純粹系統級的知識。我深深地感到在系統層面我的編程技能的欠缺,而我的困惑與茫然,多半也源於此。

參與項目

今年三月初的時候,我來到即將讀研的高校,參與到課題組的項目中。項目也如同前文所說的那樣,不是我熟悉的算法的課題,而是實打實的操作系統內存管理相關。

這可如何是好?雖然大三的確上過一門《微機原理》的課程,但作爲對非計算機專業學生開的課來說,那也太表面化了,完全沒有駕馭真正的操作系統項目的功效。而我自己,在系統方面的造詣,也幾乎等於零。

那時候,我還不懂cache line,page fault機制是什麼,心中只是充滿了畏懼和抵抗情緒。

而更加讓我跟不上課題組思路的是,內存管理項目的中期指標已經基本完成,只剩下文檔事務需要處理了。所以,我根本沒有機會參與到系統的開發實踐中去,而是負責了編寫文檔的工作。

三篇文檔

上一學期我在項目方面的主要成果也就只有文檔了。一篇《軟件著作權》,一篇《技術報告》,一篇《開發文檔》。在寫文檔的過程中,我也逐漸瞭解了我們課題組的工作成果、研究點、創新點等。我也感覺到,我不討厭寫文檔。如果推測合理,那麼我應該也不討厭寫論文,這稍稍令我感到些許安慰。但是寫論文的前提是要有發現有成果,巧婦難爲無米之炊,我必須找到研究點,攻克一個問題以後才能把我的思路和方案轉化成論文。

操作系統,該如何親近你

話說回來,我在項目上的進展一直都比同課題組的同伴要慢地多。一方面是因爲我本身沒有參與到項目的開發過程中來,另一方面是理解基於Linux內核的系統代碼對我還是一個非常大的挑戰。

我的大boss給我們的推薦的閱讀書籍是《深入理解計算機操作系統》,整個實驗室大課題組都會看的一本書是《深入Linux內核架構》。兩本書都算是大部頭,當然不可能從前往後一頁一頁地讀過去,只能按照自己的需要翻閱相應的部分。

但是我就算只閱讀《內存管理》相關的部分,也有許多地方難以理解和消化,果然還是因爲我在某方面欠缺了相應的基礎吧。但是我卻難以查明自己所欠缺的那部分到底是什麼。我常常思考的一個問題是,這些理論的框架和思路,是如何轉化成實打實的代碼的呢?比如冷熱頁的判斷和換入換出,具體的代碼應該長成什麼樣呢?

算法與系統

不只一位老師跟我這麼說過,現在搞研究,做算法就是比做系統的人要快很多。可能你做系統做一年也出不了什麼成果,他們做算法的已經發表兩篇不錯的論文了。

那我應該去做算法,對自己畢業比較有利嗎?

老師們還說,無論在學術界還是工業界,對於做系統的研究者,評價都會高一些。同一級別的論文,做系統的人會被更加器重。

我的指導老師對我是有期望的,希望我儘快找到一個鮮明的研究點,無論是結合項目也好,還是結合自身興趣也好,在這一年中儘早出點成果。但我到底該怎麼做呢?做系統本身難度的壓力,我自身基礎薄弱的壓力,同伴比我早發表論文的壓力,畢業標準的壓力,還有其他許許多多的煩惱,遲早有一天會一同像我襲來的吧。

不過,有一點是可以改善的,儘快補上自己的短板,對系統知識進行全方位的充電。“打不倒我的,必使我強大!”

前輩的話

我和許多師兄師姐都聊過,他們將自己讀研讀博的感悟心路講給我聽。我真的非常感謝他們。

害怕延遲畢業嗎

有一個剛升博三的師兄,在上一學期我跟他聊的時候,他跟我說:延期畢業沒有什麼可怕的,可怕的是這幾年裏你沒有學到東西。所以我覺得假如我能研究出很好的成果,那麼延期畢業一兩年又有什麼問題呢?

話雖如此,我果然還是想正常地畢業啊,當然也希望產出令自己滿意的成果。這應該不是“魚與熊掌不可兼得”的問題吧。

把精力用在科研上

研究生第一年都是有課程的,我專門針對這件事問了一個今年剛升博四的師兄。他對我講:課程不用太在意,及格就好,將自己的主要精力放在自己的科研問題上。

我似懂非懂地點點頭,畢竟我也是個直博生。考覈博士生的標準並不是你的課程成績多麼優秀,而是你的學術成果是否優秀。

但是另外一個師姐說:課業還是儘量學號比較好。國外有很多學術很優秀的同學,他們的成績也都是很好的,每門課也都認認真真上了的。

同時搞好課業與科研,應該還是有點難吧?研究生階段,還多了項目任務這一項,因此歸結起來我實際上要做的事情是三個:課程任務、項目任務、科研任務,而這已經把社交工作排除在外了。所以我的時間是非常非常緊迫的。依照不同的人能力的不同,這裏可能需要trade off(取捨),但根據我個人的性格,我當然是希望每件事都能做得盡善盡美。

要想把事情做得非常非常好,我只有非常非常拼命了。但我好擔心,自己努力的狀態不能一直持續下去。

讀五十篇論文才有發言權

我的指導老師曾批評我讀的論文太少,肚子裏纔沒有墨水。這是極其正確的,也是令我感到羞愧的事實。之所以羞愧,是因爲我的能力遠遠達不到老師的期望。她說系統方面的論文,一週至少可以讀三到五篇纔對,但是我卻只能讀兩篇而已。而且就算只讀兩篇,也很難完全掌握作者在文中強調的所有要點,重現文章的研究成果更不可能是一週內可以實現的事情了。一次又一次的打擊,讓我深深地明白自己的軟弱,這種軟弱不是與誰對比所產生的,而是在我的科研領域上我本身就是軟弱。

老師說我至少在讀五十篇(定向領域的)論文才能在這一方面有發言權。有發言權的意思是明白這個領域最近在做什麼,有哪些人在做,存在的主要問題和解決方案是什麼。然而,有發言權,也並不意味着自己就會有嶄新的成果。發言權只是最基礎的一部分罷了。

畢業是新的篇章

今年六月,我回本科學校完成了畢業的諸多事宜,包括身爲班長需要處理的班級畢業材料,班級畢業照,論文上交和答辯等等。

僥倖的優畢

可能是基於本身論文的文字水平和流暢程度而不是實質的創新度打分,我很幸運地獲得了校優秀畢業論文這一榮譽。我記得在參加完答辯之後,我去找答辯組的一位老師請教問題,他是一個真正的良師益友。“不要浮躁,不要驕傲,第一年沉下心來讀論文,慢慢地你會有自己的想法的。”這是他對我說的話,可是不驕傲我容易做到,浮躁這種情緒卻難以剋制。

第一年,第一年很重要!我想趁着第一年就能出好的成果呀!

可是以我現在的水平,這又怎麼可能做到。難道是把我的畢業論文改一改,拿去投稿麼?雖然並非完全中不了,但那已經不是我的研究點了吧,在博士階段把它投出去又能如何?老師們大概也不會支持的。

我一直強調努力努力,但是到底該朝哪個方向?把操作系統的書籍,博客,代碼都好好看看?提高編程技能?還是所有的方向?

仍然迷茫的我

我仍然是迷茫的,我相信今後科研的大部分時光也都將在這樣的情緒中度過。感受而不是沉湎於自己的迷茫是好事,這會迫使我自己絞盡腦汁去思考去總結,去破而後立。

現在閱讀論文不是那麼費勁了,科研選題的遷移也逐漸趨於穩定。從老師一開始建議的分佈式計算系統框架設計,到分佈式計算和新型內存的結合,到新型內存與數據庫系統的結合,到新型內存與logging的結合。

我相信,這個遷移的過程不是迷失,而是尋找到正確的那條路所必須的陣痛。

博士班集結

九月入學,見到了許多和自己一樣的直博新生。我們班級總共35人,算上春季入學的3個學生就是38人。今後的科研生涯,我們都將踏上自己艱苦奮鬥而又有獨特韻味的旅程。我不知道四五年後,我們是否都能畢業,但我希望,畢業以後,我們都能成爲獨當一面的博士,在自己的領域有所建樹,成長爲真正的科學家。

路終究還得自己走

我的博士師兄師姐,有些是博三博四還沒有成果產出的,有些是早在博一就已經發表論文拿國獎的,還有些是博二博三剛發表論文處於中庸狀態的。

但是無論如何,讀博都是我們自己選擇的路,它是一場賭博,是一場冒險。但是,誰的人生又不需要一點點冒險呢?

我不知道我的研究生生涯是否會順利,我只希望,自己不變的心態是一直努力。無論是現在,還是三五年後,還是十年後,還是行將老去,我都想用努力去標榜自己無悔的一生。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章