The University of Massachusetts Amherst
Categories
Software

You Should Learn How To Program

Whether you are a power user or only use a computer to check your email, you should learn the basics of programming a computer. This skill will not only help you understand what goes into making an application, but you may also find that you enjoy the technical problem solving that is required in programming. Computers and programming are becoming more and more pervasive in every day life, and have changed the workflow of many careers. Instead of giving you a lesson I want to provide you with multiple resources that both me, and students whom I taught how to program, have found useful.

Learning Resources

The Hour of Code

The Hour of Code was created by Code.org, a charity designed to expand computer science outreach. The Hour of Code was created to encourage everyone to learn and experience the thought process that goes into programming. As a simple introduction, this program will teach you the basics of a block based programming language that was inspired by MIT’s Scratch.

Codeacademy

Codeacademy specializes in teaching its students with actual programming languages such as JavaScript and Ruby. Unlike reading a guide or a book, Codeacademy steps it users through each assignment with automatic feedback to help guide learning.

Classes

There are also online classes on Coursera and EdX which will teach you various aspects of programming. Here at UMass Amherst you could alternatively take either CMPSCI 119 or 121 as an introductory course for programming.

Games

Code Combat

Intended for pre-college audiences, Code Combat is a puzzle game where you control a character around a game world. The game gives you the option of programming in Python or Javascript programming languages gradually teaching the user the basics of programming as new obstacles face your character.

Light Bot

Less childish then Code Combat,  Light Bot is a simple game where you control a robot to light up squares around. Light bot is more about solving a logic puzzle then teaching you how to program however these puzzles are designed around Core Concepts needed to program such as recursion (which Light Bot explains elegantly) and Debugging.

Steam Games

Along with those two free games their are also a couple paid steam games that involve or aim to teach programming listed below:

  • Hack N’ Slash – A Zelda inspired game created by Double Fine Productions where you can change attributes of certain objects in the game world to solve puzzles.
  • Else Heart.Break() – An Adventure game where you are tasked to program a solution to solve the games puzzles.
  • Human Resource Machine – A puzzle game that uses code blocks to build code that starts with simple programs  and gradually gets harder as new concepts are introduced.

Game Engines

Others find the best way to start programming is through gaming whether you mod an existing game or create your own. There are many game engines that allow new-comers to learn, while still being powerful enough to be used to create a commercial product.

  • Unity – A 3D Game engine created by Microsoft. Click here for a more in depth article from another blog on this site.
  • Gamemaker – Gamemaker is a mix between program either using scripts or a drag and drop interface, making it intuitive to newcomers.  Indie games such as Risk of Rain, and Hyper Light Drifter were made using Gamemaker.

Conclusion

I will conclude this article with two tips when programming. First, as with most problems in life, use google (or any other search engine) if you are having trouble with a concept. Secondly, programming doesn’t have to be a singular experience. Joining a team and working together can be often times be the most enjoyable moments you can experience while programming. There are also programming competitions, referred to as Hackathons, that encourage programmers to work with and meet new people to create a product. We have an article for about our schools hackathon, HackUMass here.