Why Coding Challenges will 10X your Programming Abilities
And make all your future coding endeavours easier
I don't think anyone will be surprised if I say that the best way to get better at coding is to code. As self referential as that statement is, practicing coding can be broken down into a few components:
- Reading material, watching videos
- Learning the basics of a language
- Coding Challenges
- Building programs
In this article, I'll be focusing on number 3 and why I believe it can 10X your coding abilities
Bite-sized programs make it easier to focus your learning
During the learning process, programming can seem like an endless ocean - with its various rules, syntax and methods - and in some respect, it is. It sometimes feels like learning one thing snowballs into larger concepts that need to put on the list to learn.
Coding challenges allow you to focus on one concept at a time. If your code doesn't work, it's fairly easy to understand why you went wrong (your function is not sorting an array properly for example). Once you hit that wall, you can spend your time focusing on the different ways those problems are solved -- and this is what allows you to learn so quickly.
Having small programs with a single focal point helps you streamline your learning by showing you the areas you need improvement
It doesn't take much time to solve a problem
My schedule these days is to solve at least one problem after breakfast. If it's something I know how to do, it takes me a minute or two to code, and if it's something that requires a little more attention, probably around 15 minutes. Either way, tackling a new practice problem everyday has led to significant improvements in my retention of core concepts
Even though the time commitment is small, consistent daily effort can lead to significant improvements in your problem solving skills
Peer learning is a powerful tool
Your brain thinks in a way that's different than other people. I know that when I started coding, my solution to everything was immediately writing a for loop. Although this solved some of my problems, after looking at the code of others who solved the same problem, I realized that there are more elegant and simple ways to get to the same solutions.
Looking at the code of other programmers can show you ways of approaching problems that you never considered before. Many times, I'm left in awe of how simple a solution was when previously, I had coded a monstrosity to solve the problem. I can tell you that I've picked up a few tips and tricks along the way that have greatly reduced the amount of code I've needed to write
Exposing yourself to different ways of problem solving can expand your mind to possibilities you wouldn't have seen yourself
Small wins motivate you to keep going
Since these challenges are small, it's easy to build a repertoire of problems you've successfully completed. Knowing that you're able to solve problems helps you to move on to more difficult challenges with confidence
All your wins compound on each other and boost your confidence
All this being said, coding problems don't replace coding projects. They're more a super-powered supplement for you coding journey. My advice would be to do at least one coding problem a day and then move on to bigger coding projects. Over time you'll see that the skills you gained from your challenges will greatly help in coding your projects. Happy Coding!
If you want to get started on some coding challenges, I recommend codewars.com. Set up your account, pick your language, and start with the 8kyu problems as they're the easiest. Work your way up as you get better at solving problems.