Learning to Program

For general purpose programming there are a lot of good resources online.

Some programming languages and resources to check out:

Start with Python and Learn Python the Hard Way

Setting things up takes some effort, but it's worth sticking with it. Zed will step you through everything you need to do.

If you get discouraged with setting up Python, download Racket and do the Introduction to Racket with Pictures.

Note: a coworker warns me that Zed's lectures (the author of "the hard way" websites) contain a lot of objectionable language. The website uses nice language, so perhaps the videos do too, but I've never watched them. The written tutorials were plenty for me.

Online resources by category

Python

General purpose language.

I use this one daily at work and for many personal projects.

Found on all major Linux systems. (That includes Raspbian for the Raspberry Pi.)

Can also install/run on windows.

Links

Scratch

Graphical language aimed at kids.

A kid presented on Scratch at OpenWest last year. He had a surprisingly good understanding of programming principles.

Can use online after registering.

Can also download for learning offline.

Links

Racket

Functional Programming language.

For something fun to play around with, check out the Introduction with Pictures.

This probably is the fastest to get started with: their installer is just click and go no matter your system.

C

Procedural language. High level language compared to assembly.

Is what Linux is written in.

Is not C++.

Has a good "Learn C the Hard Way" course http://c.learncodethehardway.org/book/ (Recommended.)

Links

Java

Object Oriented Programming language.

Is not JavaScript.

Oracle has tutorials to walk you through the language.

The eclipse editor is a popular editor for Java.

Watch MIT Introduction to Programming with Java if you prefer lectures to reading.

links

JavaScript

Is not Java. JavaScript is also known as ECMAScript. Unlike C, which changes maybe every ten years, JavaScript is changing almost yearly.

Runs in web browsers, on web servers, and is easy to learn. (Learning to use it well requires more time.)

Go to javascript.com to get a taste.

Mozilla has a good reference for the JavaScript language, including the changes in the ECMAScript standard. Since ECMAScript is another name for JavaScript "changes in the ECMAScript standard" is another way to say "changes in JavaScript."

Since every browser runs javascript, you can open the developer tools and play around with JavaScript in Firefox, Chrome, or Windows Explorer. (I'm not sure about Safari or Opera.)

In Firefox, hit Control-Shift-I to open the developer tools.

In Chrome, hit Control-Shift-J to open the developer tools.

In Windows Explorer, hit F12.

In each all of those browsers one can also look for Tools or Developer Tools in the menus.

For questions