當前位置: 華文星空 > 知識

大學電腦系最努力的同學都是如何學習的?

2018-03-29知識

雙非本科,先是在電腦系摸魚3年,大四決定痛改前非,全身投入考研,最終上岸浙大,不知道算不算是努力學習了呢?

這次考研對我的人生產生了巨大影響,改變了研究方向、學習方法,也重新認識了「努力」一詞的定義。

1. 本科摸魚史

先分享一下我本科時的樣子。

我的本科是一所普通二本,校園很美,老師們很友好。但在一所雙非院校,學校沒有任何優勢,如果想提升,只能靠自己去努力。只可惜大四之前我都不懂這個道理。

那時候,一到周末我就離開學校到處玩自己的愛好—騎行,買了一輛近3000元的單車,參加了不少省內的自由車比賽。

為了體驗生活順便攢點生活費,我送過外賣,在KFC做過漢堡,上門當過家教;唯獨很少把時間放在自我提升和專業能力上。

而電腦系的一些老師有時候過於佛系,怕最新的技術太難我們接受不了,就只教一些老掉牙的方法。

我對教Java老師的印象最深刻。16年上Java課時,老師沒教我們Spring、MVC等成熟框架,程式碼還是用非常古老的JSP和Servlet。最讓我吃驚的是,他讓我們把後端程式碼和前端程式碼直接寫在一個jsp檔裏。

我們班的一些同學後來在b站自學才知道這種方法有多麽不規範。

在這樣寬松的環境下,本科三年很快就滑過去了。

2. 考研奮鬥史

大三暑假是個分水嶺,很多人漸漸知道再這麽玩下去就真廢了,開始收心苦思出路。有狂投簡歷找實習的,有在圖書館復習考研考公的,也有家裏有錢繼續放縱的...

看到很多同學投遞大廠簡歷直接被機刷,我第一次覺得母校不夠好。

我想去牛b的學校讀書,接觸更前沿的技術,看看那兒的同學是怎麽學習的。剛好那個暑假,在校園中我遇到了初戀女友,愛情的責任感進一步激發了我潛意識中的鬥誌。

我要考研,而且要考就考牛b的!

經過謹慎考慮,7月初我把考研目標定為浙江大學電腦專業,這是一個當時看來很難,但沖一沖又有希望的選擇。

我用最快的速度收集了考研數學、英語、專業課408的復習資料,和女朋友一起在學院提供的考研教室中開始「8-12-7」的復習模式。

我考研,她考司法,我們每天都在教室中復習的不亦說乎。到了飯點就一起騎小龜去食堂吃飯,飯後繞校園後邊的竹林散步,緩解大腦壓力。

回想那段青春歲月,可以用「摸著石頭過河」形容。每天日程排得滿滿當當,沒有休息日,沒有收入,沒有可咨詢的師兄師姐,壓力遠勝於現在的「996」。我們只有彼此和一個考研進入名校的夢想。

好在我們都努力堅持下來了!考研前一個月,司法考試出結果,女朋友順利透過。考研前一天,學校派大巴送我們去各個考點。

車上有同專業ACM集訓隊的隊長,他也是一個非常努力的同學,經常在實驗室和宿舍寫程式碼到深夜。後來,他考研被北大成功錄取。

考研讓我意識到, 有吸重力的的目標+正確的努力方法可以讓人改變現狀,達成想要的目標 。於我而言,考研就是最好的選擇。

3. 在專業領域繼續深耕

2018年6月,我和女友駕車從杭州出發,經安徽、江西、湖北、重慶,最終到達四川成都朋友家,完成了首次長途自駕。在那次旅途中,家裏收到了浙大寄來的碩士研究生錄取通知書。

9月,進入學校和實驗室後,我從最底層的爬蟲(為師兄提供訓練語料)和機器學習理論學起,將研究方向從開發調整為演算法。

學了幾個月之後,我開始不安現狀。從爬取的文本入手,主動研究文本分類和實體辨識等NLP底層任務,帶頭的博士師兄發現我的動手能力還可以,於是將我從爬蟲轉向了NLP。

這也是我進浙大後發現周圍優秀同學最大的一個學習特點: 不用人催,能自我驅動主動學習

我們實驗室有一塊大白板,上面列滿了今年各大頂會的deadline與投稿目標,每當臨近會議時間,很多同學會自發來實驗室加班加點寫論文、跑實驗。即便是已經手握7-8篇A類一作的巨佬,依然很勤奮很努力在學習。

受到周圍同學的鼓舞,除了上課和陪女朋友出去玩,我把時間都花在看書提升專業能力上。 術業有專攻,我明白畢業後這就是我的主業

研一閱讀【 數學之美 】,【 Python自然語言處理 】和【 自然語言處理理論與實戰 】,幫助我啟蒙數學和自然語言處理;

研一研二學習 【Python深度學習】,【動手學深度學習】,【Deep Learning in Pytorch】,【hands on Machine Learning with Keras and TF】 幫助我快速上手機器學習和深度學習框架;

【笨辦法學Python】,【Python編程從入門到實踐】和【流暢的Python】 幫助我持續提升最佳化Python編程能力;

【百面機器學習】,【百面深度學習】,【深度學習500問】 幫助我在面試前查漏補缺。

下面是我碩士期間看過的部份書單,已經打包壓縮好了,共計100本。有需要的朋友點選下面的連結可以直接下載:

後來我覺得僅僅看書還不夠,是不是還能再努力一些,從計畫實踐、比賽、paper等方面做些嘗試呢?

於是研二開始,我認真參與了公司多個智慧機器人計畫研發,和室友在天池、Kaggle等比賽上獲得了不錯的名次,發表數篇發明專利,產出了論文。

電腦真的是一個透過努力可以改變命運的學科。 前期專業能力的積累,幫助我在秋招大軍中幸存下來,同時收獲了BAT的演算法offer。

Python是入門演算法的必備工具之一。如果不知道如何快速入門Python的同學,可以試試【 夜曲編程 】,在手機上就能學習。囊括了Python入門到進階的各項課程,還有網頁開發、網路爬蟲、數據分析等進階內容。

課程內容以卡片的方式推播給使用者,這種互動的學習方式非常有趣,不會讓你一接觸Pyhton就從入門到放棄。

在使用夜曲編程前,我也接觸了很多線上學習平台和軟體。對比下來我發現夜曲的學習面板對初學者是最友好的,可以事半功倍,所以推薦給大家!

4. 進入職場持續輸入與輸出

有的同學覺得校招拿到offer上岸,就能躺平了。其實,新的生活和挑戰才剛剛開始。

離開學校進入公司,我遇到了很多實力雄厚的同學,無論是專業技術還是業務交流、邏輯溝通能力,他們都有很多值得我學習的地方。每周一次的技術分享,也為大家提供了豐富的養料。

想要保持工作穩定甚至升職加薪,最好的辦法就是提高公司對自己的產出/投入比 。如果我每一年為公司提供的價值與產出超過了薪資收入,那公司一定很樂意將我留下;反之,有可能「入職即巔峰」甚至隨時被送飛機票。

而想要達成這樣的目標,需要不斷提升自己的專業能力,無論在哪家公司何種職位,保持持續學習與輸入。認真觀察你會發現,身邊那些優秀的同學都是這麽做的。

這裏分享一個費曼技巧提高學習效率:

原文來自 Quora: 如何才能學得快一些 (How can you learn faster)

第一步 - 選擇一個你想要理解的概念
選擇一個你想要理解的概念, 然後拿出一張白紙, 把這個概念寫在白紙的最上邊.
第二步 - 設想一種場景,你正要向別人傳授這個概念
在白紙上寫下你對這個概念的解釋, 就好像你正在教導一位新接觸這個概念的學生一樣. 當你這樣做的時候, 你會更清楚地意識到關於這個概念你理解了多少, 以及是否還存在理解不清的地方.
第三步 - 如果你感覺卡殼了, 就回顧一下學習資料
無論何時你感覺卡殼了, 都要回到原始的學習資料並重新學習讓你感到卡殼的那部份, 直到你領會得足夠順暢, 順暢到可以在紙上解釋這個部份為止.
第四步 - 為了讓你的講解通俗易懂,簡化語言表達
最終的目的, 是用你自己的語言, 而不是學習資料中的語言來解釋概念. 如果你的解釋很冗長或者令人迷惑, 那就說明你對概念的理解可能並沒有你自己想象得那麽順暢 -- 你要努力簡化語言表達, 或者與已有的知識建立一種類比關系, 以便更好地理解它。

學習之余,我開始在知乎和公眾號上用文字輸出原創技術文章,並盡可能做到通俗易懂,與更多親愛的讀者共享學習成果:

如何通俗易懂地讓女朋友明白什麽是語言模型?

文本匹配利器:從孿生網路到Sentence-BERT綜述

2021年了,你還在手寫SQL嗎?

7分鐘搞懂邏輯回歸的來龍去脈

認真的聊一聊決策樹和隨機森林

天池NLP賽道top指南

復盤人生第一次科研經歷

「天將降大任於斯人也,必先苦其心誌,勞其筋骨,餓其體膚,空乏其身,行拂亂其所為,所以動心忍性,曾益其所不能」——孟子

最後,結合自身經驗我概括了電腦系最努力的同學的8個學習方法:

1)盡早明確自己的研究方向,並持續發力;

2)學會自我驅動主動學習,決定未來發展好壞的只有你自己;

3)電腦是一門對理論與實戰都非常看重的學科,二者要兼顧;

4)盡早開始實習,為學校過渡職場做好準備;

5)懂得勞逸結合,健康第一;

6)盡可能減少外界負面幹擾,認準的事堅持做下去;

7)遇到問題冥思苦想,不如Google或多和同學交流;

8)多看書,多看好書。

最後和你正式介紹一下自己哈:

我是葉琛,一個愛旅行,懂養生的演算法工程師兼幹貨答主,也是個喜歡用接地氣的文風為年輕朋友分享職場經驗和演算法知識的人。希望我的文字可以為你提供幫助!

總結不易,覺得有幫助請給 @Giant 點個贊喲,謝謝啦!

參考資料:

[1] 號稱終極快速學習法的費曼技巧,究竟是什麽樣的學習方法?