Teaching development to kids
I'm passionate about programming, and since I also love to teach, I've tried to bring this excitement to kids. I started coding in the fifth grade and that was before people were commonly using computers on a daily basis in the home. Now my kids (12 and 15) are quite adept at using computers for word processing and web browsing, but there is such a more mature ecosystem for software that programming apparently doesn't have quite the same appeal! As a kid, I didn't have access to local user groups or phone BBS's, let alone online forums and other resources. I bought books sometimes and subscribed to magazines that included software listings (Compute's Gazette, Enter). Beyond that it was just my own trial and error.
My younger son enjoys programming in the context of LEGO Mindstorms and MIT's Scratch, but not much general-purpose coding. My older son has shown a real interest in web development, and is digging into HTML, CSS, Javascript, and probably server-side code soon. I taught programming and robotics using Mindstorms NXT for a few years in Iowa and I was really excited to see that there were still kids looking to program even at the elementary level.
If you have kids who are looking to get started you could just download Visual Web Developer Express or Visual Basic Express, but there are a few environments more specific to learning coding skills:
- MIT Scratch: Drag and drop event-based programming with parallel, conditional, looping structures
- Carnegie Mellon Alice: Object-oriented, 3D environment
- Microsoft Small Basic: Procedural BASIC environment with super-slick Intellisense. Compiles to Silverlight with no Silverlight experience needed.
Fun stuff to start with is photo effects. Small Basic makes it really easy to grab photos from Flickr and do things with them. If your child wants to build games, Scratch is an excellent starting point, with Alice being a good choice for moderately advanced users. All of these (and probably more out there) do a great job of teaching the basics of programming along with enabling their specific niche. Once they learn these fundamentals, they'll be able to move onto more advanced languages and framework and move away from some of the abstractions. You can't force it though. Programming is definitely a different way of thinking through problems, and not everyone is interested in it.
I tried to cover the biggest free products, but let me know if I've missed any.
2 Comments
Ricardo Jimenez said
Great blog Arian! I just wanted to point out the MSDN Development Corner for Kids, and some other resources like C# for Sharp Kids. Check it out:<br /><br /><a rel="nofollow external" href="http://msdn.microsoft.com/en-us/beginner/bb308756.aspx" title="http://msdn.microsoft.com/en-us/beginner/bb308756.aspx">msdn.microsoft.com/en-us/beginner/bb308756.aspx</a>
Arian Kulp said
Grácias Ricardo! Actually, I wrote a lot of the material on the MSDN Kid's Corner site. I should have remembered to include the link!