Do you know your language?
No, really.
A lot of us (myself included) can learn the basics of a programming language and think that we've mastered every possible dimension.
And while all you really need are the basics to get started, it's helpful to test your newfound knowledge as you begin to dive deeper into the specific technicalities of your particular choice.
To test, we'll turn to some of the simplest free resources out there - coding practice problems. Solving these problems turns a threefold profit: gaining experience with your particular language, strengthening your problem-solving and critical thinking skills (take that, AI!), and in some cases learning about and becoming comfortable with DSA (tech interviews, anyone?).
And yes, LeetCode isn't the only option.
Ready to get started? Let's explore this list of my favorite coding practice sites.
Codewars
I really love the Codewars platform. Why?
They're really fun problems. While other platforms might have you finding primes under 1000, Codewars features unique problems like Vigenère cipher cracking and fraction/mixed number converters.
The system revolves around "honor", a measurement of your contribution to the platform and your competency at solving kata (practice problems).
It features many different language options and opportunities to contribute your own solutions once you solve enough kata, besides from their remixing/refactoring challenges called Kumites.
Get stuck on a problem and need help? There's an active Discord community that's ready to point you in the right direction.
There is a paid plan, Codewars Red, which goes for about $48 USD a year - but the subscription is not required to have a blast on the platform with all the free offerings.
Codewars also connects developers searching for a job with opportunities through their platform Qualified Jobs, so if you're looking for hire then you might want to make an account and check around.
CodinGame
This is probably my top pick to spend time on as of the time I'm writing this post.
CodinGame was introduced to me probably about a month ago by one of my friends, who was just enthralled about the code golf aspect of it. I'm actually writing another post right now about golfing and Ruby, make sure to drop a follow so you don't miss it.
The platform revolves around games. It's learning - through gaming. And who doesn't like games? Whether you're clashing it out with other coders around the world to solve a coding problem or personally optimizing a particular solution by yourself, it's super fun to do.
Plus, it gives me the satisfaction of seeing that I'm currently in the top 2% of all users (that's worth a friend request, right?) with their live ranking system. This is a great touch that's missing from a lot of other platforms, but if you're not one for competition it might not be a great choice.
CodinGame also provides certifications to prove your skills that measure things like speed, efficiency, and proficiency in a certain language.
LeetCode
Here's the classic. Pretty much everyone knows about LeetCode's platform nowadays, and for good reason. It's an expansive library of over 2500 questions grouped into topic-specific lists. Mainly used for interview preparation, it's also a good platform to just spend time working through problems for the sheer knowledge about problem-solving and DSA you'll learn.
But fear not, you don't have to just do problems from 1 onward. LeetCode offers fun contests and incentives frequently as a reason to solve challenges. I recently participated in the 30 Days of LC challenge, from which I earned 100 LeetCoins (LC currency which can be used to exchange for rewards) and a whole lot of knowledge.
The platform does offer a paid plan, which though pricey ($159 a year) will probably check out if you devote time studying for interviews. Who knows, a job-specific preparation (available with premium) might just pay off in the form of getting a job at a big tech company someday.
Is it the most exciting platform? No, not in my opinion.
Will it equip you with problem-solving skills that will come in clutch in real world applications like tech interviews? Most certainly, and often that's more important than having fun initially. You've got to have the job to enjoy the job.
GeeksForGeeks
If you've read my posts before, you've probably seen that I recommend GeeksForGeeks as one of my favorite platforms - and it's because it literally does everything. Tutorials? Got it. Code examples? Got that too. Interview prep and coding problems? Check and check.
In their Practice portal, you can find many problems that you might find useful, especially if you're looking to prep for DSA. These problems are also grouped into helpful lists that categorize by data structure, company, or experience level suggested.
There's no paid plan in general, but GFG courses are available for purchase at any time. If you get on their email list and wait a bit, you might just get a better deal during a sale incentive they'll occasionally push.
It's not the most complex or in-depth study, and it's not the most exciting platform to learn on, but the resources that are available will make it well worth your time.
Project Euler
While all the other platforms have built-in editors and code checkers that will measure the efficiency and speed of the code you're running, the next two challenge websites have a different take on problems - off-site solutions.
What does that mean? A prompt is given, and it's up to you to find the answer. The only input from you that is required is the answer, not the code. You can write the code however you want to, as long as the answer is correct.
Project Euler is one of these platforms. The problems start pretty easy, but get very hard as you work your way up the list. I like the freedom to come up with the answer on your own, but a feature I find slightly annoying is the fact that every time you get an answer wrong, you have to wait a progressively larger time span before a new submission is accepted.
A unique feature of Project Euler's platform is that its problems are on lockdown. Above problem 100, no solutions are allowed to be shared publicly or else account shutdown is threatened. While you can google the answer to any LeetCode question (granted you won't learn anything by cheating), Project Euler answers are much harder to come by - and perhaps that's why the popularity of this platform is much lower than others.
Project Euler offers a couple less than 900 questions, but this doesn't cut down on the depth of the platform as working through all 900 will take you quite a while.
Everything is free, so no paid plan is offered or required.
Would I recommend it for any use? No. If you're looking to study for a specific interview or preparation track, then use LeetCode or GFG's platform. If you're looking to go on a programming adventure and use your skills of any level, then this and the next option might be good to look into.
Advent of Code
I really enjoy Advent of Code. The platform is laid out really well, and I love the style of the whole thing. The challenges are all Christmas-themed, which is super unique and contributes a lot to the feel of the website.
Canonically, you're supposed to do each problem on the day it's released - December 1st through 25th. In doing so, you'll qualify for a placement on the leaderboard (but good luck beating the cult that surrounds this every December).
In contrast to Project Euler, solutions for each problem are publicly available anywhere from GitHub to private blogs. If you get stuck on a problem, these solutions are always around to push you in the right direction. If you really feel like blazing your own trail and challenging yourself, pick some rare script like Befunge-93.
Coming in too late to solve the problems on the exact days they're issued? Don't worry, each problem is still available for you to solve today.
The use case is the same as that of Project Euler. If you're specifically studying for something, this isn't a great choice. However, I think it's a great way to test your knowledge and problem-solving skills - because it's formatted the way it is, each problem strengthens problem-solving skills instead of specific language skills.
Conclusion
Coding challenges are some of the best ways to boost your problem-solving skills along with other good qualities like language familiarity, coding speed, and optimization.
If you're not doing coding challenges every day, it's definitely a habit you should develop. Pick one of these platforms and give it a go. I promise it's worth your time.
I hope you enjoyed this article! If you want to see more from me, don't forget to drop a like and a follow. Thanks, and see you in the next post! ✏
Top comments (0)