人无远虑,必有近忧,没有压力反而会出问题

转帖:8个月从CS菜鸟到拿到Google Offer的经历+内推

ptmjdz 发布于 2015年04月04日
无人欣赏。

以下内容来自一亩三分地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. 训练 就是训练用1中语言将算法应用到数据结构上; 方法就是刷题, 我只刷了CC150, 完完整整刷了5遍, 最后每次面试, 都快速刷一遍。

  2. 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。

当只有一个确定的目标, 一切都别的简单与坚定。

  1. 清单和资源 8月底, 已经毕业快3个月了, 还没找到工作, 觉得公司该面的都面了, 其实不然。 我花了两个小时, 把我所有想面还没面的公司列了出来, 一共25家; 我一一找资源, 看自己有没有人认识的人可以refer, 如果没有, 就去各大中文社区有没有可以refer的, 结果22家都被refer。

  2. 结盟 找到身边一起招工作且态度积极的战友, 一起努力。

第四,心态 1.自信 当刷了那么多遍题, 做了那么多储备, build出自己的作品, 自信便会出来, 突然某一天, 一个声音告诉自己, I am ready.

  1. 信念 其实欲望有多大, 信念就有多强。

还可以通过meditation, 天天幻想自己拿到offer的场景。

  1. 越败越战 不断磨练自己的面试技巧 发现知识漏洞,及时补救

第五,面试技巧 介绍自己的background 精心准备自己的education background, 和自己所做的projects, 对着镜子自己演练熟了, 也可以找朋友做Mock interview.

准备3个问题 一定要问, 让牠们感受到你的兴趣和热忱。

微笑 从踏进公司大楼Onsite的时候, 就告诉自己时刻微笑, 一切问题都会解决。

最后, 希望大家都能找到心仪的工作。 如果需要refer Google, 可以发邮件给我, grefermit AT gmail dot com

共10条回复
清醒疯子 回复于 2015年04月05日

进Google,好像也不难的样子$_$

generalzyq 回复于 2015年04月05日

楼上说不难那位,原文的作者是康奈尔的硕士好吗?

沃尘丰 回复于 2015年04月05日

看起来很不错哦,收藏之~~~ 谢谢LZ啦!!!

Brownie 回复于 2015年04月05日

2楼 @generalzyq 应该说康奈尔的硕士项目也没有那么难。作者自己也说了找工作时的程度和本科毕业时没什么区别,康奈尔的名气只是让他拿到了面试。而这样的基础,经过短期训练就能拿到Google offer,确实说明Google并不是特别的难。

其实现在Google FB什么的面试套路化非常明显,这就是一个最好的例子。跟高考托福之类的标准化考试一样,找到了套路之后,剩下的就是刷了(中国学生最擅长的)。具体的可以参考我之前写的帖子:)

newguy 回复于 2015年04月06日

4楼 @Brownie 我也面试过G和A,不过因为没做好准备完全没刷过题,抱憾而归做了分母,其实只要刷过2到3个月的题多多去面试其他公司锻炼成功率还是很高的。

Brownie 回复于 2015年04月06日

5楼 @newguy 是啊,特别是Google,现在招人的range太大了。

小小书童 回复于 2015年04月07日

要不要人阿,我卖人。

sndnyang 回复于 2015年05月06日

4楼 @Brownie 康奈尔的硕士项目不难? 主要是有些人 哪怕本科期间基本没写过代码, 但他们的成绩还可能是 90+。 也就是 GPA 仍然远超我这种虽然写过点代码(比如OJ上刷题),但平时不做作业,考前不抱佛脚的家伙, 我也不作弊。

Brownie 回复于 2015年05月08日

8楼 @sndnyang 相对于康奈尔或者同等学校的其他专业/项目了来说,不难。再说了找工作明显是刷oj比gpa有用多了

wenzhishen 回复于 2016年01月15日

牛,现在也在做打算。

登录 或者 注册