📜 ⬆️ ⬇️

How I hire programmers

There are three questions that need to be answered when you hire a programmer:
1) Is he smart?
2) Can he do the work?
3) Will I be able to work with him?

Someone smart but not able to do work can be a good friend, but not an employee. You can discuss with him some problems while he is slacking at his own work.

Anyone who is able to do work but not smart is ineffective. Stupid people do work by brute force. Working with such people is slow and usually annoying.
')
With those with whom I can not work - I can not work.

Under the cut the continuation of the article by Aaron Schwartz . I would prefer to be interviewed in this way than to be studied by an OK girl employee who does not distinguish http from mp3.


Traditionally, the process of hiring a programmer consists of:
1) read the summary;
2) brief interview (by phone);
3) test performance.

I think this is a terrible system. From the summary, as a rule, very little is clear, and during the interview the person is usually nervous. Programming is almost a creative process; it is useless to test for the ability to it under such pressure. In addition, questions for an interview are usually obtained some kind of inexplicably cruel. I consider myself a good programmer, but I could never properly answer these interview questions.

Therefore, when I hire a person, I try to get an answer to these three questions.

To understand whether a person is capable of doing work, I just ask what he did. If a person is really capable of doing work, then he should already have something to say, what he has already done. It is difficult to be a good programmer without practical experience, and today it is very easy to get this experience by participating in any open project. I ask to show an excerpt of the program code and a demonstration of the project. Looking at this, you can understand a lot and immediately, because I look at the finished result of the work, rather than looking for logic in the answers to the contrived interview questions. How short is this code, elegant, transparent? Is this the code I would like to see in my product?

To understand whether a person is smart, I just try to chat with him informally. I do everything that is possible so as not to put pressure on a person: I make an appointment in a cafe, let me know that this is not an interview, I do everything to be informal and friendly. In no case do I ask questions that are standard for an interview. I just chat with a person, like someone I met at a party (a bad idea to ask about the “strengths and weaknesses of the person” or to give an estimate of the number of piano tuners in Chicago). In my opinion, in a normal conversation it is quite simple to understand how smart a person is. I constantly note about people how smart they are, just as we all notice how attractive a person is.

If you try to formalize what makes a person smart, I would point out three things.

First, if he knows anything at all. I ask what he has been thinking about lately and then ask him about it. Whether he really understands something in a subject that he chose himself, whether he understands his details, whether he can speak clearly on this subject. The ability to clearly state thoughts is a sign of a true understanding of the subject. Does a person know something about a subject that I do not know?

Secondly, is he curious? Does he react with questions in my direction. Is he really interested or just trying to be polite. Does he ask questions about what I am saying, whether his questions make me think.

Third, do we teach? At some point in the conversation, I usually explain something. Does he really understand the things I say or just nod and smile? Many people who really know a lot in a narrow area, but do not show any interest in others. There are people who are curious, but not at all educable: they ask many questions, but do not listen to the answers.

I would like the answer to all three questions to be positive.

Finally, I must understand if I can work with a person. For this, I try to just spend time with him. Many people may just look like diamonds for an hour, but after a couple of hours the situation may change completely. Therefore, after the conversation, I invite a person to have a snack with the rest of the team, or to some office game. It is important to keep the atmosphere as informal as possible. The point here is just to see if a person gets on my nerves.
If everything looks like I’m ready to hire someone, then as a final test, to make sure that I’m not fooled, I ask you to do some of the work. Usually, this means choosing a completely separate area of ​​work, and asking the person to do it. If in this situation it is necessary to assess whether a person can work under pressure, it can be limited to a strict period. You can offer payment for this work, although this is usually not necessary, since most programmers do not mind doing a small area of ​​work, provided that the result remains open source. Such a test with the help of the assignment does not work separately on its own, but if a person has completed the first three, then this is more than enough to be sure that they did not fool me and we most likely can actually work together successfully.

I understand that a lot of people will say: “Why not just hire a person for a trial period and see how he goes?” In my opinion it just does not work. If you are not able to form an opinion about a person after a small project, you will not be able to do this for a month. It ends with you constantly hiring people who are not good enough.

I am generally pleased with this method. If I miss one of the parts, it often turns out that I hired someone unsuccessfully, and I have to part with the person. But when I fully comply with everything, I hire people who I really like, and with whom it is very difficult to leave then. I am amazed that most companies use such silly methods of hiring staff.

From myself I will add that some parts of the approach cause rejection, especially the attempt of an informal game in the employer's office, I would have escaped from this, but this is the American approach, you don’t need to copy everything 1 to 1, repeating the mistakes of hapless advertisers and marketers. Although the author hints at errors in Google’s approach (about piano tuners, is this in their direction?), While using part of Google’s approach itself: for example, when he concludes that the applicant’s ability to express his thoughts.

upd:
The task of tuning the piano to Google, it turns out, who just did not use. For example, they write about her here and even earlier she was mentioned in the book How to Move Mount Fuji. Thanks to those who corrected.

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


All Articles