Thursday, July 31, 2014

再回首,背影已远走。【本科EE硕士自学CS,毕业工作2周年面试回顾】


在美国做程序员2年了,来美国也马上3年了,前两个月跳槽了一次,想把作为new graduate和找第二份工作的面试准备过程和体会总结下来。因为大多数读者都在找第一份工作,所以学校期间的准备比较详细。 2011年8月末,来美国读Cornell只有两学期的水硕士,本科学EE时只上过一门C和一门c++,会一些Matlab。刚来时候听到所有人说CS最容易找工作,于是跟风的选了database,OS和一个用C#做游戏的project。学CS的动力不强,没有找到组织,自己蹲蹲图书馆,学的完全不入流,因为编程基础差作业做的很费力,过了2个月OS扛不住就drop了;database非常挣扎的学完了,编程能力稍微进步了一点。第一学期没认真找工作,唯一的面试是Epic,居然用本科学的c++过了电面,onsite被问各种GRE词汇,跪的彻彻底底。如果Epic给我offer我当时肯定开开心心的去了。

2012年1月,第二学期开始,一下听说好几个同学已经拿到了oracle的offer,瞬间有压力了。同时也找到了中国同学的组织,开始全身心投入的学编程准备面试,旁听了data structure,选了算法(上了2个月精力不够drop了)和web service的课。开始了每天早上8点30出门,晚上12点半回家,除了上课吃饭就在机房编程的生活。很仔细的用2周看了一本讲Data Structure的书 (Data Structures and Algorithms in Java),蛮推荐的,对于没有编程背景的人来说,深入了解数据结构的原理,实现和应用是准备程序员面试的第一步。看完这本书后就基本可以秒杀数据结构的作业。通过学校的网站申请了一些程序员岗位,几个电话面试都跪了。电面中发现会被问一些os和db的概念题,就把课本讲义翻出来看看。之后开始做CC150,题目基本是数据结构作业的延伸,一道道code出来。面试依然在fail,但每天都可以感觉到自己在进步,所以也没有太灰心。身边的更多中国同学拿到oracle,微软 offer,每个offer都击打着自己脆弱的心情。当时安慰自己想:我每天都在进步,拿到offer早的同学都不怎么学了,如果我能毕业时候正好拿到offer,我就学到最多的东西。学校career fair上投的amazon2个月后联系了我,经过2轮的电面我拿到了第二学期的第一个onsite。

2012年5月,毕业典礼,搬去和同学合住了2周。6月初,通过了amazon的onsite。 2014年1月,在amazon干了一年半之后开始痒了,开始刷LeetCode,自己做很多题都不会,一个月做掉了自己能想出来的90题左右,也网申了一些公司。找第二份工作真的比第一份工作容易太多了,只要去申很快就有面试。好朋友也想跳两个人就一起刷,下班去吃碗越南米粉就回到公司开始做题,他很厉害 (也是包子的面试官),教了我好多题目。两个人一起讨论LeetCode效果很好。他对新技术非常有热情,下班后都会去看相关视频,好的就推荐给我看,看这些视频对面试时候的system design题目很有帮助。有天我们一起看了一个讲AWS的基于Twitter Storm的Kinesis的视频,过了两天去Groupon onsite就被问到一模一样的东西。4月拿了Groupon和LinkedIn的offer,被Facebook拒了。好朋友去了Yelp,一起来了湾区。

1 comment: