As the ability to code grows as an essential skill in the workplace, more and more resources offering to guide you through the learning process continue to flourish. Sites like CodingBat let users take a swing at writing for Java and Python, two of the most commonly-used programming languages at the present moment.
Using a scaled-down interface that consists of detailed lessons followed by example problems for users to solve, this free program addresses different elements of coding (such as logic, string, list, etc) and allows the learners to try multiple examples within each category. In this way, students are able to become acquainted with the syntax behind each of these categories.
Indeed, it is truly the golden age of the autodidact. However, is everything that glitters in this age gold? We tested CodingBat, and invite you to read ahead to find out whether it struck out or scored a home run!
Ease of Use
Ultimately, the most important criteria for evaluating instructional software is how easily does it transmit the concept. After all, regardless of how much information a piece of software contains, if it remains trapped behind the opacity of its delivery then it's useless to the learner.
In this respect, CodingBat could use some tweaking. While it's interface is extremely straight-forward and simple, this simplicity is a double-edged sword: Users will find that lessons consist of information written on a page, followed by practice problems to reinforce the concept being taught.
The minimalist nature of the lesson plans leaves students with little, if any, recourse in the event that they don't understand, and a quick search for CodingBat on YouTube yields a chorus of videos explaining the lessons to lost participants.
Additionally, the course tends to give out rather large doses of information before providing practice problems across which to apply the knowledge gained. The result is that solving the exercises might be frustrating for those without prior coding experience as they clumsily stitch together various concepts learned just minutes before.
However, for those with coding experience, CodingBat is a clear and concise avenue to familiarizing oneself with the syntax of a new language. While novices might bemoan the lack of theoretical emphasis in the lessons, veteran programmers will relish the ability to go off to the races with syntactical practice.
While this is not to say that a complete beginner could not use CodingBat to learn, it does not offer comprehensive explanations the way many newcomers would prefer and is more of a gym than a personal trainer.
Delivery of Lessons
Lessons on CodingBat are broken up into different categories, with multiple examples reinforcing their understanding of the principles of each category. I
n the same way that students learning English might learn about verbs, nouns, gerunds, past participles, and prepositional phrases as they dissect its anatomy, students on CodingBat will learn about the essential components of their respective coding language and will be given practice exercises that employ the principle being taught.
CodingBat's founder, Nick Parlante, believes that short, practical, live coding problems that build-up the rudiments necessary for more involved tasks are the key to programming dexterity.
His philosophy is that all coding is an amalgam of many basic elements that come together to form a more complicated function, much like how many different molecules are made of the same atoms with their proportions in different arrangements. Consequently, the web course he has designed focuses on drilling and repetition of foundational material.
Some might argue that the stripped-down nature of the text editor, which furnishes no context-assistance, can lead to students making mistakes for which they struggle to find the source. Others might rally for the bare-bones set-up, complimenting the way that it removes the crutch that many beginners rely on, and forces the development of positive habits right of the, well, bat.
Upon completion of the problems, students are given instant feedback letting them know whether or not the puzzle was successfully solved. Again, while the webpage offers seasoned programmers overviews that explain why answers are as they are in its “Help” section, these explanations are well beyond the pay-grade of the average beginner and will be of little use to them.
CodingBat's founder explains on the site's “About” page that the reason why the “Help” section seems particularly under-developed is because CodingBat is not meant to be a full-on instructional course, but rather, a supplement to a course already being undertaken.
As a professor at Stanford University, it is easy to guess from where his bias for learning occurring primarily in a classroom setting comes. Nevertheless, the “Help” section does have a wealth of information that, properly contextualized, can shine a light on some of the more challenging hurdles along the way to learning a new language.
The greatest limitation CodingBat has is that it only covers two languages. Though being a one-trick pony is far from desirable, a two-trick one is not a significant improvement. Since this webpage appears to be a labour of love by a very passionate professor, it's unlikely that he has the team nor the time to expand the offerings of CodingBat in the near future.
Its other pitfall is that in contrast with other sites it simply looks old fashioned. Though it might appear that a comment on aesthetics is superficial, the fact-of-the-matter is that we've grown used to modern interfaces, and a departure from those can make a site cumbersome to use.
CodingBat: Is the Juice Worth the Squeeze?
Despite its limitations, CodingBat is an elegant solution for what it strives to be: A straight-forward, no-frills way for students to improve their knowledge of the basics required to code effectively in Python or Java. While it is not a replacement for a class or a course, it helps ensure that the skills taught in either one glow brightly and take root.
Simply stated, CodingBat is not a meal, it's a vitamin supplement that prevents you from becoming malnourished. Give it a try, and watch how the basics of a new language become second nature!