I’ve been hesitant to express my feelings on the latest state of interviewing for Software Engineering roles, but I can no longer ignore it.
What the hell happened?
I’ve been in this business a long time (my peers tell me not to disclose how long) and until this year I’ve never once had to take a coding ‘challenge’ as a proficiency test for a position, and I’ve worked at some big firms in my time. When I left straight up consulting and founded AlbeBaubles. you went through a round of 4-5 interviews – usually lasting an entire day on site – where the directors ask you numerous questions about your experience, to ferret out your strengths and weaknesses.
Now, the idea is to throw low level optimization questions at you that you will never need to deal with in your professional life — it’s not like we’re writing operating systems anymore…I seriously doubt the interviewers could pass these inane programing ‘challenges’ themselves. It’s not uncommon to have to explain your code because these turkeys can’t follow it. Do you really need to put true seniors with proof on their resumes through this nonsense? I can’t remember the last time I had to hand code a binary sort — but I’ll bet it was in my COBOL days.
If your team cannot cull candidates for developer jobs without making them take a stock test under duress — you’ll never hire the best. Who are you to determine if a candidate’s code is pretty or concise or elegant – does it compile and pass unit tests? Is it readable? Is it performant? Then it passes code review.
I’ve had firms fail my code in review for using storyboards too much for UI.
I’ve had firms fail my code for not using storyboards enough to layout UI.
Allow your devs to be themselves, write using their own styles – and get the hell out of their way. It’s arrogant to assume you or anyone else knows the best way to do these things.
Sure, if a dev isn’t getting it, redirect — but never EVER call out a developer for having a different or distinct style separate from you. That’s just harmful and projects ignorance.
And another thing, how many OO languages do you expect an engineer to know in order to be a qual’d engineer? You only need proficiency in one to be able to obtain proficiency in any other, but someone with only one language will not know that when interviewing prospective candidates with experience in many. Nor will your recruiters.
All of this contributes to this ‘imposter syndrome’ that not a single developer or any human should feel or worry about.