在美找資料科學工作? 從定義你想要的開始!

MeiCheng Shih
UXeastmeetswest
Published in
19 min readApr 6, 2020

在美找資料科學工作系列 (上)

MeiCheng Shih / 圖 Shandy Tsai

(本篇為找工作方向探討,對如何短期準備面試有興趣的朋友可以看中篇:實踐吧!資料科學面試該如何短期衝刺,另外因為資料科學產業變動的迅速,在 2022–05–20 筆者補充了一些對於資料學四大領域最近的觀察)

有興趣做進一步討論的朋友歡迎用 LinkedIn 跟我聯絡!

https://www.linkedin.com/in/meicheng-shih/

文章大綱

  1. 起始,關於資料科學家的一些雜談
  2. 訂定目標,你希望尋找哪種類型的資料科學工作?
    資料科學的四大領域
  3. 如何決定自己想要做什麼,並該如何準備?
    挖掘自己的個性和工作模式
  4. 結語

起始,關於資料科學家的一些雜談

性感的職業

在筆者的認知中,資料科學這個詞第一次出現莫約是2015的冬天。而在彼時,資料科學相關職業已經在美國的工作市場中發熱了一陣子。有許多媒體把這個類別相關的工作稱為“年度最性感的領域” ,可見當時美國企業和人們對於這個領域的癡迷。對社會新鮮人來說,資料科學領域的工作也確實是很有吸引力的,這領域的工作普偏薪資偏高,而且內容多元。只是無法否認,從某些角度去看這個領域的工作,也可能會感覺到這個性感真的就只有皮膚的厚度。

首先,以薪水來說,成為優秀的軟體工程師在大部分狀況下能得到比資料科學從業者(先暫時把和資料科學從業相關的軟體工程師除外) 更優秀的薪水,且一個優秀資料科學從業者養成所需要的時間,平均上是超過於一個優秀軟體工程師的(註一)。因為資料科學有許多養成是必須在學校就完成的,至少對於數學,統計,和機器學習理論的熟悉是很難在一邊工作下一邊學習。這樣一算的話,資料科學家這個職位的CP值(總年薪/準備時間) 就低了。

再來,關於資料科學家工作上的多元性,很多是源自於企業對於他們發展資料科學應用方向的不確定性,或者資料科學人力的吃緊狀態。這會造成混亂與混雜兩種現象。這兩個現象是筆者自己定義的,其中的混亂現象是指,公司在嘗試於不同商業領域應用資料科學的過程中,從業人員被硬是拉往不同方向的過程。混雜則是指因為公司人力的吃緊,一個資料科學從業人員常常必須要身兼數職的狀態。到頭來,如果是到規模一定程度以上,而且分工較為精細的公司時,資料科學從業人員做的事情通常會非常常規化且沒有多元性。另外,也不是每個人都適合多元性的工作,也有不少人是適合目標比較單一但因此投入和產出比較成正比的工作。總之,不管是CP值,混亂與混雜,或是多元對單一,對某些人來說,這都不是會形成魅力的原因。

圖1. 有許多媒體把這個資料科學相關的工作稱為“年度最性感的領域”

資料科學領域還是很有吸引力的!

儘管這樣,資料科學從業對於不少新鮮人來說還是很有吸引力的。

首先,資料科學對於一些科系的學生來說,可是科系傳統工作選擇以外高薪且富有可能性的其他選項。在資料科學領域開始被正式定義並蓬勃以後,純科學和統計相關科系的學生們大量湧入這個工作市場,工學院的學生們也夾雜在其中,然後這兩三年也可以慢慢看到一些有數值分析背景的經濟/心理/行銷/社會學/公共衛生學的人們出沒。

另外一個被吸引的族群則是某些疲倦的博士生們。對於這些對自己一直以來鑽研的領域有些心灰意冷甚至厭煩的博士學生們,資料科學工作無疑是新的可能性。這些博士生們可能利用自己在原領域累積的數值處理分析與建模的經驗,並轉換到一個相似或者完全不相似的領域開始新的職涯生活。筆者也是這個族群的一份子。

沉沒成本是不計入CP值計算的

有趣的是,不管是對於前述的非直接相關專業學生或是博士族群來說,在學校的訓練已經是沉沒成本,基本上可以不計入CP值的計算中。此外對博士族群來說,還有能有轉換跑道去新天地呼吸的誘因。

混亂和混雜代表的可能是機會

然後混亂和混雜也不定是壞事,根據人的特質而異,混亂和混雜也可能是利基。不確定性會帶來管理和職業定位問題,但同時也帶來機會和學習的可能。因此,對於看重機會和可能性的人來說,混亂和混雜反而是他們可以去追求的狀態。再且不管是混亂還是混雜問題,都還是有在這方面比較穩定的公司,不喜歡這點的人也可以選擇去這些公司做資料科學。

資料科學相關與非相關領域

有各種分類定義想要尋找資料科學工作新鮮人的方式,其中一種就是用所謂的 “已經被企業認定為是資料科學相關科系” (純科學與統計,有時候社會科學/自然科學/工學/商學也會因為職務需求被認為相關),和“非相關科系” (不是以上領域,或者想大轉領域的人,例如筆者以工學博士轉商業分析)。被認定為某工作不相關領域的人們,在找工作的過程中就需要多花點心思,從履歷寫法到面試過程,可能都會和相關科系者有些不同。筆者將會在之後文章中,利用自己和朋友找工作的經驗,針對非相關科系對在美國找資料科學家工作的方式做出一些分享。

訂定目標,你希望尋找哪種類型的資料科學工作?

資料科學的四大領域

正如做很多事情的第一步是設定自己的目標一般,找工作的第一步就是決定自己想要找什麼樣的資料科學工作。大部分資料科學的工作是由不同程度的 “商業分析建模與報告” (Business Modeling, Analytics, and Reporting,以下簡稱商業分析),“機器學習工程” (Machine Learning Engineering),“軟體工程” (Software Engineering),與 “資料工程” (Data Engineering) 所組成。這幾個領域互相有一些重疊的部分,但同時又有截然不同的地方。

又因為這樣,所以會產生同一個職稱但工作需求和性質完全不同,或者不同職稱但工作性質十分類似的狀態。先思考自己想要的狀態,會讓你能更針對工作面試的需求去做面試準備的時間分配。這對非相關領域的人們來說非常重要,因為非相關領域人士通常還要多花時間去連結自己原有的技能和資料科學領域的需求,並同時要去學習資料科學領域普遍使用但自己缺乏的技能。因此,非相關領域人士比起相關領域人士更需要去優化自己的學習過程。以下將詳細解說四個領域。

圖2. 資料科學的四大領域

商業分析領域

商業分析大致上是用統計方法或者可解析模式分析資料,好回答和商業相關的問題,例如,如何做市場劃分?如何了解某內容平台的客戶獲得和維繫能力? 在今日工作市場中,偏重這個領域的職位通常都叫做資料科學家 (Data Scientist,有些人則稱這些人為全才資料科學家 Generalist Data Scientist),或者不需要複雜建模技術,但需要更深產業背景知識的資料分析師 (Data Analyst)。另外,本領域從業人員的專案通常和支援營運部門的運作相關,例如建立可用的決策支援系統 (Decision Support Framework),因此這類的工作也時常被視為內部諮詢 (Internal Consulting) 的工作。

2022–05–20 補充:現今資料科學家的稱謂代表了不少可能性,例如有偏資料分析和產品,比較少處理進階模型的產品資料科學家 (Data Scientist, Product),決策科學家 (Data Scientist, Decision),分析科學家 (Data Scientist, Analytics) 之類的,也有需要負責一個案子端到端 (end to end) 的應用科學家 (Applied Scientist) ,或者研究資料科學家 (Research Data Scientist) ,然後 (Research Scientist) 也常見於針對某些專門領域做學術研究的職缺,可以說是在企業中的研究職位。原本資料科學家的職稱也還是很常見,但此處想強調的是依照職缺的需求,真正負責的職務可能會有很大的差異,因此好好的閱讀,並必要時和人資或者雇用主管確認該職務的性質是非常重要的。

圖3. 資料科學領域ㄧ:商業分析

機器學習領域

機器學習工程這個詞最近幾乎成為深度學習相關工作的代名詞,因此在這領域中,大部分工作也都是深度學習相關的應用。最常見的有影像處理,音訊處理,或自然語言處理,而自駕車也是一個當今當紅的領域。這種工作相關的職稱通常會是機器學習工程師或者科學家 (Machine Learning Engineer/ Scientist)。

2022–05–20 補充: 最近機器學習工程師這個位子的需求有改變,通常要求具有設計資料科學系統(例如推薦系統,預測平台,線上測試平台等等)和寫出成品(production)等級程式碼的需求,性質已經往軟體工程方向傾斜,而專門做深度學習相關應用研發和應用的位子則通常稱為研究科學家(Research Scientist) ,一部分應用科學家(Applied Scientist)的位子其實也會做不少深度學習相關的研發。

圖4. 資料科學領域二:機器學習

軟體工程領域

軟體工程就是軟體工程,以資料科學相關的軟體工程專案來說,最常見的是兩種類型。一是負責將原型 (Prototype) 變成產品 (Product) 或者封包 (Package),這種比較接近後端 (Back End) 的工作,而有時候則負責建立資料視覺化的介面 (Interface),比較接近前端 (Front End) 的工作。而這種工作就叫做軟體工程師,只是有時候會加上一個資料科學的附註 (例如 Software Engineering- Data Science)。

2022–05–20補充:不少公司現在都把機器學習工程師作為軟體工程師的一個方向,所以會看到軟體開發工程師-機器學習 (Software Development Engineer-Machine Learning) 之類的職缺。

2023–01–16補充:筆者最近意識到支援資料科學組的軟體工程師有時候技能是需要特化的,所以越來越常看到某些軟體工程師的缺後面或職務說明中有強調需要支援資料科學組/資料流相關的知識和經驗。

圖5. 資料科學領域三:軟體工程

資料工程領域

資料工程則是負責建立資料庫,資料管道 (Data Pipeline),或者將資料結構化。職稱通常會叫資料工程師 (Data Engineer)。 軟體和資料工程的工作有時候是沒有分界的,也就是一人身兼二職的狀態,而在有分界的狀況下,也時常看到資料工程師處理前端工作,或者軟體工程師負責將資料結構化。因此將這兩個領域視為同領域也是可以的。

2022–05–20補充:現在資料工程師分化出了商業智能工程師 (Business Intelligence Engineer) 和傳統資料工程師的差異。資料工程師需要設計資料庫的基本架構,最佳化設計資料庫存取效率,和收集資料的管道的建立。而商業智能工程師則是根據建立好的資料庫去提取商業端需求的資料,並做成報表給商業端使用。但其實真正的分界依照職缺還是有各種混合的可能性。

圖6. 資料科學領域四:資料工程

另外一種差異

附帶一提,機器學習/資料工程師和資料科學家又可以用另外一種方式區分,也就是接觸的資料種類。通常機器學習/資料工程師需要處理比較多的非結構式資料 (Unstructured Data),這是影像音訊或者文章這些資料的特性。而資料科學家則相對來說會接觸比較多結構式資料 (Structured Data)。最常見的狀況是,資料科學家應用機器學習/資料工程師處理好的資料來進行建模或分析,因此在許多場合,機器學習/資料工程師也可以被視為資料科學家的上游。

其實還有其他的相關領域…

除了這四個領域以外,其實有時候一些次領域也會被包含近來討論,例如作業研究分析師/科學家 (Operations Research Analyst/ Scientist),程序/產品/專案經理 (program/product/project manager),或是使用者介面研究員(UX/UI Researcher),甚至業務員性質的資料科學家 (Data Scientist- Customer Facing)。但筆者傾向於將這些領域視為資料科學核心領域的相關或延伸領域,因此就不在這裡多做探討。

一個職位落點的決定

大部分的資料科學工作都是落在這四個象限聯集的某個點中,而落下的位置則是由該職缺的直屬經理 (Hiring Manager) 的想法,公司裡面資料科學相關組別的特化程度,和資料科學組別的組織架構所決定。

在這些因素裡面,直屬經理 (Hiring Manager)的想法佔了絕大比例,他們將決定該職位是如何由四個象限組成,並且同時決定該職位是否是一個專長特化的職位,例如某些職位就是要有在業界做時間序列分析 (Time Series Analysis) 的經驗,有些職位則專職AB Test, 或者因果分析 (Causal Inference)。

公司裡面資料科學相關組別的特化程度會影響職位在四個象限中的混雜程度,因為若是一個組裡面沒有特化出專職的資料科學家,資料工程師,或者軟體工程師的話,很可能該組裡面的工作就是要身兼數種象限的工作。不過狀態正在日漸減少中,就筆者自己待過的公司們,或者是在面試中取得的資訊來看,大部分的公司不管大小,都已經特化出相對這四個象限的工作職位。而且,就算是對資料科學相關人員相對數量很少的公司來說,除非在死線很緊的狀態下,不然通常是不需要一個人身兼數職的。

最後就是資料科學組別的組織架構,現今有少數大型公司有專門的資料科學部門 (Department),但也不少公司是附屬在各種傳統部門下。這也是一個判斷工作性質的依據。舉例來說,依附在行銷 (Marketing) 部門下面的很可能就是資料科學家職位。

2023–01–16補充:以筆者的經驗來說,通常有一個或數個獨立資料科學部門公司的職缺會是比較好的機會,因為在這些公司你的老闆或老闆的老闆有非常大機率式資料科學專業人員,很多概念和溝通上會比較順暢,學習成長機會也會比較多。

判讀落點的其他方式

不管決定職位性質的過程為何,該職位的直屬經理都是了解該職位定位的。因此對面試者來說,在面試時後直接向直屬經理提出相關問題是最佳理解該職位定位的方式,而這也是筆者在面試時必問直屬經理的問題類型,例如這個工作會不會用到深度學習?此外,某些職位的描述和面試的過程會透露該職位的落點,一個資料科學家職位若在面試的過程中要求你在白板上寫出某種排序演算法 (Sorting Algorithm) 的虛擬碼 (pseudocode) ,那你就要有這職位需要做大量的軟體工程任務的心理準備。

如何決定自己想要做什麼,並該如何準備?

這會是私房經驗的分享!

網路上其實已經有很多的資源和想法,可以幫助新鮮人做決定。筆者這裡則是點出一些比較少看到有人分享,但筆者自己覺得很重要的點。

決定要怎樣的工作得第一步,是先回去挖掘自己的個性和工作模式,而且可以試著回答下三個問題,自己是否有特別有興趣的產業,部門,或/與技術?自己喜歡與人溝通協調還是獨立作業?喜歡較單一的還是較多元的作業型態?

產業,部門,技術

對不少轉領域的人來說,心中可能都有一個去另外某個領域工作的夢。筆者自己就一直嚮往時尚或媒體產業,並在這些產業裡面商業分析相關的組工作。此外,筆者在工作以後,發現自己對於因果分析和時間序列分析的技術有較高的興趣。綜合以上所說,筆者所尋找的可以說是特化專長的資料科學家,這種職位大致上是由高比例資料科學家,與低比例的機器學習科學家的混合。也就是在解決事情時,傾向於使用可解析的模式來做決策推論,但有時輔以深度學習來加深分析的精度。

若是大量閱讀自己有興趣的工作的說明 (Job Description) ,並時常和有經驗的資料科學從業者討論,就可以更加精準的掌握自己適合的混合,進而找到最適合自己的那條路。

2023–10–25補充:在三年半從事媒體/娛樂產業,並從其他朋友那裡理解到時尚業的經驗以後,筆者非常建議大家不要到這些產業工作,除非很清楚自己非常非常喜歡這些事物。這兩個產業在華麗有趣的外表下,本質上都是傳統產業,並沒有這麼習慣用數字做決策的美國科技業模式。例如時尚業的資料分析,其實跟傳統零售業並沒有什麼分別。

圖7. 找工作的方向可以依據自己對產業、部門與技術的喜好

獨立作業 VS 協調溝通

你是傾向於花大部分工作時間自己努力完成某項東西,還是比較喜歡花時間和人溝通討論?這裡指的不是一個人的表達和溝通能力,因為任何求職者都應該要具備有良好的表達和溝通能力。這個指的是要去看自己喜歡哪種方式?

筆者以為最簡單的方法就是在某個公認好用的人格特性分析中,看看自己在內向到外向光譜中的落點,例如筆者自己的落點就是在大致在內外向中間。筆者嘗試想成為需要特化專長資料科學家的另外一個原因是,因為這個位子在獨立作業與協調溝通的時間上是比較平衡的。領外,內向的人可能也可以考慮轉職成全職的軟體工程師,因為資料科學領域通常和非技術人員的溝通是非常大量的,對內向的人來說可能會造成不小的負擔。

然後,在做這個思考時盡量不要依靠過去的經驗。就筆者的感覺,台灣長大的學生在教育訓練的過程中通常缺乏練習表達溝通的機會,再加上在美國又要使用非母語的英文,這使得表達溝通成為大部分人的燙手山芋,又加上人很容易會對自己不擅長的東西感到不舒服。這兩件事同時作用時,就會產生自我的誤導的可能。也就是,因為自己不擅長,而誤以為自己是不喜歡溝通協調的 (同樣的道理,這錯誤也可能發生在某人判別自己是否喜歡某技術領域時,因為自己擅長,所以以為自己喜歡)。然而,溝通技術和英文表達是可訓練的,或許用較中立的評量來幫你決定,反而會讓你打開一篇新的天地。

圖8. 你喜歡/適合獨立作業 VS 協調溝通?

喜歡較單一還是較多元的作業型態?

單一作業型態聽起來好像比較無聊,而且和資料科學領域的多元性起衝突,然而這型態本身是非常有優點的。因為單一作業型態的工作通常產出較為線性,也就是你花多少時間就會有多少收穫,並且這些產出通常是能夠很具體衡量的。最好的例子就是程式工程師的ticket,工程師可以依照他們 ticket 完成的數量和難度而被評價。這種線性產出得好處是,努力程度和工作調薪,獎金和升職是相對下較能掌控的。有一部分的機器學習工程師也會擁有類似的工作型態。

另外一方面,多元作業型態聽起來很酷,而且是資料科學工作吸引人的一個原因。你今天玩玩這個,明天弄弄那個。但多元性較強的工作通常都不是有投入時間就會有相對報酬的。在過去,筆者自己曾經花了很多時間在數個小專案裡面嘗試用不同的數學模式解答同一個商業問題,但最後全部都失敗告終。而這可能也是R&D 相關職位的宿命,努力和產出不一定成正比。另外對多元作業型態工作者來說,找出一個方法能將所有東西串再一起,並讓別人理解自己在做什麼也是一個巨大的挑戰。

至於衡量自己適合哪種的方式,也希望可以用人格特性分析,若是你是偏開放,感受,展望,直覺類型的話,感覺較適合多元作業型態(資料科學家/偏分析的機器學習工程師)。而若是你是光譜的另外一邊,或許較單一作業型態的工作 (偏技術的機器學習工程師/資料/軟體工程師) 會比較適合你。筆者也因為自己的個性特質,選擇了偏商業分析的職務。

圖9. 喜歡較單一還是較多元的作業型態?

2023–01–16補充:

雖然很現實,但足夠的錢會是讓人在長長的職涯中持續可以有動力的一大主因,而且至少以北美市場來說,能給起好的薪水的公司同事和管理層素質通常也比較好,學習機會也比較多。所以有選擇的狀態下的話,還是到薪水比較好的公司會比較好。

結語

這篇文章筆者分享了自己身為職涯菜鳥在美國資料科學界找工作的經驗,其中包含了一些關於美國資料科學領域的淺見,四種不同領域的定義,找尋自己適合領域的辦法等等,並在中間穿插一些例子。而以上分享若是能有幸能讓讀者你閱讀到此文章的尾聲的話,我還有兩件事想和你分享。

第一點就是,以上所有提到的都只是筆者對於整理自己經驗的嘗試。而這個嘗試的目的,只是為讓我自己重新咀嚼過去經驗並再學習,因此以上所提到的所有事情都只是筆者自己的觀點,而不是事實。除此之外,最適合每個人自己的觀點,還是只得由你自己來尋找並思考。第二點,選擇類型目的終究是為了面試準備時間分配的最佳化,例如你如果沒有興趣做軟體工程相關的職務,就不要刷電腦科學演算法題庫了!但這一切,都不代表你只需要針對有興趣的工作投而不是海投。身為一個社會新鮮人,你可能不知道自己對什麼有興趣,而又會有怎樣的公司會對你有興趣。在這個狀態下,海投是增加你面試次數最好的方式。任何你拿到的人資面試 (HR screening interview ),技術面試(technical interview),經理面試 (hiring manager interview)或些最終階段面試 (onsite interview),都會是讓你從經驗一片空白的狀態中快速成長的關鍵。

之後的筆者將會用兩篇的長度,來分享筆者自己思考體會過,關於資料科學菜鳥可以用來累積自己實力的一些方式。其中一篇會先介紹可以在較短的時間內學習並應用的,包含履歷準備和面試技巧,而另外一篇則會介紹長期可以用來累積知識與技能厚度的一些想法。然後,若是對筆者的觀點有什麼想法的,也歡迎留言討論!

註一:成為優秀資料科學家所需要的硬知識:數學,統計,機器學習,和數值分析知識普遍來說都需要長時間的集中學習,因此有很大部分的資料科學家都有碩博士學歷

註二:最有名的人格測試有16型人格測試,或者10項人格量表之類的。其中16 型人格測試其實被許多學者覺得是譁眾取寵 (見 “Me, Myself, AND US 探索人格真實,看見更真實的自己” 一書),但筆者以為在我提的應用中,人格測試只是被視為一種快篩的工具,所以使用16型人格並不會有太大的問題

--

--