Learning to code is easier than ever

I wish we had access to the programming learning tools that are coming out these days back when I was in high school. All we got into was a bit of HTML, some and some MS Access-type database creation.

I’ve made a list of tools that would be great for teaching programming. These tools have a very visual focus, so they won’t be as daunting as purely writing code. It can take a while to get to the stage of producing cool visuals with pure Java, and some libraries. These tools are often integrated development environments with a very visual interface. Most are based off Java.

I’ve linked each to their respective websites:

Code.org

code.org

Anybody showing initial interest in learning how to code, I point them to Code.org. It’s backed by the big boys like Bill Gates.

Kahn Academy

I have spent some time going through the material here.

khanacademy.org

Scratch

scratch.mit.edu

A highly visual interactive media creator. Creations can be posted to the scratch website.

Alice

alice.org

Program objects and characters in a 3d world using a visual drag-and-drop programming interface.

Greenfoot

greenfoot.org

Learning the basics of object orientated programming using scenarios. The default scenario is a grid which contains beavers, leaves or rocks. The beavers move foward and turn whenever they hit a rock or a wall, and eat a leaf when they are on it. This behaviour can all be modified.

BlueJ

bluej.org

Made by the same crowd as Greenfoot, BlueJ was the tool I was introduced to programming with at university.

Processing

processing.org

Processing is not so much a learning language, but it is very visual. Essentially just cut-back Java with a visual output window.

Computer Science Unplugged

csunplugged.org

Worth mentioning also is this material that teaches programming without using computers. There is a list of school age activities that can be used to teach fundamental comptuer programming concepts.

Much more

There is a weath of resource out there now, such that all you need is time, and a point in the right direction. Start coding!