1. 程式人生 > >搞java的要不要轉AI

搞java的要不要轉AI

最近,筆者在某知識社交平臺內發現一個熱度蠻高的話題“人工智慧時代,做為一個多年的Java程式設計師,感到深深的焦慮,如何面對和處理?”,引起了無數Java程式設計師的共鳴。展開討論之前,我們先看幾條一線網際網路公司的新聞:

1、2017年7月5日,阿里巴巴人工智慧實驗室亮相。

2、騰訊設立3個AI部門,聚集了30多位90%以上都是博士學歷的名校高材生,同時在西雅圖設立人工智慧實驗室。

3、2013年1月,百度成立深度學習研究院,4月,百度在美國加州建立了人工智慧實驗室。

4、2012年,華為公司在香港成立諾亞方舟實驗室,主要從事人工智慧學習——資料探勘研究。

5、2017年12月21日,華為百度達成戰略合作,共同推動人工智慧發展和應用。

......

這些關於人工智慧鋪天蓋地的訊息是引起Java程式設計師焦慮的部分原因,那麼,Java程式設計師在人工智慧時代的出路在哪裡呢?

我們先來考慮使用Java寫人工智慧演算法程式的情況:

我們所熟知的谷歌、阿里等很多企業都是基於Java框架,如果你打算使用Java寫人工智慧演算法程式,理論上沒有問題,Java只是一門程式語言,硬寫自然是可以的,但Java的最佳應用場景應該是處理業務複雜性比較高的任務,畢竟導包、呼叫也沒有那麼方便。

同時,使用Java編寫人工智慧演算法程式也不是大企業的需求,企業在招聘時自然是希望直接招到會Python的程式設計師,這也不是很難的事情,資深資料探勘或者資料科學家可能很難,但會Python的程式設計師還是很多的,Java程式設計師何必與他們搶飯碗呢。

如果不行,Java程式設計師要轉型嗎?

糾結是否轉型的程式設計師大部分人漸到中年,已經有了五年以上的工作經驗,在目前的職位上已經遊刃有餘,冒然轉型擔心結果不盡如人意,對於這種情況,網友們的想法呈現明顯的兩邊倒:

有的將目前的人工智慧和曾經的移動網際網路相比較,認為這件事情一定會慢慢降溫。如果轉行,混個10年可能也就是個中級水平,如果不轉行,10年以後就成為了資深Java工程師,身價已經不低了。

中立:

佛系觀點:(Java程式設計師也還是有用的,想開點!)

當然,也有支援的:

現身說法系:

背景:某廠演算法部門,10年演算法經驗的演算法小小小工程師/(ㄒoㄒ)/~~。演算法工程師有時候可能比普通的應用開發工程師要苦,要髒,要累很多。轉型前慎重(⊙o⊙)哦!

首先說明一點就是:很火不代表真的很賺錢,很火不代表它很輕鬆,很火不代表真的適合你!

在回答你的問題之前,我們可以講個故事:

上個月接到一個新的任務(做一個底層推薦演算法),對於我們現在有的使用者量資料(上億),已經不能滿足於只調用現成的MF矩陣分解方法方法,有必要編寫適合自己的演算法,於是我們這群演算法工程師閃亮登場。慈慈慈,看paper,找到好的方法,沒找到原始碼沒事自己來實現,一開始使用tensorflow,然後再使用矩陣分解,不斷epoch最後搞定。OK!樂開花兒!

對你沒有看過,你妹的我們居然用了2周時間搞定一個推薦演算法模型,很開心哦,馬上用真實資料去測一下效果(先用日活500萬用戶資料試試)。矮油尼瑪!!!演算法崩掉了記憶體不足,艹,FFFF佛慈悲。冷靜,記憶體不足肯定是開闢空間太大了,一個500萬用戶和10萬物品的排名矩陣太大,那我就改用索引方式進行稀疏表儲存!這還難得了我們這群吃豬腦長大的演算法工程師麼!啪啪啪的搞了1周,效果明顯,能夠正常運行了。於是經過漫長的等待!。。。。。

等待真的很漫長,懷孕的孩子都要出來了。500萬行的矩陣操作,就算記憶體塞得下,迭代計算次數還是很慢啊,計算一次得一天,怎麼做實時推薦!每天的離線推薦都難!好了,後面的事情就是無盡的工程問題,多執行緒,多執行緒不行,那就來併發,併發不行就來多伺服器分散式,然後也來個GPU什麼鬼的一起上!

這麼一來,你應該知道只是轉人工智慧不能只懂演算法,還要懂系統,懂數學,懂分散式,懂架構,不然怎麼做演算法構架。這一過程,得多長?為什麼不把自己JAVA學好呢?JAVA的架構你掌握很熟了,設計千億級的排程你搞得定麼?快速拉取TB級別的資料怎麼設計框架?兄弟彆著急轉型,想想你在自己崗位還有什麼做得不夠好,不夠精的事情吧。

問主說:我想問的是未來JAVA開發是否會逐漸的被邊緣化,人工智慧統治整個計算機行業發展。

這。。。兄弟腦子短路還是外行的?JAVA開發會變邊緣化那麼原有的系統用什麼維護?新的分散式系統用什麼開發?人工智慧自動開發嗎?別傻了,你又不是沒有打過程式碼玩過遊戲,都是if else組成的。理智點行不行?清醒點行不行?OK不OK兄弟?
 

歸根結底就是Java程式設計師的未來前途問題,筆者想說,再過幾年,AI沒準都能代替程式設計師寫程式碼了,不僅僅是Java程式設計師,所有程式設計師都該考慮考慮前途啦!