[Transfer] codenong: This way, Google engineers will become

Source: Internet
Author: User

Google has been one of the top employers in the "world's best employer list" for many years and has won the top spot several times. Its selection and hiring standards are also well-known, one of the most famous ones is the "famous school complex"-no matter in which country, Google favored the elites who graduated from top universities and will refer to their transcript at the university stage.

If the editor says that Google has hired a grassroots code farmer who has not received a formal university education, has not even obtained a bachelor's diploma, and has basically relied on self-taught talents, will it be incredible? However, this can be true: David byttow, a senior software engineer and entrepreneur at companies such as Google, square, and Doublehelix) I wrote an article about his experience from introducing the grassroots to being hired by Google. The story is absolutely inspirational!


First, the courage to challenge things that are cool, and to do what you do will become cool.

Second, working with danale in the industry can change the way problems are solved and the way the world is viewed.

Third, diligence can make up for the gaps in basic knowledge in a large number of practices.

Fourth, erase the educational background in your resume and accidentally get an interview opportunity. If you are fully prepared, Google's interview will also become fun. Facts have proved that Google does not fully stick to academic qualifications for outstanding talents.

The full text is as follows:

Many people asked me one question after I published the article "coding constantly-How to be a software engineer" (ABC: alwaysbecoding-howtolandanengineeringjob: why can't I be hired as an engineer by Google even if I have no college degree? The following is my story, but your experience varies from person to person.

In fact, I wanted to go to college very much. I chose to apply for the University of California, Los Angeles (ucia), but unfortunately, I had only a poor 2.45 GPA in high school, so I could not be admitted to the university. Then, I took a computer course at the purdueuniversitycalumet and hoped that I could transfer or find another way out one day. After nearly two semesters, I got out of the way-I got an unacceptable offer.

Step 1: pretend that you are a good guy until you actually become a good guy

When I was in college, I used to work for a small company in the city of griphis, Indiana. My job was to help local companies build websites with a hourly salary of 12 US dollars. This job is far from my dream career, but it is not too bad.

I have worked hard and made several projects far beyond my expectation. This created a good reputation for me and made the company quite profitable. At the same time, I am still trying game development in my spare time. Later, I am desperate to ask the company's management to give me three months and a little money to develop a game that can be sold online. I made beautiful workbooks and colorful charts to show them the principles of the Shared Software Model and the bright "Qian tu" of the game ". At that time, I was not very clear about what I was doing, but they still bought my account, probably because the color of my stuff was pretty.

After more than two months of development, I published a demonstration on the Internet, which attracted the attention of codefire, a startup company in California, because they also played the same space shooting game, similar to a subspace that is not 3D. But it may not be a good thing to be concerned-unfortunately, they sent me a notice of suspension. So I can only reply: "No problem, so far I will -- if you have to hire me to develop your game ." They sent back an employment notice, and I laughed at it.

Note: The company holds the original copyright of the game, and I informed the old club three weeks before leaving the company.

Step 2: make friends with danale

This is perhaps one of the most important things you can do-finding the talents in your industry and letting them be your mentor. There is no end to learning. While working at Doublehelix, I met danale Nathan hunt, one of the smartest and humble cool people I have ever met, and he was very patient with all the questions I asked, no matter how early they were. I walked into his office hundreds or even hundreds of times and proposed, for example, "How can I smoothly insert a rotating matrix into another one ?" And so on. Years later, he joined Google one month later than me.

Each of my mentors has changed the way I solve problems or look at the world to a certain extent. I will not go into detail here.

Step 3: make up for the gap

I do not have a formal degree in computer science, so I understand that I lack a lot of basic knowledge. For example, I used a physical engine to solve a dynamic programming problem, and the result was always unsuccessful. To bridge these gaps, I have practiced almost all the most common data structures and algorithms I have heard or read. You must be able to find the information you need, but there is a huge gap between observing "know it" and "know it by practice.

Over time, you need to do the following:

1. proficient in at least one programming language in C, C ++, objective-C, Java, PHP, Python, or Ruby, proficient in at least one other language, and familiar with Scala, Haskell, or lisp.

2. Learn data structures, practice most common data structures, and understand their complexity.

3. Solve programming problems, read more, practice more, and think more.

4. Build your complete (unfinished) project portfolio (such as programming frameworks, mobile or web applications, games, and so on)

Step 4: find confidence

Six years after I left Indiana, I have launched about six games on multiple platforms. I started to get bored and need to find new challenges. I applied for a position in Google and thought that being hired by Google would make me a "real engineer"-For me who don't have a paper diploma, this is an ideal that I have struggled for a long time. However, I have never heard of Google, and I am not surprised.

One year later, I submitted my resume again, but this time I simply removed the entire "educational background" column. Sadly, a recruiter called me and arranged a technical phone interview for me. I asked her if she could arrange a telephone interview two weeks later and she agreed. I need that time-I have to wait a few seconds to fill out various algorithms and data structures in my head to the maximum extent, programming 12 to 14 hours a day, solved hundreds of programming questions. I spent so much on it until my fear of Google interviews turned into self-confidence and excitement.

I still remember everyone I met during the Google interview. It was a pleasure to deal with them. The interviewers are humorous, and I believe they must have seen my excitement and expectations for interview questions.

The following are some interview questions I have encountered:

1) give a set of two-dimensional points and calculate their skyline. This question is very simple. There are several solutions, and I use a common data structure called maxheap.

2) design Microsoft's "Drawing" software. This is the most interesting problem I have encountered so far. I first drew the interface and classdigram, and then focused on a "pigment bucket" function. The interviewer asked me to implement this function on the spot. Fortunately, I close my eyes and know how to implement iterative traversal of the width-first. Thanks for the topcoder website.

3) Let's talk about the software advantages that you value most. This is an "open" discussion interview. I talked about various tests and their value (such as unit, integration, and acceptance), and the consistent style that facilitates code maintainability. These contents can be found in books such as codecomplete and javastivejava.

I really enjoyed every round of interviews and various questions. If I do not have a backup, the situation will certainly be quite different. After the interview, I felt good about myself, but I heard that even if the recruitment board finally decided to issue a hiring notice, it would take CEO Larry pages to sign it in person. I am worried that as soon as he sees my lack of educational background, I will be finished.

However, this tragedy did not happen after all-At noon one day, I received a call when I was eating sushi in Santa Clara City (santaclara), and then I was ecstatic to accept the offer. From that day on, I can finally be sure that I no longer have to go back to school.

As Sun Tzu said: "It is because the defeated soldiers win first and then fight, while the defeated soldiers win first ."

Note: I have spent an extraordinary five years at Google. As an engineer, I keep learning and growing, but now I am no longer working at Google.


[Transfer] codenong: This way, Google engineers will become

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.