My 14 year old wants to be a code monkey. Advice?

I strongly recommend C for Dummies by Dan Gookin. It’s hilarious and it assumes you know nothing about programming. C is the basis of Java and Python, and really, object-oriented programming may be overwhelming for a 14-year-old.

Do you have an integrated development environment (IDE) yet? I’ve found the most enjoyable way to learn a language is to start with a “Hello world!” app and learn theory as I attempt more complicated tasks.

Loathe as I am to recommend Microsoft products you can always look at the Visual Studio Express Editions.

These include -
Visual Basic 2008
Visual Web Developer 2008
Visual C# 2008
Visual C++ 2008
SQL Server 2008.

They are cut down versions of the full products, which usually means some of the fancier controls and libraries are not available, but that shouldn’t be a problem if he is just learning the languages.

And being Microsoft there is the Microsoft Developer Network to help as well as lots of other sites and forums.

You’re going to get a lot of high powered advice on here as if your son was planning to dedicate his life to professional code development. Does he care about programming because he loves programming or does he love it because he loves what you can do with it? This is a very important distinction. If he does indeed love programming for the sake of programming, then by all means get him started on Python or Ruby.

But if he just cares about getting stuff done and is looking for the shortest path between imagination and result, I would say learn PHP and Javascript. Granted, I’ll admit right now that PHP is a horrible horrible language that I would be embarrassed using myself but it’s the BASIC of our generation. It gets the job done and then gets out of the way. Too often, real coders are too proud to admit this.

For god sake, don’t have him learn C++ for his next language. C++ is great for building things but it is not by any means a user friendly first language. Too often people who have been coding for a long time and are good at it underestimate the conceptual leap required at the beginning to program anything.

Afraid not, in fact we just laid off a bunch of people.

Ed

I have no advice, but I admire your kid (and thus your parenting skills, too, I guess). Kids that age usually have either no goals (“I dunno”) or unreasonable goals “RockStar!”). Computer Programing is a good profession, one reachable by any bright kid with some skills and a little drive. The pay tends to be good, too.

You can do plenty in Python without using objects, and C is a horrible first language if you don’t have access to a teacher or someone who knows it very well. I agree with the advice to stick with the web stuff for now–there’s nothing more motivating than running your code and seeing things happen, and that’s really easy to do with webpages.

He certainly was first motivated to learn by trying to build avatars for “Whirled” … I think that is why he was thinking AS3. If he decides to go that route what resources would be good intros? For either PHP or AS3.

I don’t think that he is motivated to become a professional programmer so much as he is motivated to learn how to do cool stuff with it now. If he ends up with a skill set that serves him well in any career all the better but getting fun results after a reasonable time investment is key.

Thanks to those thinking about how to do this cost effectively!!! $700 developer programs need not apply.

The Flex 3 SDK is free. http://www.adobe.com/products/flex/
Google can lead you to a number of tutorial sites.

It’s probably too advanced for right now, but I’ve heard good things about Thinking in Java and Thinking in C++ by Bruce Eckel. As a bonus, you can download previous versions for free!

(Full disclosure: I’m not a programmer; I’m a technical writer. The last thing I programmed was a minesweeper knockoff, and my husband did most of that for me anyway. But I have heard they’re good books.)

These might not be what he’s looking for right now, but could be great resources later when he’s ready for them. And while you do need to purchase the latest versions, you can’t beat the price for the earlier ones!

What kind of computer is he learning on?

If it’s a recent Mac, you can get an Integrated (Program) Development Environment (IDE) for free. It’s named X-Code. You can get Python for free. Recent Macs, being Unix-based, also include traditional commandline tools for programming in C. And for Windows computers, someone mentioned the Visual Studio Express series from Microsoft.

I mention all this because Cosmic Relief mentions that the Flex 3 SDK is free, but on the Flex page it mentions that you use it with your own development environment.

When people mention web applications, I start thinking about Dreamweaver and its web development tools. Dreamweaver itself is pricey, but there are freeware web development tools out there. What I don’t know is whether there’s a freeware equivalent to Adobe Flash and its animation-creation capabilities, which might be where he can get the best bang for the buck.

To try something a bit different how about Roblox?
A virtual playworld where you can design your own world or even build a game.

(On that note we should be seeing Lego Universe sometime this year too.)

Or he might like to try XNA Game Studio but this looks a lot more advanced.

As someone who works closely with programmers on a daily basis, I just want to add a small contribution to all of the wonderful advice already given.

It’s one thing to be a programmer, but to be a great programmer he’ll need to have good communication and analysis skills. The most valued programmers on our teams aren’t always the most brilliant - they are the ones who know how to communicate with the users and understand their problems.

Good luck to your son!

I should also mention that Eclipse is free as well. It is an all-purpose development environment that has plugins for many different languages and tools. The $249 version of Flex 3 is actually an Eclipse plugin, but a young hacker can make do without it.

Agreed here “C” is the basic one to learn. One you get a good grasp on this you can move on.

Anything that is open source like PHP is good to learn, because it doesn’t cost businesses to use it.

Flash is being used for much of what Java was intended and many people just turn Java off all together.

Visual Basic is also good because many employers want you to write macros with Excel

I can attest to this, 'cause as an IT person I was often hired to translate the computerese to lay people.

For developing in AS3, I highly recommend FlashDevelop. It’s a free, Windows-based IDE that uses the previously mentioned Flex SDK as a compiler.

The first language I learned was C++ back when I was 14. It isn’t that hard to learn, if you work at it and get a decent book, although there are better languages around. Scheme is good, especially if you work from the SICP book, and the Dr. Scheme compiler is specifically tailored to learners (it allows you to turn off advanced features and work with a restricted subset, and slowly ramp up).

I’ve been a developer for literally decades - I’m comfortable with both C and with object oriented languages - but I don’t want to have anything to do with C++ !

I can’t think of a quicker way to turn a kid off on programming than either C or VBA.

Well, except C++.

There’s nothing wrong with VB.net or C#, though (they’re essentially the same language), except that they are Windows only.