Hacker News new | ask | show | jobs
by thunk 5862 days ago
There's always this tension between the pragmatists and the theorists. I figure we just split it in two. CS focuses on research and theory. CP(rogramming) focuses on the pragmatic and artistic nitty gritty of building software. Now, I personally wouldn't advocate majoring in programming, because you really should just R the F'ing M, and make stuff on your own. But it's hard to argue against its validity as a major when there are tons of students clamoring to pay for it, and there are already so many way softer majors. There would obviously be a lot of overlap between the two.
2 comments

>CP(rogramming)

It's called "Software Engineering" and some schools (like RIT) already have separate degrees for it.

Yeah, I should have assumed there'd be degrees available in Software Engineering. But "Software Engineering" is such a misnomer. [rant on how we don't know how to "engineer" software]. My "Software Engineering" courses were straight up awful. The degree I'm imagining would focus on the way software actually gets written -- the wrestling with problems and the straining toward creative insight. And you'd do a fuck-ton of coding on interesting and substantial projects.
> wrestling with problems and the straining toward creative insight

That sounds like engineering to me -- when it is based on some determinate material with at least a few known logical principles -- which software is.

I'll just quote pg from "Hackers and Painters"[1], because he said it better than I can:

> I've never liked the term 'computer science.' The main reason I don't like it is that there's no such thing. Computer science is a grab bag of tenuously related areas thrown together by an accident of history, like Yugoslavia. At one end you have people who are really mathematicians, but call what they're doing computer science so they can get DARPA grants. In the middle you have people working on something like the natural history of computers-- studying the behavior of algorithms for routing data through networks, for example. And then at the other extreme you have the hackers, who are trying to write interesting software, and for whom computers are just a medium of expression, as concrete is for architects or paint for painters. It's as if mathematicians, physicists, and architects all had to be in the same department.

> Sometimes what the hackers do is called 'software engineering,' but this term is just as misleading. Good software designers are no more engineers than architects are. The border between architecture and engineering is not sharply defined, but it's there. It falls between what and how: architects decide what to do, and engineers figure out how to do it.

I guess what I'd like to see exist is a "Programming Arts" degree. Or just a "Hacking" degree.

[1] http://www.paulgraham.com/hp.html

Engineering aggregates known solutions to solve specific problems. Science clarifies questions worth asking.

There is a difference.

Something like say a masters in applied programming could be the solution. That way if you feel after your degree that you would like to spend some extra time learning specific languages you can, if should be moved away from the basic computer science theory.