Hiring Staff: The Importance of Primitive Questions

    Have you been to long interviews? At multi-level interviews? Or maybe you spend it yourself? Many companies have similar practices, both large and small, but this practice has a number of obvious disadvantages. Such as wasted time wasting interviewing a person in a full program who is not suitable simply for technical skills. In this article I want to describe the approach to interviewing technical skills (we will not forget about the rest, but we will not consider it in the article), which, perhaps, will save you a lot of time. The essence of the approach is to ask questions that a competent specialist will consider as: “Are you a fool? Ask me about this! ”

    Where are we going

    To begin with, a small digression. Probably with the release of the book by William Pandstone: “How to move Mount Fuji”, many companies have become obsessed with questions of quick wits, and many posts on the hub from the category “How I Interviewed at XXX” confirm this. These tasks are replicated, they are full in the internet and I think that everyone already knows: why sewer manholes are made round and knows five solutions to how many ping-pong balls will fit in the school bus.
    Yes, such questions help to identify the level of acumen of the candidate, as well as his approach to solving problems. But he also does not guarantee that in a working routine a person will also be smart and active (I know several people who click tasks on IQ like nuts, but in the work they are lazy and lazy). I believe that before bureaucratizing in paper form the procedure for conducting interviews, you need to sit down and draw up KPI for all open vacancies, for example: teamwork, loyalty to the company and professional skills. And then conduct an interview, clearly identifying how much the candidate will be able to meet our KPI without wasting time on all that is superfluous.

    The essence of the primary candidate assessment method proposed in this article is the assessment of answers to primitive questions on programming languages ​​and technologies. This approach is not new, and it was not I who came up with it, but I, like many, adopted it, making sure of its effectiveness. At the moment, I am finishing the controversy and proceed to describe the effectiveness of the method using an example.

    The essence of the method with examples

    Example questions regarding Multithreading (for Windows)

    Question: What are the kernel objects that are used to synchronize threads.
    Profit: We will learn about what kernel objects a person knows / uses. Does he even know what kernel objects are? Does he have an idea of ​​competition flows. According to the response of a person, we can ask a question already according to his previous practice, for example, how he used some objects or implemented some kind of interaction mechanisms.

    Question: What is the difference between the critical section and the mutex?
    Profit:We will learn not only about whether a person has read Richter, if the answer is yes, we can assume that the person knows what context switching is. How critical is it for speed. And, as a result, the fact that the person cared about productivity, reducing the number of context switches. Of course, this is only an assumption, but it can always be confirmed or refuted by more specific questions. It’s just that these questions may not be needed depending on how confidently or extensively the applicant answers.

    Question: What is deadlock? (you can offer a person to draw a deadlock diagram on a piece of paper)
    Profit:If a person can draw a deadlock diagram, then with high probability I can assume that a person has encountered deadlocks, knows how to diagnose them and fix them. If there is uncertainty, then you can ask more detailed questions.

    Examples of questions regarding COM

    Question: What is the IUnknown interface for?
    Profit: If a person does not understand what this interface is for, then he does not understand the whole ideology of the life cycle of COM objects. What is the point of talking to him after that?

    Question: How many times does the application need to call the CoInitialize function?
    Profit: The second question in the forehead, if a person gave the wrong answer, and you took it, and he wrote you a lot of code, then blame yourself when his code has to be debugged.

    C ++ Question Examples

    Question: Here is a piece of code:
    char* word1 = “Hello”;
    char* word2 = “Hello”;
    if( word1 == word2 )
      printf(“equal”);
    else
      printf(“not equal”);

    * This source code was highlighted with Source Code Highlighter.

    What will be printed in the console after code execution?
    Profit: Hush laughter ... There are people who come to interview for a salary of a couple of kilobax, who believe that it is so possible to compare strings. I think everything is clear with this question.

    Sample .NET Questions

    Question: (Powerful question in the forehead) What is managed code?
    Profit: Well, everything is obvious here, if there is no answer to this question, or a person bears complete nonsense, then such a person is definitely not worth taking a position higher than Junior, because a complete misunderstanding of .Net ideology is a disaster.

    Conclusion

    I apologize that I have given few questions, and wrote such a boring introduction. I just could not find any good words to describe this approach. But, I hope that after reading the section with questions, you catch the gist.
    And also, from my own experience I will say that 90% of people who answered without problems to primitive questions answered me and deeper questions. It even turned from an interview into a program for pouring balm on the soul - you ask a person a question, and he answers correctly, well and fully.
    Well, and I think it’s not difficult for you to draw up similar questions for your vacancies and try to put this approach into practice.
    I hope you save a lot of time that you could spend on stupid discussions about programming services working 24/7 with a person who does not know in which case in C ++ you should write “delete p”, and in which “delete [] p ".

    Well, now let's discuss, I'm waiting for comments, criticism and constructiveness.

    Also popular now: