Python is a great first language and there are plenty of free online resources if you search around. One of the cool thing about most modern languages including Python is the number of libraries available publicly.

This gets your kid used to reading man pages and teaching themselves to help themselves.

It is also object orientated from the get go and this is a useful paradigm to internalize from the outset.

It is also hard to beat C as a programming language but I would do it after they have found their 'sea legs' with programming.

If you already have a monitor/keyboard/mouse OR can get them cheaply then a Raspberry Pi is a cheap (but fully functional) entry point to a child having their first Linux based machine.

I can recommend the AoPS beginner's Python class too as our DD took to it like a duck to water once she got over the fact that learning by making mistakes/tinkering is how a lot of stuff gets developed in the real world LOL

Programming helped her with her perfectionistic tendencies for certain.

Once the principles of algorithms, conditional statements and flow of control are mastered the next step is to look into efficiency which really needs at least mastery of exponents and logarithms to fully appreciate, IMO.

Another useful branching out would be getting into microcontroller boards like Arduino to code 'sketches' which can control devices and log data.

I wish that I were a kid again right now :-)

Last edited by madeinuk; 03/14/17 07:17 AM.

Become what you are