CRUSH Your Coding Interview Preparation – 7 Steps to Success

Written By John Sonmez

Don't feel overwhelmed by the interviewing process. 

If you know how to prepare — and you take all necessary steps — you can tackle anything the interviewers throw at you. Which means that sooner or later, you’ll get one of those high-paying jobs, to start your coding career off on the right foot.

Coding Interview Preparation - The 7 Steps

This is how you'll succeed, in a nutshell. Follow this roadmap for your coding interview preparation. Internalize the seven steps. Focus and execute them as well as you can. Get that high-paying Software Engineer job.

1. Prepare your portfolio

There's few things interviewers love more than when they can see with their own eyes the real-world results of your coding skills.

When they see your developer portfolio:

  • They know you're passionate about building and problem-solving
  • They see proof of mastery over your craft
  • They appreciate your discipline to see things through to completion

Tip: When you send in your resume, include your portfolio.

Designers do this — and engineers should, too: It'll make you stand out.

The more side projects you complete, the more likely you’ll learn how to code effectively and land a job:

  • Build a mobile app or web project. And have the source code ready to show. A portfolio full of real coding projects will raise your status above other interviewees.
  • Get GitHubbing. Provide your interviewer your Github username so they can see the projects you work with and how you work with them.
  • Do Hackathons. Having participated in a Hackathon is a great item to include on your resume — and to talk about during your interview.
  • Contribute to Open-Source projects. This shows you can work with a team and you can handle having your code reviewed.

2. Enter their sphere

The next step for you to go into your coding interview with unshakeable confidence:

Become an expert on THEIR company. And get in touch with them early on.

  • Check their "About us" page. Here you can learn about their history, self-image, and values.
  • See what they're posting on social media. From checking out their Twitter, Facebook or YouTube presence, you can glean more about their messaging and communication style.
  • Read recent articles about their company. This way you make sure you're up to date on what's happening in the company and their current business dealings.
  • Find your interviewers on LinkedIn. Find out as much as possible about their background. You can then use this information to better connect with them during the interview.  
  • Get to know the company's team. Search for the people in the same branch. Send them a connection request and start engaging them! The result is that on the day of the interview you already know everyone.
  • Connect with recent interviewees. After introducing yourself, politely ask them for tips on the interviewing process. In many cases they'll be glad to help you out. They might even point you to the kinds of questions they were asked.

Now you know about their history and current events. You know what they value. And you've gotten to know your interviewers and potential future coworkers.

You've even learned how to best prepare yourself — from people who've recently gone through their interviews.

Each of these will give you an advantage going into your coding interview.

3. Think like a winner

Fit Programmer
  • Visualize success. Take the time to mentally rehearse your coding interview. Imagine how you'll solve problems proficiently, communicate confidently, and stay focused during the whole interview process.
  • Nothing to lose. Sure, every interview is a big opportunity. But even if you were to fail, there's more companies out there you can apply for. Go in with an attitude of abundance, and you'll find it easier to perform well — while staying calm and confident.
  • Don't stress about what's outside your control. Stressing about the result, stiff competition, or team dynamics is a waste of your inner resources, because it is outside of your control. Stay independent of the outcome. If you get the position, great; if not, no big deal—don’t take it personally, and prepare better for the next interview.
  • Persistence will pay off. If you're willing to do the real work and put in the time, you will succeed eventually. Even if you're not the greatest developer and have limited experience, with persistence you can land a good role. And once you do, it gets much easier from there. 

4. master coding interview questions

Answering the technical questions well is of course a big part of getting the job offer. Follow this guide to to ace the technical part of your interview.

Learn how to problem-solve

You won't crush your coding interview by just memorizing problems.

The goal is to understand things at a higher level.

You want to be able to take a problem you've never seen before, break it down, and analyze it. You get which patterns it follows. Then you know how to solve it. And you can explain your process to the interviewer step by step, with confidence.

That's how you solve coding questions effectively. That's how you impress at interviews.

A simple problem-solving process

  • Read the problem completely twice.
  • Solve the problem manually with 3 sets of sample data.
  • Optimize the manual steps.
  • Write the manual steps as comments or pseudo-code.
  • Replace the comments or pseudo-code with real code.
  • Optimize the real code.

Prepare for data structures & algorithms questions

Data structures

  • Arrays

  • Strings

  • Linked lists

  • stacks&queues

  • graphs

  • trees

  • maps

  • heaps

Arrays are the most common data structure in programming—and a vital component in determining how information is accessed.

It's one of the darling topics of interviewers and you'll hear a lot of questions about arrays in any coding interview, e.g. reversing an array, sorting the array, or searching elements on the array.

The key to solving array-based questions is having a good knowledge of array data structure as well as basic programming constructors such as loop, recursion, and fundamental operators.

Algorithms

  • Depth-first search

  • Breadth-first seach

  • Binary search

  • sorting

  • dynamic programming

  • backtracking

  • divide&conquer

Depth-first search (DFS) searches graphs and trees by beginning at the root node and following each branch as far as it can before it backtracks. DFS may be used to detect cycles in a graph, to find a path, and to locate strongly connected components.

How to practice coding questions

📆 Make your schedule

If you want to prepare to crush the coding interview:

Give yourself three months of focused study before you even apply for any jobs.

Set aside 2-3 hours per day and work on 2-3 coding questions during that time. By the end of three months, you'll have cracked around 200 problems. 

You can then go into your interview with full confidence.

📝Practice solving questions out loud and on paper / whiteboard

In your practice, you want to get as close to the real thing as you can.

Get in the habit of mapping your solutions out visually, asking and answering questions, and talking through your process. This is what you'll be asked to do in your coding interview.

And if you've already been doing exactly that for several months: Guess what — you'll be able to execute it like clockwork.

📱Want a ready-made structure? Choose a coding interview prep platform

If you'd rather not deal with creating your own schedule, picking the best questions to practice, and looking up the best solutions, you might want to invest in a course or preparation platform.

Platforms like AlgoExpert guide you through your coding interview prepping process.

You get the most likely questions curated in an easy format, a built-in compiler to input your code right there, and solutions with step-by-step explanations. 

Also see how different coding interview preparation courses stack up.

5. Sharpen your soft skills

Level up your soft skills as a developer to prepare for the behavioral part of your coding interview.

3 tips to make a good impression

  • Answer questions about your prior projects with examples
  • Understand the company so you can tailor your explanation why you want the gig, and why hiring you will add value
  • Ask interesting questions demonstrating your interest and passion

Prepare Behavioral Answers

Behavioral Questions for Coding Interview

Win over your interviewer with great answers to behavioral questions 

Whenever you’re asked a typical behavioral question, you can structure a response using CAT, a framework invented by Saeed Gatson:

  • Circumstance.
  • Actions.
  • Takeaway.

Start off by talking about a circumstance you were in, then explain the actions you took to solve the issue, and finally describe your takeaway from the whole experience.

It helps to come prepared with a few circumstances in mind beforehand.

The “Tell Me About Yourself” Question

Use Saaed's NFL approach, which stands for Now, Former, Later.  

  • Start off with what you're working on now.
  • Then talk about something you’ve done at a former job or project.
  • Finish up with goals you want to accomplish later at this given opportunity.

I've never not been asked this question in an interview. It’s pretty much guaranteed. You might as well ace it.


The Behavioral Traits They Look For

The right developer isn’t just someone who knows algorithms; it’s someone who communicates effectively and knows what it means to be part of a team.

What they look for in the behavioral interview can be summed up in The 4Ps: (credit: Saeed Gatson)

  • Problem-Solving Ability.
  • Passion for the Company.
  • Passion for Technology.
  • Personable Presentation.

In detail, they're looking for these traits:

Behavioral traits for coding interviews

  • Problem-solving

  • teamwork

  • manners

  • time management

  • body language

  • communication

  • handling the unknown

As an engineer, you need to be a problem solver. In the coding interview, you have plenty of time to demonstrate that. A common mistake is to try to start writing code as soon as possible. 

You must resist this urge. 

Make sure you take enough time to understand the problem completely before attempting to solve it. Another big mistake is trying to over-solve the solution on the first iteration.  

Keep it simple, don’t try to get fancy.

How to improve your soft skills before your coding interview

Social skills respond well to frequent practice. 

Seek to put yourself into challenging social situations that require you to be charismatic:

  • Talk to new people. Try to win them over by being interesting and interested.
  • Look for any opportunity to speak publicly and take it.
  • Practice mock interviews with your friends, other programmers, and senior software engineers.

6. practice mock interviews

To be prepared to perform under pressure, simulate the real coding interview environment as much as you can. Mock interviews are the best way to do this.

Again, there's online platforms to help you do these mock interviews. There's two major options:

  • Pramp pairs you with a peer interviewing for the same types of jobs as you. You can use the platform for free to do your mock interview with peers.
  • Other interview platforms charge for their service, but instead of a peer mock interview, you get paired with real FAANG senior software engineers.

Do these many times before your coding interview, and you'll be prepared to breeze through it.

7. Prepare to negotiate

Don't forget to prepare yourself for a good outcome!

If you've followed all steps of the study roadmap so far -- then you've maximized your chances of receiving an offer, sooner rather than later.

If you negotiate correctly, you can increase your starting salary at a software engineering job by a good amount—much more than you can ever expect to get from raises.

Negotiation Skills

It pays to negotiate

And second, raises are based off of a percentage of your current salary. That is why it's critical to get a good salary when starting a new job and to negotiate as best as possible.

If you can raise your overall compensation by 10%—which is usually easily obtainable—you can possibly put yourself ahead by 2-3 years in terms of raises, which usually are around 2-3%, but might actually be 0%.

  • Don't be first to name a number
  • Don't say your current or past salary
  • Make counteroffers
  • Be careful moving down from what you want, always try to make them come up
  • All parts of the package are negotiable
  • Don't be afraid to take your time

That's a wrap on how to prepare for your coding interview!

For tips on how to act during your coding interview, check out my article with 17 coding interview tips.