Who doesn’t enjoy a good game? It’s no secret that learning and remembering in an entertaining form can boost productivity by making tasks more efficient and enjoyable. Many educators and researchers agree that making learning interesting and interactive gives students a leg up by allowing them free choice in a given learning situation and subsequently making incremental success more rewarding.
This basic principle can be applied to learning new programming languages. Expanding your skill set by learning new forms of code doesn’t have to be boring. In fact, there are many free online resources that make learning enjoyable by teaching new programming languages through user-friendly and incrementally rewarding games. Here’s three examples that I found especially interesting – particularly for the beginning programmer.
Mozilla School of Webcraft
Perhaps the most innovative site I found that employs this learning-through-playing principle is www.p2pu.org. Like the majority of the sites that I discovered, it’s easy to navigate and start using. Although the site acts as a social networking site and an aggregate for many programming related tools, what impressed me the most was its “Mozilla School of Webcraft” feature. Upon signing up for an account, users can embark on different series of challenges. “Webmaking 101” for example, takes users through challenges like writing basic HTML, creating a domain, and selecting a web host. Along the way, users earn badges that can be displayed on the beginner’s profile. The “School of Webcraft” is very beginner friendly and breaks down instructions into the most basic and manageable steps for the new programmer.
What is really neat about this tool is the social aspect of the “School of Webcraft.” After creating a profile (complete with an avatar option and a personal interests section), it is easy to message other learners, comment on different steps in particular challenges, and even follow the progress of other users. This also makes it easy for users to if they are having difficulty understanding a particular instructional step or are struggling to understand a concept.
Another interesting site that allows new learners to play and learn simultaneously is www.tryruby.org. This introductory Ruby learning site is also very easy to use for people with little or no experience coding.
The page is decorated with kites and cute animals, making the newbie programmer feel a bit more at home in a technical space, while explaining the basics of Ruby in step-by-step instructions. Within minutes, even the least technical of people can feel confident in using arrays and variables within Ruby.
Invent with Python
The third site that I found interesting was http://inventwithpython.com. Although this tool is intended to be in print form, there is a link on the homepage to HTML and PDF versions of the book. The site touts the book’s kid-friendliness and according to the site “was written to be understandable by kids as young as 10 to 12 years old, although it is great for anyone of any age who has never programmed before.” It makes sense for an interactive, kid-friendly instructional tool to be game based, and Invent with Python succeeds tremendously.
Although Invent with Python is not directly interactive, it does a great job in holding the interest of the users by teaching them how to build simple games (“Guess the Number” and “Hangman” among others) and how use the program to tell jokes. Along the way, the user will learn how to create flowcharts, debug programs and other useful tools in Python. Invent with Python does a fantastic job at introducing the language to the beginning programmer.
These websites are great places for the amateur programmer to begin their foray into the world of coding. By framing HTML, Ruby and Python in user-friendly and easy-to-grasp scenarios, the creators of these sites and others like them have opened the door to efficient and fun learning that is accessible to nearly everyone.
What educational resources have you used to learn to code or build on your existing coding skills? Leave a comment and share the link with us!