views:

222

answers:

9

My son has dabbled with web pages built on asp.net MVC. So he knows some basic programming, getting jquery plugins to work, decent at html/css. He worked part way through a book on building iphone apps using x-code and half a book on python/google-apps.

His interest may/or may not be waning. Literally he wants to help me in my consulting, but the motivating factor is to earn money!

He likes xbox360 gaming. Should I steer him towards programming games for the sake of keeping him interested or turn him loose on trying to develop a mobile app on windows mobile that I need done. It’s a small inventory app running on hand held scanner. This might be too boring and he needs to know probably more than he knows right now as far as backend database stuff and complex programming. I think he will like it in the end but needs some sort of visual payoff that he is progressing at something. Any suggestions

UPDATE: Son is 15 1/2 starting sophomore year. Gets straight A's and is generally bored with school and takes the highest level course work that he can as a sophomore.

A: 

Don't let him write the hand held scanner if you really need the work done. Instead, I would, as you suggest, guide him toward game programming, as that's a very visceral form of development that's easy to get motivated about.

Stefan Kendall
I have the scanner system already built/running using standard web pages. Currently processing inventory on a desktop with connected scanner. So this handheld thing is just something that he would have about two months to port over the UI and obviously connect to database correctly
Breadtruck
Still, you have to imagine that if something breaks, you'll bring in external help, and it would be lovely if the codebase was built by a proper **software engineer**. Your son may be a kickass programmer, but he sounds a bit like me when I was in highschool. Sure, I could program, but I didn't have the experience or knowledge required to successfully create sustainable software.
Stefan Kendall
@iftrue - I'd tend to agree, but I would help guide him down that road, review his code etc, plus I am trying to instill best practices into him if that's possible, which tends to exasperate him!
Breadtruck
You seem pretty set in your decision already ;). Really though, if you do go through with this, take it the full, proper business route. Write up a design spec, make requirements clear, set deadlines, etc. Remember, you'll be both the customer AND the software mentor/team lead/business role, so you'll be interfacing with yourself and your son, which could get icky. After you've built a suitable contractual document, go over it with your son, and if it's something he wants to do, go with it.
Stefan Kendall
@iftrue, I really wouldn't care which way he goes to be honest, in fact I might even be more likely to point him towards gaming. In reality I feel somewhat overwhelmed with trying to direct him, properly train him, and still take care of my own stuff.
Breadtruck
A: 

My personal opinion is that you should let him loose on game programming. If it's something that he enjoys then he should look at advanced courses on 3D mathematics etc.

I think that the way that software will go in the future, the concepts he'd learn from game programming may become very helpful, even if he doesn't stay with game programming.

Also I hear there's great money if you're good.

.NET is something he can also come back to.

Hope that helps,

Chris Nicol
He can program in XNA, which is for the XBox.
Noon Silk
If he likes Call Of Duty type games is there a particular platform/language I should point him too, or is that XNA? I have no idea about gaming, other than playing one
Breadtruck
No I don't believe any major titles are developed on XNA. C++ seems to be the language of choice for a lot of shops, though I know that some use C, Java and even Python.Here's some more details ... http://en.wikipedia.org/wiki/Game_programming
Chris Nicol
+3  A: 

How old is he? If it's anything younger than 18, let him do whatever he wants for fun, and guide him towards that.

It'll help him learn much faster, and will benefit him more than forcing an arguably 'boring' approach too young.

Later, he'll turn into a good and practical programmer, you'd hope :)

Noon Silk
A: 

Programming games can keep him interested, and provide challenges so that he continues learning. On the other hand, helping you with your real work will show him "the real deal", or at least a side of his future job.

I think that a combination of both is the way to go. If he is interested in programming (as he seems to be by your descripition), he will find the right track, the part he likes the most.

Tom
A: 

You seem to me to be contradicting yourself ...

  1. "the motivating factor is to earn money"
  2. "he will needs some sort of visual payoff that he is progressing at something"

... unless money counts as visual payoff.

Also I don't know your son. You don't even mention how old he is.


Edit

He is 15 1/2 . Posted a small update on him in the question

Given his age and scholastic ability, he's innately able to study anything which he wants to and for which he has the materials from which to learn.

I don't know about gaming or xbox programming so I can't answer that.

I expect he could learn mobile+database programming if he wanted to. If in addition you supervise/mentor him closely, then what he produces could eventually turn out to be commercial-grade. If you do this then as a rule of thumb you should expect to spend about as much time mentoring him and inspecting his output as it would have taken you to do the work by yourself (i.e. that's my rule of thumb when I'm mentoring a competent but new/junior programmer; I could reduce my time involvement if I only managed them, e.g. give them specs and inspect their test results). There is, therefore, quite possibly, no immediate profit in it for you: the financial payoff would happen on the next project, after he's been trained some. There may be some risk (i.e. he turns out not to be interested, or he takes too much of your time, or too much calendar time, or he resents your critiques, etc.). There's some potential up-side too, of course.

ChrisW
Money could be the visual payoff which is why I am not real sure on the direction. He is 15 1/2 . Posted a small update on him in the question.
Breadtruck
+1  A: 

I got my first contract gig when I was 14. At the time my dad was selling computers and one of his clients needed a small piece of software to keep their employees from formatting the harddrive. This was back in the 4Mhz XT Clone days ;)

I had been playing around with building text based games; he came home and asked if I could do this job. It took a weekend and I got paid which started me on the career path I now have.

The point is let him decide if he wants a shot at the hand held project. If he does, great! Let me have at it. You might provide friendly "code reviews" etc. Just don't do it for him and don't be too critical. You might be surprised.

Chris Lively
+1  A: 

Show him a problem (A real world problem) Make it hard enough to keep him interested but not too hard to make him give up. Let him come up with a solution and implement it.

Getting him passionate about a good problem is probably the best approach to keep him interested in programming. Something small and easy to do (Less than 3 hours of programming...), but a good brain teaser none the less.

I got interested in programming because I had an advanced but fun idea I really really really wanted to build from the very beginning. I didn't have the tools or knowledge to do it at that time (I was around 16 then), but I kept on learning while sketching/refining the concept on paper. I eventually abandoned the project, but started up many other projects. Each new project offers a new field of things to learn and do. My never ending to-do list of projects and ideas are my biggest motivation to pursue computer science as a major. Let your son pursue his own ideas and program those. Or do things that would help simplify every-day life. Show him some problems to get him thinking if he can't come up with his own ideas. THEN introduce him to your consulting projects.

Cobalt
I personally hate brainteasers, mostly, and prefer to solve only real things that interest me. I think this style should be encouraged. If he's into something, encourage it.
Noon Silk
+1  A: 

If he likes XBox 360 gaming then XNA is definitely the way to go. If he has any experience with the .NET framework then he'll already have a headstart.

XNA Game Studio 3.1 is a free to use and develop games on the PC.

There are tons of Starter Kits covering most genres that he can download with full source code and assets.

An XNA Creators Club Premium Membership is required to play your XNA games on the XBox, it's around $50 for four months and $100 for a year, IIRC.

jscharf
Great information. The links are extremely helpful. I had no idea....
Breadtruck
+5  A: 

Literally he wants to help me in my consulting, but the motivating factor is to earn money!

As a parent, I see two things in that sentence:

  1. He wants to do something productive that has physical tangible benefits. Great.
  2. He wants to do something with you. A teenager who wants to be with his parent? I think you're winning.

If he's serious in his interest to help you, you have something that you think would interest him and there are no legal repercussions (last point is critical), I vote that you show him some of the projects that you're working on.

Maybe he'll be able to contribute new features. Maybe he'll only provide very raw code reviews. Wherever he is on the spectrum, I would suggest that you find a way to encourage his interest in teaming with you and, if there's any justification at all, pay him at least a pittance for his time. "You want money son? If you can help me pay the rent / mortgage, I've got money for you!"

Worst case: you will have had fun working together.

Bob Cross
beautifully put.
Chris Lively
I am paying him so to speak, we have agreed on a hourly wage, even if it is just learning, and he has to put the first $150 of earnings per month towards the car payment that he and his sister share. ( I am paying the car payment, they are working it off )
Breadtruck
@Chris, thanks!
Bob Cross
@Breadtruck, that sounds like a great arrangement. Good luck to you both!
Bob Cross