一位讀者剛剛收割阿里、騰訊等大廠Offer,他說這些話一定要和你們說一下
本文來自讀者投稿,作者是我的一位資深讀者,也是我知識星球的球友,最近在春招中收割了很多大廠的Offer。看了他總結后,我發(fā)現(xiàn)很多地方和我當年參加校招的時候很相像,甚至比我那個時候還要優(yōu)秀。分享給大家,和大家一起共勉。
中間還有個小插曲,這位讀者曾在準備參加校招之前,找我?guī)退笇н^簡歷。后來我收到一份面試任務,仔細一看簡歷,怎么這么似曾相識,結果對比后發(fā)現(xiàn)正式我之前看過的那份。
因為我們認識,而且還幫他指導過簡歷,所以一方面為了避嫌。還有就是因為我的知識星球里面有很多關于面試題的內容,如果讓我來面試他的話,有可能會刻意的避開那些題,這樣對他來說也不公平。所以我特意找同事幫忙進行了面試。不過最終結果總歸是好的,果然是真的優(yōu)秀,可惜錯過了一次直接Battle的機會。
好了,廢話不多說了,以下是他的原文:
背景
本人211(鄭州大學)21屆本科畢業(yè)生,和大佬相比,我還是一只蒻箕。不過在H大博客和知識星球的幫助下,我終于在20年實習招聘時拿到了阿里(Java)和騰訊(后臺轉C++)的offer,回想準備面試以及學習的這一路走來,盡管有些崎嶇,但終于如愿以償。
考研or就業(yè)
這里不考慮保研的情況,因為如果可以保研的話,我相信大多數(shù)人都會選擇保研。
其實我的GPA也不低,曾經(jīng)誤以為自己可以保研,但是低估了我們專業(yè)的狗血程度,所以就在大二下學期慢慢接受了不能保研的事實。但是由于我還想在大學還沒玩夠(主要是大學沒對象),就想上個研究生,所以在大三上就萌生了考研的念頭。為什么我最后沒有選擇上研究生呢?我相信每個人的處境都不相同,原因也都不盡一樣。在這里我說一下大家應該考慮的幾個點:
- 自己更想就業(yè)還是更想上研究生
- 為什么想就業(yè),為什么想上研究生
- 你對研究生要研究的領域真的感興趣嗎
- 哪個把握更大一點
- 學歷真能成為你的硬傷嗎
- …
最后說一句:人生是一個不斷選擇的過程,每個選擇都沒有對錯,只要你想,無論考研還是就業(yè),都能成功!
學習過程
我是從19年4月從打CTF轉到Java的,當時也算是比較幸運,遇到了工程能力比較強的副教授給我們上Java課,并不是給我們講Java語法,而是從Jvm開始講起,也算是讓我直接對Java入了門。
然后和我同桌(https://blog.csdn.net/qq_42322103 )一起學習Java,看同桌給我分享的黑馬的教程(PS 后來發(fā)現(xiàn)這些東西全講的API哈哈哈,但確實讓我們對整個Java體系有了了解)。
有空就看,晚上一直學習到10點半才回宿舍睡覺,早上7點半到教室還能再看一會。
然后每看一個章節(jié)都把筆記放到CSDN(https://blog.csdn.net/coder_what )上,就這樣的學習強度一直持續(xù)到了暑假。
期間還做了一個基于BIO+Swing的學生管理系統(tǒng),也算有些收獲。
暑假時我只在家呆了7天,在學校學習了SSM,然后基于SpringBoot和Vue做了一個前后端分離的個人博客系統(tǒng)(http://wxxlamp.cn )。
整個博客的需求分析,設計,編碼和運維都是我一個人負責的,俗話說,麻雀雖小,五臟俱全,通過這個博客,我熟悉了中小型軟件開發(fā)的整個流程,收獲也確實不小。
然后由于計劃是準備20年實習,所以我在大三上學期就有些懈怠,同時還參加了一個人流量預測比賽。
這里我確實有些遺憾,如果我意識能更早一點,就可以在大三上學期準備實習和面試,然后大三寒假就可以拿到實習資格,但是當時也不太懂,所以就拖到了大三的寒假準備實習。
在準備面試的過程中,這其實是一個磨心態(tài)的過程,難免會有自卑和自傲的時候,一定一定要調整好狀態(tài),重新出發(fā),“廠子千千萬,不行咱就換”。
面試心得
個人認為我準備的比較充分。我準備的具體流程為上??驼颐嬖囶},然后歸類總結,最后在通過百度谷歌找出這些問題的答案,自己再進行理解,循環(huán)往復,就ok了。下面我列一下一些面試(Java)常見的問題:
Java基礎
泛型,面向對象和面向過程的區(qū)別,語法糖,包裝類和基本類型,stream,lambda,多態(tài)實現(xiàn)方式,==/equals/hashCode(),static和final,內部類,接口和抽象類,編碼方式,異常,IO,反射
Java容器
Collection和Map,HashMap的結構(1.7和1.8),hashMap的幾個變量,初始化值,LRU與LinkedHashMap,ArrayList的擴容原理,如何使容器變得線程安全,隊列的使用場景
Jvm
編譯執(zhí)行or解釋執(zhí)行,常量池,類加載過程,實例初始化過程,GC算法,Jvm內存空間,常見的Jvm命令如jstat,jhat,jmap,jinfo,內存泄露怎么處理,如何定位while死循環(huán)和死鎖
Java并發(fā)
jmm,volatile,synchronized,并發(fā)編程的三個特性(如何保證),Object的幾個方法,Thread的幾個方法,線程五個狀態(tài),JUC包(并發(fā)容器,lock,工具類,線程池,原子類),AQS原理,ThreadLocal,線程的,多線程循環(huán)打印abc,生產(chǎn)者消費者模式
設計模式
五大原則,工廠模式,迭代器模式,觀察者模式,適配器模式,策略模式,代理模式,外觀模式,享元模式,單例模式,裝飾者模式,組合模式,模板方法模式等
408(計算機學科專業(yè)基礎綜合)
進程線程和協(xié)程,內存管理方式,常見linux命令top,ps,cat等,網(wǎng)絡模型,nio(epoll,poll,select),bio,aio,虛擬內存,頁面替換算法,磁道調度算法,銀行家算法,死鎖定義,CPU調度算法,哲學家問題,理發(fā)師問題,進程內存分配,進程切換過程,內存管理方式
7層模型,url的執(zhí)行過程,HTTP1,2和HTTPS,TCP和UDP,SYN泛洪,TIME_WAIT處理方式,中間人攻擊,TCP的沾包和拆包,XSS,CSXF,DDOS,SQL注入
鏈表和數(shù)組,翻轉鏈表,樹的鏡像,樹的遍歷,合并有序數(shù)組,topK問題,大數(shù)據(jù)找中位數(shù),大數(shù)據(jù)排序,快速找到某個人的排名,紅黑樹,AVL樹,B+樹,各種排序,這個刷LeetCode就完事了
MySQL
隔離級別,ACID,ACID如何實現(xiàn),MVCC,索引,前綴索引,回表,最左原則,聚簇索引,非聚簇索引,覆蓋索引,hash索引,索引下推,索引結構,Innodb和MyISAM,間隙鎖,行鎖,表鎖,relog,undolog,binlog
Redis
緩存一致性,持久化方式,網(wǎng)絡模式,IO方式,性能高的原因,為什么單線程,集群方式,分布式鎖,Redis如何保證多條命令單線程執(zhí)行,Redis的數(shù)據(jù)結構,跳表
Nginx
負載均衡方式,為什么可以負載均衡,為什么可做反向代理,nginx有什么功能,如何保證緩存時間不一致,怎么設置Nginx
SSM
spring的啟動流程,springboot的啟動流程,aop和ioc,springboot的SPI,mybatis的代理模式,#和(,為什么)不可缺少,bean的生命周期,SSM的設計模式,Spring的事物,bean的相互依賴
其他
項目流程,限流器,LRU算法,黑名單算法,項目亮點,項目難點,團隊如何協(xié)作,如何快速找到互相關注的人,tomcat的啟動流程,微服務,RPC流程,MQ,docker,k8s,分布式事物,CASE和CAP
關于面試方面,建議和別人一起對練,包括自我介紹(準備兩個,一個技術,一個hr),然后通過簡歷互相問技術。真正面試的時候,一定要放輕松,然后不會的地方就說不會,會一點的地方一定要把會那一點說出來。不要跟面試官說你準備過什么的,這樣就顯得太刻意了。
關于簡歷
個人認為還是不要寫的花里胡哨的,WonderCV(https://www.wondercv.com/ )就很不錯。簡歷照片也要來一張好看的,個人覺的白底比較好。
簡歷最前面的肯定是個人信息(GPA,學校,課程),接著是掌握的技術棧(可以分為Java,DB,框架,其他)。
再后面的板塊,就是寫自己的項目或者實習經(jīng)歷。接著寫自己的獲獎情況。最后寫自己的個人說明。
如果有個人博客或者Github寫的比較好,這當然也是加分項。
參考資料
這里不貼具體的面試題了,大家有需要可以到我的公眾號里拿:王星星的魔燈
下面是我面試時候的參考資料,希望對大家有幫助
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/ ):這位大牛的博客我是在百度的過程中偶然發(fā)現(xiàn)的,也非常不錯
IdeaBuffer(http://ideabuffer.cn/categories/%E5%BC%80%E5%8F%91%E6%89%8B%E5%86%8C/J-U-C/ ):同上
JavaGuide(https://snailclimb.gitee.io/javaguide/#/ ):面經(jīng)必備
淘寶秒殺系統(tǒng)設計(https://yq.aliyun.com/articles/64762 ):可以對J2EE的秒殺設計有一個非常好的了解
寫到最后
其實說實話,我最開始準備春招的時候根本沒想過去阿里實習,我記得我同桌之前還問我如果XX(另一個互聯(lián)網(wǎng)公司)要我我去不去,當時我還跟他說怎么可能不去,XX要我我就謝天謝地了。
我記得在第一面試的時候我牙都是哆嗦的,具體的面經(jīng)在我公眾號上有寫。
在面試過程中經(jīng)歷了許多場情緒波動,面試過了高興,面試失敗難過,懷疑自己。
現(xiàn)在想想,其實面試也是一種歷練自己的過程,提高自己對情緒的掌控能力,用阿里的方言來說,就是更加皮實了。
面試其實是一種運氣,有的人遇到了大牛面試官,可能問的問題比較難,有的可能又比較簡單,所以千萬不要輕易否定自己。同時,拿到offer之后還要盡早做規(guī)劃,不能得意忘形,互聯(lián)網(wǎng)本來就是一個持久學習的行業(yè),不斷的充實自己,才能為祖國的健康發(fā)展做貢獻!
最后給大家分享幾點感悟把:
- 保持自信,時刻告誡自己不要自卑,更不能自傲
- 給自己列一個計劃
- 早睡早起
- 堅持堅持堅持
以上,就是作者的原文描述,看下來之后,感覺和我自己準備校招的過程很像,我當年參加校招之前的那個假期,也是只在家里面待了幾天而已,其余時間都是在學校進行復習。
學習的方式也是各種刷題,然后根據(jù)筆試、面試題中的知識點,自己去翻書、找博客等,逐一趣攻破。
還有就是作者說自己沒想過來阿里實習,我當時也一樣,我比原作者還差一點,就是本文作者好歹是211院校的,我當時只是個雙非二本的一個學生。剛開始也是想著如果能拿到一個稍微出名一點的互聯(lián)網(wǎng)公司的Offer就滿足了,只是后面在復習過程中,不斷努力,最終拿到了完全超乎自己預料的Offer
最后,大家對于本文原作者感興趣的話,或者想看他總結的面經(jīng),可以去圍觀他的公眾號:王星星的魔燈