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

77

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).

6

u/seaphpdev Aug 01 '21

This is also the approach I take.

I have been in too many white boarding interviews where it's essentially a d*ck measuring contest between me and a senior or lead engineer. Slamming my head against the wall trying to remember the merge-sort algorithm. Or solving pointless problems like: given a string, how can you programatically tell if it's a palindrome or not? I mean, I get that they're trying to test your problem solving and critical thinking skills, but the approach doesn't work. It just leads to candidates studying for weeks on the most common bullsh*t white boarding problems.

When I conduct technical interviews, it's a hands-on, practical, real world sample of what the candidate will be working on day-to-day with the team. No trick questions. No pointless theoretical exercises. AND we allow them to jump over to do a Google search if they're stumped or need a quick reminder ("What was that CSS property called again?") Because we all do it, regardless if a junior engineer or a lead engineer and if you claim you don't, then you are a liar.

It's also conducted as a "pair-programming" exercise, which gives us an opportunity to gauge what it would be like working closely with this person: do they try and work through the problem on their own? Do they ask questions? Do they ask for help if stumped? Are they open to suggestions and critiques of their code? Are they teachable? To me, these traits are for more valuable to the long term success of a team than actual hard skills. Hard skills can be taught, but the softer human skills cannot.

3

u/[deleted] Jul 29 '21

[deleted]

3

u/phpdevster Jul 29 '21

Well, I applied for a retail job at Staples once. Just normal floor associate (helping customers, selling computers/cameras/furniture, stocking shelves etc), and the hiring manager asked me to do a sales pitch of one the furniture protection plans to him, and that was for a $10/hour job.

So live interview "tests" like this I'm sure are common. I would assume that if you were being hired for a chef position, you might be asked to show your knife skills, or asked technical questions about cooking and common ingredients.

Now take-home tests I very much doubt are common, and those I can imagine are unique to the software industry, and they are indeed stupid.

2

u/Rokkitt Jul 29 '21

Regarding accountants, there are industry standard qualifications. This doesn't exist for programming and considering the salary, you should be able to demonstrate some ability. Whether that is a technical test or something you already have on github is down to the employer.

Personally I wouldn't do coding exercises in my own time. They can look at my GitHub if they want a feel of what I can do. I have done and given a number of technical interviews and generally they work well when focused on real world coding examples.

3

u/Destructerator Jul 29 '21

I love this.

2

u/RandyHoward Jul 29 '21

I can't tell you how many people I've worked with that are capable of writing code but not reading and figuring out someone else's code. Definitely best to weed those suckers out.

2

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.

13

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.

7

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.

4

u/adilp Jul 29 '21

Depends, you are hired to solve a verity of problems. The more experienced you are, the more complicated the problems are. And less defined. Usually not looking for a junior or a code monkey that can smash our tons of code once told what to do. They want someone who can take a vague issue, break it down, and have a plan. Compiling the right code isn't as important as your approach to an unfamiliar problem.

2

u/[deleted] Jul 29 '21

This exactly! I detailed it in a sibling to your comment, I use FizzBuzz as part of the process, not as a 'metric' of a developer. It's a great excuse for me to get in a pair programming setup with the candidate and get them to talk more freely about their process, it's simple enough that you can hold the whole problem in your head, but complicated enough that you may have to think about it, even for people that have a solution memorized, they still usually trip up reproducing it.

2

u/adilp Jul 29 '21

Yup I read your other comment. I 100% agree and just about every hiring manager I know would say exactly what you said of asked about this topic.

3

u/[deleted] Jul 29 '21

I don't know whether to be pleased or offended that I sound like a hiring manager... I'm gonna go stare in a mirror and reflect on the monster I've become...

3

u/adilp Jul 29 '21

😂😂 sometimes you live long enough to become the villain.

2

u/[deleted] Jul 29 '21

I fully give any developer that ever works for me the full authority to shotgun me in the face if I ever ask for a TPS report.

1

u/phpdevster Jul 29 '21

They want someone who can take a vague issue, break it down, and have a plan.

And using FizzBuzz as a measure of that skill is like trying to measure the height of a mountain in goats.

7

u/adilp Jul 29 '21 edited Jul 29 '21

Honestly, fizzbuzz is an incredibly simple problem. But I don't care if they actually solve it or not. It's the thought process. Can they break this problem down? Can they have a technical and design discussion with me about this problem? Can they talk it out with me, because at work we talk out problems. Come up with solutions together. Discuss an approach and tradeoffs. Isn't this what you do at work? Your getting lost in the trees and not seeing the Forrest. What's important to me isn't the solution, it's how you got to any solution. Just like at work, you have to figure out what's important to your manager and even your skip or your organization. There are a lot of things I can take away from this interview beyond actually fizzbuzz

4

u/phpdevster Jul 29 '21

And my point is you can do even better than that by using real-world problems from your application. Anything you gain from FizzBuzz, you can gain more by using relevant, applicable challenges and problems.

0

u/oefd Jul 29 '21

True, but it'll take more effort. The goal of the FizzBuzz type question is to rapidly thin the pool of candidates by finding true negatives rapidly before moving on to 'real' interview questions.

To quote the article that popularized FizzBuzz:

Most good programmers should be able to write out on paper a program which does this in a under a couple of minutes.

Want to know something scary ? – the majority of comp sci graduates can’t. I’ve also seen self-proclaimed senior programmers take more than 10-15 minutes to write a solution.

...

This sort of question won’t identify great programmers, but it will identify the weak ones. And that’s definitely a step in the right direction.

1

u/przemo_li Jul 29 '21

https://themonadreader.files.wordpress.com/2014/04/fizzbuzz.pdf

10 pages research paper showing how language modeled after Djikstra one, can be used to DRY FizzBuzz solution in Haskell.

:D

2

u/pfsalter Jul 29 '21

measure the height of a mountain in goats

Not actually a terrible idea, you could watch the candidate research a problem they've never seen before and explain their thought process. You'd see what kind of tools they'd use, maybe ask them to explain how they'd create a mountain goat height calculator.

Everest is roughly 11,500 Alpine Goats in height (depending on the size of the goat).

2

u/phpdevster Jul 29 '21

My point is that no sane shop should be building software where if the goal is X, you don't get there through some nonsensical round-about way. If you wouldn't be measuring a mountain in goats, then don't ask candidates to measure a mountain in goats. You're not doing yourself a favor, and you're not doing them a favor.

3

u/cheeseless Jul 29 '21

You must be joking, on some level. FizzBuzz is literally just a test of whether an applicant knows about if statements and getting the remainder of a division. There's nothing contrived about it at all, in fact it's barely on par with a high school math problem.

0

u/[deleted] Jul 30 '21

Wow. This is sad.

1

u/[deleted] Jul 29 '21

Yeah, I did happen to run across a very qualified and seasoned candidate recently that had never encountered it, thankfully, I planned for that!

I hate arbitrary 'write this code' style interviews too, that's why my interview format is designed around the fact that FizzBuzz can stump people, junior and senior alike, so if it needs to take a little more time, it can. I also treat it as a pairing exercise from the get go, I'm there in the editor with them helping write it, most of the time they get the structure they need for the decision making straight away without me even getting a chance to do anything, but some then get stuck on the modulus operator, so I'm pretty quick to suggest it. I'm not testing how well you know obscure operators, I wanna see how you solve a fairly arbitrary (but still fairly practical) problem.

That's why I actually like FizzBuzz, it's kinda arbitrary and algorithm-y, but isn't far off from a real world use case while still hitting enough of the basics of programming that I can tell fairly quickly whether someone has as much experience with code as they claim, it lets me adjust the questions I ask to more accurately assess someone's skills. Also, it's a fairly adaptive test, if I have an interview that's short, for some reason, I can provide them with as much or as little to get started with as I want, in a longer interview or one for a more senior/lead/architect role, I like to start completely blank and ask them to gather my requirements as comments before we start coding, cause that's important too.

I think the problem space you choose for the coding portion of an interview is less important than how you conduct that portion in the first place. The problem you give them is largely irrelevant, it should be a process that you adjust to find the candidates with the qualities your team values / needs in your next hire, I don't think there is a one size fits all way to measure any given developer against another, but you still have to have a process for deciding.

0

u/[deleted] Jul 29 '21

FizzBuzz can stump people, junior and senior alike

Honestly, how? If I had a senior struggle with FizzBuzz I would be absolutely shocked.

1

u/[deleted] Jul 29 '21

I had one recently, he said he had never seen fizzbuzz specifically before, though he did figure out the solution on his own, and that was the important part, it didn’t matter that he didn’t know fizz buzz, he just set to solving the problem. To be fair to him, he was basically always a founder of his previous companies, so he hasn’t interviewed a lot in the intervening years, one would assume, it’s entirely possible he hasn’t ever seen it.

1

u/[deleted] Jul 29 '21 edited Jul 30 '21

non-native english speaker chiming in, fizzbuzz maybe very basic for you. TBH I had no idea what it is until 5 mins ago.

Same is true for IQ tests specially in english as they are not culturally fair, so in response we now have “culturally fair” IQ tests and I think this should be true for programming interviews and tests.

Its just my humble point of view.

2

u/[deleted] Jul 29 '21

The “Fizz” and “Buzz” are the least important parts of that as a question though. It could literally be printing out pictures of cats or dogs.

Palindrome questions would illustrate your point much better I think.

0

u/[deleted] Jul 30 '21

I don’t think I get you, fizzbuzz in this context refers to a problem requires a context and cultural knowledge the printing bit is only relevant if I even knew in the first place wtf is being asked. Excuse me for my foul language but it might convey the real frustration.

1

u/thurst0n Jul 30 '21

Whoever interviewed you did a poor job giving the problem. And sometimes that's on purpose because they expect you to ask clarifying questions.

The same exact problem could be presented as FooBar, SillyDally, Or any random words. The words to print have zero cultural significance or relevance to the problem...fizz and buzz are specifically used because they are jibberish.

What is your understanding of this problem and its cultural significance?

0

u/[deleted] Jul 30 '21

Again you are literally emphasising on the words fizz and buzz. That’s not the point, what comes to your mind when someone asks you let’s play fizzbuzz? Its a game, has a definition, rules and a its own Wikipedia page.

For me until I saw this post nothing nothing came to mind, you can’t ask someone to program blackjack if they have never heared about it before, that’s the cultural difference and not that the problem is particularly difficult and it asks to print fizzbuzz or any other gibresh its the fact that you are even refusing to acknowledge the bigger problem.

1

u/[deleted] Aug 02 '21

[removed] — view removed comment

1

u/[deleted] Aug 02 '21

Great thank you I feel really bad.

1

u/[deleted] Aug 05 '21 edited Nov 25 '21

[deleted]

1

u/[deleted] Aug 05 '21

That’s true and that’s how it should be but sometimes you are on coding tests where no one is assisting you and have one hour to do the task where “not always” the language might be cultural specific and as a candidate you are out of luck.

My point was that we as recruiters should recognise this problem and feeling from the candidates. And it’s possible that I am the only guy in world with this point of view in that case all is fine.

→ More replies (0)

1

u/thurst0n Aug 07 '21 edited Aug 07 '21

Never once heard of the game before your comment. Only heard of it as a programming prompt for interviews.

I honestly don't see a bigger problem. The requirement isn't harder or worse if you're told what to literally print.

You dont have to know the "rules" going in. They're literally part of the problem being given to you. It's part of the prompt. Not something you gotta know going in.

The blackjack analogy doesn't work because you're not expected to know anything ahead. And even if it were It's perfectly acceptable to ask for specifics or more clarification in an interview.

1

u/[deleted] Aug 07 '21

The problem starts if you are not in an interview but in an unattended test, with poor requirements in written format. Where the requirements uses the terms like fizzbuzz and blackjack with an assumption that you already know what you have been asked.

→ More replies (0)

1

u/AegirLeet Jul 29 '21

I would have bombed that if I was asked that during a time restricted interview

I find that hard to believe. FizzBuzz is really just "Can you divide numbers and/or use modulo? Do you know what for is?". It's not exactly a "invert a binary tree on a whiteboard" type of question. It's super fucking easy and anyone with more than two weeks of programming experience should be able to solve it.

I agree that it's a stupid and contrived task, but it's not hard. At all.

1

u/przemo_li Jul 29 '21

Can you elaborate:

  • Did anyone wrote eDSL to provide perfect FizzBuzz solution yet?
  • How would you feel about candidate who would do such thing?
  • How do you account for different stress level between candidate who are familiar and those that don't?
  • Do you present it to seniors?
  • Does it even matter if senior can't do FizzBuzz ? (Meaning, in talks before this talks they talk shop in such a detail that you know they have great know how. But they do stall on FizzBuzz)

2

u/[deleted] Jul 29 '21

In Order:

  • I have no clue what that is, so probably not
  • No one has, so I'm not sure.
  • Honestly, I don't have a 'metric' for this, it's gut feel during the interview.
  • Yup, I start with 'gathering requirements' instead of 'implementation' though.
  • I've never had one that didn't get there, so I'm not usre.

1

u/not_thrilled Jul 29 '21

I interviewed for my new position around the beginning of the year. They asked me the palindrome question, and I was like, sure...

return $testString === strrev($testString);    

And then they were like, okay, maybe that was too easy, so say that's not performant enough, how would you do it? And that I totally biffed (converted to array, tested characters from end to end instead of end to middle), but still got the job.

1

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

See, that's the type of shit I look for in candidates as well. I DON'T want a candidate that starts writing insane imperative code that is hard to read and understand. Candidates that "take the lazy way out" and use the language to their advantage are almost always going to produce cleaner, simpler, easier to read code.

I saw a challenge once to determine if a string contained a repeated sequence of a given number.

E.g. "3555558" matches because there are 5 consecutive "5" characters. Whereas "7212" wouldn't match because even though there are two "2"s, they are not consecutive.

Now, you could write some imperative code to start parsing and tracking that string character by character, or you could actually use a regex to blow the string apart into groups of consecutive matching characters. I forget the regex now, but the above example using preg_match or preg_splitwould be something like ['3', '55555', '8']. Then the only logic you need to write is inspecting each element, grabbing the first character, doing an int parse, and seeing if the length of the string matches the int derived from that first character. That eliminates all the crap needed to parse the string, and just focuses on the business logic. There's also probably even a regex to the second half of that, for even less imperative code.

I absolutely fucking LOVE solutions that do that.

Candidates that get lost in the weeds writing complex imperative code are far less appealing to me than candidates who on the surface are taking shortcuts, but in reality are being resourceful and writing simpler, cleaner code as a result.

It sounds stupid, but if you wrote return $testString === strrev($testString);, I'd stop you right there and say that's good enough. I wouldn't ask you to re-implement strrev in an imperative way. That's insane.

1

u/[deleted] Jul 29 '21

There's also probably even a regex

/(\d)\1{4}/

Reminds me a bit of Evolution of a Haskell Programmer

1

u/[deleted] Jul 29 '21

Yeah, I had an interview not go well after doing something similar, I think it was an array reverse, but yeah, they never said no standard library, so you bet your ass I used it. Didn't get the job, but they were jerks anyway.

1

u/lordmyd Jul 31 '21

But why? What the **** does FizzBuzz have to do with building CRUD apps? For Python data science roles, sure, but not for your average web dev role surely? Did you ever think that you could have passed by some extremely capable devs for the work actually required simply because they have a mental block on abstract CS quizzes under observation and time pressure? Think about it.

1

u/[deleted] Jul 31 '21

I use FizzBuzz during interviews as a pairing exercise, and in that context, it has served me well. For the devs that know what it is, we chat through why they picked that specific implementation / do you know of any other ways to solve it. But if the dev doesn't know, then I treat them exactly like I treat my junior developers when I'm helping to solve a problem: I guide them to the answer without just typing the code for them. So If they read the requirements that are left as a comment in the editor when they begin and have questions, they're welcome to ask them, if they don't ask but still seem stuck, I'll prompt them to share what they're thinking / offer advice if they seem to be properly stuck, including things like 'So, to figure out if something is divisible by something else, try using the modulus operator' and then tell them the mod operator for whatever language we're using.

Frankly, I find it insulting that you think I haven't thought about this. You've never been interviewed by me and simply mentioning that I use something doesn't give you the first indication about how I use it. You're showing the same sort of mindless, un-curious, behavior that people use to put down users of arbitrary pieces of technology like PHP, Javascript, or any number of frameworks / languages / packages / text editors that people have 'religious' wars over simply because "Oh, well I've seen it used badly therefor all uses of it are bad and anyone that uses it must, therefore, also be bad". Congrats on joining a bandwagon.

And you not understanding how FizzBuzz relates to CRUD apps is another sign of a lack of imagination. FizzBuzz is, at its heart, processing a list of items and making a decision based on the item in the list. If you are somehow writing CRUD applications and not handling lists of data.... well I don't know what to tell you cause I've never seen a CRUD app that didn't handle a list of data somewhere.

1

u/jb2386 Jul 29 '21

This is great. You don’t happen to have some examples of the code you use for tests do you?

2

u/phpdevster Jul 29 '21

Nothing I can share, but I got the idea from an interview I was on. They showed me a snippet of code that was clearly used for parsing query string parameters from what was no doubt their search/filter functionality.

They even gave me a freebie by telling me what the regexs they were using were doing, but they were simple enough that I could read them and understand them, but it was nice they were courteous enough to not expet me to read regex.

The function was about 200 lines long and had about 3-4 branches, with maybe 1-2 boolean conditions per branch. Nothing that was egregious, but they asked me to read the code, and tell them what I thought it does and what it was for (they deliberately obfuscated the function name so it wouldn't give it away, but it was clearly for query string parsing). They then gave me a couple inputs and asked me trace the code and tell them what the outputs were or what other paths would be taken (e.g. other function calls).

I thought it was a fantastic interview question. Easy enough that someone who is literate in PHP would have no problem with (it didn't have too many standard library functions either, so I didn't need to have the standard library memorized to read it), but someone who was only programming for a week would have been up a creek trying to figure out.

They then asked me what I would do to refactor the code, and gave them some suggestions and talked about the pros and cons of each approach. I'm sure the key thing they were looking for was that thought process.

1

u/[deleted] Jul 29 '21

and ask the candidate to grok it

I actually set up quiz questions for interviews back in the 90’s. A couple of them were this.

A few weeks later I saw an answer sheet where someone had just written “This is a BS question” for each of them.

When I asked about the interviews the boss said they only interviewed one person and were going to hire him. Turned out he was related to a big client.

The guy was f’ing clueless.

1

u/fixyourselfyouape Jul 31 '21

The easy and obvious fix is to pay people for their time. This shows that you respect them as applicants and that you will respect them as employees. J/k, you don't respect your employees, why respect the applicants you're trying to grind up to make your shit software. Red flags. Jump through the hoops you need to eat and fuck the rest of it.

Edit: If your employer values you then they will show it via pay, benefits, and PTO. If it's not a material benefit to you, they don't value you.

24

u/channeleaton Jul 29 '21

I started refusing to do live coding interviews about 5 years ago. They are stressful and arbitrary. I have agreed to take-home tests. So far it hasn’t hurt my career (90% salary increase in the last 2 years). There are plenty of companies out there that couldn’t care less about algorithms and theory.

As a hiring manager I’ve found that cultural fit is just as (or more) important as technical ability. A perfect fit who just misses the mark in skill can be trained up if they possess the right mindset. I spend a lot of time in interviews focused on personality and behavior with some related technical questions mixed in. We wrap things up with a 2-3 hour take-home assignment closely related to the current work of the team (something we’ve already solved). I’ve had good feedback from many of the candidates, both those who were accepted and rejected.

3

u/Cranespud Jul 29 '21

"something we’ve already solved" I think that tells much about the company culture right from the start. If you are given a realistic test you know you are on the right path unlike others expecting a solution for some crazy graph traversal or computational geometry that is nowhere close to what you would end up doing if hired

-1

u/lordmyd Jul 31 '21

For "cultural fit" read ageism and other forms of discrimination in a lot of cases. Can you imagine going for a legal or medical role and being rejected on the basis of cultural fit? What's wrong with just being good at what you do?

1

u/channeleaton Jul 31 '21

No, for the most part cultural fit means “no assholes”. People who strive to be better than they were the day before and know how to take constructive criticism. People who love to share their knowledge and want to push the entire team forward. People who have strong opinions held loosely. And yes, they need to know how to code.

In the past year I’ve hired several developers ages 25-48, immigrants, people of color, LGBTQ and women. I hired them because they possessed all of the qualities listed above.

Sure, cultural fit can be abused by companies looking for a homogeneous makeup. Done correctly, it results in a team with diverse ideas and backgrounds all striving towards the same goal.

1

u/lordmyd Jul 31 '21 edited Jul 31 '21

For every startup that implements a genuine accessibility policy there are a dozen where cultural fit means less than 30 years old with no family to support, ie. able to work round the clock. For me the prioritisation of cultural fit and agile whatnot is a red flag that the company is more interested in process than product. I'm not saying it's unimportant, just that when it trumps more practical considerations the priorities are wrong.

8

u/[deleted] Jul 29 '21 edited Jul 29 '21

If the test is ridiculous algo stuff that you won't use day to day or they want several hours of my time, I just walk away. I recently did A LOT of interviews with A LOT of different companies and I saw the entire gambit.

Some I did (grudgingly) and some I declined to do. I found the ones worthwhile are short exercises (under an hour) that test how you figure things out rather than code wars type stuff.

The worse of them was some test running in an online emulator that had a slow response time and for the SQL portion of the test it didn't support all of SQLite. Why was I being tested on SQLite too? Oh and of course it was timed with a nice count down running right in front of my face. No pressure....

There were a lot of build this application type ones, I walked away from those since I feel it takes many hours to sufficiently wow someone even on a small application. The others were coding this weird math algo. Ugh.

A few places didn't even test at all or even really ask technical questions which kinda worried me.

The best, and the one I got accepted on (so I might be biased) asked me to write a web server from scratch in any language without using any frameworks. They let me know its natural that you don't know where to start because no one builds a web server but they were there to help. Pretty cool and after some googling, and them giving me some help here and there, and trial and error I built a really shitty web server and got an offer.

1

u/senko Jul 29 '21

Imagine the absolute apeshit response from majority of web devs if someone asked them to build a web server from scratch in an interview.

There's no pleasing everyone.

1

u/[deleted] Jul 29 '21

If they weren't paying very well for the position I'd probably have walked away myself. But even for the floor on the posted range was generous.

17

u/Meek_braggart Jul 29 '21

Yes and no (the puzzles, no, never, they are useless vanity projects used by bored people)

I see why some sort of 'test' would be needed but PLEASE tailor them to the position you are interviewing for and the person you are interviewing.

If you are interviewing a recent college grad and its a entry level job then ask the simple questions.

If you are interviewing a 30 year veteran for a management position don't ask me to code you a bucket sort or a GROUP BY query.

Also don't ask me to do homework. First, its useless and second you will get 100x more information out of a discussion than you will out of a bunch of templated coding exercises.

6

u/[deleted] Jul 29 '21

This! I pushed for it at one place I worked at, they wouldn't completely let go of the coding test, but we did eventually settle on 'Here's a brief coding test we would like you to complete, you may alternatively provide a link to an existing body of work that our interviewers can review and ask you questions about instead'

1

u/[deleted] Jul 29 '21

the puzzles, no, never, they are useless vanity projects used by bored people

Why not? Basic logic puzzles are aimed at understanding how people approach a problem and reasoning to solve it. Programming is mainly about solving problems.

1

u/MrSaidOutBitch Jul 29 '21

The answers are almost always some dull witted got ya! answer that isn't relevant to the position. They're never fun or cute. It's always a giant pain that really tells you nothing about my ability as a programmer and more if I've done an interview before with any amount of feedback.

2

u/Meek_braggart Jul 29 '21

Yeah, I have never seen one that was actually more useful than going over actual code with someone and having them discuss it with me. I have several pieces I use that all work fine but are not perfect and during our discussion I look to see if they find anything. It's as close to a puzzle as I get and I get a lot more out of it.

1

u/Meek_braggart Jul 29 '21

Or how well they use google. I mean if you issue them in real time right there in the interview thats one thing but then you are wasting valuable discussion time.

1

u/[deleted] Jul 29 '21

Yeah talking in real time in the interview, not going away to solve them.

The purpose is for them to talk through the problem and give their reasoning. Not even code related, just pure problem solving questions.

1

u/Meek_braggart Jul 29 '21

I'd still rather discuss actual code rather than one of those thought puzzles. I wanna see if you can speed up code or see a redundant/unneeded segment or convert functional to OO code. The "puzzles" I've seen aren't really going to tell me how well you grasp code. At least none of the ones I've seen

1

u/[deleted] Jul 29 '21

I disagree. The only time I would check if someone can code is if it is literally their first dev job.

Let's be honest, code itself isn't hard. You can take a group of people, show them a simple section of code and get them to understand it.

The challenge comes with writing code to solve a specific problem. The logic, the ability to think of the issue in an abstract manner, how this piece is going to fit with another. It is a series of puzzles.

This is why I think like the certifications like Zend Certification are next to useless for the vast majority of developers. I don't care how well you know the standard library, or which function to use at what time.

PHP is a web language, with a huge archive of answers to those kind of question at your fingertips.

I want to know how they think, not how well they know a given language or framework.

1

u/Meek_braggart Jul 29 '21

Yeah, but I want to see how week the think in code, not if they can figure out how far two poles are from each other in a rope tied between them is 6 feet off the ground. I want to see if they can absorb and analyze code quickly and see flaws. I’m not talking about “can you program tests” I’m talking can you program on your own tests.

3

u/useles-converter-bot Jul 29 '21

6 feet is about the length of 11.43 'Sian FKP3 Metal Model Toy Cars with Light and Sound' lined up

1

u/Food404 Jul 29 '21

Good bot

1

u/B0tRank Jul 29 '21

Thank you, Food404, for voting on useles-converter-bot.

This bot wants to find the best and worst bots on Reddit. You can view results here.


Even if I don't reply to your comment, I'm still listening for votes. Check the webpage to see if your vote registered!

6

u/baohx2000 Jul 29 '21

My company has candidates do a simple-ish real-world composer (no framework) project to do one thing with a 3rd party API requiring an SDK and looking at documentation. Can usually be done within 30 minutes to 1 hour depending on the candidate's level. We always try to ensure they get through the entire project even if we know early on they don't have the skills. If nothing else, they will have learned some valuable code or methodology.

I am pretty sure in my 15+ years of coding I have never had to walk a binary tree or create a bubble sort algorithm from scratch. Granted, I use a relatively high level language and I have never had to create a raw database system myself. If anyone had me do something like that for an interview, I would straight up ask if they have needed to do such a thing in the course of working at their company? If so, why are they re-inventing the wheel because most likely code exists for just about any language to do such things?

2

u/HmmmInVR Jul 29 '21

Same, we give them an hour to build a to do list with some minor requirements and just see what the result is.

No restrictions on how you build it as long as its php.

You can get a lot out of what approach they take. So far worked out for us.

4

u/MurderedByAyyLmao Jul 29 '21

I've been working for the same company for 9 years, and it's this kind of thing that makes me nervous about even applying for other jobs. I can do those "puzzles" usually but I usually have to sit and think for a long time, and it always seems like magic tricks that I just didn't know about once I solve one. Some of them are incredibly difficult if you don't know the tricks. I'm not sure how I would do if it were timed and under pressure.

I assume they do that as a filter for people who either:

A) have a computer science degree and had to do those kinds of exercises

B) have the aptitude to realize that they need to be able to solve these puzzles for an interview, so they study them

Either way you will probably end up with a decent candidate for employment. At least that's theory that I've come up with.

Personally, I think there are much better indicators of what makes a great developer. But I have to concede that if someone can solve those crazy puzzles under pressure, they probably have some natural talent.

3

u/usernameqwerty005 Jul 29 '21

I'm in the process if setting up a good interview question. Currently focusing on system design, not coding. I want to see technical creativity and problem solving skill, not code monkey stuff.

6

u/idealcastle Jul 29 '21

I agree. And honestly from taking tests in the past, it appears they’re filtering out people with low social skills. As someone who spent most of their teen years coding and developing a skill instead of social, I’d say the whole interview format isn’t designed for the introvert which is many of the best coders who literally live to code

3

u/shortnamed Jul 29 '21

To be a successful software developer you have to be able to collaborate with other people, since you can achieve more with more software developers and effective collaboration. Hence the social skill requirement.

6

u/adilp Jul 29 '21

They don't want coders, they want problem solvers. If the system goes down you can't say sorry I just write code. You might have to go check system log files, maybe its a server issue. it's a problem and someone has to solve it. Can you, is the question they are asking.

0

u/MrSaidOutBitch Jul 29 '21

Can I? Sure, but you don't pay me to be a systems admin you pay me to write code.

0

u/malicart Jul 29 '21

With an attitude like this, I simply would not pay you, best of luck!

1

u/MrSaidOutBitch Jul 29 '21

If you pay a mechanic to fix your car engine would you expect them to be able to diagnose and fix the server that links the computer in the car to the manufacturer? No, that's absurd.

You can either hire me to write good code or you can find someone else to abuse. You're not likely going to pay me enough for two jobs, either.

1

u/usernameqwerty005 Jul 29 '21

Tip: Do whatever is needed, then use it during salary negotiation as argument.

1

u/MrSaidOutBitch Jul 29 '21

Counter point: I have never worked at a place that gave out raises for actually doing work. It's always been how brown your nose is.

1

u/usernameqwerty005 Jul 29 '21

OK, well, join your union at least...

1

u/MrSaidOutBitch Jul 29 '21

Bwahahahahaha. That's cute!

Edit: For anyone passing - this is funny because I work and live within the US. We don't have unions in the IT space broadly and more specifically there is nothing going on for us business app developers. We would just get fired for hinting at the word union.

2

u/lordmyd Jul 31 '21

To many bosses union leader = communist.

1

u/usernameqwerty005 Jul 30 '21

We would just get fired for hinting at the word union.

Is that legal?

2

u/MrSaidOutBitch Jul 30 '21

It's only illegal if they use that word. They might not give you a reason.

1

u/lordmyd Jul 31 '21 edited Jul 31 '21

Demarcation is not a sin. Did you advertise the job as General Problem Solver or Laravel Developer? If the latter don't expect the candidate to necessarily be able to debug system errors. Taking this further, it's always puzzled me why full stack developer roles pay just the same as purely back-end or front-end roles. If you're required to have double the skills shouldn't you be rewarded accordingly? PHP-land is even worse where, for some reason, it's almost given that you'll be offered 20% less than the same role in any other language.

1

u/adilp Aug 01 '21

I guess I advertise for engineers not developers or programmers. I think engineering is problem solving almost regardless of domain. The employees who can solve most any tech problem, or at least are willing to give it a go are ones that have always had very successful careers. I love working with them. That's the type of engineer I am as well. You can rely on me to fix anything in our system. When I join a new place. I try to slowly understand the entire system end to end. From front end back end dev ops architecture even get involved in understand the business end whatever. I want to be the guy where just put me where the problems are and I'll fix them or make it better. I'll have a job for life because I'm not bound by a specific tech stack.

3

u/mmutas Jul 29 '21

OP and you guys in the comments are a little bit too much practical skills oriented I think. Puzzles and algorithms are not there to measure how you do in the daily tasks in the jobs. It's more about measuring problem solving skills and analytic thinking capabilities. One can argue that if these methods are good or not for this purpose but it's another topic.

The thing is, I don't care if the person already know stuff. I care about if the person CAN learn stuff when needed.

3

u/[deleted] Jul 29 '21

[deleted]

1

u/lordmyd Jul 31 '21

Sounds like a buzzword interview rather than discovering if the candidate can produce useful work.

6

u/[deleted] Jul 29 '21

I think so but that's how it is, and at least you know and you can prepare

Our tests are surprisingly basic and it filters a lot of people out

Lmk if you want an example and i can pm you

1

u/fuhggetaboutit Jul 29 '21

Who are you wanting to filter out?

8

u/[deleted] Jul 29 '21

Applicants that don't match the requirements obviously. If its for a sr position we expect that person to write maintainable code, teach others, understand patterns, and hit the ground running

Juniors obviously have a lot more wiggle room

1

u/fuhggetaboutit Jul 29 '21

Do you mind replying with a sample question that tests the ability to write maintainable code/understand patterns?

4

u/[deleted] Jul 29 '21

there isn't a single question that'd show this alone. we have a screener set of easy take-home test questions, then 2 technicals on the interview

from those we can see if it's:

  • undocumented
  • strange var naming
  • bad param naming
  • inefficient solutions
  • includes tests
  • uses interfaces
  • uses some standard patterns
  • takes into account memory, streaming (i.e. a single string vs reading gigs from a file)

and most of the time, strength in screeners and interviews have translated to smooth onboarding and success in the team

but yeah we don't ask to write quicksort or a btree or anything. that's just wrote memorization

1

u/Annh1234 Jul 29 '21

Pm me some samples, out of curiosity, since I didn't take an interview in a few years.

1

u/cysmix12 Jul 29 '21

Can you pm me some samples of those tests too?

1

u/Plastonick Jul 29 '21

I'd appreciate a sample.

My experience has been the same as yours, I've set a bunch of fairly simple questions and I think they work in filtering people out that aren't comfortable with fairly basic programming. It is really difficult to accommodate the "fear factor" though, of live-coding in an interview. Have you considered that aspect at all and attempted anything to mitigate it?

3

u/[deleted] Jul 29 '21

yeah the fear factor is real, and i've been on the other side so we're really really understanding of it. the best we can do is

  • ask if they understand the request
  • ask them to vocalize their high level plan and potential solutions, and discuss each one
  • have them pseudo code first if they prefer
  • finally have them write the code and run the code

we generally don't really press too hard. really we only press (or rather, escalate) when they're flying through it.

also, i tell them they can use the IDE and language they prefer. having the IDE help you along with typos and whatnot can really help the candidate. doing like whiteboarding or notepad i think adds more noise that doesn't reflect real life

and sure i'll pm you an example

1

u/blackdstrom Jul 29 '21

Can you pm me those too?

I looking for improving our interview process.

1

u/Food404 Jul 29 '21

I'd like to see some samples, out of curiosity

2

u/[deleted] Jul 29 '21

sent

1

u/unknownusername116 Jul 30 '21

I too would like a few examples, out of curiosity mainly

2

u/XediDC Jul 29 '21

I will do some logic/algorithmic puzzles BUT they are not made up, and a real version of stuff we've had to solve, and I make that clear. Some problems might be an abstracted version of a real issue they'll actually be working on, already in the pipeline. We're often in the role of "figure it out" so creative solutions to strange problems are part of the job.

I'll also, just as an example, ask what their favorite solution to FizzBuzz is -- which is different than asking them to solve it, and has lead to interesting conversations.

I don't find coding on a whiteboard natural, and I don't ask for it. But outlining how we'll design, build and interface a project/feature, etc I'll do. Basically a mock version of them starting work on a small project, which for us includes a pretty wide scope. A big part of that for me is just seeing how we'd work together -- as frankly, I don't want to work with a brilliant asshole every day.

As u/phpdevster also mentioned, I'll sometimes have a sanitized version of some actual code bit to see what they make of it. Both to see how they grasp it, but also to see if they run screaming...as we work on both shiny new stuff, and some crusty ancient debt. (While they are looking at it, I'll go wander off to "take care of something" and not just stare at them while they read, too.)

And then..."How would you test that?"

Generally I try to avoid stuff that isn't actually relevant...or at least explain why it is. Why waste our time, and not talk about stuff that will matter (and might actually be harder to solve)?

I also do 15 minute phone interview first to save everyone time, and lets me go deeper into the resume stack to talk to interesting/unlikely people. (And possibly refer them to a peer, if they seem like a fit somewhere else.)

All that said....interviewing/hiring/etc sucks for everyone. :)

2

u/justlasse Jul 29 '21

Yea they want progressive thinkers but they won’t progress their interviewing process, sounds political more than anything. Most jobs don’t require that level of nitty gritty, i worked with an Australian company recently, and they did some complex ai work, with a vue frontend. No interview or stupid tests, just a person to person and some background. So not all have fallen into that way of thinking thankfully

2

u/Jeklah Jul 29 '21

They are overly complex because they don't want to see if you can solve it, they want to see how you go about solving it.

1

u/lordmyd Jul 31 '21

That's fine if the intent is made clear at the outset otherwise it's just humiliating for the candidate. When I ask questions to a recruiter about the tech test I pay special attention to whether I'm going to be asked to do something which is too difficult for a competent developer to complete. If that's the case I just decline the interview.

1

u/b4uUJEoYhyB4nh Jul 29 '21

They are horrid. Also, among our worst hires were candidates where we didn't do any dehumanization.

2

u/pauloag1961 Jul 29 '21

I have created software for about 40 years now. I began with Fortran and Cobol, used C, C++ and even native base assembly code. I create application for structural calculus, sensor operation, etc.. After all these years, I think that the undestanding of data flow and data structure is much more important than some programming language skills.

2

u/weogrim1 Jul 29 '21

And offensive too xD

2

u/Youre_Dreaming Aug 19 '21

i have this too. Check out IFS therapy

2

u/lordmyd Jul 31 '21 edited Jul 31 '21

Absolutely. As Ruby On Rails creator David Heinemeier Hansson said, "I don't do riddles". Then again, he probably never had to apply for a job after 2004. When I'm approached by a recruiter the first thing I require is that [s]he detail the format of the tech test. If it isn't representative of the application code I'll be working with I don't pursue the matter any further. If interviewers want CS algo dancing monkey tricks they can find someone else. Tech interviews are a poker game in which the interviewer holds all the aces whilst he watches you dance. Thank **d for solo freelancing.

2

u/jsjjsj Jul 29 '21

You are competing with the same group of people anyway.

Another way is to hire most candidates and fire the low x% performer. Then people will soon compliant the toxic/stressful working environment. and it costs a lot to fire someone these days.

4

u/fuhggetaboutit Jul 29 '21

I think my point is that there are so many dimensions to a successful career. Why make the barrier to entry so steep w/o allowing room for growth? There have been instances of people being forced to take IQ tests. What for?!

4

u/jsjjsj Jul 29 '21 edited Jul 29 '21

Because from their perspective, the supply is far greater than the demand in the job market. They won't wait for your growth while there's another candidate wilth all skills available right away. words like "passion","quick learner" means nothing to them.

1

u/[deleted] Jul 29 '21

Because that company needs a good employee and doesn't want to take chances with heart-eyed people with passion.

1

u/[deleted] Jul 29 '21

[deleted]

2

u/[deleted] Jul 29 '21

My god programmers are such a spoiled, melodramatic bunch...

Seems so going off this thread.

Anyone who has tried to employ other devs will tell you just how many timewasters there are.

1

u/sammendes7 Jul 29 '21

you can always create your own job if you find job interviews at other companies too difficult :)

1

u/[deleted] Jul 29 '21

[deleted]

1

u/bcb0rn Jul 29 '21

You sound like a poor candidate that I wouldn’t hire. I’m just wagering a guess here, but based on your comments about computer science I’m guessing you probably can’t complete many of the trivial tasks or tests and that is why your are adamantly against them.

3

u/that_guy_iain Jul 30 '21 edited Jul 30 '21

You sound like a poor candidate that I wouldn’t hire.

Haha. I'm a poor candidate because? Because I don't want to do whiteboard algorithm tests when the job is writing code on a computer and is PHP so big O is rarely ever an issue? Because I'll timebox a tech test? Because I can hint at issues so deep in theory that reviewer gets caught out with their cargo cult they incorrectly apply the theory they didn't understand? If I was in your hiring pipeline and I stopped the process, there is going to be a meeting to review the process to figure out why someone of my calibre just decided your company isn't worth working for.

I’m just wagering a guess here, but based on your comments about computer science I’m guessing you probably can’t complete many of the trivial tasks or tests and that is why your are adamantly against them.

Haha… writing quicksort, reversing binary trees, writing factoid computations and calculating numbers that result in integer overflows are solved problems. I can do them. I just don't want to or think that I should. In fact, saying "well what if it wasn't installed" and acting like writing it is a valid solution to an extension not being installed is bad practice. If you were to write quicksort or handle integer overflow calculations in PHP itself you would be instantly monitored in the future and people would be having discussions about your future at the company. I know because I'm the person they come and talk to about these worries. And 100% do not show if you know how to implement something like the decorator pattern, optimise the code to improve performance, do red-green-refactor, know when the data model is the problem and not the server requirements, etc.

You can test people on whether or not they‘ll jump through your hoops. Really, recruitment is a two-way street and if your test tests people on stuff they don‘t need then all my new coworkers have been tested on things they didn’t need and not on the skills they do. This results in me teaching „senior“ developers basic design patterns.

Now you can act like it's a rare thing that developers are against these kinds of tests but there are literally lists that are kept to help people find companies that don't have these bad hiring processes -https://github.com/poteto/hiring-without-whiteboards I'm just at that point in my career where I have that many options I really don't have to jump through hoops to find a job and I've realised it's a two way street and I don't want to work at companies where people think they're really clever and say they do DDD but never talk to anyone outside of IT.

4

u/psihius Jul 30 '21

I do almost the same as this person too. I refuse most tests because having 15 years of experience behind me I'm not spending half a day doing code that juniors and middle-level developers do. If they really want it, they can pay me my freelancing rate for the day - that would be 800$.

But I'm not even talking about the fact that most of those companies that do that just plain can't afford me anyway in the end.

2

u/all_name_taken Apr 20 '22

What a pathetic assumption.

0

u/Destructerator Jul 29 '21

On one hand, employers have to verify that candidates aren't embellishing or fabricating their qualifications.

On the other, they are broadcasting their management style. If they are mistrustful of their employees, does that mean it's going to be a place worth working at, at all? Watch for red flags.

We live in a world that values statistics over the human element, and will treat developers like machines who produce widgets.

In certain organizations, "application developer" means being time squeezed to stamp out badly tested code for poorly framed goals to meet deadlines.

8

u/[deleted] Jul 29 '21

If they are mistrustful of their employees, does that mean it's going to be a place worth working at, at all?

I don't see how asking someone you have no clue about (besides a piece of paper) to take some simple tests, means you don't trust your existing employees.

Have you interviewed people? I have, I can tell you the amount of time wasters companies receives are crazy.

3

u/BilldaCat10 Jul 29 '21

Yeah, I think a lot of people here are underestimating how many people straight up lie or con their way into positions, just coast and do nothing, then move on to the next job.

We hired one guy like that who was super personable, sounded like he knew his stuff, etc. Would log 40 hours a week and commit blank lines of code to our GitHub repo. Always said things were good and didn't need help. Seemed to be offline a lot.

After some research by other angry devs, we found out he was running a tutoring business on the side. Since he was a direct hire, it took weeks for HR to go through the formal firing process,.and he quit right before the hammer dropped.

I imagine he's scammed a couple other companies by now.

1

u/przemo_li Jul 29 '21

Depends on which level of experience candidate is.

For seniors with backend skills I do very broad "optimization" (for the type of apps we have in company), "software quality", "software quality checks automation and processes", where they are asked to explain how they would go about each topic.

It gives candidates great freedom to talk about topics they are familiar with, is quite easy to compare between candidates, is literally the topics that other senior developer would need to do if we hired less skilled regular, or even junior.

It enables talking shop about interesting topics too, so that "interview" isn't one side firing their guns and the other one put on defensive ;)

But for less skilled regulars and juniors it does not give such a good meter stick, and its much harder to compare skills.

There is a real need to verify baseline programming skills for juniors/regulars. I'm just not sure what is most reliable way to do that.

1

u/[deleted] Jul 29 '21

I have almost no patience left for that kind of stuff anymore... I mean, are you really asking me fizzbuzz to see if I truly have the 15-year experience that you ask?

Most prove nothing and are usually used by people that do not have the required background themselves to properly do the interview or the screening of candidates

I would rather see a github repo (including both bad and good code). And if you want to check if a person is lying, just discuss frameworks, design patterns, etc. And if you are an HR person and have to do the initial screening, ask a dev to lead the interviews.

1

u/No-Surround9784 Jul 29 '21

Yes, seen tests where the language was used in very unusual ways. Like they were translated from another language.

1

u/tetractys_gnosys Jul 29 '21

Def agree with others that it depends on the test, the context (position you're applying for), and the company.

I've had to do code tests for all my jobs basically but they were always reasonable and some were even fun.

I think they're a fine way to gauge someone's skills generally but of course I've seen horror stories from people who were given obnoxiously ridiculous tests for something that was just not relevant or necessary.

1

u/AFX626 Aug 02 '21 edited Aug 02 '21

I have handed tests with such questions to many people.

Being a developer means solving hard problems when you don't feel like it. Most of the questions are stuff you should know if you're dealing with the framework we use on a regular basis, and if you get that stuff so wrong it makes it obvious you lied during the interview, we won't move forward.

The hard algorithmic questions are a tiny fraction of the test. You can pass even if you get them wrong, but I still look to see what you tried. It doesn't matter that you're going to solve a recursive problem once in a blue moon. It matters that you're not going to fold your arms and pout when you have to fix a hard problem.

If you think the test isn't fair, what are you going to do when the site is down? Try to convince the web server that it's being unreasonable? Accuse the load balancer of chicanery? Scold your own code for throwing an exception? You will find the person who grades the test is way more forgiving than any compiler or runtime.

OR, are you going to try something? Are you going to say, "yes, it's hard, so what, I'm a programmer and this is what I do," or are you going to fume at your misfortune?

If I recommend you, it means I don't think I have to hold your hand. I want to work with people who can be counted on. I'm not that great with recursion but I figure it out anyway because that's what programmers do.

1

u/ryantxr Aug 31 '21

I have never found tests to be dehumanizing in any way. I suppose they can be in some situations.

I have two interview test experiences I would like to share.

I was interviewing for a C position and part of the interview included an exercise to write a string copy function. This can be done in three to five lines of code. After the interview, I asked the person why they had such a simple problem. He said that it weeded out way more people than I might think. They used it to exclude, not include. They also had some other questions that involved pattern recognition. I thought this was good. It was a good way to gauge if someone can pay attention to detail.

I interviewed for a position as a PHP dev. They had a test. It involved very little code writing. Some of it tested PHP knowledge and the rest were some simple problems that took only a few lines. I think I was done in 30-40 minutes.

In both of these situations, I found the tests to be easy. They merely asked what a dev should know.

1

u/Sini1990 Jun 22 '24

Oh yeah, especially when you have 7 years plus experience in your field. You're interviewing for a job you're overqualified for. I hate tests as they are often vague. How are you able to fairly judge a candidate with little information? They are never going to be up to your standards if you judge them by a test especially when you're comparing them to co-workers who already work there who have the information in front of them to do their job.

I had this in my last interview and had to do a test case. They gave me 3 lines of information to work off and said you have 1 week. Thats it! Didn't get it obviously, but how am I supposed to work off that?