I recently passed my 1 year anniversary on LeetCode Premium and thought I’d share my thoughts on the experience.
Why did I do it?
I went on a few interviews in 2020 and afterwards realized I wasn’t exactly prepared for technical programming interviews. While I felt comfortable with syntax, I didn’t realize how deficient I was with all the CS topics that get asked in these situations.
After a bit of searching, I found Algorithms1 and Algorithms2 on Coursera in addition to an interview prep site called LeetCode. If you don’t already know, LeetCode is a website created to help users learn and practice topics in computer science as they relate to programming interviews at large technology firms. While I have a technical degree (Electrical Engineering), the coursework I did during it isn’t as focused on computer science fundamentals as Computer Engineering or Computer Science for that matter! It was time to get to work.
The Coursera courses were excellent. They’re taught by a professor from Princeton that is pleasant to listen to and breaks problems down well. I personally didn’t “complete” the courses as in I didn’t submit answers to the post lecture questions, only using similar LeetCode questions to practice the topics discussed. I found the workflow much easier since you get a live debugger and tons of discussion about each question in addition to documented solutions if you have a premium membership.
After slowly working through those over the course of a few months, I transitioned entirely to Leetcode questions plus their explore cards.
The explore cards are actively being developed as of this writing and are for the most part a good resource. They don’t delve very deeply into their topics but you can quickly get a high level understanding of things like dynamic programming, graph theory, recursion, etc. by completing them.
At this point, I’ve completed about half of the “Learn” explore cards and have been logging in most days to complete the daily question and maybe a bit more if I’m up to it.
Was it Worth it?
After a year of reflection, I think the journey has been extremely positive! I’ve been able to apply information I’ve learned throughout this professionally and while my day job doesn’t really work with big data algorithms like graphs or BSTs, fundamental knowledge like sorting, searching, containers, iterators, and the C++ standard library all help me do my job immensely. Plus, I would have probably never been introduced to unusual and interesting algorithms like counting sort or reservoir sampling!
While this has taken A LOT more time than I expected it would, it was mostly because of my ignorance and “unknown unknowns” as far as how much material I was going to need to cover. We’ll exactly how well it pays off in future work/interviews but as far as completing LeetCode questions is concerned, I’m much more successful now than when I started.
If you’re considering spending some time on LeetCode to learn or just re-familiarize yourself on existing knowledge, I’d recommend giving it a few weeks of work at least because these kinds of questions can be extremely demoralizing, especially if you don’t have any experience with them as I had when I started.
Future Plans
Since I let LeetCode dip into my bank account for another year of premium membership, I’ll probably keep coming back most days to do the daily questions. I’ve gotten into a nice rhythm of starting off the work day with them and don’t plan to stop soon.
Additionally, this kind of knowledge is something that really needs to be nurtured so if I want to keep building on previous success, I can’t really stop now can I?