java開發,轉大數據好還是機器學習?

DUKFWBJ冫


在已經有Java基礎的前提之下,轉行大數據是完全可以的。從發展的角度來說,Java已經處在一門編程語言的成熟期,未來Java程序員要想有更好的發展,則需要深入到一個領域,比如大數據或人工智能,這樣才能有較強的職場競爭力和較好的發展空間。

大數據以Java技術為基礎,在熟練掌握了Java技術以後,再學習大數據的相關技術會容易很多。在有了Java經驗的基礎上,轉行大數據學習,學習的大致步驟為:

1、大數據基礎:Linux基礎、Maven基礎;

2、Hadoop生態體系:HDFS、MapReduce、Yarn及其周邊軟件Hbase、Hive、Pig等;

3、Spark生態系統和Scala語言;

4、算法和工具:如hadoop上的Mahout和spark上的Mllib;

5、項目實戰。

在培訓班學習的週期大概是六個月左右。畢業之後的就業情況還是很不錯的,各大互聯網公司都在囤積大數據處理人才,從業人員的薪資待遇也很不錯。以基本的Hadoop開發工程師為例,入門月薪已經達到了8K以上,工作1年月薪可達到12K以上,資深的hadoop人才年薪可達到30萬—50萬。據全球頂尖管理諮詢公司麥肯錫分析報告顯示,到2020年,大數據或者數據工作者的崗位需求將激增,大數據專業人才的缺口在15萬到20萬之間。


北大青鳥上海號


如果樓主不想放棄Java,那麼我推薦去大數據。

如果從未來前景上看,我推薦去機器學習。

大數據

大數據的大火要更早一些,近些年,熱度已經逐漸被機器學習奪了去。

大數據分析能夠帶來很多神奇的事情,比如谷歌能夠比醫院更早的預測到流感即將襲來,因為大家在去醫院之前,總是習慣先去Google上搜感冒的一些症狀,因此當某地的搜索結果中,感冒相關的query飆升的時候,基本可以確定,流感即將襲來了。

大數據工程師通常是繼續以Java開發為主,但是隻會Java和Hadoop也只是基礎,在真正的大數據開發工程師眼裡,可能連面試的門檻都過不去。

如果真的想做大數據,還要研究分佈式計算的模型,如何寫mapreduce,以及如何進行作業優化,如何解決數據處理過程中遇到的問題。此外最好還要學會Scala,這是在寫spark時常用的語言。

因此,轉大數據,也需要Java開發的你學習很多新的知識,並不是有了Java經驗就能直接上手大數據開發的。

機器學習

相對來說,機器學習與Java的關係更疏遠了一些。你首先需要學習各種先進的機器學習算法,比如支持向量機,神經網絡,決策樹,邏輯迴歸等等,這些都是要閱讀很多文獻,並且對數學,概率論基礎有很高的要求。題主說自己對數學感興趣,這是一個還不錯的開始。在學會了上述算法之後,你需要用編程語言把這些算法實踐出來,比如你需要通過學習歷史數據,從而推測出未來什麼時間某種產品會有更多的需求,從而推薦廠家提前做好庫存準備。機器學習對編程語言的要求並沒有大數據高,目前常用的就是Python,對於Java開發者來說,學習的成本也是很低的。

最後,由於目前機器學習概念的大火,機器學習工程師可以說是供不應求,如果題主想要更好的發展,不妨考慮這個方向。

我是蘇蘇思量,來自BAT的java開發工程師,每日分享科技類見聞,歡迎關注我,與我共同進步。


一個存在感小透明


我也是從事Java開發,對於題主的糾結感同身受,畢竟自己如果在Java上已經算是遊刃有餘的話,已經是付出過很多學習精力,學機器學習的話基本上是要和Java說再見,這無疑是一個非常可惜的選擇。

而且轉機器學習就不僅僅要深入Python,還要對數學算法方面有所造詣,這不是一蹴而就可以熟練掌握的,因此轉人工智能風險也比較大,容易夭折自己的職業規劃。

目前大數據方向依舊是需求量比較大前景非常好的工作方向,Java在大數據領域的應用非常廣泛,光是Hadoop生態圈,就已經夠可以完成很多大數據工作,而Hadoop又巧妙與Java密不可分。

最重要的是大數據方向並不會比還處於初級水平的機器學習工資低,薪資問題的話不用擔心。

我是極客宇文氏,歡迎關注,感謝閱讀。

極客宇文氏


機器學習(ML)屬於AI領域,大數據是人工智能的前提,相當於原料,人工智能是基於大數據的支持和採集,運用於人工設定的特定性能和運算方式來實現。因此,人工智能離不開大數據,人工智能需要依賴大數據平臺和技術來幫助完成深度學習進化。

人工智能其實就是大數據、雲計算的應用場景。

簡言之,大數據和機器學習未來的發展空間都很大。

有Java基礎的話,你可以考慮一下大數據開發。


加米穀大數據


看你的規劃是怎樣的吧,這種事情我沒辦法說死。不過就你的職業經歷來看,我覺得如果你從事了很久的Java開發,當然前提是你在一線從事了很久的Java開發,那麼我建議你的首選是轉大數據。

大數據目前用得最多的語言就是Java

Java語言安全性強、精密度高,在可維護性、高性能特性,以及在於整體生態方面,Java語言都具有比較大的優勢,而且在大規模的異構計算機集群、處理高併發、以及複雜的業務邏輯方面,都是Java最擅長的。

除此之外,目前大數據行業最知名的Hadoop生態圈,以及領域你所熟悉的幾乎所有大數據行業的詞彙,比如Hive、Spark等等都是跟Java關係最為緊密,比如說大名鼎鼎的Hadoop本身就是Java編寫的,即使是Spark關係緊密的Scala語言,其實也跟Java有著千絲萬縷的聯繫。

因此Java工程師轉大數據工程師,有著天然的優勢,當然目前在數據挖掘領域,Python也佔據著很大的統治地位。不過在大數據領域,基本上大多數企業都是要求Java背景的公司最多,很多崗位都是直接瞄準Java工程師進行培養。

大數據的崗位市場需求非常大

現在的互聯網,哪家企業不討論大數據?

阿里巴巴旗下的天貓、淘寶有購物大數據,支付寶有支付大數據,菜鳥網絡有物流大數據,百度有搜索大數據、人工智能大數據,騰訊有社交大數據大數據、遊戲大數據、同樣也有支付大數據。可以說每個企業都在佈局大數據,尤其是在大公司。

數學基礎好,如果喜歡機器學習,可以一邊工作一邊學

活到老、學到老,這是一個鐵律。

題主也提到了自己喜歡數學,這對於學系機器學習來說是一個優勢,再加上你有很好的Java學習背景,相信語言的壁壘不是很大,想要學習一些Python的知識其實不是很難,相信真正做過開發的都知道,語言的壁壘不大的。

不過機器學習可不是那麼簡單的,對於數學什麼的要求確實很高,而且這個行業比大數據還要複雜,而且目前人工智能的壁壘還是蠻高的,很多領域都還是在實驗室階段,更多的還是比較尖端的科研,因此學習代價是不小的。機器學習、深度學習目前技術難度還是挺高的,對於算法要求很高。

不過大數據和人工智能聯繫非常緊密,人工智能肯定離不開大數據。不過就我的看法而言,人工智能更加偏向於算法,而大數據更加接近編程,更加靠近業務架構。


EmacserVimer


個人認為轉大數據比較好,變現…賺錢比較快,對於賺錢快的,總是最受歡迎的。AI的發現是個漫長而又緩慢的過程。在阿法狗在圍棋上戰勝了柯潔以後。谷歌向全人類展示了AI的魅力。機器學習是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、算法複雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。它是人工智能的核心,是使計算機具有智能的根本途徑。它的應用已遍及人工智能的各個分支,如專家系統、自動推理、自然語言理解、模式識別、計算機視覺、智能機器人等領域。其中尤其典型的是專家系統中的知識獲取瓶頸問題,人們一直在努力試圖採用機器學習的方法加以克服。AI的發展功在千秋。人類有壽命,可以機器沒有。可以無限制的學習。甚至超越人類。像黑客帝國或終結者一樣。

如果是985/211畢業,學霸級別的java程序猿轉做機器學習也並非無阻力,需要拾起課本,認真的啃書。但是如果是專科畢業或者高中畢業自學編程。那就強烈建議你轉行做大數據。理論功底對於編程可能毫無作用。你知道紅黑樹怎麼算對你做數據處理的網頁,幾乎毫無幫助。但是卻限制了你進一步發展。有用,真的有用,只是初級程序猿不需要,也用不上。感謝閱讀分享。祝您新春快樂,闔家幸福安康。歡迎點贊。小編百拜。


雞蛋牛奶叉燒包


大數據好,Hadoop、數據倉庫、Zookeeper、SparkSQL、Spark、Strom、Jstorm、ES、Hbase、Kafak、ETL。場景更多,目前機器學習還需要一定的時間才能夠普及,另外彼此是想通的,轉方向也不是不可能。建議先學大數據。

關注我,後臺私信:“大數據”,給你一手最新的視頻資料,以及最新大數據動態信息


油膩的Java


把握現在,等待時機

現在很多主流網站都是使用java開發維護的,所以個人覺得java前景還不錯,所以我的建議是把握好現在,現在做java開發,可以在這一行中深耕努力使自己成為大牛,編程思維越好以後轉啥都比較迅速。

如果有好的機會可以轉到大數據開發的話,當然要抓住機會,現在大數據開發風頭正盛,像大數據平臺搭建、運維、優化監控,數據挖掘分析,大數據設計架構這些大數據相關崗位給的薪資相當豐厚,前途也是很美好。

機器學習這部分不是很瞭解,應該是更注重算法的開發,對數學功底要求很高。至於使用什麼語言開發這個應該不是問題,精通java入手phython會很快的,而且編程這個東西是要是要看編程思維和語言本身關係不是很大。


java人在北京


大數據是底層建築,數據歸一化後才好給輸入給機器學習框架。二者要有機結合吧


JohnnyZeng27


我在公司做了4年java,一年的大數據平臺開發。

根據我的經驗來看,這兩個方向,機器學習相對更高階一點,前景更大點。

而且,不存在用python就放棄java這一說法

一個資深的架構師,都是同時精通多門語言的。

而且你還在學習的過程當中,當你學有所成的時候再考慮後續的問題才對


分享到:


相關文章: