Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

#1 (My Ad-Hominem Attack) Who is this guy? Why does he go on to trash comp sci if he never studied it?

#2 "Of all the mathematical sciences, computer science is unquestionably the dullest. If I had my time again, despite discovering just how much I love writing software, I still wouldn't study computer science."

I stopped reading after this point. Why does he state as a matter-of-fact that computer science is unquestionably the dullest? It's actually quite captivating and quite profound. Cryptography, machine learning, computability theory - all leading ultimately to the question of what, exactly, is knowledge and what can we know.

I can't stand the broader attitude of this, which essentially boils down to "I'm a hotshot programmer therefore anything academic or computer-sciencey is stupid". A lot of people in general could be a little more humble and recognize the fact there's a lot of things that they don't know they don't know.



Starting with your ad hominem, I think you took exactly the wrong things away from this article. Regardless of his writing style, his points are dead-on:

1. Computer science doesn't teach programming (with the corollary that computer scientists specifically don't want to teach programming).

2. Most people going into computer science want to learn programming.

3. Many people get fed up with the rigors of computer science (because they recognize it isn't teaching them programming) and move on to other pastures instead.

I've always believed that there should be a "Software Engineering" curriculum in the engineering department and a "Computer Science" curriculum in the math department. That we blur the lines hurts both fields, as programming students demand more programming in CS, at the expense of the underlying theory; and math students demand more theory, at the expense of being able to actually code up a solution.

At the end of it all, though, there is a strong value for some computer science in all programmers. It is amazing how often solutions get re-invented, though it happens far less now with the combination of open source and Google.


I agree with the sentiment that software engineering isn't computer science, but I disagree with the sentiment that software engineering is a discipline worthy of note on the same scale that we afford to, say, electrical engineering, civil engineering, or mechanical engineering. To date, software engineering is still largely a collection of (fairly subjective and contextually-sensitive) best practices.

Software Engineering is better off if it's treated as a trade like being an electrician or a carpenter (which it largely is through on the job, experiential training being as emphasized as it is). Take what you absolutely need from the theory, and learn from those in the know to become a respected practitioner.

Software engineering is a trade without a guild.


> software engineering is still largely a collection of (fairly subjective and contextually-sensitive) best practices.

I agree

I'm glad I did computer science. Even though my title now is Software Engineer, I learned most software engineering best practices on the job. What's very difficult to learn on the job is computational complexity theory, advanced data structures and algorithms, or simply a solid background in discrete math. Basically, you probably won't find yourself contributing hard, cognitively challenging problems in computation with a "software engineering" degree. In hindsight, if I had done some kind of "software engineering" program, I really would have sold myself short.


> but I disagree with the sentiment that software engineering is a discipline worthy of note on the same scale that we afford to, say, electrical engineering, civil engineering, or mechanical engineering.

Exactly. Programming is not harder to learn or master than something like carpentry (i.e. something easily picked up by an interested person on their own, but with lots of potential for mastery).

What on earth would you be doing for four years of college studying programming sans compsci? What a waste.


Most professions are a collection of best practice rules, accountancy for one. Yet it is not a trade.


2 years after I graduated with a BS in Computer Science from the LAS College the Engineering College introduced the Software Engineering program. It was a joint effort between the ComS & CompE departments. Becoming increasingly common.


My institution has introduced similar programs. I question their utility in the face of the cost of college and the shelf-life of what you can learn in a 4-year classroom setting (not to mention general ed requirements).


> To date, software engineering is still largely a collection of (fairly subjective and contextually-sensitive) best practices.

Any engineering field is a collection of best practices, so that works out well.


At the university that i attend (University of Waterloo, Canada), we actually do have a Software Engineering program which is part of the Engineering department, and a Computer Science curriculum which is part of the Mathematics department. The SoftEng degree owners can even qualify to become professional engineers.

I'm also 99% sure that the two degrees are also common at quite a number, if not the majority of big technical universities in Canada.


The same here in Argentina. You have may have a Computer Science which belongs to the "Exact Science" department (along with Maths, Physics, Chemistry, Geology, etc...) and then, you have a Software Engineering curriculum in the Eng department, (along with Electrical, Mechanical, Nautical, etc)...

Back in the day I choose Software Engineering because the other (CS) seemed extremely theoretical to me. But I think that having that "blur line" of yours (ref to SoftwareMaven), let's you mix both worlds a little more, so I would prefer that. But maybe it's just because we always want what we don't have ;)


Yeah, in terms of curriculum differences, CS is definitely a lot more theoretical, with heavier math and pure CS courses, while SE has project management components, more programming, some computer science, some Computer Engineering courses and even some Electrical Courses.

In Waterloo's case, the whole "knowing CS, but not how to program" falls flat, since we have an amazing co-op program where you can easily 2 year-ish of experience at different companies by the time you graduate, so most CS students that come out, do come out of the CS with Co-op, and as a result are great programmers.


That's the way it's set up at Waterloo, with soft-eng in Engineering, and CompSci in the Math Faculty. That being said, in Computer Science we have some classes on bash scripting and C++, which I think are valuable, but not as fun as functional programming or compilers. Still more fun than our very dry formal logic class, which is sad, because I like formal logic.


In my experience as a CS student, the fist few classes you take teach you the basics of "computer programming"...aka you just write a lot of object oriented programs. Then as you move on to parallel programming, computer architecture, and operating systems, it really becomes more of a science.


> it really becomes more of a science.

This bugs me. There really should be another word for this, since, as far as I am concerned, something in which the scientific method plays such a secondary role should not be primarily classified as a science. I guess you could call it "a math", but that is not terribly satisfying.

This complaint is really just a rephrasing of the old "is mathematics science" debate (http://en.wikipedia.org/wiki/Mathematics#Mathematics_as_scie...), but as long as we are talking about if things that are "too engineery" are computer science, we might as well talk about if computer science is science.


I agree totally. I do research work in crypto, and I find the theoretical aspects incredibly interesting and engaging. That said, I don't think he is incorrect in his overall point (despite the arrogance with which he makes it); most programmers only need enough CS knowledge to get by.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: