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
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.
Scratch
A highly visual interactive media creator. Creations can be posted to the scratch website.
Alice
Program objects and characters in a 3d world using a visual drag-and-drop programming interface.
Greenfoot
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
Made by the same crowd as Greenfoot, BlueJ was the tool I was introduced to programming with at university.
Processing
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
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!