+ - How to teach a 12 year-old to program? 9
Submitted
by
thelordx
thelordx writes "I've got a much younger brother who I'd like to teach how to program. When I was younger, you'd often start off with something like BASIC or Apple BASIC, maybe move on to Pascal, and eventually get to C and Java. Is something like Pascal still a dominant teaching language? I'd love to get low-level with him, and I firmly believe that C is the best language to eventually learn, but I'm not sure how to get him there. Can anyone recommend a language I can start to teach him that is simple enough to learn quickly, but powerful enough to do interesting things and lead him down a path towards C/C++?"
Start with a non-language... (Score:1)
Start with the Lego Mindstorms kit - it allows them to program visually, so they can understand things like looping without worrying about the syntax so much.
Then, if he's running on Windows, move to Visual Basic - it's a goofy language, but it's also easy to make Windows programs, which is what he'll probably want to do. (For that matter, do they still make Delphi?)
Re: (Score:1)
personally, i'd recommend against Visual Basic as a language to learn the fundamentals of programming. it seems more about building windows than programming. one of my CS college classes used it, and IMHO i learned nothing to add to what i learned from taking Basic or Pascal years before in highschool, and i was way more high in highschool....
Perl or Python (Score:1)
Pascal then Ada (Score:2)
Web programming - interesting, low entry barrier (Score:1)
I think you have to show the kid why programming is useful and web programming is easy to pick up and immediately useful to him. If kids don't see how it is useful or fun then they will never be interested. He can show his friends the things he has made by having an account on a free or extremely cheap web host.
HTML can have him making a website within an hour, CSS can help him improve it in the next hour. Basic Javascript can get him going on some of the "cool stuff" and then throwing PHP into the mix ca
gnuplot and generally graphs (Score:1)
teach him to use gnuplot http://www.gnuplot.info/ [gnuplot.info]
also teach him to use c++ directly. you can easily write a small source file for him, and a "compile_run.sh" that will avoid a direct explanation of compiling and linking. that small source file can contain a simple code that generates something gnuplot can interpret as a fractal or some other nice picture.
there's also paraview http://paraview.org/ [paraview.org] and/or blender http://www.blender.org/ [blender.org] .
anyway... you don't learn programming unless you use it. and being able
In 5 words: (Score:2)
Ruby (Score:1)
I highly recommend getting him a copy of Chris Pine's "Learn to Program" and having him start out with Ruby.
Learning with a modern object-oriented language has the enormous benefit of allowing one to focus on flow and structure, without the clutter of underlying mechanics like pointers and memory allocation. Those things are easy to learn in isolation. Learning both how to think in software _and_ how your approach is supported at a low level, at the same time, is a burden that hasn't been necessary for ove