📜 ⬆️ ⬇️

How to interview a technician


Some kind of "not healthy booze" went lately in the interview about the interview. People, enough already, there is nothing scary and special about interviews, I have been spending them with IT people for several years, and in 95% of cases they are adequate and pleasant people. Therefore, I want to share with you a “Zen” about how best to conduct exactly the technical interview, and generally evaluate the skills of those. specialists, as the question of assessing the competence of a technician can be quite difficult, especially if you do not want to conduct an interview for 3 hours in a row. With this model, you can quite lay those. interview in 40-50 minutes (or even faster) and be confident in the decision by 80-90%. If there is a lot of information about the assessment of emotional intelligence, basic motivation and just the level of adequacy, then this is how to effectively assess the technical skills of a specialist, often “who is in the forest, who is on firewood”. This article may also be useful to those who simply want to grow as an expert effectively, because their knowledge is considered exactly.

As it happens

In most cases, another specialist with a high degree of technical competence, who, as a rule, does not understand anything in personnel matters and methodologies for collecting information about a person’s personality, is invited to conduct an assessment, and a frontal interrogation “who knows more” just begins. Some interviewers simply have a checklist of questions. Also, many use the practice of the test task, which must be performed before the appointment of a face-to-face interview. In general, whoever can, he solves the problem.

In general, this approach is effective, but it has several disadvantages:
1. There is a possibility that the interviewing technician may perceive the inconsistency of the applicant's experience with his own, as a lack of experience at all. For example, quite narrow-practical questions may be asked that the applicant has not encountered in practice, which can be interpreted as "Yes, how can you not know this, it's so simple." A specialist from the staff will never be able to recognize it due to the specific context.
2. Even if open questions are asked like “And what tasks did you have to solve?”, Again, the discrepancy of experience can be interpreted as “It doesn’t suit us, because he didn’t do what we have been doing for several years.”
3. Some technical specialists, especially those with quite extensive experience, do not recognize very much the fact that ignorance of specific tools is not often a big obstacle. For example, if a person has not worked with GIT, but knows CVS well, this significantly reduces the threshold for entering possession of a tool.
4. There may also be a problem when the applicant has extensive practical experience and responds well to questions about specific solutions, but when they hire him, it suddenly turns out that he makes quite typical mistakes in areas he hasn’t worked with before. About such people it seems that they are “stupid out of the blue” or “actively copy-paste the code” from their previous projects.
5. Sometimes there is a specialist who gives the impression of a novice and his resume shows little practical experience, but it is important to understand whether he will shoot. Because if you shoot, you can get a small "star" in the team with small investments. And it is not clear how to recognize this as accurately as possible.

These are just a few scenarios that are regularly encountered in the selection of new technical specialists. Interviewing a technician is similar to a task when you have a huge picture that is hidden behind turning cells that you turn one after another. And your task is to guess the whole picture, provided that your time is limited, and the number of possible pictures is huge.
In order to be more likely to screen out the above negative scenarios, as well as to conduct interviews of technical specialists more efficiently, you can use a special model for collecting information.
')
Knowledge classification

First you need to decide on the classification of knowledge. To do this, they must be divided into 3 types:
1. Fundamental - this is the basic knowledge in a particular area. For example, it may be the question "What are the main types of queries in SQL you know?".
2. Applied - this is the skill of solving specific problems. For example, these could be tasks for correctly writing SQL queries for specific examples.
3. Instrumental - this is knowledge of how to use specific tools. For example, what is the difference between innodb and myisam repositories?

Fundamental knowledge is necessary in order to understand on their basis how best to solve practical problems. Practical tasks form applied knowledge, that is, an understanding of how and what is best to do. With the understanding that individual tasks are best solved with the help of specific tools, instrumental knowledge is also developed. Often, a person begins with some small practice, then studies “why it works that way,” then tries to do something similar, and then sharpens his skills with the help of tools.
For example, in the same way, a person develops language skills: first, he simply tries to repeat individual words after his parents; then learns the alphabet; then writes essays, articles or business letters; and sometimes uses reference books and dictionaries for this.

When something went wrong

Since the “academic education” in the field of IT is still rather weak, most specialists are largely self-taught. This creates certain deviations that can be well understood on this model if one of the areas of knowledge is hypertrophied. Let me give you classic portraits candidates and their explanation:
1. Nerdy - has a significant amount of fundamental knowledge, for example, acquired in the framework of any courses and reading books / articles, however, has no practical skills to use them, which does not bother him. Even if you start asking him some practical tasks, you will always hear a lot of knowledge about how it really should work, how the individual parts are arranged, but it will be rather difficult for such a candidate to put everything together to solve the problem. Quite a common situation if you ask a candidate about the little-used OOP patterns: hear the description of the pattern when it is used on some academic example, but embedding it into the living task will go “with difficulty”.
2. Stackoverflow-developer - usually, such developers quite actively talk about their experience, about what tasks and how they managed to solve, but when you try to answer the question “How to do ...?” From an unknown practical field, you will hear or try “Pull by the ears” another solution, or the answer in the style “Yes, it’s googling in 5 minutes, I've already seen it somewhere”. Such developers often try to attract some ready-made solutions that they have already made, arguing it as “Why do it twice?”, Or simply copy-paste code from the Internet and other projects. When asked, “Why does this work that way?” Or “How can this be done differently?” Can often get lost and try to translate the topic.
3. Tools & Frameworks-developer . There is an old joke: “How to start making a website in 1995? Open notepad and start writing code. How to start making a website in 2015? Download and install composer, framework, cms-extension, bootstrap, jquery, bower, less, install IDE, start writing code. ” That's about the same for this kind of specialists. Most of the applied experience of such specialists is excluded from a specific instrument. Such a concept as “bitrix of the brain” quite specifically describes this case. For such candidates, it is very difficult to assign tasks on the “native” code, because without a tool for them this is an almost impossible task.
These examples are given for cases where one of the areas of knowledge occupies a leading position, and since the feeling of “superiority” in this area gives rise to a sense of its own “greatness”, the specialist tries to hold on to it with all the possibilities (“everyone wants to be cool”). For example, when trying to clarify fundamental knowledge, Stackoverflow-developer will argue to the last that “yes, I don’t need to know, I’ve done this a hundred times and everything has worked.”

How effective development works

The most effective scenario for the development of knowledge is precisely the balance between areas. You can achieve it in different ways, but it is impossible to allow “skew”. For example, you wanted to make a homepage and you do not understand anything about it (everyone started with this): downloaded wordpress (they took the “tool”); googled how to set everything up and made your first blog with several articles (acquired applied knowledge); And now understand how and why it works, for example, how the base and cache are arranged, what is the architecture of the engine, etc. (acquire fundamental knowledge). Then you can already see what other tools and how they can solve this problem, or write your own tool. If you stop only at the first or second step, you can easily get into one of the categories of specialists listed above, and you, I am sure, clearly don’t want it :)

How to evaluate knowledge

Based on this model, it is also possible, quite easily, to “probe” technical specialists in terms of their learning strategies and how their current knowledge allows them to effectively solve problems. The interviewing strategy is the following: asking a question on a technical field of interest to you in any area of ​​knowledge, move not “horizontally”, within a field of knowledge, but “vertically”, into an adjacent type of knowledge.
They asked about fundamental knowledge, then ask what tasks a person solved with the help of them, or set a practical task in which this knowledge will be needed, and then specify what tools are there to use this knowledge and solve practical problems better.

For example: What are composite b-tree indexes and how do they work? Can you give an example of when such indexes may be needed or when, on the contrary, they will be inappropriate? And how to understand that these indexes work efficiently and what can you use for this?

If you hear exhaustive answers to all these questions, it means that the specialist really tried to form confident knowledge in this area, to acquire all levels of knowledge. Now from this you need to make the right conclusions. This will either indicate that the specialist had a huge pile of tasks related to the indices, or that he has a good learning strategy (which does not exclude the first). To determine whether this strategy is there, it is enough to probe several other areas in which the candidate may not be so well versed, often this can be seen from the summary.

Strong and promising candidates show that even in the absence of knowledge, they understand what they lack and choose an effective approach to compensate for a lack of knowledge. If you check several areas in this way, you will notice that the candidate has an effective learning strategy, then all you have to do is to check the fundamental knowledge you need. After all, possessing them and the right learning strategy, the candidate, with a high degree of probability, will be able to solve new tasks for him as effectively as possible.
An effective learning strategy is a strategy for replenishing knowledge in any field for all types (fundamental, applied, instrumental): try something, understand how and why it works, make something like that, learn tools to do even better.

Typical errors in the assessment

Many people tend to overestimate the importance of applied knowledge in relation to other areas, namely that people with extensive experience in performing tasks are good specialists, but this is absolutely not the case. If the practice is not supported by fundamental knowledge, or the specialist has never expanded his tools, the effectiveness of such a specialist may be very low. Look for those who can develop each of the areas. They are the best, even if they do not have a gigantic experience behind them.

You can often find test items that narrowly focus only on fundamental issues, such as language constructs, typical errors when using “not intuitive behavior”, questions about OOP patterns, etc. As you already could understand from the above model, so you do not define "theorists", and besides, the fundamental knowledge is very good. So the effectiveness of such tests is relatively small.

There is also a popular belief that it is important to “understand how a person thinks.” Undoubtedly, this is a “beautiful” phrase, but it is very subjective, and, as a result, on the basis of such assessments it is difficult to be confident in the result. In addition, here you can fall into the trap of a subjective assessment of "he thinks not like me." However, if you see that a person is able to effectively form their knowledge and solve problems, then it doesn’t matter how he does it, because the main thing is the result.

Practical recommendations

Test

If you give attractive conditions for cooperation and the flow of candidates is quite high, then make a test task. Include in it several questions not from one kind of knowledge, but from different ones. From the answers to these questions, you can see an approximate picture of what the candidate’s strengths and weaknesses are.

What to look for

There are several points that should also pay attention to the interview. They are more related to the personnel component, however, they manifest themselves during the technical interview.

Inquisitive mind . As far as the candidate tries to solve the problem, if he does not know the solution "on the fly." Does it look for alternative ways, analyzes hints, asks and analyzes whether the proposed solution. Weak candidates "pass by" everything they could not understand.
Sound self-confidence . As far as the candidate admits that he may not know something. By virtue of upbringing, sometimes, people have complexes regarding their own knowledge (“graduate students”, etc.). Sometimes, such people in a strongly categorical form give decisions and do not recognize alternative opinions, if they indicate a lack of any knowledge of the candidate.
The pursuit of self-development . The best candidates are those who aspire to develop as specialists, or else they strive to “make the world a better place” by creating some kind of good. Weak candidates believe that they are already “at the ceiling of knowledge” and just want to earn as much as possible on this. There are also candidates who believe that they should be developed by the employer, and not by themselves, because it is the employer who sets the tasks.

Interviewing strategy

Before the interview, make a list of key areas in which you need experience from a specialist. Well, if they will be at least 10. For example: PHP + OOP patterns; SQL + query optimization; architecture of high-load projects; work with cache, etc.
In each of the key areas make up at least 5 questions for each type of knowledge, a total of at least 15 questions for each area. This is done better in order not to invent questions on the go. It is desirable that such issues provide for vertical connection.

For example:
Area: architecture of high-loaded projects.
Fundamental questions: What are the main parameters that are important to consider when designing high-load systems? What typical architectural solutions do you know? What is the difference between horizontal and vertical scaling?
Applied questions: If users can upload files, how is it better to solve the issue of their horizontal scaling to return? If there is a page with a high RPM, and an information block that has a long generation time, how can you speed up the page return? If in the project as a result of the growth of the load, the only database became the bottleneck, then how best to approach this issue?
Instrumental questions: What tools can I use to load balance HTTP traffic? What caching servers do you know and what are their differences? How can I measure application performance under heavy loads?

Start with any of the questions at your discretion. Sequentially ask questions from each type of knowledge in a selected area (vertically). If you see that the candidate is confident in the theory, practice and tools, then you can be pretty much confident that he can also confidently solve related practical problems.

As you get answers to questions, going through areas, you will form a picture of how the candidate’s knowledge is distributed. For example, you may become aware of a significant lack of theoretical knowledge, or gaps in the knowledge of tools. Based on this, you will be able to conclude how effective the training strategy of the candidate and his current knowledge as a whole are. As a rule, the learning strategy is the same for all areas, that is, there are very rare candidates who are well aware of theory in one area, and in the other they have only solved practical problems and have not even tried to ask the question “How does it work?”.

Well, then, depending on the requirements of the vacancy, it will be much easier for you to make a decision. Looking for a junior? Make sure that not only trying to solve practical problems, but also fills in fundamental knowledge, as well as looking for and studying new tools. Looking for the middle? Make sure that his skills have "roots" in every kind of knowledge and he understands where to go next to fill in the blanks. Looking for a senior? Make sure that he is fluent in fundamental knowledge and is able to effectively “assemble” any practical task with fundamental rationales and appropriate tools.

If you have noticed some gaps in the required knowledge, and they are not fundamental for you, but still important, then be sure to write it down and work on a trial period plan for filling these gaps, using it during certification. This will allow you to increase the efficiency of your employees methodically and consciously. However, the issue of training and development of employees is a completely different and very long story.

Where else can you use the model

The presented model, in fact, can be used not only for technical specialists, but in general for any profession. The only difference will be how fully certain types of knowledge are implemented in these areas. Take, for example, the janitor: What criteria of cleanliness do you know? If you need to remove 10 houses in one day, how can this be done? For which surfaces which cleaning products are better to use?

As a conclusion

Recently, I decided to collect my notes on interviews for PHP developers and put them in open access (project “on the knee”, so don’t blame me). There, of course, not everything, but enough to gather thoughts and tune in to the interview. You can see the questions on the link:
pagerton.com/hr/question/all
If there are positive responses, I will develop the project as far as possible, I would like to drop there links on good courses for developers, so I would appreciate feedback.
I hope this model can be useful to you too. Not only as an interviewer, but also as an interviewee, because understanding your strengths and weaknesses will help you develop more effectively.
I wish you to be the best, and work with the best.

PS: I am the original source. Knowledge, experience and model are mine. The links “throw off the original” and “where the proofs are, Billy”, do not ask:)

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


All Articles