Don’t know but likely should (I’ve edited this a bit from its original post)
Some more coding info passed along from a friend…I need some sleep
Some of the major languages are:
Java
C/C++
C#
Python
Ruby
Some of the major front-end (client-side) web languages* are:
Javascript (no relation to Java)
HTML
CSS
*Note, html and css are generally not considered languages but are useful to know all the same.
Some of the major back-end (server-side) web languages are:
Java
PHP
Python
Ruby
SQL (for databases)
Some of the major web frameworks are (and there are way too many to list):
Struts
Spring
JQuery
Dojo
CakePHP
Ruby on Rails
(the list goes on…..)
A lot of the above can be rather complex and frustrating for someone in the software industry let alone someone new to programming. To combat this it is best to start with a single language and learn not only the language syntax but general programming concepts. Just learning a language enables one to write code that functions correctly, but learning concepts enables one to design and engineer.
Concepts such as type-safety, flow of control, parallelism, object-oriented design, and encapsulation are all invaluable. What’s even cooler is these concepts tend to be similar across most programming languages so once they are mastered in one language other languages tend to seem less intimidating. Any book that focuses on teaching a particular language will usually provide some chapters on basic concepts but whole books have been written on the subject.
Note, there is no one best programming language or framework – they are all tools that fit a need – but that doesn’t stop developers from having their favorites. For some one starting out the best language is one that is syntax-friendly and provides quick visual results so motivation stays high. Because of this the Javascript/HTML/CSS trio is a fairly common introduction to programming as are Python
(http://www.python.org/) and Java
(http://www.oracle.com/technetwork/java/javase/downloads/index.html) – the latter of which is more advanced. Also kits like Lego MindStorm, Arduino and Rasberry Pi are awesome for experiencing the joy of writing software that tangibly controls a piece of hardware.
Programming for the android platform (cellphones and tablets) can also provide visual results with relatively low time spent depending on what the software is expected to do. Android has the advantage of being ubiquitous.
Below are some resources that have kid-friendly programming in mind or are just plain good.
http://blogs.kqed.org/mindshift/2011/05/5-tools-to-introduce-programming-to-kids/
http://mindstorms.lego.com/en-us/Default.aspx
Android
http://developer.android.com/training/index.html
http://developer.android.com/sdk/index.html
Arduino
http://arduino.cc/en/Tutorial/HomePage
Raspberry Pi
http://www.raspberrypi-tutorials.co.uk/
Examples
Videos that help children learn programming seem to be scarce on YouTube, but Stanford was nice enough to release their introductory courses on programming (they use Java – http://www.youtube.com/view_play_list?p=84A56BC7F4A1F852). Just in general Khan Academy (http://www.khanacademy.org) is a pretty good resource for math and they happen to have a few videos on programming (https://www.khanacademy.org/cs/tutorials/programming-basics).