CodeSignal’ Top 5 Interview Tips for Developers

Finding a new job can be a long process that takes weeks… or even months. This tedious process becomes amplified for software engineers. Since software engineering is a hard skill, most companies try to devise various ways of assessing that skill during the interview. This adds more time, layers of complexity, and obstacles to the job seeking process.

At CodeSignal, we help software engineers practice and improve their skills through our gamified educational platform. We also connect them to hundreds of top companies when they’re ready for their next adventure. This means that we get to see what technical interviews are like across many different companies and what developers can do to increase their chances of success.

Top 5 tips for technical interviews

We’ve taken what we’ve learned and distilled it into 5 cardinal rules for engineers who want to make the interview process less painful and score their dream job:

  1. Practice using real interview questions! Great developers often think “This is what I do for a living and I’m good at it”. This makes it tempting to walk into an interview without having practiced much. But the reality is that the interview questions you’ll face at most companies are miles away from what you do at your day job. Doing some research and practicing using real questions that the company uses in its interviews will pay off big-time during the actual interview. There aren’t many high-quality free resources available for this, so we’ve tapped into the knowledge base of our large community to create Interview Practice. Interview Practice is a collection of real interview questions asked at top tech companies, categorized by company and by topic.
  2. Ask a lot of questions during the interview. Some engineers think that asking questions is a sign of poor skill or a lack of understanding, but in reality it’s the opposite. Most questions that you’ll be asked during technical interviews are intentionally vague. The interviewer’s goal is to see if you can ask the right questions before diving in. The worst thing you can do during a technical interview is solve something that you weren’t asked to solve! So ask questions until you are absolutely sure you have all the details.
  3. Use the collective knowledge of your own network and information from sites like Glassdoor to find out what the interview process at the company is like. At some companies (like Google), you interview with 4-5 people onsite and they all have to say “yes” for you to be hired. At others (like Oracle), you still interview with 4-5 people, but they are all on different teams. As long as one says “yes”, then you’re in. Knowing what you are dealing with and what the thinking process behind the scenes is will dramatically improve your chances of doing well in the interview.
  4. Apply to as many companies as you can. Some candidates make the mistake of only talking to a few select companies. They’re basically trying to hit a bullseye with only a few shots! This only works in theory. In practice, it’s very hard for you as an outsider to understand what a company is like and what they work on. So interviews are also a way for you to interview the company and see if it’s something you are ready to commit to. On top of that, doing more interviews provides you with much-needed practice. And when you finally get to the offer stage, having several offers helps you negotiate the best compensation package.
  5. Be mentally prepared for a negative outcome. Interviews are run by human beings, and human beings tend to be quite subjective. So no matter how good you are and how much you prepare, most of your interviews are going to have a negative outcome. You have to be mentally prepared for this. Many candidates take it very personally when a company comes back to them with a “no”. By setting realistic expectations at the outset and treating each interview as an experience to learn from, every “no” you receive – and you will get some! – won’t feel like the end of the world.

Job interviews are inevitably stressful. Engineering interviews are even more so because they try to directly evaluate your skills. It’s natural to be nervous, but the more you prepare, the better equipped you will be to ace whatever the interviewer throws your way.

Join us!

At CodeSignal, we try our best to keep our interview process interesting and fun, and we’re actively growing our team. Are you passionate about changing the future of education and talent discovery? Check out our jobs page and apply!

Tell us…

What are your sure-fire interviewing secrets? Let us know what you think on the CodeSignal forum!

CodeFights’ Top 5 Interview Tips for Developers

Developer Interview Tips

Finding a new job can be a long process that takes weeks… or even months. This tedious process becomes amplified for software engineers. Since software engineering is a hard skill, most companies try to devise various ways of assessing that skill during the interview. This adds more time, layers of complexity, and obstacles to the job seeking process.

At CodeFights, we help software engineers practice and improve their skills through our gamified educational platform. We also connect them to hundreds of top companies when they’re ready for their next adventure. This means that we get to see what technical interviews are like across many different companies and what developers can do to increase their chances of success.

Top 5 tips for technical interviews

We’ve taken what we’ve learned and distilled it into 5 cardinal rules for engineers who want to make the interview process less painful and score their dream job:

  1. Practice using real interview questions! Great developers often think “This is what I do for a living and I’m good at it”. This makes it tempting to walk into an interview without having practiced much. But the reality is that the interview questions you’ll face at most companies are miles away from what you do at your day job. Doing some research and practicing using real questions that the company uses in its interviews will pay off big-time during the actual interview. There aren’t many high-quality free resources available for this, so we’ve tapped into the knowledge base of our large community to create Interview Practice. Interview Practice is a collection of real interview questions asked at top tech companies, categorized by company and by topic.
  2. Ask a lot of questions during the interview. Some engineers think that asking questions is a sign of poor skill or a lack of understanding, but in reality it’s the opposite. Most questions that you’ll be asked during technical interviews are intentionally vague. The interviewer’s goal is to see if you can ask the right questions before diving in. The worst thing you can do during a technical interview is solve something that you weren’t asked to solve! So ask questions until you are absolutely sure you have all the details.
  3. Use the collective knowledge of your own network and information from sites like Glassdoor to find out what the interview process at the company is like. At some companies (like Google), you interview with 4-5 people onsite and they all have to say “yes” for you to be hired. At others (like Oracle), you still interview with 4-5 people, but they are all on different teams. As long as one says “yes”, then you’re in. Knowing what you are dealing with and what the thinking process behind the scenes is will dramatically improve your chances of doing well in the interview.
  4. Apply to as many companies as you can. Some candidates make the mistake of only talking to a few select companies. They’re basically trying to hit a bullseye with only a few shots! This only works in theory. In practice, it’s very hard for you as an outsider to understand what a company is like and what they work on. So interviews are also a way for you to interview the company and see if it’s something you are ready to commit to. On top of that, doing more interviews provides you with much-needed practice. And when you finally get to the offer stage, having several offers helps you negotiate the best compensation package.
  5. Be mentally prepared for a negative outcome. Interviews are run by human beings, and human beings tend to be quite subjective. So no matter how good you are and how much you prepare, most of your interviews are going to have a negative outcome. You have to be mentally prepared for this. Many candidates take it very personally when a company comes back to them with a “no”. By setting realistic expectations at the outset and treating each interview as an experience to learn from, every “no” you receive – and you will get some! – won’t feel like the end of the world.

Job interviews are inevitably stressful. Engineering interviews are even more so because they try to directly evaluate your skills. It’s natural to be nervous, but the more you prepare, the better equipped you will be to ace whatever the interviewer throws your way.

Join us!

At CodeFights, we try our best to keep our interview process interesting and fun, and we’re actively growing our team. Are you passionate about changing the future of education and talent discovery? Check out our jobs page and apply!

Tell us…

What are your sure-fire interviewing secrets? Let us know what you think on the CodeFights forum!

Mastering the Basics for Technical Interviews

Programming Basics

It’s natural to want to focus on really tricky concepts when you’re preparing for interviews. You know you’re going to get some really hard problems, and so that’s the stuff that you want to practice! But we hear stories all the time about people who prepare for higher-level questions, only to completely blank out when they get questions about the basics. And we definitely don’t want that to happen to you!

You absolutely need to be able to answer questions about programming basics quickly and easily, because for most interviewers, this represents the baseline of what you should be able to do. And if you don’t perform well, this can automatically put you out of the running even if you’ve done well on the rest of the interview.

The basics

Consider the fizzBuzz conundrum that Imran Ghory and others have written about: A surprising amount of seemingly well-qualified applicants are unable to answer even trivial programming questions during technical interviews. An example of this sort of question is the old standby fizzBuzz, which asks the interviewee to write a program that takes a number n and print out the numbers from 1 to n, replacing multiples of 3 with fizz, multiples of 5 with buzz, and multiples of both 3 and 5 with fizzbuzz. (Go ahead, take a minute and do it. We know you want to.) While the odds that an interviewer actually asks you to solve fizzBuzz is pretty low since it’s well-trod territory at this point, it’s a good example of the level of this type of “basic” question.

Questions like this are aimed at making sure that you have a fundamental understanding of how to write code. The interviewer also wants to make sure that you can problem-solve in ways that take test cases and optimization into account. Since this sort of question is usually asked while you’re whiteboarding, interviewers also use this to gauge how you think while you’re working through a problem.

Know your tools

It’s also important that you actually know your favored interviewing language well. Can you write loops, use appropriate methods when they’re available to you, and use the right terminology when you’re discussing elements of the code you’re writing? If not, it’s going to show and the interviewer is going to pick up on it.

Technical interview topics

What basic things should you be really solid on in order to prepare for technical interviews? They tend to fall into a few basic categories:

  • String manipulation (Generate permutations, find substrings, reverse a string, substitute specific letters…)
  • Array manipulation or traversal
  • Number manipulation
  • Pattern matching (If necessary, be ready to write your own regular expression rather than using a regex library)
  • Condition matching (Find the largest/smallest/missing element)

Remember, this represents the baseline of what you should know in order to succeed in an interview (not to mention on the job). You’ll actually need to know a lot more advanced stuff to ace the interview – and don’t worry, Interview Practice has you covered on that front too. But even if you do well on more advanced topics, if you don’t wow the interviewer on the simple ones they’re going to question how capable you actually are. So don’t neglect the basics! Here are some great examples on Interview Practice to get you started:

String manipulation:

Array manipulation or traversal:

Number manipulation:

Pattern matching:

Condition matching:

Tell us:

Have you ever encountered a basic programming question in an otherwise hard interview? How did you handle it? Let us know on the CodeSignal forum!