Java工程師修煉之路(校招總結)

a724888發表於2019-10-14

前言

在下本是跨專業渣考研的985渣碩一枚,經歷研究生兩年的學習積累,有幸於2019秋季招聘中拿到幾個公司的研發崗offer,包括百度,阿里,騰訊,今日頭條,網易,華為等。

一路走來也遇到很多困難,也踩了很多坑,同時我自己也探索了很多的學習方法,總結了很多心得體會,並且,我對校園招聘也做了一些研究和相應的準備。

在今年的秋季招聘結束以後,我也決定把這些東西全部都寫成文字,做成專題,以便分享給更多未來將要參加校招的同學。

更多內容後續都釋出於微信公眾號:黃小斜

大學時期的迷茫與堅定

我的本科專業是電子資訊工程,基本沒有接觸過計算機專業的課程,只學過c語言,然後在大三的時候接觸過java,Android,以及前端開發。

那時候我還不知道軟體開發的水有多深,抱著試一試的態度去應聘了很多公司。結果可想而知。

當年我對遊戲開發很有興趣,特別是對網易遊戲情有獨鍾,但是當我看到網易遊戲研發工程師的招聘要求時,我只能望而卻步,因為它要求學歷至少是985的碩士。

也因為這個契機,我在大三的暑假開始準備考研,花了一個月的時間深思熟慮之後,選擇了我大華科。

畢竟是跨專業,在複習過程還是有點吃力的,但是就靠著一股毅力和執著,半年之後,順利地考上了,成績還意外地非常好。

研究生時期的探索和規劃

對於即將讀研的同學來說,一般有兩件事很重要,一件事是選擇導師,一件事是選擇方向。

我當時本著想要找實習的想法選擇了我現在的導師,事實證明我的選擇還是很正確的。

而選擇方向這件事,我倒是折騰了好久。研一期間我做的最多的事情就是看書了,當時自己的方向還不明確,所以找了很多書來看。當別人都在專研資料探勘和機器學習時,我還在各種方向之間搖擺不定。

我在讀研之前想做遊戲開發和Android開發,但我以前也學過Java Web開發。於是我在網上了解對應方向的資訊,發現遊戲研發的就業面比較窄,並且基於我之前的學習經歷,java開發可能更加適合我。最終在學校的實訓專案中我選擇了Java Web專案,從此也真正意義上地踏上了Java的學習之路。

我的Java入門之路

之前說過,在研一期間看了很多計算機專業的書籍,比如計算機網路,作業系統,資料庫等等,雖然吸收得都不太好,但也算是看過了。

於是我開始踏上學習Java的道路。最開始我找了一些Java的書單,然後買了一些比較基礎的書籍,先啃為敬。那時候我看過《Java從入門到精通》這種爛大街的書,也看過《Java程式設計思想》這種很難懂的書。

一段時間後我感覺吸收效果不好,於是開始把目光轉向視訊課程了。那時候聽舍友力神的建議,到極客學院上看一些視訊課程,我當時就覺得這個講的比書上要好懂一些。後來我又接觸到了慕課網,中國MOOC等網站,逐漸地把相關的技術課程都看完了。

那時候正好我們的專案實訓還在進行,於是我就把趁熱打鐵把這些東西用在了專案當中,並且第一次用部落格記錄下我的實踐經驗。

現在回頭想想,此時的我也只不過是剛剛入門了Java以及web開發。然而那時候不知道天高地厚的我,就開始xjb投各大公司的Java實習崗位了。結果可想而知,那叫一個慘啊。

我的Java進階之路

上文說到我剛剛開始投遞實習崗位,是在研一的下學期。當時整天躲在實驗室,一邊看書一邊看視訊,接到面試時趕緊刷面經,忙的不亦樂乎。那段時間感覺自己的複習狀態和考研差不多。

然而,由於水平確實不咋地,當時我被各大公司的面試官吊打。比如我第一家面的就是百度,三個很簡單的問題一個都不會,人家面試官都不好意思打擊我了。後來我又面了一些大大小小的網際網路公司,雖然情況有所好轉,但是總的來說,我要學習的東西還很多。

在準備面試的過程中,我看了很多面經,也看了很多技術部落格,發現自己的基礎很薄弱,需要系統性的學習。並且這些東西是視訊和入門書籍給不了我的。於是我又踏上了找書的道路。

那時候Java書單氾濫,有的書單質量低下,買來的書看兩眼就看不下去了。直到我看到了“江南白衣的後端書架”這一文章,才發現Java後端書架原來應該是這樣的。於是我照葫蘆畫瓢把相關書籍都買了,這個階段,也算是剛剛踏上Java進階之路吧。

這裡面不得不提幾本書,對學習Java的同學非常重要,一本是《深入理解JVM虛擬機器》,一本是《深入分析Java技術內幕》,以及《Java併發程式設計藝術》。

再後來,憑著一股不到黃河心不死的精神,終於拿到了網易遊戲的實習offer。於是,第一次在大廠實習的機會終於來了,我懷著即期待又憂慮的心情來到了杭州。

我的Java實習之路

在豬場實習的時間並不長,也就持續了三個月不到,當時我們部門在做資料倉儲,於是我這邊主要負責Java Web應用的開發,其實也就是寫一些簡單的後臺介面。

在熟悉了工作流程以後,我很快就適應了工作的節奏,畢竟做的東西也不難,導師也會經常指導,就這樣我完成了一個又一個需求,直到後來家裡有事,我才臨時選擇辭職回家。

由於在網易實習的時間比較短,我也留下了一些遺憾,比如對整個專案的架構不夠熟悉,並且很多相關技術棧也來不及學習。後來我去熊廠實習的時候,儘量避免了這些問題。

熊廠實習的時間長達半年,部門當時做的是私有云,emmm完全是全新的技術棧啊,於是我基本上又是從零開始學習雲端計算,但是由於之前的作業系統和網路基礎不紮實,在學習相關技術時,基本是兩眼一抹黑,學啥啥不會。

這也導致我在上班期間看了很多計算機基礎方面的書籍,包括《計算機網路:自頂向下》,《深入理解計算機系統》等等。當然,這也是因為我的工作內容很簡單。CRUD你懂的。

於是花時間自學成為了我那時候的主旋律,看書,看內網資源,參加技術分享,倒也非常充實。當然,有空我也會看看專案程式碼,瞭解一下技術架構,以便讓自己對整個專案有一個更好的理解。

再後來,2018年來了。

抉擇時刻:實習轉正還是秋招

我是2018年1月份離開北京的。當時面臨幾個問題,是否續租房子,是否繼續實習。還有一個小插曲就是當時養的一隻貓也得帶回去。再三思考後我決定回學校準備秋招。

過年後我就回到學校了,當時我本不打算參加春招,想要潛心修煉準備秋招,但是架不住春招宣傳力度大,並且幾個大廠都標榜著“轉正容易,hc多多”等口號。於是我沒忍住,上牛客投了幾次簡歷,打算面幾家大廠,心想萬一過了就去吧。

簡歷都投出去了,那也只好複習了啊,當時我們宿舍跟打了雞血一樣,一整天都在刷題,從早到晚泡著刷LeetCode,一個月後終於刷到100多題,也算是能應付一下筆試了吧。

春招我投的公司不多,也就at,網易遊戲和京東。最後阿里和京東都給了offer。但是當時阿里的流程走得特別慢,直到內推截止前一天才給我發offer,並且自己也感覺之前面試表現一般,心想我要是去了也是B+,很有可能成為擁抱變化的犧牲品,於是我咬咬牙放棄了,大不了秋招再來。

塞翁失馬,焉知非福,春招的顆粒無收反而讓我可以安心準備秋招,於是我有大把的時間做我想做的事,制定自己的學習計劃,安排自己的生活,不需要去考慮轉正這種麻煩事了。

至此,四月終了,春招告一段落。

Java修仙之路

平時經常逛牛客,我也經常發些面經啥的,於是很多牛油喜歡調侃說“看神仙”。這時候我只能尷尬又不失禮貌的微笑了0。0

在下不才,成不了神仙,最多就是打遊戲的時候能修修仙罷了。

不過你還真別說,網上還真有“Java成神之路”這樣的文章,真的打擾了哈哈。

科普一下修仙梗: 修仙梗的意思是喜歡熬夜的人不睡覺不猝死反而要修仙,然後就被廣大的網友們互相調侃玩壞了,現在熬夜都不叫熬夜了,新潮的說法就是修仙,熬夜不會猝死啊,會增強法力。

不逗你們了,我們們還是進入正題吧。我在五月份的時候做了一個計劃,打算在七月底之前完成複習工作,原因是七月底有阿里的提前批招聘,是我最最重視的一個招聘。這個計劃簡稱三個月計劃,我主要做了三個方面的學習規劃。

一:首先,便是對Java後端技術棧的複習,這也是最重要的一部分,因為面試永遠都是考基礎考得最多。

這部分內容又可以細分為多個方面:

1 Java知識體系:包括了Java基礎,集合類,設計模式,Java併發技術,Java網路程式設計,JVM,JavaWeb,Spring框架等等。

2 計算機基礎:包括了作業系統,計算機網路,資料結構,資料庫,快取等內容。

3 後端進階:包括了分散式理論,以及常見分散式技術比如負載均衡,zookeeper,訊息佇列,分散式快取等等。當然,這裡面也包括系統架構方面的知識,以及RPC,微服務等內容。

4 額外內容:這部分內容因人而異,我主要是因為實習的時候專案涉及了hadoop以及私有云技術棧,所以自己看了很多這方面的東西,譬如Hadoop生態,OpenStack生態,以及docker生態。

我在複習這部分內容的時候,一般先看優質部落格,然後自己整理總結對應寫一些部落格,最後把能夠實現的東西實現一下,這樣一來一個知識點就搞定了。剩下的事情就是重複這個步驟。

下面放上我的部落格: https://blog.csdn.net/a724888

二:其次,便是對演算法的學習了。我也把演算法的學習分為了幾個部分。

1 基礎資料結構與演算法:主要是複習之前學過的資料結構和演算法,額外再看一些演算法書籍,譬如《圖解演算法》,以瞭解常見演算法。

2 劍指offer:劍指offer基本上是面試必考的,所以把它刷個兩三遍是很有必要的。

3 LeetCode:搞定前面兩項之後,刷LeetCode也會有些底氣了,我當時就刷了150題左右,主要也是刷經典的題目。

4 筆試真題:這個就不用多說了,真題是一定要刷的。畢竟各個公司出題的路子都花裡胡哨。

刷題多了,就會遇到很多原題和類似題目,所以,儘早開刷,做好準備吧。

三、最後一部分,則是做專案。大概說下我做專案的幾個要點吧

1 為什麼這時候我還要做專案呢:一來是我覺得實習過程自己接觸的東西太細碎,沒有對全域性做把控,二來是因為想給GitHub加點東西,順便學點新的技術。於是我選擇了當時牛客網上的兩個專案來自己做做看。

2 關於專案選擇:葉神這兩個專案還是講的非常棒棒的,用的東西也很新,程式碼也有提供,避免了自己要寫前端的尷尬,另外,這兩個專案模仿了知乎和頭條,更加接地氣。

3 把專案做到GitHub上:之前對git也比較熟了,所以想把這個專案按照正常開發的流程走一遍,於是我每天都會做一個模組,然後釋出幾個版本,記錄一下版本更新的細節,寫這些東西的時候,自己其實就已經做了思考和總結,感覺還是不錯的。

下面放上我的GitHub: https://github.com/h2pl

就這麼過了三個月,提前批拉開序幕。

秋招回憶錄

從七月初第一次投遞簡歷,到九月初,整整兩個月的時間,大大小小投了幾十家公司,其中很多都是提前批,內推,也經歷了許多的筆試,面試。

期間也拿了幾個offer,包括百度,騰訊,螞蟻金服,頭條,華為,網易(網易雲音樂沒給offer,調到了其他部門)。有幾家直接收到拒信的,包括拼多多,深信服。還有幾家在等待結果。包括快手,鬥魚等。

當然也有一些還沒面試完的公司以及待安排面試的公司,這裡就不展開說了。

八月底基本上提前批就已經結束了,所以一般這段時間正式校招也開始了,各種大規模的筆試也很多,所以大家即使沒有拿到offer也不要灰心,畢竟校招是一場持久戰,基本上要到九月十月才能下結論。我之前分享了很多公司的面經,其實大部分都是提前批的,很多都是直接免筆試的,因為我對演算法並不是很在行,所以感覺還是比較幸運的。

從七月底第一次面試到9月基本佛系,中間經歷了大大小小的面試,這裡只進行簡單的記錄哈,要看面經的話請到我的公眾號:程式設計師江湖。

具體的面經都比較長,這裡大概介紹一下面試的情況,然後我會放上面經的連結供大家查閱。

1 阿里面經

阿里中介軟體研發面經

螞蟻金服研發面經

崗位是研發工程師,直接找螞蟻金服的大佬進行內推。

我參與了阿里巴巴中介軟體部門的提前批面試,一共經歷了四次面試,拿到了口頭offer。

然後我也參加了螞蟻金服中介軟體部門的面試,經歷了三次面試,但是沒有走流程,所以面試中止了。

最後我走的是螞蟻金服財富事業群的流程,經歷了四次面試,包括一次交叉面,最終拿到了螞蟻金服的意向書,評級為A。

阿里的面試體驗還是比較好的,至少不要求手寫演算法,但是非常注重Java基礎,中介軟體部門還會特別安排Java基礎筆試。

2 騰訊面經

騰訊研發面經

崗位是後臺開發工程師,我沒有選擇意向事業群。

SNG的部門撈了我的簡歷,開始了面試,他們的技術棧主要是Java,所以比較有的聊。

一共經歷了四次技術面試和一次HR面試,目前正在等待結果。

騰訊的面試一如既往地注重考查網路和作業系統,並且喜歡問Linux底層的一些知識,在這方面我還是有很多不足的。

3 百度面經

百度研發面經

百度研發面經整合版

崗位是研發工程師崗位,部門包括百度智慧雲的三個分部門以及大搜尋部門。

百度的提前批面試不走流程,所以可以同時面試好多個部門,所以我參加百度面試的次數大概有12次左右,最終應該是拿了兩個部門的offer。

百度的面試風格非常統一,每次面試基本都要到電腦上寫演算法,所以那段時間寫演算法寫的頭皮發麻。

4 網易面經

網易研發面經

面試部門是網易雲音樂,崗位是Java開發工程師。

網易是唯一一家我去外地面試的公司,也是我最早去實習的老東家。

一共三輪面試,耗時一個下午。

網易的面試比我想象中的要難,面試官會問的問題都比較深,並且會讓你寫一些結合實踐的程式碼。

5 頭條面經

今日頭條研發面經

崗位是後臺研發工程師,地點選擇了上海。

我參加的是位元組跳動的內推面試,當時找了一個牛友要到了白金碼,再次感謝這位頭條大佬。

然後就開始了一下午的視訊面試,一共三輪技術面試,每一輪都要寫程式碼,問問題的風格有點像騰訊,也喜歡問一些底層知識,讓我有點懵逼。

如果想看更多公司的面經,也請移步微信公眾號:程式設計師江湖。


另外,我上週還面試了一次亞馬遜,因為很多知名外企到十月才開始招人,所以閒了很久之後我又重操舊業了,可能在面完大摩和微軟之後,秋招才能正式結束吧

結束也是開始

中秋節剛過,國慶節又要到來了。正如每一年的秋招一樣,年復一年,在時間面前我們也是渺小的塵埃。

秋招結束不代表著結局,而是新的旅程開始,馬上,畢業論文,offer選擇,入職準備,畢業旅行等事項也要提上日程了。

不知道明年我們看待學弟學妹的秋招時,會是怎樣的一種心境呢。

微信公眾號

個人公眾號:黃小斜

黃小斜是跨考軟體工程的 985 碩士,自學 Java 兩年,拿到了 BAT 等近十家大廠 offer,從技術小白成長為阿里工程師。

作者專注於 JAVA 後端技術棧,熱衷於分享程式設計師乾貨、學習經驗、求職心得和程式人生,目前黃小斜的CSDN部落格有百萬+訪問量,知乎粉絲2W+,全網已有10W+讀者。

黃小斜是一個斜槓青年,堅持學習和寫作,相信終身學習的力量,希望和更多的程式設計師交朋友,一起進步和成長!

原創電子書:
關注公眾號【黃小斜】後回覆【原創電子書】即可領取我原創的電子書《菜鳥程式設計師修煉手冊:從技術小白到阿里巴巴Java工程師》

程式設計師3T技術學習資源: 一些程式設計師學習技術的資源大禮包,關注公眾號後,後臺回覆關鍵字 “資料” 即可免費無套路獲取。

考研複習資料:
計算機考研大禮包,都是我自己考研複習時用的一些複習資料,包括公共課和專業的複習視訊,這裡也推薦給大家,關注公眾號後,後臺回覆關鍵字 “考研” 即可免費獲取。

技術公眾號:Java技術江湖

如果大家想要實時關注我更新的文章以及分享的乾貨的話,可以關注我的公眾號【Java技術江湖】一位阿里 Java 工程師的技術小站,作者黃小斜,專注 Java 相關技術:SSM、SpringBoot、MySQL、分散式、中介軟體、叢集、Linux、網路、多執行緒,偶爾講點Docker、ELK,同時也分享技術乾貨和學習經驗,致力於Java全棧開發!

Java工程師必備學習資源: 一些Java工程師常用學習資源,關注公眾號後,後臺回覆關鍵字 “Java” 即可免費無套路獲取。

我的公眾號

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69906029/viewspace-2659972/,如需轉載,請註明出處,否則將追究法律責任。

相關文章