如何在Google和其他高科技公司获得软件工程师职位

by YK Sugi

由YK Sugi

如何在Google和其他高科技公司获得软件工程师职位 (How to Get a Software Engineer Job at Google and Other Top Tech Companies)

Hi everyone!

嗨,大家好!

I’ve already talked about how I personally got a software engineer job at Google in a few videos on my programming-education YouTube channel called CS Dojo.

我已经在我的编程教育YouTube频道CS Dojo上的一些视频中谈到了我个人如何在Google担任软件工程师的工作。

However, a lot of people still ask me about how to get a job at Google as a software engineer. So, here’s my article explaining the strategy I would use.

但是,仍然有很多人问我如何在Google担任软件工程师。 因此,这是我的文章,说明了我将使用的策略。

You can use the same strategy to get a software engineering job not just at Google, but also at other top tech companies like Amazon, Microsoft, and Facebook.

您可以使用相同的策略,不仅在Google处获得软件工程工作,还可以在亚马逊,微软和Facebook等其他顶级高科技公司获得软件工程工作。

In this article, I’m going to show you the 6 step process for landing a job at one of these companies. Along the way, I’m also going to discuss:

在本文中,我将向您展示在这些公司之一中找到工作的6个步骤。 在此过程中,我还将讨论:

  • How to learn to code in the first place

    首先如何学习编码
  • What to learn after learning to code

    学习编码后要学习什么
  • How to get your first coding job or internship

    如何获得第一份编码工作或实习
  • The best ways to apply for software engineer jobs

    申请软件工程师职位的最佳方法
  • How best to prepare for programming interviews

    如何最好地为编程面试做准备
  • Is it important to get a computer science degree?

    获得计算机科学学位很重要吗?
  • Is it important to go to a top university?

    去顶尖大学重要吗?

Okay, let’s get started!

好的,让我们开始吧!

步骤1:学习编码 (Step 1: Learn to code)

This is the absolute minimum qualification you need to become a software engineer.

这是成为软件工程师所需的绝对最低资格。

For this, I’d recommend you get started with an interactive website such as Codecademy and freeCodeCamp. You can learn most of the programming fundamentals from these sites. I also heard that SoloLearn is good, too.

为此,我建议您开始使用诸如CodecademyfreeCodeCamp之类的交互式网站。 您可以从这些站点学习大多数编程基础知识。 我也听说SoloLearn也很好。

After that, I would use video tutorials to learn more advanced topics. I recommend websites like YouTube, Pluralsight, Lynda.com and Udemy for this. On these websites, you should be able to find tutorials on topics like:

之后,我将使用视频教程来学习更多高级主题。 为此 ,我建议使用YouTubePluralsightLynda.comUdemy之类的网站。 在这些网站上,您应该能够找到有关以下主题的教程:

  • Web development

    Web开发
  • Mobile development

    移动开发
  • Game development

    游戏开发

depending on your interest.

根据您的兴趣。

但是,等等,我应该首先学习哪种编程语言? (But wait, what programming language should I learn first?)

My short answer would be, pick either JavaScript or Python, but it really depends on your interests. I have a longer answer to this question in this video.

我的简短答案是选择JavaScript还是Python,但这实际上取决于您的兴趣。 在此视频中,我对这个问题的回答更长一些。

步骤2:从事一些个人项目 (Step 2: Work on a few personal projects)

After you’ve followed a few programming tutorials, you should build a few personal projects to practice using what you’ve learned.

在学习了一些编程教程之后,您应该构建一些个人项目来练习使用所学的知识。

For this, you should find something you’re interested in building.

为此,您应该找到对构建感兴趣的东西。

For example, if you like photography, maybe you can build a portfolio site for all your photos. If you like trading stocks, maybe you can build a system that analyzes stock charts for you. Or, if you enjoy problem-solving, you can try competing in a coding competition.

例如,如果您喜欢摄影,也许您可​​以为所有照片建立一个投资组合网站。 如果您喜欢交易股票,也许您可​​以构建一个系统来为您分析股票图表。 或者,如果您喜欢解决问题,则可以尝试参加编码竞赛。

When you work on a project, first build as much as possible by yourself. Then, if you get stuck, get help from others by using either online or offline resources. For example, you can use Stack Overflow to ask specific, technical questions if you get stuck on something programming-related.

当您处理项目时,请首先尽可能地自行构建。 然后,如果遇到困难,请使用联机或脱机资源获得其他人的帮助。 例如,如果您陷入与编程相关的问题,则可以使用Stack Overflow提出具体的技术问题。

步骤3:获得您的第一份编程工作或实习 (Step 3: Get your first programming job or internship)

Once you’ve built a few personal projects, you should be able to get your first programming job or internship. With it, you’ll have some experience before you start interviewing with top tech companies.

一旦构建了一些个人项目,您就应该能够获得第一份编程工作或实习机会。 有了它,您将有一些经验,然后再开始采访顶级高科技公司。

It is possible to get your first job at one of the top tech companies, but it is far easier and more common to get it at a less well-known company first.

可以在顶级技术公司之一中获得第一份工作,但是首先要在一家知名度较低的公司中获得工作要容易得多,而且更为普遍。

申请软件工程师职位的最佳方法 (The best ways to apply for software engineer jobs)

Simply applying for jobs online is not necessarily the best strategy, because that’s what pretty much everyone else does.

只是简单地在线申请工作并不一定是最好的策略,因为这几乎是其他所有人所做的。

Instead, I’d recommend using LinkedIn and in-person networking to get your first programming job.

相反,我建议使用LinkedIn和面对面的网络来完成您的第一份编程工作。

On LinkedIn, first find recruiters of the company you’re interested in working at. Then, ask them if you’d be qualified for the position you’re interested in. You should also ask them how you can better prepare yourself if you’re not qualified yet.

在LinkedIn上,首先找到您感兴趣的公司的招聘人员。 然后,问他们是否适合您感兴趣的职位。您还应该问他们,如果您还没有资格,该如何更好地做好准备。

For in-person networking, I’d recommend websites like Meetup to meet engineers and recruiters at local companies.

对于面对面的交流,我建议像Meetup这样的网站与本地公司的工程师和招聘人员会面。

等等,但是,这还不是全部。 (Wait, wait, but that’s not all.)

Using LinkedIn and in-person networking work well if you’re applying to small-to-medium-sized companies. However, I’ve found that these strategies are less effective for more popular companies such as Google and Facebook.

如果您要申请中小型公司,则使用LinkedIn和面对面的网络非常有效。 但是,我发现这些策略对于诸如Google和Facebook之类的更受欢迎的公司而言效果较差。

For these big companies, instead, I recommend combining the following three strategies:

对于这些大公司,我建议结合以下三种策略:

  1. Career fairs and recruiting events at universities near you.

    您附近大学的招聘会和招聘活动。
  2. Get referred by friends who work at one of these companies

    得到在其中一家公司工作的朋友的推荐
  3. Simply apply online.

    只需在线申请。

Combining all of these strategies will help you increase the chance of getting an interview with one of these top tech companies.

将所有这些策略组合在一起将帮助您增加接受这些顶级高科技公司之一采访的机会。

By the way, I’m not exactly sure why LinkedIn is less effective with these big companies, but I think it might be because they get too many messages. Basically, they’re too popular there :P

顺便说一下,我不确定为什么LinkedIn在这些大公司中的效率较低,但我认为这可能是因为它们收到了太多信息。 基本上,它们在这里太受欢迎了:P

步骤4:了解数据结构和算法 (Step 4: Learn data structures and algorithms)

Top tech companies like Google and Microsoft often ask questions about data structures and algorithms in their interviews. So, you should learn them if you haven’t yet.

像Google和Microsoft这样的高科技公司在面试中经常会问有关数据结构和算法的问题。 因此,如果您还没有的话,应该学习它们。

To learn the basics, I’d recommend my video series on data structures and algorithms. It’s all on YouTube. I’ve made these videos to make it as easy as possible to get to know this topic.

要学习基础知识,我建议您观看有关数据结构和算法的视频系列 。 全部在YouTube上。 我制作了这些视频,以使其尽可能容易地了解该主题。

Since there are only 7 videos in this series, you’ll need more material to learn more advanced topics.

由于本系列中只有7个视频,因此您需要更多材料来学习更多高级主题。

There are several popular options for this, including:

有几种流行的选择,包括:

You should try a few of these and continue with the one you like the most.

您应该尝试其中的一些,然后继续最喜欢的一种。

第5步:准备编码面试 (Step 5: Prepare for coding interviews)

Coding interviews at companies like Google and Microsoft are hard, but it is somewhat straight-forward to prepare for them.

在像Google和Microsoft这样的公司进行采访采访时很难,但是为他们做准备是很直接的。

Once you have a solid understanding of data structures and algorithms, I’d recommend these three resources for practice:

一旦您对数据结构和算法有了深刻的了解,我将建议您使用以下三种资源进行练习:

After practicing on your own for a few weeks, you should start doing mock interviews.

独自练习数周后,您应该开始进行模拟面试。

如何进行模拟面试 (How to do mock interviews)

Basically, pair up with your friends, and give each other problems from the resources I mentioned above.

基本上,与您的朋友配对,并从我上面提到的资源中互相提出问题。

Then, solve each problem on paper or on a Google doc. Explain your solution to your friend.

然后,通过纸质文档或Google文档解决每个问题。 向您的朋友解释您的解决方案。

Make sure to practice both as the interviewee and interviewer so that you can see what it’s like to be in the interviewer’s shoes.

确保同时作为受访者和面试官进行练习,以便您可以看到穿着面试官的感觉。

Once you do 20 or so mock interviews, you should be ready to start interviewing with the companies you want to work for.

一旦进行了20次左右的模拟面试,您就应该准备开始与要工作的公司进行面试。

第6步:申请,申请,然后再次申请:) (Step 6: Apply, apply, and apply again :))

Use the three strategies I mentioned above to apply to top tech companies:

使用我上面提到的三种策略来适用于高科技公司:

  • recruiting events / career fairs

    招聘活动/职业展览会
  • getting your friends to refer you

    让你的朋友推荐你
  • and applying online.

    并在线申请。

If you don’t get in the first time, don’t worry. In fact, you should expect some failures since getting into any of these companies is competitive.

如果您不是第一次来,请不要担心。 实际上,您应该会遇到一些失败,因为进入这些公司中的任何一家都具有竞争力。

For me personally, I needed to apply to Google 5 times before I landed my software engineer job there.

就我个人而言, 我需要5次申请Google才能在此找到软件工程师的工作

而已! 快速回顾一下: (That’s it! Here’s a quick recap:)

  • Step 1: Learn to code

    步骤1:学习编码
  • Step 2: Work on a few personal projects

    步骤2:从事一些个人项目
  • Step 3: Get your first programming job or internship

    步骤3:获得您的第一份编程工作或实习
  • Step 4: Learn data structures and algorithms

    步骤4:了解数据结构和算法
  • Step 5: Prepare for coding interviews

    第5步:准备编码面试
  • Step 6: Apply, apply, and apply again :)

    第6步:申请,申请,然后再次申请:)
等等,真的那么简单吗? (Wait, is it really that simple?)

Yes, it is. Still, it takes a lot of time and dedication to go through all 6 steps.

是的。 尽管如此,完成所有6个步骤仍需要大量时间和奉献精神。

一些注意事项: (A few more notes:)

我需要获得计算机科学学位吗? (Do I need to get a computer science degree?)

The short answer is no. However, getting a computer science degree helps a lot. If you take a solid CS program, it takes care of most of Step 1, 2, 3, and 4 (learning to code, doing personal projects, getting your first programming job or internship, and learning data structures and algorithms).

最简洁的答案是不。 但是,获得计算机科学学位会有所帮助。 如果您使用扎实的CS程序,则它将完成第1、2、3和4步的大部分工作(学习代码,进行个人项目,完成第一个编程工作或实习以及学习数据结构和算法)。

Without taking a CS degree, you’ll just need to learn more on your own.

无需攻读CS学位,您只需自己学习更多。

Also, please note that even with a CS degree, it takes a lot of work to get a software engineer job at one of these companies.

另外,请注意,即使拥有CS学位,要在这些公司之一中获得软件工程师的工作也需要大量的工作。

我需要去麻省理工学院,斯坦福大学,卡内基·梅隆大学等顶级大学吗? (Do I need to go to a top university like MIT, Stanford, Carnegie Mellon, etc.?)

Again, the short answer is no. It probably helps a little bit, but it’s far from necessary.

同样,简短的答案是“否”。 它可能会有所帮助,但这不是必需的。

Laszlo Bock, a former Senior Vice President of People Operations at Google, also agrees.

Google的前人事运营高级副总裁Laszlo Bock也表示同意。

According to the book he wrote, Work Rules!, Google prefers top-performing students at less-known schools over mediocre-performing students at top schools like MIT.

根据他写的书, 工作规则! ,相对于麻省理工学院(MIT)等顶尖学校中表现平平的学生,谷歌更喜欢那些鲜为人知的学校中表现最好的学生。

I think this makes sense, because if you’re smart and dedicated, it shouldn’t matter too much which school you went to.

我认为这是有道理的,因为如果您很聪明和专注,那么上哪所学校都没关系。

我需要高GPA吗? (Do I need to have a high GPA?)

The short answer is no, again.

简短的答案再次是。

Having a high GPA probably helps a little bit for getting an interview as well, but it’s probably much more important to have solid practical experience and interesting projects to show on your resume.

拥有较高的GPA可能也对面试有所帮助,但是拥有扎实的实践经验和有趣的项目在简历中显示可能更为重要。

In fact, according to Work Rules!, Google used to care a lot about candidates’ GPAs in the past. However, they’ve found that having a high GPA is not strongly correlated to having a strong workplace performance in the long term. After that finding, they stopped placing such a strong emphasis on GPAs.

实际上,按照工作规则! ,过去Google一直很在乎候选人的GPA。 但是,他们发现,从长远来看,拥有较高的GPA并不会与拥有良好的工作场所表现紧密相关。 在发现之后,他们不再把重点放在GPA上。

那我需要什么 (What do I need then?)

Basically, all you need is strong coding and problem-solving skills, a good understanding of CS fundamentals, and interesting projects and experience to show on your résumé.

基本上,您所需要的只是强大的编码和解决问题的能力,对CS基础知识的充分理解以及有趣的项目和经验,可在您的简历中显示。

You’ll be able to build all of these if you follow the 6 steps I explained above.

如果按照我上面解释的6个步骤进行操作,则可以构建所有这些文件。

等等,我该如何撰写一份不错的简历 (Wait, how can I write a good résumé though?)

If you’d like, you can use the resume I used to apply to Google as a template.

如果您愿意,可以使用我曾经向Google申请的简历作为模板。

That’s the actual résumé I used to get a job at Google as a software engineer. It should really have been one page, so I would say my résumé was too long. Still, feel free to use it as a starting point.

那是我在Google担任软件工程师所使用的实际简历。 它本来应该是一页,所以我的简历太长了。 不过,请随时以它为起点。

编写简历的其他资源 (Additional resources for writing a résumé:)

Okay, good luck, and thank you for reading this article!

好的,祝您好运,并感谢您阅读本文!

If you have any questions, please let me know in a comment below or on Instagram or Twitter (@ykdojo on both).

如果您有任何疑问,请在下面的评论中或在InstagramTwitter (两者均为@ykdojo)上让我知道。

翻译自: https://www.freecodecamp.org/news/how-to-get-a-software-engineer-job-at-google-and-other-top-tech-companies-efa235a33a6d/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值