Prepare for a Technical Interview

If you’re applying for a job in the field of computer science, technology, or engineering, chances are you’ll have to go through a technical interview. It’s an opportunity for the employer to assess your problem-solving and technical skills by asking you to work through difficult problems on the spot. It sounds intimidating, but if you put in the practice and studying time, you can wow the recruiters and snag the job.

Steps

Doing Your Research

  1. Analyze the job description to know exactly what the employer wants. A good job description will lay out everything that’s needed for the position, from soft skills to coding experience. For each requirement, come up with some examples of how you embody that trait or have used that skill. These will be your talking points for the interview.
    • For example, if one of the bullet points is “strong leader,” jot down that time that you spearheaded the committee that implemented a new cybersecurity system.
    • The list that you brainstorm is for your eyes only. You won’t bring it to the interview or memorize it, but it’s a good refresher to glance over right before you walk in.
    • If there's a skill on the list that you don't possess, make a note of how you can improve that skill in case the interviewer asks you about it. For example, if you aren't great at Javascript but you're good at Ruby, explain how your knowledge in Ruby will help you learn Javascript quickly on the job.
  2. Learn as much as you can about the company by reading their website.[1] Getting as much information as possible about the company before the interview helps give you a big picture of what they do and the types of people who work for them.[2] Browsing recent news about them or scrolling through the company blog might also spark some ideas for what problems they’re facing so you can brainstorm some solutions to bring up in the interview.
    • The company’s Facebook page and Twitter account can provide good insight into their culture and latest happenings.
  3. Read technical interview experiences from people who have been hired. There are plenty of articles and blog posts online about surviving the technical interview, written by current software developers and engineers in big-name companies like Google and Facebook. Skim these pieces for helpful advice and potential interview questions.
    • Even if you aren’t applying for the same company that the author works for, there is a lot of crossover between companies as long as they're in the same industry or field.
    • If you have friends or contacts who have been through the interviewing process, reach out to them and ask about their experience. Do they have any tips or helpful hacks for acing the interview?

Studying the Content

  1. Plan to study 2 to 3 hours a day for 4 to 6 weeks before the interview. You’ll need ample time to prepare properly. Come up with a master schedule for your studying, setting aside chunks each day.
    • Try a technique known as “spaced repetition.”[3] Essentially, you study small bits of information each day, then review them the next day before moving on to the next topic. Spend about 30 minutes on your review of the previous day's material.
    • Take one day off per week to give your brain a break.
  2. Review key fundamentals like data structures and algorithms. Interviewers may ask you questions directly about your technical knowledge (like “What is ETL and when should it be used?”) or they’ll ask a question about how you use that knowledge (like “How do you use CSS to design a website landing page?"). Either way, a solid foundation of computer science basics is necessary, so spend the most study time on these topics with textbooks or online courses.
    • Big-O notation is another important concept you’ll want to master. It’s a way of describing how long it takes an algorithm to run, and it’s something every developer, programmer, and engineer should be familiar with. There are plenty of articles and books that will help you teach yourself Big-O.[4]
    • Reread notes from any college courses you took on computer science or engineering. These are a good starting point for your study material.
    • Buy an interview prep book that’s appropriate for your level of expertise. Beginners will want a more basic book vs. more advanced coders who need a deeper dive on niche topics.
  3. Practice writing one coding language by hand. The best way to learn and retain something like coding is by doing it. And by focusing on one specific language like SQL or JavaScript, you’ll get really good at one instead of so-so at a bunch.
    • The skills you acquire from learning one language in-depth can often be applied to the other languages.
    • Pick the language you want to study based on the job description if you’re applying for a specific position.
    • Writing things out by hand actually helps your brain store the information more effectively than typing it on the computer.[5]
  4. Understand the thought process behind each problem or concept. You can’t just memorize information to succeed at the technical interview. Make sure you fully understand how each idea works by trying to explain it to a friend who has zero technical knowledge.[6]
    • By getting them to understand it, you’ll help yourself retain the information and grasp the concept better, too.
    • For example, instead of memorizing that a specific string of PHP code will search a database, break it down line by line and understand exactly what purpose each function in the code serves. Then try to connect the dots and figure out how those functions work together to search the database.

Rehearsing for the Interview

  1. Work through practice problems on a whiteboard with a timer. Practice makes perfect, and the more sample problems you solve, the more prepared you’ll be. Set a timer for 45 to 60 minutes (the average length of technical interviews) and show every step of the process as you solve the problem on the whiteboard.
    • The interviewer is not as interested in the fact that you got the right answer as they are in how you got to it. Write out anything that goes through your head, from calculations to brainstorming ideas.
    • You can find sample problems in a prep book or by googling something like “Technical Interview Questions <Insert Language/Skill Here>.” Just add whatever coding language or skill you want to practice and you should have no problem compiling a list from the results.[7]
    • One sample algorithm question would be: “You need to design a scheduler to schedule a set of tasks. A number of the tasks need to wait for some other tasks to complete prior to running themselves. What algorithm could we use to design the schedule and how would we implement it?”
  2. Talk through your process with a friend to practice communication. One of the worst mistakes an interviewee can make is being quiet. The interview is designed to evaluate how effectively you interact and communicate with potential teammates, so think out loud. Ask a friend to play the role of the interviewer and bounce ideas off them as you work.
    • Friends who are in the science, tech, or engineering fields themselves will make the best partners for this. They’ll be able to challenge your knowledge or offer valuable insight and suggestions for how you can improve.[8]
    • Be open to constructive criticism. If your friend says your coding could use some cleaning up, don’t get defensive. Use that as an opportunity to get even better by devoting more of your study time to writing lines of code or reading open source code online, for example.
    • You can also ask your friend to record the interview to watch afterwards. It will let you pick up on things like talking too fast or not talking enough.
  3. Practice how to respond when you don’t know the answer. Say something like, “I’m not sure how to do that, but here’s what I would to do to figure it out.” By talking through your ideas and problem-solving, the interviewer gets to see exactly how you think. Plus, they may be able to offer hints or ideas to help you get unstuck.
    • Don’t lie. Even if you get really stumped, think of another concept or algorithm you know and find a way to make a parallel between the two.[9] For example, say something along the lines of, “I don’t know exactly what to do next but I know that in a counting sort algorithm, I would…”
  4. Do an online mock interview with a hiring manager or developer. For the truest representation of what your interview will be like, schedule a practice run via an online service like Gainlo or LeetCode.[10] You’ll go through the technical interview process and then receive feedback and ideas for improvement. Prices for these mock interviews vary from around $50 to $150.
    • These interviews are done by people at some of the most highly regarded tech companies, so they have very valuable insight.
    • You’ll get a video playback of your interview along with a sheet detailing what went well and what areas were weaker. Some even provide actionable items to help you get better.

Help with a Technical Interview

Doc:Resource List to Prepare for Technical Interviews,Questions for What to Expect From Technical Interviews,Tips for Practicing for a Technical Interview

Tips

  • Get a good night’s sleep the night before. Being tired will negatively affect your brain function and performance.
  • Technical interviews often run about 45 to 60 minutes.
  • Bring a bottle of water with you to stay hydrated.
  • Prepare a portfolio that highlights some of the projects you’ve worked on to show interviewers.

References