談一個普通211計算機研究生學渣的Java後端開發的面試之路

談一個普通211計算機研究生學渣的Java後端開發的面試之路

爲什麼寫這篇博客?

2020年是特殊的一年,新冠肺炎肆虐全球,疫情造成的影響遠比人們想象的嚴重,所產生的蝴蝶效應讓很多不可能變成可能,奧運會推遲舉行,NBA長期停擺,想都不敢想的加長寒假包。在如此特別背景的一個午後,窗外陽光明媚☀️,促使我萌生了寫一篇博客的想法,記錄一下去年秋招的點點滴滴,想着給實驗室的師弟師妹們留下點什麼。因此這篇文章是記錄我秋招面試過程(校招時拿到百度、美團、搜狗等Offer)的一些心得,主要是關於Java後端開發的面試準備以及優秀的複習資料等,希望看到的人少走點彎路,少踩點坑。

面試的那些事兒~

關於面試的那些事兒我準備分兩部分介紹,首先敘述自己準備面試以及筆試面試的過程,想給讀者一種代入感,通過我的體會提前感覺一下面試的整體感覺,然後對每個關鍵節點給出自己的複習建議。

我的面試經歷

什麼時間開始準備面試?

非洲經濟學家Dambisa Moyo編寫的《dead aid》一書中,其結束語有這樣一段話“種一棵樹最好的時間是十年前,其次是現在”,所以我覺得當你看到這篇文章的時候就可以準備了。我是在19年開學後開始準備的,3月份匆匆複習了一個月,在4月初的時候鼓足了勇氣投了阿里的實習,由於準備的不充分,結果可想而知。面試失敗後,決心總結經驗好好複習,就沒有再投別的公司,現在看來也不是個好的選擇,其實是可以再多嘗試嘗試,熟悉熟悉面試感覺也是好的。就這樣時間很快到了7月份,從面試阿里到現在過了3個月,每天都在惡補知識點:Java基礎、JVM原理、多線程、Mysql、Redis,當然還有算法,劍指Offer刷了一遍,Leetcode經典100道也刷了一點,一點就是一點,真的不多,由於前期沒有方法,效率很低。突然有一天牛客網上更新了各企業提前批筆試面試時間,然後節奏就開始加快了😱。

筆試面試蜂擁而至

當你在網上投了第一份簡歷,那麼你的秋招筆試面試就開始了,這之後你很難心無旁騖的只是抱着書本啃了,牛客上第一家開放的公司是一家遊戲公司-多益網絡。記得當時是和實驗室小夥伴一起答題,大家都是第一次網上筆試答題,都是有點緊張和興奮的,所以每次答辯前都要上個廁所,前幾次答題大家狀態都不好,知識點掌握的不全面,編程筆試的編譯器也與平時開發時不同,甚至程序輸入輸出都不會寫,但是凡事都有第一次,慢慢就好了。由於我多益網絡填報崗位問題,沒有體驗到面試環節,只能從身邊小夥伴那裏獲取經驗和信息,聽着他描述電話面試過程,還是有些憧憬和期待的。
這時候就進入了秋招的第一個階段-提前批,提前批顧名思義就是比正式批次提前的那一批,現在來看這階段是一些大廠在招那些有實力的大佬,印象裏這時候牛客上的發帖都是阿里巴巴、菜鳥、騰訊、美團、網易這些大廠,通過在牛客上找到內推碼,就開始投遞了。提前批的好處是免筆試的,由於投的人相對來說並不多,hr或者面試官會很快和你聯繫,預約面試時間,然後就開始複習+遠程面試了。雖然提前批不用筆試,但是一面和二面的面試官還是會利用平臺讓你寫算法代碼,其實和筆試的效果是一樣的,都是檢驗你的代碼能力。
慢慢的正式批也就到來了,由於我前期投的比較多,所以這個階段還是很充實的,基本上每天都有筆試或者面試,這個狀態會一直持續到你拿到心儀的Offer,否則就會一直持續下去。由於過程時間跨度很大,再加上覆習強度很大,所以需要有個健康能打的身體才行。在9月初的時候我去北京參加京東、小紅書和美團的提前批現場面,京東hr面😡掛了,小紅書和美團走完了全部流程,回學校等消息。這裏想說的一點是,要是覺得自己準備的還可以,投遞簡歷的時候可以早一點,第一個好處是讓提前批的面試和正式批的筆試串開,第二個好處是越早面試就可以越早發現問題。回到學校後又陸續進行了正式批的筆試和麪試,直到九月底大廠基本就結束了。

Offer選擇竟然比面試還累心

由於九月底大廠基本都面試結束,而銀行和國企不是我的選擇,因此我就停止了簡歷投遞,每天刷着牛客等消息。和hr談offer是一個很重要的部分,大廠還好,公積金和福利待遇基本都差不多,要是準備簽約小公司需要多留心,問清楚問明白。Offer選擇其實也是個頭疼的問題,公司地點、開發方向、部門好壞還有薪資福利都是要考慮的問題,我的offer裏面沒有能滿足所有心裏預期的,這個時候就需要衡量抉擇了,於是我諮詢身邊同學和朋友,綜合考量後跟着心走。
以上就是我秋招時候的經歷,回憶起來還能記起當時的興奮和緊張,對這部分介紹做個總結,秋招能儘早準備還是儘早準備,調整好心態,過程中會有緊張、疲憊甚至是崩潰的時候,用自己的方式解壓就好。其實凡事走過來再回頭看,也就是那樣,只要自己盡全力不遺憾就好。

複習方法和建議

1.明確自己的未來方向

先確定自己對於未來的規劃是什麼,對於互聯網公司、銀行和央企國企的複習準備是不同的。時間上來講,互聯網公司招聘會比後兩種來的早,集中在8、9兩個月份,銀行和央企國企一般在10月份,也有個別好的研究所招聘時間很早,因此確定自己的未來規劃好,做出最合理複習策略,否則兩手抓會很累,效果也不見得好。要求方面,互聯網公司對於技術要求高(代碼能力、大賽獲獎等),而銀行和央企國企考察的是綜合能力(自身條件、校園活動、家庭地址或者未來規劃),由於我沒有參與過銀行和國企的面試,所以就不過多介紹了。

2.算法-開發-測試-產品

在確定了什麼類型的公司後,就是對具體從事的領域的選擇,這裏我劃分爲四類:算法、開發、測試和產品。由於我參與開發類的招聘,對其他領域不是很瞭解,只是通過和同學朋友聊天瞭解到一些信息,分享出來僅供大家參考。算法類這幾年發展的很快,無論是學術界還是工程上,推薦、規劃等優秀算法可以給企業提供更大的利潤,相比於開發和測試顯得高端一些,薪資水平也更加誘人,因此算法崗位近幾年特別火爆。但是通過去年的招聘情況看,很多算法崗位的同學最後轉到應聘開發崗,從這一點能夠看到算法崗位的競爭壓力很大,需要有很好的數學基礎和邏輯分析能力,同時頂會論文以及高水平的比賽會成爲你的加分項,因此選擇算法崗位的同學要更加努力。開發崗位又分爲前端開發、後端開發和數據開發,可以根據自己的情況自行選擇。測試和產品我瞭解的不是很多,感興趣的可以自己瞭解。

3.簡歷-重點中的重點

簡歷是你的明信片,它會先於你見到面試官,或者因爲它你甚至見不到面試官,可見它的重要性。這裏要說的有四點:

  • 1.樣式簡明且大方
    首先簡歷的樣式要簡單、明亮,詳略得當,給人第一印象要乾淨,顏色方面推薦藍色、天藍色等明亮顏色,不推薦紅色和黃色,紅色的意思是重點或者警告,容易給面試官緊張氣氛的感覺,黃色又不夠顯眼,也不建議使用。寫明自己的有用信息(電話、出生年月、郵箱、地址)就可以了,要是有Github或者高質量的博客當然是加分項。
  • 2.內容豐富吸引人
    在樣式基本沒問題基礎上,就是內容了,也是簡歷展示部分的關鍵點,要做到把自己掌握的知識點展示出來吸引面試官,同時還可以通過設計,引導面試官問之前有所準備的問題,從而掌握面試節奏,取得好的面試效果。
    專業技能的介紹部分,有的同學這部分知識描述的更細,比如Java併發基礎部分,具體到多線程或者鎖機制,這樣有利有弊吧,面試官也是身經百戰的,如果寫的過細,你回答的不夠深入,效果就大大折扣了,同時要理解掌握、熟悉和了解的關係,結合自己的掌握程度正確填寫。
    項目部分的介紹要詳略得當,簡要描述項目背景和應用的技術,重點突出自己在項目中解決了具體問題,可以用數字表示問題解決後系統的提升,例如通過增加索引後查詢速度提高30%等。大部分同學的研究生階段可能接觸不到很多很好的項目,這個時候大都通過網上的培訓班視頻學習,但是有個很大的問題是最後大家都選擇了最火熱的秒殺電商項目,面試官在面試了大量同學後會比你更瞭解這個項目,這就加大了面試難度。因此,在選擇項目上要慎重,從項目用到的技術棧、併發量等多個角度選型,確定具體項目後就踏實的學習,動手實踐發現問題並嘗試解決,可以把解決過程記錄下來,面試前回看一遍,面試時會起到很好的效果。
  • 3.展示內容全掌握
    對於簡歷上寫的專業技能和項目模塊,一定要吃透,這一點尤爲重要。面試官在選人的時候,在判斷基礎知識的掌握和編寫代碼能力基礎上尋找你的閃光點,如果對於簡歷上所展示內容都不能很好掌握,那麼面試效果會大打折扣,影響到面試氣氛。因此,對於Java集合源碼,mysql索引、多線程問題等簡歷出現的核心知識點一定要深入研究,對於項目要有自己的思考,比如爲什麼使用redis,如何對數據庫進行分庫分表等細節問題。
  • 4.支持多版本適應
    可能你對大數據開發和Java開發都比較感興趣,那麼你需要針對不同公司不同崗位對簡歷進行微調,這裏Java開發和大數據開發算是比較接近的,Java基礎過關的情況下還掌握Hadoop,Spark,Flink的知識的同學可以根據情況填報,個人經驗掌握大數據技術情況下在面試Java會有加分。

4.專業技能

從Java開發的角度,所應該具備的專業技能分爲基礎部分(數據結構與算法、操作系統、網絡、數據庫、Java知識點、設計模式、Spring)和進階部分(分佈式、微服務)。我將複習過程以及後續學習中發現的優秀網站和資料分享給大家,你會發現資料和要學習的東西越來越多,需要自己甄別適合自己的。

以上就是我積累的優秀資料,包括網站、視頻和書籍,有很多是我在面試過程或者面試之後看到的,也沒有全部看,但是我感覺都是很不錯的資源,以後我還會慢慢複習,大家根據自己的需要學習。最後,我簡單列舉我面試過程中的高頻問題,實現LRU(被問到很多次),排序算法及其時間複雜度分析,哈夫曼樹,滑動窗口最大值、二叉樹最大子路徑和(一系列問題),網絡方面三次握手、四次揮手過程,JVM全部,Hashmap源碼擴容一系列問題,多線程一系列,mysql索引及底層實現,數據庫分庫分表,Redis,還有海量數據處理等等,這些問題在牛客上搜索會有很多面經,大家根據自己想去的公司複習最近兩年的就好。

5.項目

項目這塊不過多介紹了,大家根據自己情況來選擇,簡歷中一般要寫2-3個項目,可以把自己掌握最好的發放在最前面,也可以按照時間順逆序,項目難度和技術棧最好有一些變化,最後還是那句話,項目要深入研究掌握,要體現自己的項目經驗和成長,要有自己的思考。

在專業技能和項目介紹結束後,我想額外補充一點心得,如果時間來的及,我建議大家在算法上多花費些時間和多用點心。第一個原因是筆試中算法代碼的分數比重很大,如果你的算法代碼能力不過關,就談不到面試及後續。第二個原因是大廠在考覈時,主要是基礎知識和算法的考量,因爲大家所經歷的項目大都差不多水平,畢竟大家在學生期間不會經歷淘寶雙十一的海量併發項目,因此手撕算法能體現一個人的編碼能力和邏輯思維。第三個原因是基礎知識只要肯花時間研究,大家都掌握的水平都差不多,如果你編碼能力強,你會發現面試時很有自信,會很容易征服面試官,而且你就會越學越輕鬆,最終形成一個良性循環。所以我建議前期複習一定要把算法學好,還有一點不要背算法,要理解思路舉一反三,這樣最後才能輕裝上陣,達到張無忌全忘了的境界。複習過程中,知識點早上記住了晚上有點印象,等過了一週就忘了,你不要懷疑自己,這是正常的,因爲你沒有實踐。解決的辦法是你要麼寫個程序跑幾遍,要麼多看幾遍,我推薦大家可以晚上睡前拿出半小時將白天學的知識看一遍,時間不充分只看大綱或者關鍵點就行,慢慢你就知道蜂蜜是😋甜的。

6.技巧

面試過程你會投遞很多公司,甚至一個公司你會投多個崗位,如果不記錄會造成很大困擾,而且你可能會發現投簡歷比筆試面試還頭疼,我的建議是做一個excel,記錄你投遞公司、崗位、投遞時間、筆試時間、一面面試時間、二面面試時間等等,也可以把面試的問題和回答記錄下來,因爲面試到最後你會發現,各公司問的也不會差很多,多積累複習會越來越有感覺,慢慢會輕鬆很多,面試說到底就是查缺補漏,提升自信和麪試技巧的過程。

7.團隊

在校學生組隊複習會提高效率,複習過程中可以相互學習,總比自己遇到問題想了一天還沒想出來快一些,但是單獨思考也是一種優秀的品質;面試筆試中也可以分享企業筆試面試時間,面試忙的時候甚至會記錯時間,正式批面試集中在9月份,最高時候我一天面試了三家公司,每個公司2-3面,到最後腦子真的不轉了。當然不是每個人都適合團隊學習,尤其是受別人的狀態對自己影響大的人,我這裏的建議是可以尋找平時在一起志向相投的老鐵,人數在5人左右,這樣經歷過秋招戰火洗禮後的友誼更加美好,好基友一輩子😂。

8.處理與論文寫作的關係

處理好找工作複習和論文寫作的安排也是秋招中關鍵部分,我的建議是複習前期可以兩手抓,8月份和9月份兩個關鍵月全力衝擊面試,如果順利的話十一前完成秋招,再用七天假期調整心態,回來踏踏實實的寫論文節奏是最好的。但是要在全力衝擊面試前確定好題目和創新點方法,這樣筆試面試時候心也是有底的。

9.心態&節奏

前面說到秋招是一個漫長的過程,因此無論是前期複習、中期發力還是後期衝刺都要保持一個良好的心態,帶着開心和興奮地心態去接受新知識會讓你身體很疲憊但是精神很快樂,相反就會很累。每個人調整心態的方式都不相同,可以通過聽音樂、跑步、和朋友唱歌、跟家人煲電話等等來釋放心裏的壓力。面試時候良好的心態會讓你最大程度發揮自己的實力,大部分面試官和hr面試態度都是很不錯的,如果你運氣欠佳,遇到面試官不友好,這時你也要調整自己,因爲改變不了別人你只能改變自己。而且這也是面試的一部分,壓力面試下看你調整自己的能力,這種面試處理得當反而通過的機率更高。最後,我想說的是秋招只是人生的一站而已,不要因爲別人找的快或是找的好,就給自己帶來壓力,慢慢來花總會開,保持好自己的節奏,在面試中提高自己就好。

10.學習方法

最後來說說我積累的學習方法,在學習新知識時候,可以先通過視頻課程做個入門,從宏觀上了解大概,再通過書籍深入仔細研究,過程中配合動手實踐來加深理解,然後用筆記做個總結,最後反覆回看和思考,並和同類型知識進行橫向擴展,每次都會有不同的發現。(道理我都懂,但我做的也不好,慢慢培養好習慣)。特別感謝明明如月學長在我面試時傳授複習方法,他的另一個慕課專欄推薦給大家解鎖大廠思維:剖析《阿里巴巴Java開發手冊》。另外推薦大家使用知乎和B站來拓寬學習方法,可以通過知乎找到好的資源和網站,B站上除了鬼畜、二次元和淡黃的長裙外還有很多很好的學習資源,比如我最近發現的三太子敖丙大場面試我是程序汪的大廠面試深度學習優秀up主漂亮小姐姐將算法Java源碼,很遺憾沒有早點看到這些😏,你看的多了,系統就會給你推薦更多更好資源。還有很多優秀的軟件比如整理思路的腦圖軟件XMind,MindNode P,還有整理筆記的OneNote,有道雲筆記,GoodNotes等等,這類軟件的優點和使用,知乎上都有詳細的文章,我就不介紹了。最後的最後,有些大廠喜歡在面試最後問一些邏輯題來決定是否給你SpecialOffer,例如:5枚大小一樣的硬幣,如何擺放兩兩接觸?水桶倒水?正則表達式匹配IP?4個0如何添加運算符得到24?這些問題大家不用刻意準備,需要的是天賦以及平時遇到多思考,你可以帶着這幾個問題着手準備秋招了🚀

到這裏我想說的話就說完了,沒想到自己能寫這麼長的博客,以後多凝練語言減少廢話,祝願看到這篇博客的師弟師妹和優秀的陌生人能在秋招中走的順一些,拿到理想的Offer。原創文章,手寫不易,轉載註名,受益三連。

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