最近跟朋友在一起聚會(huì)的時(shí)候,提了一個(gè)問題,說Java程序員如何能月薪達(dá)到二萬,技術(shù)水平需要達(dá)到什么程度?人回答說這只能是大企業(yè)或者互聯(lián)網(wǎng)企業(yè)工程師才能拿到。也許是的,小公司或者非互聯(lián)網(wǎng)企業(yè)拿二萬的不太可能是碼農(nóng)了,應(yīng)該已經(jīng)轉(zhuǎn)管理。還有區(qū)域問題,這個(gè)不在我的考慮范圍內(nèi),因?yàn)槌吮鄙蠌V深杭,其他地方也很難達(dá)到。
還有人提到這個(gè)水平不止2w,其實(shí)工資是跟面試表現(xiàn)有關(guān)的,也跟其他綜合水平有關(guān),比如你是985,top10,或者研究生學(xué)歷,也或者懂點(diǎn)node,懂點(diǎn)大數(shù)據(jù)等等,或者表達(dá)能力強(qiáng),擊中面試官痛點(diǎn)都會(huì)加分。如果你達(dá)到我說的水準(zhǔn),起薪就是2w,有其他優(yōu)秀的表現(xiàn)還會(huì)在這個(gè)基礎(chǔ)上加分。但純JAVA方面待遇是比較吻合的。還有SSH真的不是我要黑,2w水平的面試幾乎很少問SSH的知識(shí),要問也是問架構(gòu)層次的還有設(shè)計(jì)模式以及底層原理等技術(shù)。例如mybatis是如何管理session和cache的。spring里面有哪些你熟悉的設(shè)計(jì)模式,你怎么理解和應(yīng)用的。
其實(shí)互聯(lián)網(wǎng)相關(guān)的知識(shí)去互聯(lián)網(wǎng)公司后很容易接觸,并不是什么難點(diǎn)。如果你是在一線業(yè)務(wù)部門,我說的幾個(gè)點(diǎn)幾乎時(shí)時(shí)伴隨著你,完全不用擔(dān)心自己不會(huì)。我司很多剛來的大學(xué)生在半年內(nèi)都能把一些中間件系統(tǒng)摸的很明白,并不是說有多難,只是接觸少,對(duì)未知的東西感到害怕疑惑而已。
首先兩萬的月薪在BAT實(shí)在太普遍了,一般是高級(jí)工程師和資深工程師的職位,在阿里是p6~p7左右,在百度是t5左右,騰訊是t2-3左右,京東是t3-1,美團(tuán)是p6左右,其他的我不了解。這種級(jí)別是他們主要碼農(nóng)層級(jí),加班多,能解決大部分問題,但對(duì)系統(tǒng)的整體架構(gòu)能力和深入分析瓶頸的能力還需要培養(yǎng)。
其次掌握的技能樹主要有三個(gè)方面:
第一個(gè)是基礎(chǔ)。比如對(duì)集合類,并發(fā)包,IO/NIO,JVM,內(nèi)存模型,泛型,異常,反射,等有深入了解,最好是看過源碼了解底層的設(shè)計(jì)。比如一般面試都會(huì)問ConcurrentHashMap,CopyOnWrite,線程池,CAS,AQS,虛擬機(jī)優(yōu)化等知識(shí)點(diǎn),因?yàn)檫@些對(duì)互聯(lián)網(wǎng)的企業(yè)是絕對(duì)重要的。而且一般人這關(guān)都過不了,還發(fā)鬧騷說這些沒什么用,為什么要面試。舉一例子,在使用線程池時(shí),因?yàn)槭褂昧藷o界隊(duì)列,在遠(yuǎn)程服務(wù)異常情況下導(dǎo)致內(nèi)層飆升,怎么去解決?你要是連線程池都不清楚,你怎么去玩?再舉一例,由于對(duì)ThreadLocal理解出錯(cuò),使用它做線程安全的控制,導(dǎo)致沒能實(shí)現(xiàn)真的線程安全。所以作為一個(gè)拿兩萬的JAVA程序員這點(diǎn)基礎(chǔ)是要有的。
第二你需要有全面的互聯(lián)網(wǎng)技術(shù)相關(guān)知識(shí)。從底層說起,你起碼得深入了解mysql,redis,mongodb,nginx,tomcat,rpc,jms等方面的知識(shí)。你要問需要了解到什么程度,我可以給你說個(gè)大慨。首先對(duì)于MySQL,你要知道常見的參數(shù)設(shè)置,存儲(chǔ)引擎怎么去選擇,還需要了解常見的索引引擎,知道怎么去選擇。知道怎么去設(shè)計(jì)表,怎么優(yōu)化sql,怎么根據(jù)執(zhí)行計(jì)劃去調(diào)優(yōu)。高級(jí)的你需要去做分庫分表的設(shè)計(jì)和優(yōu)化,一般互聯(lián)網(wǎng)企業(yè)的數(shù)據(jù)庫都是讀寫分離,還會(huì)垂直與水平拆分,所以這個(gè)也有經(jīng)驗(yàn)的成分在里面。然后redis,mongodb都是需要了解原理,需要會(huì)調(diào)整參數(shù)的,而nginx和tomcat幾乎都是JAVA互聯(lián)網(wǎng)方面必配,其實(shí)很阿里的技術(shù)棧選擇有點(diǎn)關(guān)系。至于rpc相關(guān)的就多的去,必須各種網(wǎng)絡(luò)協(xié)議,序列化技術(shù),SOA等等,你要有一個(gè)深入的理解。現(xiàn)在應(yīng)用比較廣的rpc框架,在國內(nèi)就是dubbo了,可以自行搜索。至于jms相關(guān)的起碼得了解原理吧,一般情況下不是專門開發(fā)中間件系統(tǒng)和支撐系統(tǒng)的不需要了解太多細(xì)節(jié),國內(nèi)企業(yè)常用的主要是activeMQ和kafka。你能對(duì)我說的都研究的比較深入,阿里p7都不是太大問題的,當(dāng)然這個(gè)還需要看你的架構(gòu)能力方面的面試表現(xiàn)了。
第三就是編程能力,編程思想,算法能力,架構(gòu)能力。首先2W程序員對(duì)算法的要求我覺得還是比較低,再高級(jí)也最多紅黑樹吧,但是排序和查詢的基本算法得會(huì)。編程思想是必須的,問你個(gè)AOP和IOC你起碼的清清楚楚,設(shè)計(jì)模式不說每種都用過,但也能了解個(gè)幾種吧。編程能力這個(gè)我覺得不好去評(píng)價(jià),但是拿一個(gè)2000W用戶根據(jù)姓名年齡排序這種題目也能信手拈來。最后就是架構(gòu)能力,這種不是說要你設(shè)計(jì)個(gè)多牛逼多高并發(fā)的系統(tǒng),起碼讓你做一個(gè)秒殺系統(tǒng),防重請(qǐng)求的設(shè)計(jì)能快速搞定而沒有坑吧。
里面的技術(shù)不是讓你全部掌握,但是很多東西是面試官必問的,所以你不能不知道,更希望給那些需要這些信息的人幫助。那些質(zhì)疑我的人去面試一下就明白我說的對(duì)不對(duì),如果有機(jī)會(huì)可以再分享一次,我們來談?wù)劵ヂ?lián)網(wǎng)的JAVA面試題,我可以把90%的題目全部給你列出來。我其實(shí)不懷疑我說的這些技能樹能拿到25K或者30K+的可能,但現(xiàn)在互聯(lián)網(wǎng)相對(duì)來說還是比較泡沫。
這以上就是我說得2w水準(zhǔn),如果你運(yùn)氣好,面試表現(xiàn)好,3w+也有可能哦
-
工程師
+關(guān)注
關(guān)注
59文章
1603瀏覽量
71013 -
JAVA
+關(guān)注
關(guān)注
20文章
3001瀏覽量
116422
發(fā)布評(píng)論請(qǐng)先 登錄
電子工程師的雙標(biāo)瞬間 #電子 #電子愛好者 #電子工程師 #揚(yáng)興科技 #雙標(biāo)
電子工程師看書的四個(gè)階段 #電子 #硬件工程師 #電子愛好者 #反轉(zhuǎn) #揚(yáng)興科技
什么是BSP工程師
硬件工程師:這才是真正的大學(xué)生就業(yè)指導(dǎo) #電子 #硬件工程師 #電子愛好者 #晶振 #揚(yáng)興科技
想成為硬件工程師?我教你啊!你得先學(xué)會(huì)這些...... #硬件工程師 #電子工程師 #電子愛好者 #電子行業(yè)
硬件工程師面試必會(huì):10個(gè)核心考點(diǎn)#硬件設(shè)計(jì) #硬件工程師 #電路設(shè)計(jì) #電路設(shè)計(jì)
嵌入式工程師的進(jìn)階之路
硬件工程師看了只會(huì)找個(gè)角落默默哭泣#硬件工程師 #MDD #MDD辰達(dá)半導(dǎo)體 #產(chǎn)品經(jīng)理 #軟件工程師
一技在手,醫(yī)療無憂!零基礎(chǔ)轉(zhuǎn)行高薪醫(yī)療維修工程師
工程師經(jīng)驗(yàn)分享:社區(qū)之星 趙云 沉著穩(wěn)定才能做好技術(shù)
Java工程師怎樣才能月薪兩萬
評(píng)論