Ive always argued against this type of interview. Its pretty frustrating because developers that knows how to solve these problems dont actively enhance the business or product they apply for. The ones that would fail this exam in the interview could learn how to solve these problems on the job yet make great contributions to the domain. Interviews should ask domain driven questions because that's what drives the product and the business.. away from this mentality. 14 years as a programmer.. and never once was asked how to figure out a palindrome. What difference does that make? And if it does.. why can't I figure it out after I get hired?
The idea is to see how you go about solving problems. The actual problems themselves aren't really all that important. One question I have been asked is "How would you calculate the number of seagulls in the city?". At first glance, this question has nothing to do with software engineering and it certainly isn't a programming problem.
But that's experimental. Anyone can solve those types of problems in their own setting. Interviews contains very limited resources, so it makes simple problem solving more difficult than needed and completely unrelated to what your job responsibilities are. Why do interviews have this? Simple.. laziness. I been asked to define "virtual" in almost every interview.. and to do an algorithm to sort a list.. taking the same boilerplate interview template. To be even more honest, usually job responsibilities are in fact way easier than questions asked during the interview. Better off making these questions as take home, and have the person discuss the solution during the interview. Cheating in take home is fine.. whats important is the interview.
I can relate to that. I was asked in an interview what "type erasure" was. My answer: "I can't remember". They still offered me the job, so what was the point of that question?
Hello Sultan, there is a definite value of asking this question, it tells about their coding skills, problem-solving ability, how to convert thoughts and logic to the code, testing, analysis and a lot more which is key skills to work as a software developer. That's the reason these kinds of coding interview questions have survived the test of time.
But thats why developers get certification and degrees and soending a lot of time and $$$ to do it. When you hire a roof contractor do you let them test if they can place shingles properly? Or when you choose a dentist, do you let them test on model teeth before they test yours? Its a shame that the dev community can't come up with better ways to trust devs and test their knowledge on domain drive design, network systems, project configurations, and all the existentials that comprise a project. These types of question are good college exams.. but I just dont see how they are that great for interviews.. its a bit archaic. But it is what it is. I really like your article btw, and don't mean to pick at it like that. Id actually use your samples and tests when I teach programming to my students.
Thanks for your appreciation, yes, you can feel free to use the article for educational purpose. Regarding your question, I agree with you but the irony is that there is a big gap between the interview and the actual work you do. That's why only general skills are tested like learning ability, problem-solving etc. Now companies are moving towards more stringent online coding test where you need to code a scenario based program but still that's far away from what you will do in the actual job.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.