【我們為什麼挑選這篇文章】隨著對資料的爆炸性成長,衍生出新興的職稱「資料科學家」,不同職位間的分工也日趨精細,也常讓人搞不清楚這些職位到底有什麼差別。本文便以精簡扼要的方式介紹資料科學家、資料工程師和軟體工程師三個職位的異同。(責任編輯:曾宜婷)
大家都知道,這三種角色各有不同定位,也知道他們之間有許多一致的地方,但是否能講明白這其中的區別呢?
國外 ETL 服務商 Stitch 的 CEO Jake Stein,近日對這個話題進行了總結。他還繪製了一張工具圖,來呈現他們在日常工具使用上的不同。對於新手,也可以通過這張圖來看典型的「資料科學家」、「資料工程師」和「軟體工程師」都要掌握哪些工具。
Jake Stein:隨著資料的爆炸式增長,對資料處理的專家技能需求也隨之井噴。這帶來的結果之一,是更精細的分工。對於資料管理工作的核心角色:資料科學家、資料工程師和軟體工程師,過去幾年見證了他們越來越清晰的定位。
對於新興職位「資料工程師」,它算是「軟體工程師」下面新浮現出的一個子類別。單列出該職位是一項英美近年來的趨勢。但在許多公司,遷移、管理資料仍舊是軟體工程師的活。
職能概括
軟體工程師
軟體工程師幹的活兒是開發應用和系統。這過程中的每一個環節,從設計、寫代碼、測試到檢查,開發者都要參與。生成資料的產品都是他們開發的。軟體工程是三個角色中最古老的一個,並且有相當成熟的方法體系和工具庫。
工作內容包括:
- 前端、後端開發
- 網頁應用
- 移動應用
- 作業系統開發
- 軟體設計
數據工程師
資料工程師需要開發能對資料進行整合、存儲和提取的系統,並從軟體工程師開發的應用和系統中獲取資料。資料工程的誕生,是作為軟體工程大類下的一個更細分的技能類別。據雷鋒網(公眾號:雷鋒網)瞭解,根據國外統計,40% 的資料工程師原本是軟體工程師。雷鋒網獲知,這是目前一個很普遍的職業發展道路(軟體工程師專注做資料工程)。
工作內容包括:
- 高級資料結構
- 分散式運算
- 併發程式設計
- 使用 Hadoop, Spark, Kafka, Hive 等新工具
- 開發ETL/資料流水線(data pipelines)
資料科學家
資料科學家的職責是基於資料作分析。
或許有一隻想要更好理解消費者行為的團隊,僅僅做一個單次分析。也可能是開發一個機器學習演算法,然後將之在軟體工程師和資料工程師開發的代碼基礎上執行。
工作內容包括:
- 數據建模
- 機器學習
- 演算法
- 商業智慧的 dashboards
這些角色定位仍在進化之中。有些大公司從軟體工程團隊中拉出資料工程師,組建一支中央資料團隊。這樣,基礎設施和資料分析工作能在一起。雷鋒網獲知,有些案例中,資料科學家既需要做資料分析,也需要做資料整合。
(本文經合作夥伴雷鋒網授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為〈一張圖看懂資料科學家、資料工程師和軟體工程師之間的區別〉。Flickr CC Licensed)
延伸閱讀
【台大洪士灝】寫程式還不夠!成為「傑出」軟體工程師需要六項能力
Google 員工現身解惑:想成為 Google 軟體工程師,你需要準備什麼?
如何成為好的資料學家?亞馬遜資料科學家的四個建議:把課本丟了,去實做