Prepare for a Coding Interview

If you’re applying for a job as a programmer, you should spend some time getting ready for your coding interview. This is a pretty important part of the application process, so it’s worth your while to prepare as much as you can for this interview before you go in. Beyond making a good impression, the most important things you can do to prepare for this interview are building your knowledge base and practicing writing code.

Steps

Building Your Knowledge Base

  1. Ask if you need to use a particular coding language in the interview. Most companies will allow you to conduct your interview in whatever programming language you want. However, some companies will require you to code in a specific language, so make sure you’re fluent in that language before you conduct an interview at that company.[1]
    • For example, Google requires candidates pick either Java, C++, JavaScript, or Python during their programming interviews.
    • If the company doesn’t have any specific language requirements, just choose to conduct the interview in whatever language you’re most familiar with.[2]
  2. Familiarize yourself with your preferred language’s style guide. Having a firm grasp of a particular programming style will make you less likely to have errors in your codes, making you a much stronger interviewee. Pointing out the common pitfalls in your particular language may also make you more impressive during the interview.[3]
    • For example, if your preferred coding language is Python, read through the PEP 8 Style Guide to improve your mastery of the language.
  3. Focus on studying algorithms and data structures the most. These Computer Science fundamentals make up the vast majority of the questions and problems you’ll be presented with during your interview, so spend most of your time studying these. If you took any classes in Computer Science, review your notes and textbooks as well to refresh your memory.[4]
    • For example, you might be given a problem during your interview and be asked to develop an algorithm that solves it. Having a broad familiarity with algorithms will make this type of question less difficult in the moment.
    • There are a wide variety of algorithms, such as sorting algorithms, searching algorithms, and recursive algorithms. Try to be familiar with as many different types as possible.
  4. Research the company to see how your skills align with their interests. Find out what sort of technologies and software frameworks the company utilizes the most and make a note to reference your experience with these frameworks during the interview. Remember, part of your goal is to show that you’d be a good fit for the company you’re interviewing at.[5]
    • If you know who will be conducting your interview, do some research on that person as well. Look them up on LinkedIn and see what their past projects or experiences have been.

Practicing Ahead of Time

  1. Get as much coding experience under your belt as you can. If your interview isn’t in the near future, spend a few months contributing to open source projects. If you don’t have that time, just spend as much time between now and the interview practicing coding.[6]
    • If you can, do this coding practice in an environment where you can get good feedback on your code.
    • The more experience with coding you have, the less you’re likely to struggle with the coding component of your interview.
  2. Practice coding algorithms in a limited amount of time. Even if you have a lot of coding experience, this isn’t the same as writing code under stress. Set a timer for 45 minutes and try to create a working algorithm in that much time.[7]
    • You’ll probably have 30-45 minutes in the actual interview to write your code, so you should try to get used to writing code within this kind of short timeframe.
  3. Be sure to practice discussing system design as well. While the bulk of your interview questions will probably be about algorithms and data structures, you might also get some questions about how to design software or systems for a given product. Be prepared to discuss the different elements of system design, such as load balancers, databases, and user interface.[8]
  4. Have somebody with interview experience do a mock interview with you. There’s no better way to get better at answering interview questions than by practicing as much as possible. If you don’t have someone with interview experience to practice with, have a friend ask you some common interview questions.[9]
    • These can be questions like “What type of algorithm would you use to solve this particular problem?” or something as broad as “What is your biggest weakness?”
    • If you’re stressed out during the mock interview, try practicing as the interviewer instead of the interviewee. This might help you to see the interview process differently and feel less nervous about being interviewed.

Making a Good Impression

  1. Be enthusiastic about the topic and your experience. Allow your positive emotions to shine through when talking about your past projects or your future goals. This kind of enthusiasm tends to inspire similar enthusiasm among interviewers, which makes them more likely to have a positive image of you by the end of the interview.[10]
    • Note that this only applies to genuine enthusiasm. If you try to fake your enthusiasm about the topic, the interviewers may detect this and see you as artificial instead of genuine.
  2. Avoid pretending to know something if you don’t know it. You may feel that you need to look like you know everything about the topic to give a good impression. However, if you pretend to know something that you don’t actually know and you get called out on it, you’ll just come across as mendacious.[11]
  3. Talk about your projects using the correct terminology and jargon. The ability to use technical terms and describe a project in minute detail will help demonstrate your deep understanding of programming. However, be sure that your project descriptions are also understandable for whoever’s interviewing you.[12]
    • For example, if your interviewer doesn’t have a deep understanding of a type of app that you worked on, be sure to explain the specific components of the software so that they understand what you’re talking about.

References