Software Development Interviewing in the 21st Century
I came across this video while looking at videos about French Bulldogs. Turns out Tony is a software developer and while he has some videos about his Frenchie he also covers tech topics. This particular video is about finding (or not finding as it were) software jobs in 2020 but his rant near the start about how tech interviews go really made me laugh but he’s right, it’s really gotten out of control.
For most people looking for jobs you’re not going to remember (if you ever learned in the first place) how to write data structures or analyze algorithms using “Big O notation”. Yet these types of questions are happening during many interviews. This leads to many people “learning” just enough to answer the question vs. really knowing what they’re talking about.
Here is a perfect example:
It is a pretty abstract and very esoteric concept that the vast majority of people will never hear about, or care about. BUT it is known as being a common coding interview question, and therefore it’s one of the things I have spent some time learning all about.
The author is correct, it is pretty abstract and it is very esoteric. It’s taught in computer science programs as part of a “proper education” but the reality is most people won’t need to do this type of analysis in the majority of programming jobs (just as those same people won’t be writing their own data structures from scratch). So why is it such a common coding interview question? No idea, it’s just one of the many terrible ways companies attempt to do interviews these days.
Don’t get me wrong. If the job requires this type work then find qualified candidates by asking these questions. But if you’re conducting interviews for coding e-commerce sites? You’re going to be better off asking more appropriate questions to that vs. trying to trick people. You’re also going to find better candidates because you’re going to (hopefully) ask questions appropriate to the job vs. some Ivory Tower ideal of computer science.
I remember one interview I did for a company in Chicago that is an SAP Hybris consultancy. I was expected to sit and code in real-time with two guys sitting staring at me. What did they want me to code? Code to generate the Fibonacci sequence. This was a company writing Java code for e-commerce sites using Hybris and these guys were asking someone with decades of programming experience to do a college assignment, while staring at me, expecting me to use an IDE I had no experience with. It was ridiculous. This is not how you conduct interviews. Ask me how I would solve a performance problem. Ask me how I would design an object hierarchy for some new feature. Don’t ask me to sit in front of you doing a college assignment.
In my own experience I’ve found it much more useful to ask pretty easy questions with a few harder ones to make sure you’re not bullshitting me. Then I concentrate on character questions to see how you’ll fit in the organization and I find out more about you and how you would solve various types of problems. Interviews are tough for everyone. Don’t make them harder and lose good candidates by doing stupid interviews.