What is a coding challenge? A coding challenge strives to test ones ability to be able to solve a problem using a defined set of criteria. Often times, coding challenges that you will find online are used as interview questions, such as Fizz-Buzz.
Why Do Challenges
I periodically do coding challenges. The reason that I do challenges is to test my knowledge of the programming language and expose myself to different aspects of the language.
For instance, I primarily build web applications using .NET Core MVC. Most of the coding challenges that I do, consists of working with console applications. While both of these use the same programming language, they are very different in their architecture. In my blog post about getting a tech job without experience, I mentioned that you will get better and more opportunities if you are specialist instead of being a jack of all trades. Thus why I do all of the challenges presented in C# instead of Python or other languages that others insist that they should be done in.
For those of you that struggle to come up with ideas to do for a coding challenge, then look online. Websites like Upwork have requests and job submitted where freelancers are paid to various projects. Often times these project listings have the basics for what it is needed and some unknowns. As for the unknowns, answer or make them up as you go. After all you are doing this for practice and not getting paid, so having an imagination will not cost you.
You can take a homework assignment that someone had for their class and turn that into a coding challenge. Many times, programming courses have their assignments and other materials online hosted by a college or university's website. If you can find one of those websites, then do the work listed there.
Refactor Code To Another Language
One way that you can better your skills in a certain programming language, is to refactor code in another programming language into the language of your choosing. If someone is doing a challenge in Python and you are learning Java, then do that same challenge in Java. By doing this, the following will happen:
- expand your knowledge on the language that you are working in
- learn another programming language
- the differences between programming languages
All of the above will make you a better programmer and expand your knowledge at the same time.
Submit A Challenge
I take challenge ideas. If you have an idea for a challenge, you can file an issue on my coding challenge repository and I will look into completing it. If the challenge is interesting enough, I may even post me working on the challenge on my YouTube Channel.
You can find all of the coding challenges that I have completed in my coding challenge repo.