3年Java開發轉型大數據,如何跳出CRUD舒適區?



自我介紹

我是小張,不是科班出身,大學學的是生物工程,後來也是自學加培訓入的行,入行就做了 3年的Java 開發,後來覺得大數據前景更好一些,就想著轉型大數據,經過x哥指導後,在去年 7月份成功入職了一家大數據公司。

公司一般,不是大廠,不過目前我感覺還行吧,薪資漲了8K,而且我也算是大齡開發了,即將奔 3 ,工作前兩年光顧著玩了,沒想著規劃,導致落下了很多東西,現在跟著大家一起努力,搞好大數據。

轉型前

在做大數據之前,我做了快三年的 Java 後臺開發,第一家公司也算是一家中規中矩的公司,沒啥複雜業務場景,常年的 CRUD,基本也用不上算法跟數據結構的優化,常規的 Java Api 就足以應付日常需求了。

我想學大數據的想法萌生在去年國慶節那段時間,具體也沒啥原因 就是感覺大數據未來可能會更好一些,同時也覺得轉大數據有 java 基礎會好轉些,於是便在去年工作之餘自學大數據了,當然 Java 未來也不差,最近火的微服務那一套掌握了也夠吃得開了。

為什麼轉型

其實要說到為什麼轉型,這個還真沒啥理由,可能是有些受當時熱門技術的影響和薪資方面的影響吧。

在刷 Boss 招聘的時候,總感覺一般的大數據崗位比一般 java 崗位薪資要高,另外就是前些年的大數據熱,各大高校也開了大數據課,時間也是成本啊,萬一等新一屆的大數據專業的大學生畢業了,到時候我就是再想轉可能都沒機會轉了。

剛開始轉型的行動和心理

說到剛開始轉型的時候,其實心裡特別沒底的,最先的就是去網上找了大數據視頻,一邊看視頻,一邊學,要知道看視頻效率是非常低的,但是沒辦法,總歸人家視頻中有一套體系,按著體系來學習總不會差太多,於是便開始了漫長的視頻學習,整個視頻看完大概花了3~4個月的時間,都是下班 或者 週末時間看的,說實話看完記住的真是不多,當時也沒有什麼好的辦法,好在視頻裡也有對應的小項目可以做做,一來二去,跟著視頻就到了年後。

最開始轉型的時候最苦惱的就是沒有規劃,也沒人問,不知道自己處於什麼位置,漫無目的的跟著視頻走效率也不高。

轉型過程

過年的時候一次巧合我刷到了x哥的帖子,那上面公眾號說有大數據的學習方法,一開始我是抱著懷疑的態度試試的,因為視頻看的差不多了,打算就今年要出去面試了。之後要了份面經,邊上班邊刷面經,差不多一個月的時間吧,面經上那些簡單的面試題算是掌握了,而那些源碼級別的問題說實話我到現在也沒弄明白。

之前光顧著按部就班地看視頻,不知哪些是重點哪些是可以跳過的,看完也覺得似懂非懂,看項目視頻的時候抓不到重點,無法與真實場景連接在一起。

要說準備轉型的過程中的我覺得比較困難的點還是自己學習的時候沒有方向感,沒有重點。每個人的經歷不一樣,學的知識可能有很大差別,找到適合自己的才是最好的,知道自己的進度如何,知識體系差在哪,及時補充

,這點非常重要。

面試過程

在去年7 8 月份的時候我面試了幾家大數據公司,由於我是從 java 轉過來的,側重點包括了 java 和 大數據 ,面試對 java 基礎和大數據的框架考察的比較詳細,hadoop 讀寫、spark分區機制等是常問的面試題。

當然面試也肯定離不開項目,我是把自己工作經歷加上了大數據的知識,這邊感謝大瘋哥幫忙整合項目,給了我一些方向和思路,結合自身項目的業務場景,離線、實時都有涉及。

由於我面的不是大廠,可能考察的知識並不是很深入,x哥規劃的知識體系基本上覆蓋了考察的知識點,剩下的就是結合業務場景來說說為什麼使用某種技術,解決了啥問題之類的了。最後也是比較幸運,找到了比較合適的公司。

轉型後日常工作

新入職的這家公司是做輿情分析的,到現在也差不多入職3個月了,我所在的組就叫數據組,主要負責兩方面的工作:

1 實時數據的處理與落地,實時這塊用的還是比較老的 jstorm+ rabbitMQ 的技術,整個數據處理過程包括 數據採集+數據預處理+NLP屬性+搜索引擎,我就處於數據預處理的環節。

技術上相對來說並不是很難,但剛入職還是得多花時間,一般的問題通過百度都能找的到。難就難在處理的業務上,到現在我也還在熟悉業務,業務上有很多語義、輿情上的東西,隨著工作的深入,業務熟悉也在加深吧。

2 離線數據的再分析,計算,我們這叫做數據回溯,就是用舊數據做一些 sql統計,沒啥複雜的邏輯, hive 常規操作就搞定了,不會像專門搞數倉的那種各種連接,各種函數的。

3 還有就是各種集群的常規維護吧,多少要會點集群維護的東西,我們這是沒有專門的數據運維,所以一些集群操作,都是我們組的自己來弄的。

其實,說到日常工作,對我來說還是比較有挑戰性,畢竟技術棧都是新的,接下去還要接入一些新框架Flink這些來替代現在的框架。公司業務也很深,不過我覺得業務這東西對現階段的我來說可能還不是硬實力,但多少得懂點,所以未來我還是想再學學技術,先把技術弄紮實了,到哪都能混下去嘛

經驗總結

1.要說經驗的話,如果你還是學生的話,抓緊在學校學習的機會,打好基礎最重要。要是你是已經工作的兄弟的話,咱本來就沒多少時間學習,如果自己學習效率不高的話,趕緊找人給做個適合自己的計劃,時間成本也是很高的啊,有人帶跟自己憋完全就是兩個世界。

2.另外學習要注重平時積累,最好別搞突擊戰,不管是視頻也好,文檔也好,耐心跟著進度學下去,平時努力了,結果應該不會太差。

3.別裸辭,能在職學儘量在職,學的差不多再離職集中面試不遲。

4.轉型成功不代表一勞永逸,而是新階段的開始,要做好終生學習的準備。

最後

給大家分享一下我自己的學習路線和自學時收集的一些還不錯的學習書籍、視頻還有大數據面試題。

學習路線:

Hadoop工作流程(Shuffle)實現全局排序與局部排序實現join操作數據傾斜單機架構工作流程資源如何配置三種調度器單機架構讀寫流程副本策略單機環境中SNN如何工作HA架構故障案例:例如block塊損害該怎麼修復如何編譯支持各類壓縮HadoopAPI使用HDFSYarnMapReduce


Zookeeper單機/集群部署過半機制選舉制度


FlumeSourceChannelSinkInterceptorsChannel SelectorSink PrecessorsTaildirExecSpoolingAvro自定義MemoryFileHDFSLoggerKafkaAvro自定義架構工作流程


ScalaListMapArraySetcase class伴生對象/類數據類型方法和函數循環類和對象集合以及算子模式匹配隱式轉換


SparkDStream概念SourceTransformationsOutputPerformance TuningKafka對接方式以及消費語義DF/DS API外部數據源Tuning概念TransformationsActionCache累加器和廣播變量Shuffle源碼實現內存模型支持CDHBuilding架構以及工作流程RDDSQLStreamingYarn提交作業流程以及如何提交Spark調優


Kafka單機/集群部署常用命令核心概念offset管理怎麼保證數據一致性調優


HBaseHBase-CDH環境部署/單機部署核心概念邏輯/物理模型架構以及讀寫流程RK設計調優

需要獲取書籍、視頻的朋友:關注我幫忙轉發一下文章,後臺私信【資料】即可全部獲取

以下是部分截圖:

還有一些大數據方面的面試題,我已經整理成了一份文檔想要獲取的朋友,關注轉發後私信【面試資料】即可