留學隨筆 — 北美數據科學實習心得

2020暑期工讀生

Daniel
Jan 4, 2021

遙想當年 (2019) 在找2020 DS Summer Internship時,清一色的分享文圍繞在軟體工程師,較少數據科學相關的。當時的我,多麽希望可以找到這麼一篇相關文章當作參考,讓自己在實習之前多一些準備、實習過程中少走一些彎路、實習結束後少一些後悔,這就是撰寫本篇的初衷。除此之外,本篇還會介紹一些fun facts,諸如實習生總人數、實習生福利、組內怎麼招人…等等。當然拉,數據科學實習在不同公司的職責可能不同,此篇不適用所有公司,僅供參考參考,或是當作輕鬆讀物也好。

本文共分為四段:實習計畫介紹、組織架構、實習工作內容、一些感想和反思。

實習計畫介紹

公司於2020暑假共招募了107位實習生,其中88位為軟體工程師,5位是數據科學,5位數據分析,3位資安,5位MBA,1位UX/UI,被分配到不同部門做不同事情。由此可見,軟體工程師的需求還是比較大的,而且大很多!

實習計畫原本預定為12週,因為疫情的關係減少為10週且改成遠距工作,很多的福利也因此都被砍了,像是住宿補助、交通補助、薪水比往年少,401K (可以想成台灣的勞保) 也沒了,不過我已經心滿意足了!公司受盡疫情摧殘,股價也被腰斬一半,竟然還有餘裕繼續舉辦實習計畫,不像有些公司臨時取消。假設福利都沒被砍的話,一名北美數據科學實習生的福利大約是:9600 USD/month + 675 USD 交通補助 + 401K (等於每月多領9600*3%) + 住宿。

還有一點有趣的是,公司有成立專門的campus team來舉辦實習計畫,真的很用心。每週campus team都會舉行活動,像是實習生們線上一起做瑜伽、玩小遊戲拿獎品、跟公司裡的大頭對談、找外部的導演或書籍作者談話…等等,這些是以前在台灣實習時沒有過的體驗。

組織架構

有了這次實習經驗後,我覺得身為一名數據科學家,了解公司的組織架構,或至少了解組織架構中跟自己相關的一些組織是多麽重要的事,因為這直接或間接決定了自己的工作內容 (等等會有實例說明),甚至是決定自己被裁員的機率有多大。組織架構相關的話題也是面試時當面試官問你有沒有什麼問題時,很值得被討論的。

我司是一個巨大的集團,旗下有各種品牌,組織架構極為複雜。假設把公司組織架構想像成一顆樹的話,我在實習期間所待的team只是其中一片葉子。在此我只討論我所待的team,以及其周遭的樹枝及葉子。我所待的team叫做Fraud DS team,由7位Data Scientists組成,簡而言之,就是研究&建立各種模型,去幫助旗下不同品牌抓出和阻擋一些詐騙行為。舉例而言,某一品牌為短期租屋網站,常常有詐騙者在我們網站上刊登一些根本不存在的房源,騙取其他使用者訂購並且付款,這些被騙的付款是算在我司頭上,每年都有好幾十億的損失。我所待的team身負重任,各品牌的防詐騙措施都仰賴這個team,而且team的KPI就是很直接地算每一季度幫忙減少多少的詐騙。要知道Data Scientist的工作成就往往是非常難量化的,這team某種程度上來說對Data Scientist來說簡直是天堂。猶記得三月時我司經歷了一波大裁員,我在六月加入team時還偷偷問了同事有沒有什麼腥風血雨的故事,沒想到我team安然無恙,反而持續擴編; 隔隔隔壁做marketing相關的Data Scientists就不是這麼一回事了 (裁員總是先裁這種奢侈的職缺QQ)。

乍看之下好像很棒棒,但是 (凡事總有個但是)…這個team非常依賴其他的teams。剛剛提到的建立模型即時去防止詐騙發生,這背後包括了模型的部署,需要仰賴一個全是軟體工程師的team來幫忙; 也包含了如何定義與標註 (labels for training dataset) 哪些使用者行為是詐騙,這需要一些各種品牌的operation teams的幫忙; 還有一些其他沒提到的teams。簡言之,就是要開一堆的會議跟各種teams討論合作,處理很多很多的瑣事,有時甚至整天都在開會。一週中大約只有30%的時間在寫程式&研究模型吧。

實習工作內容

實習生的工作就是在八週內完成一個project,而我被分派到的任務是幫助某品牌建立一個spam detection model。細節就不多說了,大致上只要能寫Python, SQL, 懂簡單的ML就可以做。難的點主要在於剛剛提到的…各種會議各種溝通 (我原以為跟印度人開會是最可怕的事,直到遇到了一些東歐的同事們…),且常常進度卡在需要某個team幫忙才能繼續時,還需要催人。要是時間能重來,我希望在實習之前把英文練得更好使溝通上更少障礙,也學習更圓融地催人(?)

這個team有個很酷的地方是工作內容非常project導向。每兩週有一個sprint,各組員報告接下來這兩週要做什麼project; 每週有一個stand up meeting,報告過去一週做了啥事&接下來一週要做啥。至於要做什麼project其實滿自由的,組員可以自己提,或是由team裡的老大指派,越能提出很有貢獻的project就越有機會升等拉。

另外有一點很特別的是,幾乎每一位同事都會配一個mentor,然後每週都會有時間跟mentor一對一交流,聊聊工作上有沒有遇到困難、職涯規劃。這點在台灣比較少見,但在北美職場上似乎滿流行的,也滿被重視的。mentor也是幫助實習生拿return offer的最關鍵人物。要是時間能重來,我會更把握那些和mentor交流的時光。我在實習過程犯了一個很嚴重的錯誤:過於在意最終project的成果,而放太少心思在跟mentor交流。雖然最終project的成果是好的,但mentor在最後評語時說我的溝通不足…

一些感想和反思

感謝看到這邊的朋友!想必你可能對數據科學很有興趣,或正在這條路上前進。這是條不容易的道路QQ 如果有人在猶豫要當軟體工程師 (Software Engineer) 或是數據科學家 (Data Scientist),以穩定留在北美工作的角度來說,我會推薦當軟體工程師,而非數據科學家。理由如下:

1, 機會較少:從公司招實習生來看,軟體工程師還是佔大多數,其他大公司也差不多這樣。從公司招畢業生的角度來看也是這樣。
2, 新手掰掰:常常看到數據科學家相關的職缺都要求三年或五年以上工作經驗。
3, 競爭激烈:以我待的team來說,同事都是PhD畢業,而且背景很多元,有物理、經濟、心理…等等。跟本科系畢業的就競爭不完了,還要跟一堆的PhD比…
4, 僧多粥少:我team在七月中開出一個缺,一週內收到了七百多封履歷…(順便分享下我team是怎麼決定先抓誰來面試,假設申請者學經歷都差不多:公司內申請轉部門的優先 -> 內推的 -> 居住在公司附近的申請者 -> 海投的)
5, 面試很雜:如同前面說的,數據科學在各公司的職責不盡相同,也因此在準備面試時常常要準備地很廣。有的公司愛考實驗設計、統計檢定; 有的愛考刁鑽的SQL; 有的愛考機器學習。

看到這邊是不是想退縮了,如果你跟我一樣,還傻傻地堅持,哈哈哈歡迎來當朋友。最後最後,我想說的是,如何有效地和同事、老闆溝通合作 (communication skills)對於數據科學家是非常重要的技能,也是很容易被輕忽的軟實力。聽起來好像有點籠統,不過大概意思就是對自己正在做的事情的目標有正確的認知,然後必要時跟一起合作的同事&老闆&利益關係人sync,確保大家正在該目標上有效前進。最後送上同事給當時剛實習的我的一段金玉良言:

--

--