Skip to content

Comment on Stroustrup: What Should We Teach New Software Developers?

Comments

I can't believe no one's mentioned:

  Computer science is no more about computers than astronomy is about telescopes.
  -- Edsger Dijkstra
Contrary to the beliefs or desires of some, colleges and universities are not vocational training institutions. In the actuarial world, there is a rigorous credentialing process involving a series of exams usually taking a minimum of 4.5 years to complete. However, even with all of the exams passed, without experience you'd be put into an entry-level position. If your experience is in one field of insurance and you want to get into another, that experience won't count for much in the new field and you'll probably be starting near entry-level again.

That's for good reason. Academia is for teaching you known facts and theories, and how to think for yourself. Experience in an industry teaches you how to do a particular type of work so that other people are willing to give you money in exchange for your labor. These are inherently different activities, though the former can weed out some inappropriate candidates for the latter.

The purists complaining that CS isn't about programming are correct but misguided: the vast majority of CS majors don't _want_ to study "real," abstract CS.

IMO the right thing is to offer degrees in Software Development, which would include some classic CS curriculum but by no means all, and we could have discussions about the right way to teach programming without people getting bent out of shape that Programming Is Not CS.

But CS is about programming. However, in order to really understand programming (that is, making computers do things), it's important to understand "algorithms, data structures, machine architecture, programming (principled), some math (primarily to teach proof-based and quantitative reasoning), and systems (such as operating systems and databases)". Similarly, a real artist needs to know the different constructions of canvas, consistency and production of paint, brushes, etc., in order to use his tools and medium to the fullest extent.

I'm a CS major, and while I admittedly wasn't fully aware of what "computer science" entailed, I knew enough to know I wanted to study it. And I don't regret it.

Yeah, same here, except I graduated in 2004. I took CS from an engineering school, so I had a little less theoretical background (that was replaced with EE / CompE basics). But I agree -- I had exposure to big-O in h.s., but didn't realize that CS would involve so little programming (I probably wrote under 2k lines of code in 4 years, to be honest... but I was a slacker too ;) ).

IMO, if one is to choose between theoretical background and EE/CompE, the latter is significantly more valuable. Of course, both are important.

CS seems to have the strange belief that CS is pure and SE is just vocational stuff. If that's true then everyone should do maths instead.

It's like only teaching general relativity and then making someone a civil engineer - after all they know the fundementals of gravity so the bridge should stay up!

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.