3 ms·
Well, if you want to get a kid hooked on programming, or at least grab his/her attention quickly, you should also keep the coolness factor in mind: how easy is
by mfukar 16y ago
Well, if you want to get a kid hooked on programming, or at least grab his/her attention quickly, you should also keep the coolness factor in mind: how easy is to create something impressive and how you can promote some algorithmic and/or analytic thinking with it. With that considered, I'd suggest:
- Python or Ruby: Their syntax is intuitive (don't mention significant whitespace though ;), they have lots of libraries to quickly deal with graphics, games or the web, they're well documented without idioms that would be encountered early on and could confuse a kid.
- BASIC. I started out with it on an Amstrad CPC when I was 6 or 7. Interpreted, interactive procedural languages just feel natural to kids that age. I also learned that GOTO isn't necessarily bad (really, it isn't), and I also understood why functions are better than GOTO at a glance (spaghetti code didn't look neat or cool).
- If he/she's playing a game with a scripting language involved (like WoW with Lua scripts), try going that way. Most such languages are pretty simple, user friendly, plus results are directly visible. Exciting!
- Lego Mindstorms. One word: awesome. No, two: perfect.
- C is a little advanced, but if (s)he's interested in the inner working of a PC or a high-level data structure, it's probably one of the best ways to get down to it. Not recommended for absolute starters.
Basically, avoid high levels of abstraction and abstract concepts. A kid under 12 will probably have a hard time contemplating functional languages (although learning recursion at that age is a must). Also, if you're considering shell languages, I'd recommend Windows Powershell over bash/tcsh/etc. at least for a starter.