2021屆雙非本科的心酸秋招經歷總結及經驗分享 前言 背景篇 簡歷篇 知識篇 建議篇 面經篇

前言

博主是廣東某雙非本科學校計算機專業的學生,2021年應屆畢業生,我的秋招時間線爲8-11月,經歷了一段煎熬的秋招歷程最後成功上岸某大廠,因此寫下這篇文章對自己的秋招做一個總結及自己的經驗分享,如果能給22屆及以後的畢業生帶來啓發那更好了。文章主要分爲幾個部分:

  • 背景篇:主要講述自己的一些基本情況
  • 簡歷篇:主要講述下根據自己秋招的心得,簡歷要如何準備
  • 知識篇:主要講述下應該儲備的知識
  • 建議篇:主要分享自己對後人的一些建議
  • 面經篇:主要分享自己的一些面經

背景篇

我是雙非本科的應屆生,求職的方向主要是互聯網公司,崗位是Java研發,兩段小公司實習經歷,兩個比較一般般的項目(SpringBoot+redis+kafka),獲獎經歷的話三個水水的省級獎項不過沒啥用。

我大概是從3-4月開始準備秋招的,那個時候比較無知,覺得懂框架纔是無敵,所以不重視計算機基礎的學習,直至去面試了暑期實習的第一家公司----某家教育行業的大廠,面試官不問項目,直接JVM計算機網絡操作系統數據結構高併發一套流程問下來,我才發現我是如此地渣渣,計算機基礎一問三不知,此時才知道計算機基礎的重要性,很明顯這次面試就掛了,這家大廠今年秋招價格也是太香了,後悔當時沒把握住這個機會。。經歷完這次面試,我痛定失痛,打算開始好好學習計算機基礎知識。

我秋招大概是八月開始投遞的,大規模投遞是從9月開始,基本上我投遞算很晚,完美地錯過了提前批。在今年這種情況下,晚投遞的話其實是一件很虧的事情,因此各種22屆的選手,想投遞簡歷的話要早點投,最好就提前批就可以衝了,今年提前批大概是7月就陸陸續續開始了。真不要覺得等到準備好了才投,因爲你永遠都不可能準備好。其實都是邊面試邊進步的。我現在才懂得這句話的真理。。


簡歷篇

對於技術崗簡歷的話,大概要有如下板塊組成:

  • 基本信息
  • 教育背景
  • 實習/項目經歷
  • 專業技能
  • 獲獎經歷

基本信息的話,就是你的姓名,學歷,聯繫電話,郵箱,github,博客之類的東西,對我而言的話我只寫了上述我說的這幾個模塊,對於身高,政治面貌這些我覺得不是很必要,因爲簡歷的話講究的是用最少的字描述出你自己自身的價值,所以對於一些必要的個人信息就可以寫上去,一些沒有必要的個人信息就沒必要寫上去了。

教育背景這一塊就基本上也不能改變什麼了,大致上就是學校,GPA,獲獎之類的。

實習/項目經歷,這一塊的話是簡歷上的重中之重,對於有知名公司實習的童鞋來說,如果學歷很差的話,但是有一個大廠實習,基本上就可以逆天改命了,因此推薦童鞋們去找一個實習。項目的話呢,我自己的項目也比較水,所以也沒什麼經驗可以傳授,大概的話就是說在寫項目經歷的時候要儘量突出項目的亮點。

專業技能,專業技能這一塊的話,就要注意瞭解、掌握、精通、熟悉等詞語了,畢竟現在面試的話,你寫一個技術上去一般都是會問你原理的,你如果用詞太狠的話,可能就會給面試官懟涼涼了,對於不是很熟悉的技術建議不要寫上去。

獲獎經歷這個就因人而異了,我把他放在我項目最後一個模塊的原因是我壓根就沒有什麼牛的獎項(acm),只有幾個省級水獎,所以我就把他放最後了,如果有acm獎項的,建議把他放在比較前面的位置!!!!


知識篇

對於Java開發來說,大概有以下知識需要掌握:

  • Java
  • 數據結構與算法
  • 設計模式
  • 計算機基礎(計算機網絡、操作系統..)
  • 併發編程
  • 數據庫
  • 框架

Java語言的話,我記得是看的《Java核心技術卷1》這本書,這本書講得還可以,不過也可以去b站搜一些視頻看看,個人建議的話先看視頻入門,再看看書加深理解鞏固基礎。

數據結構與算法,我看的是尚硅谷的數據結構與算法的視頻,還有《啊哈算法》這本書,然後刷題的話呢可以去leetcode上面刷,上面的一些hot題之類的都可以刷刷。

設計模式看的是b站尚硅谷的設計模式視頻,計算機基礎直接看書(我看的圖解TCP/IP和圖解HTTP),操作系統看的王道的考研操作系統視頻。

併發編程看的是《併發編程的藝術》這本書,數據庫可以看《高性能數據庫》、《MySQL技術內幕》等書。

對於框架,我只學了spring、SpringMVC、mybatis、SpringBoot、redis、kafka而已,這一塊我看的基本上都是尚硅谷的視頻,對於框架其實我們學習的話不應該只會調用api,而應該瞭解其原理實現,這一塊的話,我覺得肯定是學越多越好,比如各種中間件啊,nosql數據庫,微服務框架,分佈式等等。但是呢你只要寫在簡歷上了,那你就要去了解它的原理,不然面試就是老炮灰玩家。因爲面試不僅僅考察你是否會用這個技術,還會考察你對這個技術掌握的深度是如何的,而且在這種內卷的時代,其實考察都是直接面試早火箭的,所以寫技術的時候一定要慎重哈哈哈,不太熟悉的最好不要寫上去。

下面這些書都是我買的,覺得挺不錯的(三張圖片合成一張了,可能有點糊,湊合看了hhhh)



建議篇

其實吧,互聯網公司的技術崗有很多的,比如後端開發(go/java/c++等等),前端開發,測試,測試開發,客戶端開發,算法等等。就我個人所知所聞,我發現大部分同學,包括我學校的同學還有我認識的一些朋友,基本上找工作都是備戰Java的,甚至有的人覺得學Java是因爲Java工作很好找,需求量大。其實大家對於就業形勢的判斷需要有一個明確的判斷,不能聽培訓機構說Java好找工作,公衆號發一些數據說Java好找工作,那麼你們就認爲Java好找工作。按照今年的我瞭解到的形勢來說,大概找工作的話:算法>Java>前端>客戶端,意思就是說Java現在基本上,除了算法之外,就是最難找工作的崗位了,爲什麼這麼說呢,因爲今年很多985211碩士都來投遞Java崗位,所以競爭就是相當大了,相比之下前端就會好找很多。說這麼多其實是爲了讓你們明白其實技術崗有很多崗位,不一定全部都要來卷Java的,可以結合就業形勢和發展前景和自己的興趣來選擇。

還有一個很多人會問的問題就是需要去培訓嗎?,我發現其實不管是我身邊的人,還是一些認識的人,很多人都有這個疑問,我的答案肯定是不需要的。首先培訓機構只會教你各種框架的使用,只是教一些皮毛而已,並不會太深入的去傳授一些知識,而且也不會培養你一個學習的習慣。你自己自學的話又可以省錢又可以鍛鍊學習能力,何樂而不爲呢?有人說去培訓的話,你demo敲錯了有人幫你改bug,你自學的話在學習中遇到困難沒人幫你改,我的想法是:“如果學習中遇到的困難你都沒能力想辦法克服,那麼工作中遇到真正的線上bug的時候你又如何解決呢?”其實自學就是一個很好的鍛鍊自己能力的過程,所以對自己狠一點,跳出舒適圈,好好學習吧。


面經篇

這裏主要分享一些我面試的時候遇到的一些比較經典的問題吧,有些太雜的還有問項目之類的問題我就刪除了,主要還是分享比較常見的一些。

Java

  • 除了java外還用過什麼語言,和java的區別
  • 講講引用(強引用、弱引用、軟引用、虛引用),那哪些可以作爲強引用
  • 講講異常
  • 講講java封裝繼承多態(順便給了幾種情形要判斷)
  • 接口和抽象類區別
  • 接口可以繼承接口嗎,可以new嗎
  • 講講熟悉的集合(吹了arraylist,hashmap)
  • arraylist擴容過程,爲啥要擴成原來的1.5
  • arraylist與linkedlist區別,講講linkedlist的添加方法源碼
  • hashmap哪些可以作爲key,如果其他對象作爲key要怎麼處理
  • 那我如果對象的字段不是final的,那麼字段給更改後對那個hashmap有啥影響嗎
  • 講講hashmap和concurrenthashmap
  • 分析下紅黑樹,爲啥hashmap要在到達一定的長度後就變成紅黑樹呢?有啥優點嗎?
  • hashmap擴容過程
  • hashmap和hashtable區別
  • hashmap爲啥不用鏈表
  • Java基本數據類型
  • 集合瞭解哪些(八股文吹就完了)
  • 講講java反射
  • ArrayList和LinkedList
  • ArrayList擴容
  • HashMap和CurrentHashMap
  • HashMap初始容量10000,插入10000條數據,會不會擴容。
  • 數據非常大,用ArrayList和linkedlist哪個空間浪費大

虛擬機

  • 內存泄漏和內存溢出
  • 講講垃圾回收機制
  • 有了回收機制後還會內存溢出嗎,會的話講講哪種情況
  • 怎麼判斷對象死亡(講了可達性分析),那哪些可以作爲GC root
  • 講講運行時內存
  • new個對象的過程
  • 設置最大堆和最小堆的JVM參數

多線程

  • java進程什麼時候會終止,單核cpu可以啓動幾個進程
  • 進程線程區別
  • cpu調度的是線程還是進程
  • 多線程用過嗎?什麼時候需要用多線程
  • wait和sleep的區別
  • 加鎖的話是如何使用
  • java鎖的升級過程(詳細)
  • java鎖的一些信息存儲是在哪裏呢?(對象頭)
  • 那上面鎖升級的過程在對象頭裏面怎麼變化的,具體點
  • 實現線程的方式
  • 線程有什麼狀態
  • volatile怎麼實現內存可見
  • 線程實現的幾種方式
  • 實現Runnable和Callable的區別
  • 直接調用run方法不行嗎?爲什麼要調用start方法
  • synchronized和ReentrantLock的區別
  • ReentrantLock如何實現公平鎖
  • 創建線程有幾種方式,你用過哪幾種?
  • 講講線程池
  • ThreadLocal會發生內存泄露嗎

計算機網絡

  • 計算機網絡瞭解嗎
  • 講講osi模型
  • http和https區別
  • tcp,udp區別
  • 瀏覽器輸入url全過程
  • session和cookie區別
  • session工作原理
  • session和cookie各自適合場景
  • 項目部署在HTTPS環境下,要訪問HTTP的資源能訪問嗎

數據庫

  • 數據庫如何分析慢查詢
  • explain命令會有很多參數,你比較關注哪些
  • 你對數據庫哪些比較有了解?講講(講了事務八股文,從概念到併發帶來的問題到隔離級別到mvcc)
  • 數據庫隔離級別、MYSQL默認隔離級別
  • 數據庫有哪幾種索引
  • B+Tree講講

Redis

  • 項目爲什麼用redis?不用其它類似組件?
  • 講講Redis
  • 講講redis持久化機制
  • redis緩存
  • redis緩存雪崩、緩存擊穿
  • 布隆過濾器原理
  • 瞭解redis高可用嗎
  • 講講redis的五種數據結構
  • 項目中爲什麼要用zset和set

全家桶

  • 講講spring 的ioc
  • spring常用的註解
  • SpringMVC的前端控制器
  • mybatis用過嗎
  • 項目控制權限怎麼做的
  • 講講spring security的權限實現原理
  • spring aop講講?
  • 動態代理實現的源碼看過嗎
  • mybatis的緩存瞭解嗎
  • mybatis的#和{}
  • spring ioc原理
  • bean的生命週期

其它

  • 數據結構(棧,隊列..)在項目中的使用,爲何要這樣使用
  • 講講mvc
  • 你項目怎麼體現mvc、解決了什麼問題
  • 常用的linux命令及其應用場景
  • 棧和堆
  • 單例模式(手撕雙重檢驗)
  • 算術表達式
  • 鏡像二叉樹
  • 分解因式
  • md5原理
  • 手撕:分解質因數,寫後叫改成遞歸
  • 會不會消息隊列
  • 講講樹
  • 講講二叉樹、平衡二叉樹
  • 講講樹的遍歷
  • 講講圖、圖的遍歷(BFS、DFS)
  • 講講無向圖最短路徑算法
  • 單例模式,懶漢式怎麼實現線程安全
  • 統計字符串出現的次數(說用hashmap來計數,問有沒有更好的)
  • 一張數據表非常大,幾千萬上億數據,然後要將這個表的數據複製到另一張表中怎麼實現

人事

  • 爲啥要投遊戲服務器開發
  • 平時喜歡玩啥遊戲
  • 那麼多編程技術爲什麼要選擇JAVA,技術選型原因
  • 如何看待加班
  • 叫我講一些獲獎經歷
  • 如何看待微信對人際交往產生的影響
  • 如何看待互聯網996
  • 從項目中找一個點來介紹一下你在其中擔任的角色,起到什麼作用
  • 如何評價項目成員
  • 項目中遇到困難如何解決
  • 平時喜歡玩什麼遊戲
  • 王者榮耀大概是什麼等級的
  • 有投遞其他遊戲公司嗎?目前的進度是什麼樣的
  • 有拿其他offer嗎
  • 平時都是怎麼學習技術的
  • 看過什麼書籍
  • 期望薪資
  • 如何看待互聯網加班現象
  • 有沒有做過遊戲方面的項目
  • 問獲獎經歷
  • 項目出現分歧咋辦...
  • 瞭解過go語言嗎
  • php和java有什麼區別
  • 平時參加實驗室,然後成績還這麼高,不會有什麼衝突嗎?
  • 瞭解過遊戲公司的加班情況嗎
  • 最近比較關注哪塊知識呢
  • 爲什麼關注這塊知識呢
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章