不少人在問我,程序員如何拿高薪,如何作到年薪40W+,其實總結出來仍是一句話,你的技術決定你的能力已經薪資。
javascript
那麼什麼樣的技術人才才能拿到一份Java行業裏面的高薪呢?下面是個人一個總結技術。前端
必需掌握的 Java 技術知識點java
掌握Java編程語言,包含io/nio/socket/multi threads/collection/concurrency等功能的使用;node
熟練掌握jvm(sun hotspot和ibm j9)內存模型、gc垃圾回收調優等技能;mysql
精通JVM,JMM,MVC架構,熟練使用struts2。nginx
熟練使用spring、struts、ibatis構建應用系統。程序員
熟練使用Servlet,jsp,freemark等前端技術。web
熟練使用axis搭建基於SOAP協議的WebService服務接口。面試
熟練使用MAVEN構建項目工程。ajax
熟練使用tomcat等web服務。
熟練使用mysql等關係型數據庫,熟悉mysql集羣搭建。
熟練使用redis等NOSQL技術。
熟悉tcp、http協議。
熟悉nginx、haproxy等配置。
熟悉javascript、ajax等技術。
熟悉主流分佈式文件系統FastDFS等。
熟悉JMS,可熟練使用ActiveMQ。
可靠性和可用性如何理解~
jsp和sever lap對比
數據庫到界面,字符集轉化
基棧
jvm優化cup高的時候若是分析和監控
java curb突出細節問題
分佈式緩存文檔如何分流
遷移數據庫垂直分割
高併發如何處理前端高併發應用層
LB設計load balance
負載均衡
防網絡攻擊
數據日誌事件監控後通知
數據庫事務實現的底層機制
字符串空格輸入的網絡攻擊
Quartz框架的底層原理
數據庫同步中不經過數據庫引擎直接讀日誌等方式同步數據
有人回答說這隻能是大企業或者互聯網企業工程師才能拿到。也許是的,小公司或者非互聯網企業拿兩萬的不太多是碼農了,應該已經轉管理。還有區域問題,這個不在個人考慮範圍內,由於除了北上廣深杭,其餘地方也很難達到。
還有人提到這個水平不止2w,其實工資是跟面試表現有關的,也跟其餘綜合水平有關,好比你是985,top10,或者研究生學歷,也或者懂點node,懂點大數據等等,或者表達能力強,擊中面試官痛點都會加分。
若是你達到我說的水準,起薪就是2w,有其餘優秀的表現還會在這個基礎上加分。但純JAVA方面待遇是比較吻合的。還有SSH真的不是我要黑,2w水平的面試幾乎不多問SSH的知識,要問也是問架構層次的還有設計模式的。例如mybatis是如何管理session和cache的。spring裏面有哪些你熟悉的設計模式,你怎麼理解和應用的。
首先兩萬的月薪在BAT實在太廣泛了,通常是高級工程師和資深工程師的職位。在阿里是p6~p7左右,在百度是t5左右,騰訊是t2-3左右,京東是t3-1,美團是p6左右,其餘的我不瞭解。這種級別是他們主要碼農層級,加班多,能解決大部分問題,但對系統的總體架構能力和深刻分析瓶頸的能力還須要培養。
第一個是基礎。好比對集合類,併發包,IO/NIO,JVM,內存模型,泛型,異常,反射,等有深刻了解,最好是看過源碼瞭解底層的設計。好比通常面試都會問ConcurrentHashMap,CopyOnWrite,線程池,CAS,AQS,虛擬機優化等知識點,由於這些對互聯網的企業是絕對重要的。並且通常人這關都過不了,還發鬧騷說這些沒什麼用,爲何要面試。
舉一例子,在使用線程池時,由於使用了無界隊列,在遠程服務異常狀況下致使內層飆升,怎麼去解決?你要是連線程池都不清楚,你怎麼去玩?再舉一例,因爲對ThreadLocal理解出錯,使用它作線程安全的控制,致使沒能實現真的線程安全。因此做爲一個拿兩萬的JAVA程序員這點基礎是要有的。
第二你須要有全面的互聯網技術相關知識。從底層提及,你起碼得深刻了解mysql,redis,mongodb,nginx,tomcat,rpc,jms等方面的知識。你要問須要瞭解到什麼程度,我能夠給你說個大慨。
首先對於MySQL,你要知道常見的參數設置,存儲引擎怎麼去選擇,還須要瞭解常見的索引引擎,知道怎麼去選擇。知道怎麼去設計表,怎麼優化sql,怎麼根據執行計劃去調優。高級的你須要去作分庫分表的設計和優化,通常互聯網企業的數據庫都是讀寫分離,還會垂直與水平拆分,因此這個也有經驗的成分在裏面。
而後redis,mongodb都是須要了解原理,須要會調整參數的,而nginx和tomcat幾乎都是JAVA互聯網方面必配,其實很阿里的技術棧選擇有點關係。至於rpc相關的就多的去,必須各類網絡協議,序列化技術,SOA等等,你要有一個深刻的理解。如今應用比較廣的rpc框架,在國內就是dubbo了,能夠自行搜索。
至於jms相關的起碼得了解原理吧,通常狀況下不是專門開發中間件系統和支撐系統的不須要了解太多細節,國內企業經常使用的主要是activeMQ和kafka。你能對我說的都研究的比較深刻,阿里p7都不是太大問題的,固然這個還須要看你的架構能力方面的面試表現了。
第三就是編程能力,編程思想,算法能力,架構能力。首先2W程序員對算法的要求我以爲仍是比較低,再高級也最多紅黑樹吧,可是排序和查詢的基本算法得會。編程思想是必須的,問你個AOP和IOC你起碼的清清楚楚,設計模式不說每種都用過,但也能瞭解個幾種吧。編程能力這個我以爲很差去評價,可是拿一個2000W用戶根據姓名年齡排序這種題目也能信手拈來。
最後就是架構能力,這種不是說要你設計個多牛逼多高併發的系統,起碼讓你作一個秒殺系統,防重請求的設計能快速搞定而沒有坑吧。
這以上就是我說得2w水準,若是你運氣好,面試表現好,3w+也有可能哦(ಡωಡ),
來源:blog.csdn.net/qq_41790443/article/details/80615421