1. 程式人生 > >一位讀者剛剛收割阿里、騰訊等大廠Offer,他說這些話一定要和你們說一下

一位讀者剛剛收割阿里、騰訊等大廠Offer,他說這些話一定要和你們說一下

本文來自讀者投稿,作者是我的一位資深讀者,也是我知識星球的球友,最近在春招中收割了很多大廠的Offer。看了他總結後,我發現很多地方和我當年參加校招的時候很相像,甚至比我那個時候還要優秀。分享給大家,和大家一起共勉。

中間還有個小插曲,這位讀者曾在準備參加校招之前,找我幫他指導過簡歷。後來我收到一份面試任務,仔細一看簡歷,怎麼這麼似曾相識,結果對比後發現正式我之前看過的那份。

因為我們認識,而且還幫他指導過簡歷,所以一方面為了避嫌。還有就是因為我的知識星球裡面有很多關於面試題的內容,如果讓我來面試他的話,有可能會刻意的避開那些題,這樣對他來說也不公平。所以我特意找同事幫忙進行了面試。不過最終結果總歸是好的,果然是真的優秀,可惜錯過了一次直接Battle的機會。

好了,廢話不多說了,以下是他的原文:

背景 {#toc_0}

本人211(鄭州大學)21屆本科畢業生,和大佬相比,我還是一隻蒻箕。不過在H大部落格和知識星球的幫助下,我終於在20年實習招聘時拿到了阿里(Java)和騰訊(後臺轉C++)的offer,回想準備面試以及學習的這一路走來,儘管有些崎嶇,但終於如願以償。

考研or就業 {#toc_1}

這裡不考慮保研的情況,因為如果可以保研的話,我相信大多數人都會選擇保研。

其實我的GPA也不低,曾經誤以為自己可以保研,但是低估了我們專業的狗血程度,所以就在大二下學期慢慢接受了不能保研的事實。但是由於我還想在大學還沒玩夠(主要是大學沒物件),就想上個研究生,所以在大三上就萌生了考研的念頭。為什麼我最後沒有選擇上研究生呢?我相信每個人的處境都不相同,原因也都不盡一樣。在這裡我說一下大家應該考慮的幾個點:

  1. 自己更想就業還是更想上研究生
  2. 為什麼想就業,為什麼想上研究生
  3. 你對研究生要研究的領域真的感興趣嗎
  4. 哪個把握更大一點
  5. 學歷真能成為你的硬傷嗎
  6. ...

最後說一句:人生是一個不斷選擇的過程,每個選擇都沒有對錯,只要你想,無論考研還是就業,都能成功!

學習過程 {#toc_2}

我是從19年4月從打CTF轉到Java的,當時也算是比較幸運,遇到了工程能力比較強的副教授給我們上Java課,並不是給我們講Java語法,而是從Jvm開始講起,也算是讓我直接對Java入了門。

然後和我同桌(https://blog.csdn.net/qq_42322103 )一起學習Java,看同桌給我分享的黑馬的教程(PS 後來發現這些東西全講的API哈哈哈,但確實讓我們對整個Java體系有了瞭解)。

有空就看,晚上一直學習到10點半才回宿舍睡覺,早上7點半到教室還能再看一會。

然後每看一個章節都把筆記放到CSDN(https://blog.csdn.net/coder_what )上,就這樣的學習強度一直持續到了暑假。

期間還做了一個基於BIO+Swing的學生管理系統,也算有些收穫。

暑假時我只在家呆了7天,在學校學習了SSM,然後基於SpringBoot和Vue做了一個前後端分離的個人部落格系統(http://wxxlamp.cn )。

整個部落格的需求分析,設計,編碼和運維都是我一個人負責的,俗話說,麻雀雖小,五臟俱全,通過這個部落格,我熟悉了中小型軟體開發的整個流程,收穫也確實不小。

然後由於計劃是準備20年實習,所以我在大三上學期就有些懈怠,同時還參加了一個人流量預測比賽。

這裡我確實有些遺憾,如果我意識能更早一點,就可以在大三上學期準備實習和麵試,然後大三寒假就可以拿到實習資格,但是當時也不太懂,所以就拖到了大三的寒假準備實習。

在準備面試的過程中,這其實是一個磨心態的過程,難免會有自卑和自傲的時候,一定一定要調整好狀態,重新出發,“廠子千千萬,不行咱就換”。

面試心得 {#toc_3}

個人認為我準備的比較充分。我準備的具體流程為上牛客找面試題,然後歸類總結,最後在通過百度谷歌找出這些問題的答案,自己再進行理解,迴圈往復,就ok了。下面我列一下一些面試(Java)常見的問題:

Java基礎 {#toc_4}

泛型,面向物件和麵向過程的區別,語法糖,包裝類和基本型別,stream,lambda,多型實現方式,==/equals/hashCode(),static和final,內部類,介面和抽象類,編碼方式,異常,IO,反射

Java容器 {#toc_5}

Collection和Map,HashMap的結構(1.7和1.8),hashMap的幾個變數,初始化值,LRU與LinkedHashMap,ArrayList的擴容原理,如何使容器變得執行緒安全,佇列的使用場景

Jvm {#toc_6}

編譯執行or解釋執行,常量池,類載入過程,例項初始化過程,GC演算法,Jvm記憶體空間,常見的Jvm命令如jstat,jhat,jmap,jinfo,記憶體洩露怎麼處理,如何定位while死迴圈和死鎖

Java併發 {#toc_7}

jmm,volatile,synchronized,併發程式設計的三個特性(如何保證),Object的幾個方法,Thread的幾個方法,執行緒五個狀態,JUC包(併發容器,lock,工具類,執行緒池,原子類),AQS原理,ThreadLocal,執行緒的,多執行緒迴圈列印abc,生產者消費者模式

設計模式 {#toc_8}

五大原則,工廠模式,迭代器模式,觀察者模式,介面卡模式,策略模式,代理模式,外觀模式,享元模式,單例模式,裝飾者模式,組合模式,模板方法模式等

408(計算機學科專業基礎綜合) {#toc_9}

程序執行緒和協程,記憶體管理方式,常見linux命令top,ps,cat等,網路模型,nio(epoll,poll,select),bio,aio,虛擬記憶體,頁面替換演算法,磁軌排程演算法,銀行家演算法,死鎖定義,CPU排程演算法,哲學家問題,理髮師問題,程序記憶體分配,程序切換過程,記憶體管理方式

7層模型,url的執行過程,HTTP1,2和HTTPS,TCP和UDP,SYN泛洪,TIME_WAIT處理方式,中間人攻擊,TCP的沾包和拆包,XSS,CSXF,DDOS,SQL注入

連結串列和陣列,翻轉連結串列,樹的映象,樹的遍歷,合併有序陣列,topK問題,大資料找中位數,大資料排序,快速找到某個人的排名,紅黑樹,AVL樹,B+樹,各種排序,這個刷LeetCode就完事了

MySQL {#toc_10}

隔離級別,ACID,ACID如何實現,MVCC,索引,字首索引,回表,最左原則,聚簇索引,非聚簇索引,覆蓋索引,hash索引,索引下推,索引結構,Innodb和MyISAM,間隙鎖,行鎖,表鎖,relog,undolog,binlog

Redis {#toc_11}

快取一致性,持久化方式,網路模式,IO方式,效能高的原因,為什麼單執行緒,叢集方式,分散式鎖,Redis如何保證多條命令單執行緒執行,Redis的資料結構,跳錶

Nginx {#toc_12}

負載均衡方式,為什麼可以負載均衡,為什麼可做反向代理,nginx有什麼功能,如何保證快取時間不一致,怎麼設定Nginx

SSM {#toc_13}

spring的啟動流程,springboot的啟動流程,aop和ioc,springboot的SPI,mybatis的代理模式,#和(,為什麼)不可缺少,bean的生命週期,SSM的設計模式,Spring的事物,bean的相互依賴

其他 {#toc_14}

專案流程,限流器,LRU演算法,黑名單演算法,專案亮點,專案難點,團隊如何協作,如何快速找到互相關注的人,tomcat的啟動流程,微服務,RPC流程,MQ,docker,k8s,分散式事物,CASE和CAP

關於面試方面,建議和別人一起對練,包括自我介紹(準備兩個,一個技術,一個hr),然後通過簡歷互相問技術。真正面試的時候,一定要放輕鬆,然後不會的地方就說不會,會一點的地方一定要把會那一點說出來。不要跟面試官說你準備過什麼的,這樣就顯得太刻意了。

關於簡歷 {#toc_15}

個人認為還是不要寫的花裡胡哨的,WonderCV(https://www.wondercv.com/ )就很不錯。簡歷照片也要來一張好看的,個人覺的白底比較好。

簡歷最前面的肯定是個人資訊(GPA,學校,課程),接著是掌握的技術棧(可以分為Java,DB,框架,其他)。

再後面的板塊,就是寫自己的專案或者實習經歷。接著寫自己的獲獎情況。最後寫自己的個人說明。

如果有個人部落格或者Github寫的比較好,這當然也是加分項。

參考資料 {#toc_16}

這裡不貼具體的面試題了,大家有需要可以到我的公眾號裡拿:王星星的魔燈

下面是我面試時候的參考資料,希望對大家有幫助

Google(https://www.google.com ):Google和Baidu無疑對大家的幫助是最大的,遇到問題不要動不動就問別人,問之前要想一想自己能不能通過其他途徑搜尋到。

Hollis的個人部落格/知識星球/公眾號(https://www.hollischuang.com ):H哥的部落格和直面Java幫我梳理了Java體系,非常感激!

王星星的魔燈(https://blog.csdn.net/coder_what ):這個是我的部落格,裡面記錄了我的成長過程

田小波的技術部落格(http://www.tianxiaobo.com/ ):這位大牛的部落格我是在百度的過程中偶然發現的,也非常不錯

IdeaBuffer(http://ideabuffer.cn/categories/開發手冊/J-U-C/ ):同上

JavaGuide(https://snailclimb.gitee.io/javaguide/#/ ):面經必備

淘寶秒殺系統設計(https://yq.aliyun.com/articles/64762 ):可以對J2EE的秒殺設計有一個非常好的瞭解

寫到最後 {#toc_17}

其實說實話,我最開始準備春招的時候根本沒想過去阿里實習,我記得我同桌之前還問我如果XX(另一個網際網路公司)要我我去不去,當時我還跟他說怎麼可能不去,XX要我我就謝天謝地了。

我記得在第一面試的時候我牙都是哆嗦的,具體的面經在我公眾號上有寫。

在面試過程中經歷了許多場情緒波動,面試過了高興,面試失敗難過,懷疑自己。

現在想想,其實面試也是一種歷練自己的過程,提高自己對情緒的掌控能力,用阿里的方言來說,就是更加皮實了。

面試其實是一種運氣,有的人遇到了大牛面試官,可能問的問題比較難,有的可能又比較簡單,所以千萬不要輕易否定自己。同時,拿到offer之後還要儘早做規劃,不能得意忘形,網際網路本來就是一個持久學習的行業,不斷的充實自己,才能為祖國的健康發展做貢獻!

最後給大家分享幾點感悟把:

  1. 保持自信,時刻告誡自己不要自卑,更不能自傲
  2. 給自己列一個計劃
  3. 早睡早起
  4. 堅持堅持堅持

以上,就是作者的原文描述,看下來之後,感覺和我自己準備校招的過程很像,我當年參加校招之前的那個假期,也是隻在家裡面待了幾天而已,其餘時間都是在學校進行復習。

學習的方式也是各種刷題,然後根據筆試、面試題中的知識點,自己去翻書、找部落格等,逐一趣攻破。

還有就是作者說自己沒想過來阿里實習,我當時也一樣,我比原作者還差一點,就是本文作者好歹是211院校的,我當時只是個雙非二本的一個學生。剛開始也是想著如果能拿到一個稍微出名一點的網際網路公司的Offer就滿足了,只是後面在複習過程中,不斷努力,最終拿到了完全超乎自己預料的Offer

本文由部落格一文多發平臺 OpenWrite 釋出!