In tech industry, interviews are harder than the actual job itself. While this statement might sound like a complaint, but it is true to a certain degree. The purpose of a technical interview is for employer to find out how the interviewees will answer the questions; whether their work ethics and logic thinkings fit the company and the position that they are looking to fill. With that thought in our mind, let us take a look at some of the resources to help us prepare for technical interviews.
1. Cracking the Coding Interview — By Gayle L. McDowell
This is a wonderful book that is written by Gayle L. McDowell, a software engineer and the founder/ CEO of Career Cup. In this book, Gayle examined what is a technical interview, its process, and how the questions are selected in interviews, and what are the Frequently Asked Questions during the interviews. She also break it down by different FAANG tech companies, and what are the questions that they would ask. The different positions that we will likely to be interviewed within the companies; the behavioral and technical questions that would most likely being asked during interviews; heck she even provides what we can and should do if we receive rejections or offers! This book has a lot of good knowledges that are otherwise not provided in traditional university / coding boot camp life.
2. Coding Interview University
The Coding Interview repository on GitHub is one of the most comprehensive resources for interview preparation. This repository started as the owner’s study plan that he used to become a software engineer. In this repository, we will find information about data structures, algorithms, dynamic programming, object-oriented programming, design patterns, and more. Be aware that it’s comprehensive and we do not have to learn everything at once. Nonetheless, the resource is extremely handy to prepare for technical interviews.
3. The System Design Primer
For small side projects, we might get away without planning or too much thinking. However, building large-scale systems is a different game. Learning how to design scalable systems will help us become software engineer. The System Design Primer repository is a collection of materials and resources from the internet. The owner of the repository puts together resources and materials from different sources. Also, the repository is continuously updated, so mark it down and keep an eye on it! The repo contains a study guide, how to approach system design questions, and solutions to the questions, which is highly recommended to learn more about designing scalable applications.
4. Interview Resources
The Interview repository does not have a description or guide on how we should use it. It only lists links to other resources and groups these links by their topic. For instance, there is the Algorithms section that includes books, coding practice, guides, and more. I like this repository in particular because of the number of resources included. Also, I like that they are categorized by different types. Besides that, it deserves an extra point for having similar repositories at the end. Those are additional resources to prepare for the technical interviews.
In conclusion, knowing that technical interviews are hard should not prevent us from learning and acing it! It might seem overwhelming at first, but taking our time and learning the basic concepts and foundation of how a technical interview works, will get us started with the first step of preparation to ace a technical interview! Good Luck and happy learning!