This is my hands-on approach to hacking the Coding Interview:
- Tracking coding time with Wakatime or Git. (What you can't measure, you can't improve)
- Solve coding problems on a daily basis and
commit
every problem (min 30m/day) - Read the literature, and reimplement key data structures and algorithms in a high-level language such as
python
and when needed in a low-level one likec
- Take notes in the form of a book, videos, or in-depth tutorials
- Give back to the open source community helping with projects to test your knowledge in the wild. Great places to start contributing are Exercism's tracks, FreeCodeCamp's curriculum, CodeCrafters's projects, CodeAcademy's docs, or your favorite repository on Github.
- Optional: Read books like Growth Mindset, Deep Work, and Ultralearning to get better at learning itself.
So the first step will be doing the following exercises from these platforms:
- Khan Academy: Introductory exercises to get you started with the basics of algorithms. Great intro using Javascript. The materials here were developed by Dartmouth College professors Tom Cormen & Devin Balkcom, the first is the same author as the famous book Introduction to Algorithms.
- Exercism: Great open source platform to master any programming language itself, from the basics to advanced topics. Mentorship is free.
- HackerRank: They have Preparation Kits ranging from 1-week, 1-month to 3-months. Companies such as Amazon use the platform to interview candidates.
- LeetCode: Popular coding platform, the place-to-go to prepare for technical interviews. They just released a systematic program for excelling at interviews called 75.
- CodeSignal: Great selection of problems from companies past interviews. Nice UI and guided tracks. Some FAANGs use the platform to interview candidates.
- NeetCode: This is a new coding website based on a LeetCode problems selection. The cool thing is that they have code walkthroughs for each problem on Youtube and solutions in many languages. Great to match with LeetCode 75.
- Coding Interview Prep: The Coding Interview Prep by freeCodeCamp contains hundreds of coding challenges that test your knowledge of algorithms, data structures, and mathematics.
Also consult Visualgo for visualizing data structures and algorithms through animation. Other great resources to consider are: The Euler Project (free), and Rosetta Code (free).
Platform | Track | Time | Problems |
---|---|---|---|
Khan Academy | Intro to algorithms | - | 25 |
Exercism | Python | 131 | |
HackerRank | Interview Prep Kit | 104 | |
LeetCode | 75 Study Plan | 75 | |
CodeSignal | Interview Practice | 110 | |
NeetCode | NeetCode | 1501 |
- Clist: A curated list of competitions for competitive programming.
- CSAcademy: A great place to find lessons, competitions, and exercises on algorithms and data structures. Great organization of the content.
- Kaggle: A great place to practice data science and machine learning skills, it also includes great introductory courses and tutorials by experts.
- Google's Coding Competitions: International programming competition hosted and administered by Google. The competition began in 2003. Good Prizes.
There's a lot of Coding Interview books. But I would recommend the following that I personally read during this preparation period:
Here are some books I personally read to get better at meta-learning.
Footnotes
-
This is based on LeetCode problems for time tracking and might be overlapping with the LeetCode 75 track. β©