分享

我是如何一步一步拿下Google offer的

 heii2 2019-02-11

春节长假不知不觉已经结束了,时间过的好快啊!又要回到单位上班啦,很多小伙伴年后开始准备找工作了,希望今天的春招不要太冷!最近看到网上一位大牛写的一篇文章关于如果一步一步拿到顶尖互联网公司Google的offer,非常有启发,分享给大家!

01

先看这张神图(攻克编程面试)


02

有强烈的渴望


作者是一名软件工程师,有3年多的工作经验。曾经在一家创业公司和几家金融公司工作过,这些公司的历练和积累的经验使得她比一般的新毕业生近Google要更容易一些。她从未有过1%的希望进入谷歌,因为它被认为是业界最难面试的软件公司之一。但在她的脑海里,从一开始她就咬定青山不放松,不撞南墙不回头,放手一搏,下面看看她的闯关过程和攻略!


03

分析面试的要素


根据经验,任何面试准备都涉及掌握5个重要的事情。编码,设计,语言特定概念, 以前的项目经历和还有不起眼的但是重要的公司背景了解。


1).编程

在我的职业生涯中,我所面试过的所有公司都至少有两轮纯算法问题,在这些问题中你遇到了问题,你需要为它提出一个解决方案和代码。

例如,在控制台上编写用于打印数字1到10的代码。(当然这只是一个简单的例子)

我在本文的其余部分详细阐述了本节的更多细节。


2).项目系统设计

根据我的面试级别,一些公司有一轮项目设计的问题,你给了一个相当抽象的系统,你需要为该系统设计一个框架。

例如,如果您要从头开始构建一个社交网站,您将如何设计该系统?

对于接下来的3个部分,一些公司将有一个专门的轮次,而另一些公司可能会将其与其他部分(如编码或设计)结合起来。


3).熟悉首选语言

对于大多数访谈,你应该为公司提供你最熟悉的语言。除了编码能力之外,在大多数情况下,你应该非常了解这门语言。有些公司可能会向你询问有关基础的知识信息,而有些公司可能会深入考察某个领域。

例如什么是Java中的继承?


4).以前的项目/简历

这是我有时完全忘记准备的那些部分之一,因为我完全专注于使编码和设计等其他部分正确,但面试不只是编码!它是为了证明自己是一个好的开发者。这涉及到向他们解释你在过去的项目中如何与他人合作。主要是根据你简历上的技能或项目来询问。

你能告诉我一些你最自豪的项目吗?


5).了解公司知识

提前了解关于公司的背景并专门为它做准备通常是面试者最被忽视的部分,我只能说,这些部分其实是可以让你加分的,可以让你脱颖而出,说明你对这个公司非常重视,也非常渴望加入。



04

有计划的充分准备


去谷歌面试不是一件容易的事情,不打无准备的仗!我规划了下面几件事:


1).看Udemy课程

我记得在Udemy购买3门课程开始我的准备工作。这些课程帮助我明确了解基础知识。注意:我从未完成所有这些课程,但完成了大部分课程。此外,我选择参加这些课程,因为跟看书相比,视频帮我更快更好地掌握了这些课程,比你自学要快很多。我有一段时间没有参加过面试,因此这些课程也让我在课堂上进行编码练习,提高动手能力。

  1. 数据结构和算法分析:了解如何从头开始实现数据结构。

  2. 面向软件开发人员的Java编程大师班:适用于Java编程基础知识。

  3. 软件工程面试:通过一些实时会话了解Google的完整面试流程。


2).刷Leetcode

对于我应聘的岗位,大多数的科技巨头公司的面试都是要考编程和算法的,因为我还没有很多行业经验,所以选择用Leetcode premium对我来说非常有必要。它花了我35美元/月,但这70美元非常超值。Leetcode是我用来练习编码的唯一资源,我强烈推荐给那些试图进入科技巨头的人,非常有用!


3).好好利用YouTube视频

在准备期间我不停的刷YouTube,不仅仅是为了学习同时也是放松休闲。我从未想到在2个月后我将参与YouTube的工作,奇迹发生了!

在你发现你学习的内容有一些概念不太容易懂或者比较拗口的时候,看视频是一个快捷办法。但是,在浏览获取信息时,我曾经观看过许多其他视频。你永远不知道哪条小信息可以帮到你,推荐下面几条:


1.https:///ko-KkSmp-Lk

2.https:///XKu_SEDAykw

3.https:///78t_yHuGg-0


05
奋力冲刺1个月


Leetcode网站,你可以在其中编写和运行与面试中提到的类似的编程问题。注意:在Google访问中向我提出的所有问题都无法在互联网上找到,但基本概念仍然相同。因此,它是关于掌握解决问题的艺术,找到规律并实战练习。

Leetcode premium有4个值得注意的部分:

  • 简单

  • 中等

  • 困难

  • 公司专项问题

每个类别都有多个子类别:

  • 数组

  • 字符串

  • 链接列表

  • 回溯

  • 搜索/排序

  • 图表

  • 数学(概率等)


集训

我在现场面试前一个月开始进行密集编码准备,最后解决了大约60-70个问题,这些是面试所必须付出的努力。其中关键是在于掌握底层的计算机的基础知识。我每天都会解决2个问题

  • 简单的问题花的时间可能有所不同,可能需要30分钟到1小时。中等问题对我来说实际上很难(有时反倒是简单的问题对我来说也很难)。

  • 中等问题解决时间限制为1小时。如果你不知道解决方案,在15分钟结束时,查找并尝试实施。

  • 在一小时结束时,如果你的解决方案无法正常工作或无法通过某些测试用例,请停止并查看解决方案。

这是一个粗略的计划,但可以随意混合一点,以避免准备变得单调。

  • 完成数组和字符串EASY(5天)以获得一些信心。

  • 每天做1个中等数组或字符串以及1个简单的链表或回溯。

  • 树和图表的简单问题。

  • 做排序和搜索。

  • 其他问题。

06

小贴士

不要给自己太大的压力,在准备面试的过程中,我还是正常的生活,并100%的完成自己手上公司的工作!

每天花费的时间不需要太多,但是一定一定要坚持,至少坚持一两个月,有效利用每天的准备时间。

充分利用周末的时间,周末的时间十分宝贵,要充分利用!我把周末称作“周末加油站”,因为我能在周末完成所有 Leetcode 上的简单问题和一些中等难度的问题,那么就会感觉元气满满,充满能量。

招聘人员他们也是你的朋友,在参加面试之前,可以随时向招聘人员询问招聘的形式、期望、准备材料以及提示等等。

我建议你不要一整周都专门用于刷题,应该结合其他方面的学习。时不时地做一些实战项目,在中途观看一些视频,学会享受学习的过程!

特别对于 Google 来说,有一件事情对我的帮助很大,那就是我要求招聘人员给我提供了一台 Chromebook 来写代码,因为通常白板会给我制造麻烦。我的做法是:利用白板整理出解决方案,方便面试官查看,然后最后用 Chromebook 写出代码。现如今很多公司都鼓励这种做法,但是你必须提出这样的要求!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多