登录
  • #码农类general
  • #google
  • #工作信息
  • #求职
  • #找工就业

[再来一个] 自学CS半年拿到Google offer

金坷垃888
65665
77
/*继续努力攒人品*//*这个帖子就以大纲形式吧,趣味性差点,但是逻辑还凑合,都是干货*/

1.本人背景:1) 普通学校ECE专业phd,读了一年多因为各种原因就转ms找工作了。2) Phd方向属于ece里面非常理论非常坑爹的那种,来美国这一年多因为系里限制选课,所以基本上没学到什么跟cs软件开发相关的知识,倒是上了一堆没用的数学课。3) 本科也是ee的,只学了c语言, 汇编,以及大量的matlab编程经验(对找cs工作毫无用处)。如果说与cs相关的知识,tcp/ip,computer networking这块倒是还略精通。但仅此而已,并且完全不会面向对象编程。4) 无任何实习经历。请注意,楼主只是软件开发零基础,但是并不是cs零基础,因为毕竟是ee出身,一些底层的系统/网络的知识还是略懂一二的。楼主转成ms之后距离毕业只有几个月的时间,于是开始走上了半年多的自学cs,刷题面试的不归路。最后结果:给面试的公司并不多,但大部分都拿到了onsite, 一共5场onsite,搞定4个offer,最后一个offer是google,也是我最想去的。

2. 那这半年多你自学了什么?

1) 系统并深入的学习了Java: 熟练并且深入地掌握一门oo编程语言对于找工作的重要性不言而喻哦。2) 数据库以及web development知识。3) OOdesign的知识好好学了一下,比如head first那两本:一本design pattern一本oo design 我都看了,并且还记了笔记。4) 找其他学校同学要来的比较有料的software engineering course project若干,并且亲自动手design/implement了其中几个Project。这个过程还挺有收获的,同时也给简历上project那块加了几笔。5) 网上看了一大堆关于system design的东西,google三驾马车之类的。最后的感受是system design new grad一般考得不多,就算考也应该只是最基本的。总之这半年来一天学个10多个小时也算家常便饭。

3. 说说我是怎么刷题的我非常认真地刷了2.5遍leetcode,2遍cc150,并且每刷一遍都仔细做了总结。我这里核心在‘认真’两字:如何能够更加深入的理解算法的本质,提升自己举一反三的能力,以及不断总结自己犯的错误,不断提高代码质量。这就好比两个人虽然都声称自己刷了2遍leetcode,但一面试起来,两个人对算法的理解程度,做题的速度,以及举一反三的能力肯定是不一样的。比如说我周围的一些小伙伴时常会抱怨自己lc已经刷n遍,但面试题还是没见过/太难。但是其实仔细一分析,所谓的没见过的难题只是样子唬人,而本质只是原体变形而已,解决的思路都是想通的。我的做法是每做一道题都要不仅知道怎么解,还是知道为什么能想到这么解,以及有没有优化代码的一些小技巧。做多了你就基本上可以把leetcode题进行分类:比如哪些题都用了哪些通用的技巧…

4. 两条投简历的原则1) 越好的公司越要放到最后面试。因为你每面试一次,尤其是onsite,基本上会都有新的感悟,都会发现自己之前准备上的不足,而这个过程本身就是一种提高,所以说基本上是越面越强的。2) 投简历也要抓住时机不要错过机会:许多大公司招new grad都是在某一特定时间内,过了这段招满了就不招了。今年的例子比如微软思科雅虎。这三家公司我都没拿到面试。不过好在flg都是全年招人的。以上两条有些情况下是矛盾的,所以需要你来在这两个原则中做出平衡。

5. 大公司尤其是FLG招newgrad看什么这个我一会但开帖说说自己的感受。

6. 我是eecs专业的,我到底要不要读phd? 我是Phd,我不想读了到底要不要quit? 这是个严肃的主题同样会另外开帖谈谈我的感受。

欢迎想来google的人来找我内推,尤其是转专业转行的,大家都不容易,我会尽量努力帮大家推。过段时间不忙了我会放出邮箱。
77条回复
热度排序

发表回复