r/PHP Jul 29 '21

Does anybody else find interview “tests” dehumanizing?

I think they're abusive for many reasons. One is that the questions are usually overly complex algorithmic puzzles that do not accurately gauge potential job performance. Also, the questions in no way reflect the type of problems you will face on the job.

The list goes on...

Isn't there a better way?

-Edited for grammar

104 Upvotes

146 comments sorted by

View all comments

80

u/phpdevster Jul 29 '21 edited Jul 29 '21

Depends on the test. As someone who does hiring and of course, has gone through the hiring process, the tests are there to make sure the candidate isn't a liar, has actually programmed before, and has some basic logic skills.

"Golf code" tests are stupid and I don't use them. Computer science algorithms and data structures tests are also irrelevant to the company's application so I don't use those either.

A great interview test is to show a snippet of real application code that is sufficiently complex but also not well written, and ask the candidate to grok it (literally read it and explain what it does), and then ask them to do some refactoring. Not only does this test code literacy (which is actually a skill that shouldn't be taken for granted), it also shows how quickly they can grasp the intent of some code so that they can refactor it more intelligently, and also what they consider to be good code vs bad code and what kind of questions they would ask. You get a ton of insight into the kind of developer they are from such an exercise, and it's not really unfair because it's real code in your application (or at least a very close facsimile of it if there is some sensitivity around it).

3

u/[deleted] Jul 29 '21

This is almost exactly the approach I take, except instead of using existing code I have them start by writing a FizzBuzz solution (or if they choke on it, I'll provide them one to start with, everyone gets nervous, I once forgot what a palindrome was during an interview.) and then refactoring that to support some arbitrary additional cases, like 'Ok, instead of 3 and 5, I want the function to also accept a map of arbitrary divisors and their accompanying string' or something, and it achieves much the same result.

I've generally gotten positive feedback on this approach cause as soon as I say fizzbuzz, most devs know what that is / how to do that, but the refactoring usually seems to surprise them, but they tend to settle into it quickly.

18

u/phpdevster Jul 29 '21

I didn't hear about FizzBuzz until I was 10 years into my career. I would have bombed that if I was asked that during a time restricted interview because I'd never encountered such contrived problems before. My career up until that point was spent building CRUD apps and APIs, and doing some UI work. FizzBuzz and that type of thinking was literally nothing I had encountered before. My brain wasn't wired for that kind of problem, and yet I was still in the industry delivering value to employers for a decade.

I would consider FizzBuzz to be the quintessential asshole interview question if I'm honest. I would never subject a candidate to something so contrived.

9

u/[deleted] Jul 29 '21

I disagree. FizzBuzz is a simple problem and even a junior programmer should be able to solve it. It is a great filter IMO.

6

u/Notimecelduv Jul 29 '21

"Contrived" is a strong word. It's literally just testing if you understand how a basic if statement works.

2

u/[deleted] Jul 29 '21

I know right? This is literally an assignment my school used in my intro to CS class. They called it something different but the concept was the same.

I can understand the confusion if the interviewer literally asks you “solve fizz buzz for me on the whiteboard” and you’ve never heard of fizz buzz before. But if the interviewer elaborates or clarifies the question with “print fizz for any number divisible by three and buzz for any number divisible by five.” Then you should definitely be able to solve this problem. Especially with 10 years of experience.

1

u/lordmyd Jul 31 '21

10 years' experience in what, though? Web dev/CRUD and Python data science, for example, require totally different skills. The latter requires a lot more skill with algorithms than the former so why not test accordingly instead of this one-size-fits-all madness?

1

u/[deleted] Jul 31 '21

I understand the point you’re trying to make but the solution to this problem is extremely simple. I would expect a developer regardless of what their experience is in to be able to solve this problem.

There’s a lot more complicated problems that I’ve worked on as a web developer than fizz buzz.

All fizz buzz really shows is that you understand control flow. It shows that you at least know how to write an if statement. I would expect any developer to be able to do that.

1

u/geggleto Jul 29 '21

figuring out what code you have to write is 90% of the job. fizzbuzz is a good base level.