談一個普通211計算機研究生學渣的Java后端開發(fā)的

談一個普通211計算機研究生學渣的Java后端開發(fā)的面試之路

為什么寫這篇博客?

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

面試的那些事兒~

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

我的面試經(jīng)歷

什么時間開始準備面試?

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

筆試面試蜂擁而至

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

Offer選擇竟然比面試還累心

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

復習方法和建議

1.明確自己的未來方向

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

2.算法-開發(fā)-測試-產(chǎn)品

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

3.簡歷-重點中的重點

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

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

4.專業(yè)技能

從Java開發(fā)的角度,所應該具備的專業(yè)技能分為基礎部分(數(shù)據(jù)結(jié)構與算法、操作系統(tǒng)、網(wǎng)絡、數(shù)據(jù)庫、Java知識點、設計模式、Spring)和進階部分(分布式、微服務)。我將復習過程以及后續(xù)學習中發(fā)現(xiàn)的優(yōu)秀網(wǎng)站和資料分享給大家,你會發(fā)現(xiàn)資料和要學習的東西越來越多,需要自己甄別適合自己的。

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

5.項目

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

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

6.技巧

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

7.團隊

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

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

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

9.心態(tài)&節(jié)奏

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

10.學習方法

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

到這里我想說的話就說完了,沒想到自己能寫這么長的博客,以后多凝練語言減少廢話,祝愿看到這篇博客的師弟師妹和優(yōu)秀的陌生人能在秋招中走的順一些,拿到理想的Offer。原創(chuàng)文章,手寫不易,轉(zhuǎn)載注名,受益三連。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 前言 思來想去,還是覺得有必要把自己這一路的經(jīng)歷寫出來給小伙伴分享分享,也感謝身邊人對自己這一路來的幫助。 首先自...
    superwqc閱讀 2,213評論 1 1
  • 我想去擁抱你 即使間隔春秋山河阻攔 風雨交加 路遙馬遠 我都可以跨越重重艱險去找你 唯獨你不愛我 我連邁起腳尖的勇...
    濁小四閱讀 173評論 1 1
  • 孤石只有兩個知已, 第一個是誰? 他拿著一把笤帚, 悄悄地走進了我的心里。 第二個是誰? 我拿著一把笤帚,...
    孤石劉琳鋒閱讀 139評論 0 0

友情鏈接更多精彩內(nèi)容