Hacker News new | ask | show | jobs
by chriszf 5154 days ago
I disagree.

A computer science degree means you've spent 4 years learning computer science, it doesn't mean you know anything about software development. In fact, at a university with a good CS program, it almost certainly guarantees you know nothing about software development: UC Berkeley's CS program has a single optional elective on the subject of software engineering.

Now, there is a high correlation between computer science aptitude and software engineering aptitude, but I wonder if it's just because we've conflated the two because the field is so young. I believe that one can be taught without the other, and that's what we're seeing with these academies.

Consider: on one side, you have someone who spent 720 hours over the course of four years learning Delaunay triangulation and LALR recursive descent parsing, but has never written or architected a greenfield application from scratch.

On the other, you have someone who spent 300 hours over eight weeks building applications, being exposed to good industry practices, learning how to deploy systems, how to use source control, how to use an IDE. Maybe afterwards, they could spend two weeks covering fundamental theory.

Let's be honest, when I go out to interview I do the same thing anyway.

As an employer, the latter would be more immediately useful to me. So you're right, the comparison is ridiculous, and an intense course is not a substitute for a multi-year degree. But stop and ask yourself: is a CS degree the right criteria for admission into the industry in the first place?

2 comments

I feel the title of Software Engineering is misleading because it doesn't quite relate to other fields of engineering. The way Software Engineering is used is more like Software Construction, where the concern is more about programming using building blocks and tools of the trade, along with construction methods: like code organization, deployment, source control, etc.

Computer science might best be aimed at: Big Data Analysis, Compiler Writing like HipHop (Php compiler), or Distributed/Parallel Programming, Large Scale Deployment, etc.

I agree that writing an LALR recursive descent parser might not make someone an architect, but neither will a 300 hour/8 week course, mainly because I feel experience is the deciding factor.

Employers often want to create a repeatable scaleable process -- so yes this would be attractive to an employer.

Who says a CS degree is required for admission into development? I've worked at companies where many of the developers didn't have CS degrees, but there is a noticeable difference between those with a degree and those without. Those that don't have a CS degree, but somehow still make it, are often those that could have made it through a 4 year course. Sadly, there are also those with a CS degree, or even a graduate degree, that can't hack it either.

So in the end hiring is difficult, and there doesn't seem to be many indicators that some one will be a good developer and eventually an architect. But, when hiring I personally would give preference to a someone who holds a CS AND has the right attitude.

Also it's a matter of goals. If your goal is to stand up something cookie-cutter-ish, and then just duplicate that process with varying degrees of style, then sure anyone can probably learn to do that. But, if you need to integrate systems, write parsers to put data into a high-performance data warehouse, organize structures for a custom CMS, etc, would you really go to someone fresh out of a 300hr/8week course, or someone fresh from a CS program, if those were your only 2 choices?

You seem to disagree with a point I am not making. I'm saying that they are both valuable (maybe CS grads who want to work as Software Engineers should take such classes), but not equivalent.

There are values to an academically rigorous (CS) education that are unrealted to Software Engineering. Simply being aware of CS fundamentals is not equivalent.

There are many eng jobs outside of Startup land where a deep knowledge of CS is far more valuable than how to write and deploy a full stack web app.

I'm actually agreeing with you and disagreeing with chriszf. I suppose I should have called that out specifically. My comment was mainly to counter argue what I've seen as undervaluing a CS Degree. (Sorry for the confusion).
My bad, I replied to the wrong parent. I meant to reply to chriszf's point that you also disagreed with.