most Guaranteed job forever - programming

Programming is basically guaranteed employment forever ?

So, my summary line is rather hyperbolic, but I firmly believe that there is almost no better skill to learn than computer programming.  It's impossible to predict what jobs will be most in demand in the future, and thirty years ago I probably would've told you that the world will always need typewriter repairers, but computers and computer software are here for the long haul, and being an expert on exactly how they work will be a very good thing to be.  Even if "programming" isn't exactly where it's at in another thirty years, it'll be a good stepping stone.

For the now, there are available jobs programming in almost every city in the civilized world.  If you're a good programmer and interview well, you could probably work for any city you wanted to with almost any company.  That said, it's a little easier to spot a bad programmer in an interview than it is to spot a bad lawyer or a bad accountant, so if you're NOT that great a programmer or you interview very poorly, those jobs may not be as open to you.

So hopefully I've established that being a programmer is one of the best career choices you can possibly make, unless you want to go with being a lawyer or a doctor or an oil baron.  Still, the important thing is that you enjoy it.  Learn programming because programming interests you, that's the important thing.  I know some programmers who did it for the money.  They turn out to be bad programmers, and, worse, they hate their jobs.  Do what you love, even if you end up poor and doing what you love.  Really.

So now your question is "how."  That's tougher.  You can learn in lots of ways.  One way would be to pick up pretty much any programming language.  Once you've learned how to think like a programmer, you're 90% of the way there.  Learn Java, C, or whatever you like.  The best advice I can give you is to think of a very, very, VERY small program to write (tic tac toe), and then go out and write that program.  Pick any language you like and feel free to switch.  Java's a decent starting language, but there are plenty of choices.

One of the first thing you'll realize about programmers is that when multiple choices are roughly equivalent, fierce camps will emerge on all sides.  "What language should Ilearn first" is a good example.  Some folks will insist that you learn by writing programs exclusively on paper in a made-up language.

Getting help and reading tutorials are good things.  If you're in school, try to take programming classes.  If you're out of school, it's harder.  Beware of the books like "Learn Everything About Being a Java Programmer in 7 Days and Also Get Certified."  Some of these are good, but most are bad.  On the other hand, it's not a bad idea to wander around the computer section of the bookstore or library and thumb through everything that looks interesting.  The more ideas you're exposed to, the better.

I can't overemphasize the importance of play.  Write little 5-10 line programs to do whatever.  Try them out.  Change them around and see what they do.  Grab small example programs and add a feature.

Programming friends are important.  Find a friend who's a decent programmer and pester them with all sorts of questions about particular things you're stuck with or don't understand.  Askville's not a bad place to ask specific questions, either.

# Sites to ask programming QA