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://www.amazon.com/gp/product/1593274076/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1593274076&linkCode=as2&tag=boiboi0b-20

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://www.arduino.cc/

http://arduino.cc/en/Tutorial/HomePage

 

Raspberry Pi

http://www.raspberrypi.org/

http://www.raspberrypi-tutorials.co.uk/

 

Examples

http://www.java2s.com/

http://www.w3schools.com/

 

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).

Leave a comment