Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


CS Degree - Is it worth it?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
54 replies to this topic

#1 pinebanana   Members   -  Reputation: 475

Like
1Likes
Like

Posted 07 September 2013 - 03:41 AM

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)


Edited by pinebanana, 07 September 2013 - 03:43 AM.

anax - An open source C++ entity system


Sponsor:

#2 ikarth   Members   -  Reputation: 442

Like
8Likes
Like

Posted 07 September 2013 - 04:46 AM

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.



#3 fir   Members   -  Reputation: -460

Like
1Likes
Like

Posted 07 September 2013 - 04:48 AM

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)


Edited by fir, 07 September 2013 - 04:58 AM.


#4 Promit   Moderators   -  Reputation: 7345

Like
3Likes
Like

Posted 07 September 2013 - 08:10 AM

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.



#5 frob   Moderators   -  Reputation: 22294

Like
5Likes
Like

Posted 07 September 2013 - 09:56 AM

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?

Check out my book, Game Development with Unity, aimed at beginners who want to build fun games fast.

Also check out my personal website at bryanwagstaff.com, where I write about assorted stuff.


#6 pinebanana   Members   -  Reputation: 475

Like
0Likes
Like

Posted 07 September 2013 - 10:28 AM

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


#7 lask1   Members   -  Reputation: 778

Like
0Likes
Like

Posted 07 September 2013 - 10:57 AM

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. 



#8 Promit   Moderators   -  Reputation: 7345

Like
6Likes
Like

Posted 07 September 2013 - 12:20 PM

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.


Edited by Promit, 07 September 2013 - 12:21 PM.


#9 cyberpnk   Members   -  Reputation: 319

Like
0Likes
Like

Posted 07 September 2013 - 02:25 PM

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.



#10 Geometrian   Crossbones+   -  Reputation: 1583

Like
1Likes
Like

Posted 07 September 2013 - 02:50 PM

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.


Edited by Geometrian, 07 September 2013 - 02:51 PM.

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.

#11 Shaquil   Members   -  Reputation: 815

Like
3Likes
Like

Posted 07 September 2013 - 03:09 PM

Two years ago, I was in your shoes. I'm 21 now. There are two things you must think about when making this decision:

 

1. Is the school you're going to a "CS School"?

2. Are you confident enough in your abilities to not get a degree?

 

If the answer to 1 is "No," then no. Don't even bother. Especially if their CS department is small. The stress of dealing with subpar professors, and unenthusiastic students who barely remember the difference between << and >> will kill your enthusiasm for programming. Don't do it to yourself.

 

2 is there because, honestly, you don't need college for anything but help. Classes, professors and classmates won't make you better or worse. But they can push you in a certain direction (as mentioned above). Classes on any subject are only helpful if you weren't going to study the subject on your own as intensively. Otherwise, the school system's one-size-fits-all process will just slow you down. So think about it: Summer just ended--what were you doing? If you, say, started studying a topic that'd be covered in a CS degree (Algorithms, Programming Languages, Object-Oriented Design Patterns), or worked on a big project (even if you didn't completely finish it), then you probably don't need to go to school--you've got the enthusiasm and the internet. If you watched Let's Plays and screwed around not getting much done, a degree program with mentors, and a community of kids who share the same interest, might help you stay focused. Only if the answer to 1 is "yes".

 

The BIG takeaway:

 

At this point in my university career, I see more clearly than ever that if you want to improve yourself you need three things above all: Motivation, a mentor, and a community. It's hard to become a great Computer Scientist/Programmer without detailed, catered feedback from someone who already is one. It's challenging to keep focused when every time a friend calls you up, it's to talk about games they're playing rather than coding. It's impossible to improve without having the desire within yourself to sit down alone in front of a computer and debug code you're sure should be working perfectly. For hours. You have to supply the Motivation. But if the school can't supply you the other two, then it's not worth 4 years of a life you'll only live once, and potentially thousands in debt--something that can ruin you. Don't make the common choice; make the smart choice.

 

Good luck, and have fun.



#12 TheChubu   Crossbones+   -  Reputation: 4588

Like
0Likes
Like

Posted 07 September 2013 - 03:24 PM

In the first 2 years of my degree, that means 12 courses, around 4 were about programming.

The progression was:

learning algorithms and control structures -> learning basic data structures and pseudocode ->
learning advanced data structures and put all of that in a programming language -> shift to object oriented programming and patterns.

So the "programming" part isn't that intensive at all, and you lightly touch over programming languages. Its pretty much the big elephant in the room that you're supposed to learn to progress anyway.

 

Now the other 8 courses dealt with algebra, function analysis, statistics, logic and boolean algebra, assembly, logic gates and low level workings of CPUs, system/organization analysis and database design and normalization.

And still all of those subjects are pretty much introductory, you're not going to skillfully use SSE intrinsics in your codebase after an assembly course, you're not going to understand everything inside the CPU after a few classes on logic gates and basic circuits, you're not going to properly make a big database after just learning small normalization and what a schema is. It is a very "broadener" of knowledge, it can open your mind to many, many applications that computing in general can have.

 

I consider it a good experience.


Edited by TheChubu, 07 September 2013 - 03:25 PM.

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

 

My journals: dustArtemis ECS framework and Making a Terrain Generator


#13 swiftcoder   Senior Moderators   -  Reputation: 10242

Like
2Likes
Like

Posted 07 September 2013 - 03:30 PM

It really depends on you: how you learn, and what you want to do in life (I'm going to assume that you are indeed talented at programming).

 

You get out of college what you put into it - if you aren't well suited to college (either the learning style or the life style), then you may be better off not going to college. A talented individual can always wrangle one's way into an internship, and with a little work experience under the belt, many of the same doors open up.

 

If on the other hand you thrive in college, it is absolutely invaluable. A computer science degree will make you a better engineer, and above all, a broad liberal arts education will help you become a better human being. And the mo0ney you spend obtaining that degree is a small amount in the long run of engineering salaries...


Tristam MacDonald - Software Engineer @Amazon - [swiftcoding]


#14 NightCreature83   Crossbones+   -  Reputation: 2938

Like
0Likes
Like

Posted 07 September 2013 - 05:07 PM

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. 

 

I actually think you will learn something from it as now you are just going on past experience but you can't scientifically justify why an algorithm works the way it does. This is something a CS degree should teach you. Other than that learning about proper data structure and algorithm design is extremely useful. 

 

It's the things besides programming that a uni teaches you that can help you out, I had hardware logic designs as part of my first year program. This seemed completely useless at first up untill you reach the course operating systems and all of that stuff becomes important again as it explained how memory worked in hardware, how addressing of memory works in hardware.


Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, Mad Max

#15 Cosmic314   Members   -  Reputation: 1246

Like
0Likes
Like

Posted 07 September 2013 - 05:44 PM

Philip Greenspun is an MIT professor of software engineering / computer science and electrical engineering.  He has many good ideas about what an excellent engineering and computer science program should contain.  I really wish I knew about his advice before I entered college.  While I did receive a good education, I really thought it could have been better.

 

Here is a link to his software engineering teaching page:   http://philip.greenspun.com/teaching/  Check the links under the 'Background' section.

 

It's pretty good advice for when/if you look for a college/university program.  One thing that really struck me with his approach is that theory is something really left to the student (not to say that it won't be covered).  It's more or less something you'll pick up in the course of doing project after project.  And that's really the basis for his argument:  the workforce expects you to complete, from beginning to end, projects.  Getting requirements, continuous and clear communication with all parties involved, knowledge of tools and usage, et. al.  He feels a good education will have you completing your >20 or 30 projects, so that by the time you enter the workforce, instead of having only a few, if any, under your belt this very next project is number 21 or 31.

 

He also has a biting commentary about his attendance at a "typical" non-project, theory only course.  That's worth a read.  I also really like his ideas about having no summer breaks.  You aim to complete your degree in 3 years or less.  Think about it.  College is pretty expensive!  You want to be able to start paying off loans ASAP.  Why wait 4 years?

 

Anyways, I could go on!

 

My junior and senior years at college did have a decent mix of hands on projects under a non-Philip Greenspun curriculum.  I had to make an OS, an Ada compiler, a motherboard computer system with small OS using a Motorola 68000 (yes, showing my age) -- that was with wire-wrapping no less, yeesh!


Edited by Cosmic314, 07 September 2013 - 05:47 PM.


#16 Telastyn   Crossbones+   -  Reputation: 3726

Like
3Likes
Like

Posted 07 September 2013 - 08:13 PM

As a skilled programmer without a degree (yet), let me say in no uncertain terms: get a degree.

Even if you can _do_ the job, getting that first job is tons easier with a degree. HR departments (and most hiring managers) will hire a candidate with a degree over one without. And even when you do get a job, you'll get paid far less than a "more qualified" candidate.

And really, why would you *choose* to slave away 40 hours a week rather than spending 4 years hanging out with uninhibited coeds?

#17 Khatharr   Crossbones+   -  Reputation: 3031

Like
0Likes
Like

Posted 08 September 2013 - 02:12 AM

As a skilled programmer without a degree (yet), let me say in no uncertain terms: get a degree.

Even if you can _do_ the job, getting that first job is tons easier with a degree. HR departments (and most hiring managers) will hire a candidate with a degree over one without. And even when you do get a job, you'll get paid far less than a "more qualified" candidate.

And really, why would you *choose* to slave away 40 hours a week rather than spending 4 years hanging out with uninhibited coeds?

 

Uninhibited coeds tend to have an inverse financial effect when compared to employment.


void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.

#18 Telastyn   Crossbones+   -  Reputation: 3726

Like
1Likes
Like

Posted 08 September 2013 - 09:45 AM

As a skilled programmer without a degree (yet), let me say in no uncertain terms: get a degree.
Even if you can _do_ the job, getting that first job is tons easier with a degree. HR departments (and most hiring managers) will hire a candidate with a degree over one without. And even when you do get a job, you'll get paid far less than a "more qualified" candidate.
And really, why would you *choose* to slave away 40 hours a week rather than spending 4 years hanging out with uninhibited coeds?

 
Uninhibited coeds tend to have an inverse financial effect when compared to employment.

I have lost somewhere around $25-30k *per year* over the past 15 years by making less than my degree'd peers. And that doesn't include the 15 months I spent unemployed because nobody would hire a non-degree'd computer programmer with no formal experience.

Not getting a degree is absurdly more expensive than even today's universities.

#19 Washu   Senior Moderators   -  Reputation: 5369

Like
3Likes
Like

Posted 08 September 2013 - 04:47 PM

Yes. You SHOULD get a degree. Be it a CS degree, an EECS degree, or even an English degree. Any degree is always better than no degree.

There are a lot of reasons for why you should have a degree, but here's a few:
1. It shows you are able to commit to a project (getting your degree) for years on end. As an employer I'll often have projects that go on for many years and will require dedicated people to complete.
2. You will learn many things that are difficult or simply unlikely to learn outside of getting a degree. In the CS/EECS case you get all the theory that goes along with the practical. It is important to note that CS is much more theory oriented than EECS. EECS will have much more implementation side of things. Things you might end up learning include: Graph theory, set theory, complexity theory, combinatorics! All of these you COULD learn on your own, however its hard to correct mistaken assumptions and/or errors in your reasoning without someone else checking it for you (i.e. homework, quizzes, etc.)
3. It looks good on a resume.

Frankly, as an employer who gets to see lots of resumes... if two resumes cross my desk, each with similar portfolios but one has a CS degree and one doesn't, I'll take the CS candidate. Even if I did take the one without, I wouldn't pay that person as much as the person with the degree... because I don't have to. Any degree increases your income level, and that increase more than pays for the few years of learning and socialization you will undergo at a college.

In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.
ScapeCode - Blog | SlimDX


#20 Cornstalks   Crossbones+   -  Reputation: 6991

Like
1Likes
Like

Posted 08 September 2013 - 05:16 PM

Adding to the list of reasons why you should get a degree: connections.

 

If I had never gone to school, I never would have made the connections that have led me to where I am (not that I'm in some super high-up position, but I've had some cool opportunities). By going through school, you'll connect with professors, peers, and others which very well may open up a lot of doors (in addition to the extra doors a degree/education will open).


[ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS