Skip to main content

如何成功拿下 Google 等顶尖科技公司的 offer?

我曾在我个人的YouTube编程教育频道(名为CS Dojo)视频中讨论过,我是如何拿下Google软件工程师工作的。
本文中我将做更详细的介绍。下面让我们开始吧!

第1步:学习编程

这是成为软件工程师的最低要求。
为此,我建议你从一些交互式教学网站着手,你可以从这些网站学习到最基本的编程知识。例如Codecademy、freeCodeCamp、SoloLearn等。
之后,我会看视频教程来学习更多高级的主题。我推荐YouTube、Pluralsight、Lynda.com和Udemy等网站。在这些网站上,你可以找到的教程包括:Web开发;移动开发;游戏开发。
请根据个人兴趣选择。
但我应该先学习哪种编程语言呢?
简单的答案是:选择JavaScript或Python,但实际上取决于你的个人兴趣。我在以下的视频中有做更加详细的介绍。

第2步:建立一些个人项目

在学习了编程教程之后,你应该建立一些个人项目来练习学到的知识。
为此,你应该找到你感兴趣的东西来创建。
例如,如果你喜欢摄影,那么或许你可以创建一个所有照片的作品集。如果你喜欢炒股,那么也许你可以创建一个系统,来为你分析股票图表。又或者你喜欢解决问题,那么可以尝试参加编程大赛。
在创建自己的项目的时候,首先建立尽可能多的内容。如果遇到困难,可以利用在线或线下资源寻求帮助。例如,如果你遇到与编程相关的问题,那么可以在Stack Overflow询问具体的技术问题。

第3步:找到第一份编程工作或实习机会

在创建了一些个人项目之后,你应该可以获得第一份编程工作或实习机会了。这可以为你今后面试顶级科技公司积累工作经验。
第一份工作就进入顶级科技公司也是有可能的,但是有点操之过急,一般来说首先在不知名的公司获得第一份工作的情况更加常见。
申请软件工程师工作的最佳方式
简单地在线申请工作不一定是最好的策略,因为差不多别人都会这么做。
相反,我建议你使用LinkedIn和实名网络找到第一份编程工作。
在LinkedIn上,首先找到你感兴趣的公司的招聘人员。然后,问问他们你是否有资格获得你感兴趣的职位。如果你不够格,那么你也应该问问怎样更好地做准备。
对于实名网络,我推荐你通过Meetup等网站,与当地公司的工程师和招聘人员会面。
不过这些还不够
如果你想申请小型或中型的公司,你可以使用LinkedIn和实名网络。但是,我发现对于Google和Facecbook等大受欢迎的公司来说,这种策略效果很差。
对于这些大公司,我建议你结合以下三种策略:
  • 参加附近大学的招聘会和招聘活动;
  • 找就职于这些公司的朋友,让他们推荐你;
  • 只需在线申请。
结合上述策略可以增加拿到这些顶级科技公司面试的机会。
顺便说一句,我不清楚为什么这些大公司在LinkedIn上的效率会这么低,但我觉得可能是因为申请的人太多了。毕竟他们太受欢迎了:P

第4步:学习数据结构和算法

在与Google和微软等顶级科技公司面试中,经常会遇到有关数据结构和算法的问题。所以,你应该学一学这些内容。
我推荐你观看我的这个关于数据结构和算法的视频来学习基础知识。通过这些视频,可以让你更加简单地学习这个主题。
由于这个系列只有7个视频,所以你需要更多资料来学习更高级的主题。
下面是几种流行的选择:
  • 斯坦福大学的课程:
    https://www.coursera.org/specializations/algorithms
  • 麻省理工学院的YouTube课程:
    https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb
  • 《算法设计手册》(The Algorithm Design Manual),作者Skiena;
  • 《算法》第四版 (Algorithms),作者:Robert Sedgewick,Kevin Wayne。
你应该看看上述的资源,然后选择个人最喜欢的学习。

第5步:准备编程面试

Google和微软等公司的编程面试非常难,但是准备这些面试很简单。
在你对数据结构和算法有了深刻的理解后,我会推荐下列三种资源:
  • Leetcode:练习编程面试问题的互动平台;
  • Cracking the Coding Interview (攻克编程面试): 一本关于编程面试的流行书籍;
  • Daily Coding Problem (每日编码问题):一个邮件列表,每天都会给你一个问题。
练习几周后,你应该开始模拟面试。
怎么进行模拟面试?
基本上,你可以让你朋友根据上述资源提问你。然后,在纸上或Google文档上解决每个额外难题,并向你的朋友解释解决方案。你需要从面试者和被面试者两个角度做练习,如此你就可以感受一下面试官。
在做大约20次左右的模拟面试后,你就可以开始面试你想去的公司了。

第6步:申请,申请并再次申请

在申请顶级科技公司的时候,请利用上述三种策略:
  • 参加附近大学的招聘会和招聘活动;
  • 找就职于这些公司的朋友,让他们推荐你;
  • 只需在线申请。
如果一次申请不成功,也不要灰心。事实上,这些公司的竞争十分激烈,失败也是意料之中的事。
就我个人而言,我申请了5次,才拿到了Google软件工程师的工作。

总结

  • 第1步:学习编程;
  • 第2步:建立一些个人项目;
  • 第3步:找到第一份编程工作或实习机会;
  • 第4步:学习数据结构和算法;
  • 第5步:准备编程面试;
  • 第6步:申请,申请并再次申请:)
真的就这么简单吗?没错,就这么简单。尽管如此,想要完成以上六个步骤还是花费大量的时间和精力。
那么补充一个问题:我需要获得计算机科学学位吗?
简单的答案是:不。但是,计算机科学学位的帮助性非常大。如果你读完计算机科学,那么就会掌握第1-4步的大部分内容(学习编程、做个人项目、找到第一份编程工作或实习机会以及学习数据结构和算法)。
如果没有计算机科学学位,你只能自学。
此外,请注意,即使拥有计算机科学学位,想要在顶级科技公司找到一份软件工程师的工作也需要很多准备工作。
我需要就读麻省理工学院、斯坦福大学、卡内基梅隆大学等顶尖大学吗?
同样,简单的答案是:不。这些大学毕业会有所帮助,但远非必要。
Google的前任人事高级副总裁Laszlo Bock也同意这一观点。
他曾在他的著作《重新定义团队:谷歌如何工作》(Work Rules!)中写道:与麻省理工学院等顶尖学校中表现平平的学生相比,Google更加喜欢知名度较低的学校毕业表现优异的学生。
我认为这是有道理的,因为如果你聪明而专注,那么去哪所学校并不重要。
我需要很漂亮的成绩单吗?
简单的答案依然是:不。
拥有高分可能对面试有点帮助,但是在简历中展示扎实的实践经验和有趣的项目更为重要。
事实上,《重新定义团队:谷歌如何工作》(Work Rules!)一书中提到:过去Google比较关注候选人的成绩单。然而,他们发现高分与长期在工作中有良好表现并没有太大关系。之后,他们不再强调成绩单。
那么我需要什么?
基本上,你所需要的只是强大的编程技术和解决问题的能力,对计算机科学知识良好的理解,以及在简历中展示有趣的项目和经验。
通过以上我介绍的6个步骤,你可以具备所有这些能力。
那么怎样才能写一份好简历?
以下是我在申请Google时的简历模板,你可以参考:
这是我过去申请Google的软件工程师时,使用的简历。它应该只有一页,所以我会说我的简历太长了。仅作参考吧。
其他关于写简历的资源
  • CareerCup很好地概述了该主题:
    https://www.careercup.com/resume;
  • 我朋友Zhia Hwa Chong是Twitter的软件工程师,他写了一篇很好的文章进行了介绍:
    https://medium.freecodecamp.org/how-to-write-a-great-resume-for-software-engineers-75d514dd8322
谢谢你阅读这篇文章,祝你好运!
原文:https://medium.freecodecamp.org/how-to-get-a-software-engineer-job-at-google-and-other-top-tech-companies-efa235a33a6d
作者:YK Sugi,CS Dojo创始人。
译者:弯月,责编:郭芮

Comments

Popular posts from this blog

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checking a shared sec

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into /opt/course/1/context_default_no_kubectl.sh , but without the use of k

标 题: 关于Daniel Guo 律师

发信人: q123452017 (水天一色), 信区: I140 标  题: 关于Daniel Guo 律师 关键字: Daniel Guo 发信站: BBS 未名空间站 (Thu Apr 26 02:11:35 2018, 美东) 这些是lz根据亲身经历在 Immigration版上发的帖以及一些关于Daniel Guo 律师的回 帖,希望大家不要被一些马甲帖广告帖所骗,慎重考虑选择律师。 WG 和Guo两家律师对比 1. fully refund的合约上的区别 wegreened家是case不过只要第二次没有file就可以fully refund。郭家是要两次case 没过才给refund,而且只要第二次pl draft好律师就可以不退任何律师费。 2. 回信速度 wegreened家一般24小时内回信。郭律师是在可以快速回复的时候才回复很快,对于需 要时间回复或者是不愿意给出确切答复的时候就回复的比较慢。 比如:lz问过郭律师他们律所在nsc区域最近eb1a的通过率,大家也知道nsc现在杀手如 云,但是郭律师过了两天只回复说让秘书update最近的case然后去网页上查,但是上面 并没有写明tsc还是nsc。 lz还问过郭律师关于准备ps (他要求的文件)的一些问题,模版上有的东西不是很清 楚,但是他一般就是把模版上的东西再copy一遍发过来。 3. 材料区别 (推荐信) 因为我只收到郭律师写的推荐信,所以可以比下两家推荐信 wegreened家推荐信写的比较长,而且每封推荐信会用不同的语气和风格,会包含lz写 的research summary里面的某个方面 郭家四封推荐信都是一个格式,一种语气,连地址,信的称呼都是一样的,怎么看四封 推荐信都是同一个人写出来的。套路基本都是第一段目的,第二段介绍推荐人,第三段 某篇或几篇文章的abstract,最后结论 4. 前期材料准备 wegreened家要按照他们的模版准备一个十几页的research summary。 郭律师在签约之前说的是只需要准备五页左右的summary,但是在lz签完约收到推荐信 ,郭律师又发来一个很长的ps要lz自己填,而且和pl的格式基本差不多。 总结下来,申请自己上心最重要。但是如果选律师,lz更倾向于wegreened,