社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

准备 8 个月去面试 Google,结果进了 Amazon (内含 GitHub 热榜干货)

算法爱好者 • 5 年前 • 598 次点击  

(给算法爱好者加星标,修炼编程内功

来源:程序员的那些事(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。



推荐阅读  点击标题可跳转
赔 1.79 亿美元!谷歌前工程师违反竞业协议
GitHub 热门:谷歌工程实践文档
谷歌面试编程题及解题技巧(MIT版)



觉得本文有帮助?请分享给更多人

关注「算法爱好者」加星标,修炼编程内功

好文章,我在看❤️

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/62427
 
598 次点击