CMU-CS硕士北美码农求职数据科学家,已拿到Apple Offer

jopen 10年前

CMU-CS硕士北美码农求职数据科学家,已拿到Apple Offer

拒了另一个 Offer,工作彻底也定了,考虑到还有同学正在找工作,先简单地写一点东西,希望对正在北美找工作的同学有帮助。也请关注我的知乎专栏,我会写一些关于我在 CMU 的经历,我的在实验室干活的感受,以及找工作酸甜苦辣。

一点背景介绍,陈然,THU 软件学院 2009 级,CMU-MCDS 13Fall,暑假在 MCDS Director Prof. Eric Nyberg 的 OAQA 组里干活,一直觉得很有可能留下来继续读 PhD 的,做做 Machine Learning 的交叉学科的应用。后来被老板告知没有 RA(毕业至 15Fall PhD 入学这段时间),要去工作,于 9 月的 Career Fair 开始刷题找工作,因为准备得晚,一直被拒,连跪七个面试后来了一个大 offer,Data Scientist @ Trulia in SF ,考虑到这个组很小,只有 5 个人,也是偏 Research 的,其他人都是 PhD 或者有多年工作经验的,再加上估计也不会有人给我更多的钱了,遂从了,并毫不犹豫地放弃了 PhD 的学术理想。

因为这个组催的急,还有 FB,LinkedIn 也就不等了,Aetna 的 Senior Informatics Analyst 也不继续面了,另外一个拿到的 Offer 是 Apple 的 Map Evaluation Team,也是类似 Data Scientist 的角色。我也一共就这两个 offer。

感觉 Trulia 给了我 Data Scientist 的 Offer 主要是这么几个原因:

1.  一是我们的项目名字叫 Master of Computational Data Science,一看就是相关专业,感谢项目改名!

2. 二是我选了大量 Machine Learning 的课程,从基础的 Machine Learning 到中级统计到 Probabilistic Graphical Model,基本对于现在工业界能用的 Model 都了解

3. 三是我会使用 Hadoop 等工具,这主要得益于第一我选过 Cloud Computing,这 课手把手,还给钱,教使用 AWS 做了很多东西。第二我选过 Machine Learning in Big Data, 这课主要教的就是怎么在 Hadoop 和 Hadoop Stream 上实现 Naive Bayes,虽然内容不多,但是讲了方方面面的很多琐碎的东西,而且工业界很适用。

4. 四是我有实际的 Machine Learning 项目经验。我来读 Master 的时候就希望可以把一个项目的时间做的尽可能的长,我很厌倦实习和毕设那 2 个月做一个项目但是什么都做不出来的感觉,所以我通过 Spring 2014 选课+暑期留在实验室 +Fall 2014 毕设做同一个项目把这个项目做了 8 个月。这是个在法律界的使用 NLP,IR,ML 的项目,太难做了,太繁琐了,太多 Dirty Work 了,太多心得了。但是面试的人跟我总是有特别多的共鸣。

5. 最后当然我本科也是学 CS 的,计算机组成原理,计算机网络,数据库,编译原理,操作系统,信息检索等课程也都上过,基础知识也没有什么短板,这个也很重要

我申请的时候主要投的职位包括:Software Engineer, Software Engineer in Machine Learning, Data Scientist, Data Engineer, Data Science Engineer。至于这些所谓的 Data Scientist 或者类似的职位到底是做什么的,每家公司情况都不一样,我的所见所谓主要是有这么几类:

1. 做 Infrastructure 的。这一类就是做系统的,而且要求不低。

2. 做传统数据分析的。Excel,SQL,写 report。

3. 做比较新的数据分析的。往往要使用爬虫到处爬数据,写脚本处理 Log,Hadoop 处理数据等等。

4. 做 Machine Learning 应用的。常见的 Machine Learning 的相关的应用包括搜索,NLP,图像,广告,反欺诈等等。

5. 其他的大杂烩的。

大家可以对着这样的职位的要求查缺补漏,把一些课和技能补全。

最后,我会把详细的经验和心得也写出来,不过需要一点时间,大家可以在下面几个地方关注我:

  1. 知乎:陈然
  2. 微博:Sina Visitor System
  3. LinkedIn: Ran Chen LinkedIn
  4. 邮箱:chenr09@gmail.com

最后,给大家一点信心,展示一下我的求职坎坷之路:

没有回复我的:

  1. Precyse (Senior NLP)
  2. Pinterest (Data Engineer)
  3. A9(Data Science Engineer)
  4. TripAdvisor (Software Engineer – Machine Learning)
  5. Grassbridge-llc (Data Scientist – Machine Learning)
  6. Reflektion (Software Engineer – Machine Learning/Predictive Algorithm/eCommerce)
  7. Adobe (Data Scientist)
  8. Medallia (Research Scientist NLP & Machine Learning)
  9. Skyhigh (Networks Java Algorithm Engineer – Big Data – Cloud Security)
  10. Yelp (Software Engineer – Data-Mining, Data Scientist)
  11. Groupon (Data Scientist/Algorithm Engineer, New Graduate)
  12. Zensight (Machine Learning Engineer)
  13. Indeed (Software Engineer – New Grad (Seattle))
  14. Fitbit (Research Engineer – New Grad)
  15. Uber (SOFTWARE ENGINEER – MACHINE LEARNING)
  16. Quantcast (Software Engineer, Machine Learning)
  17. ePlus (Data Scientist)
  18. Eharmony (Machine Learning Engineer)
  19. Lynx (NLP/Machine Learning Engineer)
  20. http://Adap.tv(Data Scientist)
  21. OnDeck (Data Scientist)
  22. 非死book (Software Engineer)

跪在简历的:

  1. IBM (Waston Team)
  2. Quora (Software Engineer, New Grad; Data Scientist, New Grad)
  3. Airbnb (Machine Learning; Software Engineer New Grad)
  4. 推ter (Data Scientist, Modeling; Software Engineer – Machine Learning/Relevance (Seattle); Software Engineer, New Grad)
  5. Coursera (Data Product Engineer)
  6. Glassdoor (Machine Learning / Data Scientist, Search Relevance)
  7. BloomReach (Software Engineer – New Grad)
  8. Zillow (Software Engineer, New Graduate)
  9. Meetup (Machine Learning Engineer)
  10. DataRobot (Software Engineer Machine Learning)

跪在电面的:

  1. AOL (Data Scientist / Data Analyst Machine Learning)
  2. WealthFront (Data Engineer)
  3. Palantir (Software Engineer)
  4. Heap (Software Engineer)
  5. Apple (Siri New Features Team, Siri Data Team)
  6. Kosei (Data Engineer)
  7. 跪在 Onsite/On Compus 的:
  8. RocketFuel (Software Engineer)
  9. Google (Software Engineer)

其他:

  1. Aetna (Senior Informatics Analyst):不愿意继续面试了

拿到的 Offer:

  1. Trulia (Data Scientist)
  2. Apple (Map Evaluation Team)

CMU-CS硕士北美码农求职数据科学家,已拿到Apple Offer

都面了那些题?

这里我也记录一下我面试过哪些类型的题目。面试的职位包括:Data Scientist,Data Engineer,Software Engineer in Machine Learning,Data Analyst 等。当然其中有不少也包括最常见得 Leetcode Style 的算法题,除了这一类题目以外,还有不少其他类型的题目,主要分为这么几类:

1. 问 Skill Set 以及对于常见工具的掌握。

Skill Set 就是指你掌握了哪些知识,一般问起来都是比较粗略地问,主要目的就是考察和团队的习惯以及工具的掌握是否 Match。我被问到过各种各要的碎碎的问题,比如计算机网络中 HTTP、TCP、UDP 协议,数据库的设计原则、实现方法,操作系统的一些基本知识,Unix 的常见指令,Hadoop 和 Hadoop Streaming 如何使用、如何 Debug,平时使用什么 IDE 什么 OS……总之各个琐碎的角落都被问到过。

2. 问简历,就简历上的技术细节发问,主要是项目有关的技术细节,以及相关的技术延伸。

比如我的项目中就提到了 NLP 相关的东西,就被问了一些和 NLP 相关工具的使用,比如 Stanford NLP 等。再又问了一些延伸的问题,比如,如何自动生成一个有意义的句子,如何把一段文字 Split 成一个个句子,怎么选 feature 怎么做 model 等等。这类问题主要还是需要对于自己的项目技术细节足够了解,且对于延伸的问题有所掌握。

3. Machine Learning、Statistic 的相关问题

Machine Learning 相关的问题就太多了,我稍微列举一些我遇到过的问题:

  • 一些分布参数的最大似然估计之类的东西是什么,如何推导
  • LR SVM 的本质区别是什么
  • 哪些 Regularization,都各有什么性质
  • 对于 Naive Bayes 的理解,NB 有哪些局限性
  • Random Forest 为什么很好用
  • 如何做 Model Selection
  • 给一组数据,问 Decision Tree,LR,NB,SVM 等算法学出来都是什么样子的,是否学不出来,怎么处理,有哪些 Kernel,在图上画线怎么画

还有被问到了一些比较难的问题,比如:

  • 对于 Graphical Model 的理解,写出 LDA 的公式,给出 Topic Model 生成过程等的
  • PageRank 的原理和公式推导

总之,前面那些问题本质上都不是那么难,但是不少问题都需要对于 ML 各种知识的融会贯通,所以大家在学习的时候还是需要深入学习,不要浮于表面。

4. 给一个现实问题,如何解决。

这一类问题就比较宽泛了,主要是在回答的时候记住考察的目的很多时候并不是技术本身,而是你对于这一类问题没有思考的框架。比如如何收集数据, 收集那些数据,如何定 feature,如何定 measurement,如何定 milestone 等等。要分层次一步一步地讨论。

举个例子,比如要你做一个房地产的搜索引擎,该怎么做?

最后,感觉很多东西还是得从做项目中来学习。所以还在读书的同学还是得想办法多做一些实际的项目,最好是有真实世界数据的,这样就可以经历一些 Clean Data 等耗时耗力,老师不教但是在实际工作中又非常有用的过程,帮助自己成长。同时,还是要尽量地把一个项目的时间做的长一些,比如 6 个月,8 个月,才有可能出比较理想的成果。