以下内容来自一亩三分地link text
投了肯定有100家以上, 一共面了30家, 11个onsite, 前7次都挂了, 后4次拿到了3家大公司和一家startup的Offer, 最后从了G家。
我的背景, 国内软件工程混沌过了4年, 毕业时连Java,C++的main都分不清, 一共没写过100行代码, CS基础知识是极度零散与凌乱的。 误打误撞读了CS 一年的master, 12年9月入学, 13年1月底开始找工作, 当时的程度, 和本科毕业时, 没太多区别。
总结自己, 一共五点支持我, 撑了过来。 一为知识, 二为实践, 三为目标, 四为心态, 五为技巧。
第一,知识 掌握一门编程语言 我选了python, 因为语法和数据结构足够简单, 让我更加关注代码的作用 — 目的apply到数据结构上。
入门: codeacademy 学python basic 应用: 用python写了一遍CC150上能写的题目 这时候就逐渐看的懂Python Documentation了
数据结构与算法 数据结构:找自己学校的课件或网上教程,仔细研读了3遍 算法:其实对找工作用处不大,只要弄懂那些应用到数据结构上的常用算法(DFS etc)和Dynamic Programming就差不多了
训练 就是训练用1中语言将算法应用到数据结构上; 方法就是刷题, 我只刷了CC150, 完完整整刷了5遍, 最后每次面试, 都快速刷一遍。
CS素养: 刷完题后,以为自己还不错了, 但是每面还被拒, 发现与面试官随便聊聊, 就会暴露自己缺乏CS素养, 也就是CS基本常识, 以及各种知识的关系。
入门: 获取比较全面的CS知识最快的方法, www.programmerinterview.com 把主要的section死记了两遍, 偶尔可以应付面试官, 但是自己却没办法宏观把握和理解知识。 B. 中级: 深入学习: a.数据结构 b. 算法 c. 数据库 d. 操作系统
如果能上CS的科目, 这4科是最好上的, fancy的课可能对找一个general developer的帮助不大。 如果没上过, 就上online的课。
e. 推荐Berkley的CS的入门课, 建立起了CS思维过程 Structure and Interpretation of computer programming: http://www.youtube.com/playlist?list=PL3E89002AA9B9879E
C. 进阶 全面吸收,囫囵吞枣; 以下知识只是为了完善知识体系, 快速学习的。 语言: Java, C++ 随便找本入门书, 花几个小时看一遍, 了解数据结构在这些语言里 都叫什么, 怎么使。 b. front end: HTML, CSS, JQuery, XML 从W3C school 上快速看每一块内容。 c. Linux 指令 d. Web development: Django e. Mobile: android: online course (udemy) iOS: iOS Programming f. Others Design Pattern: online course (udemy) Programming Pearls: 面google前花了两天看的, 如果说CC150和leetcode教了方法, 那么这本书就教了方法论, 亦即思考过程, 和从初级思考过程到高级思考过程的思考过程。 . visit 1point3acres.com for more.
第二,实践 刷题和CS常识让自己有了lego, 但是并不自信, 因为没有作品。
自己去写code, build自己的作品。 . from: 1point3acres.com/bbs 可以自己写个side project, 比如我就写了个iOS的app。 也可以认真写写course project, 或者找老师做点项目。
第三,目标 1.一定 自己和周围很多ECE朋友的经验告诉我, 只要你想找CS的工作, 一定能找到。
所以别有备胎, 比如回国工作, 再继续读个书,etc。
当只有一个确定的目标, 一切都别的简单与坚定。
清单和资源 8月底, 已经毕业快3个月了, 还没找到工作, 觉得公司该面的都面了, 其实不然。 我花了两个小时, 把我所有想面还没面的公司列了出来, 一共25家; 我一一找资源, 看自己有没有人认识的人可以refer, 如果没有, 就去各大中文社区有没有可以refer的, 结果22家都被refer。
结盟 找到身边一起招工作且态度积极的战友, 一起努力。
第四,心态 1.自信 当刷了那么多遍题, 做了那么多储备, build出自己的作品, 自信便会出来, 突然某一天, 一个声音告诉自己, I am ready.
还可以通过meditation, 天天幻想自己拿到offer的场景。
第五,面试技巧 介绍自己的background 精心准备自己的education background, 和自己所做的projects, 对着镜子自己演练熟了, 也可以找朋友做Mock interview.
准备3个问题 一定要问, 让牠们感受到你的兴趣和热忱。
微笑 从踏进公司大楼Onsite的时候, 就告诉自己时刻微笑, 一切问题都会解决。
最后, 希望大家都能找到心仪的工作。 如果需要refer Google, 可以发邮件给我, grefermit AT gmail dot com
2楼 @generalzyq 应该说康奈尔的硕士项目也没有那么难。作者自己也说了找工作时的程度和本科毕业时没什么区别,康奈尔的名气只是让他拿到了面试。而这样的基础,经过短期训练就能拿到Google offer,确实说明Google并不是特别的难。
其实现在Google FB什么的面试套路化非常明显,这就是一个最好的例子。跟高考托福之类的标准化考试一样,找到了套路之后,剩下的就是刷了(中国学生最擅长的)。具体的可以参考我之前写的帖子:)