📜 ⬆️ ⬇️

Why programmers can not program

I was incredulous when I read this observation from Reginald Braithwaite :


Like me, the author has problems with the fact that 199 out of 200 applicants for each programming task cannot write code at all. I repeat: they can not write any code at all .

The author he has in mind is Imran Ghori, who apparently turns his back on many programmers who cannot write a simple program :


After considerable trial and error, I found that people who have problems with writing code do not just struggle with big problems, or even with small problems (for example, they create a linked list implementation). They have problems solving tiny problems.

Therefore, I decided to develop questions that can identify these kind of developers, and came up with a class of questions, which I call “FizzBuzz Questions,” in honor of the game that children often play (or are forced to play) in UK schools. An example of a Fizz-Buzz problem is the following:

Write a program that prints numbers from 1 to 100. But for multiples of three “Fizz” values ​​instead of numbers and for multiples of five “Buzz”. For numbers that are at the same time multiples of three and five - “FizzBuzz”.
')
Most good programmers should be able to write a program on paper that does this in a couple of minutes. Want to know something scary? Most computer science graduates cannot. I also saw that the candidates for the senior programmer spent more than 10-15 minutes to write the solution .


Dan Kegel had a similar experience hiring entry-level programmers :


A surprisingly large proportion of applicants, even those with master's and doctoral degrees in computer science, do not cope; they are asked to solve simple programming problems. For example, I personally interviewed graduates who cannot answer “Write a cycle that counts from 1 to 10” or “What is the number after F in hexadecimal?” I was less trivial to interview many candidates who cannot use recursion to solve real problems. Problems. These are basic skills; anyone who does not have them is probably not programming enough.

Speaking on behalf of software engineers who have to interview potential new employees, I can say with confidence that we are tired of talking to candidates who are programming with a tooth or foot. If you can successfully write a cycle that goes from 1 to 10 in each language of your resume, can do simple arithmetic without a calculator and can use recursion to solve a real problem, you are already ahead of many!


Between Reginald, Dan and Imran, I'm starting to get a little worried. I am more than ready to give relief to newly minted programmers at the start of their career. Everybody must start somewhere. But it bothers me and resents the fact that any so-called programmer will apply for a job without being able to write the simplest programs. This is a slap in the face to everyone who makes a living by programming.


The significant gap between those who can program and those who cannot program is well known. I assumed that the one who is applying for a job, as a programmer, has already crossed this abyss. Apparently, this is an unreasonable assumption. Apparently, preliminary screening of candidates with questions like FizzBuzz is simply necessary , otherwise we will be wasting a lot of time on interviews with programmers who are not.


So that you do not think that the FizzBuzz test is too simple and dazzlingly deliberately light, the commentator on Imran's post points out its effectiveness:


I would not want the interviewers to reject the [FizzBuzz] test as too easy. In my experience, it is truly amazing how many candidates are incapable of the simplest programming tasks.


It may be silly to start interviewing a programmer without first looking at his code . In Vertigo, we need a sample code before we go to the phone interview stage. And our on-site interview includes a little coding exercise. Nothing complicated, just a basic exercise that allows you to work out the task of creating a small application in an hour or so. Although there were one or two noticeable spikes, for the most part this strategy worked well for us. This allows us to focus on real-world software development in an interview, without resorting to tedious puzzle questions .


It is a pity that you have to do so many preliminary checks to allow yourself the luxury of interviewing programmers who can actually program . It would be funny if it were not so sad. I'm not a fan of certification , but it really surprises me that Steve McConnell was busy with all his talk about creating the true profession of a programmer .


PS


I propose to try to solve the following JavaScript problem, noting the time spent. The survey is anonymous, there is absolutely no point in deceiving. The correct answer is here . I admit that it took me 67 minutes using googling. True, some part of the time was hatching according to the Japanese method - the most ridiculous assumptions and fitting them to the problem, for sure there is a more elegant solution. Another part of the time spent on combing the Hindu code. Are there really so many of us? :)


Write a program to print it in the form of a print. "Kiss". For the number of five and five print "MissKiss". Each print must be asynchronous call console.log function with a 50ms delay.

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


All Articles