Announcing: Slashdot Deals - Explore geek apps, games, gadgets and more. (what is this?)

Thank you!

We are sorry to see you leave - Beta is different and we value the time you took to try it out. Before you decide to go, please take a look at some value-adds for Beta and learn more about it. Thank you for reading Slashdot, and for making the site better!

Does Learning To Code Outweigh a Degree In Computer Science?

samzenpus posted about 5 months ago | from the most-bang-for-your-buck dept.

Programming 546

jjp9999 writes A college degree may not the best route when it comes to jobs in coding. Jobs for computer science majors flow aplenty, yet employers (and job-seekers) often learn quickly that the college grads don't have the skills. "This is because the courses taught in virtually all computer science curriculums focus on theory, and they only dabble in teaching practical programming skills," says Cody Scholberg on Epoch Times. This ties into a unique factoid in the world of programmers. Nearly half of the software developers in the United States do not have a college degree. Many never even graduated from high school. Instead, many aspiring programmers are turning to open source learning materials, or to the new programming bootcamps popping up around the United States. While theory does have its place, the situation raises the question of whether colleges are teaching the right skills people need to join the workforce, and what its place is amid the rise of open source learning.

Sorry! There are no comments related to the filter you selected.

Probably not. (3, Interesting)

Richy_T (111409) | about 5 months ago | (#47819127)

I wouldn't say learning to code outweighed a college degree. But having the mentality that would lead one to want to learn to code... That's a sure bet. Of course, that mentality might lead one to attend college but it's my contention that that is less advantageous for many (certainly it turned out to be a time sink for me).

Re:Probably not. (5, Insightful)

Jane Q. Public (1010737) | about 5 months ago | (#47819349)

I wouldn't say that learning to code necessarily outweighs a degree. But I do think university courses are too heavily focused on theory, and not enough practical application.

They complement each other. The big problem here (having gone though both, most but not all of the college being quite a while ago) is that a computer programmer back in the day HAD to know theory well, because programming was hard work! Input/output was so slow that you had to get it right the first time. Often you would present your code to somebody at a window to run on the mainframe, and if you were lucky you got a printout (!!!) the next day. If you got it wrong, a whole day was down the tubes.

Memory and storage were always in short supply, and CPU time was expensive. So everything had to be optimized. Sometimes for speed, sometimes for size, somethings a compromise of both. Theory was everywhere and you had to use it.

Heavy on theory, short on practice model that university CS was built upon, out of necessity. And they've kind of stuck with it, because universities are slow to change such things.

But I would also say that it is not a waste of time. As a practical programmer, theory will get you far. Look! De Morgan's Theorem just let me reduce those 5 lines of code to 2. You may not need to know linear algebra to work on sets of numbers, but if you do, hey, check it out. Now our program is half the size and our memory usage is down by 2 orders of magnitude.

So I don't think either one replaces the other. They complement each other. But I do think universities could concentrate, at least for their BS programs, a bit more on practical programming and just a bit less on theory.

Re:Probably not. (0, Offtopic)

Anonymous Coward | about 5 months ago | (#47819387)

In the US, having an H1B is worth more than a CS degree.

Is Coding Computer Science? Of Course! (1)

machineghost (622031) | about 5 months ago | (#47819135)

Let me rephrase that question: "does knowing how to do a job outweigh knowing abstract theory about that job?" I think the answer there is pretty obvious: *of course* coders who actually know what they are doing are more valuable to an employer than some kid with a CS degree and no idea how to actually do a programmer's job.

Re:Is Coding Computer Science? Of Course! (1)

machineghost (622031) | about 5 months ago | (#47819147)

Shoot Slashdot ate the greater than sign in my title. It was supposed to be "Is Coding > Computer Science? Of Course!"

Re:Is Coding Computer Science? Of Course! (1)

edibobb (113989) | about 5 months ago | (#47819265)

You are assuming that the job is only coding. There are many positions that require computer science in addition to or instead of coding.

Re:Is Coding Computer Science? Of Course! (2)

machineghost (622031) | about 5 months ago | (#47819343)

I'm assuming the vast majority of programming jobs require the ability to code, and no further domain specific knowledge. This is just based on my reading of many, many programming job listings over the years.

I'm sure there are jobs that require CS knowledge, just as I'm sure there are (programming-related) jobs that require Biology knowledge or Architecture knowledge or whatever. But all of those are niches: a very small subset of all programming jobs require those specific areas of knowledge. ALL programming jobs require coding though, and even among the ones that require domain-specific knoweldge, I'd imagine the bulk involve a lot more coding than anything else.

Re:Is Coding Computer Science? Of Course! (1)

gunner_von_diamond (3461783) | about 5 months ago | (#47819463)

I definitely agree with you that

the vast majority of programming jobs require the ability to code, and no further domain specific knowledge

However, the theory of Computer Science and the history of it is still important to teach an aspiring programmer/computer scientist (still don't even know what that really means.) I think that the CS curriculum needs to teach more practical applications of things, including pure programming, but also necessary skills like using a version control system. Or how to download and install packages on different platform or using continuous integration servers/databases and other commonly used technologies. Learning the theory of SQL databases from 50 years ago is certainly not as helpful as learning how to set up and actually run a local database. More practical/hands on work, less theory and reading text books.

Re: Is Coding Computer Science? Of Course! (3, Insightful)

Anonymous Coward | about 5 months ago | (#47819319)

Ever hear of the phrase you don't know what you don't know? What I have seen are people that are self taught and be a pretty good but they have a very limited domain of knowledge, specifically limited to the things they studied. Usually they have huge gaps in information from algorithms, discrete mathematics, and other things that are very valuable as knowledge that can be applied practically to their coding directly or indirectly. The computer science or computer engineering degree purposely teaches a wide range of topics so that you have a large tool set to work with depending upon the problem domain. Self-taught people almost always lack that knowledge. There are extremely rare cases, the exceptions, people have been self taught but they basically study all of the topics that you were studying computer science overtime. Those people are definitely be exceptions and I have met one or two of them in my 15 years as a software engineer. I think people are just fooling themselves saying they don't need a computer science degree it's cheaper and it's way easier basically a limit to how fast they can get a job and that is it and is there a way to grow sometimes but you'll always see people with degrees make a lot more money on average and have a lot more career opportunities. Besides most companies HR require some sort of degree and at most A computer science degree to be hired as a software engineer. Moreover, to be promoted into management you definitely need some sort of for your degree and often a Masters in business or something else. So once you hit that limit then you basically got to start over, get your four year degree and then get a masters to advance and you're doing this when you're old and have children and your basically doing in the toughest way possible when you could've gotten it out of the way when you're young.

On a selfish note, I will never, ever have to compete for a job with someone that does not have a bachelors degree. So this is good for me and it's not good for our country but hey you're going to do what you want to do dummy.

Re:Is Coding Computer Science? Of Course! (1)

Tuidjy (321055) | about 5 months ago | (#47819421)

Of course, a CS graduate who does not know how to program is a worse candidate for a programming job than someone with a few projects under his belt.

But I have to say, I have very little experience with CS graduates who do not know how to program. Every single Course VI (EE&CS) person whom I knew in college had serious programming chops.

No, I never took a programming class (I TA'd two) but it was because I felt I was a hot-shot programmer going in. Every summer I would take a project that would pay in the 15-30K range, and mostly, it would be finished before the first day of classes. Most of my friends had internships, and those were programming jobs. I very much doubt they were learning the basics on the job, either.

Many of my classes (computer vision, distributed computing, etc...) assumed that we had working knowledge of C (maybe C++) They all had final projects that could not be approached, let alone completed without serious programming skills.

As for those who felt that they needed to learn a language, they were classes for that, as well. I am not saying that there aren't people who graduate with a CS degree without having even basic programming skills, but they seem to be the exception to me, not the rule. Hell, every category has its fuckups. But in my experience, it isn't CS graduate without programming experience vs high school graduates with programming experience. It's programmers with or without a college degree. And frankly, for programming jobs, I tend to hire both. I also happen to spend hours explaining some basics to the ones without a CS degree. In the long run, they may become just as good as the ones with a degree, but they sure do not command the same salary. And it is fair: in general, they take more training.

Actually, in August, I had to recommend a book to one of my guys, and answer his questions about it. He had tried to implement a commit/roll back mechanism without any theoretical background, and had made a mess out of it. No big deal. He was smart enough to learn.

Re:Is Coding Computer Science? Of Course! (1)

lgw (121541) | about 5 months ago | (#47819609)

Many people are self-taught, not just "coding" but also computer science. It's not like you can't read a few books to get the underpinnings that will ever matter on the job.

OTOH, I've interviewed quite a few people with degrees but only very shallow coding skills (no real understanding of pointers or debugging), and who still didn't have strong fundamentals in computer science. I seriously wonder what some schools teach for four years.

But none of that really matters past the first few years in industry. Trying to get that first job without a degree is a heck of a thing, and of course it will pay less, but after 5 years or so it just doesn't matter.

Runtime vs Runtime (1)

drpimp (900837) | about 5 months ago | (#47819623)

With someone that just codes, runtime equals XXX ms, with a comp. scientist, runtime equals big O notation for time and space.

No (4, Insightful)

Drethon (1445051) | about 5 months ago | (#47819137)

There are too many things that an employer is looking for from a degree that has nothing to do with coding. Ability to follow through with a royally painful task, well rounded as in able to communicate clearly and plenty of other things.

Do colleges actually teach useful skills? I got the very basics out of my college and the rest I learned on an internship and on the job. I do think colleges could be improved but I'm not smart enough to say how.

Re:No (2)

Richy_T (111409) | about 5 months ago | (#47819171)

Colleges are a four year theme park for most. They could be improved by jettisoning about 80-85% of the student body. That doesn't pay for fancy buildings and grand soirees though.

Re:No (2)

Drethon (1445051) | about 5 months ago | (#47819385)

Yeah, do a 5 year engineering/CS course in 4 years and there is no free ride in any of it.

Re:No (1)

GameboyRMH (1153867) | about 5 months ago | (#47819579)

Don't forget being saddled with enough debt that they'll think very carefully about any risky job changes.

It's widget making (0)

Anonymous Coward | about 5 months ago | (#47819143)

It's all about what you know, not where you learned it. It's tricky to get started fresh without references in any career.

Re:It's widget making (1)

Richy_T (111409) | about 5 months ago | (#47819189)

For some. The only lead I ever got from my time as a student ended up very weird and cost some of the others who got involved with it a decent amount of cash.

how vrs why (0)

Anonymous Coward | about 5 months ago | (#47819163)

I think the debate then needs to focus on how vrs why. Theory pokes at thw why. Learning to program is learning how. Can you get a job knowing 'how' and not why? YES. I have a CS degree. The why is important to me. Its helped me grow and move beyond. And I think it makes me more flexible as I can understand things better than if I just knew how. This may not be the case for all.

From an HR persective, I would see the degree as 3rd party approval of what you've been exposed to. Its a benchmark of sorts. Coming with experience and self-taught programming requires you have a repuation that you can stand on build by yourself.

False premise (0, Insightful)

sinij (911942) | about 5 months ago | (#47819165)

>>A college degree may not the best route when it comes to jobs in coding.

If you plan to be employed in the technology field, then you have to have a degree in computer science, engineering, math, or physics. Without a degree you will find nearly impossible to get past HR gatekeepers. Nobody actually cares where the degree is from, just that you have one.

Sure, you can beat the odds and be The Exception, but life is hard enough already that it is unwise to invite additional difficulties.

Re:False premise (1)

glennrrr (592457) | about 5 months ago | (#47819221)

So you are disagreeing with the facts of the summary which say that half of coders don't have degrees?

Re:False premise (2)

sinij (911942) | about 5 months ago | (#47819329)

Absolutely. For any reasonable definition of 'coder' that approximates definition of 'employed IT professional' that statement is false.

Re:False premise (1)

Anonymous Coward | about 5 months ago | (#47819407)

It depends on the type of job you're going for - at the low pay end of the sector there are hundreds of developers writing small scripts, websites etc. They don't need a degree. At the highly-paid end of the sector where large complex systems are written (finance,telecoms,ibm,google) you're going to require a degree. Anyone can learn how to code. Coding well requires some abstract knowledge of how things work. Coding complex systems requires exposure to various concepts such as stacks, queues, IPC, distributed systems that computer science degrees give you an overview of. Degrees also introduce you to many useful algorithms, which can change how you approach tasks and teach you methods of how to design them. Try getting a self-taught programmer to deal with graph theory or convert a recursive algorithm to an iterative one.

Re:False premise (0)

sinij (911942) | about 5 months ago | (#47819561)

Sorry, degree has nothing to do with competence. Self-taught programmer competence distribution would be representative of general programmer distribution, with individuals falling above and below average competence.

The key reason you need degree is to get past the gatekeepers to get a job. We could argue about value and return on investment of getting a degree, but the article clearly focuses on getting a job.

it is what it is.

Re:False premise (1)

Drethon (1445051) | about 5 months ago | (#47819423)

Where I work there was one person hired without a college degree and the only way we were able to have him work for one of our major customers is because he was going to school while working. May be slightly different working in the avionics industry though (a lot of things are in many painful ways).

Re:False premise (1)

machineghost (622031) | about 5 months ago | (#47819249)

>>A college degree may not the best route when it comes to jobs in coding.

If you plan to be employed in the technology field, then you have to have a degree in computer science, engineering, math, or physics. Without a degree you will find nearly impossible to get past HR gatekeepers. Nobody actually cares where the degree is from, just that you have one.

Sure, you can beat the odds and be The Exception, but life is hard enough already that it is unwise to invite additional difficulties.

Maybe you missed this part of the heading (not even TFA):
"Nearly half of the software developers in the United States do not have a college degree."

That isn't just saying not a "computer science, engineering, math, or physics" degree, it's saying any college degree at all. So, presumably a lot more have college degrees with other majors.

So how exactly is almost half plus every programmer with a non-STEM degree "The Exception"? It seems to me the STEM majors are the exception.

Re:False premise (4, Informative)

sinij (911942) | about 5 months ago | (#47819347)

This is simply not the case today, especially as applied to 20-somthing trying to get a job. If you are still skeptical, I invite you to go to talk to HR and ask them what it would take to get entry-level job without a degree.

Re:False premise (2)

machineghost (622031) | about 5 months ago | (#47819425)

Since I'm directly involved in the hiring for my company I can tell you for a fact that we are desperate for qualified candidates, and their college status is like item #25 on the list of things we care about. Given the incredibly competative job market we have, the idea that we (or any Silicon Valley company) would turn down an otherwise-qualified applicant simply because they lack a diploma is laughable.

Now, that being said, we have multiple PhDs on staff, so it's not like we're anti-education. I'm just saying, when you can't hire enough qualified people, the last thing you want to do is throw up hiring roadblocks that don't server any real purpose.

Re:False premise (1)

sinij (911942) | about 5 months ago | (#47819491)

I wouldn't turn down qualified applicant ether, but the simple fact that HR departments exist make this unrealistic goal for any large organization. The resume of such hypothetical person will never land on our desks. Moment you grow past 20ish people shop and have to have procedures, policies, equal opportunity and all that other annoying but often necessary bureaucracy you lose your "just hire the gal/guy" ability.

Re:False premise (1)

machineghost (622031) | about 5 months ago | (#47819551)

Well, to be fair my current company is a "20ish people shop" :-) But that being said, my previous company was 100+ people, had an HR department, and was just as in need of qualified programmers (and just as willing to hire candidates without degrees).

I think you've had experiences with one specific type of company, but you shouldn't over-generalize your experience to assume the whole industry is identical.

Also, keep in mind that for many Silicon Valley companies these days, HR isn't the gateway, the on-site recruiter is. And that guy measures his success by how many qualified people he gets hired, so you can bet that (unless his employer tells him otherwise) he's not going to turn down opportunities simply because they lack a degree.

Re:False premise (1)

Vellmont (569020) | about 5 months ago | (#47819529)

  If you are still skeptical, I invite you to go to talk to HR and ask them what it would take to get entry-level job without a degree.

Not all companies have HR gatekeepers. HR is their to filter out job requirements. If the job requirements say "Or equivelent experience", that's your ticket. If there's no HR department (the case with many smaller companies), then that barrier is gone.

Bascially, I'm calling bullshit here. I've known many people, including myself with very successful careers in IT without college degrees. Please stop applying your experience to everyone.

Re:False premise (0)

Anonymous Coward | about 5 months ago | (#47819405)

There are no cites for the "almost half" . For all we know, some kid w/ no degree made it up.

Re: False premise (0)

Anonymous Coward | about 5 months ago | (#47819431)

That's even better for stems majors. They will always get hired first before some flunky 'self taught' looser.

False Falseness (2)

SuperKendall (25149) | about 5 months ago | (#47819257)

If you plan to be employed in the technology field, then you have to have a degree in computer science, engineering, math, or physics.

I have never found that to be true at any company I've ever worked for.

As a consultant I have never had anyone ask about my degree.

I do have a CS degree, and I find it valuable myself - but I don't think everyone needs one.

Re:False Falseness (1)

sinij (911942) | about 5 months ago | (#47819377)

As a consultant you already have your clients, list of projects and so on. Good luck getting that entry-level job to build these without a degree.

Re:False premise (1)

jmcvetta (153563) | about 5 months ago | (#47819441)

Without a degree you will find nearly impossible to get past HR gatekeepers.

Depends where you are. In my experience, what you say is very true on the East Coast. However in California it's not true at all, and I think out here not having a CS degree might even be a slight advantage.

Re:False premise (0)

Anonymous Coward | about 5 months ago | (#47819469)

If you plan to be employed in the technology field, then you have to have a degree in computer science, engineering, math, or physics. Without a degree you will find nearly impossible to get past HR gatekeepers.

That is absolutely false. I dropped out of a Computer and Information Technology degree program 23 years ago, having a couple years of paid experience already before college, and have been continuously employed as a software developer with several great companies ever since. A few might screen for a 4 year degree, but it's probably nowhere you'd want to work. For the most part no one cares. It's hard enough to find someone really good, the last thing you want to do is skip over someone because of whether or not he has a degree. We don't look at it at all when we hire where I work now. It is just not relevant.

Re:False premise (1)

Anonymous Coward | about 5 months ago | (#47819503)

That's really what I look for too and value in a degree -- it shows that they have at least some history being committed to a large effort, seeing things through, learning new things, having communication skills, knowing how to write technical reports, etc.

Sadly, most of those seem to be gone from most modern CS curriculum. It seems that with the influx of non-native English speakers in technical fields, that a lot of enforcement of coherent, correct English in papers and the use of brief, concise project/progress reporting has gone the way of the dodo. They get taught none of that now, and here I was thinking that being able to express yourself clearly, concisely and in an educated manner was a mark of higher learning. Now it's getting hard to find college students that have a decent idea of how to express their thoughts well in code or in technical papers. Makes putting a good team together that can interface well with the rest of an organization kind of tough.

Re:False premise (0)

Anonymous Coward | about 5 months ago | (#47819549)

Mod parent up. It's true.

I have a degree in Biology. I write C++ for a living. The degree in a scientific field from a respected school says that I am scientifically literate and know how to learn. These qualities are important to employers in technology fields who pay people essentially to sit in a chair and think.

That being said, a lot of coding jobs today are at startup companies where naive enthusiasm and passion for hipster-tier webcrap technologies are valued over experience or a degree.

India has this MCA/BCA degrees. (3, Interesting)

140Mandak262Jamuna (970587) | about 5 months ago | (#47819167)

In India many colleges and universities offer Master/Bachelor of Computer Applications degrees. It started out teaching simple Word, Excel, dBaseIII, FoxPro. Now a days they have added PeopleSoft and Oracle too. Some colleges add things like Ansys, ProE, ProSteel, Fluent, Ansoft HFSS etc.

These are the graduates who end up in USA via H1-B process most of the time in HR, IT, banking projects. Quality of the graduates vary significantly. But they all make decent salaries in USA, comparable to high quality engineering grads from US schools on salaries. I have seen these programmers of questionable abilities pulling 100K to 140K a year easily.

Computer Science vrs Software Engineering (5, Insightful)

Anonymous Coward | about 5 months ago | (#47819169)

Computer Science is teaching EXACTLY what Computer Science is supposed to. Theory. It's an academic pursuit, not an applied skills program.

If you want to learn how to build usable software, that is a different skillset.

I've got a Comp Sci degree, and I've been a professional software developer for the past 19 years. While some things I learned in my degree program have come in handy, I learned to code professionally AFTER I entered the workforce, and primarily from working with other people's code and being mentored by those that had done the job.

There should be a professional "Software Engineering" (or call it something else if the Engineers get upset about the term) program for those that want to actually build code.

Re:Computer Science vrs Software Engineering (1)

Richy_T (111409) | about 5 months ago | (#47819233)

I seem to recall that the Comp-Sci people where I studied got to choose BSc or BEng.

Though that may have been compensation for their building having fallen into a railway tunnel :)

Re:Computer Science vrs Software Engineering (1)

blue9steel (2758287) | about 5 months ago | (#47819325)

There should be a professional "Software Engineering" (or call it something else if the Engineers get upset about the term) program for those that want to actually build code.

Most developers are doing engineering work not science so I'd have to agree.

Computer Science vrs Software Engineering (1)

Anonymous Coward | about 5 months ago | (#47819465)

I think you hit the nail on the head here. I am kind of doing it backwards, but I learned to code, got a job, am currently working as a software engineer and am now getting a CS degree as a part-time student.

I don't think not having a degree has been much of a hindrance to me finding a job, but I want the degree for my own self-fulfillment, to set an example for my child, and because learning is awfully fun.

If anyone asks me for advice about whether or not you need a CS degree to develop software, I always say, "You don't need one, but get the degree if you can." Having to learn about pointers, memory management, data structures and algorithms is vital to being a better developer, and not always what self-taught programmers choose to learn.

Re:Computer Science vrs Software Engineering (2, Insightful)

pthisis (27352) | about 5 months ago | (#47819637)

Computer Science is teaching EXACTLY what Computer Science is supposed to. Theory. It's an academic pursuit, not an applied skills program.

If you want to learn how to build usable software, that is a different skillset.

Precisely. Getting a computer science degree in order to become a programmer is like getting a mechanical engineering degree before becoming a mechanic. Yeah, it's kind of vaguely field related and will help give you some background about why things are done a certain way, but it's not at all necessary to the occupation and for many people is a big waste of time. Conversely, a typical programmer can't do CS work (just as a typical mechanic can't do most mech E work) without significant training in that arena.

There should be a professional "Software Engineering" (or call it something else if the Engineers get upset about the term) program for those that want to actually build code.

My school had these, http://www.sei.cmu.edu/ [cmu.edu] vs http://www.cs.cmu.edu/ [cmu.edu] The SEI only offered masters and higher level degrees, though, which seems backward if anything.

One still needs to learn the fundamentals. (1, Insightful)

cruff (171569) | about 5 months ago | (#47819177)

So much of the code that I've seen is poor because the people writing it have not learned the fundamentals of requirements determination and problem solving skills. Then you need to understand how to choose appropriate algorithms and tool sets to apply. Then you learn what you should have known in the first pass and you start again on a better solution. While colleges attempt to produce people having those skills, they often do not provide enough practice. For all four years of my degree program, only one course was about software engineering itself, and because it was only for a quarter, not nearly long enough to cover what takes years to pick up once you are out in the real world.

You Never 'Need' A Degree (0)

Anonymous Coward | about 5 months ago | (#47819185)

You've never needed a degree to do anything. You can learn anything on your own in time. A degree is just a piece of paper you spend far too much money for to say you know something. But employers need to have some sort of proof to say you actually know what you're talking about. Having your own successful projects, some interesting employer history, or a degree are the only ways they can tell really.

Loaded Question (1)

buk110 (904868) | about 5 months ago | (#47819195)

Am I going to learn all the skills I need in undergrad? Probably not. But I will learn how to deal with idiots, how to get along with others, and commit to something and follow it through all the way. Plus HR wants the degree - so you get the degree.

Re:Loaded Question (0)

Anonymous Coward | about 5 months ago | (#47819495)

Plus HR wants the degree - so you get the degree.

Lick that boot! :-P

Yes (0)

Anonymous Coward | about 5 months ago | (#47819203)

People who can teach themselves to code are vastly more effective then those who do not teach themselves.

Waiting for the Apple ii assembly language stories (0)

Anonymous Coward | about 5 months ago | (#47819205)

*gets popcorn*

Programmer or Engineer? (1)

knightghost (861069) | about 5 months ago | (#47819207)

A Programmer Codes. An Engineer Designs. Which do you want to be? The theory that CS teaches is mostly and directly translatable to Software Engineering.

And on a tangent, anyone with the intelligence to get a CS degree should instead be focused on getting a couple bachelors then MIS or MBA. Twice the pay for half the work.

Re:Programmer or Engineer? (1)

jmcvetta (153563) | about 5 months ago | (#47819537)

An Engineer Designs. Which do you want to be? The theory that CS teaches is mostly and directly translatable to Software Engineering.

The considerably majority - tho by no means all - of the CS majors I have worked with couldn't design a clean, elegant API if their job depended on it. Alas, it never does.

Complete Bullsh*t (0)

Anonymous Coward | about 5 months ago | (#47819229)

Any decent candidate has *both* a CS education and experience. That's the way engineering has been since day one. This article has a sly hint that somehow getting a CS education makes you less fit for the job. Wrong.

The truth is that neither education nor experience makes you a good programmer. We all have to study our craft, and we all have to practice our craft.

It's possible to give yourself a thorough computer science education with self study. It's hard work, but possible. The trouble is, most self-taught programmers only dabble in the core CS fields. Data structures, algorithms, numerical methods, analysis of programs -- these are hard work. And 99% of the time, they're useless. But that 1% is what makes the difference when a hard problem comes along, and when it does, the knowledgable programmer saves so much time and money that it's worth it.

When a candidate comes in my door without a CS degree, he or she has a much higher hurdle to get a job. A degree doesn't prove you're a good programmer, but it does prove you know how to work hard, persevere, deal with asshole professors, and achieve a goal that takes years -- all critical skills on any project. Someone without a degree has to have a LOT of experience to show match this achievement. On top of that, there's a pretty good chance a CS grad actually knows computer science.

No degree = no job (0)

Anonymous Coward | about 5 months ago | (#47819267)

As a person who not only does software development but also hires software developers, I would never hire someone who doesn't have a bachelors in a programming related degree (CS, CE, MIS). Although they never have the exact skillset to be a very productive developer at first, they have a background in theory which is necessary to be a good programmer. Hiring people right out of school and expecting them to be productive immediately is stupid. But having the background to understand things like lists, arrays, hashmaps, variable context, and the difference between strong vs weak typing and the pros and cons of interpreted vs compiled languages is invalueable and people I have worked with that didn't have that background were poor programmers. If you want to get cheap labor by hiring right out of school, expect to have to teach them the specific language skills you are developing in. And of course the best people will have already been doing some sort of programming while in school so should have some experience.

Trade school vs College (1)

irrational_design (1895848) | about 5 months ago | (#47819281)

You are describing a trade school. Colleges/Universities are about a lot more than training job skills. I see computer science being about theory. Go to college if you want to study theory. I see software engineering being about practical work skills. Go to a trade school/boot camp/etc if you want to study practical job skills.

Re:Trade school vs College (2)

NewWorldDan (899800) | about 5 months ago | (#47819489)

In terms of hiring, I have yet to see a college or trade school that does an adequate job. Fundamentally, I'm hiring people to develop web apps on the MS MVC stack. That requires a bit of theory, architecture, security, and hands on coding skills. If you can't actually code, you're worthless. I give all applicants a CS101 level coding test. Anyone worth hiring will be done in under 5 minutes. From there, it turns in to an interview about your theoretical knowledge and patterns. Anyone without a basic grasp of security and best practices is a liability. And most recent grads, even if they have all that covered, take 6-12 months to really become useful. At which time, they expect to get paid a boatload of money, except I've got to somehow account for the expense of training them to be useful. It's all kind of frustrating, really,.

Two completely different things (0)

Anonymous Coward | about 5 months ago | (#47819283)

Computer Science is more math and theory and the underlying nuts and bolts.

Coding is just one specific application of that knowledge.

Don't know where the code runs (1)

jfdavis668 (1414919) | about 5 months ago | (#47819285)

One of our Java development teams was discussing a new project, and one stated she doesn't know where the code runs. I over heard this, and went over to join the discussion. This is one of our best teams, and know one knew the answer. So I explained how Java Server Pages compile, and where each piece physically runs on multi-tier architecture. When these people learned to code, they learn though an IDE. Hit compile, and deploy the code, and it goes off into wonderland to run. They never learn how it actually happens. Have the same issue with SQL. Without the mathematical knowledge behind it, coders can't write complicated queries. Just learning to code is a good career, but you also need someone with the depth of knowledge to make it all work.

Re:Don't know where the code runs (1)

jfdavis668 (1414919) | about 5 months ago | (#47819305)

Sorry, no one not know one.

Being a developer is about more than code (2, Insightful)

darylb (10898) | about 5 months ago | (#47819293)

Being a developer is about more than code.

For example:
1. You'll follow and (perhaps later on) write and refine software specifications. You need to learn different ways to do this.

2. You'll need to select appropriate algorithms for the task at hand, and evaluate performance for new code -- which you wrote against a trivially small amount of data -- against production data volumes.

3. You'll need to understand pros and cons of different software development approaches, particularly waterfall and the broad category of "agile". Why would you pick one over the other?

4. You'll need, at least on occasion, to understand one or more software modeling systems, and perhaps to create models that represent what you're suggesting.

5. You may very well need advanced mathematics for your job. Just a couple of months ago, I had to write some vector-handling code, in PL/SQL of all things.

Sure...you could learn all this on your own. But a good compsci curriculum will provide you with at least an introduction to all of these, with some kind of attestation of basic familiarity.

If you want to be "just a coder," go right ahead. However, you'll never be all that competitive with those possessing the larger body of skills needed to be a solid technical professional. Of course, real experience is very helpful in landing the first job. That's what student jobs, interning, and cooperative education are for. I'd never have landed my first job without some of the skills I learned over four terms of co-op.

Re:Being a developer is about more than code (1)

darylb (10898) | about 5 months ago | (#47819353)

Incidentally, point #2 is key. For some reason, even compsci grads like to think their algorithm analysis course(s) was(were) useless. But having watched an MIT EECS grad write a web application that was, as I recall, O(n^2), just because he didn't want to use a database, I can only say that the course is essential. Dr Susan Mengel, you were one tough cookie, but, boy, did you teach me that stuff well.

They should make a Programming degree (1)

Spy Handler (822350) | about 5 months ago | (#47819297)

Let the really smart kids (IQ > 130) take traditional CS. They can deal with the theory and advanced math.

The kinda bright kids (IQ 100 - 120ish) can take Computer Programming where they learn to code in the real world. Teach some business-y stuff too while they're at it. Only math required would be high school algebra and geometry. Maybe some trig but that's it.

Re: They should make a Programming degree (0)

Anonymous Coward | about 5 months ago | (#47819625)

Exactly. Most people are average, on average. average people don't design programming languages, they don't design frameworks, they don't design programming methodology, they don't design anything. Average people if they're smart enough, can consume these things that other smart people made. The dummies don't know how to do any of that and they sweep floors at the hair salon and wash your car and do other menial jobs that we really really need because I sure the hell don't want to do it.

In equally surprising news (2)

nedlohs (1335013) | about 5 months ago | (#47819301)

Astronomy graduates don't always make the best telescope lens grinders.

Microbiology graduates don't always make the best microscope builders.

SubjectsInCommentsAreStupid (3, Funny)

lesincompetent (2836253) | about 5 months ago | (#47819303)

Of course it does. You're hired. Your first assignment is to write a simple program to check wether my program terminates or not.

Short sightedness (0)

Anonymous Coward | about 5 months ago | (#47819313)

Employers are looking for a specific skill. People with degrees know the theory and fundamentals. Hence, they can pick up a new language or skill quickly. People who focus only on a specific language may know it in depth, but that knowledge may not translate well outside of that specific language.

A linguist can pick up a new language quickly. Someone who moves to a foreign speaking country will eventually be fluent in the new language and know its idioms. A linguist would likely speak a language "proper", while the native speaker would use slang and such.

Language is language, be it spoken or typed.

Re:Short sightedness (1)

Anonymous Coward | about 5 months ago | (#47819481)


When we interview for a new engineer 1 position we are well aware that they probably dont have the greatest C (we are a c embedded shop) skillset. We focus on the basics of logic when asking them to do code examples, does their code make sense ignoring any syntactical errors? Did they get to a solution logically? Do they understand the difference between if and while (surprisingly we've had many candidates with bachelors and masters from Indian colleges who honestly randomly threw those around and didnt understand why what they did was wrong when questioned)

As long as at some point they covered 2 or more languages during school whether actually programming, scripting, whatever, they should be able to do just fine. As you said the language doesnt really matter, once you've done some projects in college in various languages you realize it doesnt matter and you can pick up a new one in a month or two. We look for understanding the concepts, not if they understand the language we use right out of the gate since its going to take them a couple months to begin to understand the code base anyway

Programming (3, Funny)

Anonymous Coward | about 5 months ago | (#47819317)

I have been an employed programmer for about 8 years now, dropped out of school to get paid instead of paying. Every single person I have had to work with who had a CS degree have had two traits in common. First, they love to remind you they have the degree. Second, they barely contribute anything to production except great ideas of how not to do things.

As a non-degree'd person, I have done contract work for 3 separate universities so far. You would think they would have an infinite supply of proud cheap labour to tap before giving me a call.

Do you need a degree in Poli Sci... (0)

Anonymous Coward | about 5 months ago | (#47819331)

To be a politician? No, of course not. Fun fact: I studied political science, and now work as a programmer.

Where Do These Stats Come From? (1, Informative)

eldavojohn (898314) | about 5 months ago | (#47819359)

Nearly half of the software developers in the United States do not have a college degree. Many never even graduated from high school.

What? I pored over the article and the US BLS link [bls.gov] in it to find the source of these statements. Aside from a pull quote that appears as an image in the article [theepochtimes.com] but isn't even in the article itself and is unattributed, could someone find me the source of this statistic?

Because I'm a software developer in the United States with a Masters of Science in Computer Science. All of my coworkers have at least a bachelor's degree in one field or another. And my undergrad very much so started with a sink-or-swim weed out course in Scheme and then another in Java. Yes, they were both easy if you already knew how to code but ... this article almost sounds like it's written by someone with no field experience. Granted that's a low sample set, I'd like to know where the other half of us are. Everyone keep in mind that a Computer Science degree is a relatively new thing and there very well may be elderly coders doing a great job without technically a degree in computer science.

The only way I can see the misconception spreading is that people who use Wix to drag and drop a WYSIWYG site (for you older readers that's like FrontPage meets Geocities) erroneously consider themselves "software developers".

"coding" (1)

jmcvetta (153563) | about 5 months ago | (#47819373)

Can we stop using the pejorative term "coding" as tho it were equivalent to "programming" or "developing software"? Coding is for code monkeys.

Re:"coding" (1)

Krishnoid (984597) | about 5 months ago | (#47819485)

You can't make a statement like that without at least linking to the video [youtube.com] .

Employers (0)

Anonymous Coward | about 5 months ago | (#47819379)

Employers cannot afford CS majors, so they simply will declare that a degree is not important.
I wonder... when / where can I do dentistry, med. doctor, architect, mycologist, attorney, accountant, civil engineer without a degree ?
What the heck is wrong with this profession and what makes you think that experience can replace 5 years of in-depth studies ?
I live on a day-to-day basis with cs "engineers" without any formal background and let me tell you... it is obvious they don't understand what they are talking about.

false dichotomy (1)

mr_mischief (456295) | about 5 months ago | (#47819383)

If you are hiring someone to develop code and you must pick one or the other, pick the person who knows how to code. If you can find someone with a degree in CS, math, physics, accounting, philosophy, a natural language, law, or anything else who also knows how to code then hire that person.

Especially if they have a degree in the subject matter and know how to program that's a bonus. Sometimes the actual subject matter really is CS. Sometimes it's accounting, medicine, physics, geology, or something else.

Saying one must hire a degreed person (with a specific degree no less) exclusive-or someone with skills is just silly. Don't weight the degree heavier than it deserves, but don't dismiss it either.

Structured thinking and problem solving matters (1)

CptJeanLuc (1889586) | about 5 months ago | (#47819389)

Some form of higher education involving logic, problem structuring and rational thinking is needed, though not necessarily computer science. Either that, or taking some sort of structured approach to learning that set of skills elsewhere, e.g. through mentoring or self-studies. You need to figure out what skill set it is that you need to learn, and then make sure you somehow learn it, either at university or some other way. That being said, I know plenty people with CS education who I would say make very poor programmers - it is easy to go through higher education and still learn very little. One of my favourite quotes, "he who has no plan goes nowhere fast". Just being somewhere and following some curriculum is not the same as pursuing a roadmap towards becoming a "real" programmer.

I myself am pretty much self-taught when it comes to programming, having taken an interest in that since the age of 9 with Basic and C64, but never taking any formal training. Higher education in mathematics has given me all the additional experience and skills I have needed. I have worked with programmers and managed programmers for several years, and though they are often better at coding than I am (which is not so strange given it is their job, whereas for me it has been just one of many different responsibilities), I often have an edge when it comes to e.g. structuring, algorithms, wading through complexity, or taking a critical point of view whether we are building the right thing.

If you want to be a top programmer who is productive in a work place, you need both programming skills and higher order rational logical thinking (plus being able to collaborate). It doesn't matter how you acquire it (in terms of learning it, not necessarily how attractive you are to employers). Everything else, e.g. new programming languages and such, is typically easy to learn once the basics are in place.

They should not (1)

OldGoatDJ (1497245) | about 5 months ago | (#47819393)

Colleges are not workforce training grounds. They are for higher education. College should prepare you for workforce training. They should not be training students in the latest language fad but giving students the ability to learn the skills needed to pick up the current fad, the next fad, and so on. Training for today's workforce will not be adequate for tomorrow's workforce. Corporations are attempting to push their responsibility of training their workforce back to colleges. A new computer science college graduate should not be expected to be a C++, Java, Design, Testing, project management, etc expert.There are too many skills that corporations need and that change too often for a colleges to produce such. Go to college for higher education, go to trade schools for workforce training.

What scales are you weighing against? (1)

quietwalker (969769) | about 5 months ago | (#47819417)

If the metric of comparison is employment, you need to be able to produce output rather than cite theory. In fact, I know of no developer, ever, who was hired on the strength of his awareness of theory with no programming ability. There is a chance you could get something like that in emerging fields like machine learning or data analysis, but you'd still have to have some ability to implement your theories or processes. Of course, you'd also have to be an acknowledged expert in the field, and that's not likely without products.

If the metric is the ability to produce a secure, well-architected product that utilizes some of the more popular frameworks and libraries, working with the common IDEs, build and testing tools, team collaboration tools, and awareness of the software development lifecycle, well again, being an actual software developer is better.

If the metric is ease of writing more efficient code (less memory, faster), or being able to evaluate, generate, and implement complex or new algorithms and heuristics such as key based encryption, trend analysis, predictive modeling, physics frameworks, and so on - well, in these cases you need the strength of the CS degree. You can't do it without picking up a great deal of necessary knowledge.

As a side note, at least 98% - probably more - of software business needs revolve around simple data manipulation, trivial calculations, and user interfaces of ever-increasing complexity. They want an inventorying system, or a way to generate a report on sales, or to send a digital payment from one customer to another, or whatever.

it's not a factoid (1)

donour (445617) | about 5 months ago | (#47819437)

factoid (n): something that seems true, but isn't

The fundamental question (1)

werepants (1912634) | about 5 months ago | (#47819439)

The real question is not 'whether colleges are teaching the right skills people need to join the workforce'. First you need to address this assumption that the point of college is merely to qualify you for a job or increase your future earnings potential. Because it isn't at all clear to me that it would be a problem if college wasn't preparing people to enter industry - the only thing that a university degree specifically ought to prepare you for is further schooling and life in academia.

That said, even if we accept the notion that institutes of higher learning are really degree mills and tickets to future career success (which I admit they are fast becoming), why the hell does anybody expect a computer science grad to have any particular skill in programming? Degrees exist for the discipline in question: it's called software engineering. This is analogous to hiring a physicist to do electrical engineering or mechanical engineering work - sure, the physicist has demonstrated some aptitude in relevant areas, but physics training is in abstracted, idealized, theoretical scenarios, so there's going to be some difficulty making the transition to the concrete, rule-of-thumb, applied world of engineering. Anybody who doesn't understand this distinction shouldn't be in charge of hiring - there are computer scientists, there are software engineers, and they both offer different skills that are required in different degrees depending on the project.

Of course, that is how things ought to work in hiring. How things do work is another matter entirely.

No (0)

Anonymous Coward | about 5 months ago | (#47819449)

Theory lasts a lifetime, practice, lasts until the next paradigm shift (10 years and you're out).

FizzBuzz is a good start (1)

Krishnoid (984597) | about 5 months ago | (#47819451)

A working programmer and a computer scientist are two different things, but the computer scientist should be able to write a basic program [kegel.com] :

A surprisingly large fraction of applicants, even those with masters' degrees and PhDs in computer science, fail during interviews when asked to carry out basic programming tasks.

For programmers, this is a basic test [codinghorror.com] , but when a computer scientist can't do something this fundamental, it calls their higher-level qualifications into question; and even if it doesn't, it makes you worry that their architecture or design will consider real-world issues and implementability.

Don't get a degree (2, Insightful)

Anonymous Coward | about 5 months ago | (#47819473)

Nope. University/College is a scam. Just watch youtube videos and read slashdot and you'll be golden.

Disclaimer: I have both an undergraduate and graduate degree in computer science, and while I have an amazing job and make more money than I thought possible, I don't think my education had *any* impact what-so-ever on my success.

Disclaimer2: This question appears almost weekly and is clearly a circle-jerk...

Able to Code != Professional (1)

mtippett (110279) | about 5 months ago | (#47819477)

Title aside, the ability to code is a workplace requirement, and if you are not looking at traveling/work internationally, you aren't going to get very far without a degree.

Some of the "college drop out" success stories are no longer just coders. They are now C-Level executives, different rules apply. If you don't have a degree then in general you won't be eligible to get Visas to work in other countries.

Independent about how good you are, without a degree you are restricted to your local geography (country, etc).

Re:Able to Code != Professional (0)

Anonymous Coward | about 5 months ago | (#47819593)

Why would I want to go to some shit-hole that our for-fathers left behind because they were shit-holes then?

College degrees aren't worth the paper they were printed on, and depending on which outsource providing nation you look at, 80% of the time weren't even earned by the person that claims to have it, and if they did earn it, then they used google to cheat to pass. There's about 1% of the top 1% from certain large outsource providing nations that are actually worth a shit when it comes to programming, the other 99.99% of them couldn't program their way out of a for loop.

Coding vs. Degree is not Theory vs. Practice (1)

wchin (6284) | about 5 months ago | (#47819497)

Absolutely, to be a top notch software developer, learning to code trumps a CS degree. After all, you can get a degree but who knows how much attention you really paid in class. Further, learning to code goes beyond what is taught in a CS degree.

However, this isn't an issue of theory vs. practice. It's like saying, would you rather have a surgeon that learned surgery the traditional route with 4 year degree heavy in science, specifically biology classes and then went to med school, etc, or a self taught surgeon that learned at a field hospital during a war? Obviously, both would have to learn the basics of surgery itself, that is the actual cutting, the sewing, etc. The former is likely to have a far better grounding in a wider range of subjects to treat the patient, even if the a particular of the latter might be better at the actual cutting and sewing.

When one graduates with a CS degree, they might not have yet learned how to code, especially in a professional setting in a group. A coder can learn everything that a person with a CS degree learned, but that is basically going to each of the CS classes. Sometimes the hinderance to getting the degree isn't the CS classes, it's the other classes required for an undergraduate degree. In either case, to be a very good coder, you basically have to master both the theory and the practice.

Yes (1)

jackspenn (682188) | about 5 months ago | (#47819521)

... and I didn't have to read the article to know that. Real world experience is better than "untested outdated group think", I mean "progessive college theory" any day. I know may people make 6 figures programming who decide "I'll go to college now, to learn even more about programming" and after a semester or two they all say the same thing "I corrected my professor, he said you cannot do X or Y in JAVA, I tried to explain how we do it all the time by doing Q and R, but he just looked at me and said 'if you don't say it is impossible on the exam, you will not get credit.'" And they stop going. It's terrible when you think about the fact that more discovery and learning is going on during meetups and company events or small hack-a-thons among friends for free or little cost, than at schools charging $25,000 or more a year.

Good Will Programming

Degree are a joke (1)

bi$hop (878253) | about 5 months ago | (#47819523)

I just started an upper division CS course at my university (all coding is in C), and it's already lame. Our first assignment is to solve various bit-shifting puzzles while artificially restricting ourselves to a very small number of language constructs (e.g. we can't use if, while, for, most logical operators, functions, or many other parts of C). It's not clear what we should be learning from this, other than that artificially restricting C makes it really tough. Or perhaps that wild guessing is a critical part of software development.

Yes and no. (0)

Anonymous Coward | about 5 months ago | (#47819539)

Does learning carpentry outweigh learning structural engineering?

Depends (1, Insightful)

drolli (522659) | about 5 months ago | (#47819545)

I hoold a PhD in Physics, but coding is a important part of my usual jobs (i am a consultant).

Educating myself in conding and following a master, and then a PhD in Physics trained very different aspects of my skills.

None of each outweiths the other, and i am feeling very confident that i will never be without a job

CS is not programming (2)

Toasterboy (228574) | about 5 months ago | (#47819547)

Computer Science is largely very specific applied math and theory. It includes algorithms, algorithm efficiency, a bunch of math, data structures from a theoretical design standpoint, and computer architecture. It tends to be very academic.

University programs vary widely on what the programs focus on, but generally Comp Sci is about the math and theory, and programming is something you do on the side to get the assignments done to illustrate the theory you are learning. With Computer Engineering and Software Engineering programs, things tend to be more hands on and focused more on doing than theory.

Programming, as desired by business, is NOT computer science. Business wants the most simplistic designs (i.e. always use linked lists instead of more appropriate data structures), and above all, they want you to code whatever it is FAST FAST FAST so you can SHIP SHIP SHIP. Because generally, most business are not software businesses, and they don't value developers or software beyond getting the minimum quick and dirty solution out of them as fast and as cheap as possible. Also, most business are not doing anything remotely resembling state of the art, and value the ability to hire a newbie to replace you.

CS grads have it rough. They know too much theory to be satisfied with basic programmer jobs, but they don't know enough about efficiently slapping out code day in and day out to have an easy time in a basic programmer job. The degree can get you in the door though. A lot of places filter out folks with no degree.

Not that there aren't some grads who still can't code their way out of a wet paper bag.

There's all sorts of stuff about programming that you will never learn in a CS program, such as when to select designs based on implementation risk and ease of maintenance, rather than algorithm efficiency. It sucks, but the people who pay for you to write the software could not give two shits about how well the code is designed as long as it mostly works and ships on time. For the most part, that CS theory is mostly only directly relevant to later in your programming career, and when you actually have some autonomy to "do it right" versus "do it yesterday", or if you strike out on your own.

Programmers / Engineers are different thinkers (0)

Anonymous Coward | about 5 months ago | (#47819557)

The mindset required to be a good programmer or systems / software engineer is totally different from the one required to be a corporate professional.

Unfortunately, college courses take years to define, layout, setup curriculum and teaching aides, books, documentation, etc.. By the time all of that is worked out, the language is probably dead or so changed that all of the course materials are years out of date.

This is why college degrees in Computer sciences related to programming and systems engineering are worthless.

I know this one coder who when to a 4 year state s (0)

Anonymous Coward | about 5 months ago | (#47819563)

I know this one coder who when to a 4 year state school and have found bugs / oversights in stuff he was worked and I'm not even in QA.

Now it may not be 100% there flat it may be that there QA / testing does not thing out of the box / they only test with pro users who don't use / don't really need parts of what is being made. They people with an testing mine set that have the power to change settings / manually setup different starting points / etc.

names are withheld but they are at least not working auto drive cars or autopilots.

No (1)

pele (151312) | about 5 months ago | (#47819567)

Probably the biggest reason behind all those thousands (if not milions) of failed projects in the industry is coderz who learned how to code without learning why to code.
A degree in computer science doesn't teach you how to code but how to think.

No School Can Teach Every Technology (1)

Perl-Pusher (555592) | about 5 months ago | (#47819569)

You will always not have some skill listed on the requirements. When was the last time you seen : Wanted someone fresh out of school with 0 years experience in the technologies we are currently using. Though you might see:

Wanted unpaid/paid intern!

Usually what you will see is something like:

Wanted highly motivated individual with at least 5 years experience C#, and MCPD certification is mandatory. Experience with Agile and SCRUM is highly preferred.
You won't get that anywhere except by taking entry level position. And then you still could have your job taken by an H1B visa holder. Many if not most technical schools teach you to pass a certification exam and that's it. Having the certification without the experience isn't going to impress anyone but the the HR person with a checklist, you still need to get past the interview. I have interviewed at least a dozen applicants for positions over the years. I have discounted people because they had the certifications paper but not the skills. Or no breadth of knowledge. The job I ended up with my CS degree not only required programming, but also a good foundation in higher mathematics, physics and chemistry. You won't get that at a technical school. Bottom line pick a goal and get the training for that goal and a CAREER PATH after attaining that goal.

It depends on field (1)

Derekloffin (741455) | about 5 months ago | (#47819599)

If you're just going for code grunt who just needs to implement X, then a degree is largely worthless verses just general coding ability. By contrast, if you're getting lot of 'I have problem X, can you solve it' situations, theory becomes a lot more important and the coding a lot less. However, i suspect the bulk of programming positions are more the former than the latter.

Oh, geez, not this shit again (1, Insightful)

0xdeadbeef (28836) | about 5 months ago | (#47819601)

By Sturgeon's Law, most colleges that offer CS degrees are diploma mills. That isn't to say they're all scams, and you could certainly learn how to program well despite your shitty education, because after all, you really learn how to program on your own in any case, but simply because they teach things like Java and SQL, instead of things like actual fucking CS, you're not going to learn how to solve interesting software problems. You're going to learn how to be cogs in a corporate hierarchy and do what the people who inspired Dilbert ask you to do, valuing keywords on your resume instead of demonstrable achievements.

But if you got a CS degree from one of the schools near the front of this list [rankingsandreviews.com] , it's a pretty good bet you're not a retard, and if even if you're not yet a great programmer, at least you're not one of morons who can't pass fizzbuzz, and we can assume you'll learn on the job and have the theoretical background to keep up.

"Oh, but I'm such a great programmer and I learned all that theory stuff on my own and you can't judge me!"

Who said I was? You're the one framing it like that. Every good programmer is an autodidactic dilettante in many things. You have to be, because every job requires you inhale a bunch of domain knowledge about the real-world problem you're solving in addition to the technology you're using. You're not special.

But the people who spent four, or five, or ten years surrounded by the some of the smartest people their age doing nothing but having fun and (mostly) learning what interests them is going to be a lot more well rounded than the kid who went chasing dollars right after high school. All else being equal, the kid who went to a good school is better at this than the kid who didn't.

It's a business (1)

GWBasic (900357) | about 5 months ago | (#47819629)

Schools are in the business of producing degrees and protecting their reputation. They aren't in the "teaching" business. If I knew more about computer science when I was in high school; I'd have applied to very different schools. Unfortunately, I needed a few years in my career to really learn how to judge a school.

It's not exactly one or the other.. (1)

Anonymous Coward | about 5 months ago | (#47819631)

Every great programmer I know has a university degree AND learns to code on their own. The college grads that don't have any skills probably haven't bothered to look at any open source code or learn anything on their own.

Some purely self-taught developers are good but most lack the theory to really understand what is going on behind the scenes. This often leads to terribly inefficient or necessary code.

it depends on the degree (1)

thebeastofbaystreet (3805781) | about 5 months ago | (#47819633)

I was lucky enough to study in a department that made all computer scientists write a lot of code. I often interview CS grads these days however who've basically done none. To answer the original question though, the combination of being able to code, having been taught to do the basics well and having a good theoretical foundation in algorithms and other areas of CS is unbeatable. Being a self taught coder with good experience who does it for the love of the art is better than having a low quality CS degree and no interest in programming though.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?