Coding interviews aim to test your ability to write good code. Companies like Google, Facebook, Uber, Lyft, Palantir, Twitter, and DeepMind focus a lot on algorithms and data structures in this interview.
📡 General Recommendations
- Learn about or brush up your knowledge of data structures and algorithms in the following order: Outtalent’s Computer Science Basics Guide
- Get the latest edition of the Cracking the Code Interview, by Gayle Laakmann McDowell. It may look big in its printed version, but we think it is written in a friendly way and most of it is code with solutions to problems, which you can skip, focusing on the theory part.
- Buy a small whiteboard. This can help you with mock interviews before onsite interviews and will set you apart in case you will have a video interview instead of a phone one.
🧱 Programming Languages
Sometimes candidates ask us which programming language they should learn for these interviews, so we created this list of popular languages in top large tech companies by role:
- Software, Backend, or Full-stack Engineers: Python, C++, Java, JavaScript
- *Note: If you are applying to top tech startups Ruby ***works well too.
- Frontend Engineers: JavaScript
- iOS Engineers: Swift, Objective-C
- Note: Google will ask to choose a language like Python, C++, Java, or JavaScript.
While some companies will accept a language outside of this list, we recommend learning one of these because you will be able to apply to a wide range of companies and roles. Additionally, knowing more than one programming language is generally considered a good sign while knowing only one language (or only older languages) is a bad sign.
In addition to the most common language functions, we recommend learning about:
- The language’s idiomatic way, that is, following the conventions of said language and leveraging them instead of porting your knowledge from one language to another (e.g. list comprehensions in Python).
- Object-oriented syntax (e.g. inheritance).
- Lower-level implementation of data structures and algorithms to make sure your code is efficient.
- How to use pointers efficiently in In C++.
⚙️ Practice on LeetCode
LeetCode is one of the most widely-known platforms to practice and enhance problem-solving skills while preparing for technical interviews.
Here are our recommendations: