CS Degree - Is it worth it?

Started by
53 comments, last by assainator 10 years, 6 months ago

I'm curious to know if I should spend 3 years of my life to get a CS degree. I'm 17 years old, turning 18, in my last year of high school (grade 12) and willing to apply to a university. I already know how to program, in various languages (here's my GitHub and BitBucket if you want to look at some of my code [I haven't finished/update some projects as of yet]). Obviously, I don't know everything about programming*, but I would say I know quite a lot. Would I be "twiddling my thumbs" for the first couple of years whilst doing a CS degree (i.e. be bored, not learn anything new)?

I'm considering between choosing CS/CS(Advanced), Bachelor of Engineering (Electrical and Electronic) with Bachelor of Mathematical and Computer Sciences, and Bachelor of Engineering (Computer Systems) with Bachelor of Mathematical and Computer Sciences. I'm not sure if the last two degrees would have all the content as a CS degree (it's a double degree; yet it has three degrees(?)).

Can I get opinions on why getting a CS degree would be beneficial to me? The only reasons I can think of is: (1) More knowledge, (2) Good environment for learning at uni (topics I'm unsure/inexperienced in or don't know about*) and (3) Looks good on a resume. Also, could I get a job (programming related) whilst studying for my CS degree?

*Here's the topics I do not currently know (there is more than likely more, but here's the main ones I think I should learn and seem interesting):

  • Assembly programming
  • Operating Systems

Here's the languages I know:

  • C
  • C++
  • C#
  • Java
  • JavaScript
  • Anything really C-like
  • VB (and TI-Basic)
  • Had some little experience with Lua
  • HTML/CSS (Not sure if these really count, but I still know them)

anax - An open source C++ entity system

Advertisement

A CS degree is about more than just programming. Or at least, a good one is supposed to be. There will undoubtedly be CS departments that will just try to teach you just enough to be a Java code monkey or whatever, avoid those. Especially since you already have the programming knowledge. A good CS degree is going to teach you about algorithms. And calculus. And big O notation. And about NP problems. And all of the other details that teach you why to do something, not just how. You need the math, because quaternions are math. Physics systems are math. Graphics programming is math. You don't need a lot of math to make a game, but it really helps if you want to work on the advanced, cutting edge programming problems.

Do you need a CS degree? Strictly speaking, you don't need it to program. You can teach yourself anything, eventually. But the degree gives you a focus that is hard to get otherwise, and helps you prove to other people that you can do it. And it lets you work with people who are interested in similar things, which should not be underestimated.

I very liked my studies time (physics), great time so I would say that university is good (if you have money - the main problem) I would also advice to chose serious university instead of weaker one (second problem could be that it may be hard to pass the exams)

Personally I wanted to work at programming till the age of 13 but chose physics becouse it seemed to me more ambitious and this was not bad choice I think (was good choice and was a great time i am missing now) - but it appeard after the studies when I began to work as a programmer that many of my colegues at work (which was studiing informatics) know a lot more about programming than I knew - so about three years or more i was behind them and was trying to learn to improve - now yet more than five years l8er I stil do not know enough to be good (i consider myself moderately xperienced)

You should get some degree. What degree is your choice, though the closer it is to computer science the less explaining you may have to do when applying for software jobs. (Ie computer engineering or electrical engineering will be an easier sell than art history.) You should not skip an undergraduate college education entirely.

SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
Being "worth it" is also a bit subjective.

Where do you live? Some regions of the world don't really care about education. Other regions of the world will require a BS degree in Computer Science just as a simple test to prune the number of applicants coming from HR.

What is the cost of the degree? Some schools are cheap, others are very expensive. I have relatives in schools that cost just over $1000 USD per semester. Sometimes on the board we discuss people who entered schools costing $10,000 USD per semester or more. I do not believe the quality of education between the schools is a 10x difference. Shopping around is important.

What is taught? Just like the cost varies, the content also varies. Some schools focus on rigorous theory with little practical content. Some schools are little more than trade schools with just enough theory to get by. As you shop around you should consider both the cost and content.



A bachelors degree in Computer Science is the typical requirement in games programming. It is not absolutely required, but you do not exist in a vacuum. If you have a portfolio, but the other person as a portfolio and a degree, which one is more likely to be hired?

Being "worth it" is also a bit subjective.

Where do you live? Some regions of the world don't really care about education. Other regions of the world will require a BS degree in Computer Science just as a simple test to prune the number of applicants coming from HR.

What is the cost of the degree? Some schools are cheap, others are very expensive. I have relatives in schools that cost just over $1000 USD per semester. Sometimes on the board we discuss people who entered schools costing $10,000 USD per semester or more. I do not believe the quality of education between the schools is a 10x difference. Shopping around is important.

What is taught? Just like the cost varies, the content also varies. Some schools focus on rigorous theory with little practical content. Some schools are little more than trade schools with just enough theory to get by. As you shop around you should consider both the cost and content.

A bachelors degree in Computer Science is the typical requirement in games programming. It is not absolutely required, but you do not exist in a vacuum. If you have a portfolio, but the other person as a portfolio and a degree, which one is more likely to be hired?

I live in Australia. The university I'm wanting to apply to is apparently in the top 1% of the world. They seem to teach everything from algorithms, to computer systems, OOP, lower lever/system programming, AI, CG and operating systems, etc.

I believe I can pay for my university when I start working (they take a proportion of my pay), or I can pay up-front (which won't happen, because I don't have the money for that). So I don't think money is really an issue, apart from working it off in the future.

A CS degree is about more than just programming. Or at least, a good one is supposed to be. There will undoubtedly be CS departments that will just try to teach you just enough to be a Java code monkey or whatever, avoid those. Especially since you already have the programming knowledge. A good CS degree is going to teach you about algorithms. And calculus. And big O notation. And about NP problems. And all of the other details that teach you why to do something, not just how. You need the math, because quaternions are math. Physics systems are math. Graphics programming is math. You don't need a lot of math to make a game, but it really helps if you want to work on the advanced, cutting edge programming problems.

Do you need a CS degree? Strictly speaking, you don't need it to program. You can teach yourself anything, eventually. But the degree gives you a focus that is hard to get otherwise, and helps you prove to other people that you can do it. And it lets you work with people who are interested in similar things, which should not be underestimated.

I am very interested in programming in general, not just games programming. I don't think I'd lose interest in it just like that. So I think I will pursue in taking this decision and doing a computer science course. As if I want to do it for the rest of my life I think I should take the time to learn as much as possible (such as the low-level nitty gritty). The only thing is I'm not 100% sure if I want to do a double degree or not.

anax - An open source C++ entity system

I am in the exact situation that you are in. I am 18 and I have been programming since I was 10. This year I have got an internship at a company programming for them over the summer and now they have decided they want to keep me. So what I am doing is taking the year off and deciding what I want to do for school. In this time I think I will program another game or two and release them and see if that kicks off...I would really like to be able to make it as an indie developer. Anyway I think I have decided to go into school and take some classes in business cause if you are as experienced as it sounds then you will not get that much out of computer science anyways...I mean I am constantly debugging the other programmers slow code at my work to make our software actually run nicely.

Personally I think people who haven't been through a computer science program have no business judging what someone else may or may not get out of it. That's not to say it's always useful, but computer science is a far bigger (and far different) world from "this is how you program". If anything, one of the biggest perceived problems with computer science education is it doesn't cover programming much at all. They tend to focus heavily on theoretical underpinnings. That can be good or bad.

SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.

A CS degree will certainly open doors. Especially if you want to program in the game industry. That said, there are many people that can still make it without a CS degree (like myself, I went to art school) but it does make getting certain positions a lot more difficult. I think that alone would make the degree worth it.

I was in exactly the same boat--I knew how to program, and had great experience with multiple programming languages--especially Python and C++. Not only this, I had reverse engineered many graphics algorithms (I had implemented, for example, a GPU cloth simulation based on GLSL and FBOs before I ever even applied anywhere).

Basically, I didn't take any of the introductory classes, and I started immediately on higher level coursework (I took, for example, the graduate course in graphics algorithms my first semester). Especially at a big university, there's always more to learn about your field. I quickly learned about functional programming languages, asymptotic analysis, and design patterns. I was constantly learning things, and I eventually realized I wanted to double major in abstract mathematics just to get the most out of my future coursework.

The point is, universities will teach you. That's kindof what they do. As others have mentioned, a CS degree is not just about programming--if that's all you can do, you're a software engineer, not a computer scientist. And there's a huge difference.

Plus, being at a university is wonderful in its own right. Basically everyone has a triple digit IQ (which for me was a refreshing change from high school) and by and large you can learn whatever you want. There's almost always core requirements, but you have much much much more leeway in choosing.

[size="1"]And a Unix user said rm -rf *.* and all was null and void...|There's no place like 127.0.0.1|The Application "Programmer" has unexpectedly quit. An error of type A.M. has occurred.
[size="2"]

This topic is closed to new replies.

Advertisement