Hacker News new | comments | ask | show | jobs | submit login
Is Web Development Computer Science? (msdn.com)
12 points by AlfredTwo on Dec 19, 2009 | hide | past | web | favorite | 22 comments

From Wikipedia:

Computer science or computing science is the study of the theoretical foundations of information and computation, and of practical techniques for their implementation and application in computer systems.

So software development (and therefore Web Development) is not, in itself, computer science, but builds on computer science concepts and findings (theory, algorithms, etc).

Sure there are self taught people who do great things but having a good solid base of computer science knowledge would seem to be a big edge for learning the new technologies.

I don't understand -- To me, the premise of this article seems to be that these are two different (mutually exclusive) types of programmers. I don't think anyone here would subscribe to that tenuous assertion.

They're not mutually exclusive, but very few astronomers grind their own lenses.

Web development is a subset of "software engineering".

Computer science is not software engineering. It also is not a science and, arguably, is not really about computers.

Software engineering isn't really much of an engineering profession, for that matter.


Computer Science is just science at the start. We know a couple of things like Shannon's theorem and Amdahl's law, but that's about it. Unfortunately a lot of experimental computer engineering is also being sold as computer science.

"Science" is, loosely speaking, a process for formulating and evaluating predictive models of the behavior of systems with unknown characteristics, based on empirical observation.

Theoretical "computer science" is, most of the time, a matter of building abstractions from smaller concepts and making analytical, not empirical, observations of the characteristics of those abstractions. This is much closer to what is generally thought of as "abstract mathematics".

The closest you're likely to get to scientific methodology when programming is when you have to write test code to figure out what the crap this freaking third-party library you're stuck with is actually doing because clearly it isn't what the documentation says it should and... at which point we've moved away from "computer science" and into why "software engineering" is such an embarrassment compared to real engineering disciplines.

If you want to hear someone smarter than myself expound similar ideas, look up some of E. W. Dijkstra's work--the man was a genius, a "computer scientist" par excellence, and he expected software engineers to act like engineers.

> [...] but that's about it.

Ever opened a book by Knuth? Or heard of Turing and his machines? Or lambda calculus?

(Though one may argue that theoretical computer science is a part of mathematics, and not a natural science.)

+1 For me webdev is absolutely SE, although ething is based on CS of course.

Its not about "computers" but rather about "computation".

Web development is almost all "construction", which has little to do with computer science. Look it up in Code Complete.

I've worked in web development for many years, doing some pretty complicated stuff, and I've never needed to remember how to do a bubble sort.

In other news, Ben & Jerry recommend a quart of ice cream a day.

Other than an academic exercises I have never had to write a sort in any language I have used. But know what does involve computer science, knowing what type of pre-written sort to apply to your problem based on time and memory constraints. Or knowing the performance characteristics of different key/value stores on a specific data set.

Saying web development is just construction is crazy. Maybe for some brochure-ware sites it is, but not for ebay, amazon, google, etc.. It is like saying building a sky scraper is just construction, just like building a dog house.

Why is sorting cited as _the_ computer science problem?

There's a lot to be learned about the boundaries between P and NP. For example find polynomial algorithms for linear optimization. Or it would be nice to know, if randomization --- which helps in practice [0] --- really does help in theory, too.

[0] E.g. a quicksort that selects a pivot at random.

Agreed. And unless you are building your own framework from scratch, most of the hard problems are already solved for you. That's not to say it is necessarily trivial (though it can certainly be), but it is not, say, researching new sort methods or creating new languages.

UPDATE: I suppose it could be argued that creating new languages is not computer science, either. I reckon it depends on the language itself.

I got kind of excited when I realized I needed a semaphore in the web app I'm building. That's fun.

I suggest you read about Software Transactional Memory, if you like that kind of fun.

Not quite. Web development is more like architecture plus structural engineering plus construction, but it's not physics.

The article's title itself poses a single question. But really, this article is about two separate, but related, issues:

1. Does a Web Developer benefit from as educational grounding in the Computer Sciences? 2. Are Web Developers (and by extension Software Engineers) by their very nature also Computer Scientists?

The first question is pretty straightforward to answer. Of course they do. The second one isn't so obvious, though. Furthermore, your interpretation of the "right" answer is going to be colored by your own educational background and experiences with others in the course of your respective academic/commercial career.

I really didn't find this particular query to be odd at all. From the subject being searched, I can only infer that this is a person who is neither web developer nor a programmer. It would seem a logical leap to presume this is a current or soon to be college student curious about what all of these terms actually mean in relation to what they want to do.

I know that while I was in school I was(and still at times) confused about what it all meant - IT, CS, Web Dev, Software Engineering... Although this searcher will likely start to become more comfortable with all of these terms and disciplines as well as begin to understand how they relate and how they differ, it is a bit daunting when you first start out to identify what term actually describes what it is that you actually want to do.

MIS, CS, IT, Web Design, Software Engineering - college programs, that although may describe the overarching discipline, don't really fully represent what niche in the technical industry they serve to address... For example, I have a BSCS, though by far the majority of my project involvement has been done with back end web application development using established frameworks and site design on top of mature platforms - little "Computer Science" being done here (in the 'study of the theory of...' sense).

I think if you consider a plain old HTML page as Web Development then fine, it is not Computer Science. I consider that Web Design. To me Web Development is making robust applications that can do more then display markup. All the back-end stuff is what makes it an application, and in turn makes it computer science.

But computer science isn't about building applications.

Web dev is SE and not CS because nobody code websites on Turing machines, and according to CS theorem all programing langs are equal so in theory you can do that:)

This fellow shouldn't call himself a computer science teacher, that's a completely different subject. He's a computing teacher.

Applications are open for YC Summer 2019

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