I want to teach kids how to write code. Where do I start?
As part of corporate social responsibility, we as a company would like to give back to the society by teaching kids how to write code and adopting the ones who are really good so that they have the opportunities and resources to continue doing what they love and and what they are good at.
The kids come from backgrounds where they cannot afford to have computers and internet at home.
We are opening out our office on weekends to do this.
What languages do we start with and how do we make it engaging and motivating?
The kids start at age 13 going up to 18.
Personally, I would recommend starting with web fundamentals like server, client ,host, ports, OSI model, yes it takes time but it definitely worthy. how can someone debug code without having knowledge of web fundas?
An easier interface. That's my answer. Tools that do it for them. Much more efficient, much better results. Whoever controls the legalese in that system owns the future. Period.
More inspiration here: http://techcrunch.com/2014/04/12/changing-our-education-system-one-programmer-at-a-time/
If your target customer segment is KIDS. then coding needs to be fun.. one best place to start is http://scratch.mit.edu/
Scratch is a tool for teach programing and algorithms. The kids can make games and so!!!
I recently started watching a course on Lynda.com that speaks to this very question. The video course "Foundations of Programming: Programming for Kids with David Gassner" is a great high-level view of how to get started and the various tools out there for toddlers up through high schoolers.
While the videos early years content isn't aimed at your target you might still find some useful tidbits until you get to the more advanced tools.
You could start by introducing them to LiveCode (www.runrev.com). LiveCode has a small footprint, is a continuation of the hypercard concept but has the main advantage that it is free, can output to multiple systems (Win, OSX, Linux, iOS and Android) and can use or be used in other code.
Don't take my word for it - check the site, check the references and maybe call them as they might support your efforts in various ways.
Plenty of online support and resources - I use it to quickly code some stuff of my own and I am not a programmer. But it is visual and brings fast results (great for showing them lean/agile development as well).
Just begin a project just like you would and explain their function. A project that will benefit them , something they would use like building an application for apple or Microsoft or both. Jane