本文來(lái)自讀者投稿开瞭,作者是我的一位資深讀者嗤详,也是我知識(shí)星球的球友瓷炮,最近在春招中收割了很多大廠的Offer娘香『嬲溃看了他總結(jié)后,我發(fā)現(xiàn)很多地方和我當(dāng)年參加校招的時(shí)候很相像安接,甚至比我那個(gè)時(shí)候還要優(yōu)秀歇式。分享給大家胡野,和大家一起共勉给涕。
中間還有個(gè)小插曲够庙,這位讀者曾在準(zhǔn)備參加校招之前抄邀,找我?guī)退笇?dǎo)過(guò)簡(jiǎn)歷境肾。后來(lái)我收到一份面試任務(wù),仔細(xì)一看簡(jiǎn)歷非迹,怎么這么似曾相識(shí)憎兽,結(jié)果對(duì)比后發(fā)現(xiàn)正式我之前看過(guò)的那份纯命。
因?yàn)槲覀冋J(rèn)識(shí)亿汞,而且還幫他指導(dǎo)過(guò)簡(jiǎn)歷疗我,所以一方面為了避嫌碍粥。還有就是因?yàn)槲业闹R(shí)星球里面有很多關(guān)于面試題的內(nèi)容嚼摩,如果讓我來(lái)面試他的話枕面,有可能會(huì)刻意的避開(kāi)那些題潮秘,這樣對(duì)他來(lái)說(shuō)也不公平枕荞。所以我特意找同事幫忙進(jìn)行了面試躏精。不過(guò)最終結(jié)果總歸是好的矗烛,果然是真的優(yōu)秀瞭吃,可惜錯(cuò)過(guò)了一次直接Battle的機(jī)會(huì)股冗。
好了,廢話不多說(shuō)了牡拇,以下是他的原文:
背景 {#toc_0}
本人211(鄭州大學(xué))21屆本科畢業(yè)生惠呼,和大佬相比剔蹋,我還是一只蒻箕少梁。不過(guò)在H大博客和知識(shí)星球的幫助下凯沪,我終于在20年實(shí)習(xí)招聘時(shí)拿到了阿里(Java)和騰訊(后臺(tái)轉(zhuǎn)C++)的offer买优,回想準(zhǔn)備面試以及學(xué)習(xí)的這一路走來(lái)妨马,盡管有些崎嶇,但終于如愿以償杀赢。
考研or就業(yè) {#toc_1}
這里不考慮保研的情況烘跺,因?yàn)槿绻梢员Q械脑挘蚁嘈糯蠖鄶?shù)人都會(huì)選擇保研脂崔。
其實(shí)我的GPA也不低滤淳,曾經(jīng)誤以為自己可以保研,但是低估了我們專業(yè)的狗血程度砌左,所以就在大二下學(xué)期慢慢接受了不能保研的事實(shí)脖咐。但是由于我還想在大學(xué)還沒(méi)玩夠(主要是大學(xué)沒(méi)對(duì)象),就想上個(gè)研究生屁擅,所以在大三上就萌生了考研的念頭硝皂。為什么我最后沒(méi)有選擇上研究生呢折欠?我相信每個(gè)人的處境都不相同酱床,原因也都不盡一樣罐寨。在這里我說(shuō)一下大家應(yīng)該考慮的幾個(gè)點(diǎn):
- 自己更想就業(yè)還是更想上研究生
- 為什么想就業(yè)幔烛,為什么想上研究生
- 你對(duì)研究生要研究的領(lǐng)域真的感興趣嗎
- 哪個(gè)把握更大一點(diǎn)
- 學(xué)歷真能成為你的硬傷嗎
- ...
最后說(shuō)一句:人生是一個(gè)不斷選擇的過(guò)程狡恬,每個(gè)選擇都沒(méi)有對(duì)錯(cuò)兔乞,只要你想淡溯,無(wú)論考研還是就業(yè)膘侮,都能成功!
學(xué)習(xí)過(guò)程 {#toc_2}
我是從19年4月從打CTF轉(zhuǎn)到Java的,當(dāng)時(shí)也算是比較幸運(yùn)纲熏,遇到了工程能力比較強(qiáng)的副教授給我們上Java課药有,并不是給我們講Java語(yǔ)法宦言,而是從Jvm開(kāi)始講起兼都,也算是讓我直接對(duì)Java入了門(mén)蚓土。
然后和我同桌(https://blog.csdn.net/qq_42322103 )一起學(xué)習(xí)Java谅河,看同桌給我分享的黑馬的教程(PS 后來(lái)發(fā)現(xiàn)這些東西全講的API哈哈哈,但確實(shí)讓我們對(duì)整個(gè)Java體系有了了解)。
有空就看互墓,晚上一直學(xué)習(xí)到10點(diǎn)半才回宿舍睡覺(jué)渗饮,早上7點(diǎn)半到教室還能再看一會(huì)容贝。
然后每看一個(gè)章節(jié)都把筆記放到CSDN(https://blog.csdn.net/coder_what )上,就這樣的學(xué)習(xí)強(qiáng)度一直持續(xù)到了暑假衬以。
期間還做了一個(gè)基于BIO+Swing的學(xué)生管理系統(tǒng),也算有些收獲摹芙。
暑假時(shí)我只在家呆了7天交胚,在學(xué)校學(xué)習(xí)了SSM,然后基于SpringBoot和Vue做了一個(gè)前后端分離的個(gè)人博客系統(tǒng)(http://wxxlamp.cn )均践。
整個(gè)博客的需求分析车遂,設(shè)計(jì),編碼和運(yùn)維都是我一個(gè)人負(fù)責(zé)的翎蹈,俗話說(shuō)淮菠,麻雀雖小,五臟俱全荤堪,通過(guò)這個(gè)博客兜材,我熟悉了中小型軟件開(kāi)發(fā)的整個(gè)流程理澎,收獲也確實(shí)不小。
然后由于計(jì)劃是準(zhǔn)備20年實(shí)習(xí)曙寡,所以我在大三上學(xué)期就有些懈怠糠爬,同時(shí)還參加了一個(gè)人流量預(yù)測(cè)比賽。
這里我確實(shí)有些遺憾举庶,如果我意識(shí)能更早一點(diǎn)执隧,就可以在大三上學(xué)期準(zhǔn)備實(shí)習(xí)和面試,然后大三寒假就可以拿到實(shí)習(xí)資格户侥,但是當(dāng)時(shí)也不太懂镀琉,所以就拖到了大三的寒假準(zhǔn)備實(shí)習(xí)。
在準(zhǔn)備面試的過(guò)程中蕊唐,這其實(shí)是一個(gè)磨心態(tài)的過(guò)程屋摔,難免會(huì)有自卑和自傲的時(shí)候,一定一定要調(diào)整好狀態(tài)替梨,重新出發(fā)钓试,“廠子千千萬(wàn),不行咱就換”副瀑。
面試心得 {#toc_3}
個(gè)人認(rèn)為我準(zhǔn)備的比較充分弓熏。我準(zhǔn)備的具體流程為上牛客找面試題糠睡,然后歸類總結(jié)挽鞠,最后在通過(guò)百度谷歌找出這些問(wèn)題的答案,自己再進(jìn)行理解狈孔,循環(huán)往復(fù)信认,就ok了。下面我列一下一些面試(Java)常見(jiàn)的問(wèn)題:
Java基礎(chǔ) {#toc_4}
泛型均抽,面向?qū)ο蠛兔嫦蜻^(guò)程的區(qū)別狮杨,語(yǔ)法糖,包裝類和基本類型到忽,stream橄教,lambda,多態(tài)實(shí)現(xiàn)方式喘漏,==/equals/hashCode()护蝶,static和final,內(nèi)部類翩迈,接口和抽象類持灰,編碼方式,異常负饲,IO堤魁,反射
Java容器 {#toc_5}
Collection和Map喂链,HashMap的結(jié)構(gòu)(1.7和1.8),hashMap的幾個(gè)變量妥泉,初始化值椭微,LRU與LinkedHashMap,ArrayList的擴(kuò)容原理盲链,如何使容器變得線程安全蝇率,隊(duì)列的使用場(chǎng)景
Jvm {#toc_6}
編譯執(zhí)行or解釋執(zhí)行,常量池刽沾,類加載過(guò)程本慕,實(shí)例初始化過(guò)程,GC算法侧漓,Jvm內(nèi)存空間锅尘,常見(jiàn)的Jvm命令如jstat,jhat布蔗,jmap藤违,jinfo,內(nèi)存泄露怎么處理何鸡,如何定位while死循環(huán)和死鎖
Java并發(fā) {#toc_7}
jmm,volatile牛欢,synchronized骡男,并發(fā)編程的三個(gè)特性(如何保證),Object的幾個(gè)方法傍睹,Thread的幾個(gè)方法隔盛,線程五個(gè)狀態(tài),JUC包(并發(fā)容器拾稳,lock吮炕,工具類,線程池访得,原子類)龙亲,AQS原理,ThreadLocal悍抑,線程的鳄炉,多線程循環(huán)打印abc,生產(chǎn)者消費(fèi)者模式
設(shè)計(jì)模式 {#toc_8}
五大原則搜骡,工廠模式拂盯,迭代器模式,觀察者模式记靡,適配器模式谈竿,策略模式团驱,代理模式,外觀模式空凸,享元模式嚎花,單例模式,裝飾者模式劫恒,組合模式贩幻,模板方法模式等
408(計(jì)算機(jī)學(xué)科專業(yè)基礎(chǔ)綜合) {#toc_9}
進(jìn)程線程和協(xié)程,內(nèi)存管理方式两嘴,常見(jiàn)linux命令top丛楚,ps,cat等憔辫,網(wǎng)絡(luò)模型趣些,nio(epoll,poll,select),bio,aio贰您,虛擬內(nèi)存坏平,頁(yè)面替換算法,磁道調(diào)度算法锦亦,銀行家算法舶替,死鎖定義,CPU調(diào)度算法杠园,哲學(xué)家問(wèn)題顾瞪,理發(fā)師問(wèn)題,進(jìn)程內(nèi)存分配抛蚁,進(jìn)程切換過(guò)程陈醒,內(nèi)存管理方式
7層模型,url的執(zhí)行過(guò)程瞧甩,HTTP1钉跷,2和HTTPS,TCP和UDP肚逸,SYN泛洪爷辙,TIME_WAIT處理方式,中間人攻擊朦促,TCP的沾包和拆包犬钢,XSS,CSXF思灰,DDOS玷犹,SQL注入
鏈表和數(shù)組,翻轉(zhuǎn)鏈表,樹(shù)的鏡像歹颓,樹(shù)的遍歷坯屿,合并有序數(shù)組,topK問(wèn)題巍扛,大數(shù)據(jù)找中位數(shù)领跛,大數(shù)據(jù)排序,快速找到某個(gè)人的排名撤奸,紅黑樹(shù)吠昭,AVL樹(shù),B+樹(shù)胧瓜,各種排序矢棚,這個(gè)刷LeetCode就完事了
MySQL {#toc_10}
隔離級(jí)別,ACID府喳,ACID如何實(shí)現(xiàn)蒲肋,MVCC,索引钝满,前綴索引兜粘,回表,最左原則弯蚜,聚簇索引孔轴,非聚簇索引,覆蓋索引碎捺,hash索引路鹰,索引下推,索引結(jié)構(gòu)牵寺,Innodb和MyISAM悍引,間隙鎖恩脂,行鎖帽氓,表鎖,relog俩块,undolog黎休,binlog
Redis {#toc_11}
緩存一致性,持久化方式玉凯,網(wǎng)絡(luò)模式势腮,IO方式,性能高的原因漫仆,為什么單線程捎拯,集群方式,分布式鎖盲厌,Redis如何保證多條命令單線程執(zhí)行署照,Redis的數(shù)據(jù)結(jié)構(gòu)祸泪,跳表
Nginx {#toc_12}
負(fù)載均衡方式,為什么可以負(fù)載均衡建芙,為什么可做反向代理没隘,nginx有什么功能,如何保證緩存時(shí)間不一致禁荸,怎么設(shè)置Nginx
SSM {#toc_13}
spring的啟動(dòng)流程右蒲,springboot的啟動(dòng)流程,aop和ioc赶熟,springboot的SPI瑰妄,mybatis的代理模式,#和(钧大,為什么)不可缺少翰撑,bean的生命周期,SSM的設(shè)計(jì)模式啊央,Spring的事物眶诈,bean的相互依賴
其他 {#toc_14}
項(xiàng)目流程,限流器瓜饥,LRU算法逝撬,黑名單算法,項(xiàng)目亮點(diǎn)乓土,項(xiàng)目難點(diǎn)宪潮,團(tuán)隊(duì)如何協(xié)作,如何快速找到互相關(guān)注的人趣苏,tomcat的啟動(dòng)流程狡相,微服務(wù),RPC流程食磕,MQ尽棕,docker,k8s彬伦,分布式事物滔悉,CASE和CAP
關(guān)于面試方面,建議和別人一起對(duì)練单绑,包括自我介紹(準(zhǔn)備兩個(gè)回官,一個(gè)技術(shù),一個(gè)hr)搂橙,然后通過(guò)簡(jiǎn)歷互相問(wèn)技術(shù)歉提。真正面試的時(shí)候,一定要放輕松,然后不會(huì)的地方就說(shuō)不會(huì)苔巨,會(huì)一點(diǎn)的地方一定要把會(huì)那一點(diǎn)說(shuō)出來(lái)弯屈。不要跟面試官說(shuō)你準(zhǔn)備過(guò)什么的,這樣就顯得太刻意了恋拷。
關(guān)于簡(jiǎn)歷 {#toc_15}
個(gè)人認(rèn)為還是不要寫(xiě)的花里胡哨的资厉,WonderCV(https://www.wondercv.com/ )就很不錯(cuò)。簡(jiǎn)歷照片也要來(lái)一張好看的蔬顾,個(gè)人覺(jué)的白底比較好宴偿。
簡(jiǎn)歷最前面的肯定是個(gè)人信息(GPA,學(xué)校诀豁,課程)窄刘,接著是掌握的技術(shù)棧(可以分為Java,DB舷胜,框架娩践,其他)。
再后面的板塊烹骨,就是寫(xiě)自己的項(xiàng)目或者實(shí)習(xí)經(jīng)歷翻伺。接著寫(xiě)自己的獲獎(jiǎng)情況。最后寫(xiě)自己的個(gè)人說(shuō)明沮焕。
如果有個(gè)人博客或者Github寫(xiě)的比較好吨岭,這當(dāng)然也是加分項(xiàng)。
參考資料 {#toc_16}
這里不貼具體的面試題了峦树,大家有需要可以到我的公眾號(hào)里拿:王星星的魔燈
下面是我面試時(shí)候的參考資料辣辫,希望對(duì)大家有幫助
Google(https://www.google.com ):Google和Baidu無(wú)疑對(duì)大家的幫助是最大的,遇到問(wèn)題不要?jiǎng)硬粍?dòng)就問(wèn)別人魁巩,問(wèn)之前要想一想自己能不能通過(guò)其他途徑搜索到急灭。
Hollis的個(gè)人博客/知識(shí)星球/公眾號(hào)(https://www.hollischuang.com ):H哥的博客和直面Java幫我梳理了Java體系,非常感激谷遂!
王星星的魔燈(https://blog.csdn.net/coder_what ):這個(gè)是我的博客葬馋,里面記錄了我的成長(zhǎng)過(guò)程
田小波的技術(shù)博客(http://www.tianxiaobo.com/ ):這位大牛的博客我是在百度的過(guò)程中偶然發(fā)現(xiàn)的,也非常不錯(cuò)
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)設(shè)計(jì)(https://yq.aliyun.com/articles/64762 ):可以對(duì)J2EE的秒殺設(shè)計(jì)有一個(gè)非常好的了解
寫(xiě)到最后 {#toc_17}
其實(shí)說(shuō)實(shí)話埋凯,我最開(kāi)始準(zhǔn)備春招的時(shí)候根本沒(méi)想過(guò)去阿里實(shí)習(xí)点楼,我記得我同桌之前還問(wèn)我如果XX(另一個(gè)互聯(lián)網(wǎng)公司)要我我去不去扫尖,當(dāng)時(shí)我還跟他說(shuō)怎么可能不去白对,XX要我我就謝天謝地了。
我記得在第一面試的時(shí)候我牙都是哆嗦的换怖,具體的面經(jīng)在我公眾號(hào)上有寫(xiě)甩恼。
在面試過(guò)程中經(jīng)歷了許多場(chǎng)情緒波動(dòng),面試過(guò)了高興,面試失敗難過(guò)条摸,懷疑自己悦污。
現(xiàn)在想想,其實(shí)面試也是一種歷練自己的過(guò)程钉蒲,提高自己對(duì)情緒的掌控能力切端,用阿里的方言來(lái)說(shuō),就是更加皮實(shí)了顷啼。
面試其實(shí)是一種運(yùn)氣踏枣,有的人遇到了大牛面試官,可能問(wèn)的問(wèn)題比較難钙蒙,有的可能又比較簡(jiǎn)單茵瀑,所以千萬(wàn)不要輕易否定自己。同時(shí)躬厌,拿到offer之后還要盡早做規(guī)劃马昨,不能得意忘形,互聯(lián)網(wǎng)本來(lái)就是一個(gè)持久學(xué)習(xí)的行業(yè)扛施,不斷的充實(shí)自己鸿捧,才能為祖國(guó)的健康發(fā)展做貢獻(xiàn)!
最后給大家分享幾點(diǎn)感悟把:
- 保持自信疙渣,時(shí)刻告誡自己不要自卑笛谦,更不能自傲
- 給自己列一個(gè)計(jì)劃
- 早睡早起
- 堅(jiān)持堅(jiān)持堅(jiān)持
以上,就是作者的原文描述昌阿,看下來(lái)之后饥脑,感覺(jué)和我自己準(zhǔn)備校招的過(guò)程很像,我當(dāng)年參加校招之前的那個(gè)假期懦冰,也是只在家里面待了幾天而已灶轰,其余時(shí)間都是在學(xué)校進(jìn)行復(fù)習(xí)。
學(xué)習(xí)的方式也是各種刷題刷钢,然后根據(jù)筆試笋颤、面試題中的知識(shí)點(diǎn),自己去翻書(shū)内地、找博客等伴澄,逐一趣攻破。
還有就是作者說(shuō)自己沒(méi)想過(guò)來(lái)阿里實(shí)習(xí)阱缓,我當(dāng)時(shí)也一樣非凌,我比原作者還差一點(diǎn),就是本文作者好歹是211院校的荆针,我當(dāng)時(shí)只是個(gè)雙非二本的一個(gè)學(xué)生敞嗡。剛開(kāi)始也是想著如果能拿到一個(gè)稍微出名一點(diǎn)的互聯(lián)網(wǎng)公司的Offer就滿足了颁糟,只是后面在復(fù)習(xí)過(guò)程中,不斷努力喉悴,最終拿到了完全超乎自己預(yù)料的Offer