How To Get a Game-Obsessed Teenager Into Coding? 704
looseBits writes "I have a friend whose 14-year-old son spends all his time gaming, like any normal teenager. However, my friend would like to find a more productive interest for him and asked me how to get him into coding. When I started coding, it was on the Apple II, and one could quickly write code that was almost as interesting as commercially available software. Now, times have changed and it would probably take years of study if starting from scratch to write something anyone would find mildly interesting. Does anyone have experience in getting their children into programming? How did you keep them interested if the only thing they can do after a week is make the computer count to 10 and dump it on the screen?"
Same way you get your kids interested in gaming (Score:3, Insightful)
Get them started on the classics.
Lego Mindstorm (Score:3, Insightful)
Get him one. See if you can find local clubs where they have competitions involving mindstorm and what you can do with them.
If you can invoke the inner gamer's competitiveness in him while taking up mindstorm challenge, you have introduced him to first steps of coding. Next wipe mindstorms firmware off it and load the java firmware.
Re:Same way you get your kids interested in gaming (Score:5, Funny)
10 PRINT "FUCK"
20 GOTO 10
Re: (Score:3, Funny)
10 PRINT "FUCK" 20 GOTO 10
That's a great way to learn about a text to speach api.
Re:Same way you get your kids interested in gaming (Score:4, Funny)
NOOOOOOOOOOOO! "GOTO" is EEEEEEVILLLLLLLLLL!
while (1) {
print "FUCK";
}
Re:Same way you get your kids interested in gaming (Score:5, Insightful)
NOOOOOOOOOOOO! "GOTO" is EEEEEEVILLLLLLLLLL!
Just the opposite. Far more kids were interested in science and programming back in the days when the chemistry set could burn or blow your fingers off, and the use of unprotected GOTO's, peeks, poke, and global variables could crash your computer a zillion different ways. Choosing safety has taken all the fun out of play.
Teach the kid how to program in BASIC. Bill Gates and Woz can be his role models. What teenage kid has heard of or wants to be Djiskstra?
Re:Same way you get your kids interested in gaming (Score:5, Insightful)
As for teaching yourself to program as a teenager, that's the one common aspect among all the people I know who are truly good, 'natural' programmers. We all taught ourselves. And that's what I'd say to TFA: Don't try to 'make him interested', let him develop his own interest. Don't stress if he's not writing FPS games at 12. The absolute best way to make anyone hate ANYTHING is to nag them into doing it.
Re: (Score:3, Informative)
Dijkstra, not Djikstra. Brrr....
Re: (Score:3, Informative)
Oh boy. When amateurs program...
while(1) {
printf("FUCK\n");
}
Remember kids, always use the one true brace.
Re:Same way you get your kids interested in gaming (Score:5, Funny)
10 INPUT "What is your name? : ", U$
20 PRINT "Fuck you "; U$
30 GOTO 20
Re:Same way you get your kids interested in gaming (Score:5, Funny)
Tell him under no circumstances is he allowed to program. Should work with most teenagers.
Re: (Score:3, Interesting)
Tell him under no circumstances is he allowed to program. Should work with most teenagers.
Funny, I started programming round when War Games came out. My parents were very worry about my interested in computer programming, I was banned from owning a modem while I live at home. Or maybe it was all a ploy so I would leave home and go to college, rather than staying home and become a fisherman.
Re: (Score:3, Interesting)
Re: (Score:3, Insightful)
Also, consider that any given teenager might not be interesting in programming (SHOCKER!) and prefers to draw. This can pretty easily lead into free 3D modeling tools like DAZ Studio, where you can make a fair bit of change just being good at crafting and skinning objects. (Don't worry about buying a copy of Photoshop, the kid'll take care of that. ;) Then there's game modding, level design, etc. etc. If an indie game catches his/her eye, they are off to the races.
I grew up on Apple BASIC, QuickBASIC, DO
Re:Same way you get your kids interested in gaming (Score:5, Insightful)
I think anyone who spends a lot of time on games past about 16 years needs some help growing up. The need to play so much indicates (to me) that they don't have enough interesting, more important things to think about.
I think you may want to check the main target demographics for every $300+ console since the PS1.
Also, "important" is subjective. Unless you're the president, the pope, or a nobel prize winning physicist, chances are the stuff you're working on that you think is "important" is probably not worth a hill of beans to the rest of humanity at large.
What is "important", anyway? (Score:3, Insightful)
I think anyone who spends a lot of time on games past about 16 years needs some help growing up. The need to play so much indicates (to me) that they don't have enough interesting, more important things to think about.
I think you may want to check the main target demographics for every $300+ console since the PS1.
Also, "important" is subjective. Unless you're the president, the pope, or a nobel prize winning physicist, chances are the stuff you're working on that you think is "important" is probably not worth a hill of beans to the rest of humanity at large.
It's a subjective argument, of course - but being a parent means trying to guide a child to make decisions that will give him or her a good, rewarding life.
Personally, I think I wasted far too much time in the 90's watching TV and playing games. I don't blame anyone for the decisions I made, but it really makes me think about how I want to approach the whole thing when I have kids. I love playing games, and I want to build an arcade machine and play more games. But I also recognize that games are killing
Re:What is "important", anyway? (Score:5, Insightful)
You know....I think once you start being concerned with "So much time wasted" when you were younger, you may be taking yourself too seriously (unless you seriously had a gaming/other problem). In my high school/college years I spent a lot of time playing video games, playing D&D/strategy board games, playing basketball, fishing, and getting fucking wasted. None of those activities are really helping me succeed in life, but I ENJOYED them.
I guess if you intend to be the worlds greatest coder/golfer/singer/whatever you need to start early and spend an inordinate amount of time focused on your goal. The rest of us who just want to enjoy life and work at a halfway decent job are going to have time to fritter away. If I had spent my youth simply preparing for adulthood I would be a lot more disappointed in myself.
Re:Same way you get your kids interested in gaming (Score:5, Insightful)
If he's the type to play games, nothing can compete with the fun of a video game. You don't know what you're up against. People literally, literally, abandon their lives for World of Warcraft. Life isn't very fun you know, especially for a teenager (treated like second-class citizens, zero assets and completely dependent on parents, most available jobs border on psychologically unendurable, plus all the stresses of trying to figure out what the world is all about etc).
Re:Same way you get your kids interested in gaming (Score:4, Insightful)
Mod parent up. Not everyone has the mindset for programming.
Having said that - if you can't build your own engine - maybe get him started on modding?
Re: (Score:3, Funny)
Whoa now, big fella. First, get him a slashdot account, have him read, post some good comments, maybe submit a story, then he can start modding.
one word: pr0n (Score:3, Insightful)
You really think he spends all those hours in his room gaming?
Re:Same way you get your kids interested in gaming (Score:4, Interesting)
I'm unclear on whether this dig at the end of your otherwise reasonable post is flamebait, or if I misunderstand what you mean be 'a lot of time', or if I just completely disagree with your premise. I'm far past 16 years old, and I still play games on my PC and consoles. Not every evening, not every weekend, and not the number and variety of games that I played when I was much younger. But still, regularly enough that I consider myself to be a 'gamer' when I buy PC hardware. I look forward to certain releases, like Fallout 3 or Assassin's Creed 2. I've got plenty of interesting, important things to think about. I have a full-time job in software development, and I'm starting graduate school in the fall. For me, gaming can be a fun way to relax in the evening. I don't feel compelled to think about interesting, important things at every waking moment. Do I need some help growing up, or can I spend my free time on the pursuits of my choice?
Re: (Score:3, Interesting)
The dig that I posted as a quote from the GP. Gamers past the age of 16 need help growing up? They don't have enough interesting or important things to think about? I disagree that that is necessarily the case, and it seemed an unnecessarily abrasive way to state the position. Granted, it provoked conversation.
That aside, I agree that if a person is playing video games, or engaging in any other activity, to the extent that it's impairing their ability to engage with the real world, then that's
Re:Same way you get your kids interested in gaming (Score:5, Insightful)
I think anyone who spends a lot of time on games past about 16 years needs some help growing up.
Which, presumably, would not be true of people who spend their time reading books, watching films, playing golf, etc..
The old "my leisure activity is superior to your leisure activity" nonsense, eh?
The need to play so much indicates (to me) that they don't have enough interesting, more important things to think about.
Oh. So is this more the "leisure activities are a complete waste of time" variety of nonsense?
Re:Same way you get your kids interested in gaming (Score:5, Insightful)
Okay, so I see your post above, talking about how you'd rather be a 'maker' than a 'consumer'. And that's fine. Obviously, you can't be a maker all the time. You probably live in a house that someone else built out of materials that someone else produced using machinery that someone else made... etc. And that's fine. Most of us don't make everything we have from basic principles. Relatively few people probably make anything at all, outside of the requirements of their job. But it's not a bad goal to have, to be creative and productive in your free time.
What I take issue with, though, is saying that reading a fiction book is 'just' entertainment. Is there nothing we can learn from fiction? I studied creative writing as an undergraduate student; required to be a good writer is to be a good reader. In that sense, as I consume fiction, I'm strengthening my own base of experience for composition. And I'm not a writer who thinks that genre fiction is necessarily all rubbish. I certainly think we can learn from, say, a Dan Brown book, even though he doesn't have the canonical blessing of Dickens or Thoreau or Homer, or whoever. It doesn't mean we should emulate him, but any experience is an opportunity to learn.
And that's really my point: it's not about whether or not fiction is a frivolous use of time, it's that there are a lot of things out there that people scoff at as being 'just' entertainment, but all of these things have something to teach us. Consuming and experiencing the works of others, even in areas that we don't traditionally think of as high art, are vital parts of the creative process.
Would any of us remember Warhol if not for his inspiration by such otherwise utterly mundane things as Campbell's Soup? Where would Lichtenstein have been without comic books, which are, even today, derided as a waste of time?
Entertainment is only 'just' entertainment if you learn nothing from it and refuse to be creative, yourself. Like it or not, video games and fiction are a large part of our culture. Our immersion in this culture informs our creative choices. If we spend too much of our time consuming, it interferes with our own expressions of creativity, and that's a problem. But I don't think you should feel guilty for spending an afternoon at a book, as long as you possess the analytical ability to take something from the experience. And if you don't have that ability, you probably wouldn't feel guilty about it, anyway.
Re: (Score:3, Insightful)
I think every person that tells others they need to grow up, can use some growing up themselves. ;)
Think about that one for a while; you'll probably get it by the time you've grown up
Parenting (Score:5, Insightful)
Part of being a parent and raising your child is making use of available resources, including discussion forums, to get information about your child's situations and possible ways of dealing with them.
You don't (Score:5, Insightful)
Coding isn't something someone else chooses for you, it's something you choose for himself. And it has NOTHING to do with him being a gamer. Relating "He likes to game" with "He will like to code games" is no less absurd than relating "He likes to game" with "He will like to be an electrician." Gaming and coding are two completely different things, only tangentially related by the thinnest of connections. At the very most, you might tell him that there is code behind his game. But if he is 14 and doesn't know that, he's probably too stupid to ever be a coder anyway (well, he might still be qualified to code for EA).
My advice? Politely tell your friend to ask his son what *HE* wants to do with his life. If the kid's answer is something reasonable (i.e. not "rap star," "sports legend," or "professional gamer"), then your friend should help the kid explore *that* profession, and not just assume that he's destined to be a programmer just because he likes to game. Programming is not the kind of thing you get into because some putz friend of your father's goads you into it.
Ironically, when I got into coding, my parents tried to goad me *OUT* of it (because I would code for hours at a time and they wanted me to at least go outside). Now that is how you know you're meant to do something!
Re:You don't (Score:5, Insightful)
Or be qualified to run Activision?
But yeah, like OP says, you can't expect him to want to code just because he loves to game. Some of the best advice ever that I hope every parent/parent-to-be out there takes from the comment would be
It took my parents years of coming around to this - they tried getting me into sports and music (I do love music, just not what I wanted to be doing back then) before finally realizing that I wanted to work with computers, both in hardware and software, and that their best bet was to support me so that I could grow up to do something I love, not something that they wanted me to do or hoped I would do. It's fine and dandy to explore different interests with your kids, but if you don't consider what THEY want then you're just being a jackass, no matter how good your intentions are.
Re:You don't (Score:5, Insightful)
Yes and no. Some decisions (what to eat) children just aren't mature enough to make. Other skill sets (language) are easiest learned at a young age, and pretty universally useful (if only to test out of foreign language classes later in life to take something else in their stead). Or things like some sport/exercise to build good habits that hopefully last a lifetime.
But those should be balanced by helping, nay encouraging, the child to do something he enjoys. The best habit is to teach them to pursue their interests, and the best skillset is learning how to learn.
Re: (Score:3, Insightful)
Re:You don't (Score:4, Informative)
"It took my parents years of coming around to this ..."
This.
Don't try to force your hand in the matter. If the kid doesn't want to do it, so be it. A forced hobby is just another chore without allowance to look forward to.
As far as how to encourage it, and there is nothing wrong about that--just know when to lay off, I would recommend playing a game (TOGETHER!!) that allows for HEAVY mod application/usage. Even something as simple as writing LUA mods for WoW might get him/her interested in more complex stuff like full Counterstrike rewrites. Many games come with Construction sets and are excellent tools for learning the mechanics of a game engine.
Last bit of advice. Unless you plan on doing this yourself as well, don't expect your kidlet to pick it up.
Re:You don't (Score:5, Insightful)
Coding isn't something someone else chooses for you, it's something you choose for himself.
I wholheartedly agree. I've been coding for ten years now, and all my experience tells me it's a calling. Either you want to and you'll find a way, otherwise you'll never "see the light".
I've worked with coders who should never have been coders. They had the mechanical ability to produce syntax, but not the creative spart to take it to the level of art.
Re:You don't (Score:5, Interesting)
I was in a programming class once and a fellow student asked me how I had solved a particularly difficult programming problem we had been given. I excitedly told him how I had come up with a clever solution that I was particularly proud of and about how I had awoken my roommate jumping up and down with delight when I did it. My fellow student just stared at me blankly, clearing not getting why I had been so excited at coming up with a unique solution to the problem. And that is when I knew that I was meant to be a programmer and he wasn't.
Re: (Score:3, Interesting)
I had a similar thing with cars. Figuring out how to fit this part onto this car, or trying to figure out what's making that weird noise, or bending a custom exhaust out of a straight piece of pipe for a car that didn't HAVE an exhaust system on it as a guide...the whole idea of figuring it out propelled me.
The same thing applies to my current job with mail merge programming. I absolutely love it when a client requests something that I not only haven't done, but something I never even considered doing. Th
Re: (Score:3, Interesting)
I dare anyone to name something as emotionally satisfying as facing a seemingly insurmountable problem...and then finding a solution.
In a word: Teaching.
I find it to be eminently satisfying to be a part of the moment where a student is struggling with some tough (for them) concept and then the proverbial light clicks on and the understanding flows in. I also feel quite good about how students will return to me after a few years, students that quite often despised me for various reasons (not the least of which is that I made them *GASP* work and held them accountable), and tell me how much they learned in my class and wish that they had
Re:You don't (Score:5, Funny)
I'd say "the touch of a woman," but that's probably insurmountable for you, too.
You're right. I tried with your mom, but she was quite insurmountable.
Re:You don't (Score:5, Funny)
I was in a programming class once and a fellow student asked me how I had solved a particularly difficult programming problem we had been given. I excitedly told him how I had come up with a clever solution that I was particularly proud of and about how I had awoken my roommate jumping up and down with delight when I did it. My fellow student just stared at me blankly, clearing not getting why I had been so excited at coming up with a unique solution to the problem. And that is when I knew that I was meant to be a programmer and he wasn't.
Your classmate was probably staring blankly because they didn't understand your answer, and thus was unable to copy it properly.
Re: (Score:2, Insightful)
Re: (Score:2)
A teenager probably won't have a predisposition to hard work, but fun exploratory studying while a student isn't supposed to be hard work. Contrary to TFS, it's easier than ever to get started programming, like in Python. If he's even remotely conscious he'll be a user of the internet, and PHP has a strong pull for new programmers because it can do cool things on a platform that everyone's familiar with.. the ins and outs are very easily inferred from what you see in the web browser. Fundamental stuff like
Re: (Score:2)
I agree, you want it or you don't.
In my collage first year over 50% of the students left the program as they had no clue what they where getting into. Only those with real interest and understanding made it to the end.
Re: (Score:2)
I'd like to add that being a gamer and being a coder are completely independent. It's a bit like thinking a great football player could engineer a great stadium or come up with a great new sport. I'm not saying it's impossible, just not really any more likely than a non-gamer.
Re: (Score:3, Interesting)
Yes.
Gaming mods can be a fun gateway to programming if you're the type of person who's willing to be a programmer.
Otherwise, it's just a gaming mod, and it's pointless to try to interest them in programming. Uses a computer all the time != destined to be a programmer(1)
What we really need is to know the sort of games this kid plays. You mentioned some action games, and I know of NWN and NWN2 as RPGs with very large modding communities and editors built in, Civ 4 has plenty of modding resources, etc.
Anyo
How do you get a kid to play football? (Score:2)
How do you get a kid to play football? You take them outside, throw a football to them and ask them to throw it back. If they like it, they do the same thing with their friends while you're not around.
How do you get a kid into coding? Guess.
Re:How do you get a kid to play football? (Score:5, Funny)
How do you get a kid into coding? Guess.
Mind altering drugs?
Re: (Score:2)
Only if you want your code on the daily WTF.
Re: (Score:2)
Creating software while influenced of LSD could never be any.. Oh wait.
Re: (Score:2)
How do you get a kid into coding? Guess.
Keep him from interacting with girls?
Re:How do you get a kid to play football? (Score:5, Funny)
How do you get a kid into coding? Guess.
Take them outside, throw an exception to them and ask them to throw it back?
Re: (Score:3, Funny)
But teach him to never silently swallow exceptions either, at least not without producing a log once in a while...
Rgds
Damon
Re: (Score:3, Insightful)
I found the social alienation and awkwardness of adolescence was a huge factor for me, but that might be a bit old-skool. :-P
Mods (Score:5, Insightful)
Re: (Score:2)
Re: (Score:2)
Re: (Score:3, Informative)
Wish I had mod points (har har, no pun intended), because this is the way to go.
Get him into a FPS that has an active mod community (TF2 would be my pick, but it's far from the only option). Even just making maps for these games is a start.. scripting game events with entities in Quake/Source based games requires a lot of if/else logic and it's a very roundabout way to get someone thinking like a programmer. From there, they'll probably want to make new guns. This will naturally lead into making mods, which
Re: (Score:3, Informative)
Or better yet, Garry's Mod + Team Fortress 2 [steampowered.com].
Granted, TF2 will likely go on sale soon... it's name in the Steam store is now "Team Fortress 2 (Mac coming soon)" and the remaining Orange Box games all went on sale the day their Mac versions went on sale... Portal was on sale for 100% off for a week and a half, while HL2/HL2Ep1/HL2Ep2 are 30% off right now.
Speaking of which, The Orange Box [steampowered.com] is $20.99 on
Addons or Mods (Score:2)
Tackle an interesting problem (Score:2)
Find a problem that he likes, like Sudoku. Then help him think his way through and program a basic Sudoku solver: formalize the process of solving a Sudoku board in a way that a computer could do it, and take advantage of the opportunity to teach him things like backtracking. Work together in a language like Python where code is incredibly easy to write and readable. This will possibly not only get him interested in coding, but help him tremendously with his logic and mathematics skills.
Think outside of the box (Score:3, Funny)
Game Maker (Score:2)
I've had great success with my teenager with Game Maker from YoYo Games.
http://www.yoyogames.com/ [yoyogames.com]
Windows only unfortunately, but excellent. It'll teach simple variables and loops to start with, with instant results, before leading into more advanced coding as his skills and ambition increase.
Logo? (Score:2)
You can find some logo implementations online. And when he's tired of drawing things with it, move him on to something like Pascal or even Python. And if he's more into the visual stuff, throw C# at him. He'll have working applications in a few hours that can do more than the super basic stuff and there's tons of videos out there to teach him how to do even more.
It'll give him a chance to show his friends something he did. If the games he's playing have APIs, maybe he can throw together something to utilize
Basketball... (Score:2)
I love playing basketball, but I have no interest in working for Spalding, Nike, Reebok or Adidas.
LÖVE is all you need :P (Score:2)
it's down right now, but when it's not, it's a very easy way to get results very quickly without, you know, wasting your time learning crap:
http://love2d.org/ [love2d.org]
(mod as you wish, I'm posting this now since I might forget later)
Modding. (Score:2)
Mobile Programming (Score:2, Insightful)
Re: (Score:2)
A cheaper option, if the kid actually wants to code, is to just start with a game engine. Unity, UDK are free. Some games can be modded freely (any Valve game, Epic's desktop titles).
Smalltalk (Score:2)
Depending on his skill level and interest, I would try Squeak [squeak.org]. Scratch [mit.edu] and Etoys [squeakland.org] work well with younger kids.
Someone else said you can't force someone to program. I agree with that, but people don't always know what they're going to like. Give him things to explore and maybe he will become interested. Try not to be offended if he doesn't.
Python ? (Score:2)
XNA Game Studio (Score:2)
You can try getting him to install XNA Game Studio (free). You can write some simple games with the first couple of tutorials.
However, if he doesn't really want to program he'll quickly get bored and go back to gaming. But of course, not everyone is destined to be a programmer.
good question for nerds with kids.. (Score:2)
I too grew up with Apple II's and C64's and programming had a certain allure that it just doesnt have now. How does a kid get into this today? I don't know.
The only thing I can think of is that my kid(s) will see that I am doing it for hours a day and wonder, what is so interesting that daddy spends all day doing it?
They have to have their interest sparked first. It has to start with a question.
Kid: What are you doing?
Dad: Well, I am programming. I'm telling my computer what to do.
Kid: Can you make a ga
Present a surmountable task (Score:2)
What worked for me was my dad gave me a copy of Zork and a copy of Quick Basic.
My thought process went:
"This is fun, and doesn't seem so hard I can't even imagine where to start."
If text adventures hold insufficient appeal, some more modern versions of surmountable tasks are:
WoW mods
Neverwinter Nights module
Get the kid hooked on Eve and then make him learn VB to build profit & loss spreadsheets in Excel
Your friend needs to man up (Score:3, Insightful)
Tell your friend to man up and be a father. My son and I are building a custom case for a file server for the house, I have no art skillz but he does. Keeps his appetite for tech up without him doing the brain drain in front of the tube.
FYI - normal teenagers do not spend all their time gaming
choose an interesting problem to look at (Score:2)
Maybe the way to do this is to choose a problem that can be seen as interesting and then to go through coding up a solution for it together, concentrating on the algorithm of-course.
The problem surely is finding an interesting topic. When I taught myself coding I didn't have anything better than doing it to create computer games, the kinds of games that people played on Atari or Commodore or Sinclair or Spectrum computers about 25 years ago (goddamn, that was long ago).
I didn't have anybody to pose a more w
Get him hooked... (Score:2)
Get him hooked on a game that has it's scripting system exposed to the user.
Just off the top of my head:
Any Infinity Engine game (i.e. Baldur's Gate)
Neverwinter Nights &/or NWN2
Dragon Age
The RPGMaker series of tools
The thing is, if the kid doesn't have an urge to create as opposed to just consuming, it doesn't matter what you expose him to. If you don't have the creative urge, you just aren't going to be interested in coding.
Visual pinball lets you code your own pinball tabl (Score:3, Informative)
Visual pinball lets you code your own pinball tables and it's open source as well.
Commodor 64 emulator (Score:2)
A game in one line. Clear the screen go to the bottom, type RUN. Use shift to move your ship left and right and avoid the rocks scrolling up from the bottom.
0 poke 32788+pos,65; pos=pos+2*(peek(151)&1)-1; print tab(rand(36)),"XXX"; if peek(32788+pos) ==32 goto 0
Actual constants and statements may be slightly off, it is years since I went into stores and typed this and and quickly played games on the sterile display model. It was practically the same code on TRS-80s as well.
Another good short one is the
Test the Waters (Score:3, Interesting)
I may be too old, but I think the father can test the waters with his kid in a similar fashion to how I was introduced to programming: simple programs in simple programming languages. In school I was walked through "Hello, world" in BASIC and found it interesting. There's something there in the quick feedback between coding and running the code that will either trip something in the kid's mind where he is interested in this or he isn't. I say start with BASIC, Pascal, or Java, something relatively easy. Start with simple, pre-done programs that offer a quick reward for the beginning programmer. If it sticks to the point where the kid starts reading and experimenting on his own, then great. If not, hopefully the father will be open enough to explore other possible interests with his child.
I would be worried that the father would try and throw the kid into the deep-end of the pool right away, in which case the kid is going to develop an aversion to programming. Start simple with some basic flow-charting and some basic programs. Maybe get some electronics kits to see if hardware appeals more than software.
One note. As the youngest of three sons, I programmed on my own and in conjunction with a few friends. Generally speaking, until the news media starting hyping programming as a great career opportunity none of our parents seemed particularly interested in what we were doing so long as our grades were decent and we weren't getting in to trouble. Whether its programming, playing basketball, or anything else, so long as the father takes the time to participate in the activity with his child and encourage the child to pursue his interests (other than pro-gamer), I think good will come of it.
Game Modding (Score:5, Insightful)
Get him into game modding. If the kid plays WoW, the modding community is great, and it was the only thing that made me endure the game for a year. WoW uses LUA, which is a great and easy to use language, couple with XML for interfaces and data transfer.
Another option is creating mods and maps for Civilization IV. With Civ V coming this year, with even better modding potential, this is really worth a shot. Otherwise, try to check what is writable for whatever the kid is playing. Coupling the gaming experience with the more "productive" time codding, is his better shot.
VPython (Score:2)
10 REM Hello World in BASIC (Score:2)
10 REM Hello World in BASIC
20 PRINT "Hello World!"
Also, please teach him to hate Java and Flash. I'd consider it a personal favor.
You do not choose software. Software chooses you. (Score:3, Insightful)
Gaming vs Programming is like Apples vs Oranges (Score:2)
Maybe start from MIT's "Scratch"? (Score:3, Interesting)
If he has any interest in creating something (game, interactive story, animation, etc.) it might be worth having him check out "Scratch" from MIT.
My pre-teens have played with it a bit - it can be pretty fun, and one can see how it introduces a lot of coding thoughts.
http://scratch.mit.edu/ [mit.edu]
"Scratch is a programming language that makes it easy to create your own interactive stories, animations, games, music, and art -- and share your creations on the web.
As young people create and share Scratch projects, they learn important mathematical and computational ideas, while also learning to think creatively, reason systematically, and work collaboratively. ...."
PyGame (Score:3, Interesting)
I agree with the other comments: if he doesn't have the interest, or if he doesn't have the aptitude, then trying to push him into coding is a waste of time.
That said: check out PyGame. PyGame is a set of libraries for Python, specifically intended for creating new games.
http://pygame.org/ [pygame.org]
Hmmm. I just went there, and it says that PyGame has now been ported to JavaScript. That probably makes sense, given the major efforts to speed up JavaScript in the new-generation web browsers.
At the PyGame web site, there are a bunch of games people have written, with source code available; and some of these games are half-done and half-broken. If he has the inclination to code, he might get interested in a half-done game and start fixing it up. Or even take a game that isn't half-baked, and start adding new features to it.
steveha
A choice (Score:4, Interesting)
Give him the choice between: A. Writing pseudocode to mow a yard and see if *you* can "execute" it; or B. Mow the yard himself. Bonus: Either one can generate a living wage.
Borland C++ Builder (Score:3, Insightful)
It's a really easy way to lower the bar and you could get some simple UI-based games up & going with a minimal amount of (non-generated) code.
Where do they game? (Score:3, Informative)
On the XBox 360? Look into "Kodu Game Lab" and maybe eventually XNA.
World of Warcraft? There's a rich XML-and-LUA-based modding system; you can start with "hello world" apps and produce richly customized user interfaces with complex tools added to them.
The Wii? Install the web browser, and show them a bunch of the games that are optimized for the special version of Flash that the Wii has, and then poke at one of the dev kits that works with that.
Really, just knowing that they're doing "gaming" doesn't tell us enough to know what might best serve as a bridge to other things.
It's way too late. (Score:4, Insightful)
It's way too late.
The time to get someone interested in coding was when it was possible for them to sit down with a computer and a copy of Compute! magazine, type in a game program source code, and then play the resulting game.
Without the tie in between coding (work) and the reward (gaming), the coding doesn't become fun, unless you are already bent in that direction.
That level of game, where you are pushing 8 bit pixels around, is, frankly, no longer interesting. At the time, however, it was state-of-the-art, and you could get your head around it easily because it didn't require a lot of abstract complexity to modify the programs. In fact, you usually typo'ed typing in the program, and it didn't do what you expected, so you learned to compare the source with what you had put in the machine, and got some debugging skills out of it and a working game as the reward. Constant exposure to this type of thing, and you can't help but absorb some of the syntax and code flow understanding necessary to take the next step and make the bad buy look different than they way the original programmer intended. Or change the game logic to the point that the game play is different, or you're getting huge scores compared to your friends because you did the right button/joystick sequence early in the game and activated the "cheat mode" you built into it.
Those days are pretty much gone. There is a very large divide between a small amount of ability and an interesting result, because the state-of-the-art has moved on, and there's now a big divide.
I find it really ironic that the most valuable programmers you can hire these days pretty much come from places where their idea of interesting is one generation back because the hardware and software they had to play with is one generation back, and they have a decade difference between our "old school" and theirs.
-- Terry
hm. . . 14? (Score:4, Interesting)
This is the age where boys seem to be "lost" the most, and parents seem to get the most concerned about them.
I work with boys (save the jokes), and I've seen it happen in several cases, right around this 13-15 age range. They suddenly find something they're interested in, and they just DO it.
In one case, it was a kid who just suddenly found video games boring, and moved on to photography and writing. He's very creative, and he found this very rewarding.
My own son; was a Guitar Hero monster. And I told him (joking): "if you spent this much time playing a REAL guitar, you'd be a really kick ass guitarist, instead of just beating your friends at a video game that will be obsolete in 2 years. Which do you think you'll be thankful for, when you're my age?"
He sold his xbox360, and all his games, (I miss Halo 2. . . ) and instead of spending 6 hrs a day playing video games, he plays his guitar for 6 hours a day. And he's pretty amazing. Even if his dreams of rock stardom don't work out, he's going to have a skill and a developed talent he's going to use the rest of his life.
So - don't "push" him in any direction. But DO expose him to other things. (I think it helps if some of the exposure happened before video games came in). He'll push himself in whichever direction works for him.
My armchair-psychologist idea of why this happens, is they're still searching for an identity. They're trying to figure out who they are. You can also make them somewhat accountable for the decisions they make too. (ie. there are consequences to spending all your time on video games. . . failing at real life).
Why coding? (Score:3, Insightful)
Just because he plays on a computer doesn't mean he has any sort of knack for programming.
Better than coding might be buying him an X-acto set, some Duco Cement, some Testers paints, and some various model kits - a rocket, plane, boat, car, etc. Mix it up and get him a four-channel R/C setup and let him tear some s#!t up!
Building stuff you can play with is immensely rewarding and not confined to coding games (or other programs).
Hell, even something really useful like a carpentry class. My school system had them starting in 8th grade.
Cube 2: Sauerbraten (Score:5, Interesting)
It's a free and open-source Quake-like FPS. Usually the progression goes like this: Playing -> Mapping -> Scripting -> Coding. I've seen that progression played out several times in the community and myself (full disclosure: I moderate the forums and Quadropolis.us [quadropolis.us], the primary source for maps, mods, etc.).
Mapping is done in real time and in-game. A mere tap of the E key will switch between editing and playing, so you can see and test what you're doing immediately.
It's also designed to be light on resources. I use the (very underpowered!) open-source radeon driver to drive my Radeon X1600 Pro, and I can get a consistent 30 FPS with the eyecandy barely dialed back.
For a little more detail, here's the description from cubeengine.com [cubeengine.com]:
Go straight to 3D (Score:3, Informative)
Does the kid even WANT to program? (Score:3, Insightful)
I enjoy my regular trips to the toilet thoroughly. Every time I feel relieved afterwards and I tend to go several times each day.
Doesn't mean I want to install toilets for a living.
Just because the kid wants to play games doesn't mean he wants to make them.
Quite honestly, if the kid wouldn't get excited about his first ever computer program counting to 10 and dumping it on screen, then perhaps he's not the type.
Re: (Score:3, Insightful)
Have you considered Crysis?
Re: (Score:3, Funny)
Re: (Score:2)
Back in my day,
And whatever you do, for God's sake, don't start your attempt to get him to start coding with "Back in my day".
Re: (Score:2)
Though I agree with the comment further up about how this whole thing is ill-advised and how a gamer is not the same as a proto-coder, I also want to second this.
Unreal coding is an excellent way to get your feet wet, in an environment where you can achieve cool, rewarding effects pretty early in the learning process(A simple 'gravity mod' is about four lines of code!). Not to mention Uscript's strong resemblance to Java makes the skills pretty instantly translatable to other applications.
Re: (Score:2, Flamebait)
Re:Please, don't do it . . . (Score:5, Insightful)
Calm down already, it's a 14-year-old. Give him a chance to try it at least.
Re: (Score:3, Insightful)
Until I went to college, I was "self-taught" in programming. I learned a lot of cool, new things in college, and I learned a heck of a lot more when I started pro