4 ms·
Kids(and anyone without the preexisting motivation to try the harder problems of programming, which would include most adults too) will want something with a lo
by chipsy 16y ago
Kids(and anyone without the preexisting motivation to try the harder problems of programming, which would include most adults too) will want something with a lot of immediate responsiveness and simple failure modes. This rules out languages needing "build systems" of any kind, languages that require hooking up a "foobar library" to do anything but console output, and languages with obscure error messages and ample means of shooting oneself in the foot.
HTML/CSS mixed with a little bit of JS is roughly equivalent to learning BASIC these days - you can throw something on the screen quickly, and add bits of functionality from there. Since errors throw exceptions, they're pretty easy to understand, and with the newer HTML features there's tons of room to grow into different domains. Plus there's a zillion resources for JS coding out there.
A good alternative, if the kids in question are not old enough to care about the prestige factor of "real" languages yet(an issue as you get near the teen years), is Scratch: http://scratch.mit.edu/ http://scratch.mit.edu/ It reduces syntax to drag-and-drop while retaining some key concepts that bridge the gap into more powerful languages(conditional branches, named variables, and list manipulation)
- mquander 16y agoI totally agree with Javascript. Consider: - Dynamic language, fairly concise, relatively natural syntax, lets you make simple things with no fuss. - Powerful enough for anything. - Extremely practical for making actual useful things. - Huge amount of examples to look at; unless it's obfuscated, you can just click "view source." - No assembly required -- user is already reading this post in a Javascript interpreter.
- ImFatYoureFat 16y agoI totally agree that html/css with js and maybe even some basic php if they are up for it is the way to go. Sure html and css aren't languages, but couple them with javascript and a complete novice can make quite a few dynamic pages (read programs) in an afternoon. I think one of the most important elements for introducing young children, or really anyone, to programming is providing the ability to build a complete interactive program almost immediately. This can definitely be accomplished with a few html tags and a few lines of js. Alternatively, if you have access to a licenses for it I would recommend initially starting them out in Visual Basic Studio. It strikes me as a good balance between immediate buildableness and a easy environment to learn the basics of loops, strings, if/then, for/do, etc. Maybe a week or two in vbs and then switch them over to js. While I have no qualms with languages like ruby or python, the call for them to be used as introductory languages seem misleading. While you can learn to build a stand alone program in them in a week or less, I get the feeling that a static box program is not going to be that exciting for most 10-12 year olds today (obviously this same problem exists for vbs) My feeling is that to most children computers are two things, the internet and video games. Building your own video games immediately (outside of flash which isn't a terrible suggestion) is somewhat out of reach for most beginners. But building web pages, and pretty interesting ones at that, is very accessible for anyone once they get the syntax down. In truth you have to get relatively far into ruby or python before you can understand how to display a page you've build or get to very much interactivity.
- timinman 16y agoExcept that HTML/CSS/Javascript + text editor + some kind of browser debugger = way more complicated than just typing into the console, typing 'run' and watching success or getting feedback on errors (like we did with Basic). This is why Hackety Hack (see below) is so great. I started learning Ruby with Hackety Hack when _why started the project years ago, then plunged into Rails when I wanted to take what I'd learned online.