Overview:
-
序
-
基本概念
-
DS的職能要求
-
DE的職能要求
-
總結
一、序
今天主要給大家好好說說python的發展方向,這篇文章也是藏了好久了,群裡各種問怎麼學,大資料分析怎麼學,爬蟲怎麼入門,說實在的,你關注我號久一點,都知道有那麼幾篇文章是專門給入門看的,還有幾篇是資料總結的。會找的都能找到。
但是一篇可能不夠,因為我想盡可能的給大家剖析行業情況,讓大家在做選擇的時候不至於還不知道這是幹啥的,只知道這個很火。
今天就先給大家講大資料分析工程師。
二、基本概念
對於一大部分想轉行做IT,做python的,都是衝著大資料分析來的,那你知道大資料分析的是啥嗎?你知道大資料分析的崗位職能分配情況嗎?
如果這些都答不上來的話,那就別追風口,如果盲目的跟風,只會讓你進來找不著北,到頭來,浪費1年時間,還的回去幹老本行。
首先,我們經常叫的大資料分析師有兩種崗位定位:
-
大資料科學家,Data Scientist,DS
-
大資料工程師,Data Engineer,DE
從這兩個單詞裡,你就能看出端倪了,那接下來就以我在普華永道的工作經歷告訴你,這兩者的區別,以及工作內容劃分。
三、DS職能要求
1. 專業知識
DS的職能是演算法分析,是基於對行業背景的瞭解幫助客戶作出預期計算。而這裡面就會涉及到很多專業知識,俗稱統計分析。
和pwc同事共事的時候,我經常向他們討教關於DS的一些事情,再加上一起做專案,分工明確,也自然對DS更瞭解一些。我見過的DS都是碩士畢業,還都是全美TOP10的學校,要麼博士。
不是學歷歧視,是你要做這事情,就得要這點本事,你沒有7年,你的專業知識支撐不了你做DS。如果你不理解這句話,我給大家舉個例子:
大家都讀過小學(就怕我說都讀過高中,你說你初中畢業為了生存,就出來打拼了)不考慮天才好麼,我們都是小老百姓。然後解題思路就是按照老師教的,而思路只侷限在一元二次方程組,二元一次方程組,而讀過大學的,他可能直接用積分就給你解出來了;幾何題都做過對麼,幾何題難的是什麼?做輔助線啊!輔助線出來,人人都是華羅庚,還喜歡後面跟一句,我要是畫出來了,我也會做。
這是什麼?就是知識邊界啊。你所知道的星辰大海,只是別人的滄海一粟。所以專業知識必不可少。
2. 行業背景
接下來DS還需要有某個領域的行業背景,俗稱BK,background knowledge。你可能會奇怪為什麼還要這。
因為大資料分析都是針對行業來做的,那麼行業內的行話,套路,潛規則,生存法則都是不一樣的,你要對公司做預期分析,你就得對行業有一個基本認識,甚至深入瞭解。
我們以前的DS,貫穿各大實體行業,有保險的,醫療的,建築的,心理的,法律的等等。為什麼要招那麼多DS,就是因為每個DS都有自己擅長的幾個領域。一定的BK能夠幫助DS在面對資料的時候快速的作出資訊過濾,能夠在聊需求的時候,快速給出反饋。這才是價值。
3. 工具
到了第三塊,才是你們關心的python,為什麼把python放最後?因為python只是一個工具。對於開發者來說,python可能是你們的底,但對於DS來說,python只是一個交通工具。
以前用excel VB,後來用java,現在還有人在用R,不過更多的還是python。這就好比說,現在如果你想去某個地方,坐地鐵能到的,基本都坐地鐵,因為又快又方便。那沒有地鐵的時候呢?只能做公交。沒有公交的時候呢?就得騎自行車,或者走路。
所以DS從來不會關心程式碼執行效率,他們關心的是編碼效率。而python正好又是編碼效率極高的。
所以你要和我說你在外面培訓了4個月的大資料分析後,就想做DS了,那請你再考慮考慮。
四、DE職能要求
相對DS,DE就比較雜了,做的事情也多。就拿我來說,當時中國data team 就3個,2個DS,你說我是DE也可以,說我是打雜的也可以。因為DS只負責演算法輸出,而其餘的都是我來做。
你們想想,一個專案光有演算法能行嗎?誰去執行它,它要如何被外部呼叫?髒資料的清洗工作誰來做?還有很多很多的事情需要你考慮。
那我一個個來說,首先DE最重要的事情就是輔助DS清洗資料,我們叫data cleaning。因為很多時候從外部拿到的資料,無論是買來的,爬來的,還是已有的,都是原始資料,DS需要對這部分資料做一個預處理,否則很容易汙染樣本資料。那DE的工作,很重要的一部分就是去清洗資料。至於規則是你和DS討論的,沒有一個固定的模版。
其次,剛剛說到的資料來源,有一個是爬來的,所以你還得會爬蟲。關於爬蟲部分的內容我會另起一篇,給大家好好講講。當時我想做,但沒有做的一部分就是爬蟲,因為全美有很多公開資料是可以去獲取的,當時我想做的是分類,包括清洗、過濾、入庫、展示。沒來得及做。
如果你會爬蟲,DS就會很高興了,因為他們不用為沒有資料犯愁了,你要知道,對於DS來說,資料的數量和質量都是他們關心的東西。而老闆更是了,因為DS要資料,他就要花錢去買,如果你是DE你說你可以嘗試爬爬看,那老闆對你什麼看法?
那你如果還會做後端開發就更好了,我當然的主要經歷就放在了自動化建設上面。US那邊的老闆是沒有要求做,那我是本著提升生產效率去的,所以是自己給自己加戲了。最後的效果還不錯,讓我一個任務從一週到1-2分鐘,只需要改配置就可以了,當然這個過程是非常痛苦的,我們前前後後一起對需求,review程式碼。
然後服務端寫好了,我們還可以做前端展示,對於vendor來說,他們不關心資料怎麼來的,他們想看直接的東西,那不就是dashboard嗎?這塊我也沒做,只是開了個頭。
後來發現我們有一個20人的app團隊在做這個事情,我肯定沒有人家20個人做得好,但是起碼在他們交付前,我們data team也可以體現出價值來不是?否則只有等app team做完了,把我們的資料接入了,老闆在看的到。
所以我一直強調,價值是自我實現的,平臺給你的是機會,能做多大,都看你自己。前幾天還和一個讀者說這個事情,我說別和我扯公司規範,流程,在我看來都是藉口。
你做運維,一定要等測試程式碼過了給到你,才能釋出,那你為什麼不能把測試之後的步驟自動化?讓測試自己提交jira,然後打鉤子,做CI/CD?部署伺服器,和我說測試伺服器就要手搭,搭好了之後有一套指令碼會自動化部署其他服務,那為什麼不把建立伺服器也自動化?你又不是物理機,你是雲伺服器啊。
題外話了,我們收回來,所以對於DE來說,做的事情可以很多。那python就是我們的武器庫了,武器是爬蟲、資料清洗、後端、前端等等,要什麼拿什麼,就看你有多少了。而武器庫裡還可以加上kettle、tableau、informatica等等,這些只是附加項了。
這個,培訓機構4個月培訓一個武器,我是相信的。而他們鼓吹的大資料分析師,其實就是DE。不能說絕對,只能說大部分把,給自己留條路……
五、總結
好了,今天說了那麼多,希望能給正在大資料分析路上的你,吃一顆定心丸,該走的路一步不能少。
關注公眾號「Python專欄」,後臺回覆「騰訊架構資源1」,獲取由騰訊架構師整理的大資料學習全套資源包!