Programming Language for children
Hey everyone,
I have been through this site before but have just registered. It seems like there is a lot of talent here and probably many of you could answer my question.
My oldest son is 10 years old getting ready to turn 11 in September. The boy is very bright and I would like to get him involved in Programming. He loves games as most kids do these days and I think he could do very well with game programming in his future.
My question is probably simple but here it is anyway. What language should I start him with? I thought about C/C++ but it seems like it has a huge learning curve. I've been looking at Visual Basic and also Microworlds. I think it is important for him to have instant gratification (i.e. write some code, see the graphic result) with early programming so I'm a little confused on what to get.
I think the important part is I don't want him to spin his wheels on something that won't tranlate in some way at a later point to C++ for true Game Programming. Any help from all of you would be greatly appreciated.
Thanks in advance
Phil
Python might be a good choice. There's even a free book here. The good thing about python is, that learning it, will also help make learning C++ later, easier. Also, Visual Basic.Net is another good choice probably
I personally started at 9, with microsoft quick basic. I learned the language by myself from the help documents which were very complete. That language was good because it was very simple... I don't have much experience with the latest visual basic, however. I got told the latest versions weren't as simple as the previous ones.
I think starting directly with C or C++ is possible and could actually be a good thing, as you can learn good programming habits from the start, and because C++ is quite flexible and powerful... The basics of programming are the same for most programming languages... You basically edit text files, which contain different lines of code, containing various expressions, function calls and comments. The only problem I see might be that your son, unless he really likes computers, might get discouraged by not seeing immediate amazing 3D results when learning to program.
There is one thing I would recommend though. Before actually starting to learn to *program*, you might want to give your son a simple introduction on how a computer works, with the different components... And explain how the ram is used, and how its divided in small memory sectors, etc... That might help him to understand concepts such as pointers.
One way or another, your son, at 11 years old, is probably going to need some help learning a programming language, because neither visual basic or C/C++ are as simple as the old quick basic. If you program yourself, that would be very good.
I think its a very good idea to start programming at a young age. Good luck!
I think starting directly with C or C++ is possible and could actually be a good thing, as you can learn good programming habits from the start, and because C++ is quite flexible and powerful... The basics of programming are the same for most programming languages... You basically edit text files, which contain different lines of code, containing various expressions, function calls and comments. The only problem I see might be that your son, unless he really likes computers, might get discouraged by not seeing immediate amazing 3D results when learning to program.
There is one thing I would recommend though. Before actually starting to learn to *program*, you might want to give your son a simple introduction on how a computer works, with the different components... And explain how the ram is used, and how its divided in small memory sectors, etc... That might help him to understand concepts such as pointers.
One way or another, your son, at 11 years old, is probably going to need some help learning a programming language, because neither visual basic or C/C++ are as simple as the old quick basic. If you program yourself, that would be very good.
I think its a very good idea to start programming at a young age. Good luck!
I'd suggest you'd get him a copy of Visual Studio .Net
He'll then be able to see a bunch of different languages and will be able to see instant graphical results using the .Net framework.
C# sounds like a good learning language.
He'll then be able to see a bunch of different languages and will be able to see instant graphical results using the .Net framework.
C# sounds like a good learning language.
I mentored a kid that is your son's age, and he easily started with Visual Basic 6.0. It's an excellent visual environment that is very easy to design, and rather simple to code things. Good luck.
Assembly is a really good choise too.
Just kidding.In my opinion,he should start with a relatively simple language,not C/C++.Possibly Basic or Pascal.It would be better if he could get visual feedback for his programming efforts,so Visual Basic or Delphi whould be perfect.Delphi has the advantage of being very simple for begginers,but tremendously powerful(almost as C++) for people who know what they're doing.
Now that I'm thinking about it,I'm wondering what's easier for a 10 year old to grasp:procedural programming or OOP?I bet it's the latter.
Just kidding.In my opinion,he should start with a relatively simple language,not C/C++.Possibly Basic or Pascal.It would be better if he could get visual feedback for his programming efforts,so Visual Basic or Delphi whould be perfect.Delphi has the advantage of being very simple for begginers,but tremendously powerful(almost as C++) for people who know what they're doing.
Now that I'm thinking about it,I'm wondering what's easier for a 10 year old to grasp:procedural programming or OOP?I bet it's the latter.
He should start with Win32 API. hehe. Honestly, Visual Basic is the ding ding. Here's some code to give you an example, of which I was going to do above, but now it won't let me modify it... arg.
See? Simple stuff. If it's clicked, it gets a 1. If not, it gets a 0, simple binary states that are on (1) and off (0). The funny thing is most of the language is like this.
// Making a edit box italic If (Check2.Value = "1") Then TextInput.Font.Italic = True Else TextInput.Font.Italic = False
See? Simple stuff. If it's clicked, it gets a 1. If not, it gets a 0, simple binary states that are on (1) and off (0). The funny thing is most of the language is like this.
You *could* try smalltalk. For example, Squeak has been designed specifically with children in mind, and I personally find the language to be very "graphic" - thanks to the pure OO used, getting from problems to solutions is often quite straightforward.
However, Squeak's interface is *really* intimidating. I think they failed in this aspect. You just click your mouse, and something happens, and you don't even know what and how to undo it.
I also tried Cincom Smalltalk (free registration required, IIRC) which I as a programmer was able to handle a lot better, since it more resembles a classical IDE (though there are huge differences as well).
GNU Smalltalk I couldn't get to work on my machine, but it seems to be designed to be used only by geeks, like many GNU programs. ;)
I really don't know whether any of these would be suitable for a beginning kid. I do know that they did like elementary school courses (or so) with Squeak. But to teach it, I guess you'd have to learn to use it really well.
So much for smalltalk ;)
I also tried to teach my little brother (8 yrs, very smart) a little C++, but I agree that the language has too many edges for a kid. If I were to try it again, I'd try Python.
Another problem I had was that my brother doesn't speak any english. At least for C++, getting along without english is *very* hard. I'm not sure if Python has localized error messages and such.
Another option would be Logo. But I have the feeling that kids find this language somewhat boring. I think it centers too much on the turtle and its line-drawing abilities, which ultimately aren't that interesting. (BTW, a German computer magazine (c't) recently released a series of smalltalk articles, using implementing a logo-like turtle as an example. It's about as easy to use as logo, but much more flexible.)
Just my 2 Euro-cents.
However, Squeak's interface is *really* intimidating. I think they failed in this aspect. You just click your mouse, and something happens, and you don't even know what and how to undo it.
I also tried Cincom Smalltalk (free registration required, IIRC) which I as a programmer was able to handle a lot better, since it more resembles a classical IDE (though there are huge differences as well).
GNU Smalltalk I couldn't get to work on my machine, but it seems to be designed to be used only by geeks, like many GNU programs. ;)
I really don't know whether any of these would be suitable for a beginning kid. I do know that they did like elementary school courses (or so) with Squeak. But to teach it, I guess you'd have to learn to use it really well.
So much for smalltalk ;)
I also tried to teach my little brother (8 yrs, very smart) a little C++, but I agree that the language has too many edges for a kid. If I were to try it again, I'd try Python.
Another problem I had was that my brother doesn't speak any english. At least for C++, getting along without english is *very* hard. I'm not sure if Python has localized error messages and such.
Another option would be Logo. But I have the feeling that kids find this language somewhat boring. I think it centers too much on the turtle and its line-drawing abilities, which ultimately aren't that interesting. (BTW, a German computer magazine (c't) recently released a series of smalltalk articles, using implementing a logo-like turtle as an example. It's about as easy to use as logo, but much more flexible.)
Just my 2 Euro-cents.
Quote:Original post by Gamedad
I think it is important for him to have instant gratification (i.e. write some code, see the graphic result) with early programming
I would recommend Visual Basic (VB) version 5 or 6. VB even goes one step better in terms of instant visual gratification for young beginners, i.e. draw some graphics objects first to see the static graphic result (using a drag n drop form designer), then write some code, run and see the interactive graphic results.
For a simple langague that gives you very fast results i would suggest DarkBASIC, as it is very easy to use
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement