知乎高赞: 在美国如何从理科PhD转到计算机行业?

作者:高远

来Offer学员,化学行业转计算机,现在是Unity的Machine Learining Engineer。

此篇文章节选自高远在知乎问题 —— “在美国如何从理科phd转到计算机行业?”中的回答,本回复持续更新3年,共收获414个赞。

​先写写自己的经历,抛砖引玉一下。

首答于2014年,之后陆续有更新

最近一次更新于2018年1月

先说背景

我是国内的本科,申请到美国某大学的化学全奖phd出国了。

如果有在美国读的化学、生物、甚至物理的phd同学应该知道,这些专业的留学生就业比较困难。

决定转专业的契机是,在我断断续续做了2年实验之后,我发现我的工作其实是在验证一个错误的结论,所以我之前的所有成果都不可能被发表,需要从头选新的研究方向。

于是,我好好地思考了一下下一步应该往哪里走。

在考虑了consulting(后来发现需要非常top的学校的phd才可能进consulting),patent law(报名准备了lsat,但是在准备的过程中发现我实在是一个彻头彻底的理科生,reading一塌糊涂,所以放弃了)以后,我最终选择了转计算机。

我在网上做了很多功课,查了很多自学CS的帖子,然后就从 head into java看起,学得是顺风顺水,觉得我天生就应该干这个。

当然我作为一个天生的理科生,学任何理科基本都有这感觉。。。。

再后来,在我把大约3个月学习java的经历以及对于计算机与化学结合的兴趣,融入到我的PS里面。

然后我大概是靠着这一篇PS,录取了UChicago的CS master

转到计算机以后的感受

来到芝加哥以后要考一个placement test。因为作为一个转专业的学生,他们要看看你的编程以及数学底子好不好。

不过我因为已经准备了这个考试多达两个月,所以轻松通过

从化学转到CS后,总体感觉就是:“从hard mode瞬间来到easy mode”。

编程,比起博士阶段做不出想要的result,发不出paper来,可要轻松多了。

毕竟一个是努力加上天分就可以达到的,一个还要靠天吃饭。

而且,化学毕业以后找到工作是非常难的,基本大部分人毕业以后就是继续博士后。

而计算机基本都可以有就业,而且只要你努力,都可以进很好的公司,收入很不错。

现在暂时还没有开始上课,但是已经开始庆幸自己的选择了。

将来的话希望可以在硕士毕业以后去计算机的某些大公司工作一段时间,然后看看有没有办法把化学跟计算机结合起来,做一点改善化学这个传统行业的事情。

2016.1 更新

找工作情况

一晃题主就毕业了,过来更新一下找工作的情况。

今年都在说经济形势不好,找工作不好找,某些大公司听说都不招新的毕业生了,楼主也蛮紧张的,所以就各种想办法。

首先的问题是,简历投出去都没有人鸟我。

不过想想没有人鸟我也正常,谁叫我简历上什么像样的project也没有呢。

大约是2015年9月份的时候,我在linkedIn上面投了大约100个公司。。。。然后回复率是0.....

0....

0...

0.

.

.

.

当时我的认识还停留在“只要把leetcode刷3遍,FLAG稳稳进”的误区,所以就一心刷题。

无奈cs基础还是太差,刷题刷得很慢很慢。而且就算刷了题,没有面试也没用啊。

后来因为我看好数据工程师这一职业的前景,上网找了个这方面的培训班,跟着上课,做了几个project。

大约3个月之后,基本big data的主流技术,什么hadoop,hive,pig,kafka,我都用过了,原理也基本都懂,能扯个大概。反正忽悠HR是够了。

于是我的简历焕然一新,重新上linkedIn上面投简历,还是投了大约100多个,之后的两周,大概收到6个电面,其中有3个转化成了onsite,3个挂了。

经过这些,我发现我的cs基础很薄弱,要是面那些大公司肯定特别虚,一秒挂。

再后来,我又偶然地经同学介绍,发现了一个叫来Offer的网站。

我去试听了一节,发现他们从最基础的东西讲起,把每一个细节都讲得很透彻。

比如,如果我需要一个stack,为什么是

Deque<Integer> stack = new LinkedList<Integer>();

而不是Stack<Integer> stack = new Stack<Integer>();

也不是 LinkedList<Integer> stack = new LinkedList<Integer>();

这种我在master课上老师从来不会讲,我苦苦摸索的内容,他们都讲得清清楚楚。

虽然学费有点贵,想想我补完了这个课以后,就再也不会感到自己跟科班出身的同学有巨大的基础上的差距了,长远看来一定是划算的。我就咬咬牙报了这个班。

听课到现在已经两周,每周现在都是5节课,每节课2.5小时的节奏,感觉真的提升了非常多,感觉还是蛮值的

反正题主是准备在来Offer培训完3个月,去冲击一下一线大公司的,感觉现在至少从以前的不太可能,变成了相当有可能。

嘛,反正再过一段时间再看吧。

2016.3 更新

战绩汇报

最终楼主拿到了四个offer,Fanatics, Personagraph, Spotify, Adara。 

楼主从了Fanatics,虽然Spotify给的offer非常的优厚。

主要是看中Fanatics最近几年收入的高增长以及team的快速扩充,以及tech stack非常紧跟潮流。

2017.1 更新

入职感受

在Fanatics已经工作了9个月了,感觉这边工作最大的好处是比较清闲。每周两天WFH(work from home)的时间,可以比较自由,也就有很多时间自己钻研技术以及创业相关的知识。

因为我的工作就是写Spark之类的可以处理大量数据的pipeline,所以可以把很多平时钻研的大数据的技术直接在工作时进行实践。

自己个人下一阶段的目标是想要去见识,学习一下最厉害的领域内的人是怎么做事情的,所以想去一个真正做大数据的更加厉害的组。

除此之外我也想了解一下大数据和AI, Deep learning结合具体要怎么做,要是能够去一个这样的组做一个数据工程师就更好了。

2018.1 更新 

转入AI, Deep learning

一转眼一年又过去了,这一整年发生的变化特别大,只好一点一点说起。

在2017年3月份的时候,我出于对deep learning和AI的好奇心,去参加了一个相关的在硅谷办的AI Frontier conference。

进去了之后发现,Deep learning能做的事情居然那么多,而且未来的前景那么大。

回来了以后我就开始琢磨要怎么转到AI的方向上去。

从今年的3月份开始,我先是从Deep Learning Books - Machine Learning Mastery的书开始看起,从头用tensorflow做了一些入门的小项目。同时,我还在网上找了些Deep Learning的课来学。

Machine learning mastery这本书的好处就是非常容易上手,基本上他把code example都给你了,你照着抄就能运行出来对应的结果。

但是因为他对于理论的部分讲的比较粗略,所以很多时候你知其然而不知其所以然。

这样的坏处是你得到了“果子”,但是由于没有理论这颗“果树“来挂”果子“,过个几天你的”果子“就忘掉了。

于是后来的时候,我就开始看Ian goodfellow的这本”深度学习圣经“(Deep Learning)。

这本书可以说把原理讲的非常深入,而且都是从最最基本,最最本源的东西开始讲起的。

我看了大约五个章节,实在是看不下去了。一方面是内容非常多,另一方面是很多东西动不动就联系到一个之前的我还不是非常懂的概念,这样就更加不懂了。

在做了网上相关的小项目后,我开始投相关的Deep learning的工作,想看看有没有机会拿到面试,看看业界的招人的要求到底是什么。

当时也拿到了好几个面试,应当说业界对这一块的需求还是非常火热的。

只是一面试,基本上都挂在了传统的Machine learning相关的知识上以及不懂C++上(相关的职位里有好几个小的细分方向,要求不太一样)。

传统的Machine learning其实我在公司里也做过蛮多的,但是自己没有系统地去学过。C++我也不是特别精通,在读硕士的时候上过一门课。

这个时候我就想起当年来Offer,似乎有教C++相关的基础以及算法。

而且来Offer的教学质量是绝对有保证的,跟着他们学效率也是最高的

于是我就给来Offer的孙老师打了一个电话问了一下要怎么学。

当时来Offer还没有开C++的相关课程(现在好像有了),于是孙老师就建议我去看Learn C++网站自学一下。

非常感谢孙老师的推荐,可以说如果要想好好自学C++,这个网站绝对是最好的材料了。上面没有一句废话,可以让你用最短的路径学会C++的一切。

孙老师还说,来Offer最近开了LaiData的班,如果我想要转去做Deep learning相关的东西,其实可以上一下他们的那个课。

于是,我就开始跟着上LaiData了。

LaiData的课程内容还是很多的,强度也很大。

课程从一开始的统计知识,讲到最基础的ML线性,树等等模型,再讲到AB testing等等。最后还有大数据和Deep learning的课程。

我的感觉是ML模型讲的非常好,对于我这样的基础比较薄弱的人,打下了一个很好的基础,至少这一块面试啥的就不怕了。

从7月份到9月份我一直都是跟着LaiData在上课。期间,我还是一直在投公司,9月份的时候也拿到了FB的ML相关岗位的面试机会。

但是因为已经很久没有刷算法了,我到了电面的时候因为一些简单的算法失误浪费掉了这个机会。

于是我9月份开始又重新出发,开始跟着来Offer,进一步提升我的算法能力。

实话说,我觉得来Offer小班的算法训练是我看到过的最严格的,强度也很大,我要是自己刷题,绝对达不到这个训练强度以及高度。

大概从9月一直训练到12月吧。这个期间我一直有投简历有在面试,估计有面了20+个公司吧。

一开始的时候真的是一面就挂,特别是面ML相关的东西。后来面多了,很多内容回来自己再看,也就不怕了。

而且在这个期间我还把CS231n的内容都看了一遍,把相关的Deep learning相关的Computer Vision的东西基本都弄懂了(2016年那一版的要比2017年的那一版讲得更好,那个哥们现在去Tesla做Director了好像),真的收获非常大,强烈推荐。

面试一直进行到11月中旬,其实还是没有什么像样的offer。我其实心里是蛮绝望的,毕竟已经高强度努力了大半年了。

来Offer的老师跟我sync的时候,也常常鼓励我,跟我说要是实在不行,也可以先进大公司做大数据相关的岗位,进去以后再转。

后来在11月底12月初的时候,我终于拿到了3个offer,分别是Pinterest,Amazon和Unity的。

Pinterest和Amazon的岗位更加偏Engineering一点,Unity的岗位是我非常感兴趣的做Reinforcement learning的。

我大概纠结了一个多星期,最后还是决定从了Unity。(而且Unity做的东西毕竟是游戏,我从小就想在游戏产业工作一下)。

总结

一路走来我觉得在找工作的时候有两点非常重要。

第一点,千万不要放弃任何一个机会。

记得当时Unity的HR在跟我约电面的时候,约了两次都没有给我打电话,我以为公司直接把我挂了。

过了大约2个星期,我在翻邮件的时候翻到那个邮件,想着不如再写个邮件催一下,后来HR居然回了,又跟我约了第三次。

后来居然一路顺利地拿到了了他们家的offer真的是没有想到。

第二点,在找工作的时候千万要多看市场的需求,不要闷头自己准备。

除非有认识相关岗位的面试官告诉你会面试什么题目。否则,很有可能你准备了半天发现市场上根本不需要你会这个

我一开始的时候,看到Linkedin上大部分的Deep learning engineer需要C++的编程能力,特别是做self-driving以及智能硬件的公司。

但是后来我拿到offer的岗位并不需要我在C++上面非常精通,只需要略懂就行了。

所以真的只有不断地去真正地面试才是硬道理,特别是对于有工作经验很容易拿面试的同学。

 还有一个就是拿面试的技巧。

首先,强烈建议在美国的学CS的同学起步阶段最好能来硅谷发展事业

我觉得做IT在硅谷真的是非常地有优势。因为这边的IT公司数量非常大,基本上你可以连续投3个月的简历,还能不断地投到之前没投过的公司。

不仅如此,很多公司在你投简历的时候,你根本没听说这个公司,但是拿到面试以后仔细去研究,会发现这个公司居然还真的蛮牛的。

我投简历的方式基本上分三步:

第一步,在linkedin上面搜相关的岗位,比如Deep learning Engineer。

第二步,把所有搜到的岗位都投一遍,一个公司大约30秒的申请时间。这里关键的有两点。

第一点:为什么大约是30秒?一是job requirement你不需要看,一点点也不需要看,因为要是真的符合,人家会来找你,要是不符合,你只浪费了30秒也不亏。

二是对于任何申请复杂的公司(申请时间大于30秒)直接pass(除非你非常想去),因为很多这样的公司给面试的概率反而更低。

为什么呢?因为申请复杂的公司一般都是相对传统的公司,一般这样的公司容易在走下坡路,不需要招那么多的人,你拿到面试的概率也比较小。

第二点:一定要把所有的岗位都申请一遍,不管这个岗位看上去有多senior,因为一般来说公司如果在招对应岗位的senior,很有可能也在招对应岗位的junior,只不过没有打广告出来。

第三步,每天早上花10分钟重复这样的操作,把新出的20-30个岗位投一遍。

只要你坚持这样的步骤三个星期,一般来说每周会拿到1-2个面试的机会(前提是你的简历写的足够吸引人,这个又是另外一个话题了)。



更多科技求职讯息,请关注“来Offer网”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值