My experience in preparing for employment at Google
From the translator: today we are publishing an article for you, Prayakty Tatavadkar , she is a developer with little experience, but her knowledge and experience allowed her to get a job at Google (on the second attempt) to become a member of the YouTube development team.
Google was for me a dream company from the very beginning. When I successfully passed the interview, many acquaintances and friends began to contact me with a request to share experiences. Speaking with them, I identified the most important things for most, which I now share in this article.
Skillbox recommends: Applied online course "Python Data Analyst" .
We remind: for all readers of "Habr" - a discount of 10,000 rubles when recording for any Skillbox course on the promotional code "Habr".
I’ll say right away that in 2014 I was already trying to get a job at Google, but I failed the interview miserably. For several years I studied, worked, gained new experience and knowledge, which helped me get an offer.
For three and a half years I worked as a programmer in a startup, I also collaborated with a couple of FINTECH companies. Each of the works gave me tons of experience, which eventually made it relatively easy to get on Google.
I understood one thing: when a new opportunity looms ahead, I will prepare for the upcoming changes, without being distracted by a secondary one. Preparation helped get a job at Google, although it seemed to me that the probability was less than 1%. But somewhere in the depths of my soul I was sure that it was worth a try.
Candidates often do not understand how important it is to learn the specifics of the company in which you want to work. Ignore this point is not worth it.
Select the preparation stages for the interview.
My experience allows us to talk about five important things that are necessary in the preparation process. Programming, design, language skills, previous projects and summaries are the most important, but not the only elements of preparation.
All the companies I interviewed conducted me through at least two rounds of purely algorithmic questions, where you are given a problem that needs to be solved - sometimes you have to write code to do this.
Example: write code to display values from 1 to 10 in the console (of course, I simplify).
Depending on the level of the interview, I was given different tasks in terms of creating a software platform project. In most cases, showed an abstract system for which it was necessary to develop a structure.
Example: if you had to write a social networking site from scratch, how would you design a system?
This stage of the interview was separate, questions about the design of applications were asked in other stages.
Verification of language proficiency
In most of the interviews, you are expected to know the language, more often than the one you are most comfortable with. In some cases, ask basic questions, in others - go deeper into the essence.
Example: What is inheritance in Java?
Previous Projects / Resume
This is one of the stages for which I sometimes forgot to prepare, and it is in vain. An interview is not just about programming and designing applications. It is also an attempt to find out how good you are as a team player. Need to tell how you worked with other members of the past team. The questions here can be very specific.
Example: tell a little about a project you are proud of.
As I have already said, the preparation stage for the interview, which includes studying the details about the company you are working in, is often ignored by applicants. You may be asked direct and indirect questions about the company itself - a potential employer.
Example: why do you want to work in XYZ?
Preparing for the interview
I prepared for the interview carefully, receiving information from various sources. Below are some of them.
I remember the beginning of preparation: I purchased three Udemy courses. They helped me in basic things. By the way, I did not finish any of them, but I went through most of each course. I chose these courses because I understood that the video format will allow you to prepare faster than the text. Best of all, when someone explains the difficult places that you can not figure out on their own. The courses helped to remember how the exercises that were part of the lectures are solved.
LeetCode Premium Courses
I paid about $ 70 for these courses, and they were worth every penny invested. They helped me practice programming, learning complex technical things that are important for learning and work.
YouTube was a friend who helped in the preparation process. Not only in studies, but also in rest from studies. The idea was to look for videos that help me figure out the things that were not given to me. There was no need to take a course, just watch a short video with an explanation. Often I watched some videos and in the process ran into other, equally useful ones.
I could not even imagine that in two months I would work in the YT team! Miracles happen.
Other resources I
also recommend resources from Gayle Laakmann McDowell:
Cracking the coding interview
Step-by-step explanation of the interview in the form of a diagram .
Preparation for the systems design stage:
Hired in tech course
Design interview, playlist by Ramón Lopez.
I began intensive preparation for the programming phase one month prior to the interview, and finished the study, having solved 60–70 tasks, basically what is most often asked for during interviews.
Preparing for the "programmer" phase of one month
I have already said how LeetCode courses helped me. They are taught to program, helping to solve problems that are most often encountered at interviews, and revealing the essence of the questions asked in interviews with the applicant. For the sake of fairness, I will say that not one of these questions came to me personally, and besides, what was asked of me at the interview is not found on the net at all. But I note that the concept of the questions themselves is very similar to what can be found on the Internet or on courses. All this has to do with problem solving, pattern identification and other issues.
In the process of preparation, I solved two or more tasks on a daily basis. Problems may vary, their solution takes from half an hour to an hour. It all depends on the complexity of the issue. The level of courses was divided into easy, medium, complex, company specific. Even the mid-level tasks were quite difficult for me. Their decision took an hour. My advice - if after an hour you could not find a solution, just look back.
In general, I focused on solving light and medium tasks. Difficult, I decided no more than ten. In difficult places, YouTube came to the rescue, I was looking for a solution there.
I tried to solve problems from the company specific section. And here she made a mistake, working only with tasks from Google. I started from them, and not from the questions and tasks of the “simple” section. They were extremely difficult, I could not cope. As a result, I was upset, my motivation decreased, and for a while I simply did not do anything. Advice - start with simple questions, go to the tasks of medium difficulty, and only then proceed to specific exercises.
Do not stress yourself. In the process of preparation, I lived a full life, worked with the previous efficiency in the previous company and was not too nervous.
Allocate a small amount of time every day, but prepare for one or two months, making full use of the allotted time.
Weekend - our best friends! Use them to the fullest. As for me, I spent two days off training, going through many courses at once and solving several difficult tasks. This weekend gave me a boost that helped in the future.
HR is also your friend. Before the interview, do not hesitate to ask about the format of the interview, the materials that are worth using, general tips.
You start with general training, including courses, YouTube, reading articles. Specific materials leave for dessert.
Do not do just coding. Solve other problems, including system design. Watch thematic videos. Enjoy the learning process.
At the interview you can ask for a laptop. I did this during my interview. Just writing solutions on a board is somehow strange. In general, it is better to show the progress of the solution on paper / board, and the practical implementation is already done on a computer.
Look for thematic information online, do it from time to time.
Think of a worst case scenario. I imagined a situation where I could not get a job at Google. In principle, in this case, nothing terrible happens, you can work in a previous company or try to get an interview in any other. It calmed me down and made life easier.
Keep calm and code on.