📜 ⬆️ ⬇️

The book "Career Programmer. 6th edition

Hi, Habrozhiteli! We have the 6th edition of the book by Gail Luckman McDowell:

image The book "Career Programmer" is based on the experience of the practical participation of the author in a variety of interviews conducted by the best companies. This is the quintessence of hundreds of interviews with many candidates, the result of answers to thousands of questions asked by candidates and interviewers in leading global corporations. Of the thousands of possible tasks and questions in the book were selected 189 of the most interesting and significant. The sixth edition of this world bestseller will help you to prepare in the best way for an interview when you are hired by a programmer or leader in a large IT organization or a promising startup. The main part of the book consists of answers to technical questions and tasks that applicants usually get during an interview at companies such as Google, Microsoft, Apple, Amazon and others. The typical mistakes made by the candidates, as well as effective methods of preparing for the interview, are considered. Using the material of this book, you can easily prepare for a job at Google, Microsoft or any other leading IT company.


')
Foreword

I (Gail Luckman McDowell) is not an HR manager and not an employer, but just a software developer. That is why I know what can happen at the interview (for example, you will be asked to quickly develop a brilliant algorithm, and then write perfect code for it). I myself was given the same assignments when I was interviewed at Google, Microsoft, Apple, Amazon, and other companies.

It happened to me to be on the other side of the barricades - I conducted interviews, looked through the pile of applicants' resumes, doing the selection of personnel. I evaluated how they solved - or tried to solve - complex problems. I argued in the Google recruitment committee of Google whether the candidate had shown himself well enough to get a job. That is why I can confidently assert that I know all the subtleties of the hiring process, because I have repeatedly passed it completely.

If you are reading this book, it means that you are going to have an interview tomorrow, next week or next year. And I will try to strengthen your understanding of the basics of computer theory, and then I will show you how to use them for successful interviewing.

In the 6th edition of the book, the material of the 5th edition was supplemented by more than 70%: additional questions, updated solutions, introductions to chapters, new algorithms strategies, tips for all tasks and other materials. Be sure to check out the CrackingTheCodingInterview.com website, where you can chat with other applicants and get new information. The skills that we will develop will be of great benefit. Good training will allow you to expand your technical and communication skills, and this is never redundant. Read the introductory chapters carefully. It is possible that the material contained in them will play a key role in deciding on your employment.

And remember: the interview will be difficult! At one time (during my time at Google), I saw many interviewers, some of them asking "easy" questions, and others - "complex". And you know what? Simple questions did not mean that the candidate would be easier to get a job. The main thing is not perfect answers to questions (this happens very rarely!). The main thing is that your answer is better than other candidates. And do not panic if you have a difficult question - those who ask it know that the question is complex and do not expect a perfect answer from you.

Introduction

Something went wrong

Another interview turned into a disappointment ... once again. None of the ten candidates got a job. Maybe we were too strict? I was especially sad: we refused one of my candidates. My former student. The one I recommended. He had a fairly high average score at Washington University - one of the best schools in the world in computer science - and he was actively involved in open source projects. He was energetic, intelligent, creative thinking, worked hard and was a computer fan in the good sense of the word.

But I was forced to agree with the opinion of other members of the commission: he showed himself not in the best way. Even if my recommendation played a role, my student would still be refused at the later stages of selection. There were too many “red” cards.

Despite his intelligence, the candidate struggled to cope with the tasks. More successful candidates quickly figured out the first question, which was built on a well-known problem, and my student had problems developing an algorithm. When he finally mastered the algorithm, he did not consider the possibility of optimization for other scenarios. When it came to writing code, he made a lot of mistakes. It was not the worst candidate, but everyone saw how far it was to a victorious result.

A couple of weeks later he called me, but I didn’t know what to say. Need to get smarter? It was not the case, I knew that he had a brilliant mind. Learn to program better? No, his skills were no worse than those of other programmers I knew.

He carefully prepared, like most candidates. He studied the classic textbook by Kernigan and Richie, he read CLRS ((T. Kormen, C. Leiserson, R. Rivest, K. Stein. Algorithms. Construction and Analysis). He can describe in detail many ways of balancing a tree and can do it in C such that no normal programmer dares.

I had to tell him the sad truth - book academic education is not enough. Books are great, but they won't help you pass the interview. Why? I'll tell you: the interviewers have not seen red-black trees since their studies at the university. To successfully pass an interview, you need to prepare for real-life questions encountered at interviews. It is necessary to solve real problems and study the patterns that occur. The main thing is the development of new algorithms, not memorization of existing tasks.

The book "Programmer Career" is based on the experience of my practical participation in a variety of interviews conducted by the best companies. This is the quintessence of hundreds of interviews with many candidates, the result of answers to thousands of questions asked by candidates and interviewers in leading global corporations. Out of thousands of possible tasks and questions, 189 of the most interesting were selected into this book.

My approach

This book focuses on the tasks of algorithmization, programming and design. Why? Because the answers to “behavioral” questions can be as varied as your resume. And although in some firms they ask questions about erudition (for example, “What is a virtual function?”), The skills gained in preparing for such questions are limited to very narrow areas. I will talk about such issues, but first of all I would like to pay attention to more complex things.

My passion

Teaching is my passion. I like to help people improve and learn new things. I received my first “official” teaching experience at the University of Pennsylvania College as an assistant teacher, it was a computer science course. As a technical specialist at Google, I always liked to train and supervise new staff. I even used my 20% of my time to teach two new computer science courses at the University of Washington.

Years have passed. Now I am again teaching computer science, but this time with a more specific goal - to prepare technical specialists for hiring. I saw their mistakes and the problems they faced, and developed methods and strategies for overcoming them.

More information about the book can be found on the publisher's website.
Table of contents
Excerpt

For Habrozhiteley a 25% discount on the coupon - McDowell

Source: https://habr.com/ru/post/302782/


All Articles