tags:

views:

146

answers:

8

I can program pretty well, and I'm trying to think of a programming area that I can practice so I have a better chance of getting a job when I finish my education. I'm currently learning game development, but there are a ton of other people trying to get into game dev, so I want to find something a little more secure and sustainable to develop skills in. I've thought of things like financial systems and engineering stuff, but nothing I can think of is accessible to someone in high school. I'm trying to find something that involves physics or networking and isn't as popular a field as game dev. Does anyone have any ideas?

A: 

Game development itself is not very "secure"... But the skills you will learn while learning game development can be applied in many different fields with more security.

The best way to have job security is to not let your skills get rusty. Learn and use the new stuff, as it's developed. Hopefully, you do this because you love it, and spending your life as a perpetual student of CS would be something you'd actually enjoy.

dicroce
A: 

There is not 1 magic field to get in to. Every field has a lot of interest. If it does not have a lot of interest, then you will likely not hear about it.

As for game development ... do you not think that people will ALWAYS be playing games? That field will likely never die.

Kevin Crowell
@Kevin: I dunno man, isn't it tough to earn a living making games? Gamers are cheap, and games are expensive to make. I suspect only the big guys make any profit.
Mark
@Mark I do not disagree. I never mentioned that making games is an easy road to success.
Kevin Crowell
A: 

Your best bet is to equip yourself with the knowledge and tools to be able to program for any purpose. A good developer is not just a game developer or just a web developer or just a C# or Java developer or [insert language/framework] developer. Start off with what you are interested in, but keep learning and stay capable of moving to another development field if need be.

A good thing to do is to dabble in other things on the side. Learning other languages/frameworks/technologies in your free time will actually make you better at whatever field you start out with and specialize in because you will have a better understanding of overall dev practices. Also, you will become much more versatile and marketable.

Bradley Mountford
"be able to program for any purpose" is just not reasonable. Most of the more useful applications of programming require knowledge of another field, and it's just not feasible to know every other field, so you'll always be locked out of some development tasks. On the other hand, programmers who know ANY other field will always be more in demand that programmers who only know code.
Ben Voigt
@Ben Voigt I agree to an extent...obviously you are never going to be able to program in all languages..but I have found that as I broaden my knowledge of other languages and frameworks, I am a much more flexible developer and can pick up new technologies more readily if I need to.
Bradley Mountford
I agree with Bradley. As long as you know a handful of languages, picking up new ones is not a problem. But that only goes for languages, and frameworks... I suppose knowing an industry will help you find programming jobs within that industry (like finance, or medicine, or what have you).
Mark
@Bradley: I'm not talking about languages. I'm not talking about programming techniques. I'm talking about learning your customer's business so you can understand their requirements.
Ben Voigt
I agree with you on that, Ben. I am not a CS grad myself but, rather, a Middle East Studies grad. The original question was specifically about "a programming area that I can practice so I have a better chance of getting a job when I finish my education" so I decided to address that in my post by saying that you can't go wrong by gaining a broad understanding of a variety of languages and frameworks instead of just trying to be a "game developer" or an "engineering developer" or what have you.
Bradley Mountford
A: 

Nothing's guaranteed to have total job security, but if you're good you should be able to get a new job easily enough if you lose your old one. Being good also helps you keep your job when things get tough. But being good also means that you've got to pay attention to the non-programming parts of the job, like how to extract requirements from customers, how management works and how to get on with other people.

In fact, people skills (which can be learned!) are the most useful thing to invest in of all, since it's overwhelmingly likely that you will be working with others.

Donal Fellows
A: 

Mobile application development is a pretty strong field right now. Obviously, iPhone, Android, Palm, and other types of "consumer" applications are pretty big right now, but there are also opportunities in the "enterprise" mobile environment.

The consumer market is getting flooded at the moment, but there are still ways to get in that environment if you're interested. Having iPhone or Android development experience will probably look good on your resume.

The enterprise side is also decent right now. With the economic down-turn, a lot of large companies have started to look for ways to increase efficiency and savings by utilizing mobile technology. Windows Mobile is a big player in the enterprise side, and they've just released a major update to Windows Mobile (7 Series). 7 Series probably won't get adopted by the enterprise side right away, as its more consumer-focused, but it's definitely got some potential in the upcoming months/years.

Andy White
+8  A: 

Learn another field besides programming. Programmers who don't have domain-specific knowledge can't get the job done without help, and usually end up making many more mistakes along the way.

As for which other field to maximize job security / ability to find new work, look at other fields that pay well. A programmer who knows something about medicine is going to be in demand much more than a programmer who knows something about managing schools is going to be much more in demand than someone who only knows programming.

Note that it is possible for the "other field" to be computer focused as well, such as encryption or other computer security, etc. But those also tend to get outdated faster than a true second domain.

Ben Voigt
Huge plus 1. I picked up algorithmic derivatives pricing for a financial firm, and ended up actually becoming a quant as a result, plus I still get to program!
Pierreten
In general those who can bridge the gap between IT and the relevant business domain are highly sought after in my experience.
Paul Creasey
@Paul: That's what I'm talking about. Someone who taught themselves programming in high school, like the OP.... no point in taking a CS degree as an undergrad, it's not adding anything _new_. But go with mechanical engineering or pre-med (don't need the postgrad degree particularly, just the background material that lets you speak the same language) or finance or law (law would be different in that it wouldn't be aimed at developing for lawyers, but at becoming an expert witness on all matters computer at trial).
Ben Voigt
+6  A: 

Job Security is not really dependant on the field but on the person. Sure trends might indicate some fields are better than others, but in reality you create your own security by being good at what you do.

Paul Creasey
A: 

The way we're going I think your best bet would be to get a job at the unemployment office.

Scott Bailey