8个月从CS菜鸟到拿到Google Offer的经历+内推
http://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=77453&page=1&authorid=103773
投了肯定有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就差不多了
3. 训练
就是训练用1中语言将算法应用到数据结构上;
方法就是刷题,
我只刷了CC150,
完完整整刷了5遍,
最后每次面试,
都快速刷一遍。
4. CS素养:
刷完题后,以为自己还不错了,
但是每面还被拒,
发现与面试官随便聊聊,
就会暴露自己缺乏CS素养,
也就是CS基本常识,
以及各种知识的关系。
入门:
获取比较全面的CS知识最快的方法,
把主要的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教了方法,
那么这本书就教了方法论,
亦即思考过程,
和从初级思考过程到高级思考过程的思考过程。
第二,实践
刷题和CS常识让自己有了lego,
但是并不自信,
因为没有作品。
自己去写code,
build自己的作品。
可以自己写个side project,
比如我就写了个iOS的app。
也可以认真写写course project,
或者找老师做点项目。
第三,目标
1.一定
自己和周围很多ECE朋友的经验告诉我,
只要你想找CS的工作,
一定能找到。
所以别有备胎,
比如回国工作,
再继续读个书,etc。
当只有一个确定的目标,
一切都别的简单与坚定。
2. 清单和资源
8月底,
已经毕业快3个月了,
还没找到工作,
觉得公司该面的都面了,
其实不然。
我花了两个小时,
把我所有想面还没面的公司列了出来,
一共25家;
我一一找资源,
看自己有没有人认识的人可以refer,
如果没有,
就去各大中文社区有没有可以refer的,
结果22家都被refer。
3. 结盟
找到身边一起招工作且态度积极的战友,
一起努力。
第四,心态
1.自信
当刷了那么多遍题,
做了那么多储备,
build出自己的作品,
自信便会出来,
突然某一天,
一个声音告诉自己,
I am ready.
2. 信念
其实欲望有多大,
信念就有多强。
还可以通过meditation,
天天幻想自己拿到offer的场景。
3. 越败越战
不断磨练自己的面试技巧
发现知识漏洞,及时补救
第五,面试技巧
介绍自己的background
精心准备自己的education background,
和自己所做的projects,
对着镜子自己演练熟了,
也可以找朋友做Mock interview.
准备3个问题
一定要问,
让牠们感受到你的兴趣和热忱。
微笑
从踏进公司大楼Onsite的时候,
就告诉自己时刻微笑,
一切问题都会解决。
最后,
希望大家都能找到心仪的工作。