一路披荆斩棘,我是如何成功拿到四大Data Scientist offer的?
给远在他乡的儿子视频教学如何做番茄炒蛋
直戳留学生的软肋
但是
我认识的留学生们
并不会因为一盘番茄炒蛋吵醒熟睡的爸妈
相反
他们会和父母说自己过的很好
然后忍着思念 耐着寂寞
一边默默赶due一边实习
希望毕业后能找个好工作
不辜负父母的期望
今天
数据应用学院学员Stella想跟大家分享她的求职心得
希望能够帮助到正在找工作的小伙伴们
研究生三年级的时候选了一门统计系的课程:data mining, 朦朦胧胧的开始了数据科学的奇妙旅程。不过在当时上完课之后,并没有继续花更多的时间去探索数据科学,只是觉得这个方向还蛮有意思的,更多的时间精力都放在了自己的课题研究上,满心希望毕业后能找到一个博后职位。
到了博士第五年,才下定决定去业界工作。一开始纠结于找quant,还是找数据科学。找quant, 虽然自己对随机分析比较熟悉,本科也是学金融数学的,而且之前的系里去业界的师兄师姐也都是去投行的,没有做数据科学的先例;对于数据科学,欠缺的知识要比quant的更多,准备起来的时间必然更久,然而自己对数据科学好像更感兴趣,所以还是决定找数据科学家的职位。
如果你有足够的时间精力,学习能力也比较强的话, 可以都准备,毕竟还是有很多知识技能是重复的。
但这是一个悖论,不知道这个教训的人,大概看不到这个文章,知道这个教训的,不用看这个文章。
文章还是要看的!
因为后面都是满满的干货
拿好小本本记重点啦
coursera的 <https://www.coursera.org/learn/python-data-processing>
当然这只是一些例子,关于data science with python的课程很多,选择一两个就好,更多的是通过做项目来练习,或者通过学习kaggle上其他人的kernels来提高,效果会更好。
最初觉得sql比较简单,上完课之后也没有再练习了,每次面试前抱一下佛脚,很没有底气去面试。后来为了克服这种没底气的恐惧,有一段时间就每天早晨起来在 <http://www.sql-ex.ru/> 上写几个query. <http://sqlzoo.net/wiki/SQL_Tutorial> 的也做过,比sql-ex上的简单。也有同学推荐<http://sqlfiddle.com/>,自己写schema,然后练习。 sql 远不是写一些query那么简单。很多时候数据的链接以及一些异常情况处理仅仅通过上课是了解不到的。在上DAL的课程中,做推荐系统的项目时,接触了sqlalchemy。 不过幸运的是,我在面试中,从没有被问到过sql的问题,但是sql的重要性是毋庸置疑的。
- coursera (university of washington) 的machine learning specialization <https://www.coursera.org/specializations/machine-learning> 实际的例子比较多, code 也是用python, 用graphlab package很方便。
- Andrew Ng 的machine learning: 这个不用多说,必选。比起上一个,强调算法,但是也不会很数学,作业用matlab, 对于理解算法本身很有帮助。后来我又看了Ng在Stanford 开的cs229: <http://cs229.stanford.edu/> 理论性比较强,对SVM的推导讲的很好。
- udacity Machine Learning Engineer Nanodegree 很多项目可以放到简历上,但是可能因为上过的人比较多,避免重复性,还是要斟酌。除了supervise and unsupervised learning, 还有用reinforce learning 实现的一个smart cab和一个用CNN做图像识别的项目。现在CNN的那个项目中规中矩,主要是练习下tensorflow, 在之前是用CNN识别街道数字串,用到Goodfellow 的一篇论文Multi-digit Number Recognition from Street View Imagery using Deep Convolutional Neural Networks。简历上有tensorflow 应该算是一个加分项吧。
- 数据应用学院课程中的项目可以展示, 问题背景也是和工业紧密结合,用到的知识xgboost, recommendation system, GIS, NLP 等都很热门。
- An introduction to statistical learning. 必读书
- The Elements of Statistical Learning 经典书(还有很多其他的好书,但是我没有完整读下来,所以也就不列出了。)
Machine Learning更多的是反应在简历的项目里面。一开始我的简历没有可写的项目,只能把data mining课上做过的四个项目拿来,虽然用到的算法并没有和现在简历的项目相差很多,但是项目的背景,复杂度都不是很有卖相,所以一开始简历关很难通过。后来不断的自己找一些感兴趣的问题,找数据,跑模型,但是完整性展示性还是不怎么的。之后上了udacity的课程,项目背景也算是有意思,并且完整,但是请一个老师修改简历时,她说她看过一个类似的,都是在udacity上课的同学的。我们系的一个同学的项目基本也是这几个, 但是他面试的时候展示了对于deep learning的了解,读过相关paper,加上当时那个职位希望后面做一些 Long short memory term model, 所以在经过若干考验后,他也顺利拿到offer。
个人感觉项目要有一个很好的背景,要解决一个有意义的至少是对公司有意义的问题,然后加上一些算法结果,最后最好能够可视化。
- 按 topic 练习: 对于ds, sort and search 比较重要。
- think loud 这是google 对于白板面试code的一个指导:<https://www.youtube.com/watch?v=XKu_SEDAykw>
- 在白板上练习, 可以和同学一起mock.
- big O, 最优解 <http://bigocheatsheet.com/> 面试的时候,可能一下子不能想出最优解,可以先写出基本解,然后一步一步优化。可能有的面试官反而喜欢看到你思考的一个过程,而不是一上来就给出一个背下来的最优解。
- 重复练习:有的算法很容易忘记,所以要经常重复写 理解后再记忆
- https://simplystatistics.org/page/2/https://www.udacity.com/course/intro-to-descriptive-statistics–ud827http://onlinestatbook.com/2/index.htmlhttps://onlinecourses.science.psu.edu/stat414/https://www.youtube.com/watch?v=Bu7OqjYk0jMhttp://www.wzchen.com/probability-cheatsheet/
基本的概率分布都在这里的cheat sheet里面了,面试应该不会超出这个。
Spark: 正在学习,没有在简历里面提到。
可不能只看不练哦
一开始我用的是Latex写的简历,因为改起来格式不会像word 那样得手动调整。但是有的公司会用tracking system,关键词匹配,或者抽取简历的信息自动填写一些表格,Latex里面的一些符号就会被提取,总之不是很方便。最后还是使用了word, 然后转化为pdf, 或者直接上传word 格式的简历。
在104家公司里,通过简历关的大概只有18家,有三家因为实习时间在我OPT开始之前,所以不了了之。但是当时我极力给对方留下个好印象,希望有全职机会的可以再次联系,但是这种希望一般很渺茫。 在18家里面,两家是通过内推得到的机会。最后onsite了三家, 拿到一个offer。
如果是和HR聊,那么准备时间不需要很久,二天之内要搞定,除非HR时间排不开。尽快搞定,加快速度就是增加机会。
如果技术面,那么我差不多需要四五天的时间,但是随着后面对简历的多次重复,对知识的复习熟悉,也不会需要那么久的准备时间。
对于onsite,从收到onsite的邀请(还没有安排面试当天的时间表)到onsite 当天,我觉得至少要给HR十天的时间,如果HR定机票,可能你要约到二周以后。因为把那么多面试官聚到一起,本来就不是一件容易的事情。我第一次onsite时候,约的是一周之后,当时担心拖的太久,印象不好。结果到了onsite的前两天晚上,HR还没有定好机票,第一个onsite的那一周,紧张的没有睡过一个安稳觉。
然后就是准备一些behavior questions的回答,比如<https://www.thebalance.com/top-behavioral-interview-questions-2059618> 准备过程中相当无聊。其实在和HR聊天过程中,他们也不会干巴巴的问这些问题,都是以聊天形式的。
这个环节有的HR会问你期待的薪水是多少,我一般会绕过去,不回答,但是有的HR很强硬,希望你给一个数字。所以在面试前还是要做一个基本的调查,虽然这步离最后的offer还很远。
曾经遇到一个面试官,对我上过的课程一一询问,挖的不深,一两句话总结下这门课是干什么的,学到了什么。和她有交集的多交流了些。Skills最好在相应的项目里面有体现。 我当时看很多公司要求会hadoop, 就上了udacity的那门课程,但是没有项目体现,被面试的时候说不出什么,很尴尬。后来去上了些应用hadoop的项目课程。这个环节我被问到的最多的就是介绍你的项目,还有解释一些机器学习的算法。机器学习的算法复习的时候可以很深,但是没有那么多时间准备,我被问到过的问题基本不出大数据应用微信号的每日一练的范围。还有的问case study, 大部分来自公司正在做的项目下的小问题,这种不太好准备,买了crack the PM interview,还没有看完。有的公司一次技术面就OK了,有的要面试两次。
- 把找工作当成full-time job, 投入多少都不过份。
- 心态很重要。 这段时间遭到很多拒绝,比前半生加起来遭到的拒绝都多。五月份的时候,每天早晨都会去小跑,通过跑步,获得一天的动力。家里人也给了很多精神上的支持,在最脆弱的时候,感觉自己还有家人可以依靠。但困难终究是要自己去面对去克服。
- 如果周围有也在找工作的同学,要团结起来。可以互相模拟面试。我特别感谢我们小组的同学,分享很多学习经验心得,还有一个同学帮我模拟面试,给了我很多建议和鼓励。
- 270 applications and 7 months of interviewing to land a job as a new grad
- https://alyaabbott.wordpress.com/2014/10/01/how-to-ace-a-data-science-interview/
- https://www.youtube.com/user/PyDataTV/videos
- https://www.youtube.com/playlist?list=PL39P3XK_jveHE89PgwwvVPAGAj2cuxRrT
- https://zhuanlan.zhihu.com/p/22387312
- https://zhuanlan.zhihu.com/p/21758279