在我第一份實習(xí)的時候,忘記在什么場景下我 leader 突然說了一句:「干 Java 不就是增刪改查嘛」,而恰好那時候知乎都是「干了3年Java,還是只會增刪改查,迷?!?/span>等問題 ,我聽完 leader 那句話就心里一顫。
因為這句話,我又一次的陷入迷茫,我不清楚自己是不是應(yīng)該繼續(xù)的 Java,所以那段時間我干過爬蟲,也擼了一陣子的西瓜書和統(tǒng)計學(xué)什么的。在知乎上所有相關(guān)的問題和答案我都看了,也在知乎付費(fèi)咨詢了很多前輩。最后覺得爬蟲工作不好找,機(jī)器學(xué)習(xí)門檻太高,然后折中學(xué)了大數(shù)據(jù)。
上面只是我的初步動機(jī),但后面一年多的接觸,讓我有了更多的理由對大數(shù)據(jù)不拋棄不放棄。
1.門檻。它比 Java 高一點(diǎn),因為除了對數(shù)據(jù)庫的操作之外,要學(xué)習(xí)大數(shù)據(jù)生態(tài)的東西,需要會分布式、數(shù)倉、中間件等知識。它比機(jī)器學(xué)習(xí)低一些,不需要你會很多的機(jī)器學(xué)習(xí)算法和數(shù)學(xué)知識,而像機(jī)器學(xué)習(xí)算法和數(shù)學(xué)知識是需要長時間的磨練和沉淀,所以做這塊的研究生和博士居多。
因為它的學(xué)習(xí)門檻比 Java 高,所以市場上缺失這方面的培訓(xùn)機(jī)構(gòu),因為投入和回報不成正比,而現(xiàn)有的培訓(xùn)機(jī)構(gòu)大部分都是糊弄的,讓你學(xué)學(xué) Python 爬爬數(shù)據(jù)然后自稱大數(shù)據(jù)培訓(xùn)。
再就是高校專業(yè)的設(shè)立。無論是哪個學(xué)校的計算機(jī)專業(yè),Java、數(shù)據(jù)、C、C++什么的都會接觸到,但是大數(shù)據(jù)呢?第一批大數(shù)據(jù)專業(yè)的學(xué)生現(xiàn)在大二,所以現(xiàn)有的大數(shù)據(jù)崗位的人都是自學(xué)的,談不上對口不對口,對口更多的指計算機(jī)基礎(chǔ)。但是再過兩年就不一定了,所以「早,就是優(yōu)勢」。
2.薪資高。這個估計才是吸引大部分人學(xué)習(xí)的原因。同一家公司同一級別,普通開發(fā)崗和大數(shù)據(jù)開發(fā)薪資還是會差一個檔次的,具體多少視公司而定。
3.積累性和挑戰(zhàn)性。在我學(xué)習(xí)群里面,不乏一些在傳統(tǒng)企業(yè)或者國企的資深開發(fā)者,但是他們對自己的職業(yè)也迷茫和擔(dān)憂,在群里經(jīng)常討論一些分布式,Redis、Zookeeper等知識的時候,他們顯的格格不入。因為他們長期在企業(yè)里 CRUD(增刪改查),與現(xiàn)在互聯(lián)網(wǎng)技術(shù)發(fā)展產(chǎn)生隔閡了,既憧憬又畏懼。
為什么說大數(shù)據(jù)開發(fā)是積累性又有挑戰(zhàn)性的呢?
了解過大數(shù)據(jù)的應(yīng)該知道大數(shù)據(jù)的「4V理論」,隨著時間的發(fā)展,企業(yè)產(chǎn)生的數(shù)據(jù)量肯定越來越大。在以前,我們對數(shù)據(jù)是不重視的,但是隨著機(jī)器學(xué)習(xí)的發(fā)展,數(shù)據(jù)是越來越重要的。了解機(jī)器學(xué)習(xí)應(yīng)該都知道,訓(xùn)練模型之前都會有一個特征工程的步驟,特征工程就是來處理數(shù)據(jù)的,然后喂給模型。又好又多質(zhì)量又高的數(shù)據(jù)會讓這個模型更聰明和健壯,相當(dāng)于燃料,模型才能更好地自我訓(xùn)練,然后才有現(xiàn)在的「推薦喜歡」和「全民抖音」。
如果你只是進(jìn)行一些數(shù)據(jù)庫的增刪該查或者一些頁面展示什么的,這些套路都是可復(fù)用的,講究能用就行。但是大數(shù)據(jù)不一樣,無論你是做平臺的建設(shè),數(shù)倉,計算等,一些場景一些機(jī)制都是需要你去思考的。
我面試的時候被面試官問到一個問題:「你為什么不做 Java,要去做大數(shù)據(jù)?」
我回答的是:「如果這個 Java 崗位能涉及到中間件的開發(fā),而不只是做 CRM,ERP 等數(shù)據(jù)的 CRUD,那我是可以接受的。而大數(shù)據(jù)的話無論你是哪個方向,都會面臨著一些挑戰(zhàn)性,工作也更有難度一些。」
4.推動你現(xiàn)有崗位的發(fā)展。學(xué)習(xí)群里很多人問過,我從事前端的學(xué)大數(shù)據(jù)有什么用?我從事運(yùn)維,學(xué)大數(shù)據(jù)能幫我什么?等等。
大數(shù)據(jù)+現(xiàn)有崗位是一個趨勢。大數(shù)據(jù)來臨的時候,你前端不用做一些靜態(tài)化,或者一些緩存機(jī)制嗎?會一些 Hive、Hadoop,做可視化或和后端對接的時候是不是更有優(yōu)勢呢?后端學(xué)一些大數(shù)據(jù)的覺得是必要的,例如Kafka、Zookeeper等分布式、緩存相關(guān)的數(shù)據(jù)存儲和傳輸是進(jìn)階 Java 必會的,讓你在現(xiàn)有企業(yè)需要轉(zhuǎn)型的時候可以直接就上。而運(yùn)維呢?分布式集群運(yùn)維,各個大數(shù)據(jù)平臺上的節(jié)點(diǎn)運(yùn)維,這不是一個趨勢嗎?
什么都不學(xué),認(rèn)為現(xiàn)在的公司用不到,等公司要用到的時候,你會,可能就是一個負(fù)責(zé)人或者給你升職加薪巴結(jié)你試試,因為這樣成本小,知根知底。不會呢,就直接招會的人過來了,而你就危險了。
5.過渡到機(jī)器學(xué)習(xí)人工智能的捷徑。隨著科技的進(jìn)步,包括硬件和軟件,機(jī)器學(xué)習(xí)的使用門檻會越來越低,為什么這里強(qiáng)調(diào)使用。因為研究部門在每一家公司都是極少數(shù)的,更多的是在調(diào)庫,調(diào)參。而隨著硬件的進(jìn)步,很多算法都是封裝好的,可以進(jìn)行傻瓜化操作,我們只需要給他喂數(shù)據(jù)。(來源:知乎)