Letter to the editor: Specialized tests are unable to identify professional quality developer

Recently appeared in Runet many services with tests for it-schnick. There are some small and gray, there is a large, free, paid. It seems to be a Paradise for those who hire. Put packs of people at the terminal and take all scored a passing grade.

Presumably this will be the best. I was going to pass any of the tests and to write about this review, but it was postponed until the main mouthpiece of the mass recruitment Alena Vladimirskaya casual not adverted CA Mail.Ru Group, however, making allowances for the fact that this service is good in recruitment for middle and Junior positions. But Alena — HR.

And Im still a programmer. And I can pass this test, rate it and give your expert opinion. Thats what I did. I passed the test on knowledge of C#. And scored 14 of 45.

Well, a couple of years I havent touched C#, but still almost four years was one of the developers of ReSharper and know C# much better than the average programmer. However, its possible that Im an idiot, and all these four years, the ReSharper team was in danger. Popular now projects online education (and the creators of the exam) do use tests. But they have other testing goals.

They check the trainee learned the material. When applying for a job it is important for you to check how the candidate operates was already well learned and forgotten. You need his performance, not his knowledge, reinforced by the ability to operate them. Is it possible to check the performance of a person tests.

Probably can. I have a good example of testing auditors, but not programmers. In companies that were in the top three audit firms of the North-West, doing your own tests for candidates. Manufacturing test took two weeks of pure time leading specialists of the company.

The tests had to be updated every six months. 25% because of changes in legislation, and 25% due to the natural evolution of relevant topics. The test consisted of 100 questions, and its execution takes from three to seven hours. The applicant was given access to a legal basis, but have limited access to the Internet.

Interesting also that if the test is suddenly siphoned off from the company, he is very quickly losing relevance. That is, a test had to seriously guard. It is important to pay attention to the fact that the test does not verify that remembers the candidate with all laws and regulations (you know, the winner of the championship of Scrabble in France do not speak French?). The test checks whether the candidate how the Russian legislative system, and can quickly find the answer to a complex question, and to weigh the risks associated with inconsistency of laws.

Just like in real life. The test was not multiple-choice, but rather a test with open answers. But to write in it had little (short answer and links to legislation and regulations). In the end, the test was checked very quickly.

How much for two weeks of work time a leading specialist. What does it matter whether the programmer or the auditor, I think that two weeks is a universal time to create a good test in any field. Now imagine that the same leading specialist conducts an interview.

Even if he makes an honest two-hour interview, and the interview can often be interrupted earlier, at the same time that he did the test, he could interview 40 candidates. Of course, 40 candidates is a hell of a job, really hell. But you how many candidates on the average, before going on to successful hiring. Well, Mail.Ru Group spent these 40 hours for you and have done good tests.

But are they really that good. The majority of tests, not only from Mail.Ru Group, but most services are tests about programming languages. What it really means. Some time ago I listened to a presentation by Ilya Ryzhenkov about Kotlin language:

In this presentation Ilya joked similarity to the language syntax of Kotlin and Swift. Someone who stole the idea. Actually no one, just made by both teams in architectural decisions were soaring in the air. Most modern programming languages are designed to be similar to other languages of its group.

During the design language is consciously trying not to make a big entry threshold, consciously trying to simplify the design and make the syntax more intuitive. On my favorite Coursera almost no questions about “what errors the compiler will generate this piece of code”. For this to work (surprise) a compiler. This is normal, when programmers write head code with errors.

They first solve the problem by its expression the ideas of existing approaches, and in the next stages already ruled compilation errors. That is why the came up with to do automated tests for programs and to run them constantly. People make mistakes — and thats okay. Key for skill is the ability of these bugs to handle. But the test of “wheres Wally?” it does not checks.

And another surprise. Programmers read more program than write them. That is why in most languages there is such a thing as idiomatic style. It is a way to write a program so that it is as easy to read by other participants in the process.

It is the ability to write understandable code is much more important than the ability to be faster than the compiler. Now lets do the simple test of “find the error”, and useful test “write clear code”. You may like to write the test. I dont.

A good programmer doesnt necessarily make a good test. Just at least in his or her professional deformation. Tricky questions on the tests are not very fit, its about the same, what matters for the insight, I have a question about round manhole covers. So in addition to a technical specialist you need someone who will constantly keep in mind the purpose of the test and to measure the usefulness of each question specifically, what to do in the future hired through this test candidate.

The purpose of testing is not to show what the author of the smart test, and to show what the last test is useful. What is the defining skill in the work of the programmer. The ability to make the program. In your particular case is the ability to make a program of a certain type (website, game, system for controlling a nuclear reactor) in a certain period of time.

Instead, we test the extent to which the programmer is smarter than the compiler. Listen, the compiler for you already wrote, and in order to do the routine work of the programmer more efficient, enabling him to focus on the real problems and the really important things. Lets have a radical point of view that a programming language is not important. Moreover, each language defines its own development paradigms, and these paradigms need to be understood.

Here is it possible to make a test for understanding such things as, for example, memory management inNET (believe me, there is something to ask, and many candidates do not know even the basics). Sure you can. But I have no such test had not seen. Maybe because on such topics much more pleasant to converse with the candidate personally.

The topic is vast, deep and very well shows how much the candidate knows how to operate the program. A test on knowledge of language syntax useful after the courses. When hiring is more important than the “touch” deeper things. Actually, in the test from Mail.Ru not still not so bad.

One of my pals on the interview gave a test that was to find out about exotic command line parameters in Java and about, in what order are the parameters which functions. It is a failure. I am sure that the meaningfulness of the questions on the testing services will grow, but will grow quickly and an external database of answers to these questions. However, the main question that often remains unanswered is, “Why are you still asking what are you asking?”.

And this “why” should be pragmatic and not one of those “everyone should know”. In my youth, everyone had to know the birthday of grandpa Lenin. Me this knowledge, by the way, came in handy once. In the military psychiatrist.

Source: google.co.uk/blog/startup-agency-one-way-past-founders-can-help-new-ones/

Leave a Reply