Computer science or game programming?

Started by
36 comments, last by OscarYang 12 years, 4 months ago

The important question is:
- What is it that you want to do? With your life, career, etc...

Numbers are harsh. Very harsh. Game programming will give you a job for 3-7 years at sub-average wage. Then number say people quit due to burnout or inability to work excessive hours.

Similar for computer science, where career in programming is 10 years long. With a warning. If you don't progress during first 3-5 years, your career becomes mostly a dead end. Very very few people end up working in CS, which means academia and PhD.

So to make anything out of a CS degree, you need to go business, either corporate or entrepreneurial. And numbers again show that for BSc. level degree, starting while still in school is just barely early enough.


For technical tracks, CS is undesirable, math or physics are considerably better long term options. Alternatively, for a technical career, a true engineering degree still has more long-term potential. In all these cases, programming can be learned on the side and it will, at least in the near future still give enough edge to advance the career.

But going to a 3-5 year school for programming career today simply doesn't make much sense. In most cases, people who choose such career are already active in the field and merely augment it with a degree. For everything else, the bottom of the market has fallen out and it's not coming back.


Exceptions exist. But is it isn't wise to think about the future as "I might be an NBA super star".

Embedded systems, robotics and automated control systems is a LOT like a game


The competition there is physics, EE or math with MSc as minimum. These fields are already mostly off-shored since there is next to no development in this area happening in West anymore. Or better yet, the one that is has no problem commanding PhD-grade applicants, since supply exceeds demand.

And all those fields with any kind of long term future (aka not pure manufacturing) have no use for programming as any kind of meaningful part that could not be provided by a third party. Any and all value will lie higher, either in research or cross-domain work, where again, CS track doesn't help.
[/quote]

In my experience most of this paragraph is false:

- In the game programming side my friends that work at EA, ZeniMax, NCSoft, etc... all have stable jobs, nice salaries, health care, and drive nice cars. They make well above the national US average salary.
- In the non-game programming side I have friends that are developers at Microsoft, Google, and Amazon that were all straight CS degrees. Companies like these are not seeking only Math, Physics, or Engineering. They want developers and that means CS. Their salaries are almost all 100k+ USD.
- I know people at Lockheed Martin and L3 and large percentage of developers there are 40 - 50+ years old.

Like any other job, if you have talent you will keep your job. If you are dead weight you will get laid off and have trouble finding jobs. But now that I think of it, just about everyone I know that has a CS degree is gainfully employed at a job paying well above average salary. Almost none of them complain about long hours at their jobs either - not even those working at EA.

Also, in my experience the US economic slump has had little effect on tech industry hiring. I get multiple unsolicited job offers every month and I'm not even looking for a job. Not just headhunters but corporate recruiters themselves. Anyway, you can't go wrong with a CS degree imho - if you actually enjoy it of course. There are so many opportunities for programmers right now.
Advertisement

Even better, if you can do EECS, that's even more general. Many people go CS-only and have a wonderful career as a software engineer, but having EE background will only open doors for you. My previous job required I spent as much time trolling over malfunctioning circuit boards as much as I spent debugging the software. (It was an unusual hardware & software prototype debugging job, but it sure was interesting. Whenever I found a bug I had to figure out if it was a hardware or a software issue!)



There is often merit in choosing something somewhat broad and then specializing in what you enjoy later on. It certainly leaves many doors open for you, particularly in later life when you may find that the avenue you're presently traveling isn't enjoyable anymore and you want to make a career jump into something else. This is why I followed Draco's advice above and double majored in both EE and CS. I made sure that one my own criteria when leaving college was to find a job where I could continue to further both of those areas on some scale and have fun doing what it was that I enjoyed the most, which was programming. Luckily I have had that opportunity several times in my career and the experiences from both EE and CS have been invaluable in streamlining software to work well on certain platforms and to be able to squeeze every sheer ounce of power I can from a tiny microchip :P.

You're at that point in your life where exposure to a plethora of things isn't bad and while you will want to consider your specialization for your career at some point, just simply don't limit yourself just yet. One of the hardest things as you get older is if you aren't continuously expanding your mind and constantly learning, you will find it harder to go back to school and explore other options if you want to make a career jump.

Above all else, whatever decision you make, just be sure that what you decide on for a career is something that you are both passionate about and love to do. You owe it to yourself to follow your heart and be strong about what it is you want to pursue. I haven't regretted a single day of work because I followed my heart and chose a profession that means a lot to me personally and I wish you all the same!
Personally, I went the route of a CS major, and am in my freshman year here at Virginia Tech. It's a great opportunity because I have access to undergraduate research facilities, large campus, and many student clubs, including the relevant Virginia Tech Gaming Project. And in CS 2114 - "Software Design and Data Structures", the final capstone project was to, in teams of three, build some sort of Android application that fulfills a need or is a playable game. My group made a vertical shooter, similar to Galaga. It wasn't too difficult of a project for us, but what made it interesting was the fact we now had to work in trios, whereas we were all used to working solo. So you learn quickly that interfaces, documentation, and proper planning are some of the most important things to focus on in group projects.
I'm almost finished with my second year at Stark State College in Canton, OH. The degree is an Associate's in Computer Science with a "certificate" in Game Design. I have nothing but great things to say about this degree, coming from a prospective programmer. Thus far, I have taken VB, C#, C++, Adv C++, Java, Adv Java, and a "Programming Logic" course too. The rest of the courses have mostly been math. The programming instructors here are very knowledgable and helpful, and extremely skilled programmers in their own rights. In addition to the programming and math, I have taken a "Game Design" and a "2D Game Design" course, the latter of which we used the Allegro Game Engine to create our own 2D games. In that course alone, I have 3 projects that will be in my portfolio. Next semester I take "Advanced Game Design" where we will use XNA to create games, and "3D Game Design" where I'm sure I'll have even more projects in my portfolio. And this is all in a smaller college.

My point behind saying all of this, is that even the smaller colleges can have outstanding programs for people that want to become game designers. I now have a very strong foundation in math, programming, and will have a few projects in my portfolio by the time of my graduation. And for the record, I will be turning this into a bachelor's at Kent State University after next semester :).
I study at a CS university. The first two years were mostly focused on maths and only now (third year of a 3-years degree) the courses moved their focus to programming.

Still it wont teach me "how to make a game", so I've started (recently) to study a bit how of to make a game both programming wise and graphically by myself..

Cant really say Im tooo happy about my choise, I'd imagine a game design school like a more interesting place to study, tho I cant say yet wich would have been the better way to get into the game industry, but Im glad to see that most ppl here say that a CS uni is the better choise overall..
I don't know if this is a major consideration for you, but it was for me:
4 year universities that have a wider selection of majors available also have a wider selection of people to meet, specifically ladies, which were few and far between in my CIS lectures.
There are very few reasons to choose a game school and unless you have serious argument otherwise -- go for CS or SE. Either of those will be fine for any possible work you might want in the future, as long as it's within programming. Even if you are convinced you'll never work anywhere else other than in game programming you still should pick SE or CS as those will earn you skills you will inevitably need to learn one way or the other -- skills that usually are much harder to pick up on your own.

Ultimately, the big reason for CS vs. Game school is that one is standardized and the other is not. If you consider CS to theoretical for your tastes, go for SE. But don't go for a game school thinking that's the "way in" -- it isn't, unless "the way in" is via the round paper "storage unit".
"I will personally burn everything I've made to the fucking ground if I think I can catch them in the flames."
~ Gabe
"I don't mean to rush you but you are keeping two civilizations waiting!"
~ Cavil, BSG.
"If it's really important to you that other people follow your True Brace Style, it just indicates you're inexperienced. Go find something productive to do."
[size=2]~ Bregma

"Well, you're not alone.


There's a club for people like that. It's called Everybody and we meet at the bar[size=2].

"

[size=2]~

[size=1]Antheus
Interesting topic that "flames" up such huge replies! It seems people are mixing in social phenomena too! I personally would say CS degree is much solid. Even if you were to finish the game programming degree, you would still probably end up learning a lot of things in the CS degree BUT with less understanding. You see, what separates a self taught programmer from a computer scientist is the fact that computer scientists know about lower level things (meaning closer to the machine) than self taught programmers. Having said that does not mean self taught programmers can't teach himself about the lower level things, but rather they TEND to focus more on immediate results. You can expect a self taught programmer to write a game but you cannot expect him to optimize the game give a set of hardware constrains; optimize algorithm run times; use "evil" tweaks such as assembly and/or complier flags to optimize; exploit locality...etc. While self taught programmer may still be able to do all those things that I said NOT to expect them to do, it is most likely that those problems did not even occur to them.

In short, the best to way learn things is to learn them through the basics, meaning the fundamentals. Quickly immediate solutions may not be the best in the long run and can actually hurt your long term learning goals.
Youtube:
My Channel

Video Lessons:
Java Programming Lessons

Tutorials Written (Not-Active):
Introduction to A.I.

This topic is closed to new replies.

Advertisement