Enter the Programming Dragon
Love to Code?
Who doesn’t!?
Do you want to further your programming skills but feel like you don’t have enough time? Or maybe you just want to brush up on the basics? Practice re-factoring your code in the most elegant form possible?
Tell me more…
Practice Makes Perfect
Practice problems are one of the most effective ways to better your ability to write functions, as well as visualize code and its execution. There are a few great web sites out there that allow you to practice coding on single, modular problems. This allows you to practice writing complex functions to solve high level problems, without having to write your own test cases or HTML. These problems will cause you to use all of your programming kung fu to take them down. Another great benefit is practice using Test Driven Development (TDD).
Test Drive What?
Skip this section if you like bugs hiding in your code
Test Driven Development is crucial to being an effective programmer. Writing tests for your code allow you bend and manipulate your code in different ways to ensure stability, even in extreme cases. This kind of meticulous and effective programming will lead to less bugs and more time for you to code. Major companies use TDD to ensure that their programs will run in various user environments with a similar user experience.
The problems on these websites will vary in difficulty, so I encourage you to try each one to see which one is right for you. Each website has something different to offer and people choose might one over another for various reasons. The websites included support Javascript, as well as many other popular programming languages.
I am in no way affiliated with any of the following websites; I just have fun on them.
Codewars
Codewars is a community driven code challenge website designed for all skill levels. Codewars has tests for anything from logging “Hello World!” to the console to writing your own interpreter to run code. They take a karate style approach, employing “kyu” ranks to earn as you gain more honor. Honor is gained by completing challenges, writing your own kata, and being an active member of the website’s community. It’s quick to get started and they have a wide range of problems to choose from.
Leetcode
Leetcode Online Judge, or Leetcode OJ for short, is designed specifically towards technical interviews. The problems submitted are real life interview questions. Leetcode offers about 400 problems to be solved in your preferred language. Furthermore, the companies submitting these questions are some of the biggest names in the industry including Facebook, Twitter, Google, Uber, and Microsoft. Leetcode hosts a weekly contest that ranks competitors against their rivals globally, with prizes for the top three.
Codefights
Codefights offers a slightly different approach to practice problems. In addition to hundreds of practice problems that are archived on the site, there are constant “active” challenges refreshing to ensure new content is delivered regularly. Top companies such as Uber, GoDaddy, Quora, and Dropbox, to name a few, also have code bots on Codefights. This enables you to go against both company bots and their own practice bots in head to head coding challenges. The challenges are timed and scored, and managed by the Codefights team and the companies that created them.
Coderbyte
Coderbyte compiles their coding challenges into courses tailored towards a specific goal. Some of the offerings at Coderbyte include Coding Bootcamp Prep and Job Interview Prep. Coderbtye also offers internal and external resources to teach concepts like variables, conditionals, functions, and loops in Javascript. Another quirk of Coderbyte is their mobile coding quizzes, accessible via mobile device.
Summary
These are all of the coding challenge websites that I’ve been able to practice on in my own time. There are many more websites and resources available to continue practicing, I couldn’t possibly list them all in one blog post. I hope you enjoyed taking some time to read about TDD (can you remember what that stands for?), practice problems, and how they are useful to you. If you enjoyed reading, check out some of my other posts, or shoot me an email if you have any feedback! Happy coding, and remember PRACTICE MAKES PERFECT!! ⤧ Next post Recursive Functions