Sign in to follow this  
Zrocker

video Game programmer prerequisites

Recommended Posts

Hi I'm 14 and was thinking of going into a video game programing career but don't know the prerequisites, fully understand what I am going to be doing or how much I am going to be making, and I'm not sure if i should have experience with programming before i go into collage or university.I have programed simple things like a calculator and a thing that tells you the time and date and have found programming interesting although I'm not 100% sure this is the job i want to have it is one that i may want to do in the future.

Share this post


Link to post
Share on other sites
Hiya.

Besides programming ability, industry programmers usually have some knowledge of college-level math and physics.

As for how much you'll be making, it varies, but search for "salary survey" on gamasutra.com.

Personally, I would recommend having some programming experience before college. I'm two years through college myself, at the moment, but have been programming since early high school. I've liked having the leg up: I can spend my time working on decent-sized projects instead of struggling with language basics.

Good luck. Explore the non-forums part of this site -- it's a great resource.

Share this post


Link to post
Share on other sites
Basically, for a middle/high schooler like yourself, its important to take as much Math, Science and Computer courses as you can, and to do well in them, taking AP classes where possible if you're really serious about becoming a game programmer.

When I was in high school, I took all of the available high-school-level maths (algebra I && II, geometry, etc) as well as AP Algebra, Calculus & Statistics, and Physics. I also took the few available Computer courses, most were basic but I did complete a Cisco networking (CCNA) course and my final computer class was a self-directed project for which I wrote a game. I also tutored and was an assistant to the IT guy for my final two years.

Games are pretty math heavy, for 2D games you need at least Algebra and possibly calculus and/or physics. 3D games are largely Linear Algebra (Vectors, Matrices and transformations, among other things). The kind of physics you see in games are largely an application of Calculus. General logic, reasoning and problem-solving skills are always required.

Previous experience is not required for University, but it never hurts to have some familiarity with it before-hand -- Just be ready to be told that some of the things you may have learned on your own are wrong or could be better, because you will inevitably form some poor habits or have fundamental misunderstandings without guidance.

Programmer salary is pretty good compared to the rest of the population, though the games industry is on the lower-end of programmers salary, particularly when the worker is freshly out of college. Certainly within 2-3 years working as a game programmer you should be making 3 or more times the average American salary of ~20K.

Share this post


Link to post
Share on other sites
I've already shared my thoughts on what I think of Computer Science degrees... They're kind of ridiculous. It depends on the university of course, but usually, if you have prior programming knowledge, you won't learn anything new there... You'll learn the equivalent of 2 weeks of googling each semester. It's a daunting experience. At the end of the program, what you'll have is a degree in making console applications and java applets, with a useless side of systems programming or network programming that you didn't really understand because it was explained poorly. Even worse, by the time you're done, you'll probably have lost sight of what you used to find so fun about programming in the first place.

The worst part is, unlike other industries, just having the degree won't guarantee you a job, far from it... And interestingly enough, the people who make the most money aren't people with degrees but people who do freelance work from home... They can work 6 months a year and make more than enough to get by.

Programming has become this kind of "skilled worker" thing... It's like being a plumber or a car mechanic -- you don't need a degree to get a job as one, but if you don't have experience fixing pipes or engines, you won't be hired by anyone. You can get certified in particular areas without having to go through full academic programs.

All this is why I ended up dropping out of computer science in my second year, with all computer science courses completed except for the "final project" one (the one where the university claims all rights to your work).

Right now, I'm finishing up a degree in translation while programming on the side. I still have my eyes set on a game programming job. And if I don't manage to find a game programming job, at least I have something good to fall back on, something I enjoy, and something that pays better.

What I recommend is that you keep following the "science" path -- as others said, mathematics, physics, chemistry, etc -- because those are the ones that will open most doors. Once you get to the point where you have to pick a university program, you can truly choose anything you want. Until that time comes, keep learning as much as you can about programming, see how far you can take your passion. If you feel that an academic program can truly help you, then go for computer science... But if you think you're doing well enough on your own, that you're understanding things well, becoming an expert in a particular area, don't bother. Pick something else that you can fall back on if the programming idea doesn't work out... It'll save you a lot of frustration in the long run.

Share this post


Link to post
Share on other sites
I'm going to disagree with kiwibonga here and suggest a CS degree. This might be beyond the scope of the OP's question, but at a good school, courses won't be "the equivalent of 2 weeks of googling." At my college, we're getting a good theoretical background, stuff it would be hard to learn on your own.

Sorry to hear your experience was so bad, though, kiwibonga.

Share this post


Link to post
Share on other sites
CS degrees are a mixed bag really, from experience here in Aus, the emphasis is more on Java programming with a little C then C++.

A problem i found with some of the Java programming that i did as a part of an engineering degree, is that the lecturers (much like authors) tell you what is good programming, and in some cases that attention to detail is missed and more emphasis is placed on planning techniques such as psudo code, charts and other tools to figure out what you are planning to do.

Meaning you know what you want to do on a high level, but getting to the code you are often on your own, or with a text book.

Another bone i've had with them is the idea that the book is god, so if an answer does the job in a completely different manner to what is expected (as per the book) then it cant possibly be right... (note to self: don't make a full gui for a project asking you to only put it into a command shell)

The good thing i found about it though is that if you were having trouble with some code there was always the immediate help you could seek. In stead of coming to online sources who have no background as to where you are, you can ask people in your course or your tutors for ideas/help and they are fully aware of what you should know... as apposed to coming on here where at best people think you know nothing and at worst people think you know everything.

Share this post


Link to post
Share on other sites
Quote:
I've already shared my thoughts on what I think of Computer Science degrees... They're kind of ridiculous. It depends on the university of course, but usually, if you have prior programming knowledge, you won't learn anything new there... You'll learn the equivalent of 2 weeks of googling each semester. It's a daunting experience. At the end of the program, what you'll have is a degree in making console applications and java applets, with a useless side of systems programming or network programming that you didn't really understand because it was explained poorly. Even worse, by the time you're done, you'll probably have lost sight of what you used to find so fun about programming in the first place.
Sounds like a burnout to me. Which is understandable. I approach that point at the end of spring semesters myself.

What I am going to say next cannot be underestimated: you get a computer science degree to learn how to think. Not how to code. Any monkey can string statements together--a properly educated computer science student can pick up a new language in an afternoon. Computer science is about the whys. Your trivialization of it aside--and I strongly doubt that your degree program is like that, but if it is, transfer--a good computer science program attempts to instill in the student a rigorous, analytical mode of thought that just happens to be expressed in the terms of a programming language.

You want to learn to program? Go to a community college. You want to learn how to think? Get a CS degree.

Quote:
A problem i found with some of the Java programming that i did as a part of an engineering degree, is that the lecturers (much like authors) tell you what is good programming, and in some cases that attention to detail is missed and more emphasis is placed on planning techniques such as psudo code, charts and other tools to figure out what you are planning to do.
I don't think good programming can be taught, honestly. You can only provide examples of good programming. Learning to do it is on you, like finding your literary voice when writing prose.

Quote:
Meaning you know what you want to do on a high level, but getting to the code you are often on your own, or with a text book.
Not to be a dick (and I honestly mean no offense), but by the time you get past maybe your first programming class, you should not be having any trouble doing that by yourself. Instructors aren't there to teach you to program. That's what TAs/tutors are for, as you alluded to later in your post.

Quote:
Another bone i've had with them is the idea that the book is god, so if an answer does the job in a completely different manner to what is expected (as per the book) then it cant possibly be right... (note to self: don't make a full gui for a project asking you to only put it into a command shell)
This, regrettably, is true enough, and I haven't found a way around it yet, either.

Share this post


Link to post
Share on other sites
While I agree that Universities and their coursework can be a mixed bag, I'm going to have to disagree with the poor picture that's been painted by some in this thread.

It seems to me that some of the above posters went in to University expecting to learn nothing but programming. The funny thing about "Computer Science" is that it's not really the science of computers at all, but the science of computation; programming and even the "computers" we are familiar with in our everyday lives are largely inconsequential to its study. Computer science is all about being able to understand the process of computation on a fundamental level, free of specifics such as machine architecture or programming language. In it's "pure" form Computer Science is very theoretical, while more, shall we say, "practical" forms will devote more time to matters such as computer programming concentrating on a given language (the "purer" programs often have students "sample" many programming paradigms and languages rather than a focussed study of one or two languages.)

Finding a program with the proper balance of theory and practicality that's right for you is important. While it's hard to put into words, I would say that a program is out-of-balance when one side of the theory vs. practice coin actually begins to detract from or impair the other. The best advice I can give is to find a program that seems balanced, and if you find that you feel something is missing from the course-work, devote time to study it yourself. This might mean delving into theoretical subjects, or it might mean devoting time to mastering a single programming language or paradigm that is a marketable skill.

A student shouldn't look to their program to teach them everything or they will *always* be disappointed. A student should look to their program to teach them what they need to know for continued study and growth.

Share this post


Link to post
Share on other sites
I think you guys are taking what I said out of context and applying it to your own experience... I'm talking about what happens when you already have something like 4 years of C and other languages under your belt before you start a CS degree (which is most likely what will happen to the OP, since he's 14 right now)... You already know how to think, you already have a strong theoretical background, you already have the ability to pick up any programming language "in an afternoon" or over the course of two weeks of googling -- and you won't learn anything new in class.

I'd really like to know how you guys can justify paying thousands of dollars to do in several years what you could do in several weeks or months for free in your own home. But make sure you consider a scenario where the student already has ample experience, which is what I was referring to.

Share this post


Link to post
Share on other sites
Quote:
Original post by kiwibonga
if you have prior programming knowledge, you won't learn anything new there... You'll learn the equivalent of 2 weeks of googling each semester. It's a daunting experience. At the end of the program, what you'll have is a degree in making console applications and java applets, with a useless side of systems programming or network programming that you didn't really understand because it was explained poorly.


This is wrong on so many levels, I can't even begin to explain, so I'm not going to try.

Share this post


Link to post
Share on other sites
Quote:
Original post by kiwibonga
I think you guys are taking what I said out of context and applying it to your own experience... I'm talking about what happens when you already have something like 4 years of C and other languages under your belt before you start a CS degree (which is most likely what will happen to the OP, since he's 14 right now)...
Four years? Please. I went into college with about nine years' programming experience, in roughly this order:

QBASIC -> Visual Basic -> Pascal -> C -> C++ -> Java -> VB.NET -> C#

I'm still learning. It is because I know I do know know everything that I continue to learn and grow as a thinker and programmer.

Quote:
You already know how to think,
No you don't.
Quote:
you already have a strong theoretical background,
No you don't.
Quote:
you already have the ability to pick up any programming language "in an afternoon" or over the course of two weeks of googling
Way to miss my point. The fact that you can pick up a programming language quickly means nothing! It's what you do with it that matters.
Quote:
and you won't learn anything new in class.
This is simply, entirely, totally wrong. Just off the top of my head:

-How many "good self-taught programmers" know what asymptotic notation is?
-In the same vein, how many know how to mathematically calculate the asymptotic bounds of an algorithm?
-How many understand what a lexer and a compiler actually do? How many can read Backus-Naur and know what it means?

Computer science isn't "hurf durf I can write code."

Quote:
I'd really like to know how you guys can justify paying thousands of dollars to do in several years what you could do in several weeks or months for free in your own home. But make sure you consider a scenario where the student already has ample experience, which is what I was referring to.
You can't do that, and that's our point. Your statements are uninformed and arrogant. If you've actually been in a CS program, it's pretty obvious why you didn't get anything out of it--you don't want to.

Share this post


Link to post
Share on other sites
"You're wrong, I'm right" doesn't make for a very good argument, especially if you're going to call me arrogant... Not to mention that you're putting words in my mouth...

Quote:
-How many "good self-taught programmers" know what asymptotic notation is?
-In the same vein, how many know how to mathematically calculate the asymptotic bounds of an algorithm?
-How many understand what a lexer and a compiler actually do? How many can read Backus-Naur and know what it means?

None of these are out of reach for someone with a reasonable level of high school math and internet access. It's actually all very well explained in Wikipedia and thousands of other pages...

I think your problem is that before you got into CS, you didn't have the methodology to research and obtain the knowledge that you obtained in your courses. Obviously, when you program on your own, nobody's there to give you a shopping list of all the things you ought to know. And in all fairness, what you learn in CS is the snowflake on the tip of the iceberg.

I understand that I may have offended you by saying that the program you're in is basically a waste of money -- I'm bitter about my experience, there's no hiding it. But I did say in my first post that "if you feel you need it, go ahead." It's just important to put due consideration into it. For me, it was a mistake, and I'd like others not to make the same one if it's relevant to them.

Seeing how the job market works, how insignificant a CS degree is next to your actual on-the-side experience, it would be foolish not to acknowledge the fact that skipping the CS degree and just having any degree in a subject you also find interesting instead can be a wise decision.

It's "book smart" vs "street smart" -- both can be a viable option depending on the context. A compiler writer is better off taking CS. A passionate games programmer with good learning abilities could do away with it completely.

Share this post


Link to post
Share on other sites
Computer Science != Programming

Computer science is just a specialized math degree. in college u should be learning things about computability, etc..

if you already had the programming experience like i did, you should have taken harder classes or more theoretical classes. i havent taken a class where they have asked you to write a console app in years.

Share this post


Link to post
Share on other sites
For Beginners. We're not talking about exceptional cases here. For the vast majority of people a bachelor's of computer science is the best/most common route to a Game Dev job.

Quote:
Original post by kiwibonga
Quote:
-How many "good self-taught programmers" know what asymptotic notation is?
-In the same vein, how many know how to mathematically calculate the asymptotic bounds of an algorithm?
-How many understand what a lexer and a compiler actually do? How many can read Backus-Naur and know what it means?

None of these are out of reach for someone with a reasonable level of high school math and internet access. It's actually all very well explained in Wikipedia and thousands of other pages...


I am one of these self-taught programmers who knows these three (a bit weak at calcuating algorithm complexity though). And it took me a far cry longer than the standard 4 year university stint to learn up to that point and am unfortunately still nowhere near where a graduating student from a good university is after more than double that time.

The main problem is proving to HR drones, hiring managers, recruiters even that you actually know that stuff. Having no degree drastically hinders the job hunting process and your salary once hired.

Quote:

A passionate games programmer with good learning abilities could do away with it completely.


The exceptional case might. And even then they're going to suffer the consequences of not having that formal training when they do need it, and the general resistance from companies hiring not CS graduates for a CS position.

Sure; programmers will need book smarts and street smarts to be good programmers, but it's tons easier to get street smarts in college than it is to get book smarts without guidance and while juggling a 40 hour work week and the inevitable social/family obligations that come in adulthood.

Share this post


Link to post
Share on other sites
Quote:
Sure; programmers will need book smarts and street smarts to be good programmers, but it's tons easier to get street smarts in college than it is to get book smarts without guidance and while juggling a 40 hour work week and the inevitable social/family obligations that come in adulthood.
Well said, sir.

Share this post


Link to post
Share on other sites
I really have to disagree again, though perhaps its more with your tone than with what you might actually be trying to convey.

I've been programming in one language or another since I was 11. At the time I was reading books on BASIC and modifying code listings from the book. Over the next several years I progresses through QBASIC and C. Before I was through with high school I had written several small games, as well as several larger games and Utilities. I think my largest project at the time was roughly 120K of sparsely-commented source code. I also wrote an image editor that had support for Photoshop-like image filtering and other non-trivial features. Honestly, I was a decent, I dare say pretty good, programmer -- especially considering I was 17 and entirely self-taught. Had time been shifted just 5 years back for me, I bet I might have been able to land a game programming gig right out of high school.

Still, I learned a metric ass-ton of stuff in college that surely would have escaped me for several years otherwise. In terms of what I put out during college, it was no where near the quantity that I had done in high school, but in terms of what I was learning college wins by an order of magnitude. You seem to imply that college will actually slow down your learning process, and I disagree greatly -- if college slows you down, you've either chosen a poor college or you're a fucking genius. If you only got a year in, you didn't even give it chance enough to get to the interesting stuff.

I'm nearly 25 now so I've been programming for 13+ years to varying degrees. I'm still young with only 3 years out of college. I learn new things and push myself every day. I've most recently been delving into becoming an expert in C++ (by external definition, not my own ego-boosting definition), functional programming, template meta-programming, boost, embedded systems and virtual machines. College really solidified my basis for tackling these topics.

As someone who has amassed a nearly six-figure debt attending college, it was worth every single penny. If there's anything I regret about my education its actually that I didn't attend a more "pure" program before attending the program I did, to have even deeper fundamentals and theory.

Share this post


Link to post
Share on other sites
well if ur really curious about this subject.....www.dice.com there you go, u can see for urself for almost all programming jobs you need a CS degree!!!!! but hey believe what you guys want, i just got in on the subject but from what i've experienced, if u wanna make money get a CS degree. They do however say they want C++ programming as a BONUS only...

Share this post


Link to post
Share on other sites
Quote:
Original post by Ravyne
Games are pretty math heavy, for 2D games you need at least Algebra and possibly calculus and/or physics.


I'm 14 and programming in many different languages, but when I did 2d game programming, i was fine with nothing. Yes, I know what I'm talking about, seeing I've made it this far in four years. I still haven't done algebra, physics, or calculus yet and can still keep up with what I'm learning. I make up most of my own Physics and stuff, and it's a lot easier than following the rules. I'd say if you want to start programming, learn Python, which is free, or Flash, if you can afford it it is a few hundred dollars, and in a month or so you'll be making 2d games. Also, think about this. There aren't people out there testing your code to see if it's really Earth physics. If it looks good, who cares. I'd say there aren't any prerequisites, at least I didn't have any. And most of the math you need to know you actually learn in tutorials. The internet has everything you need. Well, good luck, if you need any help, I'll be willing, seeing as how i had lots of trouble when I was looking for 3D API's, and remember, it really isn't that hard, just email me at krazy4legos@hotmail.com for help. Good luck programming, and remember, it's never to early to start!

Share this post


Link to post
Share on other sites
I hear this all the time and think: I'M 14! I CAN'T GO TO COLLEGE! I just hate that. You can do it all on the internet for free. No degrees, nothing. Just stop arguing cause your all wrong. And no age-ism! Just cause I'm 14 doesn't mean I can't program. So just try to go the easy way, no rush. If you can learn C++ while in high school, and then go for OpenGL and other languages, you'll be just fine. And they all make it sound hard, in fact, everyone does, but if you really want to do programming, which I personally think is very fun, it's easy. You just got to stick to it. Most people give up. I've known lots of people like that. But it's good. Part of being a good programmer is not giving up. You always run into problems that seem impossible, but as you get further into it, you'll realize that is what make it fun. And the further you get into it, the more people on forums like these will be more like you because they have gone through what you have gone through. And I've been programming for four years, but I have to admit the reason it takes me so long is because of the fact that sometimes i almost give up. But getting a good start is important, and i can't tell you how lucky you are to have found these forums, because I didn't get to ask. Lemme tell you, I know Google inside and out by now. And I never found out about Direct X 10 and stuff until someone told me. But you get it handed to you on a silver platter. The problem is, can you accept it and work through the hard part, because this learning period your coming up to is hard, and you gotta work for it. But the rewards you reap are so great I can't tell you. You can get a career in something that is fun, and wow, that it is. Remember, you can always get what you want, but if you don't want it bad enough, you won't get it. So good luck, try not to give up! And all of you, none of that age-ism stuff! None of it!

Share this post


Link to post
Share on other sites
Quote:

Just stop arguing cause your all wrong.

Excuse me?

Might I suggest that you actually read the posts (in particular, the original post) before you respond with this kind of drivel? Here, let me give you a hand:
Quote:

Originally posted by Zrocker:
Hi I'm 14 and was thinking of going into a video game programing career but don't know the prerequisites

Nobody -- nobody -- has said that a college degree, that math skills, et cetera, are required to start programming. Nobody has said that you can't start programming at 14, either (many of us, in fact, started younger).

Everybody has, instead, pointed out what is expected of somebody when they begin their career -- i.e., their first right-out-of-college, paying, job -- as a game developer. For which a solid degree, solid basic math skills, et cetera, are generally required to be considered minimally competent.

Quote:

I'd say there aren't any prerequisites, at least I didn't have any.

You'd be wrong. You're 14, you have not yet begun a career as a game developer. You're just a hobby programmer -- and while everything you've said may be true for a hobby developer, that's not exactly what we're talking about here.

Share this post


Link to post
Share on other sites
Quote:
Original post by Jedimace
I hear this all the time and think: I'M 14! I CAN'T GO TO COLLEGE! I just hate that. You can do it all on the internet for free. No degrees, nothing. Just stop arguing cause your all wrong.


You'd be surprised how many university grads feel wiki knowledge is the way to go....

Are there any courses you could go to? Can you intern for a company? Is there anything where you could learn from other people? During summer or other vacations? Perhaps as extra-curricular activity? I've been to various computer related courses since 11, worked during summers at local company. Did work for friends on the side. And that was before google, back in the time when 14400bps was considered fast. Today there has to be so many more options.

Yes, there is google. First step to learning is starting without it, especially at start.

You can get one degree a year (summer or other short courses, internships, summer school, whatever your environment offers), or at very least a letter of recommendation. All at 14. And since I spotted the link - apply to google summer of code, TopCoder competitions or other similar sites (I'm not up-to-date).

Quote:
Remember, you can always get what you want, but if you don't want it bad enough, you won't get it. So good luck, try not to give up!


Often you can can, but not always.

Persistence and dedication is a must, that I'll fully agree with. But in long run, doing stuff for yourself, and showing what you did is slow, ineffective and unguided.

So make sure to get your experience in real world. Google is worth as much as a dusty book on the shelf. It's not knowledge. Wikipedia is same. It's not experience.

The best way is to get out and do stuff with and for the people. No matter how good you are, it only comes down to being useful to others. It also shows you whether whatever you want to do is what you expect it to be. Even the best school cannot prepare to the reality of work one does on daily basis.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this