Not leetcode
Leetcode, for those who don’t know, is a collection of data structures and algorithms programming challenges. More often than not, I find it difficult to maintain interest in the problems because they all seem so contrived and it’s not that rewarding to solve.
There are plenty of articles about what’s wrong with leetcode, so instead, I’m going to share some alternatives that I have found much more engaging and actually useful. For what it’s worth, these challenges tend to be more involved than ones you would find on leetcode.
Advent of code
Every December since 2015, advent of code hosts 25 themed programming challenges to save Christmas. The challenges are released each day of the advent calendar and usually grow in complexity. They also have some aspect of data structure / algorithms, but the overarching story makes it feel more purposeful.
Protohackers
Protohackers is a set of (at the time of writing) 12 problems that challenge you to create servers for various network protocols. The problems get more challenging as you progress, but you can work out of order. You also need to publicly host your solutions, which is a good motivator to actually learn how to do that.
Gossip glomers
Gossip glomers is a set of challenges to teach distributed systems. Everything runs locally, including the test suite, and there’s no leader board or logins.
Hackattic
Hackattic is an unordered collection of challenges that delve into real world protocols and systems. It has (at the time of writing) 18 challenges and 9 kata (small challenges).
Cryptopals
Cryptopals focuses on exercises that demonstrate attacks on real-world crypto. The goal is to build up knowledge of cryptosystems and how to attack them in order to instill defensive programming practices.
CS Primer
CS Primer is a subscription platform for learning computer science by writing code. It is self paced and covers a wide range of advanced topics. Being a paid service, it mostly resembles university courses with access to video explanations, a community of other enrolled students, and office hours with the creator.
Each topic has one free explanation video and programming challenge for you to try out as well.
More?
These are just the ones I’ve encountered, if you know of others I’d love to hear about them!