Slashdot Mirror


Bjarne Stroustrup On Educating Software Developers

jammag writes "Bjarne Stroustrup, creator of C++ and a professor at Texas A&M, weighs in on the problems in today's CS programs. In particular, Java (there's too much of it), the quality of graduates (companies aren't happy), and the need to balance the theoretical and the practical (long overdue). Not pulling punches, Stroustrup even talks about high schools — 'High schools could teach students to work hard at something (just about anything), to search out information as needed, and learn to express their ideas in writing and orally.' He finishes by giving advice to working developers: 'Serious programming is a team sport, brush up on your social skills. The sloppy fat geek computer genius semi-buried in a pile of pizza boxes and cola cans is a mythical creature, best buried deep, never to be seen again.'" Read on for more choice quotes from the quotable professor.
I have even had questions from strangers in airplanes: "You're a professor? In software? Have you got any students? Here's my card."

The US industry could absorb more good developers than there are currently students enrolled in IT-related programs — but not all of those programs and all of those students would qualify as "good" in this context.

The companies are complaining because they are hurting. They can't produce quality products as cheaply, as reliably, and as quickly as they would like. They correctly see a shortage of good developers as a part of the problem. What they generally don't see is that inserting a good developer into a culture designed to constrain semi-skilled programmers from doing harm is pointless because the rules/culture will constrain the new developer from doing anything significantly new and better.

The contemporary Math, Physics, and Biology books I have seen are far, far more conceptually challenging than what we present to CS and engineering students in the area of programming.

I think the ultimate aim is to make programming more of an engineering discipline, more mathematical or scientific; "craft" and "art" are both needed, but there ought to be a scientifically based core on which people can base their craft and art. Software design and implementation is more than a craft; there is more math, science, and engineering to know and apply than is customary for fields we call "crafts." Incidentally, I find it appalling that you can become a programmer with less training than it takes to become a plumber.

4 of 538 comments (clear)

  1. He sure thinks a lot of himself by binarylarry · · Score: -1, Flamebait

    and university training.

    The really good type of programmer he says is lacking will be learning many different languages... ON THEIR OWN. They don't really need the university.

    Of course, you'll have a large majority of replaceable people in CS. These types are just there to "get a good degree and get a high paying job." But they truely aren't interested in the industry or the technology. They are there for the security a degree gets them during job hunting. They'll learn whatever is taught and that's it and never be very good.

    Sorry, Bjourne, these replaceables are going to be in the majority, just like every other industry.

    Did you think Computer Science is special?

    --
    Mod me down, my New Earth Global Warmingist friends!
    1. Re:He sure thinks a lot of himself by binarylarry · · Score: -1, Flamebait

      LOL, I must have pissed off all the poor replaceables who browse slashdot.

      Sorry fuckers, you'll always be second rate!

      --
      Mod me down, my New Earth Global Warmingist friends!
  2. Re:Bjarne just burned most of slashdot by Anonymous Coward · · Score: -1, Flamebait

    I wish. The guy is a bit of an edutard. C++ sucks donkey ass (Java does too). Actually, anything with too much focus on OO design sucks. Object-oriented programming has some good ideas but when used how it normally is in C++ or Java you end up with a giant hierarchical tree that is hard for new developers on a project to understand and makes debugging very difficult (ever had to walk up an OO tree trying to figure out what the hell is going on in a particular piece of code? It sucks). Namespaces are good, object-oriented is bad.

    Generally speaking, educators have no clue how the real world works because they don't have to live in it for their job. Now I know Stroustrup has done commercial work but he's still a career academic if you know what I mean. The way he talks down with his teacher mentality on practically everyone who is out in the real world kicking-ass just makes him look stupid.

    While it's true that a lot (most?) programmers suck, creating a team doesn't help. Programmers in close teams tend to make lots of shit if they are depending on each other. I went trough at least a dozen different "team building" classes for various companies back in the 90's and let me tell you, it didn't do a damn thing to help us and in fact often made things worse by introducing bureaucratic "team" processes. While you do need more than one person to get stuff done, the work is best broken down so individuals are not relying on each other. If somebody can't pull their weight then you replace them.

  3. Re:Dreaming... by Anonymous Coward · · Score: -1, Flamebait

    I've worked at several companies that paid decent amounts of money, and between 50% and 75% of the developers are crap. In my experience, good developers are hard to find at any price.

    Don't take this personally (much), but who the fuck are you to say whose crap and who isn't?

    Quite a lot of you throwing stones live in glass houses, no doubt.