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

#41 swiftcoder   Senior Moderators   -  Reputation: 10242

Like
0Likes
Like

Posted 13 September 2013 - 09:35 AM

If you can get the problem solving knowledge and experience without college, don't go. Simple as that.

 

Having known and worked with very capable engineers who eschewed university, my experience has been that a number of them suffer from a syndrome I term "cult programming".

 

Symptoms of cult programming may include:

  • Highly irregular solutions to common problems.
  • Regularly reinventing the wheel, because you aren't aware of the standard solutions.
  • A tendency to leap into implementation, without performing adequate design.
  • A tendency to leap into optimisation, without performing adequate profiling.

If you believe you may be suffering from cult programming, please consult your nearest senior engineer. If untreated, cult programming may lead to code bloat, feature creep, missed deadlines and failure to ship.


Edited by swiftcoder, 13 September 2013 - 09:35 AM.

Tristam MacDonald - Software Engineer @Amazon - [swiftcoding]


Sponsor:

#42 jjd   Crossbones+   -  Reputation: 2118

Like
1Likes
Like

Posted 13 September 2013 - 10:02 AM

 

If you can get the problem solving knowledge and experience without college, don't go. Simple as that.

 

Having known and worked with very capable engineers who eschewed university, my experience has been that a number of them suffer from a syndrome I term "cult programming".

 

Symptoms of cult programming may include:

  • Highly irregular solutions to common problems.
  • Regularly reinventing the wheel, because you aren't aware of the standard solutions.
  • A tendency to leap into implementation, without performing adequate design.
  • A tendency to leap into optimisation, without performing adequate profiling.

If you believe you may be suffering from cult programming, please consult your nearest senior engineer. If untreated, cult programming may lead to code bloat, feature creep, missed deadlines and failure to ship.

 

 

I have seen lists very similar to that used to describe programmers who are recent graduates, and that aligns pretty well with what I have seen. Personally, I think it has more to do with your professional education/exposure. I count myself really fortunate that my first job was with really good engineers, and that helped me to progress from 'recent graduate' level to... well, a little better at least. And from that point I have worked with good engineers and so to steal (bastardize) from Newton, if I have seen further it is because I stand on the shoulders of giants. Or, more simply, I became a better software engineer because I worked with good engineers. College degree or not, if you end up working with crappy engineers you are unlikely to be exposed to concepts and practices that will help you to become a good engineer.

 

-Josh


Edited by jjd, 14 September 2013 - 01:47 PM.

--www.physicaluncertainty.com
--linkedin
--irc.freenode.net#gdnet


#43 Shaquil   Members   -  Reputation: 815

Like
1Likes
Like

Posted 14 September 2013 - 07:49 AM

Having dealt with many bozos on forums who think snappy jokes are legitimate forms of long-term life advice, my experience has been that a number of them suffer from a syndrome I term "negative justification". People who suffer this syndrome tend to justify something they've done mainly through convincing themselves that things would have been worse had they not done it.

 

Symptoms include:

 

  • Justifying doing some action by denegrating the people who haven't done it.
  • Blaming the flaws of specific people you've met in your life on some arbitrary trait they all share, and assuming that the same flaws exist in other people who share that trait. (Ex: "engineers who have eschewed college ruin everything!")
  • Convincing yourself that all benefits from something you've done justify having done it. (Ex: Saying things like: "You can get industry contacts at school that land you a job!" As if you can't do that at conventions, conferences, club meetings, bars, and park benches)
  • Assuming, without justification, that you are currently better off for having taken some action than you would've been had you not. (Ex: "My CS Degree taught me problem solving!" As though you could not have learned problem solving as well, or better, without the degree.)

If you think you may be suffering from "negative justification" syndrome, please consult your nearest psychiatrist. If untreated, "negative justification" syndrome could lead to  working a job you don't love so you can pay off debt you shouldn't have. Eventually, you may find yourself writing unnecessarily argumentative forum posts to boost your ego during coffee breaks.



#44 Cornstalks   Crossbones+   -  Reputation: 6991

Like
4Likes
Like

Posted 14 September 2013 - 09:57 AM

Ex: Saying things like: "You can get industry contacts at school that land you a job!" As if you can't do that at conventions, conferences, club meetings, bars, and park benches

Really? Sure, you can meet people at conventions, conferences, club meetings, bars, and park benches, but I have first hand experience that university gives you great opportunities to network. No, it's not the only opportunity you'll have in life. But it can be one of the best. My most valuable contacts have all come from my schooling.

Anyway, I'm going to try to give the most unbiased opinion I can here.

 

Sure, you might be able to learn what you need to to be a great software developer without ever going to school. But:

  • Programming jobs these days are usually not one-man-hacking-in-the-dark kind of jobs. Most programming jobs these days are with companies that have HR. HR can be a huge pain in the butt at times, but you still have to realize your resume goes through them first before you get an interview. And HR cares about certificates, degrees, etc. Even if you (or your future boss) don't care. You might think this is dumb and not how life should be, but that doesn't change the fact that that's how it is.
  • University courses give you an opportunity to learn something from someone who has experience, face to face. You can ask questions on forums and the Internet, but nothing beats the ability to ask someone one on one, face to face. Some topics are difficult enough or uncommon enough that having one on one, face to face interaction can make all the difference in the world.
  • You'll have opportunities to do research. You may not care about doing research, but if it's something you're interested in, university is pretty much THE place to be.

 

I'll be the first to admit University isn't a rainbows-and-butterflies kind of place. Sure, there are some dumb hoops you might have to jump through (I almost got kicked out of school for not having 2 semesters of a foreign language). It's not super cheap, either (though if you took junior high and high school seriously enough, getting at least some kind of scholarship or financial aid should be pretty possible). And yeah, you might take a class and say "Boring! I learned this all on my own already!" But I personally think you get out of university what you put into it. Which means that if you do it right, you can get a lot out of it.


[ 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 ]

#45 swiftcoder   Senior Moderators   -  Reputation: 10242

Like
0Likes
Like

Posted 14 September 2013 - 06:05 PM


I almost got kicked out of school for not having 2 semesters of a foreign language

I fell about laughing when I read this - I completely tanked my final year GPA because I decided to try and cram in a year of French to qualify for a second undergraduate degree...


Tristam MacDonald - Software Engineer @Amazon - [swiftcoding]


#46 Promit   Moderators   -  Reputation: 7344

Like
3Likes
Like

Posted 14 September 2013 - 08:06 PM

 

Ex: Saying things like: "You can get industry contacts at school that land you a job!" As if you can't do that at conventions, conferences, club meetings, bars, and park benches

Really? Sure, you can meet people at conventions, conferences, club meetings, bars, and park benches

 

True in theory. But let's face it, the vast majority of people here can't socialize productively and voluntarily without at least two drinks biggrin.png School forces you into it by group projects, clubs, etc. In all seriousness, why do so many people meet their spouses in college? It's very difficult to find that level of social interaction once you've moved out of that environment and the same goes for professional networking.

 

If you do choose to try and make a go without the degree, there's a few things to keep in mind IMO:

* if your school grades were good, then there's no real problem with enrolling after a few years in the work force, should you decide that the degree is a good idea after all. But it's awfully hard to go back to school psychologically and it will be much more difficult to connect socially with the people around you.

* You better be really god damned incredibly good at your craft. It is not enough to be a "good" programmer or even to be better than your peers. For this to be productive, you need to be stellar. That means a lot of work, a lot of research, a lot of DIY projects. Good software engineers with degrees AND ability AND experience are plentiful right now, so competing with that is not trivial.

* Pick up the standard textbooks for key pieces of the computer science education -- data structures, algorithms, computer architecture, operating systems, databases, etc. Know them well. This actually applies to everyone in the field regardless of background.

* Specialize. Life will be easier if you are really good at one particular thing and have the knowledge and projects to back it up.

* Understand that you will always be forced to prove more than your peers and paid less for at least a while. Some job opportunities will never call you back at all or will inexplicably skip over you. Comes with the territory.

* Interact with the rest of your peers in every way possible. Social networking (especially Twitter), conferences, meetups (IGDA etc), all of it. You need to be actively outgoing.


Edited by Promit, 14 September 2013 - 08:15 PM.


#47 pinebanana   Members   -  Reputation: 475

Like
1Likes
Like

Posted 15 September 2013 - 02:25 AM

Okay, well this blew up. I'm definitely going to do a degree, especially with all the points made.


anax - An open source C++ entity system


#48 ChaosEngine   Crossbones+   -  Reputation: 2469

Like
1Likes
Like

Posted 15 September 2013 - 04:37 PM


Programming jobs these days are usually not one-man-hacking-in-the-dark kind of jobs. Most programming jobs these days are with companies that have HR. HR can be a huge pain in the butt at times, but you still have to realize your resume goes through them first before you get an interview. And HR cares about certificates, degrees, etc. Even if you (or your future boss) don't care. You might think this is dumb and not how life should be, but that doesn't change the fact that that's how it is.

 

This. Seriously this.

 

My wife works in HR and has previously worked as a recruiter. She's told me stories where applicants for a job with fantastic experience weren't even interviewed because some higher up decided they needed a degree. 

 

Hell, you can have all the necessary experience and qualifications and still get discarded if that isn't clear enough on your application. 


if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight

#49 Washu   Senior Moderators   -  Reputation: 5368

Like
2Likes
Like

Posted 15 September 2013 - 05:35 PM

 


Programming jobs these days are usually not one-man-hacking-in-the-dark kind of jobs. Most programming jobs these days are with companies that have HR. HR can be a huge pain in the butt at times, but you still have to realize your resume goes through them first before you get an interview. And HR cares about certificates, degrees, etc. Even if you (or your future boss) don't care. You might think this is dumb and not how life should be, but that doesn't change the fact that that's how it is.

 

This. Seriously this.

 

My wife works in HR and has previously worked as a recruiter. She's told me stories where applicants for a job with fantastic experience weren't even interviewed because some higher up decided they needed a degree. 

 

Hell, you can have all the necessary experience and qualifications and still get discarded if that isn't clear enough on your application. 

 

I do not work in HR, but I do see a lot of resumes that have been vetted through HR departments.

 

Usually if we have a job opening, we may get a thousand or two thousand applicants for the job, and usually about 300-400 of those resume's end up on my desk at some point.

 

At that point you just need to find a way to sort through and discard resumes. There are a lot of techniques for this, but here's a list of things that tend to get me to chuck your resume:

  • Colored paper - Automatic discard. If its not on white copy paper, or high quality white paper, I'm not even going to bother looking at it. Nevertheless, I still get resume's on the occasion that are printed on tan, or other colored paper.
  • Too many pages - Three is about the maximum number of pages I'll allow, if you have more than three pages on your resume then I'm probably going to toss it. Not because the information on those pages might not be important, but because its probably a fairly generic resume listing experience and jobs taken for things that I honestly am not hiring you for. It also is usually a lot of filler material that could have been omitted in favor of more meat.
  • Pages that are too blank - On the opposite end, people who have a two page resume, and one page is half or more empty? Chances are I'm not going to bother looking. If you're going to have a two page resume it needs to be TWO PAGES. That the second page needs to be at least 3/4 full. If you have less experience or content for two full pages, don't have a two page resume.
  • Font, font-size and spacing - Oh god, the number of resume's I've seen that are double spaced size 14 comic sans... Seriously, your resume should be either single or 1.5 spaced in Times New Roman. Arial or Calibri are acceptable too. As for font size, not too small, not too large. 11pt Calibri is pretty good.
  • Hand drawn UML, and written code. Color coded code. Any type of embedded examples
    I swear to god. Someone once sent in a resume that went through HR and landed on my desk. The first two pages were pretty good, the remaining 15 pages were printed source files. Don't do this.
  • No cover letter - This one may or may not break the pile... Depending on how many resume's I'm left with after applying the above filtering I may start to chuck those that are lacking in cover letters, and of those that remain, I READ the cover letter and discard the "form" letters. Form cover letters will almost ALWAYS get you chucked into the discard pile. Sorry, but if you cannot put in the effort to write me an actual cover letter, I'm not going to put in the effort to vet your resume and interview you.
  • Do you have a degree?
    This one may or may not get used, depending on the resulting pile from all the other filters. I don't view WHAT degree you have as being important. I view you HAVING a degree as being important. Having a degree does not mean you know jack diddly about your field. What it does mean is that you have the wherewithal to stick around doing a lot of work for something for four years for few immediate rewards. I.e. Dedication. That means if I put you on a project, you'll probably be able to stick through with it to the end.

    I can TEACH you anything you need to know, so having a degree doesn't mean you know anything. Most CS graduates are TERRIBLE programmers out of college. Why? Because most CS programs do not have you PROGRAM. You instead study and practice THEORY. But, at the same time, having that theory backing you is important for a lot of the work I tend to be doing. People who make claims like "you can learn graph theory on your own" or nonsense like that are wrong. You can attempt to, and might even succeed at having a "decent" understanding of graph theory, but without a third party to verify your answers you've not proven you've learned anything except perhaps how to do something wrong. EECS students tend to come out with a lot better programming skills than their CS counterparts as they tend to write more code, but they lack in other areas. So, as I mentioned above, what degree you have doesn't really matter.

    Work experience doesn't really count in place of a degree unless you've been in the industry for a decade or more. If you've got 3 years of "programming" experience from "Best Buy" I'm probably not going to bother interviewing you :)
  • Portfolio
    Your portfolio matters. Not only do I want to see your source, but your formatting matters, your statement of purpose matters, your documentation (both inline and external) of your code matters. If you have a website that you link on your resume, I expect to find relevant samples of your work on or trivially linked from that website. If I have to hunt your website to find your samples, I'm not going to bother. So either setup a dedicated part of the site that your resume links to, or make your website your portfolio.

    Now, if you've got professional experience, then not providing source is probably a good idea, but I still expect you to link to those things you worked on, and I still want to see samples of YOUR WORK. That means stuff you wrote on your own, projects of your own. Not just "oh yes, I did this and that and that other thing I linked to." because you know what, I can link to anything I want too.

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


#50 lee101   Members   -  Reputation: 132

Like
2Likes
Like

Posted 16 September 2013 - 05:00 AM

I worked as a web developer for 6 months before going to uni.

 

I decided to go to uni (Computer Science) in semester 2 and caught up to people by doing summer school and extra papers, eventually i managed to finish my degree in 2.5 years :)

 

I was in a similar situation to you, it felt very easy at first but it quickly picks up. It was good because i had the option of taking on a higher workload and progressing quicker. You'll have an easy A+ for a while until things get harder around year 2-3.

 

For me after finishing uni with ~30k of debt in 2012, university has already been and always was, well worth it.

 

I went to uni at The University of Auckland, New Zealand. Other Good uni's in Aus are similar i believe.

 

You certainly can work while you study, i got an internship after my second year for 3 months, a 5k scholarship from the company for my last year and worked at the university teaching for about 12 hours a week in my final year which all really helped me get through it :).

 

There are some very real benefits of university which others have mentioned, it gives you time to work on things you want and gives you a huge network of friends which will help you through your career/life and heaps of other stuff.

 

I would recommend that if you choose uni go with a more flexible course like CS because it gives you more freedom to avoid dull subjects/lecturers and move into doing things you like, i wouldn't want to do the general first year of Software ENG but thats just me.

 

Lee Penkman

Addicting Word Games

Word Smashing



#51 warnexus   Prime Members   -  Reputation: 1478

Like
0Likes
Like

Posted 16 September 2013 - 06:07 PM

Some internships require current enrollment in college. A degree just mean you are able to sit still and absorb the knowledge even you like or do not like it. If you did well, it shows endurance, perseverance and a seriousness of committment and possibly shows you know how to budget time.



#52 Cosmic314   Members   -  Reputation: 1245

Like
1Likes
Like

Posted 16 September 2013 - 06:46 PM

As has been referenced earlier, if you want a job you need your resume in the hands of the hiring manager (obvious, right?).  What are the most effective ways to do this?

  1. You have interned for the company.
  2. You know the manager.
  3. You know someone who knows the manager and who vouches for you.
  4. You attend any seminar / conference / job fair that puts you into direct contact with the manager.

As Washu mentioned, HR receives and rejects thousands of resumes before any manager gets a whiff of them.  At larger companies they use "search" terms to create a score.  This leads to resume padding, sometimes to ludicrous levels.  Bypassing HR, if possible, dramatically increases your odds.  Tying the above knowledge to a university.....

 

One overlooked aspect of education at a university is that they tend to have great connections to industry.  Often they will have a resource center where they invite recruiters to interview.  Typically the recruiters are either professionals who visit with hiring managers, or the managers themselves.  Put all those big dollars you're spending into good use and attend these interviews!

 

The job resource center will usually host co-ops and internships as well.  As I've mentioned earlier, if you spend some time with an employer you get some "face" time that no resume can supplant.  If you're at these jobs learn as much as you can.  Make as many friends and connections as possible.  Even if you discover that the actual internship or company isn't exactly what you want to do, there's a good chance one of your connections will know a perfect match for you.  They'll refer you through a friend or have direct contacts with a manager (which allows you to bypass HR).

 

Also, internships tend to pay money.  I remember mine well.  Instead of pouring concrete with the local construction company for a summer, I was in air-conditioned bliss, making 3x that salary and following my educational goals.

 

Anyways, best of luck!



#53 Irlan   Members   -  Reputation: 1617

Like
0Likes
Like

Posted 23 September 2013 - 08:32 AM

Worth it a lot. I'm currently doing Information Systems, and I'm planning someday to get a BS in CS. Every teacher recommends. But CS is something that you can learn at home. Just google CS books, read, understand the concepts and implement them.


Edited by irlanrobson, 23 September 2013 - 08:34 AM.


#54 swiftcoder   Senior Moderators   -  Reputation: 10242

Like
1Likes
Like

Posted 23 September 2013 - 09:29 AM


But CS is something that you can learn at home. Just google CS books, read, understand the concepts and implement them.

To my mind, this is sort of like saying one can learn to be a hibachi chef by reading a book. While it is technically true, in practice most people who try will end up cutting a hand off.

 

There is something to be said for having an experienced mentor guide you through reading that CS book...


Tristam MacDonald - Software Engineer @Amazon - [swiftcoding]


#55 assainator   Members   -  Reputation: 681

Like
1Likes
Like

Posted 23 September 2013 - 10:08 AM

Worth it a lot. I'm currently doing Information Systems, and I'm planning someday to get a BS in CS. Every teacher recommends. But CS is something that you can learn at home. Just google CS books, read, understand the concepts and implement them.

It should be noted that this mostly depends on personal experiences.

 

I myself have only visited 60-70% of the lectures given in my first year. Why? Because I didn't need the courses that were trying to teach me how to program (didn't need means I passed them with very good grades in this case). However, the courses related to algorithms, math, data structures, math and formal languages (to name a few) were very useful for me as I only knew the absolute basics of those subjects. At the moment, I'm visiting close to 90-95% of the lectures as I really benefit from them.

 

A book telling you a problem can be solved with a certain equation and another problem can be solved with another equation is something totally different than a teacher describing how those equations are formed and how they are (not) related to each other. The same can be said for programming paradigms: every person with some decent knowledge about programming can learn a paradigm. Period. However, how certain paradigms are related, can (not) be combined and/or why they are (not) useful is something a lot of internet resources and books neglect to point out. (I know, there are of course exceptions to this)

 

My point is: while books and internet resources will/might (depends on your point of view) tell you what you need to know, teachers also tell you what you should want to know. (again, there are exceptions)


Edited by assainator, 28 September 2013 - 04:41 AM.

"What? It disintegrated. By definition, it cannot be fixed." - Gru - Dispicable me

"Dude, the world is only limited by your imagination" - Me





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