@zac79 said:
Thanks for your feedback Cpound. While I didn't realize what a specific subset the WTF audience was, I happen to believe that good programming is good programming, and I see forum threads relating to things like efficient memory usage and excising redundant logic that are probably applicable at any scale or environment.
We don't all work in business/e-commerce stuff (though I do get the impression while reading the forums that an awful lot of people here do). I personally work in Games Programming, which given your interest in AI and making programs that do fun things might be worth your while to check out. The two most important things you need to get into the games industry (as a programmer) are technical competence and a passion for video games in general. The former can be learned, but the latter is pretty much something you either have or you don't. When you go to an interview, you will be asked questions about what games you like and why, the main focus being on game design elements. This is because a portion of your job might well be interpreting and implementing the designer's ideas (and yes, often they are just "ideas", though occasionally you'll get something more structured and formal) and you need an understanding of game design to be able to do that. Alot of this comes down to common sense and experience from playing alot of games, although there are books on game design you can read to help.
As for technical competence, as CW says your greatest weakness is your lack of practical experience. It might be a good idea to collaborate on an open source project, check out [url]www.sourceforge.net[/url], maybe you'll find something you like. The ability to work as part of a team is crucial for almost any job you can think of and even if you luck out and choose a project being implemented by the cast of Fraggle Rock you can still learn from their mistakes. Another idea is to simply come up with the concept of a game for yourself and try and implement it off of your own back. There are websites like [url]www.gamedev.net[/url] and <font size="-1">www.gamasutra.com that contain useful articles and have forums where you can ask for help. Even if you have no interest in the games industry, making your own game might still be useful since games programs bring together many different disciplines of programming under one roof, the most obvious being:
</font>
Graphics Programming
Sound/Music programming
Artifical Intelligence
World simulation/modelling
Network Programming
Data serialization, storage and conversion
Threading and parallel programming
There's alot to be learned from trying to get these different things to work together, as well as the general problem solving involved simply in taking the rather odd concepts that make up most games and turning them into reality. If you're feeling really brave, you can download an SDK (such as DirectX or GLUT) and start from scratch, or you can find an existing open-source engine which implements most of the above already and start working from there (I'm afraid that I've never used an open source engine, so I can't really recommend anything).
Most games are written in C++ by the way, since even though most of the cruel words said about it on these forums are true (i.e. it's difficult, inconsistent and out of date in terms of things like C#), it has one advantage over all of them in that it's extremely fast and gives you a massive degree of control over the system you're working in. Other languages get used as well, C# is often used to make game tools that aren't so performance driven, and scripting languages like Python and Lua are often built into game engines to allow designers to have greater control over game logic without being so dependent on programmers to handle every bizarre whim and fancy they get into their heads.
The biggest disadvantage of the games industry as a whole is the pay, generally we get paid alot less than our counterparts in Banking, E-Commerce and other things. I find that this is made up for by the satisfaction I get from knowing my code is making lasers blow up spaceships or making a sword cut off an orc's head, rather than making rather dull webpages, but that kind of thing isn't for everyone.