If you are applying for a Software Engineering position, chances are that you’ll encounter some kind of technical interview or coding challenge. For newbie engineers like me, the coding interview is perhaps the most terrifying part. However, with some beforehand preparation these kind of interviews will become less scary and hopefully you will learn many things during your job search journey.
Do Personal Side-Projects
If you’re still a student, take advantage of that! Take the big project class that everybody is afraid of, this is usually a great way to get some experience and learn a lot. If you are already a professional like me, chances are that things are a little more complicated. But there is still a chance to develop these kind of projects using your nights and weekends.
I know how that sounds… but it doesn’t have to be tedious! You are learning something new and that’s very exciting! Using your free time to develop projects is a great way to get experience with newer technologies and making sure you are relevant to the companies you want to apply to. This is also a chance to list more things on your resume, it’s always more impressive a personal project done “just for fun” than a mandatory school or work project.
Don’t Forget About the Soft Skills
Mastery of coding challenges is only half the battle in coding interview preparation, so don’t forget the soft skills. Throughout the entire interview process, including the technical coding interview, there are a lot of things that interviewers are looking for besides your ability to code. These other skills have to do with how well you communicate your thought process, collaborate, talk about the problem at hand, your leadership skills, your drive to learn, and generally speaking, how nice you are. Soft skills are often overlooked by candidates and can be deal breakers for a lot of coding interviews.
A company that’s worth applying to will want candidates that have strong soft skills, sometimes moreso than hard skills, because they show how well a person can grow within the company and develop those hard skills over time. This is especially the case for junior software engineers, like you and me.
Learn How to Solve Coding Problems
Solving coding problems is like learning to ride a bike. At first you really don’t know what you are doing, but with some help you begin to start getting experience and after a while you get the hang of it and become good at it.
There are some steps that you can follow to make sure you are solving the problems in an optimal manner:
- Brute Force
Know Your Data Structures and Algorithms
You don’t need to be a master of computer science to ace a coding interview, but there are some standard algorithms and data structures that you should feel good about referencing, or at least mentioning and talking about.
Data Structures and Algorithms are the bases for a good Software Engineer. With a good knowledge about these two concepts you can design refined solutions to any problem you encounter. That’s why it is very important for you to know about how to use them, implement them and their respective complexity.
These kinds of interviews are an opportunity for you to not only show off your skills as an engineer, but also to demonstrate how well you work with others to reach a solution. The interviewer is there for a reason! It’s designed to simulate what it’s like to work with you on a team. So… remain calm, be yourself, study, learn about the programming language of your choice and practice!