lars-ellingsen.dev

LeetCode Daily Challenges


I haven’t done as much on this site lately, as there’s been a lot going on, but I have been doing daily code challenges on LeetCode. These sorts of challenges have allowed me to practice my programming skills without having to come up with ideas for features, and they’re usually a fairly time-boxed type of problem, where I won’t have to spend all day on anything. In addition, it’s allowed me to explore a new language (in this case, Ruby).

So far, these have been a lot of fun. They’re often more intricate and difficult than they initially sound, and I can see why sites like this are used to screen interview candidates.

Where I’ve Stumbled

While Ruby has been great, and LeetCode seems like a great platform for this sort of practice, I immediately noticed some trends on the problems that I was having more trouble on. For many of them, there’s a specific trick to solving the problem that can come to me after fiddling with it for a while - ways to make it run faster, use less memory, and so on.

However, a number of the problems I have trouble with are related to things like Trees, Graphs, and other common data structure/algorithm problems that are often covered in Computer Science programs. As someone who only took High School Computer Science, and had majored in something else in college, I’m a self-taught/learn-as-you-go developer, and don’t have this sort of foundational background.

So far in my career, while I checked out some of this stuff out of curiosity, I didn’t see a huge benefit in pursuing it - plus it would be a big time investment. One thing these sorts of challenges have enlightened me on is just how cool some of these algorithms can be for solving certain problem domains. Not only does it make the code easier to reason about - once you have that foundation - but it can also become far more efficient.

As such, I’m going to be spending some time learning more about these. For now, I’m following along with the Graph Theory Playlist from William Fiset on YouTube (there’s a good chance I’ll buy his Udemy course as well). The types of efficiences and insights that graphs and trees can bring seems particularly intriguing to me, as well as being nearly impossible to replicate if you don’t have that foundation. I’m strongly considering following up with the MIT Open Courseware Algorithms Course as well.

Wrapping Up

Finally, while I’m going to be working on improving my “foundational” knowledge and continuing along with the LeetCode daily challenges, I also have a number of improvements I’d like to make to this site. Much like the to-do list for my home, it seems to grow faster than I can accomplish things! Here’s where I’m at now:

Thanks for reading!