谷歌入职邮件_为什么我全职学习了8个月以接受Google采访

谷歌入职邮件

by Googley as Heck

由Googley饰演Heck

为什么我全职学习了8个月以接受Google采访 (Why I studied full-time for 8 months for a Google interview)

It’s true. I’ve spent thousands of hours reading books, writing code, and watching computer science lectures, all to prepare for the Google software engineer interview.

这是真的。 我已经花了数千个小时阅读书籍,编写代码以及观看计算机科学讲座,所有这些都为Google软件工程师的面试做准备。

If you’d like to prepare for a Google interview, here’s my study plan:

如果您想为Google面试做准备,这是我的学习计划:

jwasham/google-interview-universitygoogle-interview-university - A complete daily plan for studying to become a Google software engineer.github.com

jwasham / google-interview-university google-interview-university-学习成为Google软件工程师的完整每日计划。 github.com

我怎么在这里 (How I Got Here)

I started programming in middle school, but when it came time for college I pursued a degree in Economics. My rationale was that there would be too many programmers looking for jobs by the time I graduated. Boy, I was wrong.

我从中学开始编程,但是上大学的时候,我攻读了经济学学位。 我的理由是,到我毕业时,会有太多的程序员在寻找工作。 男孩,我错了。

Later, I joined the Army to become a programmer, but the recruiter talked me into a military intelligence position, and I spent the next two years studying the Korean language. I served in South Korea for 2 years afterward.

后来,我加入了陆军,成为一名程序员,但招募人员使我进入了军事情报部门,并且在接下来的两年中,我学习了朝鲜语。 之后我在韩国服务了两年。

Before I left the Army, I attempted to get back into programming and was surprised at the difficulty. I had learned BASIC in middle school and kept programming it through high school. But I restarted my programming studies with C++, and the leap was too large. I just couldn’t grasp it.

在我离开军队之前,我试图重新编程,并对这一困难感到惊讶。 我在中学时就学习了BASIC,并一直在高中阶段对其进行编程。 但是我用C ++重新开始了编程研究,而飞跃太大了。 我只是不明白。

I did enjoy making websites, however, but I used software with a Word-like interface that I used to publish my websites. I didn’t know how to make websites from scratch.

但是,我确实喜欢制作网站,但是我使用的软件具有类似于Word的界面,该软件曾用于发布网站。 我不知道如何从头开始制作网站。

After the Army, I decided to stay in Korea for a year and teach English. I used my nights and weekends to study web programming, using Perl, HTML, CSS (which was new at the time), JavaScript, and SQL.

参军后,我决定在韩国呆了一年,教英语。 我晚上和周末都使用Perl,HTML,CSS(当时是新的),JavaScript和SQL学习Web编程。

After a year of intense study, I landed a job in the Seattle area, and I’ve been here ever since.

经过一年的深入学习,我在西雅图地区找到了工作,此后就一直在这里。

I’ve been a web developer now for 15 years. I’ve started 3 companies, 2 of which are still running and generating revenue. I’ve worked at large and small companies, helped startups launch and grow, and recruited and managed teams. I’ve been a product manager, a CEO, a designer, and a marketer.

我从事Web开发已有15年了。 我已经建立了3家公司,其中2家仍在运营并产生收入。 我曾在大型和小型公司工作过,曾帮助初创公司启动和发展,并招募和管理了团队。 我曾经担任过产品经理,首席执行官,设计师和营销人员。

I’ve had a successful career and learned a lot along the way. But I’m not done yet.

我的事业很成功,并且在此过程中学到了很多东西。 但是我还没有完成。

寻求职业变化 (Seeking a Career Change)

Remember the part where I didn’t get a computer science degree? It has made a difference.

还记得我没有获得计算机科学学位的那部分吗? 它有所作为。

A few years ago, I thought I could get hired anywhere. I thought I was hot stuff: the elusive full-stack web developer. But during my job search in 2013, I realized my skills were lacking. I had spent so much time chasing dollars by running startups in my spare time, that I had let my skills atrophy. I hadn’t kept up with technology.

几年前,我以为我可以在任何地方被录用。 我以为我很热门:难以捉摸的全栈Web开发人员。 但是在2013年的求职过程中,我意识到自己的技能不足。 我在业余时间花了很多时间通过创办初创公司来追逐资金,以至于我的技能萎缩了。 我没有跟上技术。

For years, I had learned just enough to get by. I had a wide skill set but wasn’t an expert in anything.

多年以来,我学到了足够的知识。 我拥有广泛的技能,但是在任何方面都不是专家。

Don’t get me wrong, I could still get hired, but not in the technologies or areas I wanted to work in. I could get hired for areas where the tech stack was somewhat outdated, like me. There’s big money in there, but I didn’t see exciting prospects.

别误会我的意思,我仍然可以被录用,但是不在我想工作的技术或领域内。我可以像我一样在技术体系有些过时的领域被录用。 那里有很多钱,但是我没有看到令人兴奋的前景。

The realization reached its peak last year at a career fair. I was interested in perhaps working for one of the local companies that were startup labs run by venture capital firms. However, the fact that I lacked a computer science degree, and the skills and knowledge that accompany such a degree, meant I didn’t have a chance.

去年在一次职业博览会上,这一认识达到了顶峰。 我对也许为一家由风险投资公司运营的初创实验室的本地公司工作感兴趣。 但是,我缺乏计算机科学学位,以及与此学位相关的技能和知识,这意味着我没有机会。

I was working full-time on my businesses at the time, and still am today.

我当时全职从事​​我的业务,​​今天仍然如此。

At the beginning of 2016, I decided it was time to make a career change from web developer to software engineer. I would need to study hard and practice in order to compress a computer science degree into a few months, but once I did, I could start a new career.

在2016年初,我认为是时候从Web开发人员转向软件工程师了。 为了将计算机科学学位压缩到几个月内,我需要努力学习和练习,但是一旦完成,我就可以开始新的职业。

You may not see web development and software engineering as different positions. Both involve programming and craftsmanship, but software engineering adds to it knowledge of data structures and algorithms, compiled languages, memory considerations, and understanding the impact of coding and architecture decisions on the machines where they reside.

您可能不会将Web开发和软件工程视为不同的职位。 两者都涉及编程和Craft.io,但是软件工程为它增加了数据结构和算法,编译语言,内存注意事项的知识,并了解编码和体系结构决策对它们所驻留的机器的影响。

Large companies that hire for software engineering positions expect candidates to have this knowledge.

雇用软件工程职位的大公司希望应聘者具备这些知识。

I reached out to an acquaintance who works at Google and asked him questions about his experience at the company. I had been reading How Google Works and was pretty familiar with Google already.

我联系了一个在Google工作的熟人,问他有关他在公司工作的问题。 我一直在阅读Google的工作原理,并且对Google已经相当熟悉。

Through another contact, I received a copy of Google’s coaching notes that are provided to interview candidates. This became the basis of my study plan.

通过另一个联系人,我收到了一份Google指导笔记的副本,该笔记提供给面试候选人。 这成为我学习计划的基础。

Google is a pretty awesome place to work, but before I even knew that, Google was my goal.

Google是一个很棒的工作场所,但是在我什至不知道的情况下,Google是我的目标。

为什么选择Google? (Why Google?)

Google sets a very high bar for hiring. They want to hire only the best. So if I set my sights high (getting hired at Google), I’ll still be quite hireable elsewhere even if I’m not selected.

Google为招聘设置了很高的标准。 他们只想雇用最好的人。 因此,如果我把眼光放高(在Google招聘),即使我没有被选中,我在其他地方仍然很容易被录用。

The more I learn about Google, the more I want to work there.

我对Google的了解越多,我希望在这里工作的越多。

In brief, Google is a company that hires smart, creative people, and treats them well. Google rewards merit, encourages big ideas, and gives employees the freedom to make good decisions for the user.

简而言之,Google是一家聘请聪明,有创造力的人并善待他们的公司。 Google会奖励功绩,鼓励大胆的想法,并赋予员工为用户做出良好决策的自由。

The hiring process is calibrated to bring in smart, passionate people. Google has honed the recruitment and interview process over the years. The brain teaser questions are long gone. Nowadays candidates are chosen based on coding ability, technical knowledge, and Googleyness. There’s a lot going on in that one word.

对招聘过程进行了校准,以吸引聪明,热情的人。 多年来,Google一直在完善招聘和面试流程。 脑筋急转弯的问题早已消失。 如今,基于编码能力,技术知识和Googleyness选择候选人。 这个词有很多事情要做。

Management is different. Managers don’t micro-manage. They trust engineers to make the right decisions. Trusting employees changes the role of managers at Google from what most folks envision when they think of management. In addition, managers can’t unilaterally, hire, fire, or promote. Many of the important management decisions that could be perceived as office politics are handled by a committee to remove that danger.

管理是不同的。 经理们没有微观管理。 他们信任工程师做出正确的决定。 信任员工会改变Google经理在大多数人对管理的看法中所扮演的角色。 此外,管理人员不能单方面雇用,解雇或晋升。 可以视为办公室政治的许多重要管理决策均由委员会处理,以消除这种危险。

Google’s people operations (HR) has learned what works over time, and they use data and employee feedback to improve evaluation systems, the hiring process, promotions, compensation, benefits, and more. Read Work Rules! by Laszlo Bock (SVP, People Operations) for more.

Google的人员运营(HR)学会了随着时间的推移有效的方法,他们使用数据和员工反馈来改进评估系统,招聘流程,晋升,薪酬,福利等。 阅读工作规则! Laszlo Bock(人员运营高级副总裁)了解更多。

Yes, the benefits are amazing. I went on a tour of the Google office in Kirkland, WA, and it surpassed my expectations. And my expectations were already high.

是的,好处是惊人的。 我参观了位于华盛顿州柯克兰(Kirkland)的Google办公室,它超出了我的期望。 我的期望已经很高。

Google面试大学 (Google Interview University)

Remember the coaching notes I received telling me what to study? The list of topics seemed manageable, even though I didn’t know anything on the list.

还记得我收到的告诉我要学习什么的教练笔记吗? 主题列表似乎很容易管理,即使我对列表一无所知。

I turned the topics on the notes into an outline and started filling in the topics with YouTube videos of lectures from MIT and UC Berkeley. A video on linked lists in one place, a video about queues in another. The list started to grow.

我将笔记上的主题变成了大纲,并开始使用MIT和UC Berkeley的YouTube演讲视频来填充主题。 在一个位置上的链接列表上的视频,在另一个位置上的有关队列的视频。 名单开始增长。

I published the list on Github because my Github account was pretty empty. Since all the code I wrote for my businesses and work was private, my Github account made it look like I didn’t code at all. I needed to build up a portfolio. I originally called the project “Project 9894”. Google launched on Sept 4, 1998. Hence the name. I later renamed it to “Google Interview University”.

我在Github上发布了该列表,因为我的Github帐户非常空白。 由于我为自己的企业和工作编写的所有代码都是私人的,因此我在Github上的帐户使我看起来好像根本没有编写任何代码。 我需要建立一个投资组合。 我最初将项目称为“ Project 9894”。 Google于1998年9月4日推出。因此得名。 后来我将其重命名为“ Google Interview University ”。

Over time I added some optional topics that I discovered along the way.

随着时间的流逝,我添加了一些在此过程中发现的可选主题。

I was pretty amazed I had gotten so far in my career without even knowing how a CPU processed a program, how memory worked, or any of it. I had known “just enough” to be a success.

令我感到惊讶的是,我迄今仍不知道CPU如何处理程序,内存如何工作或其中的任何一个。 我知道“足够”就可以成功。

My little Github project started getting a few stars, and I published a blog post celebrating 20 stars.

我的Github小型项目开始获得一些好评,我发表了一篇博客文章庆祝20个好评。

One morning, I awoke to find it had grown to 120 stars. Someone famous had tweeted about it during the night, and that led to it ending up on the Github daily trending report. I was #1 trending on Github for a few days.

一天早晨,我醒来发现它已经长到120星。 某人在夜间发布了有关此内容的推文,并导致该结果最终出现在Github每日趋势报告中。 几天来,我在Github上排名第一。

Many kind people reached out to thank and encourage me. It turns out there are thousands of people who want to not only work at Google but want to work as a software engineer, and this list was just the to-do list they needed.

许多善良的人们伸出援手并鼓励我。 事实证明,有成千上万的人不仅要在Google工作,还想以软件工程师的身份工作,而这个清单只是他们需要的工作清单。

It’s now at over 21,000 stars.

现在已超过21,000星。

I still can’t believe it.

我仍然不敢相信。

如果我找不到工作怎么办? (What If I Don’t Get the Job?)

It won’t be the end of the world.

这不会是世界的尽头。

I’ve put the time and dedication into my studies for the goal of getting hired as a Google software engineer, but even if I fail, I’ll still be armed with the skills and knowledge required to work as a software engineer at any company.

我已经花了时间和精力投入了成为Google软件工程师的工作目标,但是即使我失败了,我仍然拥有在任何公司中担任软件工程师所需的技能和知识。 。

Wherever I end up, I’m going in as an entry-level software engineer. I’m not going in with 15 years of software engineering experience because I simply don’t have it. When it comes to this stuff, I’m the equivalent of a fresh CS grad.

无论我到哪里去,我都将以入门级软件工程师的身份进入。 我没有15年的软件工程经验,因为我根本就没有。 说到这些东西,我相当于一个新的CS毕业生。

But I have the enthusiasm of a new grad, too. This is a new world for me. I’m just getting started. I’m not afraid to make mistakes. I know I will. I also want to learn everything I can and be an excellent addition to any team.

但我也有新毕业生的热情。 对我来说这是一个新世界。 我才刚刚开始。 我不怕犯错。 我知道我会的。 我也想学习一切,并成为任何团队的优秀成员。

不要像我那样学习 (Don’t Study As Much As I Did)

Yes, I took 8 months. But I could have abbreviated the process. Like any startup with a big goal, you make mistakes and do things that waste time. There are many things I wish I go back and do differently.

是的,我花了8个月的时间。 但是我可以简化这个过程。 像任何一个有远大目标的初创企业一样,您会犯错误并做一些浪费时间的事情。 我希望有很多事情可以回去做不同的事情。

I studied topics I didn’t need to, some because I thought I would need them for the interview, and some because I wanted to have the knowledge on hand for when I started working. I didn’t want to be a burden on the team I’m assigned to. It turns out I simply over-prepared.

我研究了不需要的主题,有的是因为我认为面试需要这些主题,有的是因为我想在开始工作时掌握手头的知识。 我不想成为分配给我的团队的负担。 事实证明,我只是准备过度。

I spent 3 weeks reading a 1,000-page book on C++. I don’t remember 1,000 pages worth, but I know a good bit about C++ now. As it turns out, I’m using Python for the interview, not C++. I had assumed I needed C++, C, or Java, but I was wrong. It’s good to ask, not assume.

我花了三周的时间阅读一本1000页的C ++书。 我不记得有1000页值得,但是我现在对C ++知道很多。 事实证明,我使用的是Python,而不是C ++。 我以为我需要C ++,C或Java,但是我错了。 问而不是假设是件好事。

I read way more books than I needed to. There are only 3 or 4 books I should have read.

我读书的方式比我需要的多。 我应该只阅读3或4本书

I have a code catalog of dozens of algorithms that I review, most of which I wouldn’t expect in an interview. You don’t need to do that.

我有一个代码目录,其中包含数十种我要审查的算法,其中大多数我在面试中都不会想到。 您不需要这样做。

I watched many hours of YouTube videos but could have watched far less, and spread out topics over time.

我观看了许多小时的YouTube视频,但观看的时间却少得多,而且会随着时间的流逝散布话题。

I should have stopped reading books and watching videos earlier and started on coding problems sooner. I would have been able to spend more time applying the topics I learned.

我应该早点停止阅读书籍和观看视频,并早点解决编码问题。 我本可以花更多的时间来应用所学的主题。

Spaced repetition is the key to memorization. Once you learn something, review it again later, and again even later. At each repetition, you reinforce your learning. Spending hours and hours at one time on priority queues won’t make you an expert. You become an expert by revisiting and reviewing over time. If you do so, you’ll get to the point where can’t forget details.

间隔重复是记忆的关键。 一旦您了解了一些内容,请稍后再检查一次,甚至以后再检查一次。 在每次重复中,您都会加强学习。 在优先级队列上一次又一次地花几个小时不会使您成为专家。 通过不断回顾和审查,您将成为专家。 如果这样做,您将到达无法忘记细节的地步。

To help review, I made 1,792 flashcards (digital flashcards). This is way too many. I review them on my phone or tablet whenever I get a spare moment (such as during Christmas shopping). Flash cards and spaced repetition go hand-in-hand. Once I get an answer on a flashcard right, I don’t mark it as known. I keep it in the deck and once I’ve seen it and answered it correctly many times, then I mark it as known.

为了帮助审查,我制作了1,792个抽认卡(数字抽认卡)。 这太多了。 每当我有空的时候(例如在圣诞节购物期间),我都会在手机或平板电脑上查看它们。 闪存卡和间隔重复是相辅相成的。 一旦我获得了关于抽认卡的答案,就不会将其标记为已知。 我将其保存在甲板上,一旦看到并正确回答了多次,然后将其标记为已知。

My sense of fear (“What if they ask me a question about red-black trees?”) led me to study far more topics than I needed to.

我的恐惧感(“如果他们问我一个关于红黑树的问题?”)使我学习的话题超出了我的需要。

But I didn’t want to just prepare for the interview, I wanted to prepare for a career at Google, solving large-scale problems. That means knowing algorithms that will save computing resources of time, space, and I/O.

但是我不想只是为面试做准备,我想为在Google解决一个大问题的职业做准备。 这意味着了解可以节省时间,空间和I / O计算资源的算法。

I may never need to know a maximum flow algorithm (Ford-Fulkerson), but it’s nice to know I have that tool available if the situation arises (without memorizing the implementation), and can recognize its application to a problem space.

我可能永远都不需要知道最大流量算法(Ford-Fulkerson),但是很高兴知道在情况出现时我可以使用该工具(无需记住实现),并且可以识别其在问题空间中的应用。

结论 (Conclusion)

Early on, I wished I could skip all this learning, and just hurry up and get hired so I could instead spend my time learning the languages and tools for the team I join. But along the way, I realized how important this knowledge is, and even though most of it may not be applicable on a daily basis, I’m glad I put in the effort. I have a new appreciation of the history of computing, the greats in the field, data structures and algorithms (and how they complement each other), and how computer systems work at low-level.

早些时候,我希望我可以跳过所有这些学习,而只是匆匆忙忙地被录用,这样我就可以花时间为加入的团队学习语言和工具。 但是,在此过程中,我意识到了这一知识的重要性,尽管大部分知识可能并非每天都适用,但我很高兴自己付出了很多努力。 我对计算的历史,本领域的佼佼者,数据结构和算法(以及它们如何相互补充)以及计算机系统如何在低层工作产生了新的认识。

I’ll be putting in my application soon. It’s been a long journey getting to this point — almost an entire year. It began back in January, but I wasn’t able to commit to full-time study until April.

我将尽快提交我的申请。 到现在为止,整整一年都是漫长的旅程。 它开始于一月,但直到四月我才能够致力于全日制学习。

I’m about as prepared as I can be. I can’t keep studying and putting off the application forever. At some point, I have to take the leap.

我将尽我所能。 我不能永远学习并推迟申请。 在某个时候,我必须飞跃。

I see a bright future ahead.

我看到美好的未来。

Thanks for taking the time to read my story.

感谢您抽出宝贵的时间阅读我的故事。

Article also available in Arabic, Vietnamese, and Korean.

该文章还提供阿拉伯语越南语韩语版本

更新:2017年1月10日 (Update: January 10, 2017)

I didn’t get hired. Read on. Thanks to everyone for your amazing, overwhelming support.

我没有被录用。 继续阅读 。 感谢大家的大力支持。

更新:2017年3月6日 (Update: March 6, 2017)

The story has a happy ending! I’ve been hired by Amazon to work as a Software Development Engineer on Amazon Web Services!

故事的结局很美! 我已经被Amazon聘请为Amazon Web Services的软件开发工程师!

在哪里找到我 (Where to Find Me)

I blog over at Startup Next Door.

我在隔壁的Startup博客。

Google Interview University on Github:

GitHub上的Google Interview University:

jwasham/google-interview-universitygoogle-interview-university - A complete daily plan for studying to become a Google software engineer.github.com

jwasham / google-interview-university google-interview-university-学习成为Google软件工程师的完整每日计划。 github.com

翻译自: https://www.freecodecamp.org/news/why-i-studied-full-time-for-8-months-for-a-google-interview-cc662ce9bb13/

谷歌入职邮件

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值