Live data from Hacker News

Code != computer science

ultrasaurus.com

11–20 of 148 posts

Re: Code != computer science

#11
post #4

> Treehouse CEO Ryan Carson declares “A computer science degree is a rip off…I know because I have one.” Perhaps his CS degree was from a college which didn’t have a very good program or maybe his focus has been web development where you rarely need computer science. According to wikipedia: > In 2000, he graduated from Colorado State University with a Computer Science degree I suspect, like with most fields, that the…

I've noticed that the "degree is a rip off" comment crops up among graduates of practically every field from every school, equally from successful people and failures. So I'm not sure that I'd read much into it.

Re: Code != computer science

#12

Speaking from experience, this is true. You also don't really know when true CS is useful until you run into it. I graduated with the equivalent of a minor in CS. When I started coding for an web-based gaming start-up in 2007, it was mostly irrelevant. You don't need a CS degree to learn Ruby on Rails, nor is it necessarily useful (beyond your basic intro courses) to have taken CS courses. Flash-forward a year, after…

My difficulties were the other way round: knowing all the theory doesn't actually make you a better (or even a good) coder. Only when you run into the problems you mentioned, does academics help at all.

Re: Code != computer science

#13
I think this distinction is incredibly crucial. There has been so much talk about how a CS degree is useless (and I for a moment bought that garbage as a holder of a CS degree), but it is completely untrue.

As you work with more and more people in this industry, you frequently run into people without a degree, or, more importantly, no true know how, as I do stand by the fact that it's not required to have a degree to learn this stuff, who behave as if they are experts regardless of their poor mental model of how computers work.

It's important for these people to know what they don't know. Reminding people that Code is not CS is a good way to make that happen.

Re: Code != computer science

#14
When I was 16, I was obsessed with 3D graphics (hilariously primitive back 30 years ago). I learned programming to create , rotate, translate, and shade objects in 3D space. I learned computer science to understand how you manage vector lists, matrix math, and strange recursion algorithms. I learned that programming is computer science applied. Sort of like how math is a tool to apply calculus to real work problems. One won't work without the other. Saying "code != computer science" is a misrepresentation of the symbiotic process that's going on in the human mind. I think a fair statement is: programming(code) is the first level of computer science knowledge.

Re: Code != computer science

#15

I did an undergrad in CS (Columbia) - in retrospect I should only have minored in CS. I'm not sure it's worth the workload! You will have _no_ free time and get reamed in GPA Very math-heavy and the project based classes were brutal.

I'm sure this depends a lot on what your preferences are. I just finished my undergrad in computer engineering at Columbia. I thought the project-based classes (and the vast amounts of work they entailed) were the most valuable parts of the program. Sure, you'd probably get higher grades if you just minored, but when it comes to hiring for software engineering jobs, companies tend to care more about what you know and what you've done than what your grades are. And you're more likely to know more about CS and have done more interesting projects if you have taken difficult project-based classes like operating systems, embedded systems, and programming languages and translators.

Re: Code != computer science

#16

When I was 16, I was obsessed with 3D graphics (hilariously primitive back 30 years ago). I learned programming to create , rotate, translate, and shade objects in 3D space. I learned computer science to understand how you manage vector lists, matrix math, and strange recursion algorithms. I learned that programming is computer science applied. Sort of like how math is a tool to apply calculus to real work problems.…

Isn't that exactly what the author is saying, though? He's saying that programming is part of computer science, but knowing how to code doesn't mean you know computer science.

Re: Code != computer science

#17
Fundamentally,computer science = data structures + algorithms.

in a data structure class,you learn the basic structures like PODs,structs,vectors and linked lists.

in algorithm class,you learn various basic sorting algorithms plus the big O notation and thats pretty much it.

Then you will take a few physics classes,then chemistry classes,then maybe calculus one and two,then probably discrete mathematics class,one or two writing class,if you a lucky,maybe a single semester of operating system class.

you may learn the basics on haskell in one class,the basic of java in another,maybe assembly in another class and you get your degree.Basically,you will leave school knowing only the basics of a bunch of things but not enough of anything.

The above it how it felt to me as a CS major.

Re: Code != computer science

#18
post #3

Customers rarely care what we code or computer science in

I don't know that I've ever been more torn about a comment than this one. I worked in both "core dev" and professional services development, and have seen what comes from well-architected software design, the sort of architecture that only experienced top-line CS graduates (or several-decades-worth-of-experience autodidacts or engineers) seem capable of producing (IMHO, YMWV)...

...and have seen many, many 1.0's, shelfware, etc.

A CS grad from a top-flight school with excellent experience is worth their weight in gold, at least on teams of multiple people developing big systems - you want at least one, they will take care of data design, software architecture, etc., and likely cause your code to be more robust, more maintainable, etc.

But motivated college grads (I'm Canadian, not sure what the US term would be), talented engineers, and autodidacts can crank out code like nobody's business. I don't know that I'd want to built a multi-year "core services" library out of it, but PoCs, MVPs, 1.0's, and demoware? Why not? And the top-flight CS grad might be wasted there.

I'm torn because I care about quality, but really high quality only matters for the really long-lived system, the health-and-safety-critical system, and the system that must survive on its own with minimal human intervention and maintenance.

Were I building a radiation control for healthcare, I would want electrical engineers and CS grads from top-flight systems. Ditto military avionics.

If I was building apps, apps, apps, servers built atop well-architected OSS libraries, etc., I'd want code, fast, and I'd balance quality Vs lifetime to maximize profit, and probably hire less experienced, less well trained devs who "give good face", understand requirements, and code fast.

The libraries themselves? Good question....

I don't have a conclusion. But j45 is right, customers don't care so much - but they don't want 3AM bugs, either. It's a trade-off.

Re: Code != computer science

#20
I look at this from the other side as well. I've worked with brilliant people with ivy league CS degrees who wrote much messier and less maintainable code than me, an autodidact designer/js dev with 1.5 years of experience. Maybe I'm wrong, and there was something in their code that I wasn't seeing, but I don't think so.

There can also be a bit of an attitude, like the person is thinking "of course this is good, I went to Stanford". But maybe that's my imagination. Another explanation is that these people are just so good that they are able to read messy and convoluted code no problem, and us mortals need to step up our game.

On the other hand, these people would easily be able to reason about complex performance and security issues beyond me. I think that the hardcore CS issues are a science, while writing clean code in a web framework, browser, and API design is more of a craft.

If you hire too many computer scientists, your code base could be full of fascinating technical tricks, but creaky and hard to work with. Too many craftsmen, and you'll get stuck on simple problems. It's a balance.

EDIT: Downvotes? Please explain. Perhaps I am not able to fully comprehend the issues at hand.

Post reply on HN