眾所周知,受疫情影響,網際網路迎來了『寒冬』,大廠 HC 驟減,騰訊基本不招人,華為也不再是有手就行,阿里某些部門流傳只招 23 所院校,在如此嚴峻的形勢下,上岸大廠變得愈發困難...
大家好,我是一楓。本科末流 211,碩士中流 985,均是電子資訊專業,非科班、無實習、無比賽,最終上岸位元組跳動,崗位是後端開發。
我是在讀研的時候接觸到的 Java,在 B 站學習了 Java 基礎、MySQL 基礎、JavaWeb、SSM、SpringBoot,但是那時候只是懂個皮毛,比如 MySQL 就只會 Insert、Update、Select、Delete,像什麼索引、事務、慢查詢等都一竅不通。
正式準備秋招是從 2022 年的一月份開始的,經過長達大半年的努力,拿到了位元組、美團、攜程等 offer,雖然說並不多,但也是很滿意了。
在我的面試過程中,基本上技術面都能夠通過,很多是在 HR 面或排序中掛掉了,如螞蟻、OPPO、蔚來等,在這裡還是提醒一下大家,如果有機會實習的話,一定要實習,因為現在後端開發比較卷,在大家知識面差不多的情況下,企業肯定還是會傾向於招聘有實習經驗的同學,比如我在面京東的時候,面試官就很可惜的說,我雖然基礎較好,但是前面的幾個競爭者都有美團、華為等公司實習,我這方面比較吃虧,還安慰我說可能還有其他部門撈...
下面是對秋招整個過程的一點小建議,希望有所幫助。
因為我主要準備的是 Java 後端,下面說一下個人的經驗。
在一場面試過程中,一般包括三方面的考察:基礎知識、專案經歷、演演算法能力,都比較重要!
這方面涉及的內容比較多,我認為以下內容是較為重要的:Java 基礎、JVM、Java 並行、MySQL、Redis、計算機網路、作業系統、Spring。一般情況下,我會先看 B 站上的視訊入門,然後再看書籍深入,不懂的或者欠缺的知識點再搜部落格看。
Java 基礎
對於 Java 基礎部分,重點是 Java 集合,比如 HashMap,這塊我沒有看過具體的書籍(《Java 核心技術 卷一》一直在吃灰...),主要是看的部落格和原始碼,也會看一些網上總結的面試指南,如 JavaGuide、CS-Notes、Java 面試小抄等,都是非常全面的。
JVM
這塊我以前也沒了解過,一直感覺比較難,但後來面過幾場試後發現,問得問題都比較固定,比如 Java 執行時的五巨量資料區域、垃圾收集演演算法&垃圾收集器、類載入過程等。推薦如下:
視訊:黑馬程式設計師JVM完整教學,Java虛擬機器器快速入門,全程乾貨不拖沓,講的挺不錯的,簡短精悍!
書籍:《深入理解 Java 虛擬機器器 第 3 版》,必讀書籍,基本上面試的東西上面都有!
Java 並行
這塊比較重要,面試高頻點,比如 synchronized 鎖升級、volatile 原理、ThreadLocal 原理、執行緒池原理等。推薦如下:
MySQL
這塊比較重要,作為後端,我們需要經常和資料庫打交道,推薦如下:
Redis
這塊面試題較為固定,比如 Redis 的資料結構、持久化、哨兵、快取擊穿、快取穿透、快取雪崩、Mysql 和 Redis 的資料一致性等,推薦如下:
計算機網路
這塊重點需要掌握以下協定:HTTP、HTTPS、DNS、TCP。推薦如下:
作業系統
這塊我被問到的很少,基本也就是問一下為什麼要有虛擬記憶體、程序排程有哪些演演算法等。推薦如下:
Spring
對於 Java 開發而言,Spring 肯定是非常重要的,推薦如下:
其他
因為沒有實習,所以這塊我是比較匱乏的,大家能去實習還是要去實習!我簡歷上一共寫了兩個專案,分別是牛客網的仿牛客論壇專案以及讀研期間做的一個導師橫向課題。因為做的橫向課題與後端關係不大,基本沒有被問過,大部分面試官都是問我仿牛客論壇專案。
仿牛客論壇這個專案涉及的內容挺豐富的,而且技術棧比較多,非常適合練手。我是在跟著敲完這個專案後,對專案進行了重構,比如它原先使用的是 Kafka,我換成了自己熟悉的 RabbitMQ,比如使用 SpringSecurity 和 JWT 重構了登入部分,又比如將專案重構出了一個前後端分離的版本(前端找的實驗室同學做的)。本來還想著將私信功能用 WebSocket 進行重構,但是時間不夠,我也不想再折騰了...
大家在做專案後,也可以想想能不能利用自己的所學知識點對專案進行重構,同時提前想好如果面試官讓介紹專案時應該如何說,問專案的亮點和難點時,應該怎麼回答(如果實在沒有亮點或難點,也可以說一下自己學到了哪些知識,比如如何限流的、用到了 Redis 的哪些資料結構等)。
近些年來,演演算法是後端面試的重中之重,基本上每場面試都會寫至少一道演演算法題,大家務必重視。
我是先看了《演演算法 第 4 版》這本書瞭解了一些基本的知識之後,便開始在力扣刷題了,一共刷了 200 道左右,主要刷的就是 Hot100 和劍指 Offer,期間也看了一遍程式碼隨想錄,學習了挺多做題套路。
在刷題過程中,Hot100 是超級重點,很多面試官都會出上面的題目,基本上 Hot100 能吃透,面試題目問題不大,我整個秋招一共刷了 3 遍 Hot100 和 2 遍劍指 Offer,後期刷的速度越來越快,比如寫快排基本都不用怎麼想,幾分鐘就完整寫出來了。
在準備秋招過程中,我覺得最重要的一件事就是做筆記了,畢竟後端的知識非常多,某個知識點一旦不回顧,可能很快就忘了,整個過程中,我一共記錄了超過二十萬字的筆記,有三百多頁。
網上總結的知識點筆記一方面可能知識點不全,另一方面可能寫的比較難懂,甚至有些錯誤。而自己整理的筆記,畢竟是寫給自己看的,那麼肯定是更易於理解的,下次忘了的時候也能夠通過看筆記迅速回憶起來。
每隔一段時間,我都會全面複習自己的筆記,甚至『背誦』,而且會經常對自己的筆記進行重新整理,畢竟伴隨著學習的深入,很多知識點可能理解的更為透徹。
大家如果需要我的筆記作為參考的話,可以關注或私信『一楓說碼』,免費分享哈!
最後,大家要穩住心態,不要放棄任何機會,加油,你一定會找到理想的工作!