Part 8 - How to prepare for a web developer interview?Written by Eric Muss-Barnes, 11 December 2018
Based upon the title of this essay, I get the feeling it's going to get a lot of attention. Chances are, many people are going to jump right into this article, without reading the previous 7 essays in the series. So, let me start by saying, "Welcome! This is a website dedicated to teaching people how to become developers. You don't know that, because this is the first article you're reading, so please go read the previous articles in proper order."
Okay, now for the rest of you who have been following along...
This topic might seem like jumping the gun a bit, but bear with me. I know what you're thinking. Giving you advice on how to handle a job interview, before I've even taught you any programming skills, is a little premature.
But, I want to go over this first, because I want you to understand what you are up against, before you even get started.
Makes a lot more sense now, doesn't it?
So, here is what you can expect...
Over the years, interviewing for Internet jobs has changed quite dramatically. I did my first developer interview in 1998 and I did my most recent one a few weeks ago. I've never worked at one web development position longer than 7 years, so I've seen a lot of silly interview trends and fads come and go.
When you were going on an interview in the 1990's and early 2000's, it was like any traditional job. The human resources department of a company would post a job opening, you would send your resume, they would call you to schedule an interview, you would go into their office and talk to your potential boss, and you would get a call back with a job offer, or a polite email declining to hire you.
Seven years later, around 2005 or so, that began to change.
Instead of using their internal HR department to hire people, companies began to pay third-party agencies to screen candidates.
Often, you would be asked to come into the agency office and take some kind of technical skills test, so they could rate your abilities.
Then, you would frequently have to take another skills test when you went on the interview with the company that would hire you.
That was my experience at Disney....
On my first Disney interview, I was given an online skills test. Now, no one said whether I was or was not allowed to use the Internet. And I was not about to ask. So, I used the Internet to look up all the answers.
After I was hired, the senior developers at Disney confessed, that was exactly what they wanted me to do. They made up questions that were deliberately difficult, but easy to research. Because Disney wanted to hire developers who took the initiative to find the knowledge and look up the solutions online. Real developers are not expected to have everything memorized, but should be smart enough to investigate an answer.
These days, things have changed yet again. Today, there are a ton of different ways companies will hire you. Some companies still hire directly through their HR department. Most companies are still outsourcing their hiring to agencies. Most agencies don't give technical skills tests anymore, but some still do. Often, most agencies will simply send your resume to a potential employer. If that potential employer likes your skills, they will do a telephone interview and ask you a bunch of technical questions. If they like you based upon that, they will have you come into the office for an in-person interview. Sometimes, they will ask you to take an online skills test, before they have you come into the office. Sometimes they will request you actually build a webpage for them, based upon certain parameters, and if they like your work, they will invite you into the office.
I have been in the position to hire new employees multiple times in my career. There are three common practices many hiring mangers do these days that I will never do, and have never done.
1.) Whiteboard Tests
2.) Paper Questionnaires
3.) Verbal Quizzes (via telephone or face-to-face)
In a whiteboard test, you are asked to write code on a whiteboard.
Personally, I have never tested anyone that way, because I never expect any developer to memorize code. Look at it this way - You might memorize a favorite passage from a novel or a poem, because the value in those words is the idea, the emotion, the inspiration of that text. Computer code has no value whatsoever outside of a computer system. Computer languages don't have any function, they don't perform any tasks, unless they are written in the computer itself. So, as long as computers exist, we will always be able to look up the code on the computer. There is never a valid reason for you to waste your time memorizing code. The computer has a memory, so we don't need to waste space in ours. It's like the line Sean Connery has in Indiana Jones & The Last Crusade - "I wrote them down in my diary so that I wouldn't have to remember!" Well, you write code in the computer, so you don't have to remember.
Asking people to write code from memory on a whiteboard is senseless.
If you want to hire a musician, you listen to their music, you don't ask them to write down a song.
If you want to hire a photographer, you look at their photos, you don't ask them to draw a picture.
If you want to hire a chef, you eat their food, you don't ask them to publish their recipes.
If you want to hire a racecar driver, you watch them drive, you don't ask them to sketch a map of a racetrack.
If you want to experience your favorite novel, do you pull out a notebook and start writing it down from memory? No! You go to the bookshelf and read it! It's all written down for you already. Writing website code on a white board is just as pointless as rewriting a novel from memory. Just go look up the code in the computer! Memorizing code is useless. Fill your memory with useful things. Like your girlfriends phone number. Your mothers birthday. The tender feel of horses muzzle in your hand. And speaking of muzzles, memorize the smell of gunpowder on a cool morning breeze.
Paper questionnaires are exactly the same.
I will never hand a candidate a test with coding problems on paper. Why? Because that is just a smaller version of a whiteboard. Doesn't tell me anything about their competence as a developer. I graduated gradeschool a long time ago. I don't expect anyone to "test" me and I won't insult others by treating people that way.
Finally, verbal quizzes over the phone is another common practice I will never do. I have never give a verbal quiz to anyone and I do not test potential candidates on their coding abilities. That is rude and insulting. If your portfolio contains samples of your code, and I have read about your skills in your resume, I know you are qualified for the job. Why quiz a person with technical questions? The only motive to ask technical questions would be if I suspected a person was lying about their abilities. I don't do that. I don't assume people are liars. I have faith in people. I assume their resume is honest and they are telling the truth. Plain and simple.
You know what else I have always done? Anytime I have been in charge of hiring someone, I personally call every single candidate who came in for an interview and I have the courtesy and respect to tell them the position had been filled. I never leave anyone hanging.
But that's just the way I like to treat people. Not everyone shares my philosophy.
Personally, with the exception of Disney, I have gotten all of my jobs the old-fashioned way. No outside agencies. No tests. No quizzes. I send my resume to a company. The HR department calls me to schedule an interview. I go to the office. I meet with my potential boss. We have a conversation for 30 minutes to an hour, and I get offered a job on the spot, or through a phonecall in a few days. And if I'm not offered a job on the spot, I immediately send them a thank you note when I get home, letting them know I appreciated the opportunity to meet with them. That is the way it should be done. That's honorable. That's respectful. That's been the American way for generations and I don't see any reason to change it. Trust people to be honest. Treat them with respect. Let them know you value their time.
And in keeping with that sentiment, I value your time for reading this article.
Thanks for indulging me.
And remember, kids, the world owes you nothing... until you create things of value.
verbal quizzesA method of testing the knowledge of potential programmer candidates, when you assume they are liars, and you suspect the code they have provided to you is not something they have written themselves.
paper questionnairesSee the definition of "whiteboard test".
whiteboard testTest used by computer nerds (who waste their time memorizing code, instead of going out and living life), to judge the "knowledge" of other developers.