A History of Coding Interviews

Lots of people talk about the “how” and “why” of coding interviews, so how about “when”?

Curt Corginia
Better Programming

--

I could not find a suitable picture, so I was forced to rely on my own nonexistent photography ability.

If you are applying for jobs as a software developer or software engineer, you may be surprised at how standardized the process is. Yes, there is still a small sliver of companies that do not employ coding/whiteboard interviews; yes, a few places do still seem to like brain teasers.

For the most part, you will probably find that every company is more or less asking you the same things. You get a CoderPad link, or some blank whiteboard simulator, or (my personal least favorite) some automated test without another human present, and you have maybe 45 minutes to write self-contained code that does something.

Maybe you get lucky, and the interviewer asks you the anagrams question. Maybe you get unlucky, and the interviewer asks you the maximum bipartite matching question. By the end of the session, you will typically only pass to the next round if your code works and/or the interviewer is happy.

Kevin Naughton claims that Cracking the Coding Interview popularized these kinds of questions and reshaped the entire industry, but I cannot find any major publications that corroborate this. According to him, major tech companies used to ask questions like why manhole covers are round, or how to fill a 5-galloon jug with only a 4 and 6-galloon one. Over time, coding interviews started to dominate the industry.

They made an entire Wikipedia Page about it.

Back in the 90s

Back in the 90s I was in a very famous TV show…

According to an article by Forbes (though, admittedly, this sentence is probably not controversial enough to require a citation), it used to be very expensive to test code, so programmers used pen and paper. In the 1990s, whiteboards became more popular than chalkboards for programming and the whiteboard coding interview naturally took hold.

An article by CoderPad (hey! You guys were in the introduction) corroborates this, stating that in the 1990s whiteboards were all the rage and that this enthusiasm carried into interviews.

Today, this practice has simply continued. Some companies use a program without text highlighting to simulate the whiteboarding process, but they still need some way to assess a baseline level of “coding competence.”

Brain Teasers Disappearing

The Wikipedia article “Coding Interview” claims that Microsoft was a pioneer, mainly because of Bill Gates’ fascination with puzzles. As late as 2003, candidates were still being asked questions like this:

Suppose you have eight billiard balls. One of them is defective — it weighs more than the others. How do you tell, using a balance, which ball is defective in two weighings?

A solution is a divide-and-conquer approach, and I can personally confirm that Microsoft still asks this (though I will protect my source), but how these questions became less popular in favor of coding tests is less clear to me. The Wikipedia article says that:

The Microsoft Interview was a pioneer in that it was about technical knowledge, problem solving and creativity as opposed to the goal and weaknesses interviews most companies used at the time. Initially based on Bill Gates’ obsession with puzzles, many of the puzzles presented during interviews started off being Fermi problems, or sometimes logic problems, and have eventually transitioned over the years into questions relevant to programming

…but Wikipedia, any English/writing teacher will tell you, is a terribly unreliable source in spite of the fact that it is more carefully reviewed than most Medium articles. In the name of accuracy and truth, here is a Reddit comment by a user:

Source: https://www.reddit.com/r/cscareerquestions/comments/4wyzwa/has_the_existence_of_books_like_cracking_the/

The tl;dr, according to this experienced developer with 40,000 karma, is that brain teasers were dominant until Google changed the game. First came the “brain teaser era,” pioneered by Microsoft, until books like How Would You Move Mount Fuji gave candidates a competitive advantage. Next came the coding interviews we know and love (or hate) today, pioneered by Google, until books like Cracking the Coding Interview gave candidates a competitive advantage.

The post above almost seems to imply that the coding/Google-style interview will inevitably be supplanted by something else, as does the aforementioned Forbes article, but I cannot imagine what.

Will everyone start collecting Google certificates instead?

I am linking this critical video; between this and my other blog posts complaining about the YouTube dislike counter and reCAPTCHA 3, I have not been painting a very positive picture of Google. I would like to remind the world that I use a Pixel, like Gmail, and do not use Bing.

One interview I had given gave me a simulated, large codebase, then gave me about a half-hour to compose a fictitious email after being allowed to search the Internet for an error fix. Nothing has ever been quite like that experience.

I do not have a crystal ball, but it would not be crazy to me if some major company invented an integrated platform so that they could simultaneously assess your ability to use the command line, run a container, or debug existing code. The way they do interviews now seems to limit me.

Closing Thoughts

I received a comment from someone about how Cracking the Coding Interview was not the first book of its kind. I wrote the rest of this before reading his comment, but it illustrates a decent point: Not every company followed an exact trend. It is not like every company emulated Microsoft and used brain teasers, then every company promptly changed course and adopted coding interviews.

The following blog post was written in the year 2000 by Joel Spolsky, the creator of Trello and a tech blogger who remains very active to this day. From the article:

For programming questions, I ask candidates to write a small function in C. Here are some typical problems I would ask:

Reverse a string in place

Reverse a linked list

Count all the bits that are on in a byte

Binary search

Find the longest run in a string

atoi

itoa (great, because they have to use a stack or strrev)

— Thanks for this, Greg

Predicting where coding interviews are headed would require one to also predict where coding is going. This is an interesting topic, but not something to cover here.

Below, Aaron Jack paints a surprisingly optimistic picture of the future. Instead of worrying about coders going obsolete, he believes the market will explode — similar to how technologies like Python, and then web frameworks lowered the barrier to entry and allowed more technology companies to exist, who then needed more developers to run them.

--

--

Founder, CEO, CTO, COO, and janitor at a company I made up called CORGICorporation