I often run into parents who have kids in middle or high school and would like to introduce their children to programming. Some schools are better than others at offering programming classes, but most fall short. From my experience children who start programming in school end up way ahead of their peers when going into the professional world of software development. This is in addition to all the fun and feeling of personal empowerment that they get along the way.
If you have a son or daughter who has not yet tried programming below is the list of resources that can get you started independently from your school.
1. Basic intro into programming
I have tried multiple options with my own kids and found that code.org is the most engaging resource at the moment. I recommend that you find The Hour of Code event nearby and attend it with you kid to get started. All of this is free and will get your child introduced to programming in a fun way.
2. Beyond the basics
The next step is to get your child plugged into a community that is passionate about teaching kids programming. Writing software has a steep learning curve and it is usually intimidating at the beginning. Seeing other people do cool things is the best way to keep your child motivated.
You can start learning programming in two different ways: by writing code that runs on computers/mobile devices or by writing code that makes real things work. Example of the first are web sites and mobile phone apps, examples of the second are all sort of robots and self-driving cars.
Building apps, games, web sites is easier and cheaper to start with and does not require much beyond a basic laptop. To get into robotics you should be prepared to invest more into hardware kits in addition to the laptop.
From my personal experience teaching kids robotics always gets them engaged faster. There is something magical about writing a few lines of code that make a real life object, such as a toy car, drive around with a mind of its own. If you are on a budget you can start with programming on your laptop and if it does not click with you child then try robotics. I will review both options.
2.1 Programming web, games, mobile
Check to see if there is a CoderDojo in your area. This is a great free programming club that can get your child started in game or web development.
If you don’t have a CoderDojo nearby you can try finding a group on meetup.com. Go to the website and search for “programming” in your area. This will require you to do some legwork and find a group that works.
2.2 Programming robotics
The most popular children’s robotics program is US First. Depending on your child’s age he/she will work with Lego Mindstorms or more serious robotic kits. Neither are cheap: Lego Mindstorms sells for $350, robotic kits in several thousands, though this is split across all team members and usually you find corporate sponsors to offset the cost. Search for a local group on the website or ask your school.
Alternatively you can go with Arduino. This is a great and inexpensive platform that has inspired many of inventors. There are many online resources for Arduino, but it is easier to start with the local community. Search “arduino” on meetup.com to find a club nearby.