當前社會Java 後端不是很有必要去學的知識

我來說下當前市場實際需要的和即將的主要趨勢;

基本上都是以業務中臺和數據中臺逐漸分離爲主。

這也意味着:

第一.java8,特別是jdk1.8是現階段的主流,jdk11沒必要學,直接就是jdk14. 這個主要是掌握juc裏面的用法特別是如lock,reentrantlock, skiplist, copyonwritearraylist, deque,之類用法;多線程雖然主流使用是以異步爲主,但是面試基本上還是以executor的幾個線程池爲主,看是否瞭解,因爲現在的基本上都是在executor上封裝,譬如scala的akka機制。

第二.springboot,springboot你需要調用run方法瞭解裏面的enviroment,resource,listener是究竟怎麼潤起來的,spring的bean加載機制搞清楚comman runner和postconstruct就行了。

第三.idea 和git是必須掌握的,eclipse 過時了,但是mat 還可以用,但是大部分不會問那麼仔細,最多jvm問下cms ps等,類加載,雙親委託之類,更復雜可能問下jstat dump怎麼看gc日誌。

第四. 中間件技術,redis,kafka,netty,ElasticSearch是必須瞭解乃至掌握基本api調用,非常重要,基本上這幾個裏面kafka你需要了解avro序列化或者json序列化,特別是netty基本上websocket也罷,akka也罷,都是需要了解的。一般公司你如果把reidis,redisson分佈式鎖講清楚,kafka 0拷貝講清楚基本上就ok了,rabitmq,rocketmq瞭解他們場景。

第五.數據庫技術,分表分庫sharding sphere和mycat二選一,當然阿里還有其他新鮮工具,

第六.rpc技術,目前主流有finagle,dubbo,thrift等,但是建議掌握dubbo/dubbox

第七.緩存技術,spring cache+reids緩存就夠了,j2cache我看了下,覺得太繁瑣了,簡單就好。

第八.高性能隊列,disruptor 你掌握了就可以出去吹很多水了,秒殺linkedblockqueue,linkedtansferque之類,秒殺git上有很多源碼,瞭解下夠了

第九. 微服務技術,基本上springcloud全家桶就行了,知道在service層配置ribbot,feign就可以了,至於zipkin,cat等其他技術瞭解下就知道了,http://spring.io多逛逛,有好處的。目前我生產主推的springboot2.2.2版本

第十.大數據技術, 這個其實對三萬以下沒什麼要求,但是解決三萬以上焦慮問題的,基本上flink,storm,spark這三個主流引擎都要了解原理,還有hbase,hadoop,至少掌握map reduce思想,當然如果沒有map reduce機制,es做索引,mysql分表解決億級以上數據的讀寫也要了解,特別是分表導致的分頁查詢全文搜索,mysql其實也需要了解innodb存儲引擎,但是mysql8.0出來了後,分區表的一些查詢用法也要掌握,反正主流現在是mysql8.0了。

第十一,數倉,其實主流都是四層或者三層 元數據層,明細層 集市 報表,阿里的那一套完全就是以後全家都得跟它混了,maxcompute 還是可以學習下,

第十二, service mesh技術

這個是以後主流,現在主要是docker k8s, 三代的技術,我看了下非常有前景也是主要方向,istio可以多瞭解下,但是阿里我看到他們在搞sofa,git上有幾個新項目,可以多提提代碼pr,混個臉熟,如果leetcode的動態規劃 線段樹刷題刷了些後,掌握基本的八大排序算法和紅黑樹,跳躍表,快排,缺內網推薦非常簡單的事情。

第十三,分佈式事務

這個阿里有個fescar,可以瞭解下思想,但是除非電商類,但是大部分不會怎麼問

第十四,機器學習和ai技術

這個主流機器學習算法和神經網絡,卷積神經網絡,蒙特卡洛,遺傳算法等都需要了解下算法,這塊主要是掉包學習吧,pytorch雖然是主流,tensorflow學習下也沒壞處,這個知乎大佬太多,我只是工業界,這輩子是沒指望技術有建樹的,混混日子罷了。

第十五,編譯器優化

就是王垠大神的領域了,絕對的神域了,我是知道有人在華爲ai編譯器優化,阿里p9 200萬package挖都不去 ,有空實現下語法分析,掌握編譯原理,jvm虛擬機指令。

第十六。 規則引擎

這個主要是風控系統,優惠券設計需要用到,

現在主流的有drools,urule之類,核心是rete算法,這個個人感覺實現都有些繁瑣,drools 還是特別佔內存,改天我想個辦法寫個好點的簡單點的,把那些決策,規則塞到數據庫裏面去感覺更合適,雖然還有groovy,scala腳本之類,但是個人還是覺得java大法好,java+數據庫夠用了

第十七 新語言

Rust,Scala,Haskell

這個是個人比較喜歡的,python 用用就好,玩java 默認都會,scala函數編程還有大數據處理的生產力工具,Rust我看到覺得這就是真正統一所有碼農審美和認知的終極工具,實在是優雅的令人讚歎,Haskell主要是掌握思想。一般面試很少會問這些,瞭解下

第十八 前端技術

目前前後端分離是主流,國內主要是vue vuex,webpack,其他less elementui ,js掌握核心匿名函數,回調地獄,作用域鏈,對於後端來講就夠用了,反正雖然知乎不少前端大神,但是說句得罪所有前端大佬的話,前端都是玩具。

第十九 操作系統

作爲工業界,沒事多看看linux內核源代碼,特別是select epoll機制,這個基本上大廠都會問

小編收藏有很多Java學習資料,面試文檔,有需要的朋友私信小編“文檔”即可獲得領取方式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章