How Important is a Well-Known CS Degree?
syynnapse asks: "I've been interested in computer science since my mother taught me how to program in QBASIC when I was eleven, and I've wanted to be a developer ever since I learned C++ in AP Computer Science while in high-school. Now I'm in my sophomore year of college studying CS at a state university that isn't particularly known for its CS program, but I'm quite happy and personally think I'm learning plenty. My father thinks otherwise, and the deadline for transferring successfully is approaching quickly. What chance do I have in the real world with a not-so-prestigious degree? Am I likely to be learning what's important? Am I looking at a series of awful jobs if I don't transfer?"
Here's my general rule on quality of college:
Unless you want to go for an ivy league type of degree (MIT, Stanford, Berkeley, etc.), as long as the college offers a strong program, where you go to school has ZERO effect on your life after your first job. I went to a average school (Cal State University, Chico), and got average grades. (3.0 average). I found a good starter job when I gradiuated, and started progressing on *merit* after that. Now, I am in a top design position at a huge networking company, and no one looks at my degree. When I interview people, I never look at the college, other than to verify that they got a degree.
The only caveat is if you want to get a high profile degree from a top of the line college. All the Phds I work with come from top drawer schools, and went to top schools from the bachlor stage on. It is more of a pedigree at that point, and it clearly matters.
Go to a school that has a good CS program, has energetic professors, is fun to live in (you can't beat Chico), and just do your best. Once you get a job, your accomplishments will distinguish you from the rest.
I am sure to be flamed by people who went to well known schools and swear by it, but none of the people I work with who have BS desgrees went anywhere recognizable. It is all about how you perform.
Good luck!
Todd
I have a CS degree from a state university that's not especially known for it's CS department.
I graduated in 2000 and didn't find the degree to be a hinderance at all. Granted this was at the tail of the bubble, but I was hired ahead of a Purdue and a U-Wisconsin graduate, both of which I'd consider to have far superior programs.
Why? First, because I interviewed well. I was able to interact with my future bosses and coworkers, I didn't lie on my resume, and I was eager to learn. Second, because I had relevent experience gained while I was a student. I found that working as a programmer for the campus IT department 15 hours/week and volunteering as a lead sysadmin for a student government / organization webserver to be far more relevent to the job then anything I learned in class.
Since that first job, I've found references and contacts to be the key to getting other interviews and offers. I don't feel like a state-U degree hurt me at all; college is what you make of it so learn to socialize, volunteer or take a part time job relevent to the field you want to work in, and concentrate on getting a good broad education. Take liberal arts classes and business classes, etc.
If you are learning, stay exactly where you are. You don't want to discover how horrible it is to attend class after class, year after year, and be learning nothing. I'm currently studying at a well-known university that's crashed a probe into Mars. But reputation and content are two very different things. As long as you're learning, stay where you are.
Besides, your university credentials are mainly useful in getting your first job. After that they are more interested in your previous jobs. So at worst an unknown university will just add one stepping stone on your career path.
Slashdot monitor for your Mozilla sidebar or Active Desktop.
Remember: *Learning* is what's important here, especially when we're talking about an undergrad degree -- I went to a small state school where there were 10-20 people in my classes and I recieved a much, much better education than my peers who went to large universities. Why? Because I could walk into my professor's office and spend an hour talking to him about class material, advances in computing or the state of the industry or whatever.
In my experience, the sort of jobs you'll get with an undergrad degree tend to value understanding and skill over who your degree is from -- if you can do the work, you're their person. If you're going to a job that requires a graduate degree, well, you can go to a high-profile school for your grad work, eh?
Aside from all of that, I've learned the hard way that you should follow your instincts. Follow yours on this one and stay put.
Every year during my review, I just pray the words "slashdot.org" aren't mentioned.
And money is money, but if a company doesn't hire you because your degree says Univ. of Random and not MIT, it's probably not a company you'd be hapy working for anyway. Though admittedly MIT is an exception; it WILl stand out. At least I think it would.
I know nothing
Your first job is all about who you know.
My college math prof.'s wife had a computer programming company; that's how I got my first job.
You're not going to be rich. You're just going to be a working stiff like everybody else.
Still, I'd listen to your dad. A really boring degree is a plus. It communicates to the rest of the world that you are willing to do will shit boring things, which is the value they're looking for.
Major in Business and take a lot of programming courses.
well i mean if you go to podunk community college, then year it may. but any major college, you will be fine.
i had one of the worst graduating GPA's in my CS class, but i managed to get one of the best jobs out of college. why? becuase of what i knew and what i did on my own time.
college simply teaches you how to teach yourself. if you are basing how you will do off how you do in class, then you are in for a suprise.
if you can teach yourself the new technologies and get your name out there somehow, you will be set.
but then again i am planning on getting out of the tech field in 2 years so take it for what it is worth.
WORK EXPERIENCE
Seriously, take a look at my resume (http://www.codesweep.com/about.cfm) you will see that there are plenty of interesting jobs on it (and I haven't throughly revised it in awhile, I could state more). While my college degree is a footnote at the bottom. While Cal Poly Pomona is a good school, it doesn't matter based on what's more attractive, the work or the school.
Bottom line: Find a good (even if cheap) job NOW. Failing that, grab an open source project at http://www.sourceforge.net and contribute something to get your name on the developers list. Something, anything for your resume besides a degree (whether Ivy League or State U) is paramount to a good job. If you can accomplish this, it won't matter if your degree says "WTF Coding University".
...in bed
Not as important as having some kind of experience. Have you tried looking at job requirements these days? They expect you to have written every program since the dawn of time.
Not that my CS degree from UCF is all that prestigious.
-- Having a Creationist Museum is like having an Atheist place of worship
It does matter for your first job.
Unless you know somebody, it's hard to get in to the truly cool jobs. Most companies only recruit at a relatively defined set of universities, generally where the founders and a few of the early employees came from. Which means you have to seek out companies more if you want to avoid being a coding grunt.
Once you are out for a bit, it matters far less.
Oh yeah, and a good CS degree is not about being taught. It's about being tortured into learning because your professor is really bright but can't teach. So he gives you hard tests and you have to teach stuff to yourself in order to pass. At least, that's the shared experience amongst most of the grads from top-10 CS schools that I've talked to.
Gentoo Sucks
Listen, I've worked with people who had degrees from prestigious schools, and people with degrees from state universities. I've seen little correlation between where the degree came from and the skill of the person.
If you are a moron, you will not learn at the best of universities.
If you are gifted, you will learn at the lowest of universities.
You would be FAR better served by going to a school you can afford, that you may spend your time learning rather than working to earn enough to go to school.
If you want to build up your resume, work on projects that you can point to - being a contributor to, or better still the maintainer of a well known project will look much better on your resume than a degree with no other experience.
I'd be more concerned about trying to find a good internship during your summers off - that counts for a lot more when looking for a job.
www.eFax.com are spammers
Employers weigh up the total sum of what you present in a CV. Other issues can outweigh you having going to a top school, e.g. track record. Additionally, going to a top school is no guarantee that you're a top student. However, when the employer weighs things up, a better school adds to the overall point count that leans in your favour, especially in comparison to other equivalent candidates (similar experience, different schools, for example). Even if you are "fresh paint" as a graduate job seeker: other issues count (e.g. you could come from a mid tier school, but you show that in the last 3 years, you've a passion for software that meant you contributed to multiple F/OSS projects, and you know your way around CVS, tools, unix, etc: employer will know they are getting a really capable and hands on person, not just someone who did well at exams).
Like most things in life: do your best to work at the highest level (i.e. going to the best schools, etc), but don't deprive yourself of a life in doing so.
If your dad's willing to pay the application fee,why not apply to a few top-tier schools? If you don't get in, you get to stay and continue enjoying yourself. If you do get in, you've already got everything you've learned already, plus you get to put the shiny new school on your resume.
The question of whether you should transfer or not is one you make AFTER you get accepted.
I would recommend you don't transfer to a slightly better school. If it's not top 5, I'd stay where you are.
I've been interested in computer science since my mother taught me how to program in QBASIC when I was eleven
No you haven't. You may have been interested in computer programming since age 11, but you didn't even know what computer science was, let alone have any interest in it.
Not that there's anything wrong with this; the world needs plumbers and electricians (and computer programmers) as much as it needs writers, mathematicians, and computer scientists. But this is one way the well-recognized undergraduate computer science distinguish themselves from the programs at the College of Upper Podunk. A good university will teach computer science, and expect you to work out how to write code on your own; a bad university will teach you how to program, and not even admit that there is anything more to learn.
Decide what you want from your years at university, and pick your university accordingly.
Tarsnap: Online backups for the truly paranoid
Asking a questions like this on slashdot is pointless.
People who have a CS degree from a well known school will say "most definitely!" so they can justify their own.
People who have a CS degree from Arkansas Community College will say "not really" because they got a job just fine with theirs.
People who have a computer-related degree from DeVry will say "nope" because they have a bottom-rung tech job.
People without a degree will say "most definitely not" because they have a job based on experience.
I'm trying to hire three developers, a project manager, and a business analyst where I work. We ignore the degrees they put down, unless it's for the pm spot where a MBA from anywhere will work. Some of the applicants have a BS in CS from places like Berkeley, but it doesn't really matter because they got it ten years ago...with an emphasis in cobol.
Having a degree on your resume will just help it get through the automated resume grabbing filters big companies use when fielding hundreds of applicants.
Oh, and I don't have a degree.
Degrees can also make you more flexible. If you're, say, a Perl programmer without a degree, the only jobs people will hire you for is Perl programming. If you're a Perl programmer with a CS degree, you are far more likely to get hired for jobs using, say, C++ if the Perl market is dry where you are. You are also more likely to be considered as a candidate for management, if that's what you want, if you have a degree behind you.
Getting a job that matches your particular skillset is easy if you're good at what you do, degree or not. But getting a job that may deviate from your skillset, but still exists in the same general area, will be impossible without the degree, but may be reachable with it.
As for schools, in my experience, the only schools that have been looked at with derision are the known degree-factory schools, particularly online and "nationally accredited" schools like the University of Phoenix. If the school sounds like a traditional university, it probably doesn't make a whole lot of difference which one it is.
You may see "or equivalent experience", but that's not most employers first choice. In most cases the degree does have significant weight, and given two people who are more or less equal, the guy with paper will win. Likewise, between the guy with a second tier state university CS degree will lose to the guy who went to a big name public university or well know private university.
Sorry, but it's a tough market out there, and if you ever want to be more than just a coder making half decent monkey money, you better go for the well known school.
"Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
I agree whole-heartedly. IMO, one of the most important things you should look for in a CS program is that they have a co-op program. This is a good way to get your foot in the door with a company before you graduate (and earn money.) Even if you don't stay with that company after graduation, recent graduate with 1 year of co-op experience will be looked on much more favorably that one without.
Not everything is analogous to cars. Car analogies rarely work.
I've found just the opposite here on the East Coast. Even if the job posting says "or equivalent experience" most companies toss out applicants who don't have a degree, regardless of experience.
If I had 2 job candidates with equivalent experience, I would take the one with the CS degree.
In my experience, developers with a CS degree have a much better handle on the underlying concepts; however, I'm not sure that a degree from a big school makes that much of a difference.
http://www.askthevoid.com
I spent less than 4k per year going to U-Mass Lowell instead of a 30k/ year Northeastern or such.
I bought a brand new subaru impreza WRX when I got out of school with the money I saved. I have no debt from college.
It took me a year to get a job, but I blame that on my poor planning (I didn't have an internship) and crappy market (got out of school 2002). Now I've been working in the Boston area as a software engineer writing web-based apps for about a year.
Keys to a good job are usually location (Boston, great; Boise, eh), interview / personal skills, and prior experience. No one ever really asks about college so much, as long as they know I did my time.
As far as what you get from the quality of professors, I find that varies. There were great professors and horrible ones. What I did learn is that if you put in the extra effort, you'll get way more out of it.
Reason, free market capitalism, and individualism
If you have a rich relative offering to pay, and you can go to MIT without going into debt, then yeah, of course you should transfer. But if, like most of us, you're going to pay for college, you should choose the best accredited undergraduate education that will leave you financially stable (read: debt-free) afterward.
You'll hear lots of people telling you about the value of name schools, the need for "networking" and other such hoo-hah. And often, they'll try to convince you that it's worth $30,000 in debt to get a top-tier undergraduate education. Don't buy it.
Remember -- at the undergraduate level, most schools will teach you the same things (oftentimes, from the same books). So why pay out the nose for an education that can be obtained for a fraction of the cost of a top-tier university?
Save your money, keep yourself out of debt, and you'll have more options later on. That's doubly important today, where Punjab's willingness to work for 30 cents an hour will almost invariably trump an expensive diploma....
Let's try not to let fact interfere with our speculation here, OK?
I suppose that depends on how much of an ass you want to be. You could either say "I have a degree in Computer Science/Engineering, so I know x, y, and z. I worked hard because I was interested in the material. Computer Science is a passion for me -- I would enjoy any job related to [programming|software engineering|etc]" or you could say "Don't even ask what I know, it should be obvious that I am an excellent employee because I chose to get a degree from [Cornell|Berkelely|etc]. I am interested in the highest-paying job you have -- I deserve it because I went to a school with a good reputation."
Note that the above is a blatant stereotype to make a point -- obviously the sentiments expressed are not exemplified by the majority of CS students anywhere.
Are you going to school in order to create a career for yourself that you enjoy and are passionate about? Are you going to school to impress friends, relatives, or potential employers? It cannot be said enough that the school's reputation has little bearing on the competency and attitude of the students. Employers are looking more for a positive attitude, appropriate skills, and a good investment for their company.
I know some folks who are currently in their undergraduate CS study and say things like "I could teach these classes! The only reason I am doing this at all is because the 'stupid' rules say I have to get a bachelor's degree before I get that Ph.D." Meanwhile, they are getting C's in those "easy" classes because their goal is the piece of paper and prestige (ego) rather than pursuing an activity or career they can be passionate about.
My best professors (in CS and otherwise) were those that began their careers in 'industry' and had a passion for engineering or CS and had excellent communication skills before moving into teaching/academia. Real-world experience is so much more useful than 'book-smarts' most of the time. (That's not to say that these professors weren't book-smart, too!)
While it might not matter all that much for standard entry level joe-programmer jobs, it most definitely matters in areas such as research and advanced development work. Take a look at the backgrounds of people who work for Google and any major research lab, for example. You will find a majority went to top-10 institutions.
If you can transfer to a better program, you should definitely do it. Not only does it improve your job prospects, you will probably learn more due to better teaching and resources. And don't underestimate the value of simply being around people of higher caliber.
Very few people, employers or otherwise, care about where you got your degree. All they care about is that you have it. There are times when an MIT or Harvard degree will carry more weight, but they're the exception, not the rule.
Doubt it? Try this little experiment. Your post implies that you're somewhere in your teens, which probably means that you've had at least a few different doctors (pediatrician, dentist, and GP, at the least). Do you know where any of them got their degrees? Do you care? Probably not... all you care about is that they did get an education. And these are the people whom you entrust with your health, your well-being, and potentially even your life. For most of the rest of society, it's the same way.
And then there are the people who leave the military in a box and enter a hole in the ground.
Joining the military is a serious commitment. It is not a job training program.
Wherever you choose to study, don't forget to learn java (yes, it's necessary where i live - even the basics), the MVC framework (multitier programming), UML notation, RUP, programming "good practices", etc.
If you can find a college where they have this material, well done! 50% of programming is having a good design. That's what makes the difference between a senior software developer and a... (despective)programmer.
A "programmer" can plug bits and pieces of code, drag some icons and have a visual basic program. A developer knows how to abstract data, ENGINEER applications, frameworks, and make a very good job, saving time and money.
This will give you a huge advantage over your competitors, when you start looking for jobs.
Also, do NOT be conformed with what you learn on school! If there are additional courses at college, say, a new programming language, or a new framework from X or Y company, do NOT - repeat, do _NOT_ ignore them just because they're not required for your grades!
This mistake costed me 2 long years of unemployment (and the subsequent stress and stomach aches) after graduating.
Tell that to the airforce and Navy, who's major recruitment campaigns are paying for your education. I have friends who are or were infantry in several branches so I know better, but the recruiters i've spoken with pitch it EXACTLY as a job training program, especailly the airforce with their insane number of desk/tech jobs
If you can't see the value in jet powered ants you should turn in your nerd card. - Dunbal (464142)
Sorry, but it's a tough market out there...
I think this is a very important point. Right now, the market for coders is very, very tough. I see a lot of people posting here saying that grades don't matter after your first job and how the technical interview is way more important that how you did in school and all that jazz. I humbly suggest that all those comments might be true in a decent market. But the market is pretty bad right now and if you want any kind of a decent job, I would suggest that you make yourself look as good as possible. And that involves getting as impressive a degree as you can. As someone else noted, your academic credentials are going to be used by HR as a bulk filter to cut down the 100s of applications they receive down to a manageable number they can forward to the technical people. You may have lots of impressive experience and may be great in a technical interview but how is some overworked secretary in HR going to figure out what a genius you are?
Top schools pre-screen individuals for smartness and potential far better than any recruiter I've ever hired to screen resumes for me. I don't care if it's a computer music degree PhD dropout or a electrical engineering BS -- if it came from Stanford or MIT, I know the guy's smart.
However even with a BS from U of Springfield, a MS from U of Old York, and a PhD from North Virginia; and the best recommendations of a recruiter I have no clue if it's a smart guy or not.
I dare say that an 11 year old just finding out about QBASIC may indeed become interested in how those lines of code become translated into whatever shows up on the screen, and THAT, indeed, is Computer Science. Programming is a tool. Just because a person deems to use a wrench doesn't mean he isn't a mechanical engineer.
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
I went to a school that was not known for its CS program and it didn't seem to matter to anyone I interviewed with. What did matter was my grades. With a 3.0 average I was getting offers 30-40% below what the 4.0 students were.
Otherwise it depends on what you plan to do with the degree. If you want to work in the MIT AI Lab, then you better go to a name program and get perfect grades. If you will be happy being a developer somewhere writing financial software, then I don't think it matters.
I also think that showing people the practical things you did while you were in college, not just class work, matters. I wrote a FORTH compiler (while, interpreter, really) from scratch and I think that impressed people that I could apply all the theory I had learned.
They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.
While making an impression is important, having a "big name" degree is not as cracked up as it is made to be. Others here have suggested getting real experience in a co-op program. That is probably the most important thing to look for in a school. Schools with good partnerships can provide you with real-world experience which will open more doors.
Almost as important however is the which path within the IT world do you want to pursue. If you're looking to do more than code then finding a school with an IT department within a school of business might be helpful. If you want to specialize in graphics then look for a school with a good program involving fine arts or engineering.
So don't get downhearted about being at a so-called "second-tier" school if that school offers unique or interesting paths to follow.
I went to a small state school and my first job was at a Fortune 50 company! I've transformed that into a very good upper management job at a well-known international company in less than 10 years.
Of course we torture people, we need the information --Gen. Pinochet
Having a degree from a big-name school will help you in two cases: getting your first job, and if an employer ever has to choose between you and an equally-qualified and equally-likeable applicant with a degree from a less-prestigious school. The first hurdle is one you only have to go over once and which you will get over one way or another, and the second is not terribly likely to happen.
I don't have a degree, and I'm the most senior and highly paid developer at my company. I won't tell you that not having a degree hasn't hurt me -- it has, mostly by making it much harder for me to get that first "real" job, and obviously, there are some companies that won't consider me. But I also do a lot of the hiring around here, and I can tell you that I don't pay too much attention to where new hires got their degree; I pay a lot of attention to prior work experience, code samples, references, and demeanor during interviews. I've worked with some people with degrees from prestigious schools who were terrible programmers and horrible coworkers, and I've worked with great programmers who were fabulous to get along with who had two-year degrees from local community colleges.
If I were you, I'd stay put. Of course, if your dad is going to foot the bill for a fancy school, you might consider it. Otherwise, the massive burden of student loans for that sort of thing might be a lot more trouble than it's worth.
Proud member of the Weirdo-American community.
I think there are a couple advantages to a top-flight program.
First, you'd be in the company of much brighter, more driven, higher-achieving students. If you're really into computer stuff, then this could be fun, motivating, and extremely educational-- classes and professors aside.
Second, stronger programs are more likely to focus on ideas beyond mere software development: the theory of computation, algorithm design, and mathematics. Now, if you just want to build mundane user interfaces, this would all pretty much be a waste of your time. However, if you're interested in doing work that involves some level of challenge beyond just structuring the software itself and getting algorithms out of a book, then this stuff can be really useful.
You could graduate from your current school, work for a while, and-- if you decide you need deeper knowledge-- go get a master's or PhD somewhere else.
I don't ordinarily favor "me too" posts, but this one says almost exactly what I would have: Stay in your small college, ace your Bachelor's degree, and if you want a big-name degree, get it in grad school. And I'm not just saying this to vindicate myself, I'm telling you to avoid mistakes I made. :-)
I also believe it's the student, not the school. The really top-flight CS schools (e.g., Berkeley, CMU, Stanford, MIT, CalTech, Cornell) can help give you a boost, but mostly you're going to have to teach yourself anyway. If you're top-notch material yourself, you should concentrate on kicking butt at whatever school is most affordable for you and graduate debt-free.
Quickly skimming through previous discussion, I see people have been talking about experience, which is definitely more important than a degree I would say.
That said, a bachelors is becoming the minimum an employer expects of a potential employee, aside from interns. If you really want to succeed or are interested in computer science, you should look into going to grad school and getting at least a Masters degree; that way you can get your CS bachelors degree wherever and then you can go to a more prestigious grad school.
Learning MC68000 is remarkably useful if you have interest in what actually goes on inside the case of a computer. It's a useful theoretical tool (much like automata theory). Whether or not you will get to be paid for programming in was never the point.
It is similar enough to any other Turing machine on a piece of silicon to be a useful academic example.
An accredited CIS program teaches a bit more than Pascal.
A Pirate and a Puritan look the same on a balance sheet.
The most important thing in the market today is experience. Go look on Monster or any of the other sites right now, and you'll see one phrase quite a bit - ...or equivalent experience.
And Monster.com is where you find the -ahem- monster jobs.
DISCLAIMER: I'm an independent consultant.
In my experience, the good jobs, the real jobs, the ones that you really want to get don't come from job sites or the newspaper.
No, the good jobs are filled out on the golf course, or over fine wine at dinner, when two executives meet for business/pleasure.
The job interview really goes something like "Hey, one of my networking guys just got married and is leaving the state. Do you know anybody good?".
The words that follow that question are crucial. You should be ready to sacrifice animals to the higher gods to have your name follow such a question.
If the responding executive recommends you, you are almost guaranteed the position. You'll walk in with coveted status. You'll be appreciated for doing good work. And, you'll be paid decently without complaint.
It's OK to ask people you work with if there's anybody else who might need your services. If you're good, they'll actually mention your name prior to you meeting the referral, or meet with the referral with you.
And that's gold. Pure, and sweet.
Job? Newspaper? Website? There, you're guilty until proven innocent. You get no respect, as you are just a commodity easily compared to thousands of others. Every dollar you earn is "an expense". Yuck.
Referrals, baby. That's the ONLY way to fly. (and it's the ONLY way I've EVER promoted my myself!)
I have no problem with your religion until you decide it's reason to deprive others of the truth.
I would agree completely, especially if you are looking for an academic career. CS School prestige only matters if you are want to work at a CS school. And even then, it is only the grad school work that matters.
Six score characters.
Brevity being wit's soul
I have enough space.
In practice, most jobs'll look for certifications and maybe a degree as an afterthought. They're not interested in your actual knowledge, they're only interested in not being held accountable if you don't work out.
Lastly, you're going to get rotten jobs, whatever education and certifications you have. Most jobs are rotten. Especially in IT, where most companies are plain stupid. Many IT specialists and generalists stick with getting a well-paid job, rather than a useful and/or productive one. There are exceptions (eg: my current employer, where a number of key people read Slashdot) but for the most part, if you want an intelligent job, you need to work for yourself.
Oh, and stay out of the military, if you possibly can, even if you sacrifice Government jobs, loans, etc. IT professionals are snobby in their own way and have far stronger ties with intellectual pursuits than grunt work (with the exception of hauling servers and running cables, though you'll notice most IT staff "let" other people do such stuff, especially in public). Also, whenever there's a call-up of reserves (as at present), businesses lose out big-time. You can't get useful work from a person fighting in another continent. Nobody is going to hire you, if they think you'll cost them more than you'll make for them.
Also, many intellectuals and many higher-end IT professionals tend to be left-of-center, non-conformist and don't follow rules (without a major internal struggle). Exactly the opposite of what most militaristic and Government-oriented organizations want. In IT, you're there to get the job done, and if the rule book gets in the way, too bad. In something like the military or the civil service, you're there to follow the rules to the letter, even if that means nothing gets done.
My advice: Get the degree (and if you can get sponsored for a Masters, even better) but don't go for a PhD. Even if (and it's a big if) you get paid more for it, the cost of the degree and the cost of not earning for those extra years will often make it pointless.
After you've got your degree, get a certification. The program itself is likely to be pretty useless, but the scrap of paper at the end of it is worth a lot of money and improved job opportunities.
Don't get a student loan, unless you absolutely have to. Sponsorship is generally a better bet, doesn't charge interest, and the demands aren't quite so obnoxious. Businesses looking for new graduates and looking to expand in the medium-term will very likely be willing to consider some sort of deal. (eg: internship over the summers, plus a guarantee that they get first-pick on whether to hire you, after you graduate, in exchange for contributing towards the costs.)
A more dangerous path - but it's worked for some - is to ignore the whole degree/certification approach. Become famous or infamous for something so spectacular that even the most dim-witted of Human Resource people will know you're in the news, even if they don't know why. Few can pull this kind of an approach off, and several of those have spent years or decades in prison (eg: Kevin Mitnick) but those who succeed often get the Really Big Money. Those who fail will never move beyond minimum-wage jobs and will eventually die in obscurity and poverty. It's about the same kind of risk as staking not only your entire life's earnings but all potential future earnings as well on the lottery.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
In my opinion it depends entirely upon the type of job you're looking for. The computer field is rather messily divided between techies and intellectuals. It's a bit of an open system, with people migrating in both directions, and considerable overlap, which disguises the fact there there are, in fact, two camps.
Degree or no, fine school or barely adequate, you're going to start life as a techie. Welcome to the help desk, cubeville, or low-end development. Your geek-badge and a love of white-collar slavery is your passport to this world. And thus begins the journey. . .
You will gain experience, confidence and skill, and begin to be promoted. You will (hopefully) gain a reputation in your chosen fields, and garner the laurals of a job well done. You begin to plan a career path. Somewhere around Sr. programmer (substitute DBA, Network Admin. or Sys Admin as appropriate) something unexpected happens.
You see, at the upper end of "applied technical knowlege" there is a fork in the upward path. The broad road leads to middle management, and God help the poor souls who venture there. The narrow path leads to "think tank" positions.
It's true, most large companies have one or more senior geeks doing funded research, planning strategy, or generally dispensing wisdom on demand. They really do exist, but you don't see them because they live in the nice office building in corporate headquarters not in the programming shack.
Here's the important bit. These guys are hired for their brains, and to join the club you need to have the sort of broad-based understanding the almost inevitably comes from a top-notch college education. A B.S. gets a distainful sniff, but the doors gape wide for the ivy-league Ph.D's, and may open for an M.S from a solid school with a bit of persistance.
The self-taught crowd will howl and cry that it's not fair. They can program as well or better than their pedigreed peers, they have probably built an open-source terminal emulator, and they've labored in the same trenches, side by side for years. However, in reality, very few people teach themselves calculus, computer theory, materials science, economics (and don't forget ettiquite) with the level of rigor demanded by these positions. This is where the four, six or eight years of studying that "useless theory" becomes useful, even necessary.
I'm a self-taught techie with several certifications, facing this division. I'm 40 years old, and a Sr. DBA for a large firm, making a good salary -- end of the techie line. I've been courted for managment positions, which I don't want. I've got three B.S. and one M.S. degrees in various sciences, all from good schools, but no C.S. degree.
Over the past two years I've taken several C.S. classes from a good school - algorithm analysis, advanced data structures, automata, etc. I'll probably get an M.S in a few years, and maybe a Ph.D. after that, but more importantly, I'm learning all the little details that differentiate a computer scientist from a competent techie. There IS a differance, after all.
I would take the one without...in my experience, the one without usually has more drive, motivation and enthusiasm for programming...and I always hire for attitude, everything else can be taught.
As a software developer that doesn't have a degree I think I slightly disagree with you.
I'm totally self-taught. I've had to do a LOT of catching up on my own to learn the underlying theories behind good software design. If I had stuck with CS in school and stayed in school I'd have learned more about CS theory and would have more of a foundation to build upon.
Having gone through a good CS program that covers actual computer science and not just how to code is a big advantage. The hard part of software is designing it and fitting it all together and a good CS program teaches you that.
However, so many CS degrees are just coding certificates, more or less. the guy opposite the wall from me is an idiot. He cuts and pastes all of his code, not even paying attention to what it's doing, has singlehandedly brought down many production systems and broken almost every build he's been involved with, and is just generally an unpleasant person aside from that. He also has a bachelors degree in CS.
The academic CS culture seems to devalue things like communications and, well, anything that's not geeky, so you get a lot of recent CS grads that still have the social skills of a retarded goat, even if they could rewrite the Quake engine from scratch in 48 hours. That's useless in the real world. A good programmer has to be able to communicate as well as code and design software. There's a backlash growing against offshoring because of this (if the backlash hasn't made it to where you are, I'm sorry)
Furthermore, pure CS programs teach you nothing about business or how to survive in the corporate environment. If you don't understand the business of your employer, you're not going to be very good at solving its problems. The corporate environment has to be experienced to learn to navigate it.
If I had a resume from a recent MIT graduate and a 25-year self-taught veteran, it would come down to what the task is, if I were hiring. I'd take the MIT guy for buzzword compliant work and the vet for mission-critical stuff that has to be near-100% reliable. I've found that veteran programmers make an effort to cover the bases more thoroughly.
Unless your degree is from India Institute of Technology, of course.
Give up on the CS degree. Study economics, go to business school, and become a manager. Then hire lots of Indians cheap.
Suggestion: Don't go to college for a degree
We have been brought up in an environment where people have dictated to us throughout our lives that having a college degree will ensure your success.
This could not be further from the truth.
Now don't get me wrong, college will be able to teach you incredible things, in a fantastic environment with qualified staff and surroundings. But always remember that is why you are there, not for a piece of paper stating you "graduated".
What businesses look for:
I noticed in a post above that companies might want to hire you because you are more "flexible", this is garbage. Go look at job postings, take 10 random ones. They will tend to be pretty stinking specific. Look at it from their perspective: If they are going to spend money, it will usually be because of a direct need. "Hey, we need some Perl stuff done." "Hey, we need someone than can rewrite older programs into .NET." "Hey, we are in need of a person that can take a given WinSrv/SQL set-up and move it to Linux/Oracle." You'll quite rarely see a "Hey, we need somebody that can do stuff (we're not really sure, just a lot of stuff)"
What is becoming in demand:
Certifications! Again, look at those random job postings. Time after time after time you will continue to see more and more people caring less and less about college and more about certifications/experience. Look at it from their perspective: Take a guy who graduated with a MS in computer science, what does that tell you about his knowledge? Nothing. Take another guy, this one with CompTIA A+, LPI Level II, and a MCSE. What does that tell you about his knowledge? A lot.
But why?
It's one thing to have an accredited 4 year college put their stamp of approval on you. It's quite another to have the actual manufacturers approval. Sure my college could say: "yeah, this dude knows what's going on.", or I could be interviewing for a position in a Microsoft shop, and have Microsoft say: "This person has the knowledge to deploy and manage OUR software in a corporate setting."Always remember: A company is going to be spending money on someone, they want to be guaranteed that someone knows what they are doing. And as the progression of IT has made it, a degree doesn't match the power of certification.
"When I want your opinion, I'll give it to you." --leonstryker
Correct!
If you get some code monkey position with a software company that makes the same stuff over and over, you will never learn there how a processor is designed, how a compiler is designed, or how an operating system is designed. Since you don't know these things, you will NEVER have the same understanding of anything else. Unless I am mistaken and companies are now teaching their code monkeys all of these things... however I imagine they would rather have their monkeys spitting out redundant code.
Example: When writing in assembly or machine code, there are many instances that if you know how the processor is designed, you can change the order of a couple lines of code and it will run 500% faster, simply because of the order it moves things from register to register. This then effects the compiler which effects your coding. If you don't know about low level stuff like this, you will always be an inefficient programmer.
Pretty much agree with you there, but want to add one more thing:
It's not what you know, it's who you know.
Being geeks, I know it's sometimes hard to accept this.. but.. well, real world don't care if you accept it or not.. it's just a rule.
Being in a good school just gives you more opportunity to find people who may, say, more likely to be your boss, or help throw a resume in for you, or something. Not to say any other school won't do it, but people always get that sense of being together because they went to the same school - even if it was years and years later, and there would be no interaction otherwise...
It's all about the networking..
I'm not the devil.. just his advocate.
While the source of the degree (and sometimes the degree itself) likely matters little, a college with an excellent CS program is more likely to prepare you and teach you useful things you didn't know you needed/wanted to know.
Hunt your preferred prey at Aliens vs Predator MUD. Join the war at avpmud.com port 4000
I don't think being involved in OS projects really matters at all.
First of all, there's no company to call to verify other important employee attributes such as attitude, being a team player, ability to work under pressure to meet deadlines, etc.
Another issue is how reliable they are. They could work on an OS project for years, but be the type of person that wants to start working at 10am and call it quits at noon. That doesn't cut it in the real world.
My Tech Posts on Twitter
I do not have a degree.
I have been working without interruption for 15 years now.
And I have interviewed and be part of interview processes in many occassions.
The reaity is that the context is king. In some places they could not care less about your university degree or the school you come from.
In other places they did actively filter people from well known universities. In yet other places it was the other way around.
The only thing in common is that people had to demonstrate they knew their field, and the only case in which many places got really punctillious was in assesing skills (ridiculously complicated tests).
Very rarely you have two guys that, once properly assesed, score equally (if you are assesing the candidates properly that is, if you are just fooling around, then yes, paper may win, but I have seen in several occasions managers that lived to regret such carelessness).
IANAL but write like a drunk one.
Computer Science is a very young discipline compared to other engineering disciplines. This explains why there are so many computer scientists / software engineers who do not have a degree, did not go to college and yet have highly successful careers. This is characteristic(sp?) of young disciplines. Ignore it.
CS itself is getting older, more mature. People are starting to understand that just knowing how to hack doesn't quite cut it (always). In short, going to a college and getting a degree in CS never hurts (as opposed to not getting one, not opposed to getting one in some other engineering field).
If we agree to the above - ie we must get a degree in CS or EE or math or something related, we question where we must get it from. College degrees are not pieces of paper that open the door to getting a fat job. This is one of the perks for sure, but there are others. They open the door to contributing something for the betterment of humanity (by doing original research), they open up your mind by forcing you to interact with peers who are often better than you. No matter what your job, you will fall into a mental rut as compared to school. A school is only as good as the students that study there. The students are what makes the MITs and Stanfords of today - not the professors. If the professors were getting sub-par graduate students to work with or sub-par peers they'd leave.
This is why it is absolutely essential to try to go to the best possible school you can go to. You will get exposed to things that you never were exposed to. You will learn new things from both professors and students alike. You will take part in activities that will challenge your mind in multiple dimensions - something quite unparalleled in the "real" world.
And you never know - you may want to do research for life. You may want to go on for a higher degree. In all these cases, the better school always wins. You can get by with going to a lower school - in fact you can "get by" with not going to school at all. But our purpose in life is not to just "get by". The whole point is to do something great - something that you can point your finger to 50 yrs down the line and say "I did that and changed they way people think / do something". Always strive for the best.
yes, exactly! This is a big deal!
Also this works for regionally known schools. There are smallers schools that are well known in their area for having good alumni. It can have a similar effect, where you develop a bigger network, in higher positions, and more willing to help out fellow alumni.
I think its the small schools with lots of school spirit that help the most in networking.
I am 21, working in the bay area at a tech company, have been working since I was 15. I have more real world experience then many people around me. Though I am starting college in the spring because I see areas that would help me, I don't think it is right to pick someone purely because they have a degree.
This is just a fascinating discussion.
... And that was it. Never actually took a computer programming class. I think the only conscious choice involved was deciding that the girls in the English Lit department were better looking then.... well, then the guys in the Comp Sci department. I did end up getting a BS, so I wasn't math-phobic or anything, just never happened.
... And then I went to law school. Hah. That's what fascinated me so much about this discussion. The rules for lawyers are completely different. No so much where you went to college, but where you went to law school is the single most deciding factor for many firms. Obviously, this is a gross simplification, but as a general principle -- I think I'm right-on. (Just FYI -- I went to a school consistently ranked in the high teens, low 20's..... Good, but not great.) And most of the people in the really good law schools went to really good undergraduate institutions.
/., but I digress.)
I'm one of those coulda-been techies. I did all the requisitely nerdy things in high school -- captain of my chess team, played M:TG, built my own computer, taught myself HTML, completely socially inept.....
Unlike programming, practical experience is not particularly valued (with the exception of court house lawyers, for whom experience and bringing home the bacon is the only goal.) If you want to work for an established law firm, a good school with top grades is a necessity. Of course, luck plays a role, and there isn't come cabal sitting in judgment over the 2nd tier / B / C students.... But I think this is true, especially when starting out. (Again, FYI -- I went into government myself. Much less emphasis on schools.... There's just a lot less asshol-ism among government attorneys then among many (especially the larger) law firms.)
The comparisons are striking. Only one state today even allows people without a legal degree from a certified school to even sit for the bar exam. Historical examples notwithstanding (for instance, many Supreme Court justices -- in addition to Abraham Lincoln were self taught), the idea of a lawyer not having at least an undergraduate and graduate degree is laughable. And the very fact that whether going to a big-name institution is even seriously debatable made my jaw drop. (Of course, there's also the possibility that all the big name comp sci grads are doing something other then reading
So, yes, this post does have a point. And it's this: our young friend here may -- shocking, I know -- decide he wants to do something else with his life other then program or design software. Maybe he'll find his great passion playing the violin or studying history or -- god forbid -- as a member of the bar. He needs to think not only about the profession that he -- as a sophomore -- envisions for himself, but also what other doors may be opened for him at other schools. All in all -- the very fact he asked the question indicates he's doing his homework. I'm sure someone this thorough and seemingly conscientious will thrive in a variety of academic settings. But not every field has the same laid back attitude towards educational background. Should he want to pursue an advanced degree in the humanities, or go into academia, or any number of other fields that don't share the laudable emphasis on merit that CS has, he may want to consider other educational options.
And one last little tidbit -- as much as I joke -- I love the legal profession. Law school was one of the best and most challenging times of my life and my job now is rewarding and fun. Sure, there may be more asshol-ism among the legal community then the community at large, but eh, I just don't hang out with those types. And the breadth of jobs I'd be considered for (outside the traditional legal roles) is astounding. Unlike a comp sci grad, lawyers are presumed to have the competence to practice in any legal field -- and usual
They are right though... people with a degree ARE stuck up
They *can* be stuck up. But no more so, in my experience, than someone self-taught who's proud of the fact he didn't need anyone else to teach him.
But This can all be learned through books, and without college. Always remember this when you belive college is neccesary. At one point, the field did not exist, and the degree was not even a thought. This is not devine information given only to Professors. Some people are capable of learning this on their own. It is nice to have background in the subject, and to be brought up to current date, but if students stoped at what they learned in college, we would not have any advances. There are inventors, and tinkerers that have discoverd countless things without the help of college, or a degree. Look at gates. He did attend stanford, but not 4 years.
-William
God is everything science has yet to explain.
Being a "seasoned" college junior, enough experience to know all the back ways around campus, but smart enough to know i still don't know jack sh!t, I'm going to venture my opinion here: If you're hired because of your talent/experience with a language, but you ain't got a degree to show that you did more than high school English, you're most likely going to be hired for a programming job and not much more. Maybe a project leader eventually.
I will agree that there are people who never did more than algebra who are some of the best leaders/thinkers out there, and there are others who have the degrees but aren't worth the oxygen they use hourly.
But there is no denying that most of the people who make it farther than the duties of a programmer/techie/etc are the ones with the social, management, and problem solving skills developed in those 8-10 semesters of schooling (in my case probably closer to 11 or 12 semesters...)
I disagree. Here's an example of the educational difference: Where I went to college, there is a Literature class every semester on the works of Toni Morrison. At Princeton, there is also a Literature class on the works of Toni Morrison. The difference? At Princeton, that class is taught by Toni Morrison. Which students receive the greater insight into the author's ideas and themes?
Here's an example that may hit closer to home for Slashdot readers: At my colllege, in a comp. & cog. sci. class I had, we studied the research of Daniel Dennet. At MIT, students of cog and comp sci also study the research of Daniel Dennet. The difference? At MIT, those students study Daniel Dennet's work with Daniel Dennet.
So, go ahead- tell yourself that all you missed out on was the social network. While you're studying and lamenting (or not caring about) your social network, students at these institutions are learning at twice the rate (and 10x the price) with the assistance of primary 1st hand sources, their collegues, and their grad students who have also heard the story from the horses' mouths.
I teach in a CS dept at a middle-tier university. About 20% of our students could excel anywhere, but the other 80% would be overwhelmed at an top-tier university. I think it's important to find a good match between one's own aptitude and the level of other students at the college you plan to attend. If you find yourself consistently achieving beyond the level of your fellow students, you can always upgrade to a higher-pressure environment and take on more challenges.