4. 8个月从CS菜鸟到拿到Google Offer的经历+内推

投了肯定有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知识最快的方法,

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教了方法,

那么这本书就教了方法论,

亦即思考过程,

和从初级思考过程到高级思考过程的思考过程。


第二,实践

刷题和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的时候,

就告诉自己时刻微笑,

一切问题都会解决。


最后,

希望大家都能找到心仪的工作。


投了肯定有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知识最快的方法,

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教了方法,

那么这本书就教了方法论,

亦即思考过程,

和从初级思考过程到高级思考过程的思考过程。


第二,实践

刷题和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的时候,

就告诉自己时刻微笑,

一切问题都会解决。


最后,

希望大家都能找到心仪的工作。

猜你喜欢

转载自blog.csdn.net/DylanDong/article/details/53141158