Prepare for That Coding Interview
So you’re a fresh junior who just decided it’s time to break the ice and start that famous internship/job hunting. Or, maybe you’re an experienced software engineer who decided to change the company and get back to that scary world of interviewing.
Either way, you’re going to have a technical interview, sooner or later. So you’re probably on Google all the time, looking for online interview tips that can somehow take you through the process. Or, you’re calling your friend who just landed a cool position in a tech company to tell you what to do.
Well, I might have some not-so-good news for you.
First of all, those interview tips you found don’t apply to all companies. Maybe that company evaluates the code more, while another company will prefer to know more about your personal skills. Maybe you should have those tips in mind, but don’t rely on them too much.
Another problem is that your friend might not tell you the whole story. Oh, come on. You know you don’t always tell the truth about your job interviews. That’s right, other people do it too! Let me be clear, it doesn’t mean that they do it on purpose. They’ll just subconsciously emphasize the parts where they “looked good”.
The real problem with technical interviews is that software developers don’t really understand how the interviewer evaluates them. Whether it’s an HR or a tech lead, they most probably have a system upon which they decide whether they think a candidate is suitable for the company or not.
Let’s face it — there’s no universal way of evaluating a candidate. Each company has its own parameters. The job title, the responsibilities that come with it, the department, the clients and projects, technology stack, skills, years, of experience — everything’s important. Another important factor is the mindset of the interviewer and the way they make decisions.
As a candidate, you should focus on three things — coding skills, problem-solving, and personal skills.
When it comes to coding skills, the first thing they’ll ask you is your experience. The years of experience aren’t so important as the technologies you know to use. Obviously, the more you know — the better.
But, there’s another important factor here. Your willingness to learn more. Yes, we’ll always say that we like to learn new things. However, the interviewer can really feel the enthusiasm of your will to learn. For example, if you know React, and the interviewer is asking whether you’d like to learn Angular for the company’s project, say YES immediately. Always be prepared to broaden your skills rather than deepening them. Every company will first hire the person who’s ready to learn more technologies over the person who just specializes in one.
They will give you a test about your general coding knowledge. The program flow, the data structures, and the things you can do with the particular technology stack you’re applying for. The important thing here is to show how proficient you are with those programming languages, or how long do you hesitate. When they ask you about your solution, you should be confident, not confused.
After you submit your code, they’ll check your syntax and semantics. If you make a mistake, they’ll try to figure out whether it’s the problem that’s unclear to you, or you actually don’t know the language.
Don’t worry if you make some mistakes. However, there will be a problem if you make a pattern of lookalike mistakes. If you do make a mistake, recognize it and explain it.
Remember — you don’t need to know everything, but you must know the basics. Gayle Laakmann McDowell, entrepreneur, coder, and an expert in this field believes candidates must know fundamental concepts.
“Assuming the company’s going to do some sort of coding exercise, having a foundation in data structures and algorithms is really important. These are fundamental concepts like binary search trees and breadth-first search. They’re easy to learn, but a lot of interview questions assume knowledge of these things. A candidate should also be comfortable coding in one or more languages. It’s okay if you forget the exact parameters for the substring method, but you should be able to write pretty reasonable code — for loops, functions, classes, etc — without relying on internet searches,” she told Glassdoor.
As in for problem-solving, what the interviewer really wants is to understand the process you use to get the solution. To some interviewers, this is more important than the actual solution.
What you need to do is to ask questions. That’s how they’ll see your way of thinking and how you approach problems. Write down the key points and get to the solution before starting to code. Describe the problem with words and break down the large picture into several smaller ones. Once you’ve solved the problem in your head, the code will come easily. There will be problems on the way, but it’s important for the interviewer to see that you have an idea.
Of course, your problem-solving skills depend on your technical skills. If you don’t know how to put it into code, simply solving the problem on a piece of paper won’t do it.
Finally, your personal skills. I often hear managers saying that they’d rather hire a bad programmer with strong personal skills than a great one with a bad personality. Teaching them how to code is easier than teaching them how to behave.
First of all, know your industry terms. You must know how to talk about software and the technologies you’re using. You must know how to describe what you just wrote with the correct vocabulary. Don’t use words you don’t know what they mean just to seem smart and skip the buzzwords.
Be honest when you don’t know something. Interviewers appreciate honesty more than lying. Your sentences must be clear and simple. Don’t overcomplicate.
To sum up, coding skills are required, but not always crucial. Interviewers really care about your communication skills. Looking long-term, it matters more.
In a coding interview, you must know how to apply your knowledge to new problems. Don’t learn just one way that you’ll use in every task you get. The interviewer will notice this immediately.
Learn to understand what you write. Learn to explain it with the correct terms. Be open and admit when you don’t know something. Show that you’re eager to improve. Interviewers always recognize enthusiasm.
Bonus tip: Check out Gayle Laakmann McDowell’s book called Cracking the Coding Interview. It’s a summary of advice for developers who apply to tech giants like Facebook, Salesforce, and Amazon and it can help you nail your next coding interview.