Founder and Engineer
Over a year ago I wrote about why the coding interview was lazy and obsolete:
Personally, I used to be all for these algorithms, probably because I managed to get a high distinction in Data Structures & Algorithms in college.
I prided myself on trying to implement them whenever I could, for at least the 1st year I started working full time. I had an opinion that the PHP code I was refactoring was lazy, and I didn’t want to get lazy and lose touch with algorithms. Because you know, I was good at them!
Until the head developer questioned why I bothered when I’m basically rewriting API’s that already exist. Sorry Josh, I was wrong.
That’s when it clicked — these algorithms (and interviews) are from a time before all of these API’s and frameworks were available. They had to invent the wheel, they had no choice.
Now it’s just a waste of time. Now it’s just an ego check for people who like to feel smart and appear smart without doing any real work of value.
The motivation for it was a meshing of my personal experience and a recent TechCrunch article at the time. I had my assumptions the interview gatekeepers had gotten their advice from an article like this.
That post was made way back in 2007 now, by Jeff Atwood, the co-founder of StackOverflow. But I only discovered recently that there was a follow up post 3 years later, and the surprising thing is that he didn’t address the context of low level algorithm questions at all, despite it coming up in the comments. An analogy was made with a truck driver using a gas pedal:
This is extremely simple stuff we’re asking candidates to do. And they can’t. It’s the equivalent of attempting to hire a truck driver and finding out that 90 percent of the job applicants can’t find the gas pedal or the gear shift.
Umm. The thing is, a gas pedal is actually used by a truck driver….every single day. 99% of coding problems in interview tests, aren’t used. That’s the truth, and it’s unpopular to admit, because the old guard of programmers are guilting everyone into thinking that things are different from reality.
This is more like a truck driver getting taught at truck driving school on how to change a rare part of an engine that’s been out of commission for 20 years, and never needing to touch that engine again. Perhaps there might be a chance that truck driver Tom may need to dig up that information after 10 years — in which case they google it. End of problem. That is the real whiteboard answer.
I realize that my blog post from last year, and this follow-up, relates to a 2016 perspective. To re-iterate a point made last year, in 2007 I was in my first year of post-grad for computer science, and I started working full time as a developer in late 2008.
I may have been lucky enough to score a high distinction in my Data Structures & Algorithms course, so I guess I was good at it. But I also really really loved it too! That helped.
However, I have a hard time in loving something if I consider it irrelevant, and that would end up being the fate of this knowledge.
As recapped above, when I was hired as a web developer in 2008 I loved this knowledge so much, that I’d painstakingly “improve” the code with a bunch of linked lists and recursive algorithms in PHP. After getting to know PHP and the tech lead more, a slow realization started to dawn on me that having a framework or library such as PHP, voided the need to essentially re-invent the wheel on a daily basis.
Makes sense. So I adapted. Other developers have also adapted — this thread from 2 years ago has a lot more contrasting opinions than Jeff’s blog post in 2007. One comment from AndreyErmakov, particularly shares my experience with places that I’ve worked for where coding tests were and weren’t done:
All good jobs that I had were offered without technical tests and they came with nice and smart people. Every time there was some technical grilling involved, the people were arrogant and condescending, and I wouldn’t have wanted to work with them anyway.
For some reason it’s taking interviewers, more than 10 years to catch on. I suspect it’s because these are mostly old-boy coders, who don’t actually code anymore, and therefore don’t really know what is involved in writing actual apps in 2016(?). This could be because they’ve put a ton of time into gaining this knowledge, and don’t want to accept that it’s now just a waste of time.
In 2008, I definitely felt this way too! But I had to let it go in order to advance. Let it go.
It’s the same in the music industry, where I used to be involved in a previous life. Purists get cagey at musicians who don’t come up through the ranks and play the pub circuit for a few years. The cry is “many musicians can’t actually play live”. Is this a little sad? Yeah, kind of. But it probably says more about consumers than the players in the game — musicians simply don’t need to play live to be musicians.
The knowledge of software patterns, and how to write a program in MVC, may feel like buzz trends. But the reality is that this is the bulk of the problems that developers solve today, and the ones that are really really good at this, are the really really good developers.
Putting the courtesy discussion aside, on whether it’s respectful or not to ask an established engineer to demonstrate their coding ability, ask them something about what they use every freaking day. Because a truck driver, as we’ve established, would get asked about how they use the gas pedal…something they use every freaking day. Why is this so complicated to understand?
Google have been around for almost 20 years. But the problems that they were solving, aren’t the problems that we need to solve today (unless you’re inventing an OS from the ground up, or are working in embedded systems. Rare). We still ask these questions at interviews because it’s “the Google way”. But why are we still testing for developers we wanted to hire 20 years ago, and not for developers we want to hire in a 2016 world?
Hacker Noon is how hackers start their afternoons. We’re a part of the @AMIfamily. We are now accepting submissions and happy to discuss advertising &sponsorship opportunities.
To learn more, read our about page, like/message us on Facebook, or simply, tweet/DM @HackerNoon.
If you enjoyed this story, we recommend reading our latest tech stories and trending tech stories. Until next time, don’t take the realities of the world for granted!
Create your free account to unlock your custom reading experience.