In my quest to find a new job, I've had a lot of interviews. I'm talking
$interview = range(30,40);
In person, over the phone, quizzes, tests, projects - you name it.
So I figured I would share some wisdom to anyone whom may now, or eventually be in the same boat. Through this sometimes hellacious process I've learned a few things.
The best interviews that test my true abilities are project based ones.
I know it sucks, and you have to work for free, but doing an ACTUAL project is the best reflection of the real-world application of your role. I don't know about you, but when I'm on the spot during an interview, and someone pulls the pop-quiz out of their pocket, I freak. They may ask something like, "What's the difference between an abstract class and a interface?" Something I know well and good, but at the time I can't even seem to remember what a computer is, let alone what my own name is. My brain literally does an exit(); and I have to recompile it again.
While I'm on that topic, I think the pop-quiz format is the worst way to interview a candidate. (I'm talking to you employers!) In my humble experience you don't want to work for someone that enjoys seeing you squirm like that anyway. You want to work somewhere that cultivates growth and where you can thrive as a Developer.
Go back to the basics.
A lot of the positions I have applied for are all across the board. I'm a PHP Developer, so I've been applying for Full-stack, PHP Software Developer, Web Developer, Drupal Developer, Laravel Developer. They all have very different names but are all under the umbrella. PHP/DB integration, some JS frameworks, CSS3 and maybe some DevOps as a secondary function. Sometimes I really did feel like a ping-pong ball each time I had an interview studying between those things. I found though, what helped me most was going back vanilla concepts without the help of a framework and re-learning the fundamentals. If you have those down, sticking a framework on top of that will seem less like magic and you will truly understand what is going on in the background.
I read somewhere that Ryan Dahl the creator of NodeJS said something like, It's impossible to know everything, but you can push yourself to learn the system. (I can't find the damn quote anywhere, but even if he didn't say that, it's true.)
Alright, I'm talking to you again employers! With new frameworks, new hosting services, new workflow processes coming out every day, please for the love of god stop trying to find Developers that only have experience with your specific stack. If a Developer is good with another framework or CMS that's structurally the same as the one you need to do the job, they can learn it quickly. Technology is always evolving, and again in my humble experience you want someone that can adapt to new things quickly, just as much as you want someone to have experience working with your specific technologies.
The worst thing you can do is be nervous.
I know, that may be easier said than done, but when I look back on this whole calamity the first couple of interviews I had after I lost my job were TERRIBLE. My voice was shaking, I couldn't quite articulate things the way I wanted, and I was incredibly insecure about the things I didn't know. Fast forward a couple months, and each interview is like riding a bike and you get a little better. You have your script, but you also feel comfortable going off script a bit too. You have to look at from the employers' perspective. In their mind they're thinking, I have to sit with this freaking person for a long time and 8-9 hours a day. The last thing they want to do is sit next to some sweaty, shaking robot who sounds like they just digested PHP.net. As much as it's hard, just relax and be yourself. Strangely every time I feel like I'm not too interested in a position, those are the people that are scrambling to get me on board. Which brings me to my last point.
Never stop interviewing.
I loved the previous team I worked with, they were like family. I thought I would work there forever. I got comfortable after 6 years. Then BAM just like that, corporate restructuring had me out on my butt as fast as I could blink. I really feel like if I had continued with the interview process, I could have had a better leg up on some of the earlier positions I applied for. Who knows, maybe I would have found something better suited for me than before. The world is your oyster as they say. When you see something come across your plate that looks great, you gotta jump on those opportunities, or someone else will!
Good luck coders, it can sometimes be a jungle out there and you're not alone. I wish you all the success in your future, and may the force be with you.
Top comments (32)
I absolutely agree about frameworks and a programmer's ability to learn new things. Right on!
Now, a few concerns from someone who has interviewed programmers for years...
First off, showing some nerves is good. They're one of the ways we know you don't think you're the Second Coming. Any interviewer with any experience at all knows that you're nervous because of the interview. We're used to a bit of sweating, shaking, and stuttering. We expect that you won't be as quick on the draw as usual. You can rest assured that we're not going to turn you down just because you're nervous...
In fact, it's quite the opposite! The worst thing you can do is act like you're not nervous at all. It just tells us you're either an egotist or a cyberman, and we're not looking to hire either.
Now, I will say, you should definitely be yourself, as you suggested. We can usually tell when you're delivering a script. We want to know you, especially since it's you we'll be working with. (And, again, we know your nerves are part of the interview, not a personality flaw.)
Lastly, hate to break it to you, but the pop-quiz isn't going anywhere, nor should it. We have to know that you're not just blowing smoke, and that you have a rational grasp of fundamental programming concepts. You'd be amazed how many people apply for jobs and don't know the basics. We do take your nerves into account, and we are not strangers to seeing people lock up. It's not sadism, it's just a necessary part of ensuring you know what you say you know. Learn to live with it.
I appreciate your response from this perspective, but I disagree with a lot of things. Lol!
The pop-quiz style interview is a similar phenomenon as a trick I use to cure hiccups. If someone is hiccuping, you ask them very directly and seriously, "When is the last time you saw a rabbit?" Nine times out of ten the person will freeze and say, "Uhhhh... [pause]"
Just the very notion of putting them on the spot and giving them pressure to respond immediately makes their hiccups cured.
If I were in the situation as an interviewer doing that to someone, I would personally feel quite sadistic, and it really doesn't apply to the real world.
Some of the most successful interviews I've had are very conversational style. You open a dialogue about an issue that you solved, and go into detail about your solutions. You should get a pretty good understanding of their capabilities, by A the terminology they used, B what steps they went through to come up with a solution.
I've also had a couple interviews that gave me tests using tools like brainbench.com.
I'll put it to you this way, when I got the pop-quiz I completely bombed it, verses when I took the test on brainbench.com with similar concepts days later, and scored 65% higher than other applicants. I actually got a response back from the one I bombed, but I didn't like the vibe from the interviewer and didn't pursue it further.
As far as the nervous thing goes, I could see that. For me personally though, when I get super nervous I lose control of my face muscles and start twitching. Then I'm primarily thinking about if they are noticing I'm twitching, and completely lose track of what we were talking about. Like anything though practice makes perfect, and now I feel a lot more comfortable meeting face to face. In my experience the more real you are, the better people respond. They want to know who they are going to form a working relationship with, and that's hard to see with a big bag of nerves.
A very insightful piece. I have had similar ride myself. I like the idea of project based interview. As an interviewer, I like to use problem solving/coding as a tool to evaluate. I sometimes even overlook lack of experience in the same language. Frameworks come and go, so no point in stressing too much. But (and it's a huge but), if I am back filling for a critical project, I have to stress on these a lot more, for obvious reasons. I use pop quiz for folks with very limited experience. If I can get a better tool I would use that.
You sound exactly like someone I would want to work for. Let someone's experience speak for itself, and if you're unsure that they can do it, give them a micro project.
There's been a lot of times in my career where I was placed in a situation where I had no idea what I was working with at all. I had to come up with a solution that to my knowledge didn't exist yet. Something like hooking up 3rd party APIs to a very custom CMS.
I have been thrown into the sharks, and I always figured it out in an acceptable amount of time. My boss came to realize he could always count on me to do that over 6 years. I think as an interviewer that should be your primary concern, can they learn x quickly? It's expensive to hire a Developer and I realize that's pretty scary if you own your own company. BUT if you hire someone that's quick to learn new things, you don't lock your business into very specific technologies that go away with the dinosaur, and you can branch out into other services.
Exactly, this is same response i wanted to give to this post , thanks
I agree that it isn't (or shouldn't be) a deal killer if you mess up on some of the questions in a quiz. However, These kinds of questions kept us from pursuing individuals that looked good 'on paper' but didn't have any real skills in the environment we were in.
We had one person who had an impressive resume but, when asked basic questions about C/C++, couldn't explain even the simplest things. Needless to say we didn't take it any further with him.
Others, who at least demonstrated a moderate amount of basic understanding, we went on to ask more pointed questions in an attempt to see if they were a good fit for our specific environment.
Unfortunately a lot of people do fluff up their resumes for sure. What would be some of the pitfalls in your position as an interviewer to give someone a small project? Do you feel like the pop-quiz is more time efficient?
There are two primary issues I see with giving someone a project. The first is related to IP. Most of the stuff we develop is considered "company-secret" and not to be disclosed to non-employees. So, handing company code to an "outsider" is not allowed.
The second issue is one of time. First is the time needed to explain the development environment. Then there is the time needed to explain the product - and the piece the interviewee is to work on. Finally, there is the time required to review the code produced by someone not really familiar with what we are doing or how it fits into the overall system.
If we don't give a small 'project' related to our overall business, then how is it really different from a quiz of some kind? It amounts to handing some toy problem to a developer and seeing what kind of code s/he produces. And we still have to deal with the time element for the review of the code.
I have got an interview at AWS in a week. And although it was me who had applied, and as I read my own CV over and over again I see it’s all true, I can’t help feeling like a total imposter. It feels like the force have left me and I’m freaking out. Learn everything anew? But where’s the bulk of knowledge I had accumulated and where’s my confidence?
I have been there! Most people that really know their stuff feel this way, trust me. There's really no other career that completely 100% relies on your cognitive abilities, and being confronted with the failure of those on a daily basis as much as being a Programmer. It's a tough job and you have to be smart to do it! If you made it this far you can do it! Now you just have to convince them of what's on paper.
Thank you for the encouraging words. It was important for me to express my fears I guess, so that I could start working my way back to confident from there. Found this article useful too: medium.com/@coreyhowell/impostor-s...
What I did was always schedule an interview for the afternoon, get up early and re-read the job description and then study all the concepts that are listed. That way everything is fresh in your mind. If you bomb a few, just keep going. Each one is a learning experience that will make the next easier.
I hated quizes when I was in applicants’ chair and I loved them when I was in interviewers’ chair.
Our industry is chaotic and emerging, there is no standartization at all. For other industries your degree matters way much more and there is no need to do such a check. When this will be true for IT, that would mean the boring times have come )
Ha, good point. I definitely learn something new every day. I do wish that problem solving skills were more accounted for in the interview process, so you don't get pegged to a specific stack when seeking a job.
I'm dying over this! I remember my first technical interview. I choked so hard they hung up on me! I sat down at the kitchen table after this and solved all the questions in less than 15 minutes. It was painful at the moment, but now it's a great story to tell when commiserating over the garbage fire that is the technical interview.
Haha! I completely understand.
For this specific one I mentioned, it went from about an hour of seeing if culturally it was a good fit. All good! Then completely out of left field I was prompted to go into the technical interview pop-quiz, which I was totally unprepared for. There were so many, "UHHHHHs" I lost count!
The silver lining though is all of the questions that were asked, have been tattooed into my brain. I actually did a lot better than I thought when I went back thought about my answers, but it was still a total embarrassment. I will say this though, if ever asked on the spot any of those questions again, I will have them down! :P
"Never stop interviewing." I have told people this for years. As soon as you have a role start looking for the next one. In two to three years you'll have the experience AND the connections to step effortlessly into your next role.
All the other points you make are equally as valid. Keep up the good writing!
Great stuff! I really wish there was a more uniform system in place. I've had a couple white board interviews as well, and wasn't too fond of it. I even had one that did a combo of all three. Whiteboard, 3rd party test, and written test in person. Although that was overkill, I would trade all the of those in place of a pop-quiz.
Now, for the record, I don't really grill candidates in a quiz-like fashion, but I will ask them to describe object oriented programming and a couple of other things; simply because, their philosophy behind it is more important and insightful than the technical definition. (One terrible applicant laughed, shrugged it off, and said "eh, it's just a metaphor, really." Full answer. Dead serious.)
Instead, I give applicants a week before the interview to do a legitimately interesting (and original) coding challenge in any language they like. They turn it in 24 hours before the interview, and we review it. Then, during final interview, we have them describe their design, and then fix a bug or make an alteration right there.
Perfect! I like it, and LOL at that answer. During a pop-quiz someone asked me what are the negatives of dependency injection patterns, and since I had just gotten done implementing DI in another test project and explaining its positives, that really sent me through a loop! Funny because I could have answered with my thought process alone: "It adds complexity".
Well, to play "devil's advocate" again, look at it from their perspectives. A lot of questions you/we would judge as a "pop quiz" question is actually the best, or only, way to probe knowledge of the more theoretical aspects of programming...especially those important to the job!
I was once asked to describe virtual classes, and why you'd use them over normal classes, in C++. That's theory, it can't be "whiteboarded", but I understand why he asked.
So, if those sorts of questions cause you to freeze up, it goes right back to your main point: practice. There's no other solution.
And that's what my original statement about "pop quiz" questions referred to; all the things that cannot be adequately measured by any other method in an interview. We have to ask, simply because there are a LOT of applicants who flat out don't know, and they'd be a liability in that particular position.
See what I mean now?
I would agree with that, but when it's a little more open ended it gives your brain a second to process the information and retrieve it from memory.
The interviewer is at a way bigger advantage to make a judgement call on this, because well, they know what the questions ARE.
So if someone asked me to draw and explain polymorphism for example, I could take some time to think about my answer while drawing it out. Unlike the 5 seconds you have to dig it out memory and describe it. All the while worrying about every second that goes by so you just start flapping your mouth with the first thing that comes to mind. LOL!
Sometimes just having an interviewer say "take your time" makes all the difference in the world.
Yes, but then all eyes on you! Haha it's just super stressful either way, definitely doesn't work the best for me. I do like the fact that it's quick though, so if you do well, you might be saving yourself a 6 hour project that you have to build out for free.