筆者本是學術界的Bioinformatics Scientist,因生計問題改行工業界Data Scientist,經歷過2家大的網際網路公司,3個不同崗位的Data Scientist。現將這些年來摸爬滾打中所學所做所想所理解總結如下,拋磚引玉,還請大家多批評指點。
Data Scientist是數據應用科學家。他應該立足某個應用領域,根據領域需求設計合適的數據產品,利用可以自動化獲取的數據資源,設計合適的算法,採用適當的自動化工具進行數據計算/合併/轉換,最終得到數據產品。DS需要有獨立的研究/開發能力,至少應該能開發出數據產品的原型以及產生數據產品的流水線的原型,如果他能夠開發出穩定可靠的工業級數據處理流水線那就更好,因為通常在工作中找到合適容易理解你的思路並實現的工程師本來就不是一件容易的事情。
為了履行這些職責,DS需要培養相應的能力。
1. 定義數據產品:DS需要能夠敏銳的捕捉數據產品的需求,能夠發現並創造對企業有價值的數據產品 。根據最終消費者的不同,通常數據產品分為兩類:
內部消費者 通常內部消費者為manager / director之類的人物,他們需要用你的數據產品來輔助決策,決定下一步的發展/開發方向。由於這種數據產品是內部使用,對數據流水線質量要求一般,通常要求DS有較強的領域知識,要有分析,寫作,做幻燈的能力。
外部消費者 也就是說最終上百萬的用戶使用DS的數據。比如Amazon的產品推薦系統。這種數據產品是企業對外產品的一部分,質量要求較高。這種產品要求DS有較強的企業級開發能力,本身要是一個合格Developer。
2. 數據獲取能力:加工得到DS的數據產品需要各種來源數據,這些數據可能來自於各種不同的地方:flatfile, database, api, etc,有著各種各樣的格式。為了處理這些東西,DS需要掌握相關的知識。
3. 數據加工能力:DS首先要有足夠的理論知識才能夠比較遊刃有餘的加工各種數據,對於處理文字數據你要有NLP的知識,處理圖像數據你要有數字圖像處理的知識,做機器學習應該要有數學和統計學知識。
通常有兩種手段來加工DS的數據:直接使用現成的工具包,或者自己寫程序來實現。然而最終DS都應該有寫程序整合的能力,因為數據加工通常比較複雜分為很多個步驟,為了實現這些步驟的自動化,DS需要將這些步驟整合為數據處理流水線,不能自動化的則的不能稱為「產品」,因為不能有效的利用機器從而無法達到邊際效用遞減的效果。
有了大方向,DS需要修煉相應的內功和招式。
Data scientist首先是科學家。形而上者謂之道,DS應該要有足夠的理論知識作為指導。 做好的DS比做好的Developer更困難,因為需要學習和積累更多的東西,但通常領域知識不容易過時,因此帶來的好處是DS的職業生命力可能會較長一些。
1. 領域科學:DS需要深刻理解他所處的領域,成為這個領域的專家。這就好比不懂生物很難成為一個好的Bioinformatician一樣。不懂領域知識的DS就是搬磚頭的。 這絕不是短期內可以達到的事情,需要大量的閱讀和多年經驗的積累。所以說什麼幾個月就能成好的DS是鬼話。 由此可以得出推論:積累非常重要,數據科學家不應該輕易更換從業領域。
2. 數學:數學應該是DS的專長,在工作中會起到引導方向的作用,我自己個人的理解,DS應該掌握。
3. 線性代數:基礎。
4. 概率論/統計學:猜想大部分DS靠這個混飯。
5. 最優化/運籌:碰到合適的問題這個會有奇效。
6. 計算機科學:雖然說計算機不過是實現idea的工具,但現實中各種軟體工具幾年一變,非常容易過時,為了更容易的理解和掌握它們,萬變不離其宗,應該學習不變的理論的東西。
7. 資料庫理論
8. 算法:幫助DS高效的實現程序。
9. 函數式編程:讓DS脫離接近硬體的思考,設計出更貼近問題領域,更數學化的程序。
10. 機器學習:混飯吃的招牌。
11. NLP/Image processing/etc:這些都是抽象化各種數據,提feature的領域知識。
企業比較喜歡自己能support自己的DS。Developer們通常很忙,溝通這件事情有時候也很麻煩,所以DS最好有單打獨鬥實現idea的能力。從這個角度出發,我認為DS關於數據這塊的知識面要足夠廣,以支持自己單打獨鬥。
1. 作業系統 :DS幹的活很像大學/科研院所裡的Scientist幹的事情;用到的各種開源工具也類似;為了更方便的使用各種開源工具,DS應該選用合適的作業系統,當然這就是Linux。
2. 程序設計語言 :DS不應該局限於某一兩種程序設計語言,否則實現能力就受到了限制。我認為DS應該會以下幾類程序設計語言:
數據操縱語言:SQL, Pig之類
科學計算語言:R / octave / scipy之類
腳本語言:Ruby / Python之類
企業開發語言:Scala / Java之類
除了這些,Lisp非常值得學習。某種程度上說,Lisp甚至可以歸類於內功。 我傾向於使用開源工具,因為這可以免費獲得,學會了就是自己的,不需要給公司帶來額外的支出。
3. 資料庫 :各種SQL/NoSQL的玩意,Hadoop等等。
我的個人經驗是DS很多時候需要單打獨鬥,和developer的集團作戰不太一樣的。 DS在自己的領域要有更高的開發效率,因為很多時候DS需要開發原型或者迅速計算一些東西以便輔助決策。如果自己的地盤上比developer還慢那還成什麼話? DS寫程序的原則是能不寫就不寫,寫了就有可能出bug。所以,儘量使用現成well tested的工具來完成任務。 DS應該會簡化問題抓住重點,解決關鍵的問題,因為單打獨鬥沒有足夠的時間,很難做到面面俱到。
要問職業規劃,這個問題很難,我想很多人都在摸索中前進。 呆在一個地方,也許可以慢慢的升為Senior以及更高,或者轉為Team leader,這是兩條不同的路。 第三條路,有些文章說Data scientist => Product manager,但我不知道我們中國人的英語劣勢會對此有多大影響。 選擇自己創業的DS沒看到多少,是不是因為這個職業本身的性質決定的呢?
總的說來,
Data scientist薪資一般在90,000-100,000USD左右
Airbnb/Facebook可以給到100,000-120,000USD (有些矽谷科技公司甚至給的更高)
四大Data Analyst:剛出大學校門平均75,000-85,000USD,有的可以達到90,000USD
薪資的高低主要受公司、行業、職能等因素影響。
本文整理自網絡,DreambigCareer誠意推薦閱讀,
有任何問題請及時聯繫我們,版權歸原作者所有。
合作請聯繫:partners@dreambigcareer.com
想要求職Data Science相關領域的工作?
可是對此還零準備?
Data Science & Data Analytics專場
期待你的參與
(戳圖了解Data商學院完整詳情)
DS & DA 是什麼?職能有哪些?團隊怎樣協作?
典型的一天/工作內什麼樣?
最吸引人的地方?薪資水平、穩定性、
中國留學生最有競爭力的環節?
如何找相關實習?
面試如何準備?需要哪些軟硬實力/技能?GPA的規定,需要掌握哪些工具,有哪些學習資料/方法的推薦?
大環境下的Data職位會何去何從?
以後如果轉行,還能做些什麼?
現任精算模型師,兼任某大型E-commerce教育平臺大數據講師,負責產品研發、市場模型、統計模型等。
University of Waterloo 統計精算出身
輔導學員拿過的Offer:
KPMG - Advisory Associate
Insurance Bureau of Canada - Data Analyst
Allianz Global Investors - Portfolio Risk Management Intern
Boeing - Summer Intern
……
時間:week of 2.1
地點:DreambigCareer APP
DBC最新上線APP
APP Store選擇【僅iPhone】
搜索【DreambigCareer】下載
國內國外同學都能輕鬆聽講座
除了Data Science和Data Analytics兩場講座以外,還有當下大火的Data Engineering, Business Analytics, Statistics 科普+求職技巧分享期待你的參與!
超級數據分析禮包
1. 統計基礎、Excel等7章數據分析完全教程
如果對數據分析感興趣,這份資料最適合你自學
2. R語言、SQL、Quantmod專項
零基礎視頻教程+課件
如果說數據分析完全教程是公共基礎課
專項教程就是專業課啦~能力提升不二法門
3. 大數據的統計學基礎,13周了解大數據
這是課外素質拓展
以後聊天找工作又有話題侃大山了
4. 11本Data Science書籍
JP Morgan,Blackrock,CapitalOne等公司
真實數據分析Interview Questions
數據分析精選內容
學習那麼多,來場實戰吧!
後臺回復關鍵字【核心】
立刻查看講座報名方式
入群領取本期福利
你還想要什麼福利?
DBC一次滿足你!
點擊文末「閱讀原文」,1分鐘填寫福利問卷
主頁菌立刻為你收集福利!
▼▼▼
往期內容推薦
(點擊圖片進入閱讀)
DBC戰績
本申請季所有Offer展示,有圖有真相
高效備戰
秋招還沒反思,你就敢去春招了?
年度呈現
私募/風投/投行/諮詢等十大領域實習項目來襲
點擊「閱讀原文」告訴我你想要的福利↓↓↓↓