When preparing for a job interview, it’s easy to get too caught up in learning about the particular job requirements (such as programming languages and frameworks). The things that I studied in preparation for an interview, often never even came up. You must be able to think on your feet. This is because any skilled job interviewer will do things to surprise you and catch you off guard. You should still prepare, but it’s important not to lose sight of the big picture. Therefore, I’ve compiled a list of seven points which cover all of the major bases. If you follow these seven points, you will give the other candidates a run for their money.
1 Not Being Properly Prepared
A position at any company will have a unique set of requirements and challenges. Simply having a certification or college degree is not enough to prepare you for most interviews. Even if you have a great deal of previous work experience, you should still prepare for the interview. You might already be fully capable of satisfying the job requirements. However, you should spend time researching the company to understand how your technical skills may actually be a benefit to their business. The organization will already have an idea of why your talents would be a great asset to them. This doesn’t mean that you shouldn’t go the extra mile. You should think outside the box, contemplate what particular problems this company probably deals with and consider how those problems may be solved. If you don’t have experience with some of their job requirements, then you should study up on those things. There are many free tutorials, books and videos for most of the technical skills that companies are looking for. This is not a school exam. You don’t get paid for schoolwork. Doing well on a job interview has a much higher payoff than doing well on an exam. Therefore, you should take it much more seriously. It’s outside of the scope of this article to discuss all of the possible things that you might need to learn. I suggest picking up a copy of the book “Cracking the Coding Interview”, since it has been the most helpful resource to me on the subject.
2 Not Asking Questions
I have interviewed several candidates for different positions in the Information Technology field over the years. It is very surprising how many of them have no questions to ask. I always have at least a couple of questions that I plan to ask before I even get to a job interview. I also come up with a few more questions during the interview. They are based upon the dialogue that we have. Simply saying “I had a few questions to ask, but you already answered them in our discussions” sounds like a weak cop-out, even if it isn’t. Most companies don’t just want somebody with the skills that they need. They would rather have someone who is actually interested in coming to work for their organization. If you didn’t take the time to develop a list of questions, it shows that you lack passion, interest, or curiosity.
In addition to asking questions at the end of the interview (if they don’t ask if you have any questions, it is a bad sign), you should ask questions while completing exercises and solving problems. If you try to solve the problem off the top of your head, you might give the impression that you’re a reckless programmer. It’s much wiser to ask all of the questions that you need, in order to get as much information about the problem as you can. Knowledge is power and is a major factor in being able to shape your destiny. Even if you are unable to solve the problem, asking important questions may impress the interviewer more than a working solution. Nobody has all of the answers. However, if you’re at least asking the right questions, then it shows that you’re on the right track.
3 Not Being Humble
It’s easy to fall into the trap of pretending to be something that you are not. This doesn’t only apply to interviews, but to life in general. If you say that you’re proficient in a certain programming language or understand a particular design pattern that you don’t, then you might walk right into a trap. Even exaggerating your skills is a dishonest thing to do. Most development teams would rather hire a decent programmer who is honest, than an excellent programmer who is dishonest. You certainly don’t want to be too humble. It is very important to express confidence. It is something that almost everyone knows you need for a job interview. This can lead one to act arrogant. If you tell the interviewer that you know something, expect to be asked questions about that particular subject. You’re better off saying “I have some experience with it” and then show that you’ve mastered it, rather than saying you’ve mastered it when you haven’t. A wise interviewer believes half of what he sees and none of what he hears. The quality of your solutions will tell them everything they need to know about whether your skills are proficient enough. Therefore, make sure that the audio matches the visual. I sometimes ask questions to candidates about things that are more advanced than anything that is needed for the job. I just do this to see if they’re willing to admit when they don’t know something. A developer who is willing to bite off more than he can chew, because he doesn’t want to admit his own limitations may end up wasting much of the organization’s budget.
4 Fear, Anxiety, and Panic
Confidence (which shouldn’t be confused with arrogance) is a major factor in nailing any aspect of the job interview process. In my humble experience, I’ve noticed that the major obstacles to confidence in an interview are fear, anxiety, and panic. Fear and anxiety may appear days before the interview even takes place. Not only will an interviewer potentially doubt you if you seem nervous, but these things may also get in the way of your problem solving ability. It’s much easier to solve any sort of problem when your mind is clear. These aspects are crucial not only in the technical aspect of the interview, but also in the entire interview process. Various techniques for dealing with fear often don’t work with the same effectiveness for everyone. However, I find that meditating before an interview helps me. You’ll need to discover what techniques work for you. These important skills will also help you throughout your entire life. The first point of this article (preparation) is a major factor in not feeling anxious. If you know that you have prepared properly, it’s much easier to feel at ease with the situation. If you’re unprepared, then you have a valid reason for worrying about whether you’ll get the job. Fear and anxiety often begin before the job interview, but panic usually doesn’t occur until the job interview itself. Fear is the essence of both anxiety and panic. Anxiety tends to be more of a steady thing, while panic tends to be more immediate. Panic may be due to various reasons during an interview, although the most common cause is being asked a question that you don’t know the answer to. It’s important to understand that few candidates know the answers to every single question an interviewer asks. Therefore, panic won’t help you succeed. Not knowing the answer to certain questions may blow the interview, but if you panic you greatly increase your chances of failure. It’s important to stay cool, calm and collected – although this is definitely easier said than done. There are other ways panic may manifest itself that aren’t immediately obvious. For example, I was in a rush to get ready for in interview that I had several years ago, and I forgot to put on my belt. I was wearing a nice suit. However, once I got to the interview, I was hit with a wave of panic because I didn’t have my belt on. I was hired for the position and all of that panic was totally unnecessary. This doesn’t mean that you shouldn’t pay attention to the way that you’re dressed, but it does mean that you shouldn’t be in a rush. Even if you don’t forget anything, being in a rush will easily make you feel more nervous. If you end up being late to the interview, then you’ll have a reason to be nervous. In that case, you’ll most likely panic before you even get to the interview, because you realize that you won’t be punctual. Even if you’re late, freaking out about it won’t increase your chances. However, you should do everything that you can to prevent putting yourself into situations that will make you feel uncomfortable. This is important not only for job interviews, but also for many other things in life. Use your imagination.
I’ve also found great inspiration from a particular Zen story regarding this issue:
During the civil wars in feudal Japan, an invading army would quickly sweep into a town and take control. In one particular village, everyone fled just before the army arrived – everyone except the Zen master. Curious about this old fellow, the general went to the temple to see for himself what kind of man this master was. When he wasn’t treated with the deference and submissiveness to which he was accustomed, the general burst into anger.
“You fool,” he shouted as he reached for his sword, “don’t you realize you are standing before a man who could run you through without blinking an eye!”
But despite the threat, the master seemed unmoved. “And do you realize,” the master replied calmly, “that you are standing before a man who can be run through without blinking an eye?”
Walking into an interview with this type of attitude, will give you a huge leg up on the other candidates for the job. If you also apply this teaching to your life as a whole, you may conquer anything that can be conquered.
5 Thinking Inside a Box
Thinking inside a box is closely related to my second point (not asking questions). It is difficult to understand all of the intricacies of a problem, without asking additional questions about it. The interviewer may explain the problem in complete detail, but they often leave a few things out to see what kinds of questions you’ll ask (if any). If you don’t think about what other things should be taken into consideration when solving a particular problem (besides what the interviewer mentioned), then you may lead yourself into a trap.
It’s also wise to avoid using cookie-cutter solutions for everything. If it’s a simple problem with a simple solution, then there is no need to complicate things. For more intricate problems, it doesn’t hurt to get creative. Even if your solution isn’t the most efficient way of solving the problem, that’s not necessarily the end of the world. Most technical interviewers are primarily focusing on your overall thought process and approach. If you are very robotic and seem like you can only solve problems that you have memorized the solution to, then you won’t be able to adapt to the changing situations of real world problems. This sort of skill can’t be obtained overnight. Therefore, it’s important to think outside the box with any problem that you have in life (not just coding) on a daily basis. Most organizations don’t always use the best approach to begin with. They will notice if you figure out a much better way of solving the problem than what they had in mind. This is not only true during the interview. It will help you throughout your entire career.
6 Assuming That You Must Actually Solve the Problem
This point is actually one of the main reasons why people panic and it overlaps the previous point. Many interviewers take the approach of starting with easy questions/problems, then turn up the volume. As the interview proceeds, they may keep increasing the difficulty to get a strong sense of your actual skill level. Some interviewers won’t even stop giving you problems to solve, until they find one that you can’t. This is a wise tactic to employ as an interviewer, because you really can’t evaluate an individual’s potential without doing so. Real world business needs often require much more time and energy than what you can offer during an interview. You might not be able to solve the problem in an hour (or even a week). However, if you impresses the interviewer with your perspective, then you may emerge victorious.
7 Poor Communication Skills
This is fairly obvious, since a job interview constantly involves communication. However, software developers have a tendency of ignoring the importance of communication skills. Even though a job in the programming world is generally based upon writing code, communication is unavoidable. You will need communication skills for meetings, paired programming, dealing with the QA team, interactions with your manager and much more. Since many programmers don’t possess great communication skills, you might still nail the interview without them. However, you’re much more likely to find yourself in positions of leadership, if you master the art of social interaction.
One last thing – if someone says “Good luck on your interview!” then don’t get too comfortable. Mastering the art of interviewing (for both the interviewer and the job candidate) doesn’t require luck, it requires skill.