2015年12月6日 星期日

[轉貼] [经验总结] 美国换专业找工作:毫无CS背景的人如何在一年半以后拿到硅谷software engineer的offer

對岸的同胞所寫的文章,覺得有點意思,就把它轉了過來

當然,對方是上海交大本科 + 史丹佛碩士

在參考的同時,也需要知道自己與對方的差距在哪


原作者 : CandyCrash   來自 : 太傻論壇

因为在palmdrive(http://palmdrive.co)上回答了tiaozi13的关于他换专业的问题,看到他当时在太傻上发的帖子(http://bbs.taisha.org/thread-16995455-1-2.html,看了一些回复之后发现可能大家对于在美国换专业找工作的认知有些误区,所以在这里结合自身的经历写点关于换专业找工作的东西,希望对大家有帮助。


首先大致介绍下自己的背景,斯坦福的机械工程设计方向的硕士,本科也是机械工程,但后来找工作面试的全是硅谷的softwareengineer的职位,当然拿到的offer也是。



  • 先讲讲自己的一点经历,如何一步步从mechanicalengineer转变成software engineer的。


本科的时候完全是纯机械,上过唯一和objectiveoriented programming相关的课程就是C++大四的时候找一个cs的教授做research,computationalgeometry方面的,纯打酱油,用CAD(这完全是ME的技能)3D模型来测试算法的效率。后来抱大腿就成了那篇paper的三作。一下子自信心暴涨呀觉得自己天生是CS的料没上过专业课也能发文章呀!然后申grad的时候申了CMU,Berkeley HCIHumanComputer Interaction, CS的一个方向)和MITMediaLab。现在回想觉得自己当时toosimple too naïve, 这不明摆着在浪费申请费么。嗯,后来去了斯坦福的机械硕士的项目(果然CS申请全给跪)。。。


所以实践证明,这样子简单粗暴的转专业方式是不可取的,或者说,risk很大,自己掂量着吧~


到了斯坦福就立志不要吃着碗里看着锅里的,专心学习机械,找的advisor就是computationalengineering方向的大牛,现任斯坦福航空航天学院的院长。结果除了开学初聊了一次天,就再也没有去找过这个大牛….因为我自作主张换了方向去学design~斯坦福大多数的学院选课很随意(下面会再详细点讲),我刚进的时候选的方向是比较传统的computationalengineering,进来后发现design更加有意思,就选了很多design的课,方向也自然换成了design


其中一门3个学期的Design课,做的项目是给日本松下公司设计所谓的‘TVfor the next generation’,最后设计设计着发现要最终要做的产品是软件而非硬件,涉及很多网站的开发。然后开始自学网站前端的开发,写点简单的htmlcss。就这样开了个码农的头。刚好那个学期学校有教Rubyon Rails的课,就跑去蹭了几节(就34节吧,听课总是想睡觉,后来就不去了)。对网站前端后端开始有了大致的了解。


到暑期要实习了,刚好这边的腾讯北美新弄了个孵化器,给斯坦福想自己做点项目的同学。就去了孵化器,一暑假做一个iOSapp。我是负责写后端,当时虽说Rails懂那么一点,可哪能写整个app的后端,连怎么开始都毫无头绪。然后就自学啊,问啊,折腾一暑假还真弄出来了。那个暑假同时还给斯坦福的一个教授做网站的前端开发。那教授弄了个VentureLab, 就是和Coursera差不多的那种在线教育网站,招几个学生帮他弄。我是唯一一个写前端的,压力那个大啊。又是边做边学。


暑假三个月基本在coding中度过,感觉那时学得非常快,因为知道的少嘛。过了暑假就基本决定从此告别ME了。所以那个暑假的过程还是起着决定性的作用。


斯坦福是quarter制的,自己在剩2下的两个quarter里面又上了MachineLearning, Data Visualization, iOS Application Development这些比较practical的课,然后面了一堆这边的大公司小公司softwareengineer的职位(下面会详细点讲这点),感觉在面试的过程中也是边面边学。


总得来说,专业上的转变,上课只是很小的一个方面,自己学自己做才是最重要的那部分。



  • 讲了自己的经历,再讲讲一些大家在这个方面可能会有的疑问。


1.觉得我这样的是个例而已
绝对不是个例。不说很多美国人都这样,我知道的这样子的中国人也不少。有一斯坦福数学的本科,后来码农了;有一EEPhD,毕业去了Youtube自然也码农了;还有….反正太多了。


2.HR凭什么会给不是CS文凭的人面试码农的职位
在你工作以后,没人care你是什么专业的文凭。那在你找工作的时候公司会在意吧。的确是有些极品的公司会在意,但是绝大多数公司都不会在意,看你resume里面的经历来进行筛选,而不是专业是什么。以我自己为例,大公司像facebook,google什么都面了,小公司就更加多了。面试的时候基本会被问道,为什么你的专业是机械,你现在却对softwareengineer感兴趣。然后正好以此为话题可以聊开。
此外,不是所有公司都是由HR来决定给不给面试,很多公司,特别是初创公司,都是由product manager来筛选。


3. 好好的干嘛要换专业去做码农?
一是自己很喜欢coding,二是美国大环境下CS找工作相对容易(不要以为学了CS就一定能有工作,能不能拿到offer还得看一轮轮面试的表现)。如果你不喜欢coding,同时也不屑为找工作能相对容易就‘折腰’,那就别换呗。这篇文章绝对不是去鼓励大家人人换专业去做码农。


4. 美国的选课真的那么自由吗?
我觉得是大多数学院是挺自由,但是不要以为所有都是这样。就以已经很自由的斯坦福来说,CS的学生选课是最不自由的。基本上必修的一排,就没什么空余给其他的课了。而且因为有些课只有某个quarter才有,你不得不在那时上,不然错过你就不要按时毕业了。像ME,只要选好24ME课的学分,剩下的21个学分基本属于随你安排。说是要给你的advisor同意通过才行,但我的那advisor每次估计看都不看就给签字通过了。


5. 码农是吃青春饭,高薪是用小时数堆出来的?
至少在硅谷绝对不是。想Oracle那种养老院就不说了,这儿大多数公司还是很  flexible的,有时想work at home也可以,只要把活干完。所以这里讲究的是get thingsdone,而不是你一天工作几个小时。放心,不会扔非常多的活给你做的。我刚开始工作不久,作息是10点半到公司,6点离开公司。从来没有加过班。绝对不会像咨询公司那样,从早上9点到晚上12点。


大概就这么多了。如果大家有一些比较specific的问题,建议大家去PalmDrive(http://palmdrive.co)问。PalmDrive是斯坦福的学生搭的平台,希望能把过来人的经验以最有效最直接的方式分享给需要的人。现在有许多像我这样的过来人在上面回答问题。


沒有留言:

張貼留言

/* 載入prettify的autoloader */ /* 載入JQuery */