03-15-2004, 07:32 PM | #1 (permalink) |
Sultana ruined my evil persona
Location: Los Angeles
|
How do I introduce my son to programming?
He likes to play games on his pc. He's dabled in mapping and likes to learn console commands to manipulate the game as much as he can.
He's approched me on ideas he has to change the games he plays. I've told him he would need to learn how to program and learn what the SDK does (to my knowledge) for that game engine. The thing is he's only 10! He has good knowledge on how his computer and games work and I"d like him to do something with that. Do I have to get him started with Basic (I have a book)? Where do we start?
__________________
His pants are tight...but his morals are loose!! |
03-15-2004, 08:50 PM | #2 (permalink) |
I'm a family man - I run a family business.
Location: Wilson, NC
|
I'd get him started with QBasic (Basic is a little too far back) and then move to Vbasic. Those are good foundation starters.
QBasic is a good introduction (simple one) to programming. I suck at programming, but QBasic seemed simple to me, and helped me out on understanding the basic rules and concepts.
__________________
Off the record, on the q.t., and very hush-hush. |
03-15-2004, 08:52 PM | #3 (permalink) |
I am Winter Born
Location: Alexandria, VA
|
Well, the way people are taught programming languages now - Basic is never mentioned.
I was taught C first, then C++, Perl, then a host of other languages. However, I think that most places are shifting the curriculum to Java. Either way, teaching your son C or Java will go a long ways: C is very good as its fairly low-level (for a high-level language) - and won't go out of style any time soon because so much is written in it (Linux kernel, etc.). Java is pretty much the current Object Oritented language to know - and its very portable.
__________________
Eat antimatter, Posleen-boy! |
03-16-2004, 12:41 AM | #4 (permalink) |
paranoid
Location: The Netherlands
|
At that age he will probably want to see results rather quickly.
Showing a C program that can do array manipulation probably isn't going to do it for him. While C++ and Java are the languages to know at this moment, I think Java has the most likeability to someone his age. Perhaps looking for a few good Java tutorials that show quick results (anything moving will probably suffice) will do the trick. Once he has a starting point, he will very quickly decide what he wants his 'example' to do next and start to adjust it to his liking. Googling I found this link from an originally swedish tutorial: http://www.mandomartis.com/onlinecou...roduction.html It looks promising. And remember while most games he plays will be probably be written in C (or derivative) learning Java will help him considerably when learning any new Object Oriented (OO) language like C++ in the future.
__________________
"Do not kill. Do not rape. Do not steal. These are principles which every man of every faith can embrace. " - Murphy MacManus (Boondock Saints) |
03-17-2004, 07:23 AM | #5 (permalink) |
Free Mars!
Location: I dunno, there's white people around me saying "eh" all the time
|
Don't start introducing him to programming. All programmers are introduced to programming simply by start learning how to use Math. After all, alot of complex programming involves complex mathematical operations.
But since he's only 10, I suggest that he get started with Qbasic since it is rather simple compared to other languages. I would have gone with Java but Java is rather too complex for a 10 yrs old to start learning.
__________________
Looking out the window, that's an act of war. Staring at my shoes, that's an act of war. Committing an act of war? Oh you better believe that's an act of war |
03-17-2004, 12:49 PM | #6 (permalink) |
Crazy
Location: Bit Bucket
|
At 10 years old, yeah, he's not going to have the mathematical background to get much out of the higher programming languages. QBasic will suit him just fine for learning about what data is and how it can be manipulated. He'll learn the basics of functions and structure. Pick up the idea of parsing, etc. Start easy with QBasic, and if he can pick that up, he'll want to learn something harder. Step up to Java or something at that point.
|
03-17-2004, 01:09 PM | #7 (permalink) |
Location: Waterloo, Ontario
|
10 years old is really young to start programming.
Show him what can be done with QBasic and he'll get a feel for what the endevour of programming is like but he will likely lose interest quickly and that's okay--even expected. Just the mere introduction will mean that he will not be afraid to pick it up again, later in life, when he's more ready (like 17 or up). It's unusual for anyone to have any real interest in programming under 16... The hardest part about learning how to program is getting over the illusion that it is a difficult endevour. It's laughable whenever anyone is told that I write software and they say "Ooh, you must be smart!" because it simply isn't true--that is to say, you don't need to be particularly intelligent to learn to program... |
03-18-2004, 08:23 AM | #10 (permalink) |
Wehret Den Anfängen!
Location: Ontario, Canada
|
Try to teach him to write up a basic text adventure. I wrote one at that age (and damn, did it suck!)
There is the option of finding those books with programs written in them to copy out into a computer. Or, you could write up a quick infrastructure for a maze game (RefreshMaze, AddWall, RemoveWall, MoveRat), and have the kid play with it. All the code for the infrastructure should be short and readable by the kid. I think it is important for a beginning programmer to NOT be embedded in the middle of a huge, impossible to understand, pile of code. They should realize that every single bit is understandable. Playing with Java and VB makes you believe that the widgets and buttons are not something you can understand.
__________________
Last edited by JHVH : 10-29-4004 BC at 09:00 PM. Reason: Time for a rest. |
03-18-2004, 08:56 AM | #11 (permalink) |
Follower of Ner'Zhul
Location: Netherlands
|
QBASIC is old.... just too old...
I would recomment VB instead. But why introduce your son to programming at age 10???? Introduce him to girls instead. He'll thank you when he's a teenager.
__________________
The most likely way for the world to be destroyed, most experts agree, is by accident. That's where we come in; we're computer professionals. We cause accidents. - Nathaniel Borenstein |
03-19-2004, 08:15 AM | #12 (permalink) |
Insane
Location: Belgium
|
RelaX has a point ... a 10 year old boy should play outside with his friends not in front of computer screen everday ... it's not good for his social development.
He will have plenty of time to learn how to program, and as mentioned before, when 10 yo you just don't have the required knowledge to do any good programming.... step by step, time will tell
__________________
Let's GO |
03-19-2004, 11:57 PM | #13 (permalink) |
Devils Cabana Boy
Location: Central Coast CA
|
Hmm how to introduce it, if he is 10, its hard to incorporate it with school, but it can be done, try mixing it up with his math, maybe help him write a program to do math, y=mx+b stuff
Definitely try to bring him into it, i started tweaking my games since i was 8, making small mods and stuff, then moved into VB and now im into C Good luck. EDIT: now with spell check
__________________
Donate Blood! "Love is not finding the perfect person, but learning to see an imperfect person perfectly." -Sam Keen |
03-20-2004, 02:15 PM | #14 (permalink) |
Once upon a time...
|
Don't teach him basic! In my opinion, it has destroyed more minds than any other language (it's just ick, for so many reasons).
There are two options: 1) if he's interested just in the SDK, then maybe help him learn that. I don't know what game it is, but it might be worth a shot if it's not MAD complex. 2) Some other task-oriented project. Something big he can work for. The truth is that he may still be a bit young, but I would definetly start him with c or java. Learn a c-style language and you're half way to the world
__________________
-- Man Alone ======= Abstainer: a weak person who yields to the temptation of denying himself a pleasure. Ambrose Bierce, The Devil's Dictionary. |
03-22-2004, 08:16 PM | #15 (permalink) |
Psycho
Location: nOvA
|
You could try a couple of things:
The old text-adventure game makers were very simple programming languages. Some form of BASIC is fun to start with, in 1991 or so a friend of mine and I found ourselves an old commodore 64 with a BASIC compiler and went nuts. It was really fun (we were 10). Lego Mindstorms. It's expensive, but it will feature both programming (starting with their proprietary language, but can use C) as well as building things. And all the results are physical rather than abstract like pointers, arrays, BigO, etc. |
04-03-2004, 12:37 AM | #16 (permalink) |
Crazy
Location: San Diego, CA
|
I was a counselor at a computer camp a couple years ago, and we taught C/C++ to 10 and 11 year olds, and they sucked it up like there was no tomorrow. Anything I taught them about this langauge immedietly intrigued them, and they had a lot of fun trying to use the concepts to make a new program. The programs don't have to have pretty graphics in order to have fun making them and show them off to friends. I was teaching them concepts such as linked lists, structs, and classes, and they just wanted more! Just be careful not to lie to them to make the concept simpler. I always hate when adults lie to children in order to simplify concepts. For example, if they don't know about pointers and you want to teach them linked lists... teach them exactly what a pointer is before you have them use it in a linked list.
I say don't taint him with VB - he may never evolve out of it. I have a friend who started at 9 years old with QBasic, and it's STILL all he knows at 20 years old! He's constantly just trying to eek more and more from the language, and has basically become a stagnant programmer. I think he's just now starting to realize that he should learn some more advanced languages.
__________________
"Don't believe everything you read on the internet. Except this. Well, including this, I suppose." -- Douglas Adams |
04-03-2004, 01:04 PM | #17 (permalink) |
Tilted
|
10 years is not too young. My friends and I were writing asm in basic back then. I'd say something that is memory managed is best as well as something which is visual so progress is more apparent. Python can be good for this, but anything with a c like syntax is good because it makes it easy to learn other languages.
__________________
sometimes it just takes a cat |
04-07-2004, 06:36 AM | #19 (permalink) |
Banned from being Banned
Location: Donkey
|
Hehe, if he wants to learn how to program rather than be outside, then by all means, let him! I remember when I was a 10 year old kid and wanted to learn how to "use the computer", my mom wanted me outside instead and it was a HUGE let down. To this day I wish she would've let me spend time on it because I feel that I'd have that much more experience under my belt.
You don't need math knowledge to be a good programmer! The highest math I ever had was Calculus and I'm a self taught programmer that knows Java, C, C++, .net, etc.. Hell, I had my first professional programming job at 16 when I was still taking algebra in high school. Granted, it makes it somewhat hard to do advanced 3D graphics without knowing what sin, cos, and tan are, but the basic know how for what you need to know can easily be found online. In fact, if a kid knows a programming language and wants to make games w/ fancy 3D, he'll be that much more interested and determined to learn the math needed, plus it will seem more practical to him. I started off programming in Visual Basic and moved up from there, although I wish I would've learned C/C++ first. If he gets used to learning Basic, the jump from that to C/C++ is VERY confusing and hard to get used to, so you might want to just start off with C since you won't have to explain classes just yet. Make sure he's got the fundamentals down pat, but you'll also have to explain to him that he won't be programming games overnight and that it'll take quite a bit of patience, practice, and experience before he gets to that point. http://www.gamedev.net/ is an excellent site that has everything you'd need as a starting point.. math forumlas, pointers to learning languages, etc..
__________________
I love lamp. Last edited by Stompy; 04-07-2004 at 06:42 AM.. |
04-26-2004, 10:40 PM | #20 (permalink) |
Addict
Location: Canada
|
My ten year old (well 11 now) has fun doing the following programming related activities....
- Game maker (see game maker thread in this forum) - PC Logo, (which is actually a pretty rich language in the old MS version we have for Win 3.1. I'm sure it's out of production, but maybe you can find it in abandonware somewhere. You can start with simple commands to manipulate the screen graphics and work into more from there) - HTML it's fun to make web pages - some Quick basic (I have an MS QB compiler so I can make DOS EXE files. - which I still use regularly to script stuff for my work MS based networks) IMHO it's more about learning the process of step by step logical progression at first than any specific language. Folks who understand logic and structure can learn any language syntax fairly quickly. On the other hand, I've met folks who could memorize all kinds of command syntax, but could not understand a nested loop or select structure to save their life. Good luck - and remember to get him outdoors from time to time :-) (try geocaching - it's helping me) Last edited by Tirian; 04-26-2004 at 10:45 PM.. |
04-27-2004, 11:06 AM | #21 (permalink) |
Upright
Location: Little Rock, AR
|
My 10 year old has also expressed some interest in wanting to program. I am thinking about starting him with Robocode.
It's java language controlled tanks and you can have a running tank with just a few lines of code. Good for those with short attention spans. Link: http://robocode.alphaworks.ibm.com/home/home.html
__________________
I don't mean to sound bitter, cold, or cruel, but I am, so that's how it comes out. --Bill Hicks |
04-28-2004, 07:00 PM | #22 (permalink) | |
Addict
Location: Canada
|
Quote:
sounds like a take-off on "logo". Starts with the same idea of controlling icons and moving them on screen. |
|
05-01-2004, 04:47 AM | #25 (permalink) |
Crazy
Location: Pittsburgh
|
When I was 10 I was learning BASIC on an ATARI 65XE by transposing code from the manual into the computer. Then taking that program an moding it to do more / other things. It was fun, but then faded off until my family got a 286 then I was working in batch. It is simply amazing how much you could do then with autoexec.bat, config.sys, menus, and some .bat scripting. I still use some of that knowledge today.
Then I moved onto cheating in school with my TI-82 by writing and disttributing code to my classmates that would prompt for info and give the results. Was great for the math classes that required the showing of work, and could instantly see if my answer was correct or not. Also came in handy in Biology and the periodic table. Was more of a db then a program, but I didn't understand dbs then. Now I'm comfortable working in C, C++, VC, VB, ASP, PHP, SQL, and a few more. However, until I have reason to belive otherwise, I will not use Java or any of the .NETs. But that is for a different conversation. Now, back to your question. whatever you feel comfortable learning too would be my answer. He will have questions that will need answered. Be ready with answers or be ready to do much research with him to develop the best solution as possible for him. There is nothing worse then trying to do something and finding a brick wall that without real-life interaction will not be able to be fixed. Thankfully today there is this wonderfull world we call the internet to assist. I wish I had this when I was learning (well I'm always still learning....but I digress). All I'm trying to say is that there will be a point that he may / will get frustrated in doing research. BTW...good luck! |
05-13-2004, 10:04 PM | #26 (permalink) |
Tilted
|
There is "DarkBasic" which is a hugely powerful and really simple language thingie. Check it out. Or just start him on qbasic. Give him Qbasic with the Gorrillas and Nibbles programs that came stock with the old qbasic. Start by changing the names of the gorillas or by adjusting the colors on the screen. Go from there. Show him how a change in the code makes a change on the screen. From there it is fun.
__________________
I'm a happy boy, happy boy, way to get when things are going your way. Hey Hey. ...Pretty sure I asked for Pecan Sandies... |
05-30-2004, 03:58 PM | #29 (permalink) | |
Insane
|
Quote:
I think it helped me get started into programming very well.... Know im working on c++....and next im taking on VB... Sort of a weird order going on yea.....but whatever works... i also took on java script and html and learned both of those....they helped me undestand alot of concepts of programming..
__________________
0PtIcAl |
|
Tags |
introduce, programming, son |
|
|