   What exactly is a Computer Science degree?
  In less than six months I'll be applying for college in search for a good school. My plan is to graduate as a programmer and after landing a job in a game company, eventually work my way up to becoming a Game Designer.All that aside, I have a few questions on a degree I've seen mentioned on this site and how it's a good course to take when pursuing the game industry...-what does Computer Science focus on and teach you? Does it broaden into many different computer related subjects or something specific? -As a future programmer, how beneficial is it to me? -And, what kind of jobs could I land with it as my major?Thanks!   
Quote:As a future programmer, how beneficial is it to me? It's far easier to switch to other pursuits should you have a university degree than if you had focused on a purely game development oriented post-secondary.   ;Quote:Original post by GallivanQuote:As a future programmer, how beneficial is it to me? It's far easier to switch to other pursuits should you have a university degree than if you had focused on a purely game development oriented post-secondary.Ah ok.I've seen the requirements companies have for programmers and one of them is a degree in Computer Science.   ;  Computer Science is the degree that most programmers get. There are other related degrees, and some programmers have degrees in unrelated subjects.Just to be clear... game programming and game design are completely different fields, but Computer Science is still a good degree for a game designer to have.   ;  to add a question,  what are the exact topics that a CS degree cover?i know that universities differ,  but there are some common topics, right?  Computer Architecture, compiler theory,  operating system theory, data structures and algorithms,   are there any other topics that are covered that i'm unaware of?  the reason i'm asking is that i'm starting university next fall and in the mean time i'd like to familiarize mysefl with the topics,  both to improve myself now rather than start learning in a year,  and so i'll go in with a basic understanding of the topicsthanks;  http://www.cs.ualberta.ca/courses/   ;Quote:Original post by godsenddeathto add a question,  what are the exact topics that a CS degree cover?i know that universities differ,  but there are some common topics, right?  Maths, a lot of maths. And some physics. Don't know how it looks in the US, but in EU you'll get some unrelated things like basic economy classes.CS Degree takes you through majority of main Computer Science tasks, from simple devices, through OS, to artificial inteligence and graphics. At some point students usually choose their more narrow specialisation, depends on particular university though.;  Ok, I can't in good conscience keep quiet on this post. As a professional game programmer, and a computer scientist, please allow me to shine some light on this topic.First, dont "apply for colleges in search of a good school."  Find a good school, then put in an application.  Generally you only get into a small handful of schools if any (this is based on your standardized test scores and GPA), so pick the ones you think provide you the best options based on course-work, and put in an application at all of them.  Then you've got some choices.Second, it's completely idiotic to spend 4+ years in school so you can graduate with a B.Sc. in Computer Science, only so you'll know how to program enough to get a job at a game company, only so you can turn around and be a game designer.  It was noted earlier, but I'll re-iterate...Game Programmers are NOT Game Designers.  In the industry, these are entirely separate fields.  To be a game programmer you generally need a background in Computer Science, though some companies will hire people who've graduated from a game programming trade school such as DigiPen. However, as a programmer, your job is to implement the game systems, tools, and engines which are used to bring the design and artwork of the game to life.  You have little or no say in what the artwork or style of the game is, and you have even less say in the story, game balance, game mechanics, or overall goals of the game.  These are things reserved for artists and designers.As you can see from that alone, spending 4 years training to be a programmer when your real goal is design is a waste of time and money, because as a programmer you'll be doing very little design.Additionally, the average salary for game programmers of every level is around $80,000 a year, with most game programmers making somewhere between $55,000 and $75,000 a year.  In contrast, the average income of game designers of every level is $61,538, with most making between $35,000 and $55,000.So...in spite of the fact that it's completely idiotic to spend 4 years in college to learn to be a programmer, when what you really want to do is design, programmers are in higher demand than designers and make more money anyways.With the above aside, let me answer your questions more specifically.  Computer Science is the study and practice of solving problems with computers.  Whether the problem is eCommerce systems, NASA Flight Management Software, DNA Decryption Systems, Vehicle Navigation Systems, or some other problem.  In the end, the ability to conjure up a solution to a complicated problem requiring computer software, generally falls in the domain of Computer Science.  This is why most game companies prefer Computer Scientists for their Programmers.  Because like it or not, game development is just one of millions of problem areas which are well suited for people with a background in problem solving using computers.  Now, to accomplish the above discipline and problem solving skills, most computer science majors spend 4+ years of school learning some of the following:Programming Language(s)Data StructuresOperating SystemsLanguage and TranslatorsAnalysis of AlgorithmsArtificial IntelligenceDatabases and/or File SystemsNetworking and Network ProgrammingGraphics Programming and TheoryLinear Algebra, Trig, GeometryCalculus, Differential EquationsNumerical Methods of ComputationDiscrete MathematicsPhysicsComputer Architecture and DesignStatisticsBiology... etc.As you can see from the above list, programming is, in general, a very small part of Computer Science.  The ability to program a computer to do what you tell it to is of paramount importance to someone who's job is to solve problems with computers, however, little of your time is actually spent learning to program, and much more is/should be spent on learning how to use the tool of programming effectively, as it relates to computers and other subject areas.If you plan to be a programmer some day, a computer science degree is your best bet at guaranteeing you've got the skills necessary to succeed as a programmer.  However, it's not the only path, and if you just want to know enough about programming to be able to hold an intelligent conversation, there are other easier, less committal, and far cheaper routes you can take.If your eventual goals it to become a game designer, look at the company requirements to become a designer, not a programmer.  If your eventual goal is to become a game programmer, well then, evaluate the requirements to become a programmer.  But do not make the mistake of pursuing a degree in computer science because you feel it'll make you more qualified as a game designer.  It wont.  You will still need to attain the same qualifications as every other game designer, if you eventually want to make the transition into design.  Then you're left with a Computer Science background you may or may not ever use again.Anyways, hope this is informative.  Good luck!;  wow. I can't thank you enough for taking the time to set everything straight for me :)Quote:Game Programmers are NOT Game Designers. In the industry, these are entirely separate fields. As you can see from that alone, spending 4 years training to be a programmer when your real goal is design is a waste of time and money, because as a programmer you'll be doing very little design.Yes, I'm well aware. And design is really what I want to pursue above programming. However, through my reading I've been told that good game designers know a good deal about programming to communicate effectively to the programmers through the game design document. With an interest in both programming and design, I guess I was given the impression that it wouldn't be too much of a leap from one to the other. Thanks for giving me a dose of reality check and saving years of my life :)Quote:With the above aside, let me answer your questions more specifically. Computer Science is the study and practice of solving problems with computers. Whether the problem is eCommerce systems, NASA Flight Management Software, DNA Decryption Systems, Vehicle Navigation Systems, or some other problem. In the end, the ability to conjure up a solution to a complicated problem requiring computer software, generally falls in the domain of Computer Science.Couldn't have asked for a more informative description. Much appreciated!;  The kind of "intelligent conversation" that a designer typically has with a programmer isn't as a member of a programming team, but is instead often something like "Here is what we can implement, and I am putting this idea forward because my background in computer science tells me that this is possible", or an understanding when the programming team says something along the lines of "We can't do that, and here's why".  An educated designer won't just stare blankly at the programmer while this conversation is taking place.  An educated designer with a background in computer science likely won't even put forward the ideas in the first place that are ridiculous and unimplementable, because the educated designer understands the restrictions and capacity of the medium that the programmers have to work with, thus saving countless hours of reshaping ideas.  Just like how an educated designer will be able to have an understanding of what is involved in creating the artwork for a game, so that reasonable goals and expectations can be made.A game 'designer' doesn't have to know how to create an adaptive neural network or  how to set up the low-level server code, because the designer won't be doing it.Now.  As a 'future programmer', a computer science degree is very valuable.  Computer science degrees focus on technique and problem solving skills, and programming is the medium through which these problems are solved, but does not emphasize the programming or individual languages.  You can think of skill in programming like a sword to a soldier.  A well honed blade [well honed programming skill] is valuable, but the effectiveness of the blade is decided by the hand that holds it, and the soldiers skill.  The study of computer science teaches programmers what a life of training teaches a soldier.  The soldier learns that sword fighting requires finesse, a delicate touch, grace and subtlety over power, and that is what makes him a better fighter than a child hacking away at a bush with the same sword.  Similarly, such is the difference between somebody who can churn out code, and somebody who has studied computer science [whether through a school, or independently.  Though ask any computer scientist, the moment they stop their studies is the moment they fall by the wayside.]By the way, well said JWalsh.   