面试准备 8 个月,冲着 Google,结果进了 Amazon
The following article is from 程序员的那些事 Author 程序员的那些事
(给CPP开发者加星标,提升C/C++技能)
原创:程序员的那些事(id:iProgrammer)
今天的推文,既是一份程序员面试准备的干货,也是一个正面积极的励志故事。
主人公是一位老程序员 John Washam,虽然 Google 是他朝思暮想的公司,不过最后成了 Amazon 工程师。
(身着程序员标志套装的 John)
他写的这份面试资源,目前在 GitHub 收获 10 万 Star。
已有中文版了:http://t.cn/RiOXMwx
目录截图
具体内容,大家可以在 GitHub 上看到。
下面和大家介绍 John 的一些经历。
作者的经历
John 经历还挺丰富的。中学的时候已接触编程,上大学却攻读经济学位,是他判断失误,他以为毕业后程序员会过于饱和。
后来,他参军成为一名程序员,但招聘人员说服他进入军事情报部门,于是花了两年时间学习韩语。之后就在韩国服役了两年。
在退役之前,他曾试图重新捡起编程。虽然他在中学时学过 BASIC,并一直坚持到高中,但他选了 C++,发现跨度太大了,没 hold 住。不过他喜欢做网站。
John 大概是 2000 年退役,之后在韩国呆了一年,教英语。同时利用晚上和周末的时间自学 Web 编程,用 Perl、HTML、CSS(当时还很新)、JavaScript 和 SQL。
之后的 15 年中,他创办了 3 家公司,其中 2 家仍在运营并产生收入(这话是他在 2016 年说的)。曾在大公司和小公司工作,帮助初创公司启动和成长,招募和管理团队。他做过产品经理、CEO、设计师和市场营销人员。
不甘现状,寻求职业改变
在 2016 年的前几年,John 没有计算机科学(CS)学位的弊端开始凸显了。以前他自认为自己属于热门技术人员类型,能在任何地方都能找到工作。
但在 2013 年找工作的过程中,他意识到自己的技能有所欠缺。他在业余时间花了太多时间通过创业来赚钱,以至于技能都退化了,没有跟上科技步伐。
大家别误解为 John 没技术。他还是有能力,但不是在他个人想要从事的技术或领域。虽然他能在过时技术或领域找到工作,尽管那里也有很多钱,但他没有看到令人兴奋的前景。
曾有一次,他非常想加入一个风险投资公司运营的创业实验室。然而他没有 CS 学位,也没有相应的技能和知识。
在 2016 年初,John 正式决定从 Web 开发者转行到软件工程师。
(保守估算来看,John 在这一年应该有 37 或 38 岁了。美国高中生正常毕业时 17、18 岁,读完大学 21 或 22。2000 年他从韩国退役时差不多 23 或 24,再过了 15 年……)
为什么选 Google?
Google 设置了一个非常高的招聘门槛。他们只想雇佣最好的人。随着 John 了解得越多,就越想在那里工作。
简而言之,Google 是一家聘用聪明、有创造力的员工并善待他们的公司。谷歌奖励优点,鼓励卓越想法,并给予员工为用户做出正确决定的自由。
因此他认为,如果目标定得很高(在 Google 找到工作),即使没有被选中,他仍然可以在其他地方找到一份入门级的软件开发工程师工作。
终成正果
John 完全放下此前 15 年 Web 开发的经历。他曾经在文章称,他有像 CS 专业毕业生那样的热情。
这对我来说是一个新的世界,我才刚刚开始。虽然知道自己会犯错误,但我不怕。我也想学习我能学到的一切,成为任何团队的优秀成员。
于是他就开始准备冲击 Google 的面试,每天学习 8~12 小时,大概坚持了 8 个月。
(John 为面试复习打印的算法资料)
他踩过的一些坑,比如:
a.可以缩短准备过程,不一定非得搞 8 个月。
一开始我研究了一些不需要的主题,有些是因为我认为我在面试时会用到它们,有些是因为我想在刚开始工作时就掌握这些知识。我不想成为分配给我的团队的负担。结果我只是准备过度了。
b. 花了 3 周时间阅读了一本 1000 页的 C++书。虽然没有掌握全部内容,但他现在对 C++ 有了一定的了解。后来事实证明,他在面试中用的是 Python,而不是 C++。他原以为需要 C++、C 或 Java 。
此外,他为面试而读的书,比实际需要的多得多,有三到四本书就够了。
(2016 年夏天 John 读了这些书)
2017 年 1 月,他没面上 Google。
2017年 3 月,正式入职 AWS。
看完本文有帮助?请分享给更多人
关注「CPP开发者」加星标,提升C/C++技能
好文章,我在看❤️