1. 程式人生 > >校招前幾個月,如何高效地進行復習?

校招前幾個月,如何高效地進行復習?

 

距離明年春招還有三個多月的時間,很多想找實習和想參加補招的同學應該也都在忙著複習。今年的春招已結束,我在開始準備秋招了,也就是從4月份到7月份這段時間,我完成了一次比較系統的複習。所以把一些經驗分享給大家,總歸會有一些參考價值的。

 

 

 

 

 

 

 

平時的積累和沉澱

 

 

研究生期間我有一件事情一直在堅持,那就是做筆記和寫部落格。

做筆記,就是記錄學習中大大小小的事情,可能是面試問題,可能是一週的學習計劃,也可能知識一個知識點,總歸都是值得記錄的東西,對我來說,就是一種積累。而對於部落格,我從一開始只用於記錄專案,到後來做轉載,再到後來寫原創,整理系列文章,則更像是一種沉澱。

但是在春招剛剛結束的這段時間,我發現一個問題,之前學過的東西忘記了很多,特別是那些理解的不夠深的知識點,總是特別容易忘記。另外我發現,雖然我在筆記中記錄了很多的知識點和麵試題,但是往往我只看過一次,不會再去看第二次。

這也意味著,雖然記錄的內容很多,但是真正消化吸收的內容很少,腦子裡充斥著總是那些零碎的知識點和麵試問題,對於完整的知識體系知之甚少。這些問題在春招期間也不斷地暴露出來,讓我思考了很久。

面對如此窘境,我想做出改變,趁著現在時間充裕,我想要為這些內容做一次減法,並且藉此機會,推翻自己原有的知識體系,重建新的知識框架。簡單說來,就是重新開始學習Java後端,這次我要用一種更高效的方式,避免走之前走的彎路,要用最高效,最合理的方式去複習。由於我之前已經有基礎,所以我對完成這一目標有信心,相應地我也為此做出了明確且詳細的學習計劃。

具體怎麼重建知識體系,我後面會單獨寫一篇文章探討,一言以蔽之,就是重新梳理知識點,讓自己對每個知識點都能有較深入理解,這樣在面試中才能夠做到胸有成竹。

 

我把秋招前幾個月的複習過程總結為一下幾個關鍵詞,每個部分的複習內容都是針對我之前的一些短板,加以完善和補充。

 

做計劃,也寫部落格

“具體可靠的學習計劃”

在三個月的時間裡,我首先按照Java後端路線圖安排好複習計劃,每個知識點都會對應安排一段時間,比如我可能花一天時間複習“Java反射”,兩天時間複習“設計模式”,一週的時間用於複習"JVM虛擬機器”。我一般會在月初做好整個月的計劃,然後根據進度做一些微調,但是基本上我都可以跟上進度,並且是在複習到位的前提下。

所以我覺得,對於秋招這一場苦戰,指定計劃尤為重要,一旦計劃定下來,戰略目標清晰,對應的戰術制定也會變得清晰,執行力也會隨之變強。

“寫部落格整合知識點”

至於複習方法,我主要通過看高質量部落格,並且結合程式碼實踐的方式鞏固這部分知識點,比如今天學習“concurrenthashmap”,我會去找兩三篇比較好的部落格先看看,主要是原始碼解讀方面的,然後我會把它們進行整合,如果有遺漏的知識點我會再進行補充,有時候我還會自己去看看JDK原始碼,以便更好地理解部落格內容,完成知識整合之後,我就會對應地整理出一篇部落格出來,發在我的個人部落格上。

除此之外,當我完成了一整個專題的複習之後,我會把這些文章整理成一個專題,比如上面說的“concurrenthashmap”,實際上屬於Java併發包,所以我會專門做一個部落格專欄,用來完成Java併發系列的文章專題。對於每一個文章專題,我都會先理清這個專題一共有哪些內容,然後再開始整理。比如對於Java併發包,我會先寫Java多執行緒基礎的文章,再寫JMM記憶體模型的文章,接著一步步著手寫Java執行緒池,阻塞佇列,工具類,原子類等等。這樣一來這部分內容就複習完畢了,寫系列文章的好處就在於,我可以從頭到尾理清脈絡,並且對於每一部分的知識點都做了比較好的總結。

對於部落格的選擇,我吸取了之前的教訓,寧願花半小時看一篇高質量文章,也不花10分鐘看5篇爛文章。深度閱讀的好處,就是可以讓這部分內容更好地融入你腦內的知識體系,而不是像其他快餐文章一樣轉瞬即逝。

 

做專案,也刷演算法

 

“做專案鞏固實踐能力”

由於之前在實習期間參加的專案都比較大,我接觸的模組也比較單一,沒有對整體專案有一個很好的把握,所以我決定趁這段時間再鞏固一下我的專案實踐能力,這裡的能力主要是指的是對專案架構的把握能力,以及對業務開發的熟練度,當然也包括對各種常用後端技術的熟悉程度。

我花了大概一個月的時間完成了兩個專案的開發,當然主要也是模仿兩個開源專案做了,這兩個專案都使用SpringBoot快速開發,並且用到一些常用的後端技術比如redis,雲端儲存,以及一些常見Web框架,除此之外還涉及到了solr,爬蟲等技術。雖然專案不算很難,但是我在這段時間裡很快地熟悉了完整專案開發的流程,並且每天做迭代,通過Git來跟進版本,每個版本都會寫清所做的內容,這也讓我對專案的架構非常熟悉。

在專案之餘,我也找一些常用的後端元件來跑一跑demo,以便讓我對這些技術有一個直觀的瞭解,比如面試常問的dubbo,zookeeper,訊息佇列等元件。這些嘗試也讓我在理解它們的原理時更加得心應手了。

“堅持刷題,注重方法”

演算法題是秋招筆試面試中的重頭戲,每個研發同學都免不了經歷演算法題的摧殘,對我這麼一個非科班同學來說,更是讓人頭大。正因為如此,我放棄了刷大量LeetCode題目的方法,選擇了更加行之有效的刷題方式。

首先我重新刷了一遍劍指offer,並且對每道題目進行總結,儘量保證每一道題都可以記在腦子裡,眾所周知劍指offer中的題是面試時非常喜歡考的,所以先搞定這部分題目是最為關鍵的。

搞定劍指offer之後,當然還要刷LeetCode了,LeetCode題目這麼多,怎麼選擇呢,我沒有按照tag刷,也沒有按照順序刷,而是參考當時一個大佬的LeetCode刷題指南來進行刷題的,他把每個型別的題目都做了歸納,每部分只放一些比較經典的題目。所以我前後大概刷了100多道LeetCode的題目,並且在第二遍刷題複習的時候,我也對這些題目做了一份總結。

除了上面兩個經典題庫,我還著重刷了大廠的歷年真題,這部分我主要是通過牛客網的歷年真題題庫來完成刷題的。說實話,真題是非常重要的,因為公司出的題目不像平時的那些演算法題,可能會出得非常奇葩,所以你如果不提前適應的話會比較吃虧。完成這部分題目之後,我對演算法題的複習也基本告一段落了。

當我完成所有內容的複習時,提前批已經開始了。終於要上戰場了,因為戰前準備比較充分,所以我對秋招還是比較樂觀的,但事實上,秋招不僅是攻堅戰,而且是持久戰,要笑到最後,確實也不是那麼容易的事情。最終我還是比較幸運地通過了幾家大公司的面試,包括BAT、頭條、網易,以及後面面試的滴滴和亞馬遜。

當然,研究生兩年時間的學習和積累是更重要的部分,但是臨考的這段時間,你還是需要做一些比較科學的計劃,有選擇性地進行查缺補漏,對每個知識點都要做到心中有數,只有這樣,你才能夠在校招的考場上笑到最後。

 

 

 

微信公眾號【程式設計師江湖】裡有什麼?

 

1.作者是收穫BAT頭條等大廠研發offer的求職老司機,後臺回覆“少俠”可以獲得我的微信,歡迎和我交流技術學習和求職心得。

2.每天早上九點分享一篇關於程式設計師成長與生活的文章,包括但不限於:求職攻略、學習方法、技術乾貨、成長感悟等方面的內容。

3.後臺回覆“資料”即可獲得3T海量學習資料,資料涵蓋各個技術方向,包括Java、C++、前端、大資料、移動開發等方向。對於每個方向,都包含了基礎、進階、求職等部分內容。


 

                          分享你最關心的技術、求職、成長與生活那些事