Coding Dojo: Algorithm Platform

(Previous: jQuery and JavaScript: Treehouse)

algorithm platform

After a few rounds of tutorials on Treehouse, Codecademy, or your favorite online learning center of choice, it’s not hard to master the basic building blocks of coding–variables, for-loops, while-loops, functions, arrays, objects, etc. But putting them all together in a real-life situation isn’t always as straightforward as working through the carefully constructed examples in the tutorials.

This is why I think Coding Dojo’s Algorithm Platform is really useful for beginning programmers. The Algorithm platform is a tool for beginners to get practice with algorithms–the patterns that software developers use to create more complex code solutions. In particular, the Algorithm Platform is good for helping beginners figure out how to work with arrays using for-loops.

The Algorithm Platform starts off with simple challenges, and builds on those challenges to create more and more complex challenges as the user progresses. Each challenge is timed, so you can see how well you did, and so competitive types can try to beat their own time once they’ve figured out all the challenges. And each challenge also has a video showing how to work through the solution.

The first eleven levels, each with 5-18 problems, are “Predict the output of the following code” problems. While they aren’t anywhere near the level that programmers will encounter in interviewing whiteboard challenges, they are a good, foundational start, and will help learners start to think about how code runs in a more systematic way where they can track what is happening at each stage of the process.

(A good companion resource for these challenges is Python Tutor, where you can type in code in JavaScript, Ruby, Python, etc., and walk through it step by step with the variables automatically tracked and displayed for you).

Once learners finish the first eleven levels on the Algorithm Platform, there are thirteen additional challenges. Unlike the earlier levels, these are all coding challenges; the learner has to solve problems like writing a function to fill an array with all of the odd numbers between 1 and 250, writing a function to find the maximum, minimum, and average in an unknown array, writing a function to swap two numbers in an array. These challenges also have walk-through videos, and are timed. And again, while these are easier than interviewing challenges, they are the building blocks that many of those challenges are based on, and learning to solve them (quickly!) is a necessary part of building up your software development toolbox.

The Algorithm Platform finishes up with an eight question assessment reviewing any and all of the previous lessons and challenges. At least one of the questions is usually a tricky double-for-loop predict the output problem, and one is a coding challenge, so getting 8/8 the first time is tricky! But of course, you can keep trying as many times as you want.

While the problems in the Algorithm Platform are a little less relational and a little more algebra-based than the types of problems on Treehouse and Codecademy, I think they’re a necessary step in learning to understand some of the more abstract ways that code can function, and in getting lots of practice in solving coding challenges quickly. When I started these problems, I was a little shaky on accessing and manipulating specific variables in arrays with for-loops (especially double for-loops!), but after all that practice, I now feel that this is one of my strengths.

Thanks for the great tool, Coding Dojo!



(Next: Full Stack JavaScript: What is a Full Stack? And Why is it MEAN?)


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s