看完助你拿offer-21屆雙非二本的一點點小經驗(已拿offer)

java識堂 發佈 2020-02-25T21:45:22+00:00

2.24,我獲得了我春招開始投遞簡歷以來的第一個 Offer 先說一下故事背景~筆者雙非二本本科, 21屆, 在校期間參與過 ACM 但是成績較差:省賽銀,區域賽當炮灰,B組C/C++藍橋國二,去年9-11月花兩個月時間寫了個Demo。



2.24, 我獲得了我春招開始投遞簡歷以來的第一個 Offer 先說一下故事背景~

筆者雙非二本本科, 21屆, 在校期間參與過 ACM 但是成績較差:省賽銀,區域賽當炮灰(簡歷沒寫),B組C/C++藍橋國二(因為成績菜所以就只有用藍橋充數了~其實大廠一般不會看藍橋成績的),去年9-11月花兩個月時間寫了個Demo(只寫了一半不到吧,因為有很多功能其實都沒寫,這個在項目README里能看到)。

到目前為止已經面試的有京東(上周末一面結束)、阿里(提前批CBU二面,ICBU一面)、字節(一面涼,這是第一次參加的面試,體驗極差~)

這裡我試著總結一下我自己在面試過程中所遇見的問題和思考吧

如果需要進入CVTE(目前我只拿到了這個Offer,所以只能用這個舉例,而且我是實習,校招這種會更難一點點)這樣的公司的話大致需要以下幾點(下面列出的大概有六分之一我面試的時候也不會~)

原始知識積累

這裡指的原始知識是一些常見的概念。比如我要應聘web後端研發,那麼需要知道的應該有以下知識:

  • MySQL(事務、索引、存儲引擎)
  • Java基礎(常用的集合類、JVM、Java基礎語法、並發編程)
  • 常用的中間件(Redis)
  • 計算機網絡(TCP/IP、HTTP等)
  • 一點點項目經驗

以上所有點,都基本需要保證自己能夠針對某一點不間斷的描述20分鐘左右乾貨(比如MySQL的事務就可以算做一點)。 這裡總結一下上面知識問的比較高頻的部分

MySQL

  • 事務 事務特性(ACID)事務的隔離級別(讀未提交、讀已提交、不可重複讀、序列化)分別能解決哪些問題(髒讀、不可重複讀、幻讀丟失修改)MVCC(多版本並發控制)事務的回滾(undo、redo日誌)
  • 索引 索引有哪幾種索引的底層實現,b+樹和紅黑樹的比較、和b樹的比較索引失效索引優化策略explain慢查詢優化
  • 存儲引擎 MyISAM 和 InnoDB 的區別兩者之間索引結構的區別各自的使用場景
  • 鎖(共享鎖、排他鎖、行鎖、表鎖、間隙鎖)
  • SQL語句(常見聚類函數的使用、表連接查詢)

Java基礎

  • 集合類 HashMap 和 ConcurrentHashMap(基本上是場場必問,需要了解源碼)ArrayList、LinkedList、TreeMap、LinkedHashMap、HashSet等需要了解底層數據結構和各容器之間的優劣勢HashMap 和 ConcurrentHashMap在JDK不同版本的改動以及原因(JDK1.7、JDK1.8)
  • 常見基礎(這個很多,可以參考其他面經,我這裡只提幾個比較經典的) String為什麼不可變String、StringBuilder、StringBuffer的對比接口和抽象類的區別單例模式(幾種實現方式的區別最好具體了解下,因為從這裡可以問到JVM中的內存結構和JVM對於多線程的一些處理策略)
  • JVM(較重要) 類加載機制常見GC算法JVM內存模型JVM運行時內存區域常見垃圾收集器(主要是CMS、G1,知道ZGC並且能說出原理是加分項)常見的啟動參數JVM內存溢出的分析過程鎖(主要是synchrized、volatile這兩個關鍵字在JVM中執行的行為)
  • 並發編程 創建線程的幾種方式線程池原理以及參數含義死鎖產生條件以及解決策略J.U.C下部分類源碼閱讀Lock接口下實現的鎖和synchrized關鍵字的比較, 還有各自的優缺點AQS(抽象隊列同步器)

Redis(一般是結合項目問)

  • 常見用途
  • 底層數據結構(SDS、字典、跳躍表、鍊表、壓縮數組、整數列表這幾個都需要了解)
  • RDB 和 AOF 兩種不同備份方式的比較以及優缺點(從各自原理、性能、穩定性答)
  • 跳表和紅黑樹之間的比較(從插入效率、實現方式、內存消耗以及特殊條件查詢幾方面進行比較)
  • SDS和原始字符串的比較(從緩衝區溢出、擴容方面答)
  • 字典和HashMap的比較(擴容方式、擴容大小)

計算機網絡

  • TCP(需要深入了解) TCP頭部(大概知道頭部能夠傳遞哪些信息,常用的部分需要記住占據了多少bit)三次握手四次揮手(具體到兩端之間的狀態)每一次握手揮手失敗的處理擁塞控制(慢開始,快重傳、擁塞避免、快恢復)流量控制(零窗口的含義、接受窗口的協商)Nagle(糊塗窗口綜合症)常見的攻擊(SYN泛洪攻擊、DDoS)
  • HTTP Get 和 Post 的比較Session 和 Cookie 的比較常用的 HTTP 頭部常用的 HTTP 狀態碼HTTP1.0、1.1、2.0三個版本各自的特性HTTPS中的SSL握手過程常見的攻擊(CSRF、XSS)

簡歷

首先簡歷是非常非常重要的,作為技術崗, 簡歷上跟技術無關的東西要一筆帶過, 同時不推薦寫學生會相關經歷, 因為面試過程中有一面是你入職後的直屬leader擔任面試官,而且對學生會經歷不看好的比看好的人多。簡歷中可多列舉技術點,比如寫了熟悉Java基礎,最好寫上能夠證明的東西,比如熟悉Spring框架,曾深入剖析過Spring-Core源碼這樣子。不要乾癟癟的只寫個熟悉MySQL上,這樣會讓面試官很難發揮,只能天南海北的問。如果撞到你會的點上最好,如果沒撞上虧的是自己。我這裡也可以給大家做簡歷參考,信得過我的話可以把簡歷發送至me@bestsort.show,當然我也只是根據我的經驗提出相應的建議,不一定全部正確。

個人博客且內容比較充實的的可以將博客地址放在明顯位置,加分的~

交流

在面試過程中,很重要的一點就是和面試官的交流了,如何去把一個事物在幾乎沒有準備的情況下清晰地描述出來(描述的時候不支支吾吾,一句話內不要大量出現然後、就是、emmm這樣的詞彙), 如果碰見不會的,千萬千萬不要口胡, 技術面的面試官一般來說只要問了你這個問題,就說明他是知道答案的,隨意信口開河的話給人的觀感很差。要知道每一輪面試表現都會記錄,Offer的發放是根據幾輪面試情況綜合考評的。如果不清楚這一方面的知識的話,直接給面試官說明即可

項目

項目是非常重要的,我在投遞阿里提前批的時候面試官就建議我們:項目經驗哪怕是拿課設改改都行,千萬別空著,包括打ACM的同學也是。 當然,項目最好不是Demo不是商城/秒殺。商城、秒殺可能是很多人都會跟著視頻做的一個項目,但是面試官見過的肯定比你多的多,如果你是面試官,遇到了一群抄一樣答案的你會怎麼辦?而且個人商城、秒殺這一類項目有一個巨大的缺點:沒法落地。沒法落地就代表這個項目沒經過實際環境的考驗,而沒落地的項目對大廠而言其實本質上和Demo沒太大區別,都是Demo,為啥不做一個其他比較稀有的東西呢?自己憑能力去寫一個簡陋的web server,絕對能秒殺商城、秒殺這一類。

如果有項目的話,面試官一般都會結合項目問問題,一般比較常問的有

  • 項目的架構(總覽全局的能力)
  • 項目中遇到的困難(考察技術水平和實踐能力)
  • 項目中對於某些問題的想法(考察思考問題的方式以及是否全面)
  • 某些實際問題的分析(最常見的就是項目中遇見的OOM怎麼去排查)

可以從這幾個方面準備一套大致的回答思路


作者:bestsort
連結:https://juejin.im/post/5e54983d5188254903694157

關鍵字: