作者judykeystsai (judy)
看板Oversea_Job
标题[北美] 美国PhD转Data Scientist求职心得(一)
时间Thu Nov 22 05:28:26 2018
Data Science领域现在在美国很红,但感觉非相关科系的new grad求职还是很不容易,
去年秋季我开始在这个领域寻找机会,一直到最近终於拿到一份理想的offer,一路上
虽然辛苦但受到很多人的帮助,所以想将我的经验记录成四篇文章分享给大家,里头
分别会谈到:
一、我的背景及转职准备过程
二、介绍Insight Data Science Program
三、Data Scientist面试经验分享
四、Offer negotiation心得分享
这一系列的文章可能比较适合非CS/DS背景出身转DS或是其他在Analytics/BI roles的人
参考,也希望能够藉此帮助跟鼓励到还在这条路上努力的人 :)
◎背景:
BS in Atmospheric Science at NTU
PhD in Meteorology and Atmospheric Science at Penn State
我的学历比较像是所谓的冷门理工科系,也不像CS/Stats/ITS跟Data Scienc有比较直接
相关,我的博班研究跟DS几乎没有关系,顶多就是用multiple linear regression看看
海温对区域气候变迁的影响这部分可以算是沾得上边。然後大概知道PCA是什麽但也没有
实际运用在我的研究上。
相关的背景知识也蛮缺乏的,所以一开始真的找DS的工作很不顺利。
在Coding方面,当时我完全不会Python、SQL或一般业界常用的语言。而且在2017秋天以
前我几乎不太知道Machine Learning( ML)是什麽,一些ML算法 像是logistic
regression、各种tree-based models、clustering techniques、SVM、neural net等等
是听都没听过。CS相关课程像是资料结构、演算法等等都是零基础。统计知识也很一般,
至於business/product sense也完全没有。
不过在博班时因为有在Linux Cluster上跑气候变迁的模拟与分析,这部分在对於一开始
的上手应该算有些许帮助。
◎转职历程概述:
为了踏入Data Science领域我花了些时间自学Python。因为念大气科学的人多少有过用其
他语言写script分析数据的经验,只要花时间学一下语法的话,单就入门不会太困难。在
熟悉语法後,我尝试将一部分的博班研究工作「翻译」成Python,然後学着用jupyter
notebook将一部分的程式码以及视觉化的成果放在我新建立的GitHub上当个小作品。
建议有心学Python的人也可以试试这个方法,因为这可以把你用Python分析的结果跟用别
的语言分析的结果做相互的对照,过程会比较好follow,也可以慢慢练习coding的能力。
比较熟悉Python後,我开始学习scikit-learn跟其他做资料分析时会用到的工具,例如
pandas、matplotlib、seaborn等等,偶尔逛逛Kaggle去观摩别人的kernels来学习做
ML project 的思维。不过我只有跟着做过两三个很简单的projects熟悉一下,後来就荒
废了,因为发现自己需要补强更多ML相关的背景知识,而且我不喜欢在我不知道这个
model在干嘛的情况下直接调用,预测结果出来也不知道要怎麽interpret。於是开始断断
续续上网看各种Data Science相关的教学影片。
2017夏天时听朋友提起她参加Insight Data Science Program的经验,觉得好像可以试试
,所以随手申请了2018一月的session,没想到竟然最後被accept(不是炫耀文XD),於
是有点误打误撞开启了要认真踏入Data Science career的旅程。我其实本来在参加
Insight之前一直有点排斥,会质疑自己花两个多月是否值得?是否会学到东西?是否最
後真的能找到Data Scientist的工作?然後很害怕自己做不出data product。但现在回头
看这些担心都是多余的,因为Insight带给我的价值完全超乎我的想像。
我在Insight做的project在往後每一个面试都是个很棒的selling point,然後Insight的
network非常强大,在我自己找工作的过程中真的对我帮助很多。即便我在参加完之後并
没有马上找到工作,而且最後的offer也不是透过Insight拿到的,但我真心觉得能够参加
Insight绝对是我人生中最重要且最棒的决定之一!诚心推荐给大家,详情我会另写一篇
Insight心得文跟大家分享。如果无法参加这个program也没关系,我也会在那篇文章中
分享参加的过程与准备,如果可以试着follow他们的workflow应该也会对你有一些帮助。
今年三月初参加完Insight後,三月中旬就重回学校做研究写论文准备毕业,中间陆续有
跟几家Insight refer的公司面试,然後大概到4月中差不多都挂光了XD。不过即使
program结束之後Insight还是一直会po职缺以及介绍想听我们demo的公司,所以多少还是
有一些机会。
但在4月後我就没有积极找工作面试了,主要在准备论文口试跟忙其他事情,真正又开始
比较认真投工作跟面试是在六月中後,但此时又要准备收拾搬家,所以其实也没能全心全
意在找工作跟准备面试。
九月初搬到芝加哥附近後有开始比较积极找工作。基於个人因素,我只想找芝加哥附近的
工作,且我又只偏好某几种方向的Data Scientist,所以在诸多限制下其实要找到一个
很fit的职缺真的是困难重重。有几次真的很想放弃,不过後来很幸运能同时拿到两家
Data Scientist的offer,一家是毕业前一直想去的产物保险公司,业务还满广的,而且
是涵盖我最有兴趣的气候╱农业相关的保险。另外一家是Slice,後来被Rakuten买下,
现在改名叫Rakuten Intelligence,主要做online shopping market research。
虽然除了自己喜欢网购以外,对这个产业了解并不多。但最後还是决定去Rakuten试试看
,原因是Slice的所有条件几乎都狂胜另一家保险公司(体会到有多个offer的好处)
,而且manager跟teammates感觉都很不错。
另外,我在决定选哪个offer之前,还利用Insight的network去跟之前在Slice待过的
Insight fellow稍微聊过(再次感到Insight network的强大XD),觉得各方面感觉都很
好,才做了决定。
◎Data Science准备过程与学习资源:
其实现在回去检视整个找DS工作的过程,我觉得自己起步有点太晚,在DS相关背景知识还
不够强就去参加Insight,所以参加program的过程会有一点辛苦,虽然之後在跟Insight
合作公司的面试时候有渐入佳境,但还是没能够透过这个管道拿到offer。但如今能拿到
这两个很棒的offer,也是基於之前参加Insight以及过去面试失败的经验,所以不论面试
成功与否,如果能够从这些经验里学习并一步步改进,过去的失败其实是很珍贵的,面试
详情我会在第三篇文章分享。
接下来想跟大家分享一些Data Science相关的学习资源(我都是用免费的option,也没有
做作业)。面试Data Scientist需要准备的项目真的太广了,其深度也会根据职缺要求
而异,不过总体来说可分为六大部分:
一、 SQL
(1) Codecademy
SQL语法:
https://www.codecademy.com/learn/learn-sql
SQL练习:
https://www.codecademy.com/learn/sql-table-transformation
SQL应用:
https://www.codecademy.com/learn/sql-analyzing-business-metrics
我的SQL一开始就在这边学的,个人比较喜欢介面是interactive 的方式。不过我个人不
是很喜欢SQL,比较偏好Python的pandas。所以没有很认真地持续练习SQL,且我会尽量
避免需要写超级advanced SQL query的工作,而我自己的面试从来没有被考过需要当场
写SQL,但有被问过说SQL会什麽command。
(2) SQL zoo
https://sqlzoo.net/
还不错的练习,我无聊的时候会拿来refresh一下。不会SQL的人也可以从这个网站下手。
(3) Hakerrank
https://www.hackerrank.com/domains/sql
也是还不错的练习,但是我只做到medium而已,因为真的不太擅长刷题。
二、CS Fundamentals
这个我真的不会,版上SWE分享文很多,就不在这野人献曝了。
Insight有推荐这个网站好像不错:
http://interactivepython.org/runestone/static/pythonds/index.html
另外Cracking the Coding Interview那本书听说也很有用,刷题的话就Leetcode跟
Hackerrank。但因为我没学过资料结构跟演算法,所以只写了不到10个easy题就放弃了。
如果想学Python,我推荐Codecademy的课程:
https://www.codecademy.com/learn/learn-python。
这也也是interactive的介面,我的Python就是在那边学的。之後的学习方式就是不断
的Google跟Stack Overflow。
三、ML知识
(1) Machine Learning Foundations(机器学习基石)by 林轩田教授
(2) Machine Learning Techniques (机器学习技法)by 林轩田教授
我的ML学习之路是从这里开始,影片在YouTube跟Coursera都有。满喜欢看林轩田教授的
教学影片,因为觉得有些冷笑话很好笑XD。当初不想给自己太大压力,怕自己无法坚持
看完所有影片,所以没有很认真地逼自己拿纸笔一步步follow课程,我是以比较轻松的心
态在学,有点像看影集那样一天看一小时,最後不知不觉地把所有的影片都看完(不推荐
这样的学习法XD),并且开始对ML有点概念。不过这堂课还是满多数学符号,且需要
线性代数、微积分跟矩阵运算的概念,这些基础比较弱的人可能要注意一下。
(3) Machine Learning course by Andrew Ng
这门课在美国Data Science领域很有名,我自己没上过,但听说是不错的ML入门课程。
(4) Applied Machine Learning in Python by Kevyn Collins-Thompson (Coursera)
我觉得算是不错的入门课程,不过我自己是自学一段时间後才看这门课,所以觉得满简单
的。这门课跟林教授的课比起来简单很多,比较少数学证明推导,但ML概念涵盖还算广,
整体来说偏应用,有许多使用Python实作ML的简单例子,可大略地提供做
ML project pipeline的观念,例如不同ML models选择、data前置处理、evaluate
results等等。
四、Stats
统计相较於其他方向来说算是我比较熟悉的一个领域,不过在准备面试的过程中还是找
了一些线上资源来复习跟学习。根据我的面试经验大部分会问一些regression、
correlation、statistical inference相关的问题。介绍几个不错的学习平台:
(1) Khan Academy
https://www.khanacademy.org
里面的Statistics and probability部分很多人有推荐,但我没有全部看完,里面很多部
分可以挑着看。
(2) Statquest by Josh Starmer (大推!)
他是一位UNC-Chapel Hill Genetics系的教授,录了很多统计以及ML相关的教学短片。
他的影片对我的面试准备帮助非常大!真的超级感谢他!他很擅长把很复杂的观念或
ML模式用很浅显的方式解释清楚,这点不论是在观念的理解上,以及在面试时能清楚
回答统计或ML相关问题都非常有帮助。
我的经验是在communication skills在Data Scientist面试的时候是非常重要的一部份,
如果能够将较深的统计/ML观念解释清楚绝对是大为加分的。我几乎在每个tech screen
前都会再重看几个比较重要的影片。而且他的影片都不长,不会造成太大的心理学习压力
(点开影片的活化能较低XD),真的是非常棒的资源!
这是他的YouTube频道:
https://www.youtube.com/channel/UCtYLUTtgS3k1Fg4y5tAhLbw
所有教学影片的分类细项:
https://statquest.org/video-index/
(3) Intro to Inferential Statistics by Udacity
https://www.udacity.com/course/intro-to-inferential-statistics--ud201
这门课对重新复习Inferential Statistics还满有帮助的,这部分的课程算是A/B
Testing跟product面试的基础。
五、Business Case Studies
由於我从来没有在业界工作的经验,所以真的非常没有business/product sense。
我只能谈谈我是如何慢慢学习的:
(1) A/B Testing by Udacity
https://www.udacity.com/course/ab-testing--ud257
这门课很多人推荐,我一开始上的时候常常需要反反覆覆看,不是很习惯他们谈话性的
教法,不过算是对A/B Test有初步的了解。建议有Inferential Statistics的概念後再上
比较好。
(2) Lean Analytics: Use Data to Build a Better Startup Faster
http://leananalyticsbook.com/
这本书是Insight推荐的,Insight要我们去onsite前一定要看。但我来不及看完所以只有
看个大概。我觉得是培养以data的角度对business的了解还不错的入门书。
如果没有时间看这本书,满推荐看作者(Alistair Croll)的演讲影片:
https://www.youtube.com/watch?v=-CB4w_OtrKw
我看完有种恍然大悟的感觉,觉得有学到新东西,不过可能是因为我没有任何业界经验的
关系。
六、Behavioral interview questions
Behavioral questions在Data Scientist面试中也是很重要的,因为Data Scientist除了
需要好的沟通能力,也需要知道如何跟其他人合作,所以这部分绝对需要好好准备,
我会在之後的文章分享我的准备方法。
第一篇先写到这里,当然DS需要学习的东西还有很多,如果有好的资源也欢迎分享。
附上我的LinkedIn:
http://www.linkedin.com/in/chiiyuntsai
欢迎Data Science领域的朋友们connect,我的Data Scientist职涯才刚起步,希望前辈
们不吝指教,也祝福还在往这条道路上努力的朋友找工作顺利,找工作是很孤独又辛苦的
路程,希望这些分享文可以帮助跟鼓励到你。
p.s. 我是
#1RvJ9zZo的原po,感谢版友的意见,但我不知道stan1234567是谁XD
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 24.13.233.115
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Oversea_Job/M.1542835716.A.DAB.html
1F:推 drajan: 好文!! 11/22 05:30
※ 编辑: judykeystsai (24.13.233.115), 11/22/2018 05:35:11
2F:推 dark104: 感谢分享 11/22 05:42
3F:推 d611301: 推个 11/22 06:14
4F:推 blizzard258: 感谢分享! 11/22 08:26
5F:推 david820505: 感谢分享! 11/22 08:55
6F:推 TAMSHUI: 感谢分享! 11/22 08:59
7F:推 wintercoldb: P.s. 实在有点好笑 11/22 09:12
8F:→ wintercoldb: 感谢分享 11/22 09:12
9F:推 sexypilot12: 推推~ 11/22 09:18
10F:推 swancloud: 推 11/22 09:41
11F:推 rayu: 这篇太认真了!大推! 11/22 09:43
12F:推 becalm: 推认真! 但拿了博士再换新领域有种淡淡哀伤… 11/22 09:55
哈哈,是有一点点舍不得本来做的研究没错>< 不过真的不少PhD跟postdoc都转行了
13F:推 umum29: 推 希望您能够分享behavior questions的部分 11/22 10:04
14F:推 RoyKudo: 推 非常感谢QQ! 11/22 10:29
15F:→ RoyKudo: 另外想问原po除了农业电商之外有接触到医疗方面的DS吗? 11/22 10:33
我只有面过一间美国满大间的retail pharmacy company耶。如果对医疗跟Insight有兴趣
,可以考虑health data science program。
16F:推 bluebluelan: 很多亚 认识该领域top phd 在史丹佛做了几年博後 11/22 11:50
17F:→ bluebluelan: 最後跑到sjsu洗一个MS找工作的 11/22 11:50
18F:推 resay543: 多谢分享 11/22 12:04
19F:推 keyut2433: 请问一下insight一定要花2个月fulltime? 11/22 12:06
根据Insight的program安排及强度我觉得是。详情可以看我第二篇文章分享的program内
容再衡量一下。
20F:推 uni012157: 路过推推! 11/22 12:31
21F:推 rainingmoon: 感谢分享! 11/22 12:33
22F:推 ZERX: 路过推 11/22 13:11
23F:推 plankton: 感谢分享 11/22 13:14
24F:推 clemsontiger: 感谢分享! 11/22 13:32
25F:推 philip09227: 推谢谢分享获益良多 11/22 13:43
26F:推 belindazo: 欢迎来芝加哥 XD 11/22 13:57
27F:推 bowin: Congrats!Insight Data Science Programe真的不错,可惜 11/22 14:20
28F:→ bowin: 需要身份才能报名,不然去年真的很想申请... 11/22 14:20
不太确定你说的需要身份的部分,不过我补充一下,F1 OPT跟已经有H1B的都是可以参加
的。我参加的时候是F1在学学生。
29F:推 abc53: 推 11/22 15:22
30F:推 ryanlei: 感谢分享 11/22 15:41
31F:推 babyfang: 推推 11/22 20:05
32F:推 tmtm39: 感谢分享! 11/22 22:10
33F:推 CVPR2019: 请问最後你没有刷leetcode 那面式白板题怎麽办? 11/22 22:27
我的面试比较少碰到白板题,可能是我申请工作的时候会稍微查一下该公司如何面试。不
过我碰到过的leetcode题都不太难,部分是OA(可google查)或是“口述”。倒是碰到过
比较多需要做data challenge然後再present结果。不过DE和machine learning engineer
那类的还是建议要努力刷题。
34F:推 yenting1006: 推推学姐 11/23 02:33
35F:推 a972celia: 谢谢分享 已收藏 11/23 13:55
36F:→ jiayun0902: 感谢分享 11/23 22:05
37F:推 levenspiel: push! 11/23 23:44
※ 编辑: judykeystsai (24.13.233.115), 11/24/2018 04:48:11
38F:推 oopsmarcia: 好文推!!感谢分享 11/24 09:56
39F:推 AAABE: 推 11/24 10:02
40F:推 bowin: 感谢补充!我是台湾学位,所以无法申请 11/24 16:22
41F:推 BalloonBa: 感谢分享 11/24 23:50
42F:推 shawncarter: 推分享 11/26 16:50
43F:推 lingon: 我收了两个staff scientist都经过Insight, 品质真的不错 11/27 03:10
44F:推 Sisssy: 同领域UNC-Chapel Hill PhD 认真考虑中 lol 11/27 04:01
45F:推 bleedwolf: 感谢分享 11/27 07:07
46F:推 corey11: 推一个 yo-yo 的新婚妻。恭喜留在芝加哥啊 来打羽球 12/17 08:03
47F:推 agape9453: Push 01/21 02:51
48F:推 jackflu: Push~ 03/23 21:16
49F:推 QHand: 推详细 01/15 23:49
50F:推 carolian: 感谢分享,非常详尽的整理 03/02 14:06