May 16, 2020
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:
|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:
|⭐️||Beginner/Short on time (1-3 weeks)|
|⭐️⭐️||Intermediate/Some (4-6 weeks)|
|⭐️⭐️⭐️||Advanced/Ample time (6+ weeks)|
|Java||Examples in Java|