~/bloginterview-prep-for-the-intermediate-developer.md
May 16, 2020
A non-exhaustive list of resources I've used to study for tech interviews to help others do the same. Most of these resources are language agnostic, although some will be Java or JavaScript specific.
For context, I have 2 years of experience working full-time with TypeScript (JavaScript), and Java as a full-stack developer, and 1.5 years of teaching full-stack development.
Key technologies used:
Key topics taught:
Figure out what you don't know first by going through the most popular LeetCode easy questions and make note of it and focus on those questions. For me it was Linked Lists, Dynamic Programming, and Binary Trees. After 3-4 weeks, I was able to do LeetCode mediums on those topics. Make use of spaced repetition and revisit questions after a few days or a week to make sure you still understand the patterns.
I created gists for each solution to compare solutions I came up with after reading about the topic. A lot of my first iterations were brute-force and didn't pass performance tests. I also kept track of which language I solved the problems in, this might not be relevant to your situation.
I combined the above by creating an Excel sheet like below:
Date | Problem Name | Link | gist | JS | Java | Reviewed | Notes |
---|---|---|---|---|---|---|---|
2020-01-01 | Remove Linked List El | 🔗 | 🔗 | ✅ | ✅ | 2020-01-15 | Linked list |
2020-01-01 | Climb stairs | 🔗 | 🔗 | ✅ | ✅ | Dynamic Programming |
I also kept track of system design questions I had covered in a simplified table:
Date | Name | Link | Date Reviewed |
---|---|---|---|
2020-01-01 | Design TinyURL | 🔗 | 2020-01-15 |
Symbol | Definition |
---|---|
⭐️ | Beginner/Short on time (1-3 weeks) |
⭐️⭐️ | Intermediate/Some (4-6 weeks) |
⭐️⭐️⭐️ | Advanced/Ample time (6+ weeks) |
JS | Examples in JavaScript |
Java | Examples in Java |