如何入門大數據(數據挖掘方面)

可供工程師選擇的大數據崗位

  1. 從僱主需求看,如何發掘自己轉崗優勢
  2. 爲轉崗工程師提供的建議

ps:本回答較長,讀完約要6分鐘。


可供工程師選擇的大數據崗位

大數據平臺/開發工程師

他們的工作重心在於數據的收集、存儲、管理與處理。通常比較偏底層基礎架構的開發和維護,需要這些工程師對 Hadoop/Spark 生態有比較清晰的認識,懂分佈式集羣的開發和維護。熟悉 NoSQL,瞭解 ETL,瞭解數據倉庫的構建,還可能接觸機器學習平臺等平臺搭建。有些大數據開發工程師做的工作可能也會偏重於應用層,將算法工程師訓練好的模型在邏輯應用層進行實現,不過有些公司會將此類工程師歸入軟件開發團隊而非大數據團隊。

算法&數據挖掘工程師

此類工程師的工作重心在於數據的價值挖掘。他們通常利用算法、機器學習等手段,從海量數據中挖掘出有價值的信息,或者解決業務上的問題。雖然技能構成類似,但是在不同團隊中,因爲面對的業務場景不同,對算法 & 數據挖掘工程師需要的技能有不同側重點。因而這個類目下還可細分爲兩個子類:

1. 算法工程師

這類團隊面對的問題通常是明確而又有更高難度的,比如人臉識別、比如在線支付的風險攔截。這些問題經過了清晰的定義和高度的抽象,本身又存在足夠的難度,需要工程師在所研究的問題上有足夠的專注力,對相關的算法有足夠深度的瞭解,才能夠把模型調到極致,進而解決問題。這類工程師的 Title 一般是「算法工程師」。

2. 數據挖掘工程師

有的團隊面對的挑戰不限於某一個具體問題,而在於如何將複雜的業務邏輯轉化爲算法、模型問題,從而利用海量數據解決這個問題。這類問題不需要工程師在算法上探索得足夠深入,但是需要足夠的廣度和交叉技能。他們需要了解常見的機器學習算法,並知曉各種算法的利弊。同時他們也要有迅速理解業務的能力,知曉數據的來源、去向和處理的過程,並對數據有高度的敏感性。這類工程師的 Title 以「數據挖掘工程師」居多。


瞭解了市面上有哪些可以轉爲大數據方向的崗位後,公司都希望能夠招聘到一個怎樣的大數據工程師呢?
基礎的邏輯、英文等素質是必須的,聰明、學習能力強是未來成長空間的保障,計算機基礎需要紮實,最好做過大規模集羣的開發和調優,會數據處理,還熟悉聚類、分類、推薦、NLP、神經網絡等各種常見算法,如果還實現過、優化過上層的數據應用就更好了……

嗯,以上就是招聘方 心中完美的大數據相關候選人形象。

但是,如果都以盡善盡美的標準進行招聘的話,恐怕沒幾個團隊能夠招到人。現在大數據、數據挖掘火起來本身就沒幾年,如果想招到一個有多年經驗的全才,難度不是一般的高。
因此對於僱主而言,如何調整招聘中的取捨,成爲想要轉崗大數據方向的工程師的突破口:

從僱主需求看,如何發掘與培養自己轉崗優勢

1. 挖掘長處,發揮優勢匹配崗位

以某一家計算機視覺領域的大數據公司的招聘需求爲例,該團隊中既需要對算法進行過透徹研究的人才,把圖像識別有關算法模型調整到極致,也需要工程實力比較強的人才,將訓練好的算法模型在產品中進行高性能的實現,或者幫助團隊搭建一整套視頻圖像數據採集、標註、機器學習、自動化測試、產品實現的平臺。

對於前一種工程師,他需要在深度學習算法甚至於在計算視覺領域都有過深入的研究,編程能力可以稍弱一些;而對於後一種工程師,如果他擁有強悍的工程能力,即使沒有在深度學習算法上進行過深入研究,也可以很快接手對應的工作。

即使在算法工程師團隊內部,不同成員之間的技能側重點也可能各不相同。

比如某一資訊內容推薦公司的算法團隊中,一部分工程師會專注於核心算法問題的研究,對解決一個非常明確的問題(比如通過語義分析進行文章分類的問題,如何判斷「標題黨」的問題等等),他們需要有足夠深度的瞭解;另外一部分工程師,則專注於算法模型在產品中的應用,他們應該對業務非常有 sense,具備強悍的分析能力,能夠從複雜的業務問題中理出頭緒,將業務問題抽象爲算法問題,並利用合適的模型去解決。兩者一個偏重於核心算法的研究,一個偏重業務分析與實現,工作中互爲補充,共同優化個性化內容推薦的體驗。

對於後者來說,因爲對核心算法能力要求沒有前者那麼高,更重視代碼能力與業務 sense,因而這個團隊可以包容背景更豐富的人才,比如已經補充過算法知識的普通工程師,以及在研究生階段對算法有一些瞭解的應屆生。

看了兩個公司的例子之後,我們來看一個具體應用的例子,本來主要從事利用GPU服務器進行運算加速工作的宋翔,在公司的需求下,轉型從事機器學習平臺的開發和平臺搭建工作。
對於宋翔而言,他了解如何讓算法在機器上運轉得夠快,才能夠縮短模型迭代的時間,加速模型優化的過程。而大部分算法工程師可能對此瞭解甚少,宋翔就可以充分發揮自己的特長,利用硬件和底層系統加速機器學習算法。

當需要訓練的數據量特別大的時候,比如幾十 T 以上甚至 PB 級的時候,在分佈式系統中, I/O 或者網絡可能成爲瓶頸了,這時需要系統工程師的介入,看怎麼優化數據傳輸使得 I/O 的使用率提高;看怎麼去存儲,用 HDFS 還是用 Key Value Store 或者其他存儲方式,可以讓你更快地拿到數據去計算,或者你用磁盤的存儲還是 SSD 存儲 或者 in-memory 的存儲。這其中,系統工程師也需要平衡成本和效率之間的關係。 系統工程師還可以幫助你設計一個系統,讓算法工程師快速地提交任務,或者方便地同時訓練多個模型,嘗試多個參數 系統工程師非常擅長把本來串行的工作拆分之後變成並行工作。比如可以把數據預處理和深度學習運算做一個併發,等等

除了對底層系統有深入瞭解之外,宋翔現在也在瞭解機器學習的算法。他帶領的小團隊中,除了有2名系統工程師之外,還有兩名算法工程師,他一直鼓勵兩種工程師互相學習,共同提高,這樣才能夠讓整個團隊效率最大化。如果系統工程師對算法不瞭解的話,可能也不知道怎麼去優化算法運行的效率;算法工程師也應大概瞭解不同模型在CPU、GPU機器上的運算速度,幫助自己設計出更高效的算法。

對於期望轉崗爲大數據相關的普通工程師來說,一旦通過自身擅長的技能切入新團隊之後,就有了更多橫向發展的機會,幫助自己在大數據相關領域建立更強競爭力。

 

2. 如果現階段技能水平不能匹配:紮實基礎,展現自身可成長性

成長空間一直是一個老生常談的問題。這個問題在當前市場供給偏少的大數據相關領域,更加突出。那麼,爲什麼成長空間這麼重要?與其說是成長空間,不如說是看中了這些工程師背後的潛力。這些有成長性的工程師可以利用已有的工程實力完成一部分基礎工作,並在經過1-2年的鍛鍊之後,接手更復雜的問題。

從大數據方向金字塔技能模型上看:

越是偏金字塔底部的素養,對於企業來說越是重要。最底部的基礎素養,代表的是未來的成長空間。當前互聯網高速發展,每家企業都是跑步前進,如果一個當前技能不錯的工程師,未來成長空間有限,也可能變成企業的負擔。

再上一層的計算機基礎 - 基本的算法與數據結構,某一門編程語言的精通,是幾乎每個工程師崗位都重視的能力。一個基礎不紮實的程序員,可能會讓企業懷疑其學習能力。紮實的基礎,會爲應用技能的學習掃除障礙,更容易建立深度的理解;而數學基礎對於算法理解上的幫助十分重要。

這最下方的兩層構成了一個工程師人才的基礎素養。如果底層的基礎比較紮實,掌握應用層技能所需要的時間也許比我們預想的要少一些。

TalkingData 的技術 VP&CTO 閆志濤在操作(招聘)環節中的具體考慮如下:

TalkingData 的大數據工程師工作中非常依賴 Spark 技能,但是瞭解 Spark 本身並沒有那麼難,因而候選人的 Spark 技能對我而言並不是最強吸引點。 相比於對 Spark 瞭解更多的人,我更願意招收那些 Java 學得好的人。因爲 Spark 的接口學習起來相對容易,但是要想精通 Java 是一件很難的事情。 如果你把 Java 或者 C++ 學透了,你對計算機技術的認識是不一樣的。這其實是道和術的問題。

在 100offer 平臺上就有這樣靠紮實的個人功底和成長空間轉崗成爲大數據人才的候選人。
曾在中國移動負責機頂盒業務的後端架構進行服務化轉型工作的趙平抱着對基礎平臺架構的濃厚興趣加入宜信。他在這家公司做的第一個項目是分佈式存儲系統的設計和開發。第一個項目完美收官之後,他的學習能力、基礎能力備受褒獎。當宜信開始組建大數據平臺團隊時,趙平看到了自己理想的職業發展方向並提交了轉崗申請,基於他過往的優異表現,順利地拿到了這個工作機會。

轉崗之後,趙平也遇到了一些挑戰,比如大數據涉及的知識點、需要用到的工具更加豐富,Spark,Scala,HBase,MongoDB…,數不清的技能都需要邊用邊學,持續惡補;比如思維方式上,需要從原來的定時數據處理思維向 Spark 所代表的流式實時處理思維轉變。不過基於他紮實的基礎,以及之前做分佈式存儲系統經驗的平滑過渡,加之整個團隊中良好技術氛圍的協助,最終順利完成第一個大數據項目的開發工作。


轉崗建議

  1. 重視基礎。無論各種崗位,基礎是成長的基石。
  2. 發揮專長。從能夠發揮自己現有專長的崗位做起,可以讓新團隊更歡迎你的加入。比如算法模型的工程化,偏重於業務的數據挖掘,大數據平臺開發,機器學習系統開發等等,這些工作對於普通工程師更容易上手。而普通工程師直接轉偏研究方向的算法工程師,難度更高。
  3. 準備充分。請預先做好相關知識的學習,有動手實踐更佳。如果沒有一點準備,僱主如何相信你對這個領域真的有興趣呢?
  4. 考慮同公司轉崗。在同公司轉崗阻力更小。亦可考慮加入一家重視大數據的公司,再轉崗。

 

發佈了50 篇原創文章 · 獲贊 6 · 訪問量 7575
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章