Sign in to follow this  
Lutz

Programming for kids - what to start with?

Recommended Posts

Hey! My little nephew is 12 and he wants to start game programming. So I bought him a book called "C++ Programming for Kids". But after thinking about it for a while, I don't think it was a good idea. You learn things like opening message boxes under windows, but not real "programming" like defining your variables and doing stuff with them. It's more like memorizing windows commands. I've heard of DarkBasic. Do you think this would be a good idea? Do you know - by any chance - if there's a German version of it? Do you know good books about it? What's your opinion? What should kids learn first if they want to do their own games?

Share this post


Link to post
Share on other sites
C++ can be a bit boring to start with. So it can be a good idea to start with somethig like DarkBasic or gamemaker at the same time as learning c++. Then he can learn programming and at the same time learn how to build a game.

Share this post


Link to post
Share on other sites
This sounds familiar. Personally I started with basic at the age of 12. I also used one of those enhanced basic versions which allowed you to do all sorts of graphic stuff without too much trouble.

In retrospective I believe starting out with basic isn't all that great. Without proper guidance, basic can make you learn very bad styles of programming ("top-down programming"). When I was in that age, I had a lot of patience and eagerness to learn. Neverthless I did not learn anything close to proper programming until I had switched to C. However, C is also not an ideal language to start with, due to the steep learning curve and the relentless memory/address errors. In C or C++, you have a lot to learn until you are able to "do graphics" properly.

If I had a son in that age today, I would probably advise him to learn something like java or C#. Those languages are - in my opinion - easier to learn, programming graphics is "fairly" simple, and the runtimes are much more friendly in regard to errors. On top of that these languages feature a C-like syntax (which is used in so many ways today), and they encourage good programming styles and OO concepts.

Share this post


Link to post
Share on other sites
Quote:
Original post by beefsteak
If I had a son in that age today, I would probably advise him to learn something like java or C#. Those languages are - in my opinion - easier to learn, programming graphics is "fairly" simple, and the runtimes are much more friendly in regard to errors.


Or even VB.NET these days is pretty powerful and can be used with OpenGL (TAO) or Managed DirectX.

Share this post


Link to post
Share on other sites
ever played zzt? i dont know if its still going but that was a great little programing game. http://www.autofish.net/zzt/zutil.html seems to have some downloads but there used to be loads of pages with maps and things so there probably still around somewhere.

Share this post


Link to post
Share on other sites
at that age, any BASIC variant. especially blitzbasic or darkbasic, seeing that those are geared towards graphics/game programming.

if you are a programmer yourself, then you'll be able to keep him from learning too many bad programming habits.

once he gets to High School though, you may want to put him on a High Level Language such as C++, Java, C#, or XML [grin]

Share this post


Link to post
Share on other sites
Quote:
Original post by Zahlman
from advocacy import advocate_Python

Petewood: Good idea, the kid can learn Python and German at the same time! :D

Umm... seeing as Lutz's from line is listed as "Bremen, Germany" and he specifically request German verions, I think it's somewhat likely that the nephew already might speak some German.

In any case, you might want to consider Logo. Once nice thing is that you get immediate visual feedback on almost everything which often helps in the learning process. Then once he's familiar with programming in general, move to more advanced languages.

Share this post


Link to post
Share on other sites
there are also:
The 3D Gamemaker
Blitz Basic
i dont know if it is a good book, but it is an official one for DarkBasic Pro.
Beginner's Guide to DarkBASIC Game Programming
i think your child should start with a game maker program and not a language, but that doesn't mean he wouldn't like to program (Python?). so it wouldn't be a bad idea to give it a try.

Share this post


Link to post
Share on other sites
Thanks guys for all your answers. It'll take me some time to screen all your suggestions.

Quote:
Original post by SiCrane
Umm... seeing as Lutz's from line is listed as "Bremen, Germany" and he specifically request German verions, I think it's somewhat likely that the nephew already might speak some German.


The reason why I request a German version is the following: Since my nephew is only 12, his English is not that good (he's native German). It would make the learning process much easier if at least the documentation of the software and/or a programming book was in German.

Share this post


Link to post
Share on other sites
Personally, I suggest you start with a 'real' language (like Lisp, C++, C#/*.Net, Java, Python, etc and NOT *Basic or Logo or 'Draw Lines To Program' GUI-type systems) and instead of making your nephew do everything, start out with tons of 'black boxes' made by yourself. That way the nephew can learn the easy stuff first like the logic and can just call magic functions like 'PlaySound'(in German maybe) that are easier to use than Win/Linux API.

That way, he/she can learn to program now and can over time learn how the black boxes work. Since they're already made, he/she can change things and see what happens instead of having to figure out how to make it in the first place. The last step in learning the fundamentals would be figuring out how to use MSDN/Google/Etc to recreate the functions himself/herself.

Of course, this requires a lot of work on your part, but I really think it is probably the best way to start somebody since they gain 'real experience with real languages'

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I think Python would be a good idea for a young beginner. It's a simple, powerful language.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I agree, go for Python.

Use pyGame to set up an environment for your nephew. Create some easy-to-use functions with German names which produces a lot out output and graphics. Easy to begin with and not as boring as text output, they need not be very generic or flexible. Hide all complexities in the beginning, introduce more gradually.

Share this post


Link to post
Share on other sites
Delphiu is pretty good for simple apps and has some quite advanced features (OO, Events, Polymorphism) should he ever wish to dig deep and get in that far. It's also a 'proper' language and is used for developing real applications (not usually games tho). And best of all the personal edition is (or at least was last time I checked) free from Borland's website.

Neil

Share this post


Link to post
Share on other sites
I started with c++ at 12. So I think he could probally do it. Though I needed to learn it to use on mindstorms for a robotics competition my school was in. If I had wanted to learn game programming right away I might have gotten bored with it.

Share this post


Link to post
Share on other sites
I taught QBASIC to little kids of about eight or nine years old at a summer camp last year. Some kids picked it up without much trouble, but I spent a lot of time explaining really basic concepts (variables and loops and such).

I don't know if that'd be good for a twelve-year-old, though. We usually sent kids around twelve to do Java stuff, or if they had a decent programming background, we let them do C++. So, I guess I would suggest giving Java a shot. It's simple enough so that he can pick up basic programming concepts, and the forced OO environment might be good to enforce good programming practices.

Share this post


Link to post
Share on other sites
I thing that C and C++ are unsuitable to start someone with at the age of 12.

The are of cource some game-dev programming languages like
DarkBasic, 3D Gamemaker, Blitz...
VB.NET seems more appropriate to me, it's easy to use and it's
"DirectX-Aware".
Or use VB.NET with TrueVision3D library.

Share this post


Link to post
Share on other sites
This has been discussed heavily on the PLT mailing list. The PLT group make Dr. Scheme which petewood mentioned. Dr. Scheme is focused on helping people learn to program. It can do some gui stuff and some opengl stuff with some jiggery pokery. I suppose that's the stuff 12 year olds might be most interested in. If your nephew is interested in the logic side of it, then perhaps he will really enjoy scheme.

Here is just one thread I googled. There have been loads over the years. Unfortunately they are in English. I'm unsure if the german documentation for plt-scheme is any good. (plt-scheme ~~ Dr. Scheme)

Share this post


Link to post
Share on other sites
Use VB or C#. Microsoft has a nice gui system, that gets things up and running fast. Not too much complex code. Teach him how to do hang man, or a 4 function calculator(my first one) or something like space invaders or something. 3D is too complex, unless you have one of those prebuilt 3d game studio makers, and that isn't really programming. Once he gets confident, he will soar.

Share this post


Link to post
Share on other sites
This comin' from someone who started out as a kid...

Any age is a good age to start out programming because it shapes their way of thinking so that later in life they become good programmers (with some exceptions... see!) Anywho, What your nephew starts out with depends on him. Is he tenaciously interested in programming, enough to diligently attack C++? Does he just look at the screen while playing games and say, "Gee, I wonder how they do that?" Is this "interest" of his just the flavor of the week?

If he's the type to just jump from one thing to another (short attention span... nothing wrong with that, this was my profile when I was young), let him play with DarkBasic. After makin' a few cool things happen on-screen, he may want to push onward with something more advanced and flexible.

The "interested but somewhat easily discouraged" type could start with something like VB. Here he can get some experience working with graphics libraries and other things outside of an all-in-one package like DarkBasic.

Both of these options, however, will leave him in the dark about well structured programming. When I was starting out, I'd write algorithms in QuickBASIC and then write them in Assembly Language. C++ was a HARD transition to make... but there's much more resources these days so my point is moot.

Anywho, if this kid is an absolute mental patient, likes killing small animals and makes people uncomfortable on a regular basis, he's probably okay to start out in C++. Try testing him out for any masochistic personality traits. Is he hell-bent on world domination? Before putting him in a straight jacket, put him in front of a computer and load up Visual C++. Screw the "Hello World!" starter app. Just put him right into MFC and hand him a book on DirectX.

Share this post


Link to post
Share on other sites
Well, I don't want to train an expert programmer - I would be the wrong person to do that anyway, but that's another story. I just want the kid to have fun. So I don't mind if his programming style is rubbish, as long as he has fun. I just want him to get the flavour. At the moment, he knows nothing about programming. I guess, things like C-whatever might be a bit hard unless there are very good tutorials.

But I also don't like these drag-and-drop gamemakers, since that has nothing to do with programming in my eyes (but I don't know those too well, so I might be wrong!). I want him to grasp the flavour of programming - write some code, compile (or run) and see what it does.

Also, he'll have to learn things on his own. I cannot teach him much, for the simple reason that he lives 2 hours away from me. I only see him once every 1 or 2 months.

I'll definitely have a look at PyGame. Is Python freeware, anyway?

EDIT: Yes, it is... found out all by myself;-) The "Python for Kids" book looks quite interesting. They do Turtle graphics and stuff like that. Nice to understand programming principles.

[Edited by - Lutz on November 16, 2004 6:35:27 AM]

Share this post


Link to post
Share on other sites
i say start em young on c++ :)

You can make lots of cool basic games in c++, just get him to do console apps first, with text adventures.


that'll teach im all the basics

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this