逆風而行!從考研失敗到收穫到本身滿意的後端開發Offer,分享一下本身的經歷!

你們好,我是Guide哥,這篇文章是一位讀者的投稿。這篇文章分享了他從肯定Java後端方向 -> 考研 -> 考研失敗->準備春招 -> 收貨本身滿意的offer 的心路歷程。前端

Guide哥:建議好好看看,做者分享的內容很棒!相關閱讀:《V2.0 版本的 《JavaGuide面試突擊版》來啦!帶着它的在線閱讀版原本啦!》git

我的狀況

我本科是某雙非一本,大學四年也沒作過太多有成就的事情。和不少在校生同樣,我也經歷過很迷茫的時間段,倒騰過單片機。github

當時還出於對黑客的崇拜,折騰過一個月的網絡安全。反正什麼都去接觸一點,以此來消磨我無聊的時間,不事後面談了女友就不無聊了,哈哈。面試

Guide 哥:居然有女友!算法

惟一感受有收穫的應該就是呆過 ACM 訓練營,無奈本身太菜,拿的獎項都很小,藍橋杯省一等獎這種水平。從大三開始,給本身明確了目標,仍是老實實學習一個領域的技術吧。當時從知乎上查看了有不少方向,前端,後端,大數據,人工智能。根據我本身的興趣(好就業)給本身明確了 Java 後端開發的方向。spring

考研

當時出於想繼續學習提高本身的目的,選擇了考研。這個地方想說一點就是,到大三了必定要規劃好本身未來要作什麼考研,就業,考公務員等等,堅決本身的信心和決心!。不要像我同樣,在考研開始到結束的期間總會在某個時間段會心態上波動,以爲一全年的考研可能所以錯過不少的機會,好比秋招。萬一最後沒考上研,就很尷尬了,畢業即失業?數據庫

尤爲是本身考研期間複習不理想的時候,胡思亂想的東西就會愈來愈多。常常會找同窗,朋友以及考上研的學長談心來調節本身的心態。這個地方特別想感謝個人女友,在我每次心態爆炸,迷茫想放棄的時候,都願意花本身的時間陪我出去散心,雖然她也在備戰考研。有機會的話,仍是建議能找幾個比較自律的研友,能夠互聯督促約束。後端

Guide 哥:此處@一下這位老哥的女友。設計模式

這一切都過來的時候,纔會以爲本身當初的想法比較幼稚,天無絕人之路。既然選擇了遠方,便只顧風雨兼程。專心作好一件事就行,只要本身保持上進心,相信將來必定會愈來愈好,一切美好都將與你環環相扣。緩存

好在我最後仍是堅持的走完了考研的旅程,雖然結果不那麼的美好,可是我以爲一切都是值得的,至少個人計算機基礎,高數,英語在這一年裏都獲得了很大的提升。

準備春招

我從考研結束以後,就開始着手準備春招的內容,複習之前作過的項目和學習過的技術棧。因爲時間比較緊,任務比較重。這個時候,我以爲能夠面向面經來學習準備,我花了一個上午的時間去牛客網刷面經,

最終按照不一樣的模塊整理了一份不重複的面試常見問題,接着一切的學習任務都圍繞着這個面試題來展開復習,查閱相關的書籍資料。

總結了一下,須要準備的內容也就是:

  1. 算法
  2. 項目
  3. 牛客網總結的常見面試知識點的複習。

算法的話,個人時間比較緊,複習的主要是 《劍指 offer》 + leetcode 的 top100。剛開始能夠按分專題模塊來刷,後面就能夠隨機練習。

項目的話,我以爲若是有機會能接觸到真實的項目是很是好的,由於這一塊當你面試的時候針對某些細節你能夠自信的和麪試官聊不少,若是要是本身包裝的話,可能聊起來會以爲很虛。不過也沒有關係,即便是本身跟着網課學習的或者找的開源項目,我以爲首先得保證能徹底吃透這個項目的細節,細到數據庫的表各個字段的含義,項目中哪些功能在哪個模塊實現,爲何這樣實現,有沒有更好的實現方式了。這些我以爲都是你須要思考的問題,由於面試中會出現各類不一樣的狀況,面對不一樣的面試官,問的問題也是千奇百怪的。

關於項目經歷,我再補充一下,避免你們踩坑。

無論是網課的項目,仍是開源的項目。你能發現,別人也能發現,怎麼才能避免雷同,體現本身的特點,項目中真正具備你的思考在裏面。我有以下建議送給你:

  1. 能夠替換其中的相關技術棧(好比 kafka 換成 RocketMQ),同時還須要準備本身選型這個技術棧的理由,必定要可以自圓其說。
  2. 能夠本身在這個項目的基礎之上添加一些額外的功能。這些內容都算是你本身寫的,也是本身思考的點,面試的時候能夠自信的和麪試官介紹。對於項目介紹的部分,我以爲能夠主動突出本身的亮點和難點。好比常見的考察 JVM 相關的問題,能夠經過"本身創造難點,遇到的問題"來將這個問題主動出來,將主動權握在本身的手中。好比我當時爲了說明項目中解決的問題,在項目的讀寫分離部分是經過 MyBatis 的數據源的動態切換,這一模塊中使用了 Threadlocal 來進行隔離,所以拋出因爲團隊人員在開發過程當中忘記 remove,最終致使項目上線後按期出現的 oom 問題,你能夠聊你的解決方案以及定位問題的方法,接着面試官還有可能會考察 ThreadLocal 相關的問題,沿着這一條鏈路下來,能夠思考着面試中面試官可能會問的這些問題,提早作好準備,讓本身可以更有信心得去準備面試。對於面試,必定須要記住提前開始面起來,不要像我同樣"等待一切都準備好"再投簡歷開始面試,這樣會錯過不少的機會。面了 2-3 家以後就慢慢培養出感受來,從一開始自我介紹都結結巴巴,到最後把握面試的過程,這個階段是須要練習的,能夠剛開始投遞本身最不想去的公司,當成本身練習的過程。

好在本身準備的還算充分,感受比較幸運的是在這個疫情籠罩加上互聯網寒冬時期,各大互聯網公司裁人的狀況下,經歷了幾個月的反覆準備讓本身拿了一些的 offer,最終也得到了本身比較滿意的 offer。面經部分,我的以爲 SHEIN 這家公司問的比較全面,涵蓋了常見的題目。以下,僅供參考學習。

SHEIN 面經分享

SHEIN 是一家成立於 2008 年的快時尚出口跨境電商互聯網公司,集商品設計、倉儲供應鏈、互聯網研發以及線上運營於一體。

一面(45min 左右)

  1. 自我介紹
  2. 詳細的聊了 TCP 三次握手四次揮手,以及各個環節可能會出現的相關問題。
  3. 有沒有作過 MySQL 調優,MySQL 的一些優化方法,還問到了 MySQL 選錯索引的問題,整條 MySQL 執行會通過哪些過程。
  4. HashMap 和 ConcurrentHashMap 1.7 和 1.8 的變化。hash 擴容爲何要擴大兩倍,擴大 3 倍爲何不行。
  5. 本地緩存 GuavaCache 和 Redis 的區別,爲何項目中採用了多級緩存的設計
  6. 介紹常見的設計模式(這一塊,我以爲結合 jdk 或者 spring 相關源碼,或者本身的項目使用的設計模式聊比較好)
  7. 爲何要使用 SpringBoot,他能帶來哪些好處。
  8. 線程池你在項目中怎麼使用的,線程池內部原理的流程是什麼樣的。
  9. 阻塞隊列有沒有看過底層是怎麼實現的
  10. synchronize 和 ReentrantLock 的區別,須要先介紹各自的底層實現。
  11. 有沒有什麼想問他的。

二面(1h 左右)

二面問了挺久,總共一個半小時,基本圍繞着簡從來問,

  1. 問了一些 Java 基礎,HashMap,HashSet,重寫了 hashCode 方法需不須要重寫 equal 方法,如何解決哈希衝突的等等.
  2. B+樹,InnoDB 與 MyIsam 的區別,還問了事務隔離級別讀提交與可重複讀的的一些區別.
  3. 接下來又問了 Java 併發知識點,Synchronized 與 ReentrantLock 區別,可見性的問題,CAS,問到 Unsafe 是什麼,原子類等等.
  4. JVM 問的比較多,程序計數器的做用,虛擬機棧裏面的棧幀存放着什麼,本地方法棧又是幹什麼用的,新生代與老年代,垃圾回收算法,垃圾收集器等等問題。
  5. Spring 問了 IOC 和 AOP,這一塊問的相對較少.
  6. 問了不少基礎以後纔開始問項目,項目從第一個開始問,問的很細,難點在哪,怎麼解決,點贊後站內信的通知異步是怎麼實現的等等,問完第一個項目接着問第二個項目。
  7. 問了 netty 如何使用的,nio 相關問題,最後問到 Linux 的 io ,select,epoll 這些。
  8. HashMap 存儲了 50w 的數據,給出最快速給遍歷方法
  9. 有沒有什麼想問他的。

三面(25min 左右)

三面問的技術問題就相對少了,主要問了跳錶,Java 併發的知識點,Linux 的基礎命令,Git 的常規問題,JVM 的回收算法介紹了下,還問了讓我來介紹 Git 給不懂 Git 的人聽,你會怎麼跟他介紹。

四面 ( CTO 面 時間很短,不到 5 分鐘)

大概就隨便和我聊了下,爲何想來南京,有沒有參加秋招,本科期間代碼量怎麼樣,我當時都還沒開始聊起來,他就說大概就這些了。 感受有點虛,畢竟問的時間那麼短,當時我還問了以前認識的一個老哥,他也面了 CTO 面,他也是 5 分鐘左右,整體感受 CTO 挺幽默的。

五面 HR 面

主要介紹了公司的狀況,薪酬待遇,問能不能提早去實習等等一些問題。

整體感受 shein 的面試效率仍是很高的,基本一天一面。 HR 的態度很是好,中間因爲一些事情耽誤,還鴿了一次技術面試,HR 根據個人時間以及面試官的時間幫我額外安排了一次面試。對這家公司的映像很是好。
值得一提的是感受如今互聯網上的資料太過於多,各大線上架構師等培訓機構的出現,間接的促進了面試難度在逐年加大,有些問題不能不理解的單單去記憶背誦,以此來指望面試經過,這個方法確定行不通。
記得比較深入的是有一場面試,我間接提了好幾嘴本身對於 HashMap,ConcurrentHashMap 比較熟悉,面試官都不買帳。包括後續問我對 Java 那一塊比較熟悉除了集合部分(衰)。對於 JVM 的考察也再也不是考察背誦垃圾回收算法以及常見的垃圾收集器,而是問爲何要按這個比例設定,若是不這樣會致使什麼問題等等。對於常見的排序和二叉樹的時間複雜度被問到後,面試官但願你可以給他推導出來。因此,但願準備面試的小夥伴,

寫在最後

仍是要準備紮實的基礎,不要靠直接背誦面試題這種方式來應付面試,方能以不變應萬變。最後,吃水不忘挖井人,很是感謝 Guide 哥的幫助,Guide 哥的公衆號和 github 在我學習 Java 的道路上包括後續的準備面試的過程當中對個人幫助都很是大。

Guide 哥:這個彩虹屁 🌈 很喜歡,哈哈!

做者介紹: Github 70k Star 項目 JavaGuide(公衆號同名) 做者。每週都會在公衆號更新一些本身原創乾貨。公衆hao後臺回覆「1」領取Java工程師必備學習資料+面試突擊pdf。

相關文章
相關標籤/搜索