撰寫我對java後端開發工程師選擇方向的想法,寫給在java後端選擇轉方向的人前端
背景
看到一些java開發工程師,對java後端薪酬太悲觀了。認爲換去大數據領域就會高工資。以爲java後端沒有前途。我從事java後端開發,對大數據領域工做有些瞭解,但不深刻。本文描述一下我對java後端和是否轉大數據開發的我的看法。java
目的
- 分析大數據領域分類
- 分析大數據工做工資高的緣由
- 分析形成以爲java後端開發不夠前景的緣由
- java後端轉大數據工做作什麼
- 轉去大數據領域的各種方向與java後端比較衡量
點贊再看,關注公衆號:【地藏思惟】給你們分享互聯網場景設計與架構設計方案 掘金:地藏Kelvin https://juejin.im/user/5d67da8d6fb9a06aff5e85f7git
1、大數據領域工做我認爲分4類
類別 | 業務開發 | 架構組 |
---|---|---|
1數據處理 | ETL、爬蟲 | 未知 |
2數據統計 | 實時流式計算、離線流式計算、Elastic-search分詞統計 | 架構研究spark hadoop源碼開發數坊系統、shuffle優化。 |
3數據分析 | 基於mahout、sparkStream 作機器學習、天然語言 | 性能優化 |
4數據算法/建模 | 推薦算法、用戶畫像、風控建模 | 未知 |
2、大數據領域工資高的緣由
你們看到大數據工資高,實際上是大數據領域包含了建模或者算法工程師那部分。高工資的就只有推薦算法、用戶畫像、風控建模、天然語言這些工做,職位爲算法或者建模工程師。程序員
然而大數據領域的大部分工做,都是上圖表中,第一、2類的工做,如:etl、爬蟲、實時離線流式計算,es、頂多就機器學習。即便這些工做也只是工程級的應用(換句話說就是寫業務代碼,搬磚),若是工資高也是有架構能力(提高spark性能之類),而不是大數據應用開發。redis
3、分析形成以爲java後端開發不夠前景的緣由
有人以爲java後端開發工資低,沒有前景,沒有適應時代。算法
第1、大數據時代好久了,很早就開始招大數據了,不是需求火爆的狀態,如安卓工程師一開始火,如如今作的人多了,像安卓變多了,大數據的應用開發就不像2014年剛開始的時候那麼高工資了,可是大數據中算法、建模工程師依然高薪,那種要求高質量高的工做都是10我的裏面只有1個會的那種。後端
第2、不少java後端開發都是業務開發,寫好業務沒bug渡過一天又一天,沒有遇到好項目或者沒有自主學習,致使作了好久的java開發工程師,都是作業務,寫CRUD、redis、mq等,會寫代碼是一回事,可是有沒有好的技術方案就是另一回事。性能優化
4、Java後端轉大數據工做作什麼
java換去作大數據其實只能作etl、爬蟲、實時離線流式計算,es、頂多就機器學習這些工程級的應用,也就換套工具寫業務代碼,換套工具搬磚而已。架構
由於Java開發人員多數是使用、應用程度,而不是研究程度,因此Java工程師轉大數據不多有人會作到第三、4類的工做,若是作第三、4類估計是從新開始了。app
其實第一、2類這些工做薪酬跟java後端沒什麼區別,畢竟兩個領域都有純業務搬磚和自帶技術體系的人。
這些大數據工程級應用(第一、2類),也有架構組,如同java後端同樣,也有業務架構和基礎架構。其實若是積累經驗java後端和這些大數據晉升我認爲是同樣的。
舉例
假如表中的第2類,大數據工程級應用作spark、hadoop,一種是作應用開發,如雙11在頁面顯示華爲、小米等品牌實時出貨量多少,就用實時流式計算。 另外一種屬於架構工做,如開發個數坊系統(也叫數據倉庫、DataWareHouse)出來讓大數據應用開發同事在上面作 OLAP。這些架構組的人,通常須要對hadoop、spark、presto源碼有過研究,或許會在上面二次開發,或者進行性能優化工做。 前者是換套工具搬磚,後者是架構組。如同java也有些業務代碼和架構設計。
5、轉去大數據領域的各種方向與java後端比較衡量
考慮方向
- 要麼轉作大數據架構,如研究spark、hadoop、presto,搞個數坊系統(又叫DataWareHouse、數據倉庫)、shuffle調優等,畢竟屬於架構組,工資會高一點。
- 要麼轉作推薦算法、用戶畫像、建模/算法類。而這部分工做都是有要求的,算法過硬、研究生、98五、211 、數學專業,這些工做也會更高。數據挖掘與分析不止會mathot、spark streaming,還有SAS/SPSS 。
- 若是轉作大數據應用作實時流式計算、離線流式計算、es分詞統計,實際上是至關於業務碼農,若是有java後端開發經驗的話,這種那還不如在java後端繼續深耕,畢竟換去作大數據應用開發深耕也是同樣的。
考慮晉升機會
-
考慮另外一部分,能晉升到領導位置的,通常是伴隨公司成長的核心員工。公司成長,開始是業務,通常都是java後端業務代碼。等到中期、後期作報表纔會用上大數據業務開發(第一、2類),有性能問題就會有架構組,再後期纔到推薦算法這些讓app更好體驗的東西,如淘寶首頁推薦。因此業務架構在前期就比較容易晉升。
-
等公司成長起來了,公司有錢天然就會招很好的算法、建模工程師作真正有價值的部分。 而實時流式計算、elastic-search這些業務碼農,也只是搬磚,如今作的人像安卓同樣多了,就不像2014年剛開始的時候那麼高工資了。
考慮所在城市的崗位數量
如第三、4類工做,崗位比較少,換公司換工做是否方便,有些公司如:中國移動 的第3類大數據工做就有外包出去,不是正式編制。 畫好跳槽路線,由於轉行第一間不必定是你的終點,因此要看其餘的更上流的企業的要求是否能匹配本身。
BackUp做用
- 多學大數據只是防止當前公司業務中止,沒有業務開發時,java後端開發工程師可能被裁人掉,學大數據和前端React.js類只是對於java後端開發另謀活路的backup。由於有些職位就但願你全棧,但如今不少都先後端分離的。
- 而被淘汰掉的java後端只是寫業務代碼,用用redis、mq。
- java後端人人都會寫,java後端技術領域仍是很廣的,但有沒有寫出好的技術方案就另一回事。
總結
大數據、前端頁面開發對於java後端開發工程師來說,我以爲了解就能夠了,知道有解決辦法,沒必要每一個領域都精通,何況沒辦法每一個領域都精通。
若是後端開發轉去作大數據、項目經理、產品經理崗位,估計都是java後端技術沒作上去(自己不喜歡作程序員的也有可能),或者是隻會作純業務代碼這些被淘汰掉了,因此就換領域了,還有轉hr的。 不過同級別的java後端開發和產品經理薪資確實有差距,估計一兩千。
我以爲大數據工程級應用開發(第一、2類)和Java後端開發薪資就沒什麼差距,之前java後端能轉大數據應用開發,是由於那時候還缺人,如今不缺人了,要招都是招有真實經驗的。
若是你從事java後端開發幾年了,要轉大數據領域,至關於你有一個升高級java開發工程師的機會,仍是選擇中級大數據應用開發工程師的機會,反正都是寫業務代碼的。
若是你的條件過硬,如985/211學歷、數學專業、算法研究經驗,若是要轉算法/建模工程師就早點轉,大數據領域高工資的就是這類人。
若是java後端開發工做經驗4以上年了,沒有硬性條件,建議繼續深刻後端學習。
若是java後端開發工做一兩年,你想怎麼轉均可以。
如想了解薪酬,能夠在招聘網站搜大數據工程師(通常就是指第一、2類的),和算法工程師、風控建模工程師、推薦算法工程師、用戶畫像工程師。我所知道有個風控建模經理三萬多。
歡迎留言跟我討論
歡迎關注
個人公衆號 :地藏思惟
掘金:地藏Kelvin
簡書:地藏Kelvin
CSDN:地藏Kelvin
個人Gitee: 地藏Kelvin https://gitee.com/dizang-kelvin