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.

538 comments

  1. Mythical Creature... by Culture20 · · Score: 5, Funny

    I am _not_ fat.

    1. Re:Mythical Creature... by larry+bagina · · Score: 5, Funny

      [Citation needed]

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    2. Re:Mythical Creature... by binarylarry · · Score: 1, Funny

      Hey, it's you!

      --
      Mod me down, my New Earth Global Warmingist friends!
    3. Re:Mythical Creature... by Anonymous Coward · · Score: 5, Funny

      I don't give a s**t about this newbie with his bloated language.

      Dennis Ritchie.

    4. Re:Mythical Creature... by RockWolf · · Score: 1

      I am _not_ fat.

      Just big-boned, huh?

      Back away from the pizza boxes, man. Keep your hands where I can see them.

      --
      February 9th, 2009 8:55pm: Slashdot becomes self-aware.
    5. Re:Mythical Creature... by genner · · Score: 2, Funny

      I am _not_ fat.

      Neither am I but I am mythical.

    6. Re:Mythical Creature... by Anonymous+Brave+Guy · · Score: 1

      I'd look one up for you, but I would have to put my pizza down first. Sorry.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    7. Re:Mythical Creature... by fredrik70 · · Score: 1

      ...it's a glandular problem....

      --
      if (!signature) { throw std::runtime_error("No sig!"); }
    8. Re:Mythical Creature... by AmberBlackCat · · Score: 1, Funny

      Here you go.

    9. Re:Mythical Creature... by smilindog2000 · · Score: 0, Troll

      Here's my beef with C++. Average to less-than-average programmers will never understand virtual functions, templates, or (shudder) multiple inheritance. New code is normally written by super-smart programmers who use all that stuff. Then, the B-team takes it over and can't figure out what the heck it does. The code is then doomed to painful process of continuous decay.

      C++ was written by PhD's for PhD's. It was never a good fit for the real world. Java is a huge step forward for the world, just not graduate programs. Personally, I have 100 other issues with modern languages, which is why I do all my programming with the DataDraw variant of C.

      --
      Beer is proof that God loves us, and wants us to be happy.
    10. Re:Mythical Creature... by HeronBlademaster · · Score: 4, Insightful

      Never a good fit for the real world? What about all those games written in C++? Do you really think Valve's Source engine would be as good if it were written in Java?

      On the other hand, I agree with you that average to less-than-average programmers will never grasp the more advanced pieces of C++. I think the solution is to teach them better, the solution is not to dump C++ in favor of $other_language. (C++ isn't right for all situations, but I think all CS programs should at least teach it.)

    11. Re:Mythical Creature... by BigGerman · · Score: 2, Insightful

      I am sorry to say that but I have to agree. I wish there was a scaled down C++ without real templates, real generics and multiple inheritance... Oh wait.

    12. Re:Mythical Creature... by JackassJedi · · Score: 1

      [original research?]

      --
      Power corrupts the few, while weakness corrupts the many.
    13. Re:Mythical Creature... by Daniel+Dvorkin · · Score: 1

      (shudder) multiple inheritance

      Multiple inheritance is rarely needed, but when it is, it's really the best tool for the task, and I don't think it's that hard to understand. I've never understood the hostility the idea gets, and as arcane as C++'s rules for multiple inheritance may be, they work and do something useful -- unlike, say, Java interfaces, which as far as I can tell are a half-assed attempt at something that kinda sorta looks like multiple inheritance but doesn't actually do anything.

      --
      The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
    14. Re:Mythical Creature... by Gorobei · · Score: 3, Interesting

      C++ is C with optional safety-less AK-47s. The top 1% enjoy it, the next 9% live with it, and the other 90% die bemused in a hail of friendly fire.

      Bjarne is now dissing the students. While this is a time-honoured prof activity, he might watch to consider that the students you get is more a reflection on yourself than the pool as a whole. You build shit, and they will come.

    15. Re:Mythical Creature... by SanityInAnarchy · · Score: 1

      Average to less-than-average programmers will never understand virtual functions, templates, or (shudder) multiple inheritance.

      Those are relatively easy. The larger problem is that C++ almost seems to go out of its way to make things complicated -- and it is a hideously bloated language. No one is going to understand all of the quirks -- even all of the syntactical quirks. Just look at a template within a template...

      Java doesn't make it any easier. Just look at Hello World.

      --
      Don't thank God, thank a doctor!
    16. Re:Mythical Creature... by countach · · Score: 1

      I think average programmers can understand virtual functions, templates and multiple inheritance, but perhaps not the way C++ implements it. C++ makes powerful concepts complicated, because it tries too hard to be close to the metal. Try Eiffel as a language that has these things in a more understandable way.

    17. Re:Mythical Creature... by SageMusings · · Score: 2, Informative

      Actually it's never needed, unless you meant multiple inheritance from interfaces.

      Interface inheritance is your friend.

      --
      -- Posted from my parent's basement
    18. Re:Mythical Creature... by Eli+Gottlieb · · Score: 2, Funny

      C++ is C with optional safety-less AK-47s. The top 1% enjoy it, the next 9% live with it, and the other 90% die bemused in a hail of friendly fire.

      Well that puts me in the top 10%, so I guess it's OK then.

      Oh who am I kidding. I've done enough C++ that I've become so fed up it's the best systems-programming language we have that I've gone and designed my own. JIHAD! JIHAD AGAINST C++ AND ALL ITS WORKS!

    19. Re:Mythical Creature... by Daniel+Dvorkin · · Score: 2, Insightful

      If interfaces actually did something, I'd agree with you. But they don't. Implementable interfaces which could be used by any class that needed them would be beautiful. Java interfaces are essentially documentation, not code.

      --
      The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
    20. Re:Mythical Creature... by Anonymous Coward · · Score: 0

      I am _not_ fat.

      He didn't mean anything by that, Obelix. You're simply plentifully proportioned.

    21. Re:Mythical Creature... by Bu11etmagnet · · Score: 1

      Interface inheritance is your friend.

      Remember, in C++, friend should be used as little as possible.

      --
      Life is complex, with real and imaginary parts.
    22. Re:Mythical Creature... by shutdown+-p+now · · Score: 2, Funny

      C++ is C with optional safety-less AK-47s.

      To extend this analogy further - C is like safety-less SKS - it will let you shoot off your toes one at a time. C++ is, as you've correctly noted, like safety-less AK - it will let you shoot off both your feet with a single press of the trigger.

      Java... well, I guess it's like a wooden AK. Need to club anything long and hard before it dies, and you can still do it your own feet if you really try.

    23. Re:Mythical Creature... by shutdown+-p+now · · Score: 2, Insightful

      Actually it's never needed, unless you meant multiple inheritance from interfaces. Interface inheritance is your friend.

      Wake me up when there's a mainstream language that has syntactic sugar for interface delegation to a class member to provide for the lack of implementation inheritance (so that I can do what C++ MI lets me do with interfaces in comparable number of lines of code).

      In case I didn't make myself sufficiently clear, here is a description of the feature for a language that actually implements it. It's not a mainstream one, though.

    24. Re:Mythical Creature... by D-Cypell · · Score: 3, Insightful

      Rubbish!

      You are clearly speaking as somebody who has not yet grasped what interfaces give you. An interface is an indicator that a class provides a particular service, many classes can provide the same service in different ways, all would implement the interface.

      So you have an interface called 'Dateable' which defines a method 'setDate(Date date)'. Your Appointment class and your MissleLaunch class both implement this interface. Then your cool little date chooser widget just takes a 'Dateable' as a parameter somewhere (either constructor or setter). It 'interfaces' with the dependent class via the type safe interface type without needing to know whether it is scheduling a trip to the dentist or the end of civilisation as we know it! *That* is what interfaces give you, far more than just 'documentation'.

      People get lead down the wrong path because someone will say... "Java doesn't have multiple inheritance, but instead it has interfaces", but this is like saying... "I don't have a hammer, but instead I have an apple". Two concepts, two jobs. Java doesn't have multiple inheritance because some of the end-case rules are a bit strange, and god knows, even single inheritance is badly abused by poor programmers. Sun seem to have taken the line of not giving people the rope with which to hang themselves (even if a small percentage would use the rope responsibly), operator overloading is not in Java for the same reason.

      We can argue whether this was a good approach (there are are strong arguments from both camps!), but interfaces are *certainly not* 'essentially documentation'.

    25. Re:Mythical Creature... by Anonymous Coward · · Score: 0
    26. Re:Mythical Creature... by gbjbaanb · · Score: 2, Interesting

      You obviously have only learned half the story on inheritance. MI is a good thing, its just that most modern languages don't implement it because its hard for the compiler writers.

      If interface inheritance was such a obvious and perfect option, why is it that Java (and other Java-a-like languages) provide implementation inheritance?

      MI (and operator overloading) is good, as a java programmer, if you had it you'd be singing its praises.

    27. Re:Mythical Creature... by Weedlekin · · Score: 2, Interesting

      " MI is a good thing, its just that most modern languages don't implement it because its hard for the compiler writers."

      The problem is that, as the MI mechanism in C++ so excellently demonstrates, coming up with a good way of doing it that doesn't introduce at least as many problems as it solves is what's difficult, not implementing the mechanism itself. An excellent example of this is a common MI ambiguity caused by multiple base classes having member functions with the same names and input parameters. C++ handles this situation via kludges of such epic proportions that calling it "a designed feature" would be stretching the term to a degree where one would also have to call the ability to ruin electronic devices when poured into them a "designed feature" of soft drinks.

      --
      I'm not going to change your sheets again, Mr. Hastings.
    28. Re:Mythical Creature... by Anonymous Coward · · Score: 0

      Here's my beef with C++. Average to less-than-average programmers will never understand virtual functions, templates, or (shudder) multiple inheritance. New code is normally written by super-smart programmers who use all that stuff.

      I don't consider those things hard. And I don't even LIKE C++. I'm more of a C guy, or even Visual Basic. Heck, I'm one of those "less training than it takes to become a plumber" programmers he talks about.

      So, if you consider virtual functions, templates and multiple inheritance hard, I guess it says more about you, than it does about C++.

    29. Re:Mythical Creature... by Anonymous Coward · · Score: 0

      Do you really think Valve's Source engine would be as good if it were written in Java?

      I'm not sure about you, but *I* think that the quality of a product does not primarily depend on the language it's written in, within reasonable bounds.

      Source probably wouldn't be good if it was written in Intercal, or GW-BASIC, or something similar. But if you think Java vs. C++ really necessarily makes a huge difference, you, quite bluntly, are an idiot who's drunk the Kool-Aid.

    30. Re:Mythical Creature... by orasio · · Score: 1

      It's never needed, if your idea of OOP is Java.
      Just because Java can't do it, it doesn't mean it's not OOP.
      There is a lot of non-OO stuff in Java, and a lot of OO that Java does not support.
      Like multiple inheritance.
      When you have a nice mix of objects, that are supposed to mix and match capabilities, of course you could use interfaces for multiple inheritance, but then you would have to encapsulate helper objects.
      And your constructors would look like shit.
      With multiple inheritance, you could make the original classes very small, and just mix and match them, all very beautiful.
      Of course, modern IDEs can help you with encapsulation, but constructors are awful.

    31. Re:Mythical Creature... by D-Cypell · · Score: 2, Informative

      More rubbish I am afraid!

      If the compiler/runtime writers can implement highly complicated features that exist in things like hotspot I am damn sure they can implement multiple inheritance! The problem is that there are too many ambiguous cases that can be introduced by using multiple inheritance.

      The reason that Java provides both interface implementation (and inheritance between interfaces themselves, including multiple inheritance (which does not have the problems found with multiple implementation inheritance)) is because they are used for two different things. One is used to express common, generic functionality, the other is used to specialize on implementation details. A very short browse through the Java API docs will demonstrate many cases where interface implementation and concrete inheritance are used to great effect.

      For me the jury is out on whether I would find MI useful in Java, but you are probably right about operator overloading. As a lone, and fairly experienced Java programmer I would probably find some sensible uses for operator overloading. I am also certain I would sit through more than one deeplying annoying conversation with a junior developer who is trying to explain to me why adding two 'Customer' instances together makes some kind of sense (or worse, dividing them!). Personally, I tend to feel it is not worth the aggro. Mileage may vary.

    32. Re:Mythical Creature... by Anonymous Coward · · Score: 0

      Yes you are, you use underscores and you will be charged for two seats.

    33. Re:Mythical Creature... by smilindog2000 · · Score: 1, Insightful

      I agree that C++ GUI code (like Valve's Source engine) are better than the old C GUI libraries. C++ is a good fit for describing class hierarchies of GUI widgets. It's not all bad, but not all good, either.

      While C++ works well for trees, consider graphs. Two classes, not just one (Nodes and Edges, rather than just Nodes). If there is a C++ database containing a graph, and you want to manipulate that graph, how do you do it? In C++, your life becomes harder than it should be at that point (do you attach void pointers to allow kludged extensions to database objects, or inherit from them directly and do copy-in/copy-out?). The only reasonable C++ graph library I've seen is the Boost Graph Library. If you care for a life of pain, make this the basis of your next big EDA project. Alternatively, if you store those graphs in a DataDraw database, your code is hugely simplified, while running far faster.

      I do EDA coding for a living. Life as an EDA programmer is basically all about manipulating graphs. C++ and EDA have never worked out well together, but nor has Java, C#, or any other mainstream language. You need dynamic extension, like Python, but raw-speed, like C. Today, that means DataDraw.

      --
      Beer is proof that God loves us, and wants us to be happy.
    34. Re:Mythical Creature... by John+Betonschaar · · Score: 1

      Wake me up when there's a mainstream language that has syntactic sugar for interface delegation to a class member to provide for the lack of implementation inheritance

      Delphi has something resembling exactly that. Not only can you delegate reads/writes to member data using properties, but you can also delegate complete interfaces derived from IInterface to any implementing TObject (e.g. a composite of the class itself).

      I hated those when I was still programming Delphi by the way, it opens an enormous can of worms if you get carried away and want to create (for instance) interface classes for abstract container objects (think something along the lines of a polymorphic TItem object). The way Delphi handles objects implementing IInterface is absolutely retarded (especially the completely opaque implicit reference counting automatically applied to all classes implementing IInterface).

      But I guess you could implement similar functionality cleanly, and in that case it could be useful

    35. Re:Mythical Creature... by shutdown+-p+now · · Score: 1

      If you follow the link in my previous post, it's actually to the Wiki on Delphi Prism (aka RemObjects Oxygene, aka Chrome). That said, it doesn't seem to suffer from the problems you describe (as its object model is .NET-centric).

    36. Re:Mythical Creature... by theaveng · · Score: 1

      IF BODY MASS INDEX > 25 THEN PRINT "YOU ARE FAT"

      --
      FOX NEWS.com should be BANNED from television and internet. Have the Congress take it over and give us Truespeak.
    37. Re:Mythical Creature... by earthforce_1 · · Score: 1

      You think this guy grasps the more advanced pieces of C++?
      http://lwn.net/Articles/249460/

      --
      My rights don't need management.
    38. Re:Mythical Creature... by Gr8Apes · · Score: 1

      I'd disagree - the "average" programmer can barely set the clock on his VCR (yes, dated reference...;)

       

      --
      The cesspool just got a check and balance.
    39. Re:Mythical Creature... by HeronBlademaster · · Score: 1

      My point was the C++ runs close to the metal (so to speak) while in Java there's an extra step between java bytecode and the machine code (namely, the JVM). IMHO, game engines do better closer to the metal.

      I wasn't trying to knock Java in particular, I was trying to point out a fundamental difference between C++ and interpreted languages that makes C++ more useful in some cases (like game engines).

    40. Re:Mythical Creature... by HeronBlademaster · · Score: 1

      Like I said, C++ isn't right for all situations. There are a lot of things C++ is good at, and there are a lot of things C++ is not good at.

      I thought your post was insightful; I don't understand why you were modded Troll.

    41. Re:Mythical Creature... by HeronBlademaster · · Score: 1

      Of course by "interpreted" I mean "anything not compiled directly into machine code".

    42. Re:Mythical Creature... by gbjbaanb · · Score: 2, Interesting

      I'm not saying interface inheritance is a bad thing, just that having it as the only option is bad, and that if you're going to allow implementation-inheritance lite (ie single inheritance of a class), you might as well have given everyone full MI.

      Apparently Anders said he didn't put MI into Delphi because it would slow down the speed of the compiler. I heard it was because he said no-one ever uses MI (I think the former is much more likely as loads of people use MI - that's why you see so many posts asking how to emulate MI using interface-inheritance).

      There's only 1 problem with MI - the diamond pattern. God knows there's enough other issues with Java/C#/etc that you have to understand, 1 more surely wouldn't hurt, especially one so well documented on the web already.

    43. Re:Mythical Creature... by gbjbaanb · · Score: 1

      The diamond pattern is the only problem with MI.

      One problem with interface-only inheritance is that you end up with lots of code duplication, or delegation to sub-objects in an attempt to work around the limitations imposed by not having MI.

      I think the biggest issue here is that people who write in languages that do not have MI go out of their way to explain why it is so bad, without actually saying anything except that it "is bad". There are plenty of other issues in these other languages that no-one really cares about, they just work with them.

      For some reason the lack of MI is like having a tiny penis, the proponents of those languages without it all seem desperate to prove that it isn't a problem for them at all, all the time telling all us C++ devs how bad it is for us to have something we're likely to trip over whilst walking.

    44. Re:Mythical Creature... by Anonymous Coward · · Score: 0

      (yes, dated reference...;)

      More dated than you think, given your assumption that all programmers are male. Unless you are just referring to the "average" programmer? ;)

    45. Re:Mythical Creature... by Creepy · · Score: 1

      I know a few of you are similar, but he could have just said Silas Warner without all the vague references. The part about being "best to be buried deep, never to be seen again" is a very sinister reference - don't creep me out like that, Bjarne!

    46. Re:Mythical Creature... by Duhavid · · Score: 1

      "and the other 90% die bemused in a hail of friendly fire."

      Evolution in action?

      --
      emt 377 emt 4
    47. Re:Mythical Creature... by turbidostato · · Score: 1

      "You are clearly speaking as somebody who has not yet grasped what interfaces give you. An interface is an indicator that a class provides a particular service, many classes can provide the same service in different ways, all would implement the interface."

      So, in the long run, it is *you* the one that didn't grasped the concept. "An interface is an indicator that a class provides a particular service" thus, just like the parent poster stated, "Java interfaces are essentially documentation".

    48. Re:Mythical Creature... by BadAnalogyGuy · · Score: 1

      Yer takin' my jerb!

    49. Re:Mythical Creature... by shutdown+-p+now · · Score: 1

      Sorry, mate, competition's hard in this business.

      Well, you can still do C#, or Python, or Ruby if you like. Or VB - but that's no fun, that's like shooting fish in the barrel.

    50. Re:Mythical Creature... by Weedlekin · · Score: 1

      "The diamond pattern is the only problem with MI."

      But it's not the only problem with MI in C++, as the fact that I mentioned another one in the post you're replying to which you seem to have completely ignored indicates.

      "One problem with interface-only inheritance..."

      I fail to see where this answers anything in my post, because I didn't mention interfaces anywhere in it.

      "I think the biggest issue here is that people who write in languages that do not have MI go out of their way to explain why it is so bad, without actually saying anything except that it "is bad"."

      I however am not one of them, because I didn't say MI was bad anywhere in my post.

      "For some reason the lack of MI is like having a tiny penis"

      Just like answering a post with a load of irrelevant and overly defensive tripe that has nothing whatsoever to do with anything in that post is a lot like having a tiny brain.

      --
      I'm not going to change your sheets again, Mr. Hastings.
    51. Re:Mythical Creature... by Anonymous Coward · · Score: 0

      If you sent a letter addressed 'Cunt, London' it would get through to gbjbaanb.

    52. Re:Mythical Creature... by Anonymous Coward · · Score: 0

      I don't give a s**t about this newbie with his bloated language.

      Dennis Ritchie.

      I knew Dennis Ritchie; Dennis Ritchie was a friend of mine and you're no Dennis Ritchie.

  2. A direct link... by tcopeland · · Score: 5, Informative

    ..is here.

    1. Re:A direct link... by Provocateur · · Score: 1

      and here I was, clicking on the link, expecting to find the aforementioned sloppy fat geek computer genius semi-buried in a pile of pizza boxes and cola cans

      *sigh* must be as elusive as Bigfoot.

      --
      WARNING: Smartphones have side effects--most of them undocumented.
    2. Re:A direct link... by Hal_Porter · · Score: 1

      You can find them in the basement at night. They are scared of humans though so bring some Pizza as a bait if you want to see them.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
  3. Careful by cjfs · · Score: 5, Funny

    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

    Be careful. They're easily frightened, but they'll soon be back, and in greater numbers.

    1. Re:Careful by truthsearch · · Score: 5, Funny

      *Bjarne waves hand* These are not the programmers you're looking for.

    2. Re:Careful by Shikaku · · Score: 1

      Be careful. They're easily frightened, but they'll soon be back, and in greater numbers.

      In kilograms?

    3. Re:Careful by Anonymous Coward · · Score: 0

      Hey! These are not the programmers I'm looking for. I suddenly feel the urge to do code VB.

    4. Re:Careful by Anonymous Coward · · Score: 0

      Bjarne's on the wrong side of the force to do that trick.

      His aptitude is in strangling programmers to death.

    5. Re:Careful by SanityInAnarchy · · Score: 1

      Which is actually the point -- these creatures do exist, and they can work in teams.

      I suspect what Bjarne is afraid of is the uncomfortable truth that most real world programming jobs don't need most of what they teach you in school. The purpose of school is, it's still good practice at stretching your mind, and it makes you more employable -- but it doesn't necessarily make you more prepared for a real job.

      --
      Don't thank God, thank a doctor!
    6. Re:Careful by robbrit · · Score: 1

      It's called natural selection. If we let just anybody become a Sith Lord, they wouldn't be so scary would they?

    7. Re:Careful by baggins2001 · · Score: 1

      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

      Be careful. They're easily frightened, but they'll soon be back, and in greater numbers.

      And they'll want our pizza.

      --
      He who said 1,000,000 monkeys on 1,000,000 typewriters would eventually type the great novel, never saw an AOL chat room
    8. Re:Careful by JeremyMorgan · · Score: 2, Interesting

      I agree 100%. All the academic background in the world doesn't prepare you for what the school of hard knocks does. 2-3 years on the job programming taught me more than any school could. We all know the academic solutions, but do we ever use them?

    9. Re:Careful by Roy+van+Rijn · · Score: 1

      No..!? You mean..? Is it true..? Did they finally found a way to reproduce?

    10. Re:Careful by SanityInAnarchy · · Score: 1

      We all know the academic solutions, but do we ever use them?

      See, I flunked out of school as fast as it is possible to flunk out -- by not going to class. I've been in the real world for at least 2 years now, close to 3.

      It's been annoying at times -- having to go back and look up what big-O notation means, and learning the basic tree types... So I do intend to go back.

      But I don't think there's really as much of a connection. You'd get much better results by taking the students who survived the first class -- which, at my school, was mostly a course in "Who already knows Java, or can teach themselves quickly enough?" -- and giving them a brand-new project, a brand-new language, and a semester to finish it.

      With some real experience, it might make the introduction of unit tests much more welcome, for example.

      --
      Don't thank God, thank a doctor!
    11. Re:Careful by laejoh · · Score: 1

      And they will replace you all with a very small shell script!

    12. Re:Careful by Cederic · · Score: 1

      I didn't go to class and they gave me an honours degree. A good one too.

      Then again, I went to a good university and learned a lot playing on their unix systems.

      A good university teaches you how to learn, how to solve problems and how to write about them. All very useful skills in the workplace.

      Any specific career related knowledge gained is and should be purely coincidental. It's a fucking university, not a tech college.

    13. Re:Careful by SanityInAnarchy · · Score: 1

      I didn't go to class and they gave me an honours degree. A good one too.

      See, that worked somewhat for the comp sci stuff -- I wouldn't go to class, but I would do the weekly assignments and show up for tests. Roughly two hours a week of work, and I got a B.

      That didn't work for the other classes.

      Any specific career related knowledge gained is and should be purely coincidental. It's a fucking university, not a tech college.

      I think you're confusing "university" with "high school".

      In high school, it really doesn't matter what you're taught, because most of it is simply to give you very basic skills (like "how to type"), and to get you in the habit of writing papers, doing homework, and all the other sort of meta-work-related stuff that is actually helpful. But the knowledge itself can be completely thrown away.

      College is meant to actually teach you things -- the idea being to give you a well-rounded education, and to teach you about things you're specifically interested in. There are fundamental skills I did not learn in college, but did learn very quickly at my first development job.

      Yes, I might throw out the specific language they used to teach me to program. But I would expect to at least learn some programming, and learn about unit tests, version control, communicating with a team... Basic, basic stuff, which applies no matter what else I do in software.

      Maybe they saved that for later years -- which still seems idiotic. I'd argue, version control should be in comp sci 101.

      Which is, by the way, why starting with Java is a bad idea. Every language benefits from automated testing. Not every language has a concept of public methods, static methods, return types, or even classes, all of which I was expected to understand in the very first lecture. (I was fine; I'd played with Java before...)

      --
      Don't thank God, thank a doctor!
    14. Re:Careful by Cederic · · Score: 1

      I think you're confusing College with University.

      People go to Uni and do subjects like Biology, Economics, Film & Theatre Studies and Computer Science. Then they go out and get jobs as plumbers, accountants, teachers, middle managers and software engineers.

      My closest friends:
      - BSc Physics : programmer
      - BSc Accounting : runs his own IT business
      - BSc Economics : SOx expert consultant
      - Pissed around so much, no degree : works for Microsoft
      - BA Modern Languages : runs her own business in healthcare
      - BSc Chemical Engineering : banker

      Maybe you went to a college that is meant to prepare you for a career, but universities do not and should not have that role.

  4. Better English education as well. by uofitorn · · Score: 1, Troll

    /pedant
    Quotes is a verb. I'm sure you meant to say "Read on for more choice quotations from the quotable professor."

    --
    "What kind of music do pirates listen to?" -Paul Maud'dib
    "Yeeeaaarrrrr n' Bee!!" -Stilgar, Leader of Sietch Tabr
    1. Re:Better English education as well. by Anonymous Coward · · Score: 3, Insightful

      /unpedant
      Quote is also a noun. I'm sure you meant to say, "Read on for more choice quotes from the professor."

    2. Re:Better English education as well. by Culture20 · · Score: 5, Funny

      /pedant
      Quotes is a verb. I'm sure you meant to say "Read on for more choice quotations from the quotable professor."

      /unpedant
      Quote is also a noun. I'm sure you meant to say, "Read on for more choice quotes from the professor."

      /gollum
      Quoteses is also a plural noun. We're sure hobbitses meant to say, "Rrread... ON! for more choice quoteses... fromtheprofessor. My precious."

    3. Re:Better English education as well. by jaavaaguru · · Score: 1

      Are you sure?

      n.

            1. Informal. A quotation.

    4. Re:Better English education as well. by uberjack · · Score: 3, Informative

      /gollum Quoteses is also a plural noun. We're sure hobbitses meant to say, "Rrread... ON! for more choice quoteses... fromtheprofessor. My precious."

      I told you they were tricksy. I told you they were false.

    5. Re:Better English education as well. by uofitorn · · Score: 1

      Although I wouldn't consider answers.com a definitive reference, the OED does list it as a verb (especially when used informally) so you're correct. I don't have to like it though!

      --
      "What kind of music do pirates listen to?" -Paul Maud'dib
      "Yeeeaaarrrrr n' Bee!!" -Stilgar, Leader of Sietch Tabr
    6. Re:Better English education as well. by nog_lorp · · Score: 1

      Your point stands, a 'news outlet' should be using formal language most of the time.

    7. Re:Better English education as well. by Hal_Porter · · Score: 1

      The OED is hopeless these days. I have an old copy from 1904, back when it was still reliable.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
  5. If they can't get a smart and social employee... by utahraptor · · Score: 2, Funny

    Try using a tag team. Maybe if each programmer had a cheerleader coordinating his efforts, he could get his production up.

  6. Back To Reality by MightyMartian · · Score: 5, Interesting

    This is all well and good, and there's no doubt that an engineering/logical approach is very important in programming, but there is something of an art about development as well. I can slog all day coding away, working from diagrams, notes and even flowcharts (though not formalized ones, I'll admit, like days gone by), but sometimes my best and most productive work are those creative flashes I get, when any kind of formal process is tossed out the door. Sure, I have to go back later and comment the code so that even I can understand it, but there will always be that creative aspect to programming, and that ain't necessarily bad.

    --
    The world's burning. Moped Jesus spotted on I50. Details at 11.
    1. Re:Back To Reality by pm_rat_poison · · Score: 5, Insightful

      Yeah, but what Stroustrup is trying to say is that the formal process has to be taught, so that the latter process can work more efficiently. Now matter how much of a flash of insight I get, I'll never even code Hello World if I don't know how to program properly.

    2. Re:Back To Reality by moderatorrater · · Score: 5, Interesting

      I don't think he's arguing against that at all. What he seems to be saying is that programming isn't taught, computer science is, and it's not rooted enough in the practicalities of programming. Style isn't enforced or even talked about all that much. He cites examples of student projects where they sprinkle magic constants throughout because they were never taught otherwise. In my CS courses the labs came every week, dealt with very small, specific problems and then were never looked at again. If Stroustrup had his way, it sounds like there would be style guides for the students (that were actually enforced), bigger projects and maybe some troubleshooting (ie give them 10,000 lines of code and make them find the problem). In other words, there would be things that everyone does on a daily basis as a programmer but were never really taught in school.

    3. Re:Back To Reality by mevets · · Score: 0, Offtopic

      Good morning students, today we will learn how to mix hash and turkish tobacco so nobody will know how fried you are at work.

    4. Re:Back To Reality by amirulbahr · · Score: 5, Insightful

      This is all well and good, and there's no doubt that an engineering/logical approach is very important in engineering, but there is something of an art about engineering as well. I can slog all day designing/building/coding/prototyping away, working from diagrams, notes and even flowcharts (though not formalized ones, I'll admit, like days gone by), but sometimes my best and most productive work are those creative flashes I get, when any kind of formal process is tossed out the door. Sure, I have to go back later and document my work so that even I can understand it, but there will always be that creative aspect to engineering, and that ain't necessarily bad.

    5. Re:Back To Reality by Anonymous Coward · · Score: 4, Insightful

      What is it exactly that you think an engineering approach actually is? Some sort of formulaic fill in the blank? Engineering is coming up with ways to apply tools (physics, chemistry, math) to solve problems. Engineering curriculums teach engineers to think in such a way that they can do so. Any good engineering is an art form.

    6. Re:Back To Reality by Jeff+DeMaagd · · Score: 3, Interesting

      I can't help but think maybe your impression of engineering is a little off.

      The practice of computer science / development and various fields of engineering are very similar in many ways.

      There is or can be an art or even zen to engineering work too. There is plenty of room for creativity that the stereotype or public impression doesn't even hint at.

    7. Re:Back To Reality by Eskarel · · Score: 3, Interesting

      Where I went to university, at least in some of the earlier classes, proper commenting was half the grade. You could almost pass if your program compiled and was commented using the right formatting even if it didn't actually do any of the things it was supposed to.

      Conversely if your program was perfect and brilliant but contained no comments you could fail.

      That's not quite the same as proper coding style, but it was covered.

      We also did interesting projects like hacking ns to implement a tcp congestion control algorithm from a white paper, and building an, admitedly fully simulated, interrupt system in my OS class.

      One of my friends at a different university had to actually modify the linux kernel as part of his OS course. Not all CS programs are crap, just some of them, same as everything else.

      We did team projects too, and had to plan and work together, build different parts of the system based on a shared interface and put it together.

      I'm mostly a web guy now, and like most people I sometimes get a little sloppy when deadlines are tight, but that doesn't mean I didn't learn it, in Java, C, C++, and MIPS/RISC assembler.

    8. Re:Back To Reality by Ian_Mi · · Score: 2, Insightful

      And engineering doesn't benefit from creativity? Just because something requires creativity doesn't make it an art.

    9. Re:Back To Reality by lgw · · Score: 4, Interesting

      I'd say, more specifically, that there's a real and serious problem today with CompSci grads who (a) don't know what pointers are, and (b) have never seen a Windows development environment.

      So many schools these days do *evrything* in Java, except for some "survey of languages" class. Pointers and recursion are the two fundamental aspects of CompSci that are hard to get your head around the first time. Almost everything else I can teach a bright young intern, but if he doesn't "get" pointers it's not worth trying to teach. Internships are short, and it usually takes *weeks* to become comfortable with pointers.

      Is a 1-semester course in C++ programming too much to ask? Familiarity with the string, vector, and map classes is another hurdle that a student should really jump while in school. Sure, a lot of concepts are language-independent, but there is more than Java in use out here, and if you haven't done C, C++, and Lisp/Scheme, you might be missing some of those basic concepts.

      And it's really a pain to mentor an inter who clearly has never spent much time on a Windows box, and has neve used Visual Studio. Java programming on a Unix system is nice and all, but there are a great many Windows shops out here in the Real World. Even a 1-semester "survey"-style course that forced students to use Windows and Visual Studio would get them over that hurdle.

      I'm not going to refuse to hire a junior programmer just because he hasn't had Windows experience, but when a new hire can't debug, or even build a program using Visual Studio, or in some cases doesn't even know how to copy/paste a file, they've been dreadfully underprepared for the real world.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    10. Re:Back To Reality by that+this+is+not+und · · Score: 1

      You're entirely correct. Sometimes the best ideas come when you're not expecting them. You jot them down on the back of an envelope or the proverbial dinner napkin.

      Decades ago, really creative people didn't have to do a lot of the stuff that is now delegated broadly throughout an organization. They could turn their sketches in to drafting and let a drone formalize them. Now engineers are expected to waste their time doing the CAD themselves.

      Speaking as an electronics hardware guy, I gave a small design to a new recent-grad and he spent hours entering it into Orcad and trying to simulate it. A simple one op-amp design that just needed a little parameter variation (decade box, please?) and evaluation on the bench.

      The 'social' aspects of programming matter on a certain scale, but not always. Sometimes it's best just to throw it together with some assembly language and run it on the breadboard.

      Oh, wait. You meant software that runs on an operating system??

    11. Re:Back To Reality by that+this+is+not+und · · Score: 1

      Modern companies, with their process-driven methodology, are terrified of real engineering. It's a dangerous destablizing thing that needs to be driven out of the company, pronto.

      Is there a Work Instruction for what you're doing over there? No? You'd better get to work writing one. An auditor might see you doing whatever it is you're doing and then we're in trouble.

    12. Re:Back To Reality by Chandon+Seldon · · Score: 4, Insightful

      have never seen a Windows development environment.

      University isn't vocational training, and it certainly isn't vocational training for the specific tool set that you happen to use. If you mean that it would be reasonable to offer a Windows programming elective, great. But mandating a class in operating Visual Studio makes about as much sense as mandating a course in Ruby on Rails or the iPhone SDK.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    13. Re:Back To Reality by nog_lorp · · Score: 1

      My intro course that I'm finishing right now (albeit taught by a professor noted for being one of the hardest on campus, and the class being accelerated 101/102) holds us to an extremely strict style sheet, where an assignment will not pass until every indentation is perfect (3 space indentation), all keywords (if/while/for) have a space before the opening parenthesis, all symbols following specific naming conventions, etc.

      We were also heavily encouraged to use automated testing (if you needed help on a project, the professor wouldn't even start till you'd shown him your test cases). Our last project was over a several week period, using Java, building a puzzle solver with abstractions of puzzles and solvers, implementing a 15-puzzle and DFS, BFS, and A* solver, using data structures that we implemented (queues and stacks and for A* a stable heap queue).

      Sounds like my course would make Stroustrup happy :D

    14. Re:Back To Reality by cymen · · Score: 1

      Sounds like the UW-Madison CS course although I'm sure many are similar (same TCP and interrupt projects and same languages). I thought it was a good undergrad program although I was disappointed how much is left to grad school.

    15. Re:Back To Reality by Anonymous Coward · · Score: 0

      You know it's strange that Bjarne would talk about teaching the standards of program style when such a thing doesn't even exist.

    16. Re:Back To Reality by Eli+Gottlieb · · Score: 1

      I'm just going to post my experience and opinions here.

      First of all, I've seen shitloads of students who know Windows development environments. They know Visual Studio for using C#, or even C++ if they're really into games programming. I see comparatively fewer who enter school knowing about Unix environments (at least here at UMass lab computers are Linux, so they quickly learn).

      And at least here at UMass, we do have a one-semester course in C++. It's new, and it's offered as an option for students who don't want to take Operating Systems without C++ experience. I advise everyone I know to take it, as I've seen truly horrific code written by both students and teaching assistants during my trek through the wonderful world of vague, unscientific, non-rigorous Operating Systems.

    17. Re:Back To Reality by Anonymous Coward · · Score: 1, Insightful

      I think that what Stroustrup is arguing is that the creative aspect is based on a core technical (engineer/mathematician) understanding of the problem at hand. I do agree with you about the need for creativity, it is very important. However, I think that without a solid foundation, it's hard to have "creative flashes" in programming and still produce sound and solid code that is reusable.

    18. Re:Back To Reality by Raenex · · Score: 2, Insightful

      There's always going to be a tension between process and creativity.

    19. Re:Back To Reality by Anonymous Coward · · Score: 0

      Exactly right. This is a point I've been giggling about for years.

      I had no formal training in programming. I didn't even write my first real line of code until I was probably... 19 or 20? I'm 30 now.

      All the time I see people argue and bitch about theory and best practices and spend countless weeks over the same damned function, only to produce broken, ugly code.

      People need to study best practices and theory enough that it's something that's in the back of their mind all the time. The rest of their programming education should be DOING things... things with VALUE.

      Your idea of having them debug code... perfect. Bigger projects? Perfect. They need to solve real problems, difficult problems. Write code that does things efficiently, effectively, and in a timely manner. None of this, "Spend the next week working on the best possible way to reduce this chore to six lines" silliness. The world wants results, and it wants them yesterday.

      Should it be safe, modular, documented, efficient code? Of course. Should every line be something you could print in a classroom textbook for study by future academics? Hell no.

      This is why I've always been the most valuable programmer in the room, anywhere I go... in the workplace, silly seminars, anywhere. I get things done in a way that businesses appreciate. It all works, it works quickly, it can be maintained by other people, I hide nothing, I do it quickly and I'm always thinking about the user.

    20. Re:Back To Reality by Anonymous Coward · · Score: 0

      I'd say, more specifically, that there's a real and serious problem today with CompSci grads who (a) don't know what pointers are

      Oh my! Miserable failure.

      (b) have never seen a Windows development environment.

      Oh... Failure on your part this time. If you use Windows, you're not doing it right.

      Internships are short, and it usually takes *weeks* to become comfortable with pointers.

      Familiarity with the string, vector, and map classes is another hurdle that a student should really jump while in school.

      And it's really a pain to mentor an inter who clearly has never spent much time on a Windows box, and has neve used Visual Studio.

      O_o

      Now, where do you dig up your candidates, really? Weeks to understand pointers? Also, if they are anywhere near bright, starting programming with Windows and Visual Studio shouldn't be much of a problem even if they have never seen them before. Then again, I would be suspicious of any candidate who didn't stay away from Windows.

      in some cases doesn't even know how to copy/paste a file

      Are you joking with us? It sounds like your presumptive programmers hardly qualifies as what you would call "computer literate".

    21. Re:Back To Reality by Just+Some+Guy · · Score: 1

      I'm not going to refuse to hire a junior programmer just because he hasn't had Windows experience, but when a new hire can't debug, or even build a program using Visual Studio, or in some cases doesn't even know how to copy/paste a file, they've been dreadfully underprepared for the real world.

      Send 'em my way, would you? I'm not going to refuse to hire a junior programmer because he hasn't had Unix experience, but when a new hire can't debug, or even build a program using make, or in some cases doesn't even know how to cp/mv a file, they've been dreadfully underprepared for the real world.

      --
      Dewey, what part of this looks like authorities should be involved?
    22. Re:Back To Reality by Anonymous Coward · · Score: 0

      You think mandating a class where students become familiar with a very common tool they'd use when applying their skills, doesn't make sense?

      Weird. And don't pretend that RonR and iPhone sdk are used as commonly as Visual Studio.

    23. Re:Back To Reality by computational+super · · Score: 1
      where an assignment will not pass until every indentation is perfect (3 space indentation), all keywords (if/while/for) have a space before the opening parenthesis, all symbols following specific naming conventions, etc.

      I'd recommend you spend a couple hours learning an autoformatter (Eclipse has one built in), code however the hell you want, and then run that damned thing through the autoformatter before you turn it in. (Perhaps that's the lesson he's trying to teach you...?)

      --
      Proud neuron in the Slashdot hivemind since 2002.
    24. Re:Back To Reality by 0xdeadbeef · · Score: 1

      Except that it is vocational training. Otherwise, what is the point?

      I once worked at a place where the proficiency test was a Visual Studio project where the applicant had to implement code and debug existing code. None of us were fond of Microsoft, and much of our work was on embedded hardware not running WinCE. But if they couldn't handle that simple debugger, they'd be SOL on anything and everything more esoteric.

      At this point in time, I'd expect every graduate who wants to be marketable to have some familiarity with C++, POSIX, Win32 and .NET, Java, Cocoa and Objective C, and SQL. Specialization for the young is foolish, like an evolutionary dead end. It limits your options and constrains your thinking.

    25. Re:Back To Reality by Cederic · · Score: 1

      The practice of computer science and the practice of development are significantly different.

      Although there is definitely room (and indeed necessity) for creativity in engineering.

    26. Re:Back To Reality by jafac · · Score: 1

      Wow, and that Software Engineering class I took for my degree was for what exactly?

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    27. Re:Back To Reality by nog_lorp · · Score: 1

      In theory, the point is to get us used to some arbitrary style that we will hate initially, because that is what will happen when we get a job :D.

      I set up my vimrc to handle the tabs and search for forgotten spaces and such before I turn it in.

    28. Re:Back To Reality by Chandon+Seldon · · Score: 1

      At this point in time, I'd expect every graduate who wants to be marketable to have some familiarity with C++, POSIX, Win32 and .NET, Java, Cocoa and Objective C, and SQL. Specialization for the young is foolish, like an evolutionary dead end. It limits your options and constrains your thinking.

      And wasting valuable University time teaching any of those things is unnecessary specialization. Here's a list of requirements for the school I just graduated from: UMass Lowell CS Reqs. What would you drop to add a mandatory class in Cocoa / Objective C?

      The gen-eds? The science requirement? Then you get a computer specialist who basically didn't get a university education.

      The math? Then you get a junior technician who can basically never do anything interesting. There are two year "programming" programs at trade schools that give you this. If this is what you want, hire it - no need to try to screw up University CS programs.

      The electives? I would have been pretty pissed off if someone told me I couldn't take my class in programming language design or network security because I needed to take a mandatory course in .NET instead.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    29. Re:Back To Reality by Chandon+Seldon · · Score: 1

      You think mandating a class where students become familiar with a very common tool they'd use when applying their skills, doesn't make sense?

      What percentage of CS graduates will use the current version of Visual Studio, and use it as significantly more than a glorified text editor? How about Eclipse? NetBeans? A GNU toolchain? Xcode? Won't become programmers at all (Sysadmin perhaps)? Write PHP/Javascript in Notepad++?

      Sure, it's worth exposing CS students to at least one of those things. But saying it specifically must be Visual Studio (or any one of the others) is foolish.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    30. Re:Back To Reality by lgw · · Score: 1

      An undergrad engineering degree *is* vocation training these days. A "profession" (no thesis) masters degree is *specifically* vocational.

      If you write non-Java code for Windows as a professional software developer, you'll use Visual studio. The last time I looked, that was about half of those jobs. Learning to use an IDE to debug is an important job skill. Eclipse and gdb too, by all means, though those three cover that vast majority of jobs out there.

      If you're not going to focre studints to write their own compiler any more (and that's largely moved to graduate programs, for some reason), you need to do *something* to teach what a compiler does with source code. I don't care if a grad knows the difference between C and Pascal calling conventions, but these days many don't have the underlying concepts ("what do you mean, pushes arguments and return address on the stack?") that will allow me to explain.

      Grads should at least have a starting point for debugging through disassembly, or debugging optimized code, or just in general knowing what the computer is doing when running their program. If we'r enot going to teach compiler design, then at least teach debugging!

      --
      Socialism: a lie told by totalitarians and believed by fools.
    31. Re:Back To Reality by lgw · · Score: 1

      Ahhh, you're familiar with that tiny percentage of software developers who grew up in the US, I bet. Windows is still too expensive for most of the places where programmers grow up these days.

      That sounds like a decent program - not that a school really needs a class about C++ (though as you point out it can really help), but a class that *uses* C++ for non-trivial programs is wonderful.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    32. Re:Back To Reality by 0xdeadbeef · · Score: 1

      You seem to believe students need their hands held. At better schools, higher level classes focus on theory and give you leeway on the languages and tools use to implement projects. The vendor technology you learn is your own prerogative.

    33. Re:Back To Reality by Chandon+Seldon · · Score: 1

      I think you missed the right reply button. That response would make more sense elsewhere in the tree.

      --
      -- The act of censorship is always worse than whatever is being censored. Always.
    34. Re:Back To Reality by Eskarel · · Score: 1

      Actually, it was the UW-Madison CS course.

    35. Re:Back To Reality by Anonymous Coward · · Score: 0

      University isn't vocational training, and it certainly isn't vocational training for the specific tool set that you happen to use. If you mean that it would be reasonable to offer a Windows programming elective, great. But mandating a class in operating Visual Studio makes about as much sense as mandating a course in Ruby on Rails or the iPhone SDK.

      You hit the nail on the head, sir. Computer Science is NOT vocational training and the GP, like so many other professionals/businesses, wishes it was. Since many universities amount to a bunch of greedy, money grubbing, leaches, Comp. Sci. has devolved into vocational training at many institutions, but it is not.

      To the GP, if you want someone with vocational training, hire someone with vocational training from a school that specializes in that. Quit trying to make Computer Science into something it's not. Computer Science is academia, IT (software and hardware both) are blue collar work, no matter what you've been told or how badly you want it to be otherwise. We're just like highly paid, specialized welders or graphic artists. Vocational training would suffice for what we do, very few people actually use what would qualify as Computer Science in their jobs.

      Now, hurry and mod the AC down!

  7. On High Schools doing more... by Hardolaf · · Score: 1

    As a High School student a good school I know that I am pushed to do more, to learn more. I shadowed at a school that is not as fortunate as the one I attend and I have noticed that the way they teach at the High School is far different then the one I attend. They don't have nearly as much funding as needed leading to a lack of proper equipment and good teachers who can make the students motivated. From what I have heard that is how it is across America. Maybe instead of blaming the High Schools he should blame a lack of funding that leads to this problem.

    1. Re:On High Schools doing more... by Anonymous Coward · · Score: 0

      >As a High School student a good school I know that I am pushed to do more, to learn more.

      And you won't be stuck with Texas A&M as your first choice of a college.

      Don't get me wrong. A&M is a fine school, if you can't get into UT.

    2. Re:On High Schools doing more... by afidel · · Score: 2, Interesting

      Funding is a necessary but not a sufficient condition for academic success. I attended a school district that spends about half as much per pupil than the big city school district despite having about 3x more special needs kids per 1000. Despite that lower funding level they achieve a 90+% college attendance rate vs about 20% for the large school district. The difference is that in the district I attended (and the similar one my children now attend) the parents expect their children to succeed and put a great deal of effort into making sure that happens.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    3. Re:On High Schools doing more... by east+coast · · Score: 5, Insightful

      Lack of funding? Young man, I learned Pascal on a TRS-80 Model II. The cellphone that is likely in your pocket is probably more powerful in just about every aspect. The book we learned from was probably close to a decade old at the time and was sad in the shadow of what you can get at Borders for 25 bucks. I learned programming just fine.

      You don't need the latest and greatest to learn how to code. Infact, the more I see of computers and teenagers the more I think I had it better being limited to machines that didn't have a 1/10th of a meg of RAM and no Internet. Today there are just far too many distractions on a PC to get kids away from the task at hand. To be honest, if I were teaching coding I would go with the 2004 text about whatever language that normally can be found in the bargin bin for 5 bucks, a bunch of P-II 350s, a 10 dollar flash drive for each student and whatever freeware IDE I could find for the chosen language. No other software on the PC and no network connections either, thankyouverymuch.

      This would keep the students mind on the task in front of him. When I first got my Vic 20 with no media storage and no game cartridges I had to sit down and learn how to make the machine do what I want it to. I found that it was a very gratifying thing to do. If I would have had MySpace and EverQuest I doubt I would have ever have gotten as far.

      BTW: Get off my lawn!

      --
      Dedicated Cthulhu Cultist since 4523 BC.
    4. Re:On High Schools doing more... by Tatsh · · Score: 2, Interesting

      Agreed. Every student in CS probably knows 'a thing or 2' about computers and will try to multitask. Again and again it has been proven that multitasking actually does not work nearly as well 'single tasking'. The computer multitasks, not the user! So you cannot open up your word processor/text editor, type a paragraph, go on Facebook, (stupid people) check your sports statistics/(smart people) check important news, your downloads on whatever client, and rinse and repeat. For many, this is normal behaviour. And it does not apply to just CS students really. It applies to just about anyone with a PC these days. Older people often do not even know the computer can do more than one thing at once, so they stay focused one thing at a time. Not bad I guess.

      I would love to see a school implement what you are saying. Old computers, no Internet, a foreign but learnable *nix (BSD or Linux with no X until necessary!). And students not allowed to bring their own computers. Then CS can really focus and will learn how to use *nix (not X or any GUI), a good text editor (Vim or Emacs; Nano for quick edits), and everything else necessary without even using a mouse. In fact, take away the mouse completely! Minimalise!

      At my university the normal thing for 1st/2nd year CS students is to go to the "Linux Lab" (old crappy Red Hat with GCC 3.4.x and GNOME), open up an X terminal and ssh (because the server runs x86 and the machines are running x86-64 mode). They could forgo the entire X portion (speed things up too), and use x86 mode.

      I am not sure why every time I go to any lab I find things not set up the way I would like to see. And I do not think I am the only one, nor am I complaining because I am not root. GCC 3.4.x and all the other old versions of software in that RHEL distro is a joke in my opinion. An insult.

    5. Re:On High Schools doing more... by williamhb · · Score: 2, Insightful

      Lack of funding? Young man, I learned Pascal on a TRS-80 Model II. The cellphone that is likely in your pocket is probably more powerful in just about every aspect. The book we learned from was probably close to a decade old at the time and was sad in the shadow of what you can get at Borders for 25 bucks. I learned programming just fine.

      You don't need the latest and greatest to learn how to code.

      Well, if you want to motivate a child, perhaps you do have to have the latest and greatest, or at least something with some cool factor. If you were a child today, you wouldn't feel an urge to play with a TRS-80 Model II (or BBC Micro in my case) because it is now old obsolete technology. You certainly wouldn't ask your parents to buy one for Christmas. So, you are unlikely to learn to program it. One of the major reasons so many people grew up liking to program from the late 70s to early 90s was because all the "latest and greatest" home and school computing devices had simple accessible programming languages pre-installed, and in many cases the manuals that came with them taught basic programming. And it was the coolest, latest, greatest thing. Children getting a PC now face a tytanny of choice, wondering "what's a good language to learn", while having to dodge the armies of angry geeks arguing furiously for and against each of them, before they start. And the chances are, whatever language they get hold of, it's most popular manual linked from its homepage will not teach you how to write Galaxians, but how to write a Pet Store's inventory management software. How many eleven year olds are going to shout "way cool!" to that? Today, if you want fun motivating programming for children, you have to a lot more to hunt it out than you did in the 80s.

      Frankly, the recent trend of middle-aged geeks moaning about kids of today not wanting to download kits to reprogram their mobile phones that have such powerful processors (but just muck around making game levels in LittleBigPlanet), is rather like our grandparents moaning that we didn't want to play with Meccano, but just mucked about with that infantile brainless Lego...

    6. Re:On High Schools doing more... by MaskedSlacker · · Score: 1

      Apparently your good school never handed you a copy of Strunk. Uck.

      Also funding is entirely irrelevant. Throwing money at a school system does not work. Don't believe me? Look at California. Per student spending is up some 40% in five years, number of students is down. Not a god damn thing to show for it.

    7. Re:On High Schools doing more... by ChrisA90278 · · Score: 2, Insightful

      Better Idea: Why learn to write code on a PC?

      Many of the projects I did in school were micro-controller based. We designed little gadgets that tried to detect if a room was empty and turned out the lights. It had to "talk" to sensors and lights.

      I think the standard undergrad "programming 101" entry level class project was to write a controller for a snack food vending machine. Inputs were the various butons and output opended dors and rotated a try and give out change.

      I've heard others did ATM machines.

      Just don't use PCs theyare far to complex and have huge APIs. Start the beginners on little 8-bit devices

    8. Re:On High Schools doing more... by HeronBlademaster · · Score: 2, Interesting

      My high school didn't even remotely prepare me for university-level education. I literally skimmed through high school (that is, minimal effort) and (based on my standardized test scores) I got a scholarship for my first year of university. Then I tried to skim through my first year of university. Needless to say, it didn't work - I had to retake three classes.

      It wasn't a lack of funding in high school that caused the problem. It was because schools in the U.S. aim to teach the slowest student in the class - even in advanced placement classes. (Yes, I realize I'm arrogantly claiming I'm smarter than the rest of my class. Humor me.) The whole "no child left behind" idea is fundamentally flawed - if they teach at the slowest student's rate, then the smartest students are going to be extremely bored, and they're going to turn their attention to unimportant things like video games.

      If high school had required me to actually exert effort to graduate, I would have been far better prepared for a university-level education.

    9. Re:On High Schools doing more... by Anonymous Coward · · Score: 2, Informative

      TRS-80's had built in basic that anyone who could type could code and manuals so anyone who could read could learn. Cell phones don't have those, and there's a real struggle to find those types of tools today.

    10. Re:On High Schools doing more... by Glonoinha · · Score: 1

      Pretty neat trick, esp since I'm not aware there ever was a Pascal compiler for the TRS-80 Model II.

      Maybe you fondly rememberingthe UCSD Pascal compiler for the Apple II series of computers, or maybe Borland's Pascal compiler on the IBM PC/XT or AT class machines - but best of my memory the (dare I call it this, lovingly of course) Trash80 booted directly into a ROM based BASIC in a fashion similar to that of the Commodore machines of the time (the Vic-20, the C=64) with the ability to store data streams and poke the values directly into memory lest you felt spunky and wanted to code in machine language.

      And yes, I feel dirty for knowing all of the above.

      --
      Glonoinha the MebiByte Slayer
    11. Re:On High Schools doing more... by Anonymous Coward · · Score: 0

      Yes. But you were the geek at school. You are sooooo yesterday.

    12. Re:On High Schools doing more... by mspohr · · Score: 1
      It's always interesting to see people who on the one hand will argue against paying teachers more but on other occasions will argue for the value of high salaries in attracting talented people in the 'free market'.

      It seems that they have this cognitive dissonance about teachers who are underpaid compared to the private sector but still should be expected to produce miracles.

      You get what you pay for.

      --
      I don't read your sig. Why are you reading mine?
    13. Re:On High Schools doing more... by Lisandro · · Score: 2, Insightful

      There's this little known language that almost every modern cellphone supports though...

    14. Re:On High Schools doing more... by east+coast · · Score: 1

      Sorry that you weren't sent the memo. It was Alcor Pascal. We ran it across a network hosted by a TRS-80 III. And no, I don't remember the exact networking technology but I assure you it did exist. You should feel dirtier for slighting someone out of ignorance.

      --
      Dedicated Cthulhu Cultist since 4523 BC.
    15. Re:On High Schools doing more... by east+coast · · Score: 1

      And every modern PC has a thing called the internet and with a single google search I can find out more about C++, Java or any other contemporary language than was published at the time about all languages combined. What is your point?

      My post wasn't about developing for a cell phone, it was about not needing high end technology to learn to code. Please re-read my post.

      --
      Dedicated Cthulhu Cultist since 4523 BC.
    16. Re:On High Schools doing more... by that+this+is+not+und · · Score: 1

      I'm pretty sure the Trs-80 Model II was the big 68000 machine, wasn't it? With the 8" floppy drives? It ran a weird CP/M if I remember correctly. It probably had a Pascal.

      Us poor people had the Z-80 Model I or III. I had T-Bug on a Model I. A cassette drive. I had the Assembler too, but it took about twenty minutes to load off cassette tape. The little monitor (T-Bug) was the way to go. I wrote a full page "full screen" editor that would save that page to tape in a few minutes.

    17. Re:On High Schools doing more... by nog_lorp · · Score: 1

      You make a valid point, but so does the parent. The fact is, with no funding, HighSchools lose programs like "AP Computer Science", and basic computer literacy is rarely taught. And it is a misconception that teenagers are all computer literate. They can all start Firefox or IE and go to Facebook, they can all double click Steam and start a game, but most do not have the basic skills to troubleshoot simple problems, or understand the very basics of how their computers work.

    18. Re:On High Schools doing more... by Anonymous Coward · · Score: 0

      it was about not needing high end technology to learn to code

      Picking something that is modern but useless for the task as your example doesn't help make your case.

    19. Re:On High Schools doing more... by comrade+k · · Score: 1

      Seconded. I had a damn similar experience. Mod parent up.

      --
      "Every vision is a joke until the first man accomplishes it; once realized, it becomes commonplace." -Robert H. Goddard
    20. Re:On High Schools doing more... by EvilIdler · · Score: 1

      King Ludd, is that you?

    21. Re:On High Schools doing more... by Anonymous Coward · · Score: 0

      disagree. It takes self discipline just like everything else. Maybe English majors shouldn't be allowed TVs in their room, because they might start watching American Idol instead of reading some boring ass 100 year old text?

      self-disipline isn't a bad trait to build in kids. In fact, I would say they need more of it these days!

      Secondly, the internet is a god dam god send when learning programming. Don't know the library function? Google it. Compile error? Google it. forgot some lesser used syntax? Google it. Forgot your text book at home? Google it.

    22. Re:On High Schools doing more... by FishWithAHammer · · Score: 1

      This is hands-down the best post I've ever seen on the topic of high schools and colleges. Excellent post.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    23. Re:On High Schools doing more... by Anonymous Coward · · Score: 0

      Interesting, my first attempt at programming was learning the console commands and scripting of Quake2. All so I could customize the game to do what I wanted it to. So you never know.

    24. Re:On High Schools doing more... by devonbowen · · Score: 2, Interesting

      Well, if you want to motivate a child, perhaps you do have to have the latest and greatest, or at least something with some cool factor.

      I'm not so sure. The "cool" part of playing with the old machines is that there was little abstraction back then keeping you away from the bits. If you poked the right memory location with the right number, the pixels on your screen would change. Poke another bit and you'll hear a click on your speaker. That's very cool, in my old timer opinion, and something the kids today almost never get to see. Everything they're learning is so abstract that they don't understand why anything actually works. How boring that would be...

      Devon

    25. Re:On High Schools doing more... by Panaflex · · Score: 1

      No you don't(get what you pay for).

      Increasing funding only works when the teachers believe in their student. And even then, it purely augments the ability to teach, and it surely doesn't improve education simply by it's availability.

      --
      I said no... but I missed and it came out yes.
    26. Re:On High Schools doing more... by MaskedSlacker · · Score: 1

      That's a good strawman argument. I said nothing about teacher salaries. I said per student spending was up, which says absolutely nothing about teacher salaries. You should learn some reading comprehension.

      Besides that, salaries are not incentives to performance when they are based on seniority and you cannot be sacked for performance.

    27. Re:On High Schools doing more... by computational+super · · Score: 1
      A&M is a fine school, if you can't get into UT.

      Or SMU. Or the University of Houston. Or Collin County Community College. Or...

      --
      Proud neuron in the Slashdot hivemind since 2002.
    28. Re:On High Schools doing more... by computational+super · · Score: 1
      Today there are just far too many distractions on a PC to get kids away from the task at hand.

      Grown-ups who are supposed to be working, too.

      --
      Proud neuron in the Slashdot hivemind since 2002.
    29. Re:On High Schools doing more... by Hardolaf · · Score: 1

      I don't have a cell phone...

    30. Re:On High Schools doing more... by jafac · · Score: 1

      Today there are just far too many distractions on a PC to get kids away from the task at hand.

      . . . yeah. Have you looked through all the cool plugins that are available for Eclipse nowadays?! you could spend HOURS AND HOURS just reading through the list!

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    31. Re:On High Schools doing more... by Glonoinha · · Score: 1

      I learn something new every day - props for that.

      I wouldn't be surprised if the network was based on some sort of serial communications, but that's just a guess (I was headed towards the C= machines by then, and we could only dream of networks on that platform ... even doing serial to analog comms was a pretty serious hassle.)

      Days go by that I wish Pascal had taken off - nobody remembers the Pascal vs. C holy wars, but let's just say I started early on the wrong side. In an undergrad C course I actually wrote a Pascal to C compiler that evolved over the course of the semester, did all the projects in Pascal and just ran the working code through my compiler to convert it to C. If the resulting C code didn't work, I tweaked my compiler until I got working C code as output.

      --
      Glonoinha the MebiByte Slayer
  8. Dreaming... by Anonymous Coward · · Score: 4, Interesting

    ... the man is dreaming IMHO. If you look at modern computer languages, hardware design, and operating systems, NO ONE is doing good engineering. It took forever (a decade or more at least) to handle crashes in a microsoft OS which had thousands of talented people working on it. The companies that complain about the lack of "good" developers are the ones paying their developers crap and looking to offshore/cut costs. If you want good developers you're going to have to pay them.

    The modern commercial environment for developers is not conducive to fostering great teams, since the all mighty buck reigns and stupid decisions are made.

    From an engineering standpoint: There is no reason for software to break, and yet it does, a lot of the time. To use a familiar example: We see this all the time with video games on the PC, hardware requirements, etc, etc.

    1. Re:Dreaming... by gardyloo · · Score: 1

      It took forever (a decade or more at least) to handle crashes in a microsoft OS which had thousands of talented people working on it.

      Perhaps some paradigms are so fundamentally broken that even thousands of talented people can't patch them without (i) starting over; or (ii) adding so much kruft that they might as well have started over.

    2. Re:Dreaming... by the_womble · · Score: 2, Insightful

      It took forever (a decade or more at least) to handle crashes in a microsoft OS which had thousands of talented people working on it.

      Maybe it is because they had other priorities. Consumer software sales depend far more on features than reliability.

    3. Re:Dreaming... by moderatorrater · · Score: 5, Insightful

      The companies that complain about the lack of "good" developers are the ones paying their developers crap and looking to offshore/cut costs. If you want good developers you're going to have to pay them.

      I work at a company that pays at least 10% more than the going rate at other companies in the state and interviews 2-3 / week. It takes 3 weeks on average to find a developer they're willing to make an offer to. Two of the companies that are complaining are Google and Microsoft, both of whom give good salaries and great benefits when compared with the average job.

      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.

    4. Re:Dreaming... by Fulcrum+of+Evil · · Score: 1

      perhaps MS has different priorities than its users - after all, why fix it if we still get sales?

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    5. Re:Dreaming... by poot_rootbeer · · Score: 4, Insightful

      From an engineering standpoint: There is no reason for software to break, and yet it does, a lot of the time.

      Nonsense. Software, like any other engineered system, will break when subjected to forces in excess of what it was designed to tolerate.

      Would you argue that a building must NEVER fall down? I hope not.

    6. Re:Dreaming... by sjames · · Score: 1

      It's not even the rule of the almighty buck so much as it is short term thinking about that buck. Taking the extra time to do good solid work in the first place can save many bucks in the future and is more satisfying for the dev team. Unfortunately, when marketing wants to hit 'the numbers' for the quarter, the decision is to push it limping out the door and spend ten times as much later maintaining the unmaintainable.

    7. Re:Dreaming... by Tatsh · · Score: 1

      From an engineering standpoint: There is no reason for software to break, and yet it does, a lot of the time. To use a familiar example: We see this all the time with video games on the PC, hardware requirements, etc, etc.

      This sounds like a fantasy world to me, but I do agree with you that half the problem has been the MS domination of OS's in the marketplace. It makes sense that MS's code is not going to be portable and when Windows, DOS, Apple DOS, every other DOS, and every other GUI-based OS (before Windows' domination with 95) were developed there was no fast Internet and no easy way to share ideas in order to make portable libraries (imagine if there were a cross-platform DOS and Apple DOS library in the 70's). Sure, there were newsgroups, but MS partially created what we now know of as the business of selling software, not bundling it with hardware as had been done for decades. They simply did not have the capital necessary to make hardware. Apple got theirs, but we know how that was and how it is now.

      So now we have a mess where the x86 platform is not perfect yet because MS refuses to do anything to make Windows work on other platforms, it MUST be supported and nearly every PC manufactured is going to have an x86 processor (now x86-64). All hardware manufacturers (in order to recoup costs) MUST make Windows drivers, and every 'software company' must make a version for Windows (yet for some reason, every software company making games prefers DirectX over OpenGL, then complain about not being able to port to Mac quickly, and use cheap fast solutions like Cider (EA)). Now Microsoft even wants to blame hardware manufacturers for making crappy drivers that cause their OS to break. Never blame themselves of course because then shareholders are cutting their losses (as they should do now). Selling packaged software as a business did not exist before Microsoft. Is that part of the problem? I would not be surprised, since seemingly the industry would fail to work easily (in its current state) if there were 5 OS's to support. If they used cross-platform libraries, not such a big problem.

      Another issue is the hardware requirements of software. No one can truly estimate the 'best' requirements, but we can always know the minimum to get something going.

      For Microsoft the problem is exactly like this: they COULD start over from scratch to find the bugs that have been probably around since the first build of Chicago, or they could add even more bug check/hack code. Which is cheaper? The latter. I wish they would make a quality product from scratch, but they are unwilling to do so. Consumers do not see the non-quality because it runs what they need and they forget about errors and problems quickly as they get used to them. They get used to the idea of running Norton 360 to 'protect their PC' from 'spyware'. Things that could have been avoided, and there would not even be a business in making anti-virus software had Windows been developed with security in mind. But because DOS already had to access the kernel with its drivers by default, and there was no true Internet access in the 80's, it was no big deal. Bringing that to Windows 95 for compatibility (not everyone had Internet yet) instead of telling hardware OEMs to make new drivers, no big deal. This continues till Me and everything dies. NT already was guilty too because it was developed at the same time as 9x, and Windows 2000 or XP were certainly not rewrites (although much better).

    8. Re:Dreaming... by russotto · · Score: 1

      Two of the companies that are complaining are Google and Microsoft, both of whom give good salaries and great benefits when compared with the average job.

      Last I looked, Google has requirements that are considerably higher than and different from those for most companies -- they're one of the few actually looking for people with M.S. and Ph.D. CS degrees, for instance. Not surprising they have trouble finding people, given that.

      If your company is finding developers within 3 weeks on average, interviewing 6-9 people per position, I'd say that's not that bad.

    9. Re:Dreaming... by johnlcallaway · · Score: 1

      I wonder if you look at any discipline, be it one that is more education based, such as lawyers, doctors, engineers or more labor based, such as plumbers, carpenters, and electricians, you will hear the same complaints.

      But, statistically, only half of the people doing something are above average. And only 10% are the best. No matter what the group is, there are those that probably shouldn't have gotten into it, but have figured out how to skate by.

      So, before we even start, probably at least 1/3 will never measure up because they are so far below average compared to everyone else. It doesn't matter what the education is, is 50% or more can write a piece of code and debug it in 5 days, 50% can't and will be looked down on. And that does for quality, bugs, and whatever other metric is out there.

      Ignoring that insurmountable problem programming requires very specific abilities, anyone can be a code monkey and write code. But, to think through the myriad of possible outcomes to determine an effective solution (i.e. should I make it run faster or use less memory, how much error checking should I do, what auditing messages should I output) requires someone who can make decisions and has a high degree of spatial awareness. These are not skills that are easily taught to begin with, yet I have yet to see any degree program create a means to weed out those that can't do it.

      Then there is the problem solving skills, does anyone even teach that? How do teach how to figure out why the program aborted at 3am and isolate it to the root cause? Where to start, and how to proceed in isolating what is broken and what is working in a system where the root cause may be a program that ran a week ago and corrupted data?

      Rather than waste more money teach people who may have no real talent for doing this in the first place, I suggest we start filtering out those that will never be all that good at it, no matter how much schooling they get. Having a degree only tells me that someone was able to figure out what the teacher wanted and knew how to feed it back. I want the kid who was hacking into the computer system at night getting higher security clearance so his jobs ran faster. The kid who got his work done in half the time of the other students and was off playing WOW until 3am so he got bad grades because he screwed up on the the final exam.

      And, let's not forget. Bjarne is an EXPERIENCED professional, he is NOT a CS major that has never seen the inside of a cubicle.

      Maybe the real solution is make it a requirement that to be able to teach CS, you have to work for 20 years in the real world, so you can fully appreciate when it is and isn't appropriate to use those magic constants. Or how you can code/prototype with the constants for rapid development, and then how to go back and refactor them out later.

      --
      I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
    10. Re:Dreaming... by Eskarel · · Score: 3, Insightful

      The general and fundamental problem that both Microsoft and Google are having(along with everyone else) is that no one wants to be the person who has to train the newbies.

      No one, not even CS folks who have generally been spending at least some of their free time practicing what they're learning, comes out of uni knowing much of anything about anything. You have to train your graduates, and you have to accept that that's going to cost you some money you probably won't immediately recoup. They might even bugger off somewhere else when they've finally been trained up, and you'll have spent all that money for nothing.

      Someone still has to do it, and no one wants to. Look around at job ads in any field that doesn't have a massive shortage of staff, see how many positions you'll see for "graduate ______" or "junior ________" or "assistant _________". Better training in high school and University will help, but expecting 22 year olds to be great at anything is probably a bit unrealistic and both Google and Microsoft might find it worth their while to expend some of their vast pool of knowledge in doing some of that training themselves.

    11. Re:Dreaming... by Anonymous Coward · · Score: 0

      Two of the companies that are complaining are Google and Microsoft, both of whom give good salaries and great benefits when compared with the average job.

      This was not my experience with Google. I interviewed for a Software Engineering position there roughly a year ago. The total compensation I was offered, had we not entered a recession and their stock not tanked, was nearly 25% less than what other companies in the area were offering me. The base salary was nearly 50% less.

    12. Re:Dreaming... by Anonymous Coward · · Score: 0

      Consumer software sales depend far more on features than reliability.

      Vista backslash seemed to be about reliability --more specifically, reliability in execution in an existing environment = {software}x{hardware}x{mindware}. OS and productivity software might be different in this respect.

    13. Re:Dreaming... by frank_adrian314159 · · Score: 1

      And, let's not forget. Bjarne is an EXPERIENCED professional, he is NOT a CS major that has never seen the inside of a cubicle.

      Bjarne is an EXPERIENCED professional whose only industrial work was inside a RESEARCH LAB. Not that his words should be discounted because of that, because he does have some salient words about software engineering.

      But everything he says about choice of languages to use to teach undergrads should be taken with a VERY large grain of salt. C++ is not a good choice. Frankly, the language he shaped was a mess that took at least three versions to become close to usable (as those of us who struggled through the cfront days can attest to) and that he allowed to become a bloated, overgrown monstrosity. Listening to Bjarne on the choice of language to teach undergrads is like listening to Sarah Palin on the finer points of foreign policy. So he's found an academic sinecure to flog his broken language from. Big whoop.

      If he were brutally honest about pedagogic languages for undergrads, he'd actually start them on C so they could learn imperative programming with pointers, then onto Ruby or Python for object orientation, and then to Haskell or OCaml for functional programming (note that, being brutally honest, I refrained from touting my favorite language, something that he seems intellectually incapable of doing). He obviously is so biased with respect to his own language that he's willing to screw up his university's undergrad's education to promote it. Yet another case of ego trumping quality in academia. He's no better than Bertrand Meyer was with his continual flogging of Eiffel (which is still a better language than C++).

      --
      That is all.
    14. Re:Dreaming... by Savage-Rabbit · · Score: 1

      Maybe it is because they had other priorities. Consumer software sales depend far more on features than reliability.

      I have to disagree with that. It was because of the fallacy of that argument that I stopped using MS Windows and MS Office back in 1998. I did start to use the MS Office suite again a while ago (The OS X version) after several years of avoiding MS Office like the plague. I only did that because, firstly I kept getting sent MS Office documents by co-workers that I couldn't always edit effectively using alternative Office software, and secondly because MS has has dramatically improved the reliability of its Office suite (I know, it's a controversial point of view on this forum that Microsoft is capable of making a reliable product. But in the case of MS Office for Mac that's my experience, your milage may vary). So, the fact that MS Office has hundreds of features I never use has next to nothing to do with me using it. What does, however, have a lot to do with me using MS Office is the fact that I can work with MS Office for several hours without constantly saving my work and still be reasonably sure I won't lose it because of a software crash. The same basically goes for Apple. When they released OS X 10.5 the new features were nice, but I would have traded quite a few of them in if it meant not having to be plagued with all sorts of reliability and usability related annoyances that weren't adequately fixed until the 10.5.4 release. It wasn't nearly as bad as the massive reliability problems that made me quit Windows back in 98 but it did piss me off.

      Just my two cents.

      --
      Only to idiots, are orders laws.
      -- Henning von Tresckow
    15. Re:Dreaming... by johanatan · · Score: 1

      What advice do you have for one of those 'good developers' who wishes to work with an equally talented team?

    16. Re:Dreaming... by Anonymous Coward · · Score: 1, Informative

      Let me see if I understand this. Your sample of 1 finds that reliability is more important than features.

      Hmm... Probably not enough to make the quarterly, or even hourly sales quotas.

      Next!

    17. Re:Dreaming... by tyrione · · Score: 1

      Ask Bill Joy what he thinks of Computer Science as an Engineering Field. When it actually resembles something as solid as Mechanical Engineering we'll no longer need such articles to remind people how far it has to go to become an actual Engineering Discipline.

      You aren't discussing Gauss's Law, Bernoulli's Laws, the Otto Cycle, so on and so forth in Computer Science.

      I agree that there is far less practical application in curriculum, but that in the Industry there are far too few people with the theoretical foundation to extend the field into new practical areas.

    18. Re:Dreaming... by Anonymous Coward · · Score: 0

      The difference though is that if a bolt holding a handrail in a stairway isn't screwed in right, the building does not fall down or become insecure.

      The software program does (crashes or security issues).

    19. Re:Dreaming... by F1re · · Score: 1

      So now we have a mess where the x86 platform is not perfect yet because MS refuses to do anything to make Windows work on other platforms

      MS made NT work on alpha but not many used it so it died and I guess they don't want to waste all those resources again.

      They have also made windows work on Itanium and x86-64.

      --
      ...there is no sig...
    20. Re:Dreaming... by Tatsh · · Score: 1

      I knew about NT on Alpha. They also had it for MIPS. I understand perfectly if nobody really used it, but how much work is it to maintain it? If they maintained it, then a port to a new, better platform that is more 'green' (environmentally) is possible without much expense. Most of the code should be portable; assembly (obviously) and endinesses differ but that is nearly it.

    21. Re:Dreaming... by Eli+Gottlieb · · Score: 1

      True, but why should software break violently (crashing or glitching) when it can break cleanly (by throwing an exception, compiling an error report, and/or showing the user an error dialog)?

    22. Re:Dreaming... by Workaphobia · · Score: 1

      I don't understand what the GP was referring to. Is it the fact that old versions of Windows/Dos didn't run in protected mode or isolate processes from one another, which pretty much precluded stable systems that could tolerate the failure of individual applications? Because if so, I don't believe a delay - if we even accept that there was a "delay" - in the adoption of one critical architectural shift has any bearing on how we judge CS as an engineering discipline.

      --
      Evidently, the key to understanding recursion is to begin by understanding recursion. The rest is easy.
    23. Re:Dreaming... by Nulifier · · Score: 1

      The problem is not that software breaks when put under an unfair load; it is that software is released when it is "good enough" and just patched later. Would you want to drive over a bridge that was finished when it was "good enough" to handle a couple cars and then they just started strapping steel beams to it to keep it upright?

    24. Re:Dreaming... by demachina · · Score: 4, Insightful

      There is a reason the programmer stereotype is the geek with poor social skills, because most bright people with strong social skills are going to quickly jump to the business side of the company where they can make more money and climb faster. Its a form of natural selection.

      Developing software is really not that great a career, when compared to the other modern careers in business(though its obviously better than factory worker and ditch digger). It does draw some good people who enjoy developing software or maybe don't have the temperament for other professions(translation: geeks who would suck at business, marketing, law and medicine). There are some geeks that score big in software which are the exception to the rule but that happens at about the same frequency as people scoring big in professional sports or acting at least since the dot com bubble burst.

      Problem #1, software development isn't a career path that will last you until retirement or if it does the entire second half of your career will suck. In most companies programming is a career for 20 somethings, maybe 30 somethings, 40 somethings if you stretch it. You better hope you land hit on a lucrative startup in your prime so you can get your FU money and retire young. Once you hit your 40's and 50's you are either going to be forced to switch to self employment or to management otherwise your career advancement is going level off and you hope it doesn't start going down. Fifty and sixty year old programmers are something of an oddity and usually discriminated against because the stereotype is you need to be young to be a programmer. The exception is maybe if you have a PhD and can jump to research. Jumping to management or self employment mid career is fine for some people but it requires a radically different skill set and temperament to manage people, business, customers, budgets and schedules and not code. A lot of coders wont succeed in the transition.

      Problem #2, most programming jobs don't really pay that well though again its better than factory work :) You will need to be a superstar and create products that you own and control or you aren't going to make big money. If you are a programmer stuck in a large organization the executives, marketing people and salesmen are going to be the ones getting rich and climbing fast. There is a reason so many climbers seek MBA's, even if its dubious MBA's have real value in the world (especially after witnessing the recent meltdown induced largely by MBA's, George W. Bush included in that number).

      As a programmer will probably do OK money wise, but you will probable have an opportunity to work long hours on tough projects, and do some painful death marches to get products out the door. If the product fails then you hope you survive the layoffs that ensue. If it succeeds you discover the people above you in the food chain have taken most of the profits, and throw crumbs to the programmers unless they are superstars. If you are lucky you get a small raise or a few options(since options are accounted now they aren't as widely available as they used to be especially on the lower rungs of the food chain). You then just get to start over on the next product and repeat. It can easily be a treadmill to nowhere unless you get in to a high risk startup that succeeds. If you do you still have to work hard or get lucky to get a big piece of the action which requires some pretty serious social and business skills and a strong ability to watch your back, because everyone else in the startup is trying to get a bigger piece of the action too... probably at your expense.

      Its just a guess but most really bright people, especially ones with good social skills, are going to be smart enough to angle for the business side of the company because they know thats generally where the money is, especially these days, because CxO's and directors almost always rake in millions a year whether they succeeded or not. Most programmers will never see that kind of money.

      --
      @de_machina
    25. Re:Dreaming... by epine · · Score: 1

      My first experience with C++ dates back to an early release of Zortech C++, by Walter Bright, and it was quite usable.

      This was circa 1988, only three years after Cfront 1.0. That's hardly what I would call a long gestation for a language working its way *up* the abstraction stack when the average PC was struggling to lace its shoes.

      I don't understand your suggestion to teach C first. C is (very nearly) a proper subset of C++. If you teach C++, you are also teaching C. What you can do with C++ is teach C (mostly) without the CPP. Is that your issue? You love the CPP?

      Nearly every feature in C++, used judiciously within in the right problem domain, is an improvement over the bend-over-backward solution in C. Most of the ugliness of C++ results from the attempt to offer conceptually better facilities *without* depriving the user of the ability to fall back on a pure C solution.

      Stroustrup has confessed in his past writings that he spent too long futzing with multiple inheritance when he could have been working on templates instead, which proved vastly more fruitful.

      I've had few complaints about the conceptual evolution of C++, many complaints about the near-sighted standardization committee.

      How did the "auto" declaration get left out of the standard for so long, when the overhead of supplying all those iterator types by hand is absolutely brutal, to no real benefit. Acres of typedefs with no conceptual utility. Of course, standards work is the ultimate grind with no reward, with industry poised to piss on the results.

      I also think the original decision of the standards committee not to define minimal diagnostic standards blew up in their face as templates became more prominent. This will be *partly* addressed by the new work on template concepts.

      If you study the history, the C++ language has a lot less to apologize over than its standardization. That is a political reality, not an intellectual reality.

      If the C language had chosen a better declaration syntax, C++ would only be half so ugly. But C has no aspirations to provide abstraction when abstraction is worth having, so it rarely gets blamed for this.

      I happen to love C (for the right problem) and have done more work in C than C++. But I'm also honest in admitting that C is one of the best dead-end languages ever devised. C has a spectacularly strong sense of self identity. It can't be anything other than what it is. All the same, C is the language whose deficiencies made Perl and Python necessary. And then we praise it for the virtue of narrow mindedness.

      The crippling problem with C++ is that it is very hard to teach that less is more. For the amount of effort it takes to fully learn multiple inheritance, you want to use it a lot. Bad call. To significantly reduce the learning curve, one would have to pitch out the C language subset. Bad call.

      I'm sympathetic to the view that C++ fills a niche that would have been better left empty. I'm not so sympathetic to blanket statements that C++ is a bad language within the constraints that shaped it.

      I'm especially annoyed by the number of people generating flack about C++ whose aesthetic sentiments align "better" with "less useful".

    26. Re:Dreaming... by jonaskoelker · · Score: 1

      Software will break [...]

      That really depends on what you mean by "software", "break", and "forces in excess ...".

      Say I SYN flood your box and it doesn't have SYN cookies. You reject SYNs from elsewhere. That's clearly not what you should be doing, so in a sense I've broken your code.

      Now enable SYN cookies. I can still flood you, but the effect is only going to be that you can't do TCP-setup-time options (window scaling, MTU negotiation, ECN capability, ...), but you still get to accept new incoming connections. Have I broken your code? It functions differently and not how you wanted it, but in some sense it still performs correctly.

      Because software isn't subject to the forces of nature in the same way a bridge is, it really is possible to write software that always performs correctly when run on correctly-performing hardware.

      Such software is writable; is it also written? Will it ever be? Can you get to Bug Free (tm)?

      I'm not sure there's a clear cut answer here, that's all I'm saying.

    27. Re:Dreaming... by Bromskloss · · Score: 1

      Nonsense. Software, like any other engineered system, will break when subjected to forces in excess of what it was designed to tolerate.

      I can't be sure, but I think you parent meant that with software, there are no such "forces". In principle, every possible situation can be accounted for when constructing the program.

      --
      Swedish plasma phys. PhD student; MSc EE; knows maths, programming, electronics; finance interest; seeks opportunities
    28. Re:Dreaming... by Anonymous Coward · · Score: 0

      There is no reason for software to break, and yet it does, a lot of the time.

      "I run, therefore I crash"

    29. Re:Dreaming... by Panaflex · · Score: 1

      You know - it's interesting that when we teach engineers we always start with the "basic forces" - and only afterwards do students learn how to design by utilizing and understanding these forces.

      Perhaps that's the turning point we're looking for in software as an engineering profession?

      --
      I said no... but I missed and it came out yes.
    30. Re:Dreaming... by Anonymous Coward · · Score: 0

      > Such software is writable

      Sure, and you can build buildings that can withstand a meteorite impact or a nuclear attack (NORAD proves this).
      So you really think that every single house in the world should be built like NORAD?
      No?
      Then why the f* do you think software should?
      Do you really think it would be any more feasible?
      Too many take this as an excuse for writing bad software, and a lot can be improved, but I don't think it is.
      Btw, I hope you are not using an x86 processor, because after all those do no error checking. You should only be using the big SUN and IBM processors where everything has at least one parity bit.

    31. Re:Dreaming... by careysub · · Score: 1

      Two of the companies that are complaining are Google and Microsoft, both of whom give good salaries and great benefits when compared with the average job.

      Last I looked, Google has requirements that are considerably higher than and different from those for most companies -- they're one of the few actually looking for people with M.S. and Ph.D. CS degrees, for instance. Not surprising they have trouble finding people, given that.

      Google's hiring problems are partly of their own making, even given their high standards.

      The problem is that their hiring process is strongly biased in favor of rejecting applicants. The interview process is a day-long ordeal of one-on-one hour long interviews, one after another, with only a break for lunch. Every single interviewer has to approve you or you are out.

      This rigorous process does ensure that only highly qualified people get through, but it also rejects the majority of highly qualified people. Seriously folks, how often do you do eight interviews in a row without a single problematic experience? How about doing a difficult white-board coding exercise without a muffing something up after seven hours of essentially non-stop grilling?

      Google is not alone in hiring like this, some other large software corporations (Microsoft, Symantec, etc.) also believe that this is the best of all possible hiring processes.

      --
      Starships were meant to fly, Hands up and touch the sky - Nicky Minaj
    32. Re:Dreaming... by Albert+Sandberg · · Score: 1

      "It took forever (a decade or more at least) to handle crashes in a microsoft OS which had thousands of talented people working on it."

      Maybe it would have made more sense getting 500 people who knew what they were doing for twice the money. (Or just one guy. One really good guy. Behind a mountain of pizza boxes and empty coke cans)

    33. Re:Dreaming... by computational+super · · Score: 1
      You aren't discussing Gauss's Law, Bernoulli's Laws

      Ironic you should happen to choose those two examples. Actually, Gauss and Bernoulli both made significant contributions to probability (Gaussian and Bernoulli distributions of random variables, least-squares estimation for example) which we do, in fact, study in great detail in the field of computer science. We also study the characteristics of wireless signals (magneto-electric force - one of which is measured in a unit called the "Gauss"). Granted, I didn't spend much time learning fluid dynamics, since as long as you don't spill coffee on your keyboard, it doesn't come up much in the practice of programming... but I spent quite a bit of time discussing the works of both Gauss and Bernoulli while majoring in Computer Science.

      I will admit I don't know who Otto was or why his cycle was important.

      --
      Proud neuron in the Slashdot hivemind since 2002.
  9. The companies not happy with grads is pure BS. by Lumpy · · Score: 4, Insightful

    Unless you finish that sentence..

    Companies are not happy with the fresh coders because the good ones wont accept the low salaries they offer.

    Sorry but Programming is HARD. you gotta pay a lot for a good programmer. That will not change.

    I am sick of corporations and companies making up this raging BS story about a lack of candidates. RAISE YOUR SALARIES AND THOSE CANDIDATES WILL APPEAR.

    --
    Do not look at laser with remaining good eye.
    1. Re:The companies not happy with grads is pure BS. by QuantumG · · Score: 1

      Yeah, that's how it works. Pfft. The "problem", if you wanna call it that, is there are way more jobs than there are candidates. Especially in the valley.

      --
      How we know is more important than what we know.
    2. Re:The companies not happy with grads is pure BS. by edsousa · · Score: 1

      I've to disagree with you. The average salary is low (if in US is like here in Portugal), but there are very good salaries for good people.
      Me and a friend, who's TA'ing, we share a office and last week a 2nd year CS student came to our office because he was having some "difficulties" in preparation for the exam. After some minutes of questions, my friend discovered the problem: "How many bits there are in a byte?"
      The answer? "Four".

    3. Re:The companies not happy with grads is pure BS. by localman · · Score: 5, Insightful

      I've never known this to be the case. When I managed developers, I paid market rates which I am sure you would say are low. I never had a single offer turned down for salary considerations. I had a range of programmers from good to excellent. Expectation of higher salaries was not correlated with skills or performance at all.

      You are right: programming _is_ hard. But salary is only useful as a motivator up to a point. Beyond that, what good programmers want is respect, appreciation, and freedom to do great things. They want to work on stuff that they feel good about. They also want to work with other smart people who they can learn from and build great stuff with. Those are decent starting points anyway.

      So your general idea is right: that complaining companies are full of it, but I don't think it's because of money. It's because they have lousy uninspiring development environments.

      Cheers.

    4. Re:The companies not happy with grads is pure BS. by hemp · · Score: 1

      You are correct. The obvious solution is to allow in more H1-Bs for these companies to hire.

      --
      Skip ------ See the latest from http://www.anArchyFortWorth.com
    5. Re:The companies not happy with grads is pure BS. by AVee · · Score: 1

      Sorry but Programming is HARD. you gotta pay a lot for a good programmer. That will not change.

      Ah, another thing that will not change. I love have these just come and go...

      Salaries are a simple matter of supply and demand. If the supply of good programmers goes up the salaries will go down. It will be a while before there will be plenty off good programmers, but it will change.

    6. Re:The companies not happy with grads is pure BS. by IamTheRealMike · · Score: 2, Insightful

      Paying people more doesn't make them suddenly skilled. All it does is suck talent away from your competitors, it's zero sum. It might also encourage more people to enter the field, but if education is poor, why would they be any more skilled than previously?

      I'd agree with Stroustroup. The number of people out there who truly understand computers and software development is too small, because new developers have to re-learn the lessons all over again due to poor or non-existant teaching.

    7. Re:The companies not happy with grads is pure BS. by Foofoobar · · Score: 1

      Well you should also gear your company around the talent pool... and your position your language to draw a larger talent pool. C/C++ developers work on all platforms so can transition and be fought for by any company, the same can be said for Java, PHP, Perl, Python. C## can only be employed by a limited set of employers so if a person is looking for a job but can't find one for C#, they will fall on their other skills like C or C++.

      Most companies complaining are the result of relying on limited talent pools with multiple skillsets who can be employed on multiple fronts.

      --
      This is my sig. There are many like it but this one is mine.
    8. Re:The companies not happy with grads is pure BS. by Anonymous Coward · · Score: 0

      The "problem", if you wanna call it that, is there are way more jobs than there are candidates. Especially in the valley.

      And yet, I've been applying for jobs with job requirements which appear to have been written for me, and getting silence back -- yet seeing the same jobs re-posted. My conclusion is that either

      1) The HR guys are making an initial cut according to some rule which has nothing to do with the posted job requirements.

      or

      2) The jobs aren't real; either they're posted as part of the requirement for retaining a particular H1B person, or they are the byproduct of some broken corporate process.

      or

      3) The companies are discouraged by the fact that I'm far away. I wouldn't be applying if I wasn't willing to move, though.

    9. Re:The companies not happy with grads is pure BS. by QuantumG · · Score: 1

      Uh huh. I think the companies that are complaining about the quality of grads are just expecting a certain unrealistic baseline. For example, they expect every applicant to know how to code.. and how to use revision control. I say this is unrealistic because this is all vocational training. Colleges should be teaching fundamentals, like data structures and algorithmic complexity.. and on-the-job training can take care of the vocational stuff.

      --
      How we know is more important than what we know.
    10. Re:The companies not happy with grads is pure BS. by martinw89 · · Score: 1

      Sorry but Programming is HARD.

      Let's go shopping!

    11. Re:The companies not happy with grads is pure BS. by Anonymous Coward · · Score: 0

      Why should they raise their rates when they can get 15 off-shored programmers for one third your asking price.

      It's too bad that it actually takes around 1500 of them to get one piece of code to work "Hello World".. And that's after 1500 incarnations and spelling / grammar revisions.

    12. Re:The companies not happy with grads is pure BS. by Foofoobar · · Score: 2, Interesting

      Well I would even go beyond that to say that schools should teach basic logic and abstraction of concepts; good development requires the developers to be able to abstract well and I see alot of programmers who still think very linearly.

      --
      This is my sig. There are many like it but this one is mine.
    13. Re:The companies not happy with grads is pure BS. by mevets · · Score: 2, Interesting

      You seldom know the true reasons people don't take jobs. I am offended at being lowballed, but think it is a good indication you don't want to work there anyways. Smile, nod, and politely turn them down when they make a formal offer. It may be a Canadian thing....

    14. Re:The companies not happy with grads is pure BS. by Billly+Gates · · Score: 1

      Well in this recession that problem is about to change.

    15. Re:The companies not happy with grads is pure BS. by Anonymous Coward · · Score: 0

      I offered to pay my mortgage with respect, freedom and appreciation and funnily enough my offer was rejected.
      Pfft. Fscking managers.

    16. Re:The companies not happy with grads is pure BS. by aafiske · · Score: 2, Interesting

      Do you interview people at all? I'm a programmer, and I do. (We do mostly technical interviews.) There are people coming out of colleges with masters degrees that can't write a stack. In Java. Using anything but java.util.Stack. Who screw up, badly, a simple array-reversal coding question. I know my company pays very well. We are lenient on experience and knowing all the latest whizz-bang technologies if someone can show they can think and solve problems and possess some basic skills. The vast majority fail at this, hard.

    17. Re:The companies not happy with grads is pure BS. by setagllib · · Score: 2, Informative

      Very technically, a byte can be four bits, it's an octet that specifies 8. Bytes have been defined as 7 bits on some architectures. But still, if you have to give a single straight answer, 8 is much better than 4.

      --
      Sam ty sig.
    18. Re:The companies not happy with grads is pure BS. by DiegoBravo · · Score: 2, Insightful

      Not contradicting your ideas. But complementing:

      >> Beyond that, what good programmers want is respect, appreciation, and freedom to do great things

      Most companies do not have many cute projects to do, just "the same dirty work" they have to. Of course a very good manager can disguise that as a awesome project, but just for a while.

      >> they also want to work with other smart people who they can learn from and build great stuff with

      The real smart programmers (also, the pedantic ones) soon will be feeling they do not have more people around to learn from. From that point it is just money what drives the future.

      A nice place is really useful, but not for retaining people. From my experience, too few people really thinks about it: When people get an big$ offer, rarely do a "future workplace environment" investigation.

      BTW, I would add another factor: current firm prestige and reputation (nobody will quit from google to yahoo for a 10% rise at this time.)

      regards,

    19. Re:The companies not happy with grads is pure BS. by russotto · · Score: 1

      Who screw up, badly, a simple array-reversal coding question.

      Simple? Last company I was at, array-reversal was the _hard_ question. Granted, it had to be in-place array reversal using constant space and linear time.

    20. Re:The companies not happy with grads is pure BS. by FishWithAHammer · · Score: 1

      There should be both. If somebody doesn't exit college with understanding about the "vocational" stuff, then they won't get hired. I'm not saying it's right, I'm saying how it should be.

      And my school, at least, doesn't teach students how to code at all. One kid out of ten might really know why his code broke instead of trying to shotgun debug.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    21. Re:The companies not happy with grads is pure BS. by scamper_22 · · Score: 5, Interesting

      I agree with you. However, there are also several issues that I think need to be addressed.

      1. Training. My bother left engineering and went into law. He found it 1000x more professional. For one thing, as he joined, he was assigned a mentor and received proper training. Contrast this to many software companies where managers/other developers actually think 'throw them in the fire' is the best way to train. He's in patent law by the way... making about 3x more than the people doing the inventing :P It's genius actually. In this sense, the suggestion of apprenticeship is a great one.

      2. Quality of People. I don't think the top kids in a high school graduating class are going into computer science/engineering anymore. They have learned it is not a good field to be in. At the end, you're most likely going to end up a regular job that pays above average. With the kind of talent it takes to be a good software developer, you're much better doing something else (Doctor, nurse, CA, lawyer...) So naturally the grads are not going to be 'as good.'

      3. No professional organization. This is a huge one. To the outside world, no one knows what a good software developer does. Just as most of us know nothing of what makes a good lawyer. We treat lawyers like a black box. Here's what I need done... now go. This is how businesses treat software. It is professional organizations that mantain the quality of people. They take care of ensuring people are trained properly and things work as follows. You don't need to know anything about accounting. However, if you're a business and need some complex accounting done, you get a CA not just some guy with a few accounting degrees. It is also why most professional organizations employ themselves. CAs join firms like PWC, KPMG... Lawyers do their own thing. Software developers work for a business. Which yes... makes you just another worker bee.

      But anywhose. I don't the situation improving much in North America at least. Worst of all, all the new investment in new grads is being done in India/China. So it's not like young people in Western Companies are getting the grooming they need. It's a viscious cycle that is only going to make it worse.

    22. Re:The companies not happy with grads is pure BS. by Anonymous Coward · · Score: 0

      That may be what they say to their manager when they quit. What they mean is they aren't paid enough to put up with your BS.

    23. Re:The companies not happy with grads is pure BS. by Anonymous Coward · · Score: 0

      Apologies, but this is stupid.

      If you consider yourself to be informed about market rates, allow the candidates to be as well. Only CxOs expect to be paid higher than average for the same job ))) It's funny because it's true :-).

      What you're missing here, which just so happen to be the whole point, is that students picking a career in college also know it. Well, okay, many don't care, they just want to have fun, and that's fine with me (as long as they don't complain later), but those would tend not to end up in hard science anyway.

      So they compare, and CS and IT are out. They do medecine or law instead. Or finance - until last year, anyway.

      Your loss. You could have better people. But you don't see because you're happy to pay "market rate", which is just one of many stable point, and fail to consider the more-than-4-years-term implications of your actions. Which I guess is fair enough, because you, hopefully, won't have the same job by then.

      But at least be honest enough and not imagine that your conclusions are facts, they're just consequences.

    24. Re:The companies not happy with grads is pure BS. by lgw · · Score: 1

      It's pointless to even interview an new college grad without some kind of "fizzbuzz"-style screening. It's just amazing the percentage that simply cannot code at all. I wonder what the CompSci programs teach these days: clearly there aren't a lot of classes where programming (without copypasting from Google) is required.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    25. Re:The companies not happy with grads is pure BS. by Anonymous Coward · · Score: 0

      Even more than "respect, appreciation, and freedom to do great things" methinks good programmers want well defined requirements, decent schedules, and good proactive direction from project management. From the latter comes the prior.

      Just my humble experience from nearly all projects I've worked on professionally for the past 7 years. Your mileage may vary.

    26. Re:The companies not happy with grads is pure BS. by lgw · · Score: 1

      Uh huh. I think the companies that are complaining about the quality of grads are just expecting a certain unrealistic baseline. For example, they expect every applicant to know how to code.. and how to use revision control. I say this is unrealistic because this is all vocational training.

      That's the funniest thing I've read all week. Companies shouldn't expect grads to know how to code ? Maybe you just left off your sarcasm tag, but that's too much. Here's a hint: if you want job, get some vocational training. I can work with a smart junior programmer who didn't really learn data structures and algorithmic complexity, but only if he can code!

      --
      Socialism: a lie told by totalitarians and believed by fools.
    27. Re:The companies not happy with grads is pure BS. by DuctTape · · Score: 1

      ... I paid market rates which I am sure you would say are low.

      Ow. Every time I hear market rates, it means that they want to low-ball me. My impression is that market rates are whatever you want them to be, backed up reflexively by the phrase, "market rates."

      DT

      --
      Is this thing on? Hello?
    28. Re:The companies not happy with grads is pure BS. by Anonymous Coward · · Score: 0

      I can attest to that. as I high school junior + senior taking 300-level college CS courses, at one of the more competitive schools in the US, I had nearly every college student in my class asking *me* for help.

    29. Re:The companies not happy with grads is pure BS. by that+this+is+not+und · · Score: 1

      On a PDP-8 a byte would be 12 bits.

    30. Re:The companies not happy with grads is pure BS. by coopaq · · Score: 1

      I like this approach - respect, appreciation and freedom.

      Also remember input and creativity are musts.

      I like one of Paul Graham's recent articles. Good developers like input and like to see their work in use.

      http://www.paulgraham.com/artistsship.html

    31. Re:The companies not happy with grads is pure BS. by guruevi · · Score: 1

      Well, what you have to understand is that in general, people coming out of school know absolutely nothing about anything. That's especially in the computer sciences/engineering. As was asserted above, somebody has to take them under their wings to train them or the student himself has to be motivated to work himself on something in the field he wants to work on (like bug fixing in an open source project).

      In my opinion there are too many people like quite a few of my friends and family members that noticed I could make a lot of money with my computer skills (programming and selling computers and websites at 16) thinking to make an easy buck with the 'computer'. Computers are fairly simple and straightforward, even programming is just like learning the periodic table it's simple. It's the mixing of components in the right order and with the right skill just as in chemistry that makes a computer run and that's what no school seems to learn. Those students come out of school disillusioned and hope to sell their services to the highest bidder and then they're disillusioned again that the market doesn't want them because while they were in school the market changed and what they started learning ended up being deprecated.

      I have not been in higher education, so I consider myself having 4-6 years more experience than my buddies who did go to college/university. They are currently still looking for jobs, some turned around and got a job in something completely different (and boring), some went back to school and some are flipping burgers or answering phones at a help desk. I on the other hand worked and got my hands dirty and while they were in school learning Windows NT, scratched Java's head and wrote hello world in C++, the Mac OS desktop revolution came, the VoIP and mobile revolution came, RAID-arrays became SANs, Linux and FOSS became mainstream in servers, C# and ObjC became accepted and I got experience in most of it while they still have to read up on it.

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    32. Re:The companies not happy with grads is pure BS. by Anonymous Coward · · Score: 1, Insightful

      >Companies are not happy with the fresh coders because the good ones wont accept the low salaries they offer.

      Software developers make about 70 to 80k on average, and it's not unheard of for them to be on the lower end of 6 figures. Some engineering disciplines pay more, but that's none too shabby either.

      I think the real problems are these.
      1. It takes more than 4 years at a university to become a decent software developer. Grad school doesn't help because it is focussed on computer science and not software engineering.

      2. Not everyone who goes into computer science is really cut out for it. That it pays well actually hurts the quality of graduates in some cases because it attracts people who have no natural gifts in or passion for computer science, but just want in for the money. People who just don't care, don't take the painstaking effort it takes to write clean code.

      3. And I think this is the most serious problem of all. Management. Managers at most companies are "business" people with way too much authority and way too little knowledge. Why should someone without a computer science degree be allowed to "manage" developers is beyond me.

      The places I've seen that do development right don't put developers subordinate to managers. Developers manage themselves, and tech leads do most of the middle tier management work. You need people who are developers, or who primarily have an engineering background making important decisions about the schedule and development practices. How is a guy who went to business school supposed to make decisions about development practices anyway?

      Certainly, there is a place for people who went to business school. At companies that don't develop software.

    33. Re:The companies not happy with grads is pure BS. by cjHopman · · Score: 1

      array-reversal was the _hard_ question. Granted, it had to be in-place array reversal using constant space and linear time.

      hard? I will be graduating in from a CS program in the spring and I can barely believe what you are saying. It blows my mind that such an easy problem can stump so many people that it could be considered a "hard" problem.

      Then again, just recently we had what I considered to be a relatively simple programming assignment and many people just couldn't do it. I looked at some of my classmate's code and they were all just complete messes.

      But still, you (and others) are saying that many graduates have basically learned nothing.

      My worry is that, because of all these incompetent graduates, companies are unwilling to pay what a good programmer is actually worth. That is, since any company who hires a graduate has to consider the fact that their new hire might be incompetent, they will not be willing to pay as much as they would for someone that they knew was good. So, basically, all the bad programmers drag down the prospects of the good ones.

      Anybody who is in charge of hiring or such, is this true? Is there any way that you can tell if a candidate is actually good? Is there anything that a good candidate could do to prove that you wouldn't be taking a risk hiring them?

    34. Re:The companies not happy with grads is pure BS. by Eli+Gottlieb · · Score: 1

      That sounds like a very cultural thing. Whether it's considered more appropriate to, when given a bad offer, politely turn down the entire job or counter-offer and start negotiating varies widely.

      At least in the USA I've heard it varies by company and by position, but in general IF AND ONLY IF you are provably a very desirable potential employee negotiating tends to net workers results just better enough to justify doing it.

    35. Re:The companies not happy with grads is pure BS. by Eli+Gottlieb · · Score: 3, Insightful

      3. No professional organization. This is a huge one. To the outside world, no one knows what a good software developer does. Just as most of us know nothing of what makes a good lawyer. We treat lawyers like a black box. Here's what I need done... now go. This is how businesses treat software. It is professional organizations that mantain the quality of people. They take care of ensuring people are trained properly and things work as follows. You don't need to know anything about accounting. However, if you're a business and need some complex accounting done, you get a CA not just some guy with a few accounting degrees. It is also why most professional organizations employ themselves. CAs join firms like PWC, KPMG... Lawyers do their own thing. Software developers work for a business. Which yes... makes you just another worker bee.

      The problem is that nerds are far too Libertarian, with a capital L. Forming a professional association to them would be tantamount to forming a union, and that would be sacrilege!

    36. Re:The companies not happy with grads is pure BS. by Anonymous Coward · · Score: 0

      What is it exactly that they were working on that made you feel they were talented?

      I've met good programmers, bad programmers, and then I've met programmers surrounded by other programmers and employees who worship them and code on the platform that only they create ... it's really fucking dependent and obnoxious; has anyone seen this? A manager/employee system centered around a key programmer and a host other programmers just trailing along after, praising this guy's name over and over again, in the hopes that he doesn't leave them on their asses?

    37. Re:The companies not happy with grads is pure BS. by Anonymous Coward · · Score: 0

      You guys are all talking about an OLD business concept that every "PHB" you've ever known has studied and knows...

      http://images.google.com/images?um=1&hl=en&client=firefox-a&rls=org.mozilla:en-US:official&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=maslow's+hierarchy+of+needs&spell=1

    38. Re:The companies not happy with grads is pure BS. by shutdown+-p+now · · Score: 1

      As another programmer who'd done his share of technical interviews (.NET/C# though), I can second that wholeheartedly. Very few people who come can sort an array (using any algorithm - even bubble sort is permissible) without mistakes. Most can't even explain quicksort on a conceptual level, much less implement it (and certainly not in-place!).

      On the other hand, few know the basics of the platform, either - for example, most believe that strings are mutable.

      That said, it's Russia (Moscow to be specific), not US.

    39. Re:The companies not happy with grads is pure BS. by gbjbaanb · · Score: 1

      As another programmer who'd done his share of technical interviews (.NET/C# though),

      that's probably your problem, with the new 'easy to use' languages, everything is done for the developer, this is why companies like these. However, it also means that someone with limited knowledge and skill can call themselves a developer and appear for interview with you. They even think they're developers because they have clicked a few buttons on the IDE and produced a program!

      If you were hiring C++ devs, you wouldn't have this problem. There would be less candidates, but they'd all be of a much higher quality.

      I think the answer to all this is to divide programming up, you have your "junior" developers writing the less important aspects of your app (eg the GUIs say) and the more experienced ones doing the harder but more important work (eg the back-end processing). If you split those divisions into different languages instead of having everything written in C# you'll be much happier in the long run.

      And I thought Russia had excellent programmers who could do wonders with limited resources. Perhaps you had better go back to writing C code and hire the older guys who used to code using op amps and z80 chips! :)

    40. Re:The companies not happy with grads is pure BS. by Anonymous Coward · · Score: 0

      If you want good and experienced (older) programmers, salary will also be a consideration.

      Not because it's inherently important, but because an older programmer is more likely to have more expenses and higher salary expectations, because they've been paid that much (or more) in the past.

      I'm not talking about really huge salaries, but my own expectation would be in the low six figures at the very least.

    41. Re:The companies not happy with grads is pure BS. by shutdown+-p+now · · Score: 1

      that's probably your problem, with the new 'easy to use' languages, everything is done for the developer, this is why companies like these. However, it also means that someone with limited knowledge and skill can call themselves a developer and appear for interview with you. They even think they're developers because they have clicked a few buttons on the IDE and produced a program!

      If you were hiring C++ devs, you wouldn't have this problem. There would be less candidates, but they'd all be of a much higher quality.

      This is true, but only to a limited extent. I worked as a C++ lead dev in the past, and did a few tech interviews there, too; and the problem exists there, as well.

      But yeah, the problem with more productive languages is that it has lower barriers of entry, certainly.

    42. Re:The companies not happy with grads is pure BS. by Anonymous Coward · · Score: 0

      what they started learning ended up being deprecated
      I suspect you're not completely aware of what a proper CS curriculum includes.
      Let me know when quicksort, LALR parsers, and dynamic instruction reordering get "deprecated."

    43. Re:The companies not happy with grads is pure BS. by Explodicle · · Score: 1

      The problem is that nerds are far too Libertarian, with a capital L. Forming a professional association to them would be tantamount to forming a union, and that would be sacrilege!

      A software developer's professional organization could never develop into a union. Unions rely on establishing a labor monopoly for bargaining power, which cannot be attained in an international industry with no physical goods and no physical labor.

    44. Re:The companies not happy with grads is pure BS. by Just+Some+Guy · · Score: 1

      No professional organization.

      Well, we do have the ACM. Unfortunately, I had to drop my membership when I found out that their code of ethics would require me to support software patents and EULAs.

      --
      Dewey, what part of this looks like authorities should be involved?
    45. Re:The companies not happy with grads is pure BS. by Xest · · Score: 1

      At least in the UK, salaries for graduate programmers are pretty decent.

      The real issue is that advancement up the payscale as they get experience and get better and the top level payscales are too few or too low to maintain a good pool of really good programmers.

      To suggest developers should get paid more straight out of uni is, imo, a joke, more than £23k a year when they're effectively still being trained at this point? I don't think so. After a couple of years or so I do think they should've had chance to move off that payscale though and that's where the problem seems to lie. The issue we have is graduates gaining experience and then not being able to go anywhere and hence become discontent and leaving the field.

      Graduates in recent years absolutely do not leave university with the skills to go straight onto decent payscales that good programmers deserve unless they have heavily augmented their education with personal projects or contribution to open source projects and so forth.

    46. Re:The companies not happy with grads is pure BS. by ClosedSource · · Score: 1

      I agree. I've seen job postings that have nearly contradictory requirements (e.g. knowledge and experience in obscure RTOS, knowledge of RF, 0-2 years experience).

      Let's face it, if companies can't hire someone for a non-management job within 3 months (with an average time under 6 weeks), they aren't really serious about filling the position.

    47. Re:The companies not happy with grads is pure BS. by Anonymous Coward · · Score: 0

      Be a lawyer? Ha! The grass is always greener I guess. No way I would take on a job like that.

    48. Re:The companies not happy with grads is pure BS. by pauljlucas · · Score: 1

      [I]f you're a business and need some complex accounting done, you get a CA not just some guy with a few accounting degrees.

      Surely you've heard the joke:

      Q: What do they call the guy who graduated medical school at the bottom of his class?
      A: Doctor.

      Having an organizational affiliation or certificate guarantees nothing about a person's ability.

      --
      If you reply, do so only to what I explicitly wrote. If I didn't write it, don't assume or infer it.
    49. Re:The companies not happy with grads is pure BS. by scamper_22 · · Score: 1

      Does every doctor agree with every policy of the AMA?
      Does every teacher agree with every policy of their professional colleges?
      Absolutely not.

      It's rather childish to drop your membership over patents and EULAs. How working with the ACM in terms of job training, offshoring, wages, accreditation...

    50. Re:The companies not happy with grads is pure BS. by scamper_22 · · Score: 1

      I'd still trust the guy that finished at the bottom of his medical school to do basic diagnoses and stitch me up reasonably well.

      Can you say something equivalent about EVERY graduate of a computer science class?
      Ponder that for second.

      The minimum bar in med school is much HIGHER than the minimum bar of programmers. To actually do any serious medical work (like surgery....) then the bar is even HIGHER and HIGHER. So even within the professional organization, there are levels of entrance requirements and certifications. This is in contrast again to programmers who may be okay at programming... and then without any training or mentoring think they are capable of architect work.

    51. Re:The companies not happy with grads is pure BS. by pauljlucas · · Score: 1

      I'd still trust the guy that finished at the bottom of his medical school to do basic diagnoses and stitch me up reasonably well.

      That's the medical equivalent of "Hello, world."

      Can you say something equivalent about EVERY graduate of a computer science class?

      Sure, I'd trust any graduate to write a simple program (e.g., read data, process, write results).

      My point is that certifications (alone) solve nothing. Mentoring is a much better answer. Indeed, this is precisely what happens in medicine. It's the mentoring there that works, not the fact that people get pieces of paper (certifications) along the way.

      --
      If you reply, do so only to what I explicitly wrote. If I didn't write it, don't assume or infer it.
    52. Re:The companies not happy with grads is pure BS. by mksql · · Score: 1

      Oh it can be money all right. If you paid _actual_ market rates, based on real averages of people with similar experience, responsibilities, and geographic location, then you were on the right track.

      However, companies who expect to get a (mythical) jack of all technologies, but pay sub-average rates will get only what they pay for (which sometimes may be nothing).

      A lack of realistic expectations from employers is often the primary problem.

      --
      I should have been a Geologist.
    53. Re:The companies not happy with grads is pure BS. by Just+Some+Guy · · Score: 1

      It's rather childish to drop your membership over patents and EULAs.

      So it's OK to lie and say I accept their ethical code? Doesn't that miss the entire freakin' point of having a code of ethics in the first place?

      --
      Dewey, what part of this looks like authorities should be involved?
    54. Re:The companies not happy with grads is pure BS. by localman · · Score: 1

      That's probably true, but let me be more specific: I never had anyone turn down a job offer at all. I hired 20 people over the course of six years, so it wasn't high volume. I only had two employees that chose to leave while I was there, and that was during a move to another state. I never lowballed: I paid market. I suppose some people might think the market is lowball, though. I came from humble beginnings so it didn't seem that way to me.

      I hope I didn't overstate it in my original post: proper pay is important. There's just diminishing returns there, and once people are making enough to live well without worrying about money, you get more motivation out of improving their work environment instead of giving them another few thousand a year. I felt this way myself: my pay allowed me to live well without worry. Unless they were going to give me enough money to retire on, token increases just weren't that important to me. I preferred getting more respect and appreciation from my superiors.

      Cheers.

    55. Re:The companies not happy with grads is pure BS. by localman · · Score: 1

      Please, we're not talking about living at the poverty line here. We're talking about people who had plenty of money to pay their bills without worry and buy cool of toys for themselves. That's how I lived, as a manager, too. If you're a good programmer and you're not getting at least that then yes, you are underpaid (or an idiot with basic money management).

      I'm just saying that dumping another couple thousand per year on someone who already lives in complete comfort doesn't make as much of an impact as finding ways to make their job better. That extra couple thousand doesn't matter much when you spend 40+ hours a week with people you hate doing things you hate.

      Cheers.

    56. Re:The companies not happy with grads is pure BS. by localman · · Score: 1

      Very good point -- I agree completely. And those things are probably the hardest to come by. Most companies would rather just throw more money at their employees while continuing to give them crappy project schedules and poor guidance.

      The sad part is that most employees will be placated enough by the extra money to stick with it even though they hate it and think things are going the wrong direction. This is bad for the company and the employee. Yet it's depressingly common.

      Cheers.

    57. Re:The companies not happy with grads is pure BS. by localman · · Score: 1

      Maybe some people pull that term out of thin air. I would start with the median salary.com number, then apply some judgement based on what I knew of the current situation and the hire's abilities, which always resulted in some amount of upward bump. So everyone I hired was paid above median salary for the area. My salary was also in the same "above median" range.

      If you're getting paid less than that, then sure, you're being lowballed, and that's bad. But I maintain that going way above that isn't the best way to hire or keep employees. Paying extra does not make up for a lousy work environment. But one shouldn't use a good work environment to lowball on salary either.

      As a note, I was always a programmer as much as a manager, so I wasn't judging these things in managerial ignorance. At least I don't think I was :)

      Cheers

    58. Re:The companies not happy with grads is pure BS. by localman · · Score: 1

      I think you're missing my point: there are plenty of great people out there already, and you can hire and keep them if you offer a decent salary and a great work environment. I've done this, so it's not speculation. Maybe you could also hire and keep them if you offer a ridiculously high salary and a shitty work environment, but I'm not so sure and in any case I have no interest in managing such a thing.

      Also: my experience generally indicates that with programmers, the more they're "in it for the money" the worse they are.

      Cheers.

    59. Re:The companies not happy with grads is pure BS. by Anonymous Coward · · Score: 0

      How did you determine 'market rate'. Your general 'feeling' and what you paid other developers, or some hard, industry-wide numbers?

  10. Good point by some_guy_88 · · Score: 4, Insightful

    I think he has a good point. One we already knew, but good none the less. I have just completed two years of a Software Engineering degree and it really was an easy two years with nothing all that challenging presented. I have friends getting good marks which really aren't that good (hope you guys aren't reading..) Software Engineering has apparently been said to be the hardest form of Engineering around because it's so hard to wright a program of significant size which is bug free. If structural engineers building bridges had as many bugs in their work as software engineers have in theirs, the world would be a very unsafe place.

    1. Re:Good point by Xylaan · · Score: 2, Interesting

      And if we had been creating software for as long as we've been building buildings, we'd probably be better at software as well.

      I do think we need to get better at educating, but I still think we're in the "Learning how to make practical software WELL" phase of the discipline.

    2. Re:Good point by Anonymous Coward · · Score: 0

      I'm somewhere around two years in a SE degree and it's a joke. I'm not a great programmer, but the first few courses in programming were a joke. I wish I was at TAMU, instead of UTA...

    3. Re:Good point by JaredOfEuropa · · Score: 5, Funny

      Indeed. Besides, the whole "building vs. programming" analogy is silly. If designing buildings was like programming, architects would have to deal with all new materials every few months (can't use the old ones), they'd have customers insisting that walls are best placed leaning 10 degrees out of true, and the foundation under the building would (magically) be changed every few years, with the building having to remain upright on whatever it was standing on. And if the construction crews put a doorknop on wrong, the whole building might come crashing down when someone opened the wrong window.

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
    4. Re:Good point by Belial6 · · Score: 2, Informative

      I say that is a commonly believed myth. First, spending 2 billion on a bridge is not uncommon. This isn't for a super fancy never before seen design, but for a basic, cross a bay bridge. If you spend that much money on a piece of software that is only doing a few functions, you certainly can get a very stable piece of software. Even the best funded software is massively underfunded compared to to bridge building budgets. Most current software is the equivalent of a 4x4 dropped across a creek. You can bet that those fail just as often as software does.

      Then go out and look at bridges. If you think that they are bug free, you are very much mistaken. There are flaws in virtually all physical construction that would never be tolerated in software design. The difference is that construction has found ways to hide many of their gross flaws, and the population has just gotten used to seeing them. Basically bugs in bridges don't get called out unless someone gets killed. If we used the same criteria for software, then most software is bug free.

    5. Re:Good point by lawpoop · · Score: 1

      Yeah, but we've been building things for 5,000 years or more. We've pretty much figured out how to build large things safely.

      As far as computers, we're still in the wild west. It's only been relatively recently that garbage-collecting languages have become widespread. How many bugs has this in itself prevented? I imagine in 100 years or so, a lot of debates about kinds of programming and programming styles will have been more or less figured out. I think a lot of it will depend on how the human programmer interacts with the program -- what kinds of practices cause people to write bugs? -- rather than the abstract mechanics of the program itself. So then, you could look at a program and say "Look what they did here; this is a classic wrong way of doing things."

      --
      Computers are useless. They can only give you answers.
      -- Pablo Picasso
    6. Re:Good point by Anonymous Coward · · Score: 1, Informative

      Heh sounds like someone else got a good read out of Dijkstra's essay as well.

      Nice analogy for pointing out that one shouldnt be making analogies between material engineering and computing!

    7. Re:Good point by Fulcrum+of+Evil · · Score: 2, Informative

      There are flaws in virtually all physical construction that would never be tolerated in software design.

      For instance, the one that collapsed a few years ago and made national news. It turns out that they never specced a particular load-bearing part properly and ended up using one half as thick as they needed. It lasted 40 years before failing, and there wasn't anything in standard test procedures to spot it.

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    8. Re:Good point by kmsigel · · Score: 1

      Ahh, the standard (and useless) analogy to civil (or mechanical) engineering. The things that civil and mechanical engineers make are trivial compared to software engineering. Why? It is simple. They have to *build* what they design in the real, physical world. The building part is hard, but the designing is easy.

      Look at a bridge. Very simple. You take big, heavy, strong things and stack them up vertically and horizontally until you have something you can drive across. Or maybe you get "clever" and string a huge bundle of steel cable across a span and hang the big, heavy, strong things from the cable. The design is simple, the building is hard.

      We in software engineering aren't constrained by having to build anything physical, so we can design things that are incredibly complex. The design is hard, the building is simple.

    9. Re:Good point by that+this+is+not+und · · Score: 1

      So what you're saying is that the COBOL compiler for the IBM 650 has a bug in it. It's gonna crash one day soon, too.

    10. Re:Good point by Provocateur · · Score: 1

      it's so hard to wright

      It's one of them gotchas, isn't it? So that one of your friends will, from out of the blue, walk up to you and simply say, Oh BTW, you misspelled 'write', and move on, as if nothing happened, but he has seen your comment about him and his grades. And you will know, beyond a shadow of a doubt, that he is a slashdotter like you. And he's got you pegged, as well.

      --
      WARNING: Smartphones have side effects--most of them undocumented.
    11. Re:Good point by mrchaotica · · Score: 1

      Software Engineering has apparently been said to be the hardest form of Engineering around because it's so hard to wright a program of significant size which is bug free. If structural engineers building bridges had as many bugs in their work as software engineers have in theirs, the world would be a very unsafe place.

      I'm a comp sci and civil engineering double major. This has taught me two important things (that are relevant to this discussion):

      1. There is no such thing as "Software Engineering." No matter how much UML and waterfall development plans and black-box testing you do, you do not go through an engineering process when making software. It doesn't exist, at least not yet. Sorry.
      2. Be very, very afraid, because the world is an unsafe place, and is getting worse by the day. Why? Because pretty much the same thing is happening in the civil engineering field as is happening in computer science! The curriculum is being dumbed-down to the point where soon a Master's degree will be the "entry-level" one, and will be required to get a P.E. license. This isn't because the requirements for the license have gotten any harder; it's because the stuff that people who got their Bachelor's a decade or so ago learned is now being taught at the graduate level! The fact that there's a lot of emerging technology (pre-stressed concrete, fiber-reinforced polymers, building information modeling, etc.) only exacerbates the problem. And buildings being built today were designed using structural analysis software that works by accident if it does at all, by people who almost certainly didn't know how to use it properly (because describing a structure in such a program is quite a lot like programming, which my fellow CE-but-not-CS students are notoriously bad at).

      By the way, I think you meant "write," not "wright" (unless you indeed meant to use the present tense of "wrought," but I don't think that form of the word actually exists).

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    12. Re:Good point by mrchaotica · · Score: 2, Interesting

      If designing buildings was like programming, architects would have to deal with all new materials every few months (can't use the old ones), they'd have customers insisting that walls are best placed leaning 10 degrees out of true...

      Ahem...

      (I agree with your fundamental point, by the way; I just thought that particular choice of analogy was amusing.)

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    13. Re:Good point by soliptic · · Score: 1

      sounds like a concise-ified version of this, which is about "web designers" supposedly, but I think applies to any sort of developer pretty much as well.

    14. Re:Good point by MrMunkey · · Score: 1

      I think the analogy of the bridge works quite well. It also points out a problem that software engineers and programmers face that structural engineers and construction crews do not face. The people who are funding the construction of the bridge can see what they're getting and visually ascertain the progress of said structure. The people funding the software only get to see a very small portion of it (the user interface) which makes it more difficult to know if progress is being made.

      Software also is not as big (in size) as a bridge, and so to the lay American I think they don't think it's as impressive. I think in that sense programming moves more into the realm of art.

      Someone who has not studied art will look at the Mona Lisa and see a pretty painting. Someone who has been trained in art will see all the details of how the paint was applied to the canvas and other subtleties that point to the intent/genius of the painter. I suppose this analogy somewhat falls apart in that to fully appreciate software you'd have to see the code.

  11. He can wish.... by Aussie · · Score: 4, Funny

    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.

    But RMS isn't going anywhere !

    1. Re:He can wish.... by martin-boundary · · Score: 1

      Not only that, but he's accomplished more for the world in twenty years by being the way he is than he ever could if he had been clean shaven, skinny and wearing a suit while working in the IT department of some minor bank.

    2. Re:He can wish.... by that+this+is+not+und · · Score: 1

      I'm not sure about that. Stallman's greatest work code-wise was completed more than 20 years ago now. My copy of the GNU Emacs manual was printed in 1986. The most important work he's done for the last 15 years is evangalization, which is also very important, and a valuable contribution, but it's not hacking code.

  12. Lies!! by ookabooka · · Score: 5, Funny

    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.

    While probably safe for work, I don't actually want anyone to see this, but I found one!

    --
    If you are about to mod me down, keep in mind that this post was most likely sarcastic.
    1. Re:Lies!! by Evil+Pete · · Score: 1

      "Too much information" doesn't really come close in this case.

      --
      Bitter and proud of it.
    2. Re:Lies!! by geekoid · · Score: 1

      I am going to track you down and gouge your eyes out as you look at this picture. That way it will be the last thing you see for all time.
      Gah, my brain.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    3. Re:Lies!! by Anonymous Coward · · Score: 0

      There is not a single pizza box in sight, and WHY IS THE PUSSY CENSORED?!?!!?!?

    4. Re:Lies!! by east+coast · · Score: 2, Funny

      Safe for work? It's not safe for any setting. My faith in humanity has dropped yet another notch.

      --
      Dedicated Cthulhu Cultist since 4523 BC.
    5. Re:Lies!! by mangu · · Score: 1

      The pussy isn't censored, it has black fur in the back of the head and is looking the other way

    6. Re:Lies!! by binarylarry · · Score: 1

      I hate to be the one to break this to you, but that's none other than Gordon Freeman himself: Gabe Newell

      --
      Mod me down, my New Earth Global Warmingist friends!
    7. Re:Lies!! by reSonans · · Score: 3, Funny

      Is that a tub of Vaseline under his desk? I didn't think it could get any worse until I noticed that.

      --
      Light the blue touch-paper and retire immediately.
    8. Re:Lies!! by Anonymous Coward · · Score: 0

      I think the good professor was referring to a certain developer who is currently fertilizing the jungle on an island off the coast of Costa Rica. He certainly won't be seen again. He was a bad guy, though, so it's OK.

    9. Re:Lies!! by Anonymous Coward · · Score: 0

      Is it bad that the first thing I noticed was that I used to have the same computer case as the one featured in the foreground?

    10. Re:Lies!! by Fnord666 · · Score: 1

      Is that a tub of Vaseline under his desk? I didn't think it could get any worse until I noticed that.

      I could have gone my whole life without you pointing that out. Excuse me while I go burn my eyes out.

      --
      'The tyrant will always find pretext for his tyranny.' - Aesop's Fables
    11. Re:Lies!! by Eli+Gottlieb · · Score: 1

      OH God my eyes. My poor eyes. I'm rolling on the floor laughing at my impending blindness.

    12. Re:Lies!! by earthforce_1 · · Score: 1

      That's when the CEO realized that "Casual Dress Fridays" may not be such a good idea.

      --
      My rights don't need management.
  13. Sales Pitch For His Product by Anonymous Coward · · Score: 0

    Incidentally, I find it appalling that you can become a programmer with less training than it takes to become a plumber.

    Of course he does. His product is teaching people to be programmers. Unfortunately for his business model, no one really needs the type of training a plumber has to go through in order to write software.

    Yes, sometimes lives depend on software working correctly. Many millions and billions of dollars may ride on getting the math or the database updates to work reliably. Those are the most exceptional and specialized cases in the software world. Well over 99% of software does nothing more significant than make the clock blink on your DVD player.

    1. Re:Sales Pitch For His Product by Anonymous Coward · · Score: 1, Insightful

      Most programming tasks are not life or death, but quite a few of them cost a lot of money when they fail. Right now good programmers are almost entirely the result of good on the job training, it would be great if more practical knowledge of programming could be taught in classrooms.

    2. Re:Sales Pitch For His Product by xlotlu · · Score: 1

      Yes, sometimes lives depend on software working correctly.

      And sometimes world economy.

    3. Re:Sales Pitch For His Product by DMalic · · Score: 1

      I think people like you are the reason software crashes all the time...

  14. Stroustrup on Java is like Bill Gates on Linux by Anonymous Coward · · Score: 5, Insightful

    Bjarne Stroustrup, creator of C++ [...] weighs in on [...] Java (there's too much of it)

    Oh, gee, now THAT is a surprise!

    1. Re:Stroustrup on Java is like Bill Gates on Linux by Anonymous Coward · · Score: 0

      Really. He contradicts himself a bit. I was taught Java in college, but I learned C++ in high school (independently studying, as it offered no courses). The fundamentals are more important than the language used. I've had employers throw entirely new languages at me and I could easily learn them - so what's the big deal with pushing people away from Java?
       
      Anyone can write code. Not everyone can engineer software - going through the whole deal for a real-world project, not some "Oh, my C++ program is faster than your embedded Java, Python, etc" BS. Get over it. Learn more about the field in general, rather than how to fancily throw about pointers or argue over the greatest tree-structure class in Java.

    2. Re:Stroustrup on Java is like Bill Gates on Linux by mebrahim · · Score: 1

      This seems better:
      Stroustrup on Java is like RMS on Windows.

  15. Bjarne just burned most of slashdot by Anonymous Coward · · Score: 0

    now that Bjarne has ridiculed you all will you mod him as flamebait too?

    1. Re:Bjarne just burned most of slashdot by Anonymous Coward · · Score: 0

      So everything sucks.

      Some days I tend to agree.

    2. Re:Bjarne just burned most of slashdot by binarylarry · · Score: 1

      You actually think OO makes it HARDER to figure out a program?

      Sounds like you have some learning to do.

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

      Well yeah but some things are better than others. As far as programming languages, C++ and Java are near the bottom of my list.

      For performance, stick with C (or assembly as required). C is way more portable than Java, has about the same or less verbosity, performs better, doesn't require a huge-ass runtime environment, and is easier to make work 100% of the time (ever run into a bug in Java or something that doesn't work like what you need? I have, many times).

      For high-level use a scripting language such as Lua, Javascript, Perl, Python, etc. (as long as it has a nice C API underneath) Don't go overboard on the OO in the scripting language so that other people can easily understand your work. As for language recommendations, I prefer Lua, Javascript and Perl. Javascript actually sucks pretty hard but it's too widely used to ignore. Then hook your scripting language to your parts written in C for performance as needed and you can live pretty well my friend.

      With that said, everyone should do some functional programming. It will make you a better programmer and you will learn how truly disgusting OO design is. I recommend learning Erlang and/or SML. Stay away from Caml/OCaml and Haskell unless you're a career academic like Stroustrup. LISP sucks and is not a functional language, don't bother with it. Also, as cool as it seems, don't try do real projects with a functional language.

      Even with this advice, don't expect miracles. All things still suck!

    4. Re:Bjarne just burned most of slashdot by Anonymous Coward · · Score: 0

      Ha, I love when some neophyte suggests that I'm the one that needs to learn something. Your ignorance is glaring. Grasshopper, much to learn you have.

      Hang out here, ya might learn something. Or seriously, just search for "Object-Oriented considered harmful" or "OOP sucks" or any number of things. Then maybe when you get out of school I will hire you.

    5. Re:Bjarne just burned most of slashdot by binarylarry · · Score: 1

      "When I get out of school," why would I want to work for a retard that can't handle simple concepts like OOP?

      --
      Mod me down, my New Earth Global Warmingist friends!
  16. Re:If they can't get a smart and social employee.. by truthsearch · · Score: 3, Funny

    My production would definitely be down if I had a cheerleader. Depending, of course, on what she looked like...

  17. Is coding really a team sport? by tristanreid · · Score: 5, Interesting

    I know about extreme programming, and I've really enjoyed some team programming sessions, but when it comes down to it, I think one reason some people hold a much deeper level of knowledge than their peers is that they spend extreme amounts of time alone.

    Some people:
    --get really good at coding
    --get really good at math
    --get really good at video games
    --read large numbers of books
    and finally some people watch a lot of television

    The people who read a lot of books sometimes gain a better understanding of other people, the people who watch a lot of TV have an increased repertoire of small talk, and in today's world, video games are increasingly a team sport. All of those things facilitate increased human contact.

    People who are fascinated with math and coding tend to have fewer peers who can understand what they are doing. Is this a bad thing? I don't think so. Maybe I grew up as more of an introvert in some regards, but in other ways I'm socially adjusted. I guess the challenge is to guide young people to seek out their peers (those who are fascinated with the same things), and to make friends without making everything into a competition. It's hard for young nerdlings to recognize a peer intellect without wanting to prove themselves better. There is a place for ambition, but that instinct can be a hinderance.

    My two cents,

    -t.

    1. Re:Is coding really a team sport? by Shados · · Score: 5, Insightful

      Coding can be a hobby, in which case sure, you can do it alone (though for significant project, it gets rough, with all of the cross cutting concerns... someone who's extremely good at algorythms may totally suck at designing a public API... fairly common in CS-heavy companies that do a lot of backend stuff).

      I'm guessing though, they were referring to coding in the real world (for a living), in which case, for anything significant (no, the ecommerce website someone makes as a freelance isn't significant), you'll need to be a good teamplayer. People who are good at making functional GUIs often suck at backend programming, and vice sera. People good in architectures often miss the details. Computer scientists often cannot understand project managers and architects. Thus, it becomes a team sport (like you'd have goalers, offense, defense, etc). Being able to work as part of that team is almost as possible (sometimes moreso) than just being good at your specialty.

    2. Re:Is coding really a team sport? by AVee · · Score: 1

      The project I'm currently working on has taken ~12 man years, and we're just getting started. And that's basically an extension to a range of products that to quite a few livetimes to build.
      Regardless of the need for different skils working together (which is indeed really important), there is no way you are going to build any significant piece of software on your own. And certainly not if you want to be done before it is outdated.

    3. Re:Is coding really a team sport? by Americano · · Score: 5, Insightful

      Some people: --get really good at coding --get really good at math --get really good at video games --read large numbers of books and finally some people watch a lot of television

      The problem is, you're lumping all development into some generic activity called "coding." That ignores the simple fact that being an expert in C++ does not make you expert at UI design. Being an expert at UI design doesn't make you a SQL whiz. Being a SQL whiz does not make you an expert at designing flexible & scalable application systems with many moving parts.

      See the pattern? To make any practically-useful system today, you MUST work with other people who are expert in areas you're very likely not an expert in. You can create the best data model in existence for your company's payroll system, but if you don't have a clear understanding of the business rules, a good architecture, and a solid UI (and I've seen very few people in software engineering who are experts at all of the pieces that go into creating a good piece of software), the resulting product will be an unusable piece of crap that doesn't meet requirements.

      Stroustrop's point of the single genius programmer is valid. The model you describe supposes that a single person can possibly learn and be expert in all of the disparate knowledge areas that are required to make a working piece of software, and in any group, the people who are capable of that level of insight & knowledge will *always* be the statistical outliers. Instead of punishing the majority of people for not being born with genius-level intellect, teach them how to be good at their chosen area of expertise, and how to relate to the people they have to work with to get things done. You don't have to engage in XP or some other "pair programming" methodology to realize value from being able to communicate clearly and work with your architect, QA / Reliability engineers, your customers, your project manager, and other developers who are working on separate subsystems.

    4. Re:Is coding really a team sport? by Forrest+Kyle · · Score: 1

      "there is no way you are going to build any significant piece of software on your own."

      Tell that to the guy who invented BitTorrent.

    5. Re:Is coding really a team sport? by MagikSlinger · · Score: 5, Insightful

      I know about extreme programming, and I've really enjoyed some team programming sessions, but when it comes down to it, I think one reason some people hold a much deeper level of knowledge than their peers is that they spend extreme amounts of time alone.

      ...

      People who are fascinated with math and coding tend to have fewer peers who can understand what they are doing. Is this a bad thing? ... I guess the challenge is to guide young people to seek out their peers (those who are fascinated with the same things), and to make friends without making everything into a competition. ... There is a place for ambition, but that instinct can be a hinderance.

      I think you've misunderstood was Bjarne was talking about. Most software projects have a dozen or more developers requiring close collaboration and the ability to cope with egos and positive/negative emotions. Also, just the ability to communicate your information to someone who needs it. Damn straight modern programming is a team sport! Are you working on tiny apps in a small closet hidden somewhere inside a small company? 'Cause for the rest of us, our day is filled with interacting with people. I'm very introverted, but I do need social skills to deal with the people I work with every day -- which causes me extra stress, but I digress. Software development in big companies and FOSS projects is a team effort, and for successful projects, the humans working on those teams need to work together smoothly.

      Eventually, you start talking about what Bjarne was talking about at AT&T: social skills doesn't mean your hosting dinner parties and chatting up girls. It means being able to share and communicate your idea to another very smart person, and then being able to listen and learn from that other very smart person. I think you shifted into that point at the end of your post: the idea that introverted smart people need to find other smart people they can talk with.

      Social skills in this context doesn't mean being the life of the party or tossing a football with non-geeks. Social skills means being able to tell the prima donna that his code has a bug in it. It means being able to explain to others why a design or architecture is bad. It's coping with hurt feelings: yours and theirs. The basic social skills of working in a modern business environment.

      Programming has evolved waaaay beyond the lone programmer in his little corner office working his own hours. A programmer is expected to talk to end users and tease out their real requirements; it requires them to be able to stand up and argue for something in a room full of managers; it requires having the ability to tell another programmer his coding style is awful, but you want to help him to get better.

      That's what Bjarne meant by social skills and team programming.

      --
      The bitter lessons of a veteran coder: http://bitterprogrammer.blogspot.com
    6. Re:Is coding really a team sport? by againjj · · Score: 1

      vice sera

      You want to give me pain, don't you? And vice versa, I'll have you know.

    7. Re:Is coding really a team sport? by russotto · · Score: 1

      Programming has evolved waaaay beyond the lone programmer in his little corner office working his own hours. A programmer is expected to talk to end users and tease out their real requirements; it requires them to be able to stand up and argue for something in a room full of managers;

      This isn't evolution, this is just dumping all the work on a single person. And it has to be the programmer, because while typical programmers often make lousy business analysts, typical business analysts can't write working code at all.

    8. Re:Is coding really a team sport? by Anonymous Coward · · Score: 0

      I can never get my project manager to understand me. He keeps asking me "what's the outlook? whats the outlook?" Each time I look out the window and I say something like "looks like rain" or "the suns coming out", but he never seems to hear me and just keeps on asking me nonetheless.

  18. Ha! by isaac338 · · Score: 5, Funny

    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.

    As a pizza delivery driver, I have to take exception to this. I see all kinds of folks but one guy in particular stands out. He always orders at least a large pizza and two lasagnas, usually with 2 or 3 2L bottles of pop and a couple (or three!) slices of cheesecake.

    He weighs a good 400lbs, has 3 monitors and a laptop on the go at all times (one monitor for CSI or whatever show, one for a terminal, one for IM), with WoW on the go on the laptop. His desk has a path cleared to it amongst piles and piles of garbage - empty pizza boxes, empty takeout containers, half-eaten food..

    Such a sight to behold.

    So no, they're not extinct.

    1. Re:Ha! by Anonymous Coward · · Score: 0

      You've described a computer user and aficionado, not necessarily a geek computer genius. From what you've described, he eats a lot while watching TV shows, playing computer games, and chatting. His computer is his entertainment box. Is he creating anything, as opposed to merely consuming?

    2. Re:Ha! by Broken+scope · · Score: 1

      You are describing a wow player.

      I'm the only person in my apartment who doesn't play WoW, yet I'm only one who is technically inclined(programmer, budding linux user).
      I'm also the only one who works out on a regular basis, cleans the place, or does the dishes. The only comment that could be applied to my room is "spartan".

      Your right though, there not extinct. They also appear to be on the road to reproducing.

      --
      You mad
    3. Re:Ha! by Broken+scope · · Score: 1

      God dammit, just as I hit submit I notice I fucked up a "Your/You're" and a "There/Their/They're" in the last line.

      --
      You mad
    4. Re:Ha! by PitaBred · · Score: 1

      They're just an evolutionary dead-end... just gotta wait for them to die. At least, I hope none of them ever breed. Can't see it as being terribly likely myself ;)

    5. Re:Ha! by Anonymous Coward · · Score: 0

      But I thought he got eaten by a dinosaur?

    6. Re:Ha! by Just+Some+Guy · · Score: 1

      one monitor for CSI

      Programmers are genetically incapable of sitting through CSI, let alone watching it voluntarily.

      --
      Dewey, what part of this looks like authorities should be involved?
    7. Re:Ha! by DrSlinky · · Score: 1

      Pics or it never happened! It's one of those new internet rules... or something...

    8. Re:Ha! by isaac338 · · Score: 1

      Hahaha I wonder what guy would say if I busted out a camera and snapped a photo of his shithole next time he orders his disgusting smorgasbord?

      Pics to follow!

  19. Choice quote by clickety6 · · Score: 1

    They can't produce quality products as cheaply, as reliably, and as quickly as they would like.

    Well, according to this link - http://www.sun.com/customers/software/elp.xml - switching from C++ to Java helps here. Maybe Prof. Stroustrup might find the source of many of the problems in his own mirror... ;-)

    --
    ----------------------------------- My Other Sig Is Hilarious -----------------------------------
    1. Re:Choice quote by internerdj · · Score: 4, Funny

      First Stroustrup complains Java is a major ill of CS curiculum, and then Sun says that Java solves all the problems of people who have C++ implementations. And for my next feat I will find an article with the Democrats blaming Bush for something. :-\

    2. Re:Choice quote by andhow · · Score: 1

      Educational software switching from a language with a bias towards systems programming to a language for the average programmer: that's good data from which to extrapolate.

    3. Re:Choice quote by gbjbaanb · · Score: 1

      and Microsoft says C# solves all the problems of people who have Java implementations. And everyone else for that matter.

      And in the meantime, everyone still writes at least a little bit of C where needed.

  20. One problem... by Bruce+Perens · · Score: 3, Funny

    he 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.

    But, where then would Slashdot get its readers?

    1. Re:One problem... by Anonymous Coward · · Score: 0

      I'm sure you can get a waiver, since you stopped being a programmer years ago.

  21. too much Java ... by Sweetshark · · Score: 3, Interesting
    Summary is wrong. There is nothing from BS about "too much Java" in TFA.

    Yet while Stroustrop agrees that Java has been used to dumb down CS programs, ultimately, âoethe problem is one of attitude, more than an issue of programming language.â

    He is not dumb enough to claim C++ superior to Java. After all it is an C++ is so aweful "designed" that if you are not completely sunk in C++-think, you spend more time fighting the language and its warts than actually do useful stuff (like thinking about algorithms and what the machine does like Don Knuth taught us). While Java is very high level it at least got rid of some of the ugliest and worst mistakes that C++ made. Everyone is way better off with C (for systems stuff), Java (for "enterprisy" stuff), Python (for frontends) and sh (for quick and dirty hacks) than with any C++(*).
    http://yosefk.com/c++fqa/
    /End Rant
    (*) And dont tell me its because of the age of C++. Objective-C and Lisp are way older and way better designed than C++ for example.

    1. Re:too much Java ... by cjfs · · Score: 1

      Exactly - it's not too much Java, it's students not understanding the libraries they're using:

      I'm not sure how much of the problem is Java itself and how much is the emphasis on using libraries, though. The trouble is that Java has in many places been used to dumb down the curriculum while at the same time increasing the apparent level of delivered goods. It is good to be able to (quickly) build new things by calling libraries, but often that's not a skilled, challenging job. If that's all you have seen, you are completely lost when faced with a job for which a pre-packaged solution does not exist.

    2. Re:too much Java ... by Anonymous Coward · · Score: 0

      never seen a decent looking python gui

    3. Re:too much Java ... by Anonymous Coward · · Score: 1, Informative

      I actually quite like C++ when using the Boost library for fancy algorithms and wxWidgets for GUI support. At least, I find myself doing the same level of algorithm contemplation and such when I'm programming in C++ as I do in Java, and seem to accomplish similar programming tasks in similar amounts of time in either language.

      Also, what language is best for designing videogames these days? :)

    4. Re:too much Java ... by Anonymous Coward · · Score: 0

      maybe you haven't looked very hard then by the way it is kind of rude to write without capitals and interpunction

    5. Re:too much Java ... by geekoid · · Score: 1

      Of just use C++ and get all of them.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    6. Re:too much Java ... by 0xABADC0DA · · Score: 2, Insightful

      Everyone is way better off with C (for systems stuff), Java (for "enterprisy" stuff), Python (for frontends) and sh (for quick and dirty hacks) than with any C++(*).

      What do these languages have in common?

      * C
      * Java
      * JavaScript

      They each have the same highly successful syntax. Except for small adaptations for the different levels of systems vs application vs scripting these languages are interchangeable and each has a certain C-style simpleness and elegance to it.

      There are all sorts of different competitor languages... Objective C, Ruby, Smalltalk, D, Pascal, etc. The languages that have been widely successful even since before time began (1970) have been variations of the Algol/C/Java/Javascript style syntax. For whatever reasons, it is what programmers choose. Maybe it just fits better with how our brain actually works rather than how we think our brain should work. Who knows.

      But in any event, I suggest that C, Java, Javascript are the trifecta. Python is a dead end, the Pascal of its generation.

    7. Re:too much Java ... by Ash-Fox · · Score: 1

      never seen a decent looking python gui

      Now that I think of it, Eve Online has one of the worst game interfaces I ever encountered (most of it is written in Python code).

      --
      Change is certain; progress is not obligatory.
    8. Re:too much Java ... by Anonymous Coward · · Score: 0

      You are young, right?

    9. Re:too much Java ... by Anonymous Coward · · Score: 0

      There are all sorts of different competitor languages... Objective C

      Objective C is syntactically much, much closer to Algol/C than C++ or Java. Its really minimum invasive addition of Smalltalk-like message passing, while C++ more or less buries the small and relatively clean language C under itself. The only reason it really got huge was: Visual Studio.

      Python is a dead end, the Pascal of its generation.

      No, its the Visual Basic of its generation, and thats not a bad thing. There will always be need for RAD, and Python suits those requirements far better than any other. Of cause, one shouldnt expect todays Python code to run unmodified on a modern Python interpreter in ten years.

    10. Re:too much Java ... by Sweetshark · · Score: 1

      You are young, right?

      You feel old, right? ;-)
      If you wonder about real-world experience: Im currently working as a fulltime software engineer in a big and old C++ project (~10000000 SLOC, at least 15 years of history).

    11. Re:too much Java ... by Peterix · · Score: 1

      sonata - it's a great frontend for music player daemon.

    12. Re:too much Java ... by Jack9 · · Score: 1

      There will always be need for RAD, and Python suits those requirements far better than any other.

      I think you meant to say PHP for RAD. Python is very Pascal.

      --

      Often wrong but never in doubt.
      I am Jack9.
      Everyone knows me.
    13. Re:too much Java ... by Anonymous Coward · · Score: 0

      I think you meant to say PHP for RAD. Python is very Pascal.

      Think whatever you want. I still mean Python.
      PHP is useful only for (small, private) webstuff because its there is LAMP hosting cheaply available with it. It has nothing going for it on the desktop.
      BTW, Pascal/Delphi and the Borland IDEs were actually good RAD Enviroments for their time (before they were killed by VB6).

    14. Re:too much Java ... by Ash-Fox · · Score: 1

      maybe you haven't looked very hard then

      That really is badly designed...

      --
      Change is certain; progress is not obligatory.
    15. Re:too much Java ... by Anonymous Coward · · Score: 0

      Objective C is syntactically much, much closer to Algol/C than C++ or Java.


      -(int)method:(int)i {
              return [self square_root: i];
      }
      [obj method:parameter];

      Objective C is nothing like C family.

    16. Re:too much Java ... by Anonymous Coward · · Score: 0

      Python is a dead end, the Pascal of its generation.

      Which is why it's so popular at Google, arguably the fastest crowd in today's software landscape.

    17. Re:too much Java ... by Anonymous Coward · · Score: 0

      Lots of smart people used Delphi too, so what?

    18. Re:too much Java ... by guyminuslife · · Score: 1

      Hey, I can add my MouseListener to my JButton like a badass!

      Somebody mod this "sad".....

      --
      I don't believe in time. It's a grand conspiracy designed to sell watches.
  22. Stinkin' sterotypes! by Anonymous Coward · · Score: 0

    Just because you're a sloppy fat geek computer genius semi-buried in a pile of pizza boxes and cola cans doesn't mean you don't have social skills.

    Pizza is a good way to make friends.

    1. Re:Stinkin' sterotypes! by PitaBred · · Score: 1

      Pizza won't get you or more than a "That'll be $15 please, sir" as far as social contact. And even if the pizza girl is hard up, she's got better offers than that ;)

  23. Re:He sure thinks a lot of himself by truthsearch · · Score: 3, Insightful

    Someone can learn the basics of a lot of programming languages, but not know the fundamentals well. What a university should provide is a solid foundation. My education included chip design, compiler design, assembler, and other low-level topics that I never use on a daily basis. But studying them at the university level definitely makes me a better programmer.

  24. itmanagement.earthweb.com by Skapare · · Score: 0, Offtopic

    The itmanagement.earthweb.com webmaster(s) have some learning to do, too.

    • The page layout has several glitches (text flowing outside of boxes).
    • The layout doesn't make complete use of the available window space.
    • The cute arrows labeled "IT Management" and "Features" don't match up in size.
    • The links to the next page don't work with tabs.
    • The print version wastes paper by being broken up into "pages" that don't fill out each paper page.
    • The main page for "itmanagement" has multiple menu glitches.

    Seems to me to be a cheap company hiring cheap developers.

    --
    now we need to go OSS in diesel cars
  25. Since when by FranTaylor · · Score: 1

    Did Stroustrup create a professor at Texas A&M? I thought he was a software developer, not a genetic engineer.

  26. Everybody wants one by Anonymous Coward · · Score: 0

    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

    Take away the sloppy fat and he's talking about people like John Carmack. If some of these companies had a computer genius or two working for them maybe they wouldn't have to lament the fact that their products are crap.

  27. Conflicting goals by internerdj · · Score: 4, Insightful

    They can't produce quality products as cheaply, as reliably, and as quickly as they would like...
    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.


    We all know that we get to choose two of the three, problem is companies want all three without any consessions.
    Also, imposing rigor on software design increases time and in certain situations cost, while increasing reliability. While we are definitely heading in the right direction as a field; there is a long way to go before we ever get to any kind of discipline that is both as rigorous as other science or engineering disciplines and usable on the scale that people currently expect software to be at. Real customers by and large can't (although some cases won't) pay for rigorous development. Hell, the mentality has been creeping into consumer electronics as long as I've been alive. The current market drives us towards fast and cheap and only towards reliable if the customer is pissed.

    1. Re:Conflicting goals by MadKeithV · · Score: 1

      I think if most software development would stop trying to do the wrong things wrong fast, there'd be enough time left to do only the right things right fast enough.

  28. Wait, don't leave! by Gizzmonic · · Score: 3, Funny

    '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.'

    Uh...guys? I'm right here! Under the pizza boxes! I was trying to nibble some of the last bits of cheese off the boxes, and I slipped. Guys? Where are you going? (Lights click off.) Guys? This isn't funny!

    --
    (-1, Raw and Uncut is the only way to read)
  29. Re:He sure thinks a lot of himself by backwardMechanic · · Score: 1

    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.

    That's an interesting point. My degree is in physics - while it is in principle possible to learn the same amount of physics as is required for a BSc without university, it would be much harder and take much longer. Having teachers introduced me to the right concepts and presented the right questions. Is the same true for CS? I'm sure there is more to programming than learning the syntax, but does programming require a degree?

  30. PHBs take note, please? by 14erCleaner · · Score: 4, Insightful

    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.

    I almost stood up and cheered when I read this, until I realized that nobody who can change things is reading, and besides I would have disturbed the other cubicle rats.

    --
    Have you read my blog lately?
    1. Re:PHBs take note, please? by MaunaLoa · · Score: 1

      Applause. I'm currently working for a company that doesn't invest 2 cents into their developers (who really need to take a hint or two) but spends millions on procedures, methods, and locked down software design tools that will not raise the standard of the ones who insist on staying behind but hinder the ones who are able to do it better.

      --
      Reality is that which, when you stop believing in it, doesn't go away. - Philip K. Dick
    2. Re:PHBs take note, please? by balbeir · · Score: 1

      IBM ?

    3. Re:PHBs take note, please? by gbjbaanb · · Score: 1

      "If you treat your development staff as interchangeable programming monkeys, then don't be surprised if that's what you get".

  31. Re:He sure thinks a lot of himself by binarylarry · · Score: 2, Interesting

    Most of these topics can easily be researched and learned without a university.

    It isn't like say, brain surgery or nuclear engineering.

    --
    Mod me down, my New Earth Global Warmingist friends!
  32. The problem with C++ by spiffmastercow · · Score: 2, Insightful

    The real problem with C++ is that it keeps changing all the time. I learned C++ around 1995, shortly after learning C, and it was pretty simple and straightforward. Sure, there was the template annoyance, but nobody used them so it didn't really matter. Now it's some strange bastardized beast with lots of syntax that's not even remotely derived from its C roots. What was wrong with simply having an object oriented version of C? I know it can still be used that way, but it seems to be more and more difficult to only code that way using C++, because you're going to have to use libraries at some point or another.

    1. Re:The problem with C++ by Shados · · Score: 1

      C++ isn't my thing and I haven't used it in a long time, but when I was, around the same time you learned it, templates were huge and used everywhere (at least in serious companies). From looking at the stuff my girlfriend works on (since thats the language she mainly works with), I don't see anything much different from 10+ years ago. So aside a few thingnies here and there, not sure what you say changed. Its even standardized now!

    2. Re:The problem with C++ by Anonymous Coward · · Score: 0

      What was wrong with simply having an object oriented version of C?

      There is Objective C if OO C is what you want. As for C++, Stroustrup and the other folks behind it seem to be hell-bent on showing that it's a language of its own - one that may have had roots in C at some point but is disconnected from C nowadays and stands entirely on its own.

      Maybe it's some kind of inferiority complex, I don't know - but the reaction you'll see from them when you suggest that C++ is based on C is tellingly knee-jerk, at least.

    3. Re:The problem with C++ by andhow · · Score: 5, Insightful

      I know it can still be used that way, but it seems to be more and more difficult to only code that way using C++, because you're going to have to use libraries at some point or another.

      Yeah, those damned templated libraries with their: performance, type safety, design patterns, generic programming principles. I can't imagine why Java wasn't happy with containers of Objects and added Generics. C# definitely shouldn't have followed suit. All you need is void*, size_t, and int (*)(void *, void *), right?

    4. Re:The problem with C++ by chrismcb · · Score: 1

      C++ hasn't changed much at all. The standards changed a little bit, but it is easy to learn/adapt to the differences. Sure, if you want to do anything you need to learn a library, that is pretty much true of ANY language. As well as any company. Pretty much any company will have a core of APIs you need to call for something or other that is business related. So I don't understand what your complaint is about at all, nor why it is marked as insightful.

    5. Re:The problem with C++ by johanatan · · Score: 1

      Actually, it has changed drastically. Only for about a decade have we had meta-template programming and the more functional syntax (as detailed by Alexandrescu's _Modern C++_ [and TR1 takes this even further]. Though, I do agree that [typical] templates were in widespread use in 1995.

      GP is entirely off-base though. Languages change due to progress. Those who fail to come along for the ride wither and die (or at the very least become the sort of people that no one wants to work with).

    6. Re:The problem with C++ by sonofusion82 · · Score: 1

      The real problem with C++ is that it keeps changing all the time.

      Keep changing? How about comparing with Java or C#, those languages controlled by single company keep changing every year! Changes in C++ takes so long that I doubt C++ 0x is every gonna happen until 201x

    7. Re:The problem with C++ by Shados · · Score: 1

      Thanks for the corrections :) Thats what I get for speculating on things i'm a little fuzzy about.

    8. Re:The problem with C++ by Anonymous Coward · · Score: 0

      I can't imagine why Java wasn't happy with containers of Objects and added Generics. C# definitely shouldn't have followed suit.

      Posting this way too late for it to actually matter, but:

      1. You got that backwards. C# added generics well before Java did.

      And:

      2. Java never added real generics. Java still uses containers of Objects. All Java generics do is make the class cast automatic. The class cast still happens, and there's still nothing preventing poorly written code from adding objects of a different type to the container.

  33. My way of interpreting is null by dilvish_the_damned · · Score: 3, Interesting

    The article starts off by claiming Stroustrup created C++. Fair enough, but then, in the same paragraph, the author claims that C++ is used in "google search" and the iphone. Doesn't the iphone platform stress objective-C ( like all current Apple platforms )? Objective-C != C++. It could be a minor thing since I dont do either, I am just saying something, maybe. Maybe like he does not know his subject matter, or assumes his readers do not.

    The rest of the article was mostly about the Stroustrup history, not what he said in the presentation. Its almost like the author cherry picked a few damning things his subject said in a presentation totaling ~42 words and then gave it a provocative title, and a bunch of interpretation.
    Like I give a shit what the author thinks.

    NOTE: I would apologize for the way my brain works but I am held captive by it. Its not my fault. I think.

    --
    I think you underestimate just how much I just dont care.
    1. Re:My way of interpreting is null by Anonymous Coward · · Score: 3, Interesting

      Stroustrup likes to claim Google as proof that C++ is the greatest, but the truth is considerably more complicated. Here at Google, C++ is used for back-end code where performance (esp. control over memory footprint) is really important. Python is used for scripting. Java is used for almost everything in between. The proportion of Java is growing, mostly at the expense of C++, because (a) engineers are a lot more productive in Java and (b) the fault rate of Java code is considerably lower.

    2. Re:My way of interpreting is null by jcausey · · Score: 1

      Well, to be fair, while the iPhone does not use C++ directly in its application-facing API (it does use Objective C), it is a BSD-based system. And lots of mundane system-level apps are written in C++. Same with Google's infrastructure (w/GNU stuff sprinkled in there).

      Granted, the majority of system stuff is written in plain C.

    3. Re:My way of interpreting is null by russotto · · Score: 1

      Well, to be fair, while the iPhone does not use C++ directly in its application-facing API (it does use Objective C), it is a BSD-based system. And lots of mundane system-level apps are written in C++.

      If the iPhone OS X is like Mac OS X, the driver level (IOKit) is a C++ subset, with the rest of the kernel in C.

    4. Re:My way of interpreting is null by illama · · Score: 1

      The iPhone does use C++.

      The iPhone OS is based on OSX which at its core is not coded in Objective-C.

      iPhone apps are coded in Objective-C, but there is a lot of C++ code running on the phone under the hood.

    5. Re:My way of interpreting is null by Anonymous Coward · · Score: 0

      Firstly, the author is full of shit.

      Secondly, Stroustrup designed C++ in a nice little cozy academic environment. Awesome.

      Now aside from that just what the fuck does he know about day to day software engineering in the real world?

      I didn't think so.

    6. Re:My way of interpreting is null by Workaphobia · · Score: 1

      No offense, but I don't understand where you got any of that. The author didn't say the iphone stresses C++, he said it's used on it. There's a big difference, as any system you point to that's packed with a diverse set of libraries is basically guaranteed to have something coded in C++.

      As for the second part about editorializing, unless I'm horribly mistaken, the *bold* parts of text are the questions, and the standard typeface paragraphs are Stroustrup's reply.

      --
      Evidently, the key to understanding recursion is to begin by understanding recursion. The rest is easy.
    7. Re:My way of interpreting is null by Anonymous Coward · · Score: 0

      The only thing you need to use Objectionable-C for on the iPhone is interfacing with the UI API, all the other APIs have a plain c version. You can call C++ code from your Objectionable-C layer, this helps make it only a very minor annoyance in any iPhone project.

    8. Re:My way of interpreting is null by master_p · · Score: 1

      Stroustrup says that c++ is used in big software products (if you check out his page), giving the impression that c++ is the main programming language of those products, but in reality, it is a subset that is coded in c++. The same happens with iPhone: some subset is probably coded in c++, the rest is coded in Objective-C.

  34. Looking for programmers in their natural habitat by russotto · · Score: 1

    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.

    Hmm. Perhaps this is why companies can't find good programmers; they're explicitly not looking for them in their natural habitat, and not recognizing them when they do find them.

    What next, demand doctors drop the white coats and the god-like attitudes? Expect lawyers to give up Armani suits and martinis? Sorry guys, you've got to take the good with the bad.

  35. Re:He sure thinks a lot of himself by White+Shade · · Score: 1

    I would say that to be a programmer requires something innate, but to be good you need education for sure.

    If you've ever sat through a programming 101 course, you'll realize that some people "Just Get It" and some people have absolutely no clue no matter how simply you describe it and how simple the task is. Some people can see the flow of ideas necessary to make even something as simple as a for loop work, while others won't even begin to comprehend the concept or even be able to visualize any of it.

    But eventually, once you have the basic grasp of it, having the education will expose you to a lot of things you might not know. Abstract concepts even as simple as data structures like linked lists might not immediately occur to you, so having someone teach them to you will help to no end.

    But still, if you're not cut out to be a programmer, no amount of degrees are gonna help you...

    --
    ìì!
  36. Companies Complaining by LaskoVortex · · Score: 1

    The companies are complaining because they are hurting.

    Then they should start their own training programs and recruit students using high wages as an incentive to joint the program. For the right salary, I'll sign up.

    --
    Just callin' it like I see it.
    1. Re:Companies Complaining by Billly+Gates · · Score: 2, Interesting

      If colleges did their job and taught students business skills such as economics, accounting, project planning as well as professional programming skills such as object oriented programming, secure coding, MVC, three tier system design and SQL, and not calculus IV obscure algorithms, zxy-tree discrete unified field algorithm garbage we would not have this problem.

      HR is convinced computer science is required for any I.T. job when in fact they do not teach practical skills outside of academia. The .com bust created a large surplus of candidates where they could require it but now its leveling out and they are filtering good applicants out.

      Every other profession out there is trained at a university on how to do their job. HR is trained from a B.A. with a minor in H.R. Chemists are trained with a science degree in chemistry, teachers with a teaching degree, etc. Its logical to assume HR thinks computer science teaches students how to be practical in business.

    2. Re:Companies Complaining by russotto · · Score: 1

      If colleges did their job and taught students business skills such as economics, accounting, project planning as well as professional programming skills such as object oriented programming, secure coding, MVC, three tier system design and SQL, and not calculus IV obscure algorithms, zxy-tree discrete unified field algorithm garbage we would not have this problem.

      I find it difficult to understand why it is the job of colleges to teach students business skills in a computer science (or even computer engineering) curriculum. Most universities will have a school of business which offers such courses, if students are interested. You do understand that colleges and universities are not intended to be vocational schools or even professional schools, right? As for zxy-tree discrete unified field algorithms... what's the point of doing a CS major with a concentration in Physics if I can't do zxy-tree discrete unified field algorithms?

    3. Re:Companies Complaining by DragonWriter · · Score: 1

      If colleges did their job and taught students business skills such as economics, accounting, project planning as well as professional programming skills such as object oriented programming, secure coding, MVC, three tier system design and SQL, and not calculus IV obscure algorithms, zxy-tree discrete unified field algorithm garbage we would not have this problem.

      Teaching "business skills" (outside of a business program) and "professional programming skills" (outside of a notional "vocational programming" curriculum) are not colleges' jobs.

      and not calculus IV obscure algorithms, zxy-tree discrete unified field algorithm garbage we would not have this problem.

      Actually, all those things are part of colleges' job, not the preceding, at least in a Computer Science curriculum (well, probably not the things you actually name, but the actual mathematical and algorithm-related classes that lie behind your made-up names.)

      HR is convinced computer science is required for any I.T. job when in fact they do not teach practical skills outside of academia.

      Clearly, if HR doesn't know what degree or other qualifications are actually relevant to the jobs they are recruiting for, there is an education problem: and it lies completely with the people doing HR.

      Every other profession out there is trained at a university on how to do their job.

      Not even close, except, perhaps, for the professions which have actual professional degrees (Law, Medicine, etc.) and "professions" which have vocational degrees.

      HR is trained from a B.A. with a minor in H.R.

      Most people I've known in HR don't have a minor in HR.

      Many of them don't even have a B.A.

      Chemists are trained with a science degree in chemistry

      Which, incidentally, teaches them a lot of theory, and not most of the vocational things that working chemists do, which if they learn at university at all they do through (a) an on-campus job, or (b) optional internships. [At least, assuming that chemistry is anything like, say, biochemistry in that regard; that's the field where I've known more people going to school and working.)

      Its logical to assume HR thinks computer science teaches students how to be practical in business.

      The academic major that, at least notionally, teaches students how to be practical in business is called "Business", not "Computer Science". If graduates in the former discipline don't get business, that is a problem with their education. If graduates in the latter do not, that is a problem with expectations.

    4. Re:Companies Complaining by LaskoVortex · · Score: 1

      If colleges did their job and taught students business skills such as economics, accounting, project planning as well as professional programming skills such as object oriented programming, secure coding, MVC, three tier system design and SQL, and not calculus IV obscure algorithms, zxy-tree discrete unified field algorithm garbage we would not have this problem.

      Bjarne disagrees with you:

      For a shorter term solution to the lack of software developers, I think that companies could look closer to home. Too often they search for people based on a narrow model based on currently fashionable buzzwords. In doing so, they miss many experienced, well-educated developers. Given a bit of retraining â" or a bit more flexibility in the business â" and a bit of money, such people are available. In particular, many could be tempted back into programming â" their real love â" from management, sales, and other âoerelated fields.â This could be far cheaper than trying to hire or train lots of âoecheapâ programmers.

      --
      Just callin' it like I see it.
    5. Re:Companies Complaining by Tarwn · · Score: 1

      Looking at it from a different point of view, there are also degrees for Biology, Liberal Arts, etc, but I was still required to take a number of classes outside of CS in order to be "well-rounded". I would go so far as to say that a business class requirement would not be a bad replacement for one of the many electives that are required today.
      That and the couple I took were disturbingly easy :)

      --
      Whee signature.
  37. Re:He sure thinks a lot of himself by phyreskull · · Score: 5, Insightful

    Most of these topics can easily be researched and learned without a university.

    Yes, they can be researched - but, let's face it: most people either think it's beyond them, think they'll never need to know it, or are just too lazy. The ones who would research it themselves are likely to be the ones who are good anyway.

  38. Re:If they can't get a smart and social employee.. by genner · · Score: 5, Funny

    My production would definitely be down if I had a cheerleader.

    They have a pill for that now.

  39. Stroustrup Is a Has-Been... by Anonymous Coward · · Score: 0

    ...from the dinosaur age of Unix, Windows, Linux, Turing Machines, multithreading, C++, etc. All that antiquated stuff is on the way out. This is the 21st century, the age of parallel programming and multicore. The baby boomer generation have had their say and they got us into the current mess. They have run out of ideas because they're too old and set in their ways. Now it's time for a new generation of thinkers to have their turn at the helm. Their job is to abandon last century's failing paradigms and change computing for a new age. The revolution is still ahead of us.

    It's time for the old guard to retire and fade away.

  40. Salaries ARE low by Anonymous Coward · · Score: 2, Interesting

    I was a developer. Highly paid and with lots of stock options. I worked my ass off for years and years making double the average salary. I was on a plane to Japan more than a few times with less than 24 hours notice. "Employee of the year."

    I got tired of it and switched into systems design - technical architecture. My salary went down a little, but my work load became manageable again - 50 hours per week.

    I miss programming. It was enjoyable and gave me a feeling of accomplishment - every day. I'd return, but the salaries are half what I'm worth (IMHO). I'll stay in technical architecture for the higher salary, greater prestige and control and continue my work on outsourcing development where ever it is most efficient (generally, not India).

  41. Re:If they can't get a smart and social employee.. by QuasiEvil · · Score: 5, Funny

    Rosie O'Donnell will be cheering for you if you don't get back to work.

    Signed,
    Your Boss

  42. sour grapes about Java by peter303 · · Score: 1

    C++ is old and creaky. You have to work around its defects to properly abstract programming constructs. So someone invents a language you can be productive twice as quickly. That should be a huge advantage.

    1. Re:sour grapes about Java by OneSmartFellow · · Score: 1

      [INSERT LANGUAGE HERE] is old and creaky. You have to work around its defects to properly abstract programming constructs.

      There, fixed that for you.

  43. I also hate bad programmers by CrazyJim1 · · Score: 3, Interesting

    Bad programmers are why companies don't take a chance on good programmers. Many good programmers can't get a job because the HR department thinks you actually need experience in a specific set of software in order to be good at the job. Good programmers know they can pick up most any language and get cracking within a week or so. For me its:"Yeah I've coded since I've been able to type so over 10 years of basic followed by over 10 years of C/C++. A Carnegie Mellon degree in Scientific Computing. No experience, but I have coded several large projects at home." I applied to thousands of jobs on job boards, and I never cracked into the industry.

    1. Re:I also hate bad programmers by Anonymous Coward · · Score: 1, Informative

      Something else was wrong because the qualifications you describe sound idea for the entry level programmers hired at my company.

    2. Re:I also hate bad programmers by Anonymous Coward · · Score: 2, Informative

      Agreed. Odds are the GP probably has poor job search, interview, or people skills; then again, the GP could also be one of those self-taught programmers who think they're much better than they are. Having written lots of code is not on its own a guarantee that you have good software skills.

    3. Re:I also hate bad programmers by Anonymous Coward · · Score: 0

      Good programmers can always get jobs. I know - I've hired lots of them. You're either interviewing with the wrong company, can't communicate, or you're not as shit hot as you think you are.

    4. Re:I also hate bad programmers by vikstar · · Score: 1

      +. A Carnegie Mellon degree in Scientific Computing. No experience, but I have coded several large projects at home." I applied to thousands of jobs on job boards, and I never cracked into the industry.

      Ahh, scientific computing. Perhaps similar to?...

      With a degree in astrophysics, it was either join space pirate Zaphod or go back on the dole on Monday

      --
      The question of whether a computer can think is no more interesting than the question of whether a submarine can swim.
    5. Re:I also hate bad programmers by splutty · · Score: 1

      Also be very careful with not putting down *too* much experience.

      Yes, at one point or another I've done projects in 3 different types of Assembly, I've done Pascal, Basic, C, C++, Modula 2. I have 20 years experience in basic sh scripting, I've been an early adopter of Perl, etc, etc.

      You get the picture, I'm probably not that different from a lot of people here on Slashdot in that regard. But if you put all that on a resume in the US, the HR department will simply toss it out according to the "Yeah Right!" idea.

      So you need to tailor your resume to what a company 'expects' of you more than to show them what nifty things you can do.

      It's rather counter productive having to go through HR people that are absolutely clueless, and I'm glad I have a job where the 'HR people' are actually IT (I hate that term :) people themselves.

      --
      Coz eternity my friend, is a long *ing time.
    6. Re:I also hate bad programmers by gbjbaanb · · Score: 1

      realise that if none of the 'thousands' have hired you then you may not be a fabulous as you think you are. That will probably be the first step in getting a job.

      Experience does matter when interviewing, but its not much once you've actually got to the interview. Then you have to justify why you think you're good at what you do, experience just makes that part easier because you can point to projects you've worked on. In your case, you'll have to explain in detail why you think you're a good enough programmer to work for a company where you have to work on other people's code, old code that's "a bit" crufty, do what you're told within the procedures and standards the company uses.

      Most people who come to interview, say "I'm the best, I wrote a program that had 1000 lines of code in it", then sh*t themselves when they see a real 10 million LOC enterprise app that's evolved over the last ten years. Being able to learn a new language is a very minor part of the job.

    7. Re:I also hate bad programmers by ClosedSource · · Score: 1

      "Good programmers can always get jobs. I know - I've hired lots of them."

      Assuming you're correct in your evaluation of your staff's skill, how does the fact that you've hired good people prove that "good programmers can always get jobs"?

      I can pick good apples at the supermarket, does that prove that all the good apples get sold?

    8. Re:I also hate bad programmers by Anonymous Coward · · Score: 0

      Stop bitching and moaning - be a developer and find a solution. You need to work out what *you* are doing wrong rather than what *they* are doing wrong. Why do you blame others when you have the opportunity to work out how to game "the system", or how to do an end-run around "the system".

       

      Bad programmers are why companies don't take a chance on good programmers.

      [citation needed]

       

      Many good programmers can't get a job because the HR department thinks you actually need experience in a specific set of software in order to be good at the job.

      A programmer that makes illogical statements would not be my kind of hire.

      Some (mostly larger) companies have HR departments that will weed out CVs without the right buzzwords. Some companies have no HR department. Blaming the HR department is your problem, not theirs.

       

      Good programmers know they can pick up most any language and get cracking within a week or so.

      Bad programmers think this too.

      And you are 100% wrong. Although one may "learn" a language in a week, one is employed to use the libraries, methodologies, environment and tools *implied* by experience with a language. One doesn't learn all of that in a week.

      If you can be productive in a week, then find a small development team that is cashed up, and give them two weeks work for free. If you can show them you are productive and you fit in then you will get a job.

       

      For me its:"Yeah I've coded since I've been able to type so over 10 years of basic followed by over 10 years of C/C++. A Carnegie Mellon degree in Scientific Computing. No experience, but I have coded several large projects at home."

      The key is: what makes you different from the other ten prospects who say the same thing?

      Also you seem to have trouble writing a sentence - perhaps work on that too.

       

      I applied to thousands of jobs on job boards, and I never cracked into the industry.

      You say you are a flexible programmer, yet it sounds like you have failed to be flexible in how you apply for jobs.

      I suggest you humbly ask for help from friends and family and acquantances for advice on getting a job. Pick people that obtain jobs using techniques you don't understand or don't use, and learn from them. Pick people that are not programmers - the important advice is not specific to the industry. Your granddad might have some excellent advice. Be humble, be respectful, and really make an effort to understand advice and avoid making excuses. Most people love to help others, so long as they actually want to be helped. I have just spent some of my life trying to help you because I empathise with your position, and I have learned from some of my own mistakes.

      All the best.

  44. Hypocrit by CSfreakazoid · · Score: 2, Interesting

    Having taken a class from him, I cannot honestly respect any feelings he has about education. The man is hands down the worst professors I have ever had, He has no concept of teaching, he rather just rambles in class and expects the students to know everything. In a intro level CS class, he expected every student to be proficient in C++, event though in Texas, the high school CS curriculum is entirely JAVA (which isnt a good thing, but it is the way it is). While I agree with what he says, I do not support him even talking about education. If he were not the creator of C++ he would not have a job in Acedamia.

    1. Re:Hypocrit by Anonymous Coward · · Score: 1, Informative

      I was also in one of those classes. I learned a lot because I programmed a lot. I suspect you were one of the [unfortunately many] students who couldn't get past the fact that it was a 1 hour course. Yeah, so? It's not exactly MIT, you've got some to spare. Play less WoW (or was it CounterStrike at the time...?)

    2. Re:Hypocrit by Zapo_Verde · · Score: 1

      Before switching to EE, I spent a year as a CS major, and I found that all the CS profs were pretty tiresome teachers. I remember waking up during a lecture, and counting only 5 awake people in the class. The profs are all legendary programmers, but they sure seem to have a hard time relating to the students.

  45. Joe the computer programmer. by theturtlemoves · · Score: 1

    Incidentally, I find it appalling that you can become a programmer with less training than it takes to become a plumber.

    Clearly the Republicans were aiming for the wrong demographic.

    --
    Empires grow and crumble, and the Turtle Moves. Gods come and go, and still the Turtle Moves. The Turtle Moves.
  46. Old bloke, out of touch. my 3 quotes by A+Pressbutton · · Score: 2, Interesting


    There is more java about than c++ because it is easier to teach.

    System development and construction are not similar disciplines.

    Programming and Plumbing are similar in that they both start with P.

  47. Re:He sure thinks a lot of himself by Rakishi · · Score: 2, Insightful

    Programming languages? Ha ha ha ha. I don't think my university bothered to teach any programming languages outside the first couple of intro courses (even then it was geared more at fundamentals). In some classes we were expected to learn whatever language the class required on our own and be able to use by the time the first assignment was due. Most classes didn't even care what you coded in as long as a TA knew it (if you wanted partial credit). Granted most of my classmates had aspiration higher than being code monkeys for the rest of their lives.

  48. Re:He sure thinks a lot of himself by CorporateSuit · · Score: 2, Funny

    Someone can learn the basics of a lot of programming languages, but not know the fundamentals well. What a university should provide is a solid foundation.

    Quite the opposite. You can learn a solid foundation in highschool or on your own -- or even in a 101 course. Universities already teach foundations -- in fact, that's all they teach, and that's why CS programs are complete and utter failures. You should be expected to study the very low-level basics of electrical engineering. You should be expected to study how to write OS's and rendering programs. You should be able to put graduates in a room with a spec sheet and a computer, expect them to tell you what information is missing or volatile on the spec sheet, tell you how long it will take them, and what language they would be most comfortable using to write the program, and they should be able to write it on the provided computer without downloading any additional programs.

    Current CS grads do nothing but complain (none of this code looks like it was written by the book!), stumble into pitfalls of hubris (Sure I can have that ready by noon tomorrow!), download as much slugware onto their workstations as possible (it's an additional backup software that we used in my database relationships course!) and give up if they hit a wall (teacher... I mean, manager, you ask the impossible! the textbook answer wasn't the right answer!) -- all problems that a highschool dropout can walk around with a blindfold on if he's actually been working for 2 years instead of going to school for 4. You tell me we're getting a kid fresh out of school and I kiss goodbye to the next month of productivity.

    --
    I am the richest astronaut ever to win the superbowl.
  49. The problem... by tthomas48 · · Score: 1

    Universities are supposed to be for higher level learning. They're supposed to teach students how to think. If anything the problem is that we have too many people who think degree = job. Are you telling me that mechanical engineers are coming out of school ready to hop into a job where they take something from design through manufacturing? Of course not. Companies hire junior engineers who learn from senior engineers. I've talked to engineers in pretty much every field who talk about the day that they where surprised by actually using something they learned in school. Most of engineering is learning your domain and the specifics of it on the job.

    Companies don't want vocational level students. There are plenty of those and most of the jobs have been outsourced. They essentially want Senior Engineers on day one. Since they can outsource junior engineers they don't hire any, and then they wonder why there aren't more senior engineers.

    And then we have the place where CS is different. Thanks to Open Source and the Internet, companies can luck into hiring new Senior Engineers without any formal training. The kids they want to hire are going to have been working on open source projects in high school and college, and by working with Senior Developers online, they're going to be far better than anything a college can put out. I can't think of another field where you can hire a Senior (or at least mid-range) employee with no formal work experience.

    I think there are two pretty easy ways to fix this.

    1) Universities shouldn't become more vocational, but they should have a framework for practical work. Think about fine arts majors. Generally they have frequent recitals/performances/showings. They work with other students and faculty sponsors to work on their craft. There should be practicum classes where students work in groups to create specs, design, and implement programs. Theater majors don't take "Playing the Character Stanley in 'A Streetcar Named Desire' 101". It's expected that they can take abstract technique from an acting class and apply it to any character on stage. By the same token students should be expected to take theory from their programming classes and use it to program in an actual language. We don't need "Java Programming for the Banking Industry 101".

    2) Corporations need to take some responsibility. In the 1960s companies were more local and so they took more of an active role in their towns. They wanted their schools to be good so they'd have good employees. They wanted to have as many well paid employees as possible so there would be more people to buy their products. There was the idea that being good to your employees was good for your business. Corporations need to get back to this. They need to realize that if they want to have really good Senior Developers, they need to put programs in place to mentor and train them. Sure a school can teach students not to use global variables, but best practices for the banking industry? Or the insurance industry? Take some responsibility for creating the workers you need. Very few people are going to research how to do multi-level transactions for fun.

  50. Computer science maybe the culprit by Billly+Gates · · Score: 1

    I am not a genius in Calculus which is why I am not majoring in computer science. I am good at Algebra but Precalc was the limit to what I could endure in college and had to change majors.

    I am sure I am not the only geek here who loves science, business, and philosphy courses but could not give a damn about non practical engineering courses and still have years of experience in I.T. I know what an o^2 algorithm or a linear search routine is to cut down on the number of calculations to solve a problem in code but computer science is not practical as its overly blown to an extreme.

    The reason I am talking about this (it may appear offtopic) is because H.R. requires a computer science degree regardless of experience in this day and age after the .com crash and still have not readjusted their qualifications when the labor market shortened again.

    Sure they want programmers to work for peanuts but they are filtering out a good number of candidates in the process and then they outsource to India because they can not find any qualifed candidates here in the States or in Canada.

    Bjarne Stroustrup is correct in that Business skills are not taught nor valued in computer science today. Sure its a science go to Devry if you want programming! ... bla bla that I read here.

    Truth to be told I learned more taking economics, marketing, human resources, accounting, and finance about what customers needs are and how computers fit in more than what any computer science degree can teach.

    Most of today's grads are clueless and I think Human Resource managers are as well as they assume computer science is about programming and business just like Business administration with an emphasis on HR is about job training for their jobs.

    1. Re:Computer science maybe the culprit by deKernel · · Score: 2, Interesting

      Not sure if this helps or hurts, but here is why I mainly only hire developers with degrees: it shows dedication. It might not be the best practice, but being able to "stick it out" shows me that you have the tenacity to stay with a problem and find ways around your shortcomings to succeed because many times, a project throws you in situations where your education will let you down, but you still need to succeed.

      Please note that I said "mainly" because I do realize that there people that do not fit in the normal mold, but they are found very quickly usually through references from friends/family in the field.

    2. Re:Computer science maybe the culprit by Billly+Gates · · Score: 1

      I am about to get mine in business administration but used to do systems administration.

      I have learned a ton with this particular degree on economics, marketing, supply chain management, as well as how computers fit in with all of this professionally and what customers want. My gripe is that universities may need to treat computer science more as a profession with business courses that are practical and that good people are filtering it out. Also SQL, MVC, and other things need to be taught at a university as well as they are needed for any serious project at work.

      Bjarne Stroustrup is correct in this regard to education and how employers are not happy. I agree a degree does show intelligence and dedication.

    3. Re:Computer science maybe the culprit by russotto · · Score: 1

      Truth to be told I learned more taking economics, marketing, human resources, accounting, and finance about what customers needs are and how computers fit in more than what any computer science degree can teach.

      Great. So you're perfectly qualified to be the PHB that your employees hold in contempt.

    4. Re:Computer science maybe the culprit by Daniel+Dvorkin · · Score: 1

      I am not a genius in Calculus which is why I am not majoring in computer science. I am good at Algebra but Precalc was the limit to what I could endure in college and had to change majors. ... I know what an o^2 algorithm or a linear search routine is to cut down on the number of calculations to solve a problem in code

      You are either selling yourself short on math skills, or (more likely) you don't understand algorithms nearly as well as you think you do. You don't have to be a "genius in Calculus" to get through the required math track for a typical CS degree (usually Calc I and II, discrete math, and linear algebra.) You just have to be reasonably intelligent and hard-working. People who wail that "math is haaard!" simply do not have what it takes to understand the applied mathematics that goes into good algorithm design ... and the fact that so many of them end up as programmers anyway is a major reason why there's so much slow, bloated code out there making everyone who uses it miserable.

      --
      The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
    5. Re:Computer science maybe the culprit by Daniel+Dvorkin · · Score: 1

      Great. So you're perfectly qualified to be the PHB that your employees hold in contempt.

      Oh, bravo! Well said.

      --
      The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
    6. Re:Computer science maybe the culprit by Anonymous Coward · · Score: 0

      You don't have to be a "genius in Calculus" to get through the required math track for a typical CS degree (usually Calc I and II, discrete math, and linear algebra.) You just have to be reasonably intelligent and hard-working.

      It depends on the institution. Some require Calc I through III, DiffEq I & II, Discrete & Combinatorial Math, Linear Algebra I (sometimes I & II), Abstract Math, and Numerical Analysis (although usually just the "intro" course), but maybe that isn't typical. I could only compare the experiences of high school friends who went to different colleges which all had an engineering or math focus (at mine, math and CS were unified in one department). Also, the rigor varies; I met a guy who had taken DiffEq, yet claimed they had never covered Laplace transforms.

      - T

  51. Bad CS Teachers by Austin+Milbarge · · Score: 1

    I've been developing for the past 11+ years now and I've taught a few C/C++ courses along the way so I thought I'd throw my two cents in.

    Now, I hate to say this but some of the curricula offered at some of these colleges are a sick joke! Is it me or do mathematics professors make bad computer programming instructors? Unfortunately, some of these fine institutions are too cheap to hire a separate computer programming instructor who is actually up to date with the rest of society and who has received the news that Java is no longer state-of-the-art.

    I also think that these teachers are WAY too quick to rush into Object Oriented Programming (again because it's so "**state-of-the-art**") and not solidify the basics "like what a function is" or "what a variable is", etc. You would be amazed at how many students I've tutored where the teacher is explaining virtual function pointers and still 90% of the class still doesn't know how to pass an integer to a function!

    1. Re:Bad CS Teachers by andhow · · Score: 1

      You would be amazed at how many students I've tutored where the teacher is explaining virtual function pointers and still 90% of the class still doesn't know how to pass an integer to a function!

      Wow, they must really be in a hurry, forcing them to combine functions pointers and virtual functions into a single concept!

    2. Re:Bad CS Teachers by Austin+Milbarge · · Score: 1

      Just yesterday I was tutoring a student and he has never even seen a switch statement, never heard of new and delete, never heard of an enumeration and never knew how to pass a variable to a function by reference. This is his first course in C++. Yet the course has ended and the next course that follows in the spring starts with teaching const member functions! Have you ever heard of such crap in your life?

      Talk about teaching bad code design... The teacher insists that the students call exit(1) in all their functions when the user inputs an incorrect value from the keyboard. As apposed to prompting the user and asking to try again.

      Seriously... I'd love to meet this teacher and ask her how much programming in C++ she has done professionally.

      By the way, this is supposed to be a very prestigious school in Westchester County New York. Then we all wonder why companies hire programmers from Israel and India.

  52. Re:Looking for programmers in their natural habita by Anonymous Coward · · Score: 0

    Armani suits and martinis get girls. White lab coats and god-like attitudes get girls. Fat and pizza boxes do not. Coincidence? I think not.

  53. Re:He sure thinks a lot of himself by ld+a,b · · Score: 3, Insightful

    And what makes you think that it will be different if they do study? They will be on full auto mode, study the bare minimum and get the degree.
    In the case of CS there really isn't a difference between self-taught and degree holders, and the "good" degree holders likely knew most everything before starting the degree.
    My fellow CS students could be classified in two groups: OMG-I-think-I-Have-An-Algorithm-In-My-Program, and I-Write-Artificial-Neural-Networks-For-Fun.

    --
    10 little-endian boys went out to dine, a big-endian carp ate one, and then there were -246.
  54. Shut up, Bjarne by Anonymous Coward · · Score: 0

    Apologies in advance to those of you who are offended by this, but I don't really care what Bjarne Stroustrup has to say anymore. There are hundreds of thousands of developers and development teams figuring out how to write software just fine without him. Can't we all just forget about the great strides he made in screwing C up and move on?

  55. Why CS sucked for me by caywen · · Score: 1

    I've had many different instructors and professors who all taught a bit differently. I remember my CS class, where the TA (likely just following the prof's program) gave us a "middleware" OS, and we essentially had to provide the guts to execute different pre-written programs. That sucked. I left not understanding OS's. Another professor threw compiler theory (the dragon book) at us, and asked us to write a Pascal compiler. I didn't get it (probably because I'm stupider than your average CS student). What would have helped (in the case of the compilers class) is to have us newbies who just learned C write some simple parsers. Then, have us write some basic assembly programs (or MIX, or some byte code). Then, write a more complicated parser - aha! so THAT's why lex/yacc is cool. Then, have us write some assembly, and then more complicated assembly programs. Then, generate assembly from a simple language - aha! that's why we push stuff on a stack, that's why we have return addresses, etc... I think the most effective teachers will understand how their slower newbie students think instead of that grad student trying to fill in some lost undergrad credits. That said, another good way teach is to challenge students and provide the materials and support to let them succeed. My graphics professor gave us a picture of psychidelic mirrored spheres and told us, "write a program that generates this." Man, I had no idea, but I sure wanted to do it, and I did the research, and I didn't fail. Much better than, "here's paragraphs of arcane terms and strange symbols - figure it out or drop out."

    1. Re:Why CS sucked for me by grimw · · Score: 1

      I think you just needed more discrete mathematics and more combinatorics and graph theory. Then the compiler course would've made a lot more sense up front when learning about recursive-descent parsers vs. LL(k) parsers vs. LR/LALR parsers and where the strength of each one lies, how it's making your life easier/harder, etc. I did that middleware OS stuff you mentioned though, and I have to agree that it was sometimes pretty useless. Working directly with, say, a Linux, FreeBSD, or Minix kernel+OS would've gone a lot further and made you feel like you were accomplishing something that could immediately be put to use. I agree with the idea of pushing/encouraging your students to learn research on their own and to learn how to WANT to research. Bjarne was also advocating that in the summary (I didn't read TFA), and I think it's the most important step to teaching.

  56. Programming vs. Software Design by Khopesh · · Score: 2, Interesting

    The big problem with most Computer Science bachelors' programs out there is that they make sure students are well equipped to deal with the hot language of the times (often n-1 due to the slowness of curriculum design). This is currently Java. This ensures graduates can go and get jobs in the industry and make money. However, when that language dies out and is replaced by whatever is next (often C#, Ruby, JavaScript, or even C/C++ with GTK+ or Qt), the graduates don't know how to adapt. Why? They were taught everything they know in just one language, and the lessons were too entrenched in the specifics of that language. They weren't taught to learn, they were taught to code. This separates the good CS degrees from the bad ones.

    Until recently, MIT used a simplified version of scheme to teach its introduction course. The advantage to scheme was that it was mostly academic, and it was simple enough for the students to not get stuck on language-dependent structures (in fact, the course uses its own sub-language to further simplify things), plus it is VERY different from C/Java-style languages (scheme and lisp use prefix notation whereas C and Java use some informal mix of infix and prefix with ambiguous grouping rules). After that, it was on to Java.

    I hear they use python in that course nowadays. Not just python like scripters and web developers use it, but python because it is a simple and easily learned language for the purpose of teaching specific concepts. In fact, the curriculum of that introductory class leans heavily on electrical engineering principles; An article of The Tech from 2006 describes the new entry-level course as "designed to teach freshmen introductory electrical engineering and computer science in an integrated fashion using mobile robots as a case study."

    This pushes the idea of teaching the concepts rather than the language. A well-trained software engineer should be able to pick up a new language in short time, since all the abstract models are known quantities. The hurdles should be in learning or un-learning scrum, agile, and MVC rather than J2EE, Lua, and Qt.

    Proper instruction must be modeled after teaching flexibility and raw logic. Entry-level courses should include basic theory of computation (automata) and should focus heavily on discrete math and logic. Middle-level courses should include statistics, probability, object-oriented design, and should additionally build on the entry-level courses. Advanced level courses should include collaborative design and over-arching design principles like MVC and agile development. At least two different languages should be required by various courses, and the math courses should not use any industry-usable language at all (NFA is a language after all...). Companies tend to vastly prefer CS-Math dual-majors over other degrees because it shows you understand the data structures and algorithms; such a program can't just teach you a programming language and call it a degree.

    --
    Use my userscript to add story images to Slashdot. There's no going back.
    1. Re:Programming vs. Software Design by Shados · · Score: 1

      Your overall idea is good, however the details of it are just as bad as what you're complaining against.

      over-arching design principles like MVC and agile development

      Teaching someone with focus on MVC or Agile is just as bad as t eaching them Java or QT. They're particular implementations of abstract concepts. Agile or Scrum are project management methodologies. Teaching them in general is good, teaching a particular one is bad. MVC is one out of douzens of software/architectural design patterns. Its not even that good, and is mostly there because "its what people are taught in For Dummies book", and people without broader knowledge of software design and architecture ends up thinking its the end all be all, and get totally lost as soon as you introduce something different, as they can't tell the difference between an architectural pattern and MVC, as for them its one and the same (on these boards and other well known forums, you'll often hear people saying that its the "only" way).

      Your overall idea is still correct though, and used by many universities, though too many (including highly reputable ones) skip entirely on the software design/development aspect. Thus, what you said for entry and middle level courses is fine, for advanced I'd go with software engineering/conception/design/development in the broader sense, making sure the students understand that when you talk about MVC or Scrum, its just one way of doing or managing things among hundreds.

      Then, once the foundation is solid, have a course or two where students take two languages and push them to the max (so they can see that the language you pick matter, and that while the basics are the same, software development will differ greatly), and make sure they understand that the mechanism to learn future ecosystems is the same, but you always have to remember the base concepts, and make sure you understand the limits of the environment.

      Finally, I'd like to point out that "companies don't vastly prefer CS-Math dual majors". Some do, it depends on the kind of company. If you're going to work for Intel, Nvidia or Google, maybe. After all, you'll be implementing theoritical algorythms all day long, unless you work on the tool and API aspects. If you work for non-IT related businesses (the vast majority), their requirements tend to be far more pragmatic. Many (no generalization) will prefer software engineering degrees that follow what they do. Those degrees are extremely rare, since all of the top universities go the "Science" route. Many will even have to dip at other countries once the pool of software engineer (real ones) dried up on their side of the border. All the CS and Maths in the world doesn't help you make a functional UI, after all.

    2. Re:Programming vs. Software Design by LionMage · · Score: 1

      I'm saddened and shocked by this news. I took 6.001 as an elective (I was a physics major, and decided to stick with physics to finish out my undergrad career). In fact, I had Hal Abelson and Gerry Sussman as my professors for the class, which was totally awesome.

      It seems 6.001 is being replaced by 6.00, 6.01, and 6.02; Scheme is, as you say, being replaced with Python... which IMHO is a poor choice to replace Scheme, if for no other reason than it forces you to care about consistent indentation. (Then again, Scheme is pretty ruthless about balanced parentheses, so I guess you can't completely get away from syntax stupidity. That said, parentheses and prefix notation are about the only bits of Scheme syntax you need to even learn, which is why it only took us 10-15 minutes of the first class to cover the basics of the language.)

      I found this article which details this transition in some depth. It looks as though even Gerry Sussman knew that 6.001 was not long for this world, and needed to be replaced... but at least he taught the last class. The article says some people really dislike the new curriculum, and I can see why. I'm not throwing out my SICP book any time soon! I fail to see how the same material can be taught as effectively with the new curriculum and the new tools, at least from a theory standpoint.

      I'm sure playing with robots controlled by Python is fun, though.

  57. I resemble that remark by billcopc · · Score: 1

    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

    Um, fuck you buddy! I'm quite proud about not being a confirmist monkey. Us sloppy fat geeks are the ones who embrace new tech and make it do neat tricks, and ultimately that's what kickstarts interest in all things technical. It's the wackos that dig up all the fun stuff.

    Thanks for the unusable kludge that is C++, but please go back to your Smalltalk fan club and stay there.

    --
    -Billco, Fnarg.com
    1. Re:I resemble that remark by ttsalo · · Score: 1

      Um, fuck you buddy! I'm quite proud about not being a confirmist monkey. Us sloppy fat geeks are the ones who embrace new tech and make it do neat tricks, and ultimately that's what kickstarts interest in all things technical. It's the wackos that dig up all the fun stuff.

      "Embracing new tech" is the sorriest excuse in the world for being sloppy and fat. You can be clean and fit and still do neat tricks with new tech, you know.

      --
      If the road to hell is paved with good intentions, where does the road paved with evil intentions lead to?
    2. Re:I resemble that remark by billcopc · · Score: 1

      LIES!

      Clean and fit people are too busy having sex (with other people). They don't have any time to play with tech :P

      --
      -Billco, Fnarg.com
  58. Getting paid to hit a white ball by jasonmanley · · Score: 1

    I remember watching a show on television about doctor's salaries. One of the MD Union guys said, "Hey we pay athletes millions of dollars to hit a small white ball around, so paying 100K for a life saving operation shouldn't be too ridiculous." what's my point? Well, it all comes down to "money". I used to think that those "Learn to program in 24 Hours" books were the worst thing that could have happened to our industry because it has allowed "cowboys" to enter the business and run-a-muck (you wouldn't build a house after reading a "Learn to build a house in 24 hrs" book right?). But then I remembered how I have used short articles and "dummies" books to quickly stick something together to meet a need or a deadline - and I had to because of MONEY!!! Employers have deadlines and need results and they push us to "whip something together". They are not academic institutes that care about the protocol for SOAP etc they just want you to link to that server and grab that info. It seems to me that there is a place for the "technician" and the "academic" in this world. In my experience it has only been with the advent of "architects" that more time and money is spent on proper planning, design etc. I think that it is a good development for the industry and I hope to see more of it, but no matter how much academics jump up and down and rant about this stuff - if there is no buy-in from the business side nothing is going to change. And as long as they can make a buck off of quick-fixes there will be no buy-in.

    --
    http://projectleader.wordpress.com
  59. White & Nerdy by Anonymous Coward · · Score: 0

    He's nerdy in the extreme, whiter than sour cream.

  60. Re:He sure thinks a lot of himself by Anonymous Coward · · Score: 0

    Well, just about anything can be learned without going to a university. The question is, will someone let you perform brain surgery without a degree? The only reason it works with programming is that producing examples for a portfolio will not kill anyone or cause a meltdown.

  61. Not here, no way, not ever. by Duncan3 · · Score: 1

    There will never be any Software Engineering taught in a CS dept. No way would a Computer Science professor EVER teach such a base, primitive, and unrefined subject such as those dregs in engineering do. Let the $10/hr guys in India do that. Writing code, how insulting!

    So... that about sums that up doesn't it. Here anyway, the Software Engineering course is out of I think the Mechanical Engineering department. No CS major would be caught dead taking it tho - it involves teams ;)

    Modern Software engineering has NOTHING to do with CS. Once you realize that, you're 99% of the way there. Some colleges now have Software Engineering departments. Hire those students or just an engineer that knows the problem domain, and teach them to code.

    --
    - Adam L. Beberg - The Cosm Project - http://www.mithral.com/
    1. Re:Not here, no way, not ever. by Shaterri · · Score: 1

      Modern Software engineering has NOTHING to do with CS. Once you realize that, you're 99% of the way there. Some colleges now have Software Engineering departments. Hire those students or just an engineer that knows the problem domain, and teach them to code.

      Nonsense. The non-software side of software engineering -- project planning, development methodologies and the like -- may be divorced from Computer Science, but modern CS has a deep and lengthy relationship with modern programming practice and software design. Formal correctness principles (and proofs!) inspire type-safety, functors/functionals come from recursion theory (with a small splash of category theory), generic programming also has deep roots in category theory and denotational semantics... and that's without ever getting into the algorithms that are still at the heart of modern software. All the finest engineering principles still wouldn't have produced something like PageRank without developers who had an intimate knowledge of Linear Algebra and Markov Theory.

  62. Strostrup is the problem by Animats · · Score: 5, Insightful

    It's amusing seeing Strostrup whining that schools are teaching Java instead of his C++. The problem with C++ is Strostrup. He's in denial about many of the fundamental problems of C++. He's publicly stated that there's nothing major wrong with C++. If that was the case, we wouldn't need Java and C#, which are, after all, attempts to improve on C++.

    Down at the bottom, the fundamental problem with C and C++ is the "pointer=array" concept. That was OK for 1978, but it didn't scale well. It's the cause of most of the buffer overflows in the world. C and C++ don't even have syntax for properly talking about the size of an array parameter. That's just broken. C and C++ need something like conformant array syntax for parameters and in other contexts where one needs to talk about the size of an array.

    The second fundamental problem with C and C++ is that the programmer must obsess on "who owns what", and the language not only doesn't provide help with this, it doesn't even have syntax for talking about it. There's no distinction between a pointer that "owns" an object and one that just "uses" it. Yet if the programmer doesn't carefully make that distinction, the program will have either memory leaks or dangling pointers.

    The trend in C++, since templates went in, is to try to wallpaper over the problems with the underlying model. It never quite works; the mold always seeps through the wallpaper. Container classes almost, but not quite, succeed at encapsulation. There's almost always some place where a raw pointer has to be allowed to leak out. The standards committee has gone off on a "generic programming" tangent, with emphasis on weird template features used by few and used correctly by fewer. Just because you can abuse the C++ template system as a term-rewriting engine doesn't mean you should do that in production code. This results in a whole new class of incredibly obscure compile-time bugs. The standards committee has been thrashing for over a decade in this area; in the 1990s, the new version was to be "C++9x"; now it's "C++0x", and since we're close to 2009 already, "C++1x" looks like the reality.

    C++ is the only major language to have hiding ("abstraction") without memory safety. No previous language had it, and no later language repeats that mistake.

    Back around 2001, I made an effort to do something about it, but the political hassle was more than I had time for.

    1. Re:Strostrup is the problem by johanatan · · Score: 2, Insightful

      If you're using C++ in such a way that 'pointer==array' matters, you are not using it correctly. C++ has STL & boost/TR1 to provide the standard data structures, smart pointers (C#/Java references) and algorithms you want.

      Also, if you really want managed memory,, there are GC implementations for C++.

    2. Re:Strostrup is the problem by Anonymous Coward · · Score: 3, Insightful

      C++ is designed for programming at a lower level than Java, C#, Perl, Python, or other bytecode languages. The object-oriented facilities enable large-scale application development by a team of programmers, but fundamentally it is a low-level language like 'C', from which it is derived.

      If you were writing a video game, you might care if the garbage collector could start running whenever you instantiated an object.

      C++ has facilities such as exception handling and RTTI, but in practice they aren't used with the same abandon as they are in Java and C#. Maybe that's because C++ programmers are always cognizant about how much operations cost, and they often figure they can design roughly equivalent error handling and safe downcasts on an ad hoc basis, with better performance. Ditto for automated array bounds checking, which could be accomplished in C++ (like many other things) via templated classes, but which usually isn't bothered with. True, this requires more vigilance on the part of the development team.

      Management of heap-allocated objects to avoid memory leaks and other disasters can be accomplished using smart pointers, which are covered in many intermediate-level C++ books.

      Perhaps Stroustrup is lamenting a situation where CS grads steeply trained in Java or C# may not come away with a good mental model of the (virtual) machine on which their code is running; they just know that they don't have to worry too much about memory leaks, array indexing errors, bad casts, etc. I happen to agree that a near-exclusive diet (perhaps with one semester of assembly language) of these bytecode languages would be poor training for a computer scientist. This would be like a doctor who was thoroughly trained in the latest techniques and procedures, but who lacked a grasp of the fundamentals of chemistry and biology.

    3. Re:Strostrup is the problem by andhow · · Score: 1

      If that was the case, we wouldn't need Java and C#

      Right, because Java and C# are new and improved systems programming languages. Don't say Singularity.

      Down at the bottom, the fundamental problem with C and C++ is the "pointer=array" concept.

      Of course, how stupid of them! All this work trying to support user-defined abstractions for systems programming and the problem was a tiny typing rule the whole time!!! Let me guess, the root of all Java's problems is the covariant array subtyping problem? The same with covariant argument subtyping in Eiffel too?

      Perhaps you mean the ability to look at memory as a sequence of bytes... except that that's just a little bit fundamental to systems programming. So you think that the millions of lines of BIOSes, kernels, device drivers, and ROMs should be written in assembly? Trust me, although the specific memory models will change over time (certainly away from UMA), as long as there is systems programming, there will always be a high-level language (in the old meaning of the word) that takes you to the metal. Although clearly we shouldn't be using it to write e-Commerce apps, educational software, internal IT apps, and whatever you do.

    4. Re:Strostrup is the problem by Animats · · Score: 1

      If you're using C++ in such a way that 'pointer==array' matters, you are not using it correctly. C++ has STL & boost/TR1 to provide the standard data structures, smart pointers (C#/Java references) and algorithms you want.

      Right. That's the wallpaper over the mold. The C arrays are still there, underneath, and you'll often need them for system calls and I/O. The smart pointer stuff is never airtight, because raw pointers seep out. "auto_ptr" went through about four iterations in the standard, and it still sucked. "auto_ptr" objects also have strange destructive assignment semantics. Reference counted memory allocation is a good idea, but the "smart pointer" systems in C++ never seem to become immune to problems. In Perl and Python, that stuff just works, but bolting it on via templates just doesn't cut it.

      Also, if you really want managed memory,, there are GC implementations for C++.

      Garbage collection and destructors do not play well together. Microsoft tried really hard to make that work in their "Managed C++", and it was a horror. It's possible in "Managed C++" for a destructor to be called more than once.

    5. Re:Strostrup is the problem by johanatan · · Score: 1

      Yes, there has been a bit of a fiasco about smart ptrs, but boost has essentially perfected it (and it has become standardized).

      I think that with C++ you really have to consider the library part of the language (and that includes boost and TR1). Yes, it's not perfect, but it is much more powerful [in some ways] than most other languages (and a lot closer to the metal). With templates, meta-templates & lambdas/closures, C++ has, in my opinion, become as good of a generic programming language as the functional languages (it has a little more syntax to deal with, but that's a small price to pay for efficiency if you need it) [and some people claim that the extra syntax makes it easier to maintain too because you can jump right into any context and get your bearings pretty quickly].

      With all languages, there are upsides and downsides--there's no silver bullet.

    6. Re:Strostrup is the problem by Anonymous Coward · · Score: 0

      C++ does indeed have "syntax for properly talking about the size of an array". You use vector instead of the array. Array is in c++ for two reasons (only), raw performance and compatibility. It's an exception to need array instead of vector, not a rule.

      There is also a distinction between a pointer that owns an object and one that just uses it. auto_ptr, shared_ptr and "raw" pointer are all different in that sense.

      It's hard to see what your complaining about, exactly. :)

    7. Re:Strostrup is the problem by vikstar · · Score: 1

      Even if you don't use the powerfully unnecessary elements of C++, it is still a pain to use with all the header files and #define etc. Header files were good back in the day with slow computers, but these days we have IDEs that compile as you type and you can get a header-file-like overview of your classes in real-time.

      --
      The question of whether a computer can think is no more interesting than the question of whether a submarine can swim.
    8. Re:Strostrup is the problem by Richard+W.M.+Jones · · Score: 1

      Actually, reference-counted memory allocations are a terrible idea. Reference counting is the slow child of the garbage collection family - inefficient, and very intrusive. Once everything is ref-counted you might as well speed things up by using real GC.

      Rich.

    9. Re:Strostrup is the problem by jonaskoelker · · Score: 1

      [arrays]

      Use vectors.

      [pointer ownership]

      Use references. Use refcounting smart pointers. Use objects that free their pointers when they die.

      [memory safety]

      Actually, the biggest problem with C++ and memory management is exceptions. I'm not sure exactly what you mean by "hiding (\"abstraction\")" in the context of memory management. Also, I'm not sure what you mean by the word "safety" in the context of memory.

    10. Re:Strostrup is the problem by shutdown+-p+now · · Score: 1

      and C++ don't even have syntax for properly talking about the size of an array parameter. That's just broken. C and C++ need something like conformant array syntax for parameters and in other contexts where one needs to talk about the size of an array.

      The problem is strictly that of C; C++ merely inherited it. That said, even with C-style arrays, you can enforce having to pass an array of a given size (and not just a random pointer) to a function:

      void foo(int (&array)[10]) { ... }

      int a1[10], a2[5], *a3;
      foo(a1); // okay
      foo(a2); // type mismatch
      foo(a3); // type mismatch

      Furthermore, you can ask to have an arbitary-sized array, and know it length, so long as it's compile-time constant:

      template <int N>
      void foo(int (&array)[N])
      {
      for (int i = 0; i < N; ++i) ...
      }

      int a[10];
      foo(a); // okay, template argument N is deduced to be 10 for the call

      Of course, these days you should really just be using std::vector for true dynamic arrays (when length is only known at run-time), and std::tr1::array for fixed-size arrays:

      void foo(std::tr1::array<int, 10> array) { ... }

      What's wrong with that?

      The trend in C++, since templates went in, is to try to wallpaper over the problems with the underlying model.

      Not really - it's to provide a safe library alternatives to unsafe C constructs. I don't see how it is in any way a bad thing, and it has been considered for a long time that library-based constructs are generally preferable to hardcoding things into the language itself (this was the idea behind CL macros, for one thing).

      Container classes almost, but not quite, succeed at encapsulation. There's almost always some place where a raw pointer has to be allowed to leak out.

      Care to give an example where an essential container API function leaks a pointer?

      This isn't to say there aren't any that provide pointers - basic_string::c_str() would be an obvious example - but they are specifically designed and designated as workarounds to use new containers when interop with "legacy" (read: C-style) code is needed. If you write all-new code, there are very few places where you need pointers today, and with the way unique_ptr and shared_ptr are extended in C++0x, you will not need pointers at all (and you will never, ever, have to write a plain "new", even if only in an argument to shared_ptr constructor).

      The standards committee has been thrashing for over a decade in this area; in the 1990s, the new version was to be "C++9x"; now it's "C++0x", and since we're close to 2009 already, "C++1x" looks like the reality.

      That just shows how familiar you are with the C++ standardization process. "C++9x" was successfully standardized as C++98, and there were no plans to have a second major revision done in the 90s. The next minor revision was C++03. The next major revision was C++0x for as long as it existed, and so far it's going on schedule to actually be true

      and C++ don't even have syntax for properly talking about the size of an array parameter. That's just broken. C and C++ need something like conformant array syntax for parameters and in other contexts where one needs to talk about the size of an array.

      The problem is strictly that of C; C++ merely inherited it. That said, even with C-style arrays, you can enforce having to pass an array of a given size (and not just a random pointer) to a function:

      void foo(int (&array)[10]) { ... }

      int a1[10], a2[5], *a3;

    11. Re:Strostrup is the problem by master_p · · Score: 1

      Although I agree with the general idea of your comment, I disagree in the specifics. Lots of problems you mention go away when you use specialized classes.

      For example, the problem 'pointer=array' can be alleviated by using special template classes (boost::array and std::vector for example).

      The problem of ownership goes away if one uses shared pointers. I had recently finished a product of 85,000 lines of code in c++, and did not have a single problem with pointers in those pieces of code that I could use shared pointers. Unfortunately, none of the libraries I used (Qt mainly) used shared pointers, and therefore there were some problems in the code that used the libraries.

      As for templates, I don't understand your complaints. The problem lies in the implementations, not in the specifications. The idea behind templates is a very solid one, and it is obvious due to the fact that many newer programming languages (C#, Java, D, etc) have some form of templates (Actually, D has the same template engine like c++).

      The real problem with c++ is in the libraries: no library uses the goodies c++ has to offer. For example, Qt does not use shared pointers and boost::signals. Each library (Qt, MFC, wxWidgets, etc) almost invents the standard and boost libraries all over again, resulting in a big mess when these libraries are combined.

    12. Re:Strostrup is the problem by Wonda · · Score: 1

      C++9x was released as C++98 in 1998 as the first C++ standard and they agreed on what will be in the C++0x standard a few months ago.

      so C++9x happened, and C++0x is about to happen, not sure what your rant on those was about.

      I too expect there to be a C++1x, but that'll just be the new standard, C++ isn't a dead language it still gets improvements.

    13. Re:Strostrup is the problem by Olivier+Galibert · · Score: 1

      The problem at least for Qt is that it existed before STL, and seriously before boost. And severely breaking compatibility between versions of a library is not nice.

          OG.

    14. Re:Strostrup is the problem by scruffy · · Score: 1

      Another issue is the near-incomprehensible make files that go with any serious C and C++ software. The complexity of the make files, include files, and #defines make for ugly and maintenance-resistant software, along with the buffer overruns, memory leaks, and pointer arithmetic.

  63. The power of denial... by FoboldFKY · · Score: 4, Funny

    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.

    Oh yeah?! Well, I don't believe in you, either!

    --
    We're geeks... We're the sorcerers of the modern-day world. --
  64. WTF has Bjarne Strouestrup ever done? by Anonymous Coward · · Score: 2, Interesting

    It apppalls me that Strouestrup is appalled that people can work as programmers without having had his University's darn supposedly valuable training. Whatever happened to the time-honoured tradition of a bright kid teaching themself assembler and networking and graphics in their bedroom? How many legendary micro programmers would have made their mark if they were forced to go through that lousy academic education process and pass their lousy applied-math exams (because that's what "computer science" is)? I never did like C++, I always thought the extra baggage just got in the way. I hereby accuse Strouestrup of foisting the whole O-O mess onto the C world. At a stroke thousands of top-notch C programmers were told they were 'out of date' by the HR department who wanted to replace them with the new cheap C++ grads. Then the C++ guys had it done to them when Java came along, then the Java guys with things like Ruby, PHP etc. As soon as I heard C++ acolytes talking breathlessly about "polymorphism" and "abstract base classes" I detected a strong smell of horse-shit. And look what a gargantuan mess they've made of C++ now! This is literally the language you will never stop learning. We are so lucky that C itself has remained largely uncontaminated by this disaster and we must fight to prevent any of that crap being transferred from C++ back into C. And as for industry: they are interested in just one thing; getting it done on the cheap, and paying people as little as possible, wherever they can find them in the world. Fuck 'em. So Bjarne Strouestrup, it's clear to me that you're well and truly serving your new masters at Texas A&M who are doubtless stuffing your fat arse with wonga. If you're so hot, why don't you go write some damn software in that crappy language of yours and show us what you can do? Don Knuth wrote Tex (major respect due); Larry wrote Perl and Patch; the awesome RMS wrote GCC, GDB, EMACS; Chuck Moore is the Forth-meister; hell, Bill Gates wrote MS BASIC (at least in part, in assembler); WTF has Bjarne Strouestrup ever done?

    1. Re:WTF has Bjarne Strouestrup ever done? by shutdown+-p+now · · Score: 1

      I never did like C++, I always thought the extra baggage just got in the way. I hereby accuse Strouestrup of foisting the whole O-O mess onto the C world. At a stroke thousands of top-notch C programmers were told they were 'out of date' by the HR department who wanted to replace them with the new cheap C++ grads. Then the C++ guys had it done to them when Java came along, then the Java guys with things like Ruby, PHP etc. As soon as I heard C++ acolytes talking breathlessly about "polymorphism" and "abstract base classes" I detected a strong smell of horse-shit. And look what a gargantuan mess they've made of C++ now! This is literally the language you will never stop learning. We are so lucky that C itself has remained largely uncontaminated by this disaster and we must fight to prevent any of that crap being transferred from C++ back into C. And as for industry: they are interested in just one thing; getting it done on the cheap, and paying people as little as possible, wherever they can find them in the world. Fuck 'em. So Bjarne Strouestrup, it's clear to me that you're well and truly serving your new masters at Texas A&M who are doubtless stuffing your fat arse with wonga.

      You sure are bitter. Lost your job 'cause you couldn't learn what a "class" is?

      Like it or not, but most desktop applications these days are written in C++, and not in C, for a reason. Same for games. And no, the reason is not a massive conspiracy against you and other losers who are too lazy to learn new things, whatever you may think.

  65. Too damn bad.... by stonewolf · · Score: 4, Insightful

    That the companies that are complaining about the poor training that new students are getting are not willing to hire older programmers who got exactly the kind training Bjarne is pushing for. Yeah, got exactly what he wants to put back into schools today, then we have tested it and developed it over decades of developing and shipping products. And there are hundreds of thousands of us out of work in the US.

    I've taught programming classes and have had the experience of having companies call asking for the names of students who did well in my classes. I have also had the experience of trying to apply for those jobs. I have told the companies that I will work for an entry level salary and since they trust me to do the training and evaluation of the students you would think was qualified...

    The best response was to be ignored, the worst was being laughed at.

    Fuck 'em all,

    Stonewolf

    1. Re:Too damn bad.... by Anonymous Coward · · Score: 0

      Maybe it's something other than skill and experience that is preventing you from getting the job...

    2. Re:Too damn bad.... by stonewolf · · Score: 1

      I get your implication that maybe I'm just not a good employee. If it were just me I would accept that suggestion as a possibility. Trouble is that there are literally hundreds of thousands of us out here. We aren't all assholes. Looking at history I see that this has happened to *every* generation of technical people since at least WWII. It is a repeating pattern, nothing new at all.

      And, then there is the fact that I have no trouble getting teaching jobs. I can manage a class room and get along with my current management who are all at least 20 years younger than I am. My students are happy with me, my management thinks I do a good job.

      So, how come I am qualified to teach programming, but not to *do* programming.

      Stonewolf

  66. What a bunch of bull pucky... by gsanson · · Score: 1

    What the hell are you all talking about? I have yet to find a "good" programmer. I've been doing software development for over 20 years and I can tell you most are either so full of themselves or can't communicate with any other living soul.
    I write software only because it's easy for me whereas most all others I have to work/deal with struggle to make a reasonable recursive function let alone understand business or scientific logic. It is generally a piece of cake for me but then again I have an education in engineering AND computer science.
    There is something to say for motivation, or lack there of, by management. They don't want to rock the boat so they let the mediocre stay in the mix and bring the entire quality down.

  67. Re:He sure thinks a lot of himself by lgw · · Score: 3, Interesting

    You should be expected to study how to write OS's and rendering programs. You should be able to put graduates in a room with a spec sheet and a computer, expect them to tell you what information is missing or volatile on the spec sheet, tell you how long it will take them, and what language they would be most comfortable using to write the program, and they should be able to write it on the provided computer without downloading any additional programs.

    I disagree with all of this. Estimating completion time comes from industry experience, not training. What does "volatile information on a spec sheet" even mean? Are you talking about figuring out what requirements in a requirements doc are likely to be changed mid-project? That's a valuable skil, for sure, but agian that comes from years of industry experience.

    And as for writing a (non-trivial) program without downloading additional software: half the programmers I know would walk out if asked to use anything but VI to code, and the other half would walk out if forced to use VI. Programmers develop attachments to tools, and I'm not sure what you'r trying to accomplish by asking people to not use the tools they're comfortable with.

    Just in general, the ability to keep going if the "hit a wall" is almost the *definition* of a senior programmer. The more unusual the issue you can work around without help, the more senior you are (Well, for the first few years, anyhow).

    There are many legitimate complaints about CompSci programs today, but it seems like *you* just hate mentoring junior programmers. These aren't problems that a school will fix, these are problems that real-world experience fixes. There's a reason why your second real devlepment job (normally) pays a lot more than your first!

    --
    Socialism: a lie told by totalitarians and believed by fools.
  68. Here we go again with the myth by plopez · · Score: 2, Insightful

    The old "there a shortage of skilled labor" myth.

    First off, all we have is the anecdotal exposition of one person.

    See my other posts on the skills shortage. I've posted this before:

    http://www.cs.ucdavis.edu/~matloff/itaa.real.html [ucdavis.edu]

    http://www.fastcompany.com/magazine/85/essay.html [fastcompany.com]

    http://www.upenn.edu/researchatpenn/article.php?708&bus [upenn.edu]

    http://techtoil.org/wiki/doku.php?id=articles:shortage_myth [techtoil.org]

    All companies want are disposable interchangeable people who will work for nothing. This concept is doomed.

    What, exactly, Bjarne, is the definition of a qualified developer? Developer of what? Software for what?

    The entire concept of a "software engineer" or "developer" is meaningless. Take for example the statement "I am an Engineer". That statement is so broad to be meaningless. What type? Electrical? OK, what type? AC or DC? Electronic? Computer? Servo systems? Architectural electrical? Power grids?

    Do you get my point?

    Ok, now to developer. Database applications. Financial systems. HR. Medical systems. Commercial systems. Academic records. I've had a5-6 IT and development jobs and each domain was unique requiring becoming a psuedo expert in a few short months. Expecting a "one size fits all" approach to work is a recipe for failure.

    So before we prescribe a solution, we need to determine what exactly we are trying to solve.

    --
    putting the 'B' in LGBTQ+
    1. Re:Here we go again with the myth by DuctTape · · Score: 1

      Actually read some of your posts on skills shortages. Yep, there's nothing like seeing an ad for someone with 2 years of Java experience... oh and also J2EE, JSP, JSF, Struts, JDBC, Oracle, Swing, JavaScript, JavaFX version 1.0, Python, Perl ... and .NET awesomeness on top of that. With 2 years of industry experience.

      Translation: we want all those skills, but only want to pay a salary for a person that got their BS two years ago. And if you're awesome enough to have all those skills, ... we still pay the 2 year seniority salary. Or we go out and get an H1-B person, because obviously the local CS mills ain't crankin' out the minimal talent we need.

      DT

      --
      Is this thing on? Hello?
    2. Re:Here we go again with the myth by Orion+Blastar · · Score: 1

      Actually there is no lack of US native computer programmers. There is a lack of US native computer programmers that are willing to work for below average salaries with little to no benefits and work 80 hour work weeks for no extra pay. That could mean working a programmer analyst job for $20,000 a year when the average is $55,000, but try making house payments when you only earn $20,000 a year. You'd have to live with your parents until you reach retirement age. But the H1B-Visa holder will work for that $20,000 with no benefits and share an apartment with 3 or more people and sleep on the floor, just to get the privilege to work in the USA and send money back home to their poor family. When companies do that in the millions, it sends billions of money out of the US economy to foreign economies.

      It is greed and sloth, and it has been used for the past 20 years to drain the US economy to what it is now, on the verge of collapse.

      --
      Remember, Slashdot does not have a -1 disagree moderation, and no, troll, flamebait, and overrated are not substitutes.
    3. Re:Here we go again with the myth by Shados · · Score: 1

      The problem with that has always been what your definition of "skilled labor" is, as you stated it. I'll be brutally honest: since virtually everyone in school are trained to become mathematician who can put their calculations into C or Java code, for a large part of the industry (basically anything thats not purely IT... let say, retail), its useless.

      If you're called Google, Microsoft, Endeca, whatever, you can train them (and these companies DO). If you're called Morgan Stanley, Walmart, Target, whatever, you probably cannot. You deal with financial products or sell shit made by people at 5 cents an hour.

      If you can make a business, transactional application in a language high level enough that it can possibly sustain the maintenance stress these kind of companies go through (read: anything mainstream language aside C/C++, pretty much), from conception to the installater or script, with testing, you're good enough.

      The amount of people who qualify for that, even after years of experience? Close to none. The last company I worked for was offering up to 70$ an hour for a .NET or Java dev who just...didn't suck ass. They found one. It took -FIVE MONTHS-, and the person was just so so. There's a company that pokes me every 3 months, all they're looking for is a competent .NET dev. They've been at it for 9 months to fill 2 positions, still not done.

      Finding someone who knows how to work on a business app and can follow basic standards is extremely difficult. Its not uncommon for some to have to resort to outsourcing (not offshore, but to consulting firms in the area) their internal projects, not because they can't do it, but because they lack the manpower. Its really not a myth: most developers on this continent suck serious ass, and the managers have to do more damage control than actual project management.

      I've read the articles/essays you posted before typing this. One of them points out the extremely low interview -> hire rate. Sure, some of that is because employers don't want to pay. A lot more is simply because of the following scenario (which I've seen just a few weeks ago, personally):

      1- So, get HR to post job offers everywhere we possibly can (that gets expensive something fast if you want to reach a lot of people). HR is instructed to bring the resumes of anyone who looks even remotely close to fitting the job, without filtering (since we know HR tends to be worthless at that). So now we get 30 CVs of people who definately seem like they'd fit, at least for the resume.

      2- So now, you call them all. All of them. Right as you call, 10 of them found job between when they posted their resume and when you called them (48 hours or something).

      3- Of the 20 lefts, 5 of them refuse you straight up because they only want to work for an IT company, or because they want significantly more than the average for their experience (let say, they ask for 90k/year when in your area the 85th centile for senior devs is 70k...pulling numbers out of my ass).

      4- So you interview the last 15 one by one. Part of those barely speak the language or whatever country you're in and you can't understand a word they say even if you try. Part of those claim 10 years experience in a technology thats been out for 5. Part of those lied about their credentials. Then of whats left, they obviously have no clue what the f*** they're doing. Never heard of unit testing (not asking for them to have experience. Just HEARD of it!), never heard of the standard practices for your tool of choice, even if its extremely mainstream (again, not asking experience, just HEARD OF). A chunk are, let say, VB.NET devs who can't even read C# at a basic level (good lord, its 98% the same damn thing. Replace End if by }...jesus...). Part are web developers who have never touched CSS, ever.

      Then after doing all that 3 times, you finally get someone who's so so. So you end up with an extremely poor interview to hire ratio, even if you're just trying to get someone who won't faint if you forget to remind them to breath.

    4. Re:Here we go again with the myth by Shados · · Score: 1

      J2EE, JSP, JSF, Struts, JDBC, Oracle, Swing, JavaScript, JavaFX version 1.0, Python, Perl

      You see a lot of those, not because employers want you to know everything, but because they want you to know enough to be able to do a "real" app. I know you typed random stuff to make a point, but lets look at it, since it IS similar to a real offer.

      Let say you work in Java. Well, its really hard to do anything serious (especially web) without J2EE. Now JSP, thats part of J2EE, and more or less needed for web stuff. JSF is uncommon at the same time as JSP, but really, all it means is they want you to have looked at the various options the web Java platform offers. Struts is fairly standard stuff, and used almost everywhere. If you don't know it but know something like Tapestry, they'll usually eat it up. JDBC...what the HELL will you do if you don't understand it? (It also takes only a few hours to learn, if that...). Oracle, a mainstream database, what do you expect... Swing, again, tends to be mutually exclusive to JSP, but seriously, its the basis of Java's desktop UI... JavaFX, ok now thats pushing it... Python and PERL basically just means "I know Java, but I'm not a Java fanboy...oh, and I've made custom deployement systems before..."

      To sum it up, that basically means "I've made, once in my life, a real app on a Java platform". Lets take a .NET example of a job offer I have right here... .NET 2.0/3.0/3.5, Sharepoint, ASP.NET, Webforms, HTTP Handlers and modules, SQL Server, ADO.NET, Windows Workflow Foundation, Server Controls, XML, XSLT, LDAP, Active Directory, Windows Server, COM/COM+, ASDL, T-SQL/Triggers/Stored Procedures, SSIS, SSRS, SSAS, HTML, Javascript, XML, AJAX, Web 2.0, MSBuild, NAnt, ORM. C/C++/PERL would be a plus, as well as Unix/Linux knowledge.

      Ok, that looks totally flipping insane. But lets analyse it, shall we? What it basically means is "3 years~ experience in .NET (thus 2.0 to 3.5) on Sharepoint (which is ASP.NET, WebForms, Handlers, modules, SQL Server, ADO.NET, Windows Workflow, server controls, and all the web related stuff all wrapped into one... its really just slightly advanced ASP.NET on a very popular platform that all MS centric companies of decent size use), XML and its APIs (childplay, often taught in school), Active Directory and Windows enterprise services (kindda needed to develop on Windows Server, that will also wrap up the ASDL and COM stuff, its really just basic interop), SQL Server and basic business intelligence, and can deploy an app (thus the msbuild/nant stuff). Oh, and not be a microsoft fanboy (thus the request for knowledge of Unix, to avoid getting someone who knows nothing beyond the start menu).

      So without the comments, they want someone who knows Sharepoint, can make a transactional website on Windows, and knows a trick or two outside of the microsoft world. Thats it. Its put in excruciating details to avoid someone whom's only experience is fixing bugs on an app that the big boys are writing, so they just detail all of the technologies that any non-noob windows dev will use on a daily basis, and separate them from those who can only write algorythms in their basements.

      People, its really not much, and nothing you can't learn in a few days/week with a book if your school sucks too much to prepare you for the real world (ok, virtually no one teach the Windows stuff, but at least the same amount of stuff should be a given, ESPECIALLY with 2-3 years of experience).

    5. Re:Here we go again with the myth by master_p · · Score: 1

      The division of software engineers into database, financial, medical, commercial, real-time, distributed etc systems is wrong. In order to develop any application in these fields, the programmer needs skills from the other fields. For example, commercial, financial and medical applications may need database skills; financial, medical and real-time systems may need distributed programming skills etc.

      There must be a separation of concerns: the business logic is the domain of the analyst, while the software logic that implements the business logic is the domain of the software engineer.

  69. Re:He sure thinks a lot of himself by lgw · · Score: 1

    If you haven't had a C or C++ class, I'm not convinced you know ho pointers work. If you haven't had a Lisp or Scheme class, I'm not convinced you "get" recursion and functional programming. If you haven't had an assembly class, I'm not convinced you can debug anything nontrivial.

    If I'm not convinced you can know these concepts, I'm not going to hire you. And if you're not willing to get some useful real-world experience by being a "code monkey" for your first few years, no one sane will hire you.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  70. Want highschoolers more involved + social? by Anonymous Coward · · Score: 0

    Don't make competition the driving force of extra curricular activities.

    A few of my peers and I recently stayed up quite late, and pulled a few all nighters, doing what I have to consider some pretty awesome C hacking. It's the first time I've worked with a team to complete a programming project in meat space, and it was by far one of the most enjoyable experiences I've had thus far in high school. We competed with each other a bit, but not nearly to the extent that often occurs in other activities I'm in. This is mostly because we were all there for the same reason -- because we liked it. Not a single person was there to get something put on a resume, or to get a grade. I think that helped a lot. When you care about a project, you tend to be more cooperative, because you care more about completion than how much credit you get.

    Therefore, I have to say -- as a student -- that the challenge here is to give us something we can care about, and support it.

    Currently, the only way any of us can get funding/space (mostly space) from schools and parents is if we're involved in some sort of competition. That's because colleges and work places prefer to see "I have proven myself superior to my peers in objective competitions" instead of "I'm going to be great here because I love what I'm doing and will stay up until one in the morning if that's what it takes to get stuff working." And that -- the focus on academic competitions and turning the pursuit of knowledge into a damned football game -- ticks a lot of us off.

  71. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  72. Plenty of sloppy geek billionaires... by tjstork · · Score: 1

    Well, that's the thing, is that, the sloppy geek who also made himself a billionaire is kind of a statement of fact. Bill Gates and Paul Allen, Bill Joy, Steve Wozniak, none of those guys are going to win the cover of GQ, none are really "team" players, and all of them make more money than all of us on this forum combined, and I'm sure that they've had their fair share of pizza.

    --
    This is my sig.
  73. Wish I had mod points by Anonymous Coward · · Score: 0

    ...because I wholeheartedly agree. Exactly _what_ has Bjarne done outside of his ivory tower? Has he ever worked in the real world with projects and deadlines and costings? I think not.

  74. Re:He sure thinks a lot of himself by Rakishi · · Score: 1

    If you haven't had a C or C++ class, I'm not convinced you know ho pointers work. If you haven't had a Lisp or Scheme class, I'm not convinced you "get" recursion and functional programming. If you haven't had an assembly class, I'm not convinced you can debug anything nontrivial.

    The intro classes covered all of that, the concepts were gone over in class but the programming language was mostly left up to the student to learn (aside from the "you barely know what a computer is" version of one of the classes). No need to waste class time with details that any intelligent person could learn much faster by reading a book and examples (or getting individual help from TAs if they have trouble). These classes were all taken in the first one or two years by any student who knew they were going into CS (along with various math classes and so on). If you think universities teach a couple programming languages then you basically have no idea about what computer science is.

    If I'm not convinced you can know these concepts, I'm not going to hire you.

    And someone who learned programming on their own is guaranteed to have studied all those languages why exactly?

  75. The B team is in India... so who cares? by tjstork · · Score: 1

    Then, the B-team takes it over and can't figure out what the heck it does. The code is then doomed to painful process of continuous decay

    The B-Team is, in the corporate world, in India, so who the hell cares what happens to it. I think programmers in the West (EU+USA), need to start thinking about what gets them the most features now, and leave legacy issues off to the offshore teams. Clever designs, chopping out the comments, all those "bad rules" that are so ruthlessly enforced to make our corporate masters happy, and for what? To make you perform less productively in terms of features / lines of code? When you will people wake up and realize that dumbing down your code to make up for people with lower skillsets is just a euphemism for sending your job to some guy in India with an MS Cert making $2 an hour. If they want you to train them, then train them, and get paid for it. But don't sit there and not deliver features when they are going to use a bunch of wizards and total crap offshore to argue they do more features than you. Throw the triple pointer at them and inline assembly at them and let them f-- it up.

    --
    This is my sig.
    1. Re:The B team is in India... so who cares? by MadKeithV · · Score: 1
      I was going to post a compact, witty and insightful retort, but I can't, because what you say is often true in our Dilbert world.
      The next big computer language might be called "lowest common denominator" (some may allege that C# and Java already tried to do that, but then some difficult crap like generics got added on to save the day). Mediocrity for the win!

      Then again, I've spent time training developers that were considered mediocre in an almost-third-world-country, and with a bit of investment these people can get a lot better quickly. It can be a real bonus for the bottom line because they cost a *lot* less than good developers in the western world.

    2. Re:The B team is in India... so who cares? by danieltdp · · Score: 1

      The B-Team is, in the corporate world, in India, so who the hell cares what happens to it.

      Mmmm, let's see... The Indians for starters? The corporate world that depends on them and the on the quality of their code?

      --
      -- dnl
    3. Re:The B team is in India... so who cares? by tjstork · · Score: 0, Troll

      Mmmm, let's see... The Indians for starters? The corporate world that depends on them and the on the quality of their code?

      That's not your problem, now is it. The triangle looks like this. The corporate world is on top. You are on one leg, and the Indians are at the bottom. Once that code is handed off to the Indians, you will get kicked out, so, like, why help that? Who are you more loyal to, the Indians, the corporation, or your own family, country and community. I guarantee you that nothing you do to the corporation will change their attitudes about the outsourcing and that the loyalties of the Indians will be first to their family, community and country, so why not do the same as what everyone else is doing? SO you can feel good about being the idiot that falls on the sword so a corporation can get richer while an Indian takes your job?

      --
      This is my sig.
    4. Re:The B team is in India... so who cares? by danieltdp · · Score: 2, Interesting

      Wrong. I am not American. Guess from where I am...

      ... from another third world country that suffers some of the same problems as the Indians.

      My point was that you were missing the fact that slashdot is not entirely composed of Americans. So your question "who cares" should raise a couple of "I dos"

      --
      -- dnl
    5. Re:The B team is in India... so who cares? by Anonymous Coward · · Score: 0

      Ah-ha, so you trained some UK developers then?

    6. Re:The B team is in India... so who cares? by MadKeithV · · Score: 1

      UK-raine. ;-)

    7. Re:The B team is in India... so who cares? by DuckDodgers · · Score: 1

      Yes, but if the project is big enough and the company keeps you around to maintain your own code, the lack of documentation and the clever designs actually will screw you up.

      Get too smart with the way you write the code, and anybody trying to maintain it gets burned - even you. The best way to keep the jobs where you are is to make damn good software, and convince your management with your products that you are worth every penny they pay.

    8. Re:The B team is in India... so who cares? by tjstork · · Score: 1

      My point was that you were missing the fact that slashdot is not entirely composed of Americans. So your question "who cares" should raise a couple of "I dos"

      They aren't NATO, so, their opinions are irrelevant to me. What I'm looking to do is help western programmers understand that they need to focus on themselves first, and whatever happens to third world is not a first world problem any more.

      --
      This is my sig.
    9. Re:The B team is in India... so who cares? by tjstork · · Score: 1

      The best way to keep the jobs where you are is to make damn good software, and convince your management with your products that you are worth every penny they pay.

      There's no convincing them of anything and people that believe otherwise are just delusional. I used to agree with you, but for the most, management doesn't care. Corporations have no loyalty to you or your country, so why should you be loyal to them? Do you seriously think that there is any quid pro quo between you and a company? Dude, that's just silly.

      --
      This is my sig.
    10. Re:The B team is in India... so who cares? by danieltdp · · Score: 1

      Sorry for replying to a message in which I am not part of the subject. Oh, wait, I am a western developer. From Brazil.

      --
      -- dnl
  76. Re:If they can't get a smart and social employee.. by brygl · · Score: 1

    That's not all that would "going down" ...

    *shoulder nudge*
    GET IT?!? GET IT?!?

  77. Re:He sure thinks a lot of himself by lgw · · Score: 1

    I'm not expressing any preference for a CompSci degree vs "self-taught". What I'm saying is that most CompSci or "Seftware Engineering" courses today are churning out graduates with no useful job skills.

    Students don't "just pick up" pointers, recursion, or assembly-level debugging on their own (at least, not a signiicant percentage of students). There's a lot I can teach a new hire on the job, but they need the fundamentals in order to make that training practical.

    Pointers are hard for most people to understand deeply. Someone who has "only used Java" will not grok pointers, and I will not hire someone who is uncomfortable with pointers in the screening process. (Plus, in general, someone who has written a non-trivial program in C++ is going to have a big advantage in getting hired for a C++ job - same with any language.)

    No matter how much you know about the theory of data structures, if you can't actually write the code in C to reverse a linked list, what good are you? And a stunning percentage of grads can't seem to reverse an array in place, or for that matter actually know anything about the theory of data structures.

    I'm not looking for deep C++ knowledge: if someone doesn't really understand the volatile keyword, or know what the mutable keyword does, I can teach that if/when it becomes necessary. But if you've never written a non-trivial C++ program, that's a problem. And if you've never written a non-trivial program using pointers, or recursion, or have no idea what object code looks like, then I won't even interview you.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  78. Stroustrup by speedtux · · Score: 1

    As someone who has been a C++ developer for 20 years, I have to say: C++ is a language disaster. It's hard to teach, it's hard to manage, it's hard to debug, and it's hard to optimize. Stroustrup has done more to hurt progress in computer science than almost any other computer scientists. Even Java, for all its faults and limitations, isn't as bad as C++.

  79. Computer Science has changed since the 1980's by Orion+Blastar · · Score: 1

    We used to learn Quality Control, Software Psychology, Logical Methods, Flowcharting, Debugging, best practices, naming conventions, etc.

    But around the 1990's that all changed and most Comp Sci programs became diploma mills, even graduating students who cannot even finish writing a program. Professors gave them an "A" for effort even if their program was incomplete and compiled with errors.

    The industry reacted by requiring certification exams, but those too became diploma mills, just buy the exam CDs or download them off BitTorrent and remember all trivial questions and pass the exam with 98% and still not know what the programmer is doing.

    Companies reacted by only keeping programmers that could write code on time, quality was no longer an issue a programmers became the equivalent of a burger flipper, quick and sloppy wins the job, slow and quality control can get you fired at the next downsizing. Computer Science and IT became another Fast Food industry with Bit Flippers passing themselves off as programmers.

    Java and C# were invented because the average programmer was too stupid to understand what pointers were used for, or how to do garbage collection, so they got written out of the new languages and they do their own garbage collection. It seems the practice of close off an object when no longer in use and freeing up the memory is no longer practiced these days.

    Programs became so inefficient that faster processors covered up for that. It used to be when a report took 15 minutes to generate, they'd hire me to rewrite the code so it runs in 15 seconds, but now all they got to do is just buy faster computers so that 15 minutes becomes 3 minutes and that is good enough for the managers. So the optimizing code to run faster skill is no longer needed or taught.

    Greed and sloth have ruined the computer industry as well as computer classes.

    --
    Remember, Slashdot does not have a -1 disagree moderation, and no, troll, flamebait, and overrated are not substitutes.
    1. Re:Computer Science has changed since the 1980's by Anonymous Coward · · Score: 0

      My perspective has been that the employers are looking for some combination of specialized skills. If you are freshly minted from university then no skills is okay and you can be trained. But, Employer 1 wants skills A,B, & C... Employer 2 wants C, D, & E and Employer 3 wants E, F, and G.

      If you want to be qualified then you'll have to pay for your own training and find a way to train yourself for a job at one of the employers. You go and spend time and money learning A, B, and C on your own dime. Then Employer 1 goes bankrupt and you try for Employer 2. But Employer 2 changes from C, D, & E to E, F, and G claiming a shortage of talent with skill C.

      And now you have to retrain yourself for E, F, and G because no one will hire you and train you.

      You come back and have E, F, and G and now there's a new technology stack using H, I, and J. And Employer 2 won't talk to you because you don't have 10 years on E, F, and G. So you train yourself on H, I, and J.

      And never mind that you have enough study to effing invent the technologies for them. Never mind that you dropped out of effing doctoral work. They want stupid derivative skills in stupid scripting languages with immature and broken execution environments because it's been dubbed "cool"

      bastards.

    2. Re:Computer Science has changed since the 1980's by Orion+Blastar · · Score: 1

      My father before me had all of his skills on the Bell Labs 1ESS computer. Then AT&T got broken up and companies stopped using the 1ESS and used the System/36 instead. Nobody wanted to train him in System/36 and the 1ESS was not that different that he couldn't learn the IBM System/36. He even knew Unix but the HP-UX and SunOS jobs wouldn't hire him even if they are based on Unix.

      --
      Remember, Slashdot does not have a -1 disagree moderation, and no, troll, flamebait, and overrated are not substitutes.
  80. super smarties.. by tempest69 · · Score: 1
    OOP is a nasty nasty thing. People get all these messy ideas on how they will "objectify" their solution. Eventually passing all sorts of sibling objects around. Making sure that all this works is a horrible bughunt. Most of the time going old fashioned procedural functions is the way to go.

    Sure there are exceptions.. The STL.. awesome use of templating and inheritance. However Nethack, which could go pervasive class oriented shows that a standard approach can handle an amazing level of detail.

    now lisp is an eye opener. I wouldnt want to do a big program in it, I'm not that smart. But for some reasonable code it is elegant.

    Python is the language I have the least issue with.. I'm not a java fan, it's too needy for my tastes. C lacks good string manipulation. Perl has some weird memory issues that crop up. Ruby is pretty damn stout.. I'm pretty happy with it.

    ok, rant mode disabled... The whole point is use the tool that does the job simply with a good link in for future modifications.

    Storm

    1. Re:super smarties.. by MadKeithV · · Score: 1

      Java is a train-wreck (in my opinion) because it treats OOP as a silver bullet, and every developer should know that there is no silver bullet .

      So maybe OOP was the biggest advance in software engineering in recent years, but that still doesn't mean it's a good fit for everything. I like to use everything, so I work in C++ professionally, and I dabble in Python and Lisp for those parts of "everything" that still haven't caught on in the mainstream.

    2. Re:super smarties.. by Cederic · · Score: 1

      Java doesn't treat OOP as a silver bullet, it just acknowledges that most software bugs come from memory management issues* and cuts them straight out.

      * I made that up. But it's certainly a lot. And you can still get them in Java. And Java clearly isn't the best language for many purposes. But it certainly isn't remotely close to a "train wreck", and if you work in C++ and think Java's OO focus is wrong then you certainly don't work in C++ professionally. But hey, I don't know you so it's easy to slag your engineering skills.

    3. Re:super smarties.. by MadKeithV · · Score: 1

      Java doesn't treat OOP as a silver bullet, it just acknowledges that most software bugs come from memory management issues* and cuts them straight out.

      That's a non-sequitur argument, and following it up by an ad-hominem argument about my skills doesn't do much for moving me from my position on Java.
      So, because I can do my own memory management and I detest classes stuffed full of "static" methods because there's no such thing as a free function, I'm a bad engineer?

    4. Re:super smarties.. by Cederic · · Score: 1

      Actually, if you create classes full of static methods then yes, you are a bad engineer.

  81. Re:If they can't get a smart and social employee.. by nog_lorp · · Score: 1

    Cheerleaders definitely get my "production" up most of the time.

  82. Anybody who invents a language called C++ by smcameron · · Score: 1

    Anybody who invents a language called C++ which ends up like *that* clearly does not know the difference between increment and excrement, and should not be taken seriously when they pontificate about these sorts of things. (Look how badly things turned out last time we took this guy seriously). I drank deeply of the OO kOOlaid in 1988. Turbo Pascal turned me into an object oriented programmer. But like the guy in that Monty Python skit who accused the woman of having turned him into a newt in front of an incredulous mob, I got better. C++ sucks, and there's no fixing it. Screw Stroustrup. /A&M graduate, class of 1991.

  83. Re:If they can't get a smart and social employee.. by Eli+Gottlieb · · Score: 1

    You wrote that at quarter to 7 PM. Good programmers have gone home by then.

  84. Such a tool... by javabandit · · Score: 4, Insightful

    I have to say after reading this article -- Stroustrup is a tool. It is just that simple. Nothing more than a pundit at this point. He had a stroke of genius in programming and now is an expert in everything related to programming.

    He thinks companies aren't happy with their graduates? Well, I say companies have terrible hiring practices, terrible mentorship programs, and ridiculous expectations.

    Balance the theoretical and the practical? Wow. Brilliant observation. Great, Bjarne. Please give us more sweeping Karate-Kid style one-liners.

    High schools should teach students to work hard? Great, Bjarne. Thanks again for that. Search out information as needed? Another stroke of brilliance. Express ideas in writing and verbally? WOW. PINCH ME. Such genius can only be dreamed of.

    Then, the article closes with him trying to be edgy and go out "with a bang". Sloppy, fat geeks. Nice. This guy is a douchebag. Pure and simple.

    Here is my own contribution to douchbaggery... I think we should take aging, isolated, self-important pundits out into a remote area and bury them neck deep in the dirt.

    1. Re:Such a tool... by Anonymous Coward · · Score: 0

      "My textbook "Programming - Principles and Practice using C++" will be available in December 2008."

      The guy is selling his book. Nothing more.

  85. Suggestions for job searching... by pikine · · Score: 2, Informative

    On your resume, try to highlight your significant personal projects and why you think they are cool. Your resume scores you interviews. And on your interview, I don't think impressing your interviewer is the goal, but you do need to show you're up to what you claim to be on the resume. Your personal projects can become an advantageous conversation piece during the interview. Try to have a good time with the interviewers because they may be having a long day as well.

    --
    I once had a signature.
  86. Re:Looking for programmers in their natural habita by Eli+Gottlieb · · Score: 1

    But I want the right to be a slim, bike-riding programmer with a scotch!

    Oh wait, that's called a computer scientist.

  87. I thought when I clicked in by Anonymous Coward · · Score: 0

    I guess it's getting late, as the title morphed in my eyes couple of times:

    First time: Blame Startup On Educating Software Developers

    Second time: Blame Stroustrup On Educating Software Developers

    I thought that can't be right, he is ..for lack of better words.. a mythical figure for CS people.. blame him?! .. click.. Oohh.

  88. Nothing wrong with C. C++ is the problem child by Anonymous Coward · · Score: 0

    As a C language expert (I really am) I say that there is nothing wrong with C.
    It is at the processor and memory level of things and that is perfect for
    those of us who know how to use it.

    C++ is a language designed for accedemics and folks who don't do
    real world things. It is over thought out and overly complex.

    There is nothing wrong with the C array idiom.
    Everything else is built on top of that.

    It is the way real memory is in a real machine.

  89. Balance between practical and theoretical?!?!? by Secret+Rabbit · · Score: 1

    He seems to misunderstand what a University is and is supposed to teach. Which is sad given that he works at one. Universities are about research and theory. Colleges are about the practical. This isn't about whether students are learning what they should be learning at Universities. It's about whether that student should be there in the first place.

  90. Not accurate by spikyface · · Score: 1

    I graduated from the University of Essex in 2004, it was ranked 44th out all the 127 universities in the UK, so a very middle of the road uni, nothing like the Redbrick or Ivy League unis
    The Computer Science course was heavily Java oriented, there was a bit of C, SQL and *shudders* Prolog too

    It taught us everything mentioned in Bjarne's article with the exception of direct memory access, because it's not needed except in some very specific situations (e.g. when Accenture were re-writing the trading platform for the London Stock Exchange and speed was of the utmost importance)

    Bjarne spends much of the article plugging his book and talking about the impressions of employers, but when was the last time he spoke to a developer in the trenches? Starting salaries for graduate developers in the UK are appalling (outside of London), the pay is about the same as that for a data entry clerk (I've done both and the latter only involves 2-3 hours work per day with the rest spent looking busy)

    Being a good developer demands much more than a 9-5 commitment ESPECIALLY during you first job, if there is no incentive then why bother? Why not just find another career which isn't so demanding and has better rewards?

    That's why there's a shortage of good grad developers these days, because the smart ones have already figured out that the game is rigged and it's not even worth playing

    1. Re:Not accurate by Anonymous Coward · · Score: 0

      There's a lot of truth in your observations.

      After 25 years in industry in blue-chip firms my current salary adjusted for inflation is less than it was 20 years ago (yeah, I avoided management). Inflation-adjusted real-terms programmer salaries have been forced downwards for at least the last 15 years; the impact of offshoring has been major. The number of applicants to do CS at UK universities has fallen by around 30% over the last 6 years, kids (and their parents) are clearly realising that the rewards simply aren't there in the way they used to be, and they'll be under the threat of being offshored from the day they start work. Other jobs offer more security and money-making potential, programming just doesn't pay and you can't depend on it for your long-term livelihood. A check of the salaries on offer on jobserve quickly dispells any illusion that programming is a job you're going to earn big bucks in, which was what attracted us all into it in the 80s. The employers want to have their cake and eat it; they want us working our balls off for peanuts. The inevitable result is that the whole industry will be transferred offshore, and that, after all, is what the employers want anyway.

      And the observation about universities rings true. Often the best practical job training is obtained from universities/(ex-polys?) and colleges lower down the academic league-table - or from no university at all. The top ones are full of maths grads who couldn't get jobs as mathamaticians so they moved to the CS dept, where they pursue their main interest - doing math - and have little or no interest in the grubby business of writing software, which is really beneath them and can be done by those cheap guys in India anyway, while they pontificate the finer points of their systems of mathamatical logic. A couple of weeks ago a new grad who has just joined us from one of the top 5 UK uni's told me what his CS course had taught him; in the whole 3 years he had been taught C for just 1 week. He had taken courses in Haskell and Prolog, basic Java (introductory level only), Lisp and AI (so there are still some of those guys who got in on Alvey projects teaching there then). He had been taught a lot of Math, and half of the exams sounded basically like Math exams. It sounds like a dreary old course. In short he hadn't been taught much useful that he can use in the real world.

      But his degree hasn't given him the skills to be able to sit down at a Windows box and write some neat software for it that he can sell, or at least, not without teaching himself from scratch. And I'm sure that his professors at the university will proudly tell you that that's quite right, they are providing an academic education, not something as mundane as job training. Well that's fine, but they should tell the kids applying to their courses that the only thing their degree will really prepare them for is to work as a university CS research student on a PhD program, and not as a software developer in the ourside world. To a very large extent they rely on the desire of the students to get the name of the university on their CV, which then acts as a magic entry ticket with employers. There is a huge snob value about which Univ you went to in industry; I have found that the grade (and often even the subject) is considered irrelevent, so long as the name of the University is right. The abiding myth is that because they went to University X they're just so darn bright that they'll pick up complex areas of development in a couple of weeks and overcome the shortcomings of their lack of training, but the reality is that like anyone else they find they have a huge amount of learning to do when they start work because they simply haven't been taught the right skills, and the stuff they have been taught isn't used and is of little or no value. And the employer isn't going to give them more than a couple of weeks training either, so they are faced with learning it all in their own time after work. A few do it, many give it up as a bad job after a couple of years

  91. as cheaply as they want... yeah that's the problem by Have+Brain+Will+Rent · · Score: 1

    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.

    As "cheaply" as they'd like... that's the real problem. You want talent? You have to pay for it. Good, cheap, fast... pick any one.

    But he's right that sticking talent into a process designed for the untalented isn't going to work. The problem is that most managers like that process because it gives them the idea they are actually in control of something... whether they are or not.

    --
    The tyrant will always find a pretext for his tyranny - Aesop
  92. Joe the Programmer by Tablizer · · Score: 1

    I find it appalling that you can become a programmer with less training than it takes to become a plumber.

    I'd like to see more evidence of this. Sure, some have a natural knack, but that's probably true of a lot of fields.

    But I should point out that a lot of (licensed) plumbing is learning intricate standards. You have to learn boat-loads of rules set forth by various lawmakers over the years. Many of these rules may seem arbitrary, but they exist nevertheless. Programming is less about that, at least until you get into big teams that have to learn various methodology standards like CMM or Agile, or Java's libraries :-)
         

  93. Hacker and Painters by sluuuurp · · Score: 1

    programming is more like an art rather than engineering. This nice article http://www.paulgraham.com/hp.html

  94. Re:He sure thinks a lot of himself by binarylarry · · Score: 0, Offtopic

    I love how this post just reiterates the content of my original post.

    Yet it's +5 insightful and the original post is -1 Flamebait.

    Way to go my little slashtards! Mod away!

    --
    Mod me down, my New Earth Global Warmingist friends!
  95. Hey Stroustrup! Bite me by GomezAdams · · Score: 1

    I'm not surprised BS is down on Java. It does to OOP what C++ was supposed to have done but instead just crapped up a good problem solving language. To support this I have almost 30 years of programming and architecting on micros, minis, and mainframes running TRSDOS, DRDOS, CPM, MSDOS, UNIX, MVS, AND Linux for large enterprise wide comm servers and client/server apps. I have done 'at the metal' coding in C and ASM for comm servers. My list of languages include BASIC, C, and yes C++ - but I hated it, FORTRAN, COBOL, ADA (hated it), RPG II (hated it), REXX, Intel-Zilog-and Motorola ASM, PERL, HTML, Java, JavaScript, many UNIX shell variants, SQL, DBII, Pascal, and who knows what else I may be leaving out this early in the day. In other words, been there done that. Unless some damn fool pointy hair boss interferes I chose the OS and language to best solve the problem. And right now if Microsoft is the answer then the question was not phrased properly. I can even code in C# (Microsoft's feeble attempt to undermine Java) but use Mono on UNIX/Linux. So I feel more than qualified to say to Stroustrup, "Sit down and STFU". You had your shot at language developing and screwed up a lot of things. MS Windows instability over the years is a prime example of using C++ when C was a much better choice to build an OS. You may have a different opinion. I especially want to hear from Visual Studio coders who can only do VS BASIC or C++ on Microsoft and think they are programmers. When you have earned your Silver Back status and designed and built applications handling millions of dollars in transactions daily running for 6 to 8, and in one case almost 10 years error free, or apps doing 1,000s of transactions hourly without a glitch, then come sit down and we'll do lunch.

    --
    Too lazy to create a sig...
    1. Re:Hey Stroustrup! Bite me by Weedlekin · · Score: 1

      "MS Windows instability over the years is a prime example of using C++ when C was a much better choice to build an OS."

      As somebody who has also been in programming for 30 years, I can categorically state that Windows was written in C and assembler up to and including version 3.X, and those versions were even less stable than modern ones, so Windows' problems have nothing whatsoever to do with bits of it now being written in C++.

      --
      I'm not going to change your sheets again, Mr. Hastings.
    2. Re:Hey Stroustrup! Bite me by GomezAdams · · Score: 1
      It is true there were issues with earlier MS Windows but I stand by my statement that C++ was a key problem with the later version of the platform. Bad design was another. I am not denying early Windows was written in C and ASM. MS should have stayed the course there and kept away from that wretched monolithic 'everything is connected to everything else so it all has to be loaded design so you solve our scalability issues by throwing hardware at it' design.

      Gates wanted MS Windows to be as far away from UNIX as it could be made. And he succeeded. UNIX - I've had servers up and runing for years without being rebooted. My laptop running XP has to be completely shut down every couple of days or it becomes nearly unusable due to memory leaks and fragmentation problems with that stupid pagefile.sys instead of using proven paging and swap file technology from UNIX.

      I'd bring up security but I need to finish this before Christmas. A UNIX system right out of the box is many times more secure than Windows... although there is some progress there. Virus writers don't pick on Windows because it's so popular. They attack Windows because it's so easy and still has many vulnerabilities. So still, when I have to provide a secure and stable environment for applications I don't even consider MS Windows. It's OK for desk top apps (which I do not get involved with any more) although I get by with work alikes on UNIX and Linux.

      And that is not just my opinion but a rather broadly held one. In fact this is why after NT4.0 several architects and myself working at a large telephone company data shop stopped developing any applications on Microsoft OSes. That and for me C 6.0/C++ 1.0. That was shortly after the time Gates decided to stop being an operating system and compiler vendor and started his drive to take over all aspects of the personal computer. The published APIs changed and decent third party apps were bought up and killed off or driven out of business.

      --
      Too lazy to create a sig...
    3. Re:Hey Stroustrup! Bite me by Weedlekin · · Score: 1

      "It is true there were issues with earlier MS Windows but I stand by my statement that C++ was a key problem with the later version of the platform."

      What "key problem" was caused by C++ in and of itself, i.e. by features that are specific to C++ rather than those that it "inherited" from C such as unchecked arrays, pointers to blocks of memory that can be accessed before they've been allocated or after they've been released, and complex macros producing code that's difficult to debug?

      "Bad design was another."

      It's difficult to imagine a good design that could serve as many conflicting sets of requirements as the ones the people writing Windows have been expected to code for over the years. The same can be said of C++, which, like Windows, has been progressively added to by committees whose goal is to make them be all things to all people, with the inevitable result of both of them ending up being bloated messes full of kludges and pitfalls for the unwary.

      "MS should have stayed the course there and kept away from that wretched monolithic 'everything is connected to everything else so it all has to be loaded design so you solve our scalability issues by throwing hardware at it' design."

      What precisely is monolithic about either current or prior versions of Windows? Older ones were simply shells on top of MS-DOS, and dynamic linking has been used since Windows 1.0 (i.e. before either UNIX or Macs had it) to both modularise and reduce the run-time footprint of both Windows itself, its drivers, and applications written for it so everything could run on machines that couldn't directly address more than 640K of RAM. The NT architecture that underlies XP is even more modular due to having a kernel that's far closer to a microkernel than any other current mainstream OS, so I really do fail to see what facts are the basis for your accusations of it being monolithic.

      "Gates wanted MS Windows to be as far away from UNIX as it could be made."

      Gates wanted Windows to run on an IBM PC with 128K of RAM, which precluded a UNIX-style architecture. You seem to be forgetting the fact that MS became licensees of AT&T Unix V 7 in 1979, and that this (together with elements from BSD Unix) was the basis for their Xenix, which they began licensing to OEMs in 1981, a full 2 years before any work on Windows began. They were therefore not only intimately familiar with Unix, but actually earning a significant amount of income from it, so they weren't an anti-UNIX company or one that had anything approaching a lock-in strategy at that time.

      "UNIX - I've had servers up and runing for years without being rebooted."

      Which proves nothing beyond the fact that operating systems which were originally designed for "big iron" environments had different design priorities from those that evolved from roots on stand-alone personal computers with no connections to any other computer. Up-times of years are kiddie-talk in the big-iron world, where systems that run for decades with no downtime whatsoever are the rule rather than the exception, but nobody gave two hoots about up-times of more than a day with CP/M, MS-DOS (with or without Windows running on top of it), TRS-DOS, AmigaDOS, the original Mac OS, or any of the other operating systems for computers that were turned on when they needed to be used, and turned off again afterwards.

      "My laptop running XP has to be completely shut down every couple of days or it becomes nearly unusable due to memory leaks and fragmentation problems with that stupid pagefile.sys"

      Then you have a hardware problem or malware, because I have an old HP laptop that was bought in 2003, has been very heavily used, still has its original install of XP Pro, and has only ever had to be re-booted when required by an update -- it hibernates when not being used otherwise despite only having 512MB of RAM that's usually occupied by several development environments (none of which are from MS) that result in it swapping frequently and vigourously. I have plenty of other

      --
      I'm not going to change your sheets again, Mr. Hastings.
  96. Re:He sure thinks a lot of himself by NinthAgendaDotCom · · Score: 1

    This site isn't so bad. Reddit on the other hand is terrible. You can say something that's 100% true, and if the herd/mob mentality doesn't like what you're saying, you get modded into oblivion.

    --
    -- http://ninthagenda.com/
  97. Re:If they can't get a smart and social employee.. by GordonBX · · Score: 1

    but GREAT programmers are just getting started...

  98. Plumbers by muzicman · · Score: 0

    Plumbers earn a considerable amount more than than programmers though.

    --
    -1 disagree is not a modifier for a reason. -1 troll, flamebait, redundant, overrated are NOT acceptable substitutes.
  99. Learning languages and CS education by jimfrost · · Score: 2, Insightful
    It makes me laugh to hear about Stroustrup complaining about which languages kids are learning to use. Look at what a mess C++ made ... and it's not like they didn't know during its formative years just how messed up it was.

    I'm of the opinion that the language is almost immaterial. Within a few semesters a student should be exposed to multiple languages anyway, so grinding that axe is missing the point entirely. Team issues, though ... I'll get to that in a minute.

    It's not just the quality of CS grads and it has nothing to do with what language they're taught. The quality of grads in general is usually pretty low. The fact that it hasn't improved despite generations of languages isn't surprising: Basic business training is not nearly as difficult as CS, and we have millenia of experience in that domain, and yet those guys come out pretty damn green too.

    I think this is largely because the teaching paradigm is almost entirely memorize-and-regurgitate. This is a fine way to teach multiplication tables but it's not very applicable to most real-world skills. Generally speaking it's far more valuable to know where to find information than to have memorized the information itself; this not only expands your ultimate capabilities, it makes you less error prone. Yet when was the last time you saw information retrieval as a college-level course? The only time I have seen that was when my wife was working on her masters in library science.

    The value of looking things up is taught in (physical) engineering (mis-remembering physical constants makes bridges fall down) but it seems wholly ignored in most college-level disciplines. I credit Google for improving the tendency for people to look things up rather than memorizing them, kind of contrary to what you might have read in The Atlantic last summer. Information retrieval is an incredibly valuable skill. It's why skilled programmers used to have bookshelves of reference material. (In some respects I miss that, it was always fun to guess how a person thought by looking at the books he had on his shelf.)

    As Stroustrup says this problem is compounded by the fact that students, even at the college level, are treated as singletons. How many jobs have you held where you were the only one doing everything? I've been there and done that, but most of the time we work in teams, and it's quite rare to find courses teaching people how to work together effectively as teams.

    I'm not talking about just splitting something up into tasks done by multiple people, but rather the concept of layered skills on a team: mentoring or apprenticeship.

    There is a reason why trade skills have been taught using apprenticeship for millennia (it's not just a way of limiting the influx of competition). It's because learning your trade solving real problems working with people who know how to do that kind of thing is far more enlightening that trying to bend your mind around abstract examples written on a white board sitting in a room with three hundred other people.

    Brooks' team design from The Mythical Man-Month has (mostly) withstood the test of time; it should be something that is put in practice in the classroom, not just discussed for a few days in the abstract.

    High-quality education needs both hands-on in a team and white-board theory! And yet it is beyond rare to see students of various levels (e.g. grad students and freshmen) mixed up on a classroom project. Instead we have them build toys, individually. They puzzle through building toys then we kick them out into the workaday world having never done anything more complicated than that.

    The whole of our educational system is designed incorrectly, segmented and stepped rather than mixing and a continuum. It puts far too much load on teachers because you just can't have much one-on-one time when you're the only one the students can rely on; in a one-room school, for instance, it was common to have more-ski

    --
    jim frost
    jimf@frostbytes.com
  100. Interface delegation by Anonymous Coward · · Score: 0

    you can do that in c++? care to show me how?

    1. Re:Interface delegation by shutdown+-p+now · · Score: 1

      I cannot do that in C++, but I don't need it in C++, because I can use MI to inherit implementations from several classes. If you take away implementation MI in favor of strict interface/implementation (interface/class), that's all well and good, and I do agree that it is a better approach - but it needs first-class language support to easily express idioms analogous to what C++ MI offers.

    2. Re:Interface delegation by Anonymous Coward · · Score: 0

      oh, right. forgot about that :)

  101. Education for scientists != education for IT labor by master_p · · Score: 1

    One fundamental mistake in the education system is that there is no clear distinction between education for becoming a computer scientist, education for becoming a software engineer, and education for a programming/IT position.

    In order to be a computer scientist, one has to learn: lambda calculus, automata, compilers, parsers, algorithms, binary logic, set theory, discrete algebra, graph theory, and other stuff mostly related to mathematics.

    In order to be a software engineer, one has to learn: software development methodologies, the software cycle, analysis and design, formal methods, testing methodologies, software cost analysis, etc.

    In order to be a programmer one has to learn: programming languages (Java, c++, C#, C, javascript, etc), IDEs (Visual Studio, Eclipse, etc), databases (SQL Server, Oracle, MySQL), protocols (html, xml, sql, etc), other tools (web servers, application servers, web browsers etc).

    The 3 categories are all related to each other, because they are for computers, but they should not be mixed; they are different roles. Unfortunately, most education programs do not separate them, and thus people get confused and choose courses that are not suitable for them. Eventually, these people get bored, educated badly, and when they enter the market, they can't serve the needs of the market...

  102. Software development methodologies are bad... by master_p · · Score: 1

    (disclaimer: I have an MSc in Software Engineering)

    All software development methodologies are extremely bad:

    1) they are boring.
    2) they are extremely complex.
    3) they do not produce results fast enough.
    4) they require specialized tools.
    5) they are not precise enough.
    6) produce extremely large amounts of paper work.

    In other engineering disciplines, methodologies are extremely well defined. For example, in order to design a bridge, the civil engineer has to take certain steps in a specific order. A civil engineer does not have to battle his/her methodology all the time.

    In software engineering, software development methodologies get in the way. The software engineer has to constantly think of how to work around the methodologies, because the methodologies are worthless.

    This is a big problem in teaching software engineering. Which methodology to teach? there is no clear best approach, and software engineers are taught every method in existence. This is confusing, to say the least; when these engineers enter the market, either they are unable to apply their half-assed knowledge of software engineering methods, or the methods are so costly that their managers do not allow the engineers to apply those methods.

    Due to all the above, software development is a craftsmanship, an art, and not an engineering activity. The academia is not interested in solving the problem because it's not research and only research pays their bills, the market is not interested in solving the problem because the market is interested in results, and therefore the problem is perpetuated...and the poor software engineers/programmers are stuck in the middle...

    1. Re:Software development methodologies are bad... by Shados · · Score: 1

      All software development methodologies are extremely bad:

      1) they are boring.
      2) they are extremely complex.
      3) they do not produce results fast enough.
      4) they require specialized tools.
      5) they are not precise enough.
      6) produce extremely large amounts of paper work.

      I can definately say this is wrong. 10 years ago, you were entirely correct (and its why we saw awful statistics such as only 10-15% of software projects working out, etc), but in this day and age, we have new ones based on the mistakes of old, and while not perfect, it works a lot better. The paperwork is the first thing that needs to be reduced (I've worked for companies that used CMM by the book... 10 pages of Word document for every 100 lines of code or something, that was just insane...though they did use it poorly), but other, newer methodologies do away with that, replacing the IEEE documents with little notes or slim Wikis, just to give an example.

      There is no clear best approach because everyone's different (if you make software for a bank, you'll obviously need more documentation than code for audit purpose, and thats true regardless of if its a software project or not... if you work for a small IT firm, total opposite). Software engineers just need to be taught how to PICK one, not go in extreme details about each and every one of them. Considering how much effort is being put in this field, I really have to disagree with your say that no one is interested in solving that problem... there's a LOT of work that has been done about it lately, especially in the Agile methods like Scrum, which do give results so far.

  103. Re:He sure thinks a lot of himself by Anonymous Coward · · Score: 0

    There is more to "flamebait" or "insightful" than the basic points you make.

  104. Re:If they can't get a smart and social employee.. by hapihakr · · Score: 0

    Yeah, it's called Viagra.

  105. Stroustrup as a teacher by Anonymous Coward · · Score: 0

    Ironically, everyone I know who ever took a class from him says he was a bad teacher. In the past he has taught a portion of an introductory engineering class. Everyone says that he talks about stuff way beyond their understanding, leaving them completely lost. (Admittedly, I never got the chance to witness this for myself.)

  106. Way Off Topic by Microsift · · Score: 1

    Am I the only one who's shocked that Stroustrup is an Aggie?

    --
    My other sig is extremely clever...
  107. Re:He sure thinks a lot of himself by MrMunkey · · Score: 1

    Don't forget about those of us who no longer have time. I finished two years of college when my first son was born. I had to pay the bills, so I had to get a job to take care of my family. When push came to shove, I had to drop something. School was the least important of the three choices (family, work, school). Luckily I had been working on some of my own projects and got into the industry, but I still wish I could go back and learn a lot more things. I try to learn things on my own as well, but that takes time away from my family so I don't spend as much time as I'd like to. Maybe after my kids are older I can spend more time for myself, but they're only babies for so long.

  108. Too true by orthancstone · · Score: 1

    This is spot on correct. Everyone wants the experienced developer, but few are willing to punt the money to train said developer in development operations.

    One wonders if the future of development is going to rely on students doing their own small projects for a few years out of college before any company will touch them (in other words, will 90% of graduates need to form startups just to get experience that larger, more experienced companies look for?)

    1. Re:Too true by Eskarel · · Score: 1

      Hopefully not, as most people will tell you, learning yourself doesn't always teach you the "right" way to do things, and no amount of ridiculous starts ups and bad debt is going to take the place of having someone with experience share that experience.

  109. GGP or the interviewer? by orthancstone · · Score: 1

    Sure, it could be a poor search or interview, but have you ever considered bad interviewers?

    I've encountered more than one interviewer who seem to believe that the best way to identify a candidate as being "good" is to give them a test from a second semester programming course and see if they remember the definition of something. It begs a question: Do you really want a programmer who is completely reliant on memorized information? I knew a guy in my courses who could give you the textbook definition of OO to the letter; problem is, he couldn't actually IMPLEMENT it to save his life.

  110. Sloppy dead by grikdog · · Score: 1

    Logic and proportion fell sloppy dead decades ago, but I have to admit I recognized myself in Wayne Knight's portrayal of Dennis Nedry, from Jurassic Park. He was my White Knight, with brains sufficient to engulf six million lines of code and a startlingly arrogant take on who gives a damn about conspiracies no one knows about yet. Is that the frantic largesnack coderboy Stroustrup is aiming his adhesive spit at? Life large in memory, Dennis, Iron Byron of Defective Codebase!

    --
    ``Tension, apprehension & dissension have begun!'' - Duffy Wyg&, in Alfred Bester's _The Demolished Man_
  111. Re:He sure thinks a lot of himself by Rakishi · · Score: 1

    I don't disagree, my original point was simply that universities teach a lot more than just programming programming and, at least my university, often expected students to learn further programming languages (and their very specific details) on their own. As I said in my last post, good universities will also teach all the things you mentioned but that's only a starting point.

    That there are tons of shitty universities with shitty students is an inevitable fact of life and happens everywhere. So a degree on it's own is only a piece of paper and doesn't really guarantee anything. If you're familiar enough with the university it's from than you might know what it requires for graduation but even then they'll be exceptions.

    I'm also sure a good percentage of the good students at my university went for graduate degrees and/or aimed for positions other than run of the mill development (specialized software, research, modeling, etc.) which removes them from the ones you see. If they're aiming for software development than they'd finish with probably a year or two of actual development experience (projects, internships, etc.). It's also possible that the positions you're offering aren't comparable to ones that good students can get at other companies.

  112. Re:If they can't get a smart and social employee.. by gstoddart · · Score: 1

    Try using a tag team. Maybe if each programmer had a cheerleader coordinating his efforts, he could get his production up.

    We don't need cheerleaders ... we need fluffer girls!!!

    Take a little BJ break in the morning and the afternoon to keep the edge off and keep you motivated. I'm betting sick days would fall off to near zero. :-P

    Cheers

    --
    Lost at C:>. Found at C.
  113. trade school by vainvanevein · · Score: 1

    I'm uncomfortable about how close this new educational program sounds like a trade school education. A person going to a university for a programming education should be looking for more than "how to program". Programming is just a means to end. The question is, what is the end.

    I believe there are just two ends that a person pursuing a degree in programming would desire. One is to learn about the math/logic side of programming. Algorithmic efficiency for the diverse set of problems that emerge in programming would be the chief subject of study. I would classify this pursuit as computer science. The other end would be the social side of programming, that I would classify as software engineering. It would be concerned with constructing frameworks that a large group of people would use to create programs.

    I do also think there should be trade school courses for programming. The computer scientists and software engineers should make sure this could be completed in two years. This is probably the biggest failure of those involved in programming today. You shouldn't need to have a four year degree to do simple programming. I personally have wasted too much of my life writing programs that should have been available or connectable to my current environment.

  114. DING DING DING DING!!!! by Anonymous Coward · · Score: 0

    You win +100 Internets for having a Derek and Clive reference in your signature! You cunt.

  115. Re:He sure thinks a lot of himself by CorporateSuit · · Score: 1

    I disagree with all of this. Estimating completion time comes from industry experience, not training. What does "volatile information on a spec sheet" even mean? Are you talking about figuring out what requirements in a requirements doc are likely to be changed mid-project? That's a valuable skil, for sure, but agian that comes from years of industry experience.

    Then how can a university justify charging people to study there for 4 years if they don't gain any useful work skills? Universities weren't built so you could slowly drive through one and get a degree from it -- setting you behind your career market by 4 years. Basically, all a 4-year CS degree does right now is hand you a wrapper to put around your head that says "SUCKER." For some reason I can't comprehend, people think that it's the way it should be! It almost causes me to question my sanity. After all, if I can see the insanity in everyone else in the whole world, that probably means that I'm the crazy one! If 4 years of schooling can not compare to 1 year of work experience, then the schooling needs to change.

    And as for writing a (non-trivial) program without downloading additional software: half the programmers I know would walk out if asked to use anything but VI to code, and the other half would walk out if forced to use VI. Programmers develop attachments to tools, and I'm not sure what you'r trying to accomplish by asking people to not use the tools they're comfortable with.

    This wasn't about a matter of preference or comfort. It was about a matter of flexibility and ability. Can he program in Open Source as well as he can with Microsoft software? Would he become absolutely paralyzed until he downloads his favorite instant messenger? Not a question of whether he wants to write accounting software in notepad, but whether he can. Formal education shouldn't be about pigeonholing these kids -- that's the one educational advantage it should hold above going to work and getting paid for 4 years verses going to school and paying for 4 years.

    There are many legitimate complaints about CompSci programs today, but it seems like *you* just hate mentoring junior programmers. These aren't problems that a school will fix, these are problems that real-world experience fixes. There's a reason why your second real devlepment job (normally) pays a lot more than your first!

    If "mentoring a junior programmer", for you, is synonymous with making them forget the last 4 years they just dumped a quarter million dollars into and teaching them what they should have been taught, then you're already dead :(

    --
    I am the richest astronaut ever to win the superbowl.
  116. Re:He sure thinks a lot of himself by computational+super · · Score: 1
    Most of these topics can easily be researched and learned without a university. It isn't like say, brain surgery or nuclear engineering.

    Uh, yeah, actually you can research and learn brain surgery and nuclear engineering without a university, too. In fact, you can research and learn anything without a university. It's all written down in books, which you can get from a library and read. The only thing that sets apart brain surgery and nuclear engineering from programming is that there are laws against performing surgery without a degree or operating a nuclear reactor without a degree. I look forward to programming catching up in this regard.

    --
    Proud neuron in the Slashdot hivemind since 2002.
  117. Re:He sure thinks a lot of himself by computational+super · · Score: 1
    in principle possible to learn the same amount of physics as is required for a BSc without university, it would be much harder and take much longer. Is the same true for CS?

    I believe so. If not for college, it never would have occurred to me to learn calculus, or linear algebra, or probability, or NP completeness, or compiler design, or pipelined processor design, etc. etc. etc.

    --
    Proud neuron in the Slashdot hivemind since 2002.
  118. In support of semi-buried computer geniuses by Anonymous Coward · · Score: 0

    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.

    If you do the "team sport" part right, then you can have multiple computer geniuses, all semi-buried in their work for long periods of time, all cooperating to produce a single product. That's where I am right now.

  119. Re:He sure thinks a lot of himself by binarylarry · · Score: 1

    Usually the big thing isn't the degree but the certification (boards, etc).

    You may be surprised to find out there are many, many programming certificatons.

    Granted, they typically aren't required by the government for work in a specific field.

    It would be interesting to see how something like that impacts the software industry.

    --
    Mod me down, my New Earth Global Warmingist friends!
  120. in greater numbers? by wondershit · · Score: 1

    Reproducing how?

  121. Re:He sure thinks a lot of himself by computational+super · · Score: 1

    I'd love to see a meaningful programmer certification to come along (I've got a couple of java certifications, myself, so I have a point of reference on meaningful. Hint - java certifications ain't).

    --
    Proud neuron in the Slashdot hivemind since 2002.
  122. Re:He sure thinks a lot of himself by lgw · · Score: 1

    I'm all for universities teaching useful job skills, but let's be realistic. You're describing a set of skills that together mean "senior developer" to me. Someone with 5 years real-world experience should have these skills. Without internships, an undergrad degree being equivalent to 1 year's practical experience sounds right to me. An engineering degree (in any field) is about learning the tools (conceptual and practical), and getting the breadth of understanding that means you don't get stuck 10 years into your career. Learning what sorts of problems are going to have an answer in their algorithms book, and that the programing tool you choose makes a huge difference in what problems are easy and what problems are hard.

    Of course, the interns I've worked with recently knew *nothing*, but I can deal with someone smart who at least knows the basic syntax of the languages we use. Estimating project completion times and vetting design docs are things I'm going to hold the team lead responsible for, not the junior team members.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  123. Re:He sure thinks a lot of himself by Anonymous Coward · · Score: 0

    Then how can a university justify charging people to study there for 4 years if they don't gain any useful work skills?

    University education provides something job experience cannot: flexibility. A decent CS graduate should be able to pick up how to use whatever tools a particular employer uses fairly quickly. Someone who's spent that entire four years just learning to use a particular set of tools will have more trouble learning to use a new set. The conceptual CS might be learnable on the job, but people tend not to learn it very fast there.
    They aren't there to be trained for the specific openings your company has, so go call the whaambulance.