从机械自动化专业到百度腾讯拼多多Java工程师转行之路
關(guān)注上方藍(lán)字關(guān)注我們
????????秋招已經(jīng)過(guò)半,突然想寫篇文章總結(jié)下自己的 Java 轉(zhuǎn)行之路和秋招提前批、暑期實(shí)習(xí)的面試經(jīng)歷及個(gè)人感悟。因?yàn)橐獙懙臇|西比較多,拆分成三篇:
第一篇:Java 轉(zhuǎn)行之路第二篇:Java 面試必備知識(shí)點(diǎn) 第三篇:秋招面經(jīng)集合
01
個(gè)人基本情況?
本科:機(jī)械制造及其自動(dòng)化專業(yè)
研究生: 機(jī)械制造及其自動(dòng)化專業(yè) 實(shí)驗(yàn)室項(xiàng)目:兩項(xiàng)校企合作項(xiàng)目 實(shí)習(xí):兩段互聯(lián)網(wǎng)實(shí)習(xí)經(jīng)歷:滴滴出行、拼多多 技術(shù)棧:Java 后端02?
學(xué)習(xí)時(shí)間軸?
2017.08-2017.09:HTML5、CSS、JavaScript、JQuery
2017.10-2018.03:Java基礎(chǔ)、Servlet、JDBC、JSP、MySQL、Spring、Struts2、Hibernate
2018.04-2018.05:數(shù)據(jù)可視化項(xiàng)目(SSH)
2018.06-2018.10:兩網(wǎng)融合項(xiàng)目(SSH)
2018.11-2019.01:數(shù)據(jù)結(jié)構(gòu)與算法、Java 集合類源碼、Java 虛擬機(jī)、Java 并發(fā)編程、劍指 offer、計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議、計(jì)算機(jī)操作系統(tǒng)、設(shè)計(jì)模式、SpringMVC、MyBatis
2019.02-2019.04:滴滴出行實(shí)習(xí)、Maven、Git
2019.05-2019.06:刷題(左神、LeetCode)、Redis、RabbitMQ
2019.07-2019.09:拼多多實(shí)習(xí)、Dubbo、Kafka
03
暑期實(shí)習(xí) offer
騰訊:(深圳)TEG 后端開(kāi)發(fā)工程師
拼多多:(上海)后端開(kāi)發(fā)工程師
華為:(杭州)CloudBU 軟件開(kāi)發(fā)工程師
思科:(杭州)大數(shù)據(jù)開(kāi)發(fā)工程師
愛(ài)奇藝: (上海)后端開(kāi)發(fā)工程師04
秋招 offer?
百度:(上海研發(fā)中心)后端開(kāi)發(fā)工程師
字節(jié)跳動(dòng):(深圳)后端開(kāi)發(fā)工程師
拼多多:(上海)后端開(kāi)發(fā)工程師
順豐科技:(深圳)后端開(kāi)發(fā)工程師(offer 審批中、sp 專場(chǎng))
騰訊:(深圳)IEG 后端開(kāi)發(fā)工程師?復(fù)試
0 1 我為什么要轉(zhuǎn)互聯(lián)網(wǎng)?01
專業(yè)興趣?
對(duì)機(jī)械專業(yè)缺乏興趣愛(ài)好:本科雖然成績(jī)排名還比較靠前,可能是因?yàn)橐恢庇X(jué)得既然不知道自己喜歡什么,那就學(xué)好當(dāng)前的專業(yè)。在本科畢設(shè)的時(shí)候接觸了一些軟件相關(guān)的東西,發(fā)現(xiàn)自己對(duì)軟件相關(guān)的東西要比機(jī)械感興趣的多,所以在研究生期間就和導(dǎo)師溝通參與的都是軟件相關(guān)的項(xiàng)目。一直覺(jué)得興趣愛(ài)好才是職業(yè)成長(zhǎng)的最好驅(qū)動(dòng)力,至少可以決定你在某個(gè)行業(yè)的深度。
02
未來(lái)學(xué)業(yè)規(guī)劃?
未來(lái)學(xué)業(yè)規(guī)劃:研一開(kāi)學(xué)就對(duì)讀不讀博進(jìn)行了認(rèn)真的思考,綜合自己的性格、研究所的課題后決定不讀博。因?yàn)槿绻x博的話,最好還是多搞一些基礎(chǔ)研究,不要花過(guò)多的時(shí)間在軟件項(xiàng)目上,因?yàn)槎际呛?jiǎn)單的搬磚,對(duì)于博士大佬來(lái)說(shuō)有點(diǎn)“浪費(fèi)時(shí)間”。
03
薪資?
機(jī)械專業(yè)的薪資和互聯(lián)網(wǎng)行業(yè)的薪資著實(shí)差距太大,這也是很多人轉(zhuǎn)行的最大動(dòng)力之一吧。不過(guò)個(gè)人覺(jué)得還是興趣為先,薪資只能作為職業(yè)選擇的加分項(xiàng),畢竟各行各業(yè)都有自己的優(yōu)缺點(diǎn)。
04
就業(yè)城市?
互聯(lián)網(wǎng)城市相對(duì)來(lái)說(shuō)都是在一線,北、上、廣、深、杭,如果你要是沒(méi)有打算留在一線城市,轉(zhuǎn)行也要慎重,畢竟一線以下城市互聯(lián)網(wǎng)公司可能比較少,發(fā)展也比較受限。
05
個(gè)人生活?
每個(gè)人對(duì)生活的追求都是不一樣的,有的人喜歡互聯(lián)網(wǎng)的9、9、6,也有人喜歡國(guó)企/外企的 9、5、5。我了解到的國(guó)內(nèi)大部分互聯(lián)網(wǎng)行業(yè)的工作強(qiáng)度是要高于其他行業(yè),但是也是要分公司的。有一些國(guó)企或者外企性質(zhì)的互聯(lián)網(wǎng)公司還是很舒服的,錢也不少。
0 2? Java的自學(xué)之路我是2017年8月開(kāi)始自學(xué)的 Java。
最開(kāi)始花了大概兩個(gè)月時(shí)間學(xué)習(xí)了 web 前端:HTML5、CSS、JS,后面都在學(xué)習(xí)后端的知識(shí)。我主要是通過(guò)視頻、書籍、博客學(xué)習(xí)的,大概說(shuō)下我的學(xué)習(xí)歷程和一些覺(jué)得不錯(cuò)的書籍的推薦吧。
01
學(xué)習(xí)歷程??
第一階段:視頻學(xué)習(xí) 主要是看黑馬和尚硅谷的培訓(xùn)視頻(百度搜索,官網(wǎng)上就可以找到)。看視頻學(xué)習(xí)的最大好處就是入門很快,看一遍,再跟著敲一遍,但是缺點(diǎn)就是時(shí)間會(huì)花費(fèi)長(zhǎng)一些。我入門階段基本上都是看視頻學(xué)習(xí),建議是找最新的視頻學(xué)習(xí),因?yàn)榕嘤?xùn)機(jī)構(gòu)也會(huì)根據(jù)公司每年面試的側(cè)重點(diǎn)調(diào)整自己的教學(xué)方案。如果找不到資源,可以和博主說(shuō)下,還是收藏了一些。第二階段:書籍學(xué)習(xí)
視頻學(xué)習(xí)一般都是比較基礎(chǔ)和偏向案例實(shí)現(xiàn)的的教學(xué),如果要想系統(tǒng)的了解某一模塊的知識(shí),閱讀專業(yè)書籍是少不了的。如果有時(shí)間肯定多讀一些書好,但是最優(yōu)的做法是在有限的時(shí)間內(nèi)閱讀完經(jīng)典書籍。拿 Java 后端來(lái)說(shuō),《Java編程思想》、《深入理解Java虛擬機(jī)》,毫不夸張的說(shuō)幾乎每次面試都會(huì)有很多知識(shí)點(diǎn)都是出自這些書中。所以,這類書籍,多讀幾遍。最好看完后,能夠?qū)懗鲎约旱淖x書筆記。我一般是寫讀書筆記前,會(huì)看一看別人的讀書筆記,看看自己對(duì)書中的知識(shí)點(diǎn)是否有理解偏差或者有遺漏的地方。
具體的書籍推薦可詳見(jiàn)下文。 第三階段:博客學(xué)習(xí)
這一階段是一個(gè)持續(xù)的過(guò)程,主要是寫博客和看博客。總感覺(jué)看了書很快就忘了,所以為了以后高效的復(fù)習(xí),開(kāi)始寫了一些博客,當(dāng)然博客內(nèi)容主要來(lái)源自書本以及一些大牛的博客,再加上自己的理解。到目前為止,已經(jīng)寫了309篇博客【原創(chuàng)+轉(zhuǎn)載】。堅(jiān)持寫博客,先仿寫/轉(zhuǎn)載別人的,再進(jìn)行自己的原創(chuàng),這樣一點(diǎn)點(diǎn)的深入,會(huì)有很大收獲的。 這里貼出博客的地址,感興趣的可以看下:
- https://blog.csdn.net/pcwl1206
一共做過(guò)兩個(gè)校企合作項(xiàng)目,這兩個(gè)項(xiàng)目雖然很簡(jiǎn)單,都是單點(diǎn)的 web 服務(wù),但是卻給自學(xué) Java 帶來(lái)了很大的幫助。?而且在最開(kāi)始找實(shí)習(xí)的時(shí)候,這兩段項(xiàng)目還是起了很大的作用。個(gè)人感覺(jué)項(xiàng)目簡(jiǎn)單也沒(méi)有關(guān)系,只要你把項(xiàng)目中涉及到的知識(shí)點(diǎn)都搞清楚,還是很加分的。至少把自己做的東西弄懂了。
項(xiàng)目1:可視化項(xiàng)目。這個(gè)項(xiàng)目比較簡(jiǎn)單,采集機(jī)床的數(shù)據(jù),然后存儲(chǔ)到數(shù)據(jù)庫(kù)里,最后再進(jìn)行二維、三維的圖、表展示。主要涉及的技術(shù)是:Java、Spring、Struts2、Hibernate、Json。
項(xiàng)目2:兩網(wǎng)融合項(xiàng)目。負(fù)責(zé)其中一個(gè)服務(wù),通過(guò)發(fā)布 WebService 接口的形式實(shí)現(xiàn)不同服務(wù)之間的文件上傳、下發(fā)功能。主要涉及的技術(shù)是:Java、WebService、Spring、Struts2、Hibernate、XML。 第五階段:實(shí)習(xí)
個(gè)人觀點(diǎn):實(shí)習(xí)是非常重要的。 我是在研一的暑假開(kāi)始投遞了一些公司,大公司基本上要么是沒(méi)有面試機(jī)會(huì),要么就是一輪游。 但是還是比較建議大家盡早投遞一些公司試試水,我一直覺(jué)得通過(guò)面試復(fù)習(xí)是非常高效的。 這里給大家?guī)c(diǎn)建議: 1. 先投遞一些小公司,鍛煉自己的面試表達(dá)能力; 2. 再投遞一些不會(huì)去的大公司,鍛煉算法、完善基礎(chǔ)知識(shí); 3. 最后再投遞目標(biāo)公司,最好也是難度大的放在最后面。
02
資源推薦?
1、書籍:Java基礎(chǔ):《Java編程思想》、《深入理解Java虛擬機(jī)》、《Java并發(fā)編程之美》
數(shù)據(jù)庫(kù):《SQL必知必會(huì)》、《高性能MySQL》
計(jì)算機(jī)網(wǎng)絡(luò):《圖解HTTP》、《計(jì)算機(jī)網(wǎng)絡(luò)》
操作系統(tǒng):《深入理解計(jì)算機(jī)系統(tǒng)》、《鳥(niǎo)哥的Linux私房菜》
數(shù)據(jù)結(jié)構(gòu)與算法:《算法4》、《劍指offer》
設(shè)計(jì)模式:《大話設(shè)計(jì)模式》
2、github
CyC2018:
https://github.com/CyC2018/CS-Notes
JavaGuide:
https://github.com/Snailclimb/JavaGuide
interviews:
https://github.com/kdn251/interviews
advanced-java:
https://github.com/doocs/advanced-java
architect-awesome:
https://github.com/xingshaocheng/architect-awesome
https://github.com/gzc426/Java-Interview
3、csdn?
pcwl_Java:
https://blog.csdn.net/pcwl1206
程序員喬戈里:
https://me.csdn.net/wantflydacheng
一杯甜酒:
https://me.csdn.net/u012562943
徐劉根: https://me.csdn.net/u010870518黃小斜: https://me.csdn.net/a724888
4、付費(fèi)
極客時(shí)間: 我是比較推薦這個(gè)付費(fèi)軟件的,我訂閱過(guò)《數(shù)據(jù)結(jié)構(gòu)與算法之美》、《MySQL 實(shí)戰(zhàn)》、《趣談網(wǎng)絡(luò)協(xié)議》、《從0開(kāi)始學(xué)微服務(wù)》。這種專欄最大的好處在于每篇文章都比較短,大概10-15分鐘,可以在公交車、排隊(duì)時(shí)閱讀。知識(shí)都是積累出來(lái)的,而且每篇文章都是某個(gè)知識(shí)點(diǎn)的精華講解,簡(jiǎn)單易懂。 左神算法: 算法在應(yīng)屆生求職面試中的重要性就不用“大寫加粗”了。左神算法分為初、高級(jí)兩部分。初級(jí)主要講解基本的數(shù)據(jù)結(jié)構(gòu)及其相關(guān)的題目,如:棧、隊(duì)列、鏈表、樹(shù)、圖、貪心算法、動(dòng)態(tài)規(guī)劃等 。高級(jí)主要講解一些常用的算法,如:KMP、Manacher、BFPRT、蓄水池算法、滑動(dòng)窗口、單調(diào)棧等。 牛客網(wǎng)項(xiàng)目:牛客網(wǎng)項(xiàng)目分為初、中、高級(jí),我做了中級(jí)《秒殺系統(tǒng)》的項(xiàng)剛要找實(shí)習(xí)并且沒(méi)有項(xiàng)目的同學(xué),我還是比較推薦做下秒殺 的 項(xiàng)目,雖然這個(gè)項(xiàng)目已經(jīng)被很多人寫進(jìn)簡(jiǎn)歷里了,但是只要你把其中涉及的知識(shí)點(diǎn)(扣庫(kù)存、緩存、消息隊(duì)列等)都弄清楚了,這就是你的項(xiàng)目。 5、工具推薦 思維導(dǎo)圖 Xmind:很好用,基本上都用過(guò)。 印象筆記:在線同步筆記、好友分享。
IDEA:做 Java 開(kāi)發(fā)的盡量使用 IDEA 代替 Eeclipse。
Git:版本控制更加推薦 Git,SVN 用的很少了。
Postman:一款功能強(qiáng)大的網(wǎng)頁(yè)調(diào)試與發(fā)送網(wǎng)頁(yè) HTTP 請(qǐng)求的軟件。
0 3 實(shí)習(xí)的那點(diǎn)事
無(wú)論是日常實(shí)習(xí)還是暑期實(shí)習(xí),都要先想清楚一件事情: 我為什么要選擇這份實(shí)習(xí)? 個(gè)人建議是最好能有兩段實(shí)習(xí):暑期實(shí)習(xí)面試前(每年3月份)有一段日常實(shí)習(xí)經(jīng)歷,可以用在暑期實(shí)習(xí)的面試中。還有就是暑期實(shí)習(xí),最好去能夠轉(zhuǎn)正的大廠,這樣有轉(zhuǎn)正 offer 保底,不至于很慌。
01
實(shí)習(xí)的好處??
1. 暑期實(shí)習(xí)有轉(zhuǎn)正機(jī)會(huì):很多大廠,比如:阿里、騰訊、拼多多等都是很喜歡留用實(shí)習(xí)生的,畢竟企業(yè)培養(yǎng)一個(gè)實(shí)習(xí)生肯定是賠本的買賣,稍微有點(diǎn)貢獻(xiàn)的基本上都可以留下來(lái)。甚至有一些公司的暑期實(shí)習(xí) offer 就可以代表秋招 offer,因?yàn)槊嬖囯y度都是一樣的; 2. 面試加分:這也是我認(rèn)為最重要的一點(diǎn),實(shí)習(xí)可以增加簡(jiǎn)歷篩選通過(guò)的概率,更會(huì)在面試過(guò)程中凸顯出很大的作用。如果你有一段還不錯(cuò)的實(shí)習(xí)經(jīng)驗(yàn),在面試的時(shí)候可以挑這段實(shí)習(xí)中做的事情來(lái)說(shuō)。如果沒(méi)有實(shí)習(xí)經(jīng)歷,那只能狂懟基礎(chǔ)知識(shí)了,而且有些公司和面試官更偏向于要有過(guò)實(shí)習(xí)經(jīng)歷的應(yīng)屆生;3. 基礎(chǔ)知識(shí)的鞏固:我經(jīng)常會(huì)有一種感受,很多學(xué)過(guò)的知識(shí),看過(guò)的面經(jīng),只有在真正用到時(shí),才會(huì)理解的很深刻,通過(guò)實(shí)習(xí)可以鞏固自己的基礎(chǔ)知識(shí); 4. 編碼習(xí)慣的規(guī)范:自己平時(shí)寫代碼可能不會(huì)注意那么多,只要實(shí)現(xiàn)功能就行了。但是實(shí)習(xí)過(guò)程中往往都是要先熟悉所在小組現(xiàn)有的工程代碼,可以看看大佬們是怎么寫代碼的,比如:設(shè)計(jì)模式的使用、日志的規(guī)范格式、單元測(cè)試等等; 5. 工程業(yè)務(wù)開(kāi)發(fā)能力的鍛煉:一般實(shí)習(xí)生都會(huì)先分一些小需求做,可以學(xué)到如何和產(chǎn)品溝通需求、開(kāi)發(fā)、測(cè)試、上線一整套流程。而且在互聯(lián)網(wǎng)公司實(shí)習(xí),特別是大廠,基本上都是分布式的服務(wù),可以學(xué)到很多分布式的實(shí)際應(yīng)用場(chǎng)景,可以利用這樣的機(jī)會(huì)學(xué)習(xí)分布式框架、分布式事務(wù)等等知識(shí); 6. 提前了解一個(gè)公司:這里我有一個(gè)個(gè)人建議,千萬(wàn)不要只聽(tīng)別人說(shuō)某某公司怎么樣,一定要自己深入的去了解下。因?yàn)楹芏嗳硕肌昂凇蔽叶嗟纳习鄷r(shí)間,去實(shí)習(xí)后發(fā)現(xiàn)并沒(méi)有說(shuō)的那么嚴(yán)重,而且我是在 C 端部門,如果是基礎(chǔ)架構(gòu)或者 B 端可能會(huì)下班更早一些。因?yàn)榇髲S部門很多,下班時(shí)間是要看部門和個(gè)人工作效率的。除了工作時(shí)間,最重要的是你去實(shí)習(xí),你可以了解到公司的企業(yè)文化、價(jià)值觀,Leader 的風(fēng)格、團(tuán)隊(duì)的技術(shù)等等;
02
實(shí)習(xí)的弊端??
1. 有些互聯(lián)網(wǎng)公司對(duì)實(shí)習(xí)生要求還是比較高的,可能會(huì)分配比較多的需求。那么這樣的話,就沒(méi)有太多的時(shí)間復(fù)習(xí); 2. 秋招筆試一般都是兩個(gè)小時(shí),如果在實(shí)習(xí)的話,多多少少會(huì)有些不方便; 3. 還有一種實(shí)習(xí)最坑的,實(shí)習(xí)快結(jié)束的時(shí)候,leader 說(shuō)沒(méi)有轉(zhuǎn)正機(jī)會(huì)。遇到這種情況,也是欲哭無(wú)淚。03
實(shí)習(xí)要做的事情?
1. 實(shí)習(xí)最重要的事情肯定還是能夠?qū)W到東西。要利用好公司的資源,盡量多學(xué)習(xí)一些實(shí)習(xí)團(tuán)隊(duì)項(xiàng)目中涉及的知識(shí)點(diǎn)。因?yàn)椴欢碾S時(shí)可以問(wèn)團(tuán)隊(duì)中的大牛們,一般都會(huì)比較耐心的解答。畢竟實(shí)際工程中的應(yīng)用還是和書本上學(xué)來(lái)的有所差別; 2. 記錄好自己做的事情、遇到的坑,這樣方便以后面試的時(shí)候用。不要等到實(shí)習(xí)結(jié)束的時(shí)候再去補(bǔ)充,可能會(huì)忘記一些東西,因?yàn)橐话慊ヂ?lián)網(wǎng)公司日常開(kāi)發(fā)都是使用自己內(nèi)網(wǎng)的,離職后也沒(méi)有權(quán)限去訪問(wèn)了; 3. 看公司的文檔資料,一般團(tuán)隊(duì)都會(huì)有一個(gè) wiki 文檔,記錄平時(shí)的開(kāi)發(fā)需求及故障復(fù)盤。因?yàn)槊嬖囍薪?jīng)常會(huì)被問(wèn)到“你開(kāi)發(fā)中遇到過(guò)什么問(wèn)題?你是怎么解決的?”,如果你覺(jué)得自己的問(wèn)題比較簡(jiǎn)單,就可以看看團(tuán)隊(duì)的 wiki 故障記錄,再問(wèn)下 wiki 的記錄者,只要把這個(gè)場(chǎng)景下的問(wèn)題搞清楚了,就可以應(yīng)用到面試中; 4. 一定要搞清楚自己做過(guò)的項(xiàng)目的全貌,一般面試中需要給面試官講清楚整個(gè)項(xiàng)目的結(jié)構(gòu),而不僅僅是你做的那一點(diǎn)點(diǎn)。所以,做需求之余,要搞清楚整個(gè)服務(wù)的業(yè)務(wù)邏輯。不然面試官會(huì)覺(jué)得你是一個(gè)只做需求,沒(méi)有思考的開(kāi)發(fā)人員。0 4 秋招提前批
01
什么時(shí)候開(kāi)始復(fù)習(xí)??
如果你還在糾結(jié)這個(gè)問(wèn)題,我可以很明確的告訴你:現(xiàn)在就開(kāi)始復(fù)習(xí)。參加過(guò)暑期實(shí)習(xí)面試和秋招的同學(xué)都有一個(gè)共同的感受就是復(fù)習(xí)的時(shí)間不夠。不要想面試前再去復(fù)習(xí),那樣很容易會(huì)被吊打的,除非你基礎(chǔ)真的特別好,不然的話就從現(xiàn)在開(kāi)始制定復(fù)習(xí)計(jì)劃。可能你現(xiàn)在只是大二、研一的學(xué)生,那么還是要復(fù)習(xí)的,學(xué)過(guò)的東西,一定要及時(shí)復(fù)習(xí),保留感覺(jué),不然都堆積到最后復(fù)習(xí),你會(huì)懷疑自己到底有沒(méi)有學(xué)過(guò)這些東西。
02?
怎么復(fù)習(xí)??
我覺(jué)得怎么復(fù)習(xí)取決于距離面試的時(shí)間和你當(dāng)前的技術(shù)水平。如果時(shí)間還比較多的情況下,是比較建議認(rèn)真過(guò)一下每一個(gè)知識(shí)點(diǎn),不要遺留下什么問(wèn)題,否則在后續(xù)的面試中你就很有可能因?yàn)檫z留下的個(gè)別問(wèn)題“跪”的很慘,我是有過(guò)這樣教訓(xùn)的。復(fù)習(xí)過(guò)的問(wèn)題可以使用一些筆記軟件記錄清楚,方便下次復(fù)習(xí)。
如果時(shí)間不是很充裕,基礎(chǔ)又不是特別好,面試又得硬上的情況下,以面經(jīng)為主,把要面試公司最近的面經(jīng)都過(guò)一遍,然后再過(guò)一下每個(gè)知識(shí)點(diǎn)模塊中常被問(wèn)到的問(wèn)題。為了面試,實(shí)在不行就“背”。
03
什么時(shí)候投遞提前批最合適??
秋招提前批是非常重要的,大部分人都是希望在提前批能夠拿到保底 offer。2019年秋招提前批大概是在6月上旬就開(kāi)始了(VIVO),然后7月中旬-8月中旬開(kāi)始大規(guī)模面試。投遞提前批雖然重要,還是比較建議在復(fù)習(xí)差不多的情況下再投遞,或者說(shuō)沒(méi)有怎么復(fù)習(xí)的情況下盡量不要投遞秋招心儀的公司,否則大概率只會(huì)去當(dāng)“炮灰”。當(dāng)然,也不要等到都復(fù)習(xí)好了再去投遞,因?yàn)榇蟛糠秩硕紩?huì)發(fā)現(xiàn)永遠(yuǎn)沒(méi)有復(fù)習(xí)好的那一天,感覺(jué)差不多了就開(kāi)始投,邊面試邊復(fù)習(xí)。
04
復(fù)習(xí)的重點(diǎn)?
1. 數(shù)據(jù)結(jié)構(gòu)與算法:《劍指Offer》、LeetCode Top100、常考的一些算法:TopK、生產(chǎn)者消費(fèi)者模式、多線程交替打印、HashMap 的簡(jiǎn)單實(shí)現(xiàn)等等;
2. 計(jì)算機(jī)網(wǎng)絡(luò):五層/七層協(xié)議、TCP 和 UDP 的區(qū)別、TCP 三次握手和四次揮手、HTTP 的特點(diǎn)、HTTP 與 HTTPS 的區(qū)別、HTTPS 過(guò)程等等;
3. 計(jì)算機(jī)操作系統(tǒng):進(jìn)程與線程的區(qū)別、死鎖的概念/檢測(cè)/避免、進(jìn)程間的通信方式、內(nèi)存管理等等;
4. 設(shè)計(jì)模式:單例模式、工廠三兄弟、適配器模式、代理模式、裝飾者模式等等,以及項(xiàng)目中和 JDK/Spring中用到過(guò)的設(shè)計(jì)模式;
5. Java 語(yǔ)言基礎(chǔ):重載和重寫的區(qū)別、抽象類和接口的區(qū)別、String/StringBuilder/StringBuffer 的區(qū)別、關(guān)鍵字(static、super、this、transient)、異常、IO 流、反射、動(dòng)態(tài)代理、序列化等等;
6. Java 集合類:HashMap 的 get、put、resize、JDK1.7 和 1.8、多線程下會(huì)發(fā)生什么問(wèn)題、HashMap 和 HashTable/ConcurrentHashMap 的區(qū)別、ArrayList 和 LinkedList 的區(qū)別等等;
7. Java 并發(fā)編程:線程的狀態(tài)轉(zhuǎn)換、wait 和 sleep 的區(qū)別、synchronized 關(guān)鍵字、volatile 關(guān)鍵字、鎖:ReentranrLock、讀寫鎖等、線程池:核心參數(shù)、類型等等;
8. Java 虛擬機(jī):運(yùn)行時(shí)數(shù)據(jù)區(qū)、垃圾回收算法、垃圾回收器、垃圾回收策略、JVM 監(jiān)控和調(diào)優(yōu)、類加載機(jī)制、Java 內(nèi)存模型等等;
9. MySQL:常用的 SQL 語(yǔ)句、索引的數(shù)據(jù)結(jié)構(gòu)、類型及其優(yōu)化、事務(wù)、鎖、存儲(chǔ)引擎、主從復(fù)制、分庫(kù)分表等等;
10. Spring:AOP:代理方式、JDK 動(dòng)態(tài)代理的實(shí)現(xiàn);IOC:Bean 的生命周期和作用域、單例 Bean 的線程安全問(wèn)題;事務(wù):隔離級(jí)別、傳播特性等等;
11. SpringMVC:核心組件、處理請(qǐng)求的流程等等;
12. MyBatis:分頁(yè)方式、延遲加載、一級(jí)和二級(jí)緩存等等;
13. Linux:需要掌握基本的操作指令;
14. Redis:基本的數(shù)據(jù)類型、使用場(chǎng)景、緩存穿透、緩存雪崩、持久化、緩存和數(shù)據(jù)庫(kù)雙寫一致性問(wèn)題等等;
15. 消息隊(duì)列:使用場(chǎng)景、如何保證消息不被重復(fù)消費(fèi)、如何保證可靠傳輸、如何保證順序性等等;
16. Zookeeper:主要功能、部署模式、狀態(tài)同步、通知機(jī)制等等;
17. 分布式:分布式框架 Dubbo :基本組件、協(xié)議、集群容錯(cuò)模式、負(fù)載均衡策略等等;分布式事務(wù)及其解決方案、分布式鎖及其解決方案。
點(diǎn)個(gè)“在看”再走吧,謝謝?
總結(jié)
以上是生活随笔為你收集整理的从机械自动化专业到百度腾讯拼多多Java工程师转行之路的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 学术界or工业界,高校博后转行大厂工程师
- 下一篇: Java编写USB接口,模拟计算机启动过