Learn to program

Approaches to learning to program

Before you start to learn to code, you need a reason! That could be because you are studying it at school, you have a family member who works in the industry or you are simply interested. The normal route for learning to program runs through ...
  • STATIC programming environments like ScratchCode StudioLightBot, Hour of Code and Robozzle where challenges are set and completed using a limited instruction set;

  • CONTROLLED programming environments like CodeCombat where the development is more open ended but still takes place in a controlled environment like a game;

  • OPEN programming environments like Coderbyte where open challenges are set to be solved in a variety of different ways in different languages (but in this case requires a paid subscription);

  • TRADITIONAL desktop programming environments like PythonJava and C++ where all you get is an Integrated Development Environment and a book. Challenges come later.
I'd suggest that you start with a static programming environment. Indeed, you might have already used one in school to help you learn to code without having to worry about typing instructions. I'll assume that you have had a play with Scratch and that you've tried some of the Code Studio courses (like the Hour of Code) before we carry on.

Learn to program with ScratchLearn to program with Turtle GraphicsLearn to program with Kodu Game LabLearn to program with SmallbasicLearn to program with Python

At some point, if you are serious about programming, you will have to learn a text based languages like Python. Block based languages are OK if a) the designer provided the blocks you need and b) you aren't trying to get the language to do something it's not designed to do. As Brian Kernighan once said ...

Brian Kernighan wrote one of the first popular programming books
'The C Programming Language' which contained the first reference
to 'Hello World', reportedly from a cartoon of a chick emerging from
an egg saying 'Hello World!'. Original image of giraffe from here.

Other cool platforms

Hardware Platforms

The Raspberry Pi is a Single Board Computer which costs between £30 and £40 which you can use either to learn to code or to develop your electronics skills.

The BBC Micro:bit is a super cool little device which could help you get into coding. I've collected together some resources and projects to help you get started.