找過工作的朋友應(yīng)該知道,現(xiàn)在招聘Java開發(fā)工程師的公司特別多。那么Java開發(fā)這個(gè)崗位具體是做什么的?又有什么招聘要求呢?
我畢業(yè)的時(shí)候也面試過很多公司,當(dāng)時(shí)對(duì)Java開發(fā)這個(gè)崗位的要求不甚了解,因?yàn)槎甁ava語法知識(shí)就能找到Java開發(fā)的工作了,后來發(fā)現(xiàn)不是這樣的。工作以后,自己參與過金融核心系統(tǒng)、O2O電商系統(tǒng)、公司級(jí)網(wǎng)關(guān)項(xiàng)目、證券交易投資系統(tǒng)的設(shè)計(jì)開發(fā)。隨著工作經(jīng)驗(yàn)的積累,對(duì)Java開發(fā)這個(gè)崗位有了比較清楚的認(rèn)識(shí)。自己也從面試者轉(zhuǎn)變?yōu)槊嬖嚬?,每年都?huì)參與很多員工招聘,通過角度的變化,對(duì)Java崗位的要求也有了新的理解。
根據(jù)我的理解,Java開發(fā)崗位對(duì)于面試者有以下5個(gè)方面的要求:
1. 技術(shù)能力
作為開發(fā)人員,技術(shù)能力是必須的。針對(duì)Java開發(fā)而言,需要掌握下面的技術(shù):
Java基礎(chǔ)知識(shí):除了Java基本語法,還需要對(duì)泛型、多線程、垃圾回收這些有了解。
常見框架知識(shí):要了解Spring、Mybatis、Dubbo(或其他RPC)等常用框架的使用方法和基本原理。
數(shù)據(jù)庫知識(shí):包括MySQL、Oracle(金融行業(yè)用的多)這些關(guān)系型數(shù)據(jù)庫和Redis這種緩存數(shù)據(jù)庫。
分布式知識(shí):現(xiàn)在大部分系統(tǒng)都是微服務(wù)框架,采用分布式部署。因此,對(duì)分布式相關(guān)知識(shí)要有所了解,比如分布式一致性如何解決、分布式系統(tǒng)如何做好容錯(cuò)、分布式環(huán)境下全鏈路監(jiān)控應(yīng)該怎么實(shí)現(xiàn)。
計(jì)算機(jī)基礎(chǔ)知識(shí):比如算法、數(shù)據(jù)結(jié)構(gòu)、網(wǎng)絡(luò)、操作系統(tǒng)、計(jì)算機(jī)組成原理,尤其是校招,因?yàn)槊嬖囌吖こ探?jīng)驗(yàn)比較少,對(duì)基礎(chǔ)知識(shí)的要求會(huì)更高,需要好好準(zhǔn)備。這部分內(nèi)容范圍比較廣、也比較雜,但是準(zhǔn)備這部分知識(shí)也是有技巧的,后面我會(huì)進(jìn)行專題介紹,感興趣的同學(xué)可以先加個(gè)關(guān)注。
2. 業(yè)務(wù)能力
對(duì)于業(yè)務(wù)能力,對(duì)于校招面試,或者業(yè)務(wù)難度不大(比如電商)的公司要求會(huì)低一些。對(duì)于金融公司,尤其是券商這種專業(yè)性比較強(qiáng)的公司,要求還是比較高的。比如我現(xiàn)在的項(xiàng)目組招聘,一般會(huì)要求有金融相關(guān)背景。這是因?yàn)閷I(yè)性強(qiáng)的項(xiàng)目,新人培養(yǎng)周期長,如果沒有相關(guān)經(jīng)驗(yàn)的化,可能半年一年都很難搞清楚業(yè)務(wù),很難有好的產(chǎn)出,這對(duì)公司來講是不劃算的。
3. 問題分析能力
編程說白了就分為2步:把業(yè)務(wù)問題轉(zhuǎn)換為數(shù)學(xué)問題;把數(shù)學(xué)問題通過計(jì)算機(jī)來實(shí)現(xiàn)。這2步其實(shí)對(duì)問題分析能力都有比較高的要求,因此,在面試的時(shí)候,會(huì)著重考察問題分析能力,尤其是高級(jí)開發(fā)崗位,對(duì)于這點(diǎn)會(huì)更加重視。
4. 溝通表達(dá)能力
現(xiàn)在的軟件系統(tǒng)基本上都是團(tuán)隊(duì)合作完成的,所有對(duì)于溝通表達(dá)能力有所要求,如果一個(gè)面試者技術(shù)能力不錯(cuò),但溝通表達(dá)能力不行也是很難拿到offer的。
5. 學(xué)習(xí)能力
開發(fā)知識(shí)是變化很快的,所以不斷學(xué)習(xí)是優(yōu)秀的開發(fā)工程師必備的品質(zhì),面試的時(shí)候也會(huì)對(duì)這方面進(jìn)行考察。
通過上面的介紹,同學(xué)們對(duì)Java開發(fā)崗位的要求有比較清楚的認(rèn)識(shí)了吧,有什么疑問也在評(píng)論區(qū)討論。
Java開發(fā)每日一課是系列專欄,后面每天都會(huì)Java開發(fā)相關(guān)的干貨分享,感興趣的朋友可以先加個(gè)關(guān)注。
作者介紹:14年某國家重點(diǎn)實(shí)驗(yàn)室軟件理論碩士畢業(yè)、在美團(tuán)負(fù)責(zé)過公司級(jí)網(wǎng)關(guān)項(xiàng)目,目前在某金融公司負(fù)責(zé)機(jī)構(gòu)投資交易系統(tǒng)的設(shè)計(jì)開發(fā)。有10年Java開發(fā)經(jīng)驗(yàn),4年項(xiàng)目管理經(jīng)驗(yàn),擅長高并發(fā)、高可用分布式系統(tǒng)的設(shè)計(jì),Dubbo Contributor。