达到年薪 40W 必需掌握的技术
轉(zhuǎn)載自??達(dá)到年薪 40W 必需掌握的技術(shù)
必需掌握的 Java 技術(shù)知識(shí)點(diǎn)
掌握J(rèn)ava編程語言,包含io/nio/socket/multi threads/collection/concurrency等功能的使用;
熟練掌握jvm(sun hotspot和ibm j9)內(nèi)存模型、gc垃圾回收調(diào)優(yōu)等技能;
精通JVM,JMM,MVC架構(gòu),熟練使用struts2。
熟練使用spring、struts、ibatis構(gòu)建應(yīng)用系統(tǒng)。
熟練使用Servlet,jsp,freemark等前端技術(shù)。
熟練使用axis搭建基于SOAP協(xié)議的WebService服務(wù)接口。
熟練使用MAVEN構(gòu)建項(xiàng)目工程。
熟練使用tomcat等web服務(wù)。
熟練使用mysql等關(guān)系型數(shù)據(jù)庫,熟悉mysql集群搭建。
熟練使用redis等NOSQL技術(shù)。
熟悉tcp、http協(xié)議。
熟悉nginx、haproxy等配置。
熟悉javascript、ajax等技術(shù)。
熟悉主流分布式文件系統(tǒng)FastDFS等。
熟悉JMS,可熟練使用ActiveMQ。
底層計(jì)算機(jī)理解內(nèi)存管理/數(shù)據(jù)挖掘系統(tǒng)
可靠性和可用性如何理解~
jsp和sever lap對(duì)比
數(shù)據(jù)庫到界面,字符集轉(zhuǎn)化
基棧
jvm優(yōu)化cup高的時(shí)候如果分析和監(jiān)控
java curb突出細(xì)節(jié)問題
分布式緩存文檔如何分流
遷移數(shù)據(jù)庫垂直分割
高并發(fā)如何處理前端高并發(fā)應(yīng)用層
LB設(shè)計(jì)load balance
負(fù)載均衡
防網(wǎng)絡(luò)攻擊
數(shù)據(jù)日志事件監(jiān)控后通知
數(shù)據(jù)庫事務(wù)實(shí)現(xiàn)的底層機(jī)制
字符串空格輸入的網(wǎng)絡(luò)攻擊
Quartz框架的底層原理
數(shù)據(jù)庫同步中不通過數(shù)據(jù)庫引擎直接讀日志等方式同步數(shù)據(jù)
有人回答說這只能是大企業(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ì)模式的。例如mybatis是如何管理session和cache的。spring里面有哪些你熟悉的設(shè)計(jì)模式,你怎么理解和應(yīng)用的。
首先兩萬的月薪在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ì)能快速搞定而沒有坑吧。
總結(jié)
以上是生活随笔為你收集整理的达到年薪 40W 必需掌握的技术的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 总价仅需4500元,这套能通吃1080P
- 下一篇: 推荐一个实用的 .gitignore 文