array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 一个老程序员工写的 Google 面试指南(GitHub 10 万 Star) - 爱码网

(给程序员的那些事加星标

原创:程序员的那些事(id:iProgrammer)

今天的推文,既是一份程序员面试准备的干货,也是一个正面积极的励志故事。

主人公是一位老程序员 John Washam,虽然 Google 是他朝思暮想的公司,不过最后成了 Amazon 工程师。

一个老程序员工写的 Google 面试指南(GitHub 10 万 Star)

(身着程序员标志套装的 John)


他写的这份面试资源,目前在 GitHub 收获 10 万 Star。

一个老程序员工写的 Google 面试指南(GitHub 10 万 Star)

已有中文版了:http://t.cn/RiOXMwx

目录截图

一个老程序员工写的 Google 面试指南(GitHub 10 万 Star)

一个老程序员工写的 Google 面试指南(GitHub 10 万 Star)

具体内容,大家可以在 GitHub 上看到。

下面和大家介绍 John 的一些经历。

作者的经历

John 经历还挺丰富的。中学的时候已接触编程,上大学却攻读经济学位,是他判断失误,他以为毕业后程序员会过于饱和。
一个老程序员工写的 Google 面试指南(GitHub 10 万 Star)

后来,他参军成为一名程序员,但招聘人员说服他进入军事情报部门,于是花了两年时间学习韩语。之后就在韩国服役了两年。

在退役之前,他曾试图重新捡起编程。虽然他在中学时学过 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 个月。

一个老程序员工写的 Google 面试指南(GitHub 10 万 Star)

(John 为面试复习打印的算法资料)

他踩过的一些坑,比如:

a.可以缩短准备过程,不一定非得搞 8 个月。

一开始我研究了一些不需要的主题,有些是因为我认为我在面试时会用到它们,有些是因为我想在刚开始工作时就掌握这些知识。我不想成为分配给我的团队的负担。结果我只是准备过度了。

b. 花了 3 周时间阅读了一本 1000 页的 C++书。虽然没有掌握全部内容,但我现在对 C++ 有了一定的了解。后来事实证明,他在面试中用的是 Python,而不是 C++。他原以为需要 C++、C 或 Java 。一个老程序员工写的 Google 面试指南(GitHub 10 万 Star)

此外,他为面试而读的书,比实际需要的多得多,有三到四本书就够了。

一个老程序员工写的 Google 面试指南(GitHub 10 万 Star)

(2016 年夏天 John 读了这些书)

2017 年 1 月,他没面上 Google。

2017年 3 月,正式入职 AWS。

推荐阅读  点击标题可跳转

从流水线工人,到谷歌上班的程序媛

面试了一个 46 岁的程序员,我思绪万千

17 岁高中生独立开发全球疫情追踪网站火了!

关注「程序员的那些事」加星标,不错过圈内事

一个老程序员工写的 Google 面试指南(GitHub 10 万 Star)

圈内事,我在看❤️

相关文章: