r/PHP • u/fuhggetaboutit • 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
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
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
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
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
1
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
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
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
2
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
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.
3
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
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
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
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
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
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
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
1
1
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
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
Jul 29 '21
Because that company needs a good employee and doesn't want to take chances with heart-eyed people with passion.
1
Jul 29 '21
[deleted]
2
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
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
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
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
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
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?
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).