Slashdot Mirror


Is Experience in Programming Worth Anything?

damphlett asks: "My boss is a person of considerable hiring power within the Software Development area of a major global Investment Bank. I've just had a conversation with him that scared the hell out of me. He believes that people with 10 years experience in C++ have nothing significant to offer over people with 2 years experience. As someone with 12 years C++ the difference is so self evident I barely knew where to begin explaining his error, but he won't be convinced otherwise. Can Slashdot offer up some tangible benefits that can result from 10+ years experience in programming that I can share with him?"

14 of 167 comments (clear)

  1. sadly, it's a valid question by HRbnjR · · Score: 4, Interesting

    I have slaved away for years to become a programmer who knows the tools of my trade inside out, reading books on this and that, and trying everything within my power to write great code.

    Many many programmers aren't like that. They may not be CS trained, not hardcore geeks, or what have you...

    Wait till your boss asks you to "dumb it down" and not to use Generics/Templates/Inner Classes/Overloading/whatever, because others are having trouble understanding/maintaining your code.

    Wait till they ask you to write it in VB, because Java/C++ programmers are too hard to find.

    What scares me the most is... given some of the sad skill sets I have seen in people calling themselves programmers, is that the boss might be right.

  2. try tangible analogies by lambent · · Score: 2, Interesting

    Would your boss want a green mechanic working on his car, or one who's been around the block a few times?

    If experience isn't the key issue, maybe you can convince him that you can do his job just as well as he can.

    If all else fails, get a baseball bat and club his freakishly stupid brains in, then go get a recently graduated surgeon to put humpty dumpty's pieces back together again.

  3. Quantifying Programming Experience is Hard by jmt9581 · · Score: 2, Interesting
    I think that most of the replies you'll get will center around the silliness of measuring programming experience in "years." I learned how to program in Basic about 17 years ago, but I did my last active project in it about 16 years ago. My experience with that language has obviously peaked, and anyone with half a brain could realize this from talking to me and reading my resume.

    Your boss does have a somewhat valid idea though, there is a point at which most students of the C/C++ language (or any language) will settle into regurgitation of idiomatic expressions. These people are more technicians than programming artists. The true artists of programming are those people who know languages, operating systems and computer science in general to a depth that they will have jobs regardless of what the economy is doing. The problem is that artists are hard to find. If you consider yourself to be one, I would point this out to your boss and discuss this with him at length. Perhaps you could somehow become involved with the hiring process, or in a sort of continuing education process for programmers at your job.

    Good luck with the debate. :)

    PS - For anyone who noticed the reference, I did steal the artist/technician concept from a Robert Browning poem. :D

    --

    My blog

  4. ISO 14882 by Screaming+Lunatic · · Score: 3, Interesting
    I don't know about you, but my copy of ISO 14882 is 880 pages. I haven't read all 880 pages, let alone understand the implications of the sections I've read.

    People like your boss think they know C++. People who have a deep understanding of C++ realize that the pool that they're wading in is much deeper than they can see.

    Here's my last rant on the subject.

    Ask your boss if he's read anything by Alexandrescu. I'll bet he doesn't even recognize the name. Ask him if he subscribes to C/C++ Users Journal. Ask him what he thinks of Boost or Loki. He probably hasn't even heard of them either.

  5. Your boss is right. by rjh · · Score: 5, Interesting

    Your boss is right, and it sucks, and I wish it could be otherwise. Unfortunately, reality is that which doesn't go away when you stop believing in it.

    I'm a graduate student. As such, I see a lot of code both from students and from professors. The students have an excuse for lousy code. The professors don't.

    In one of the undergraduate CompSci courses, a professor asked on an exam a Java question which could not be answered correctly. If you didn't know Java very well, you'd give an answer which, at first blush, you'd think would work fine, but would have all manner of subtle problems later on down the road. If you knew Java well enough to use a different technique and avoid these subtle problems, you got zero credit for it because you didn't demonstrate any knowledge of how to use the techniques which were being tested on the exam.

    I'm not making this stuff up. This stuff is far from unusual; in any reasonably large department there's going to be someone who's too incompetent to ever get anywhere in the research side of things, so where do they wind up? Teaching undergraduate courses instead. The best minds cloister themselves in research and graduate classes; the worst minds get to teach the next generation.

    So what happens when these undergrads leave school and go into the real world? Well, if they're talented, smart and willing to work like hell, they'll spend the next five or six years mastering languages and techniques and getting painful lessons from bitter experience. On the other hand, 90% of them say <Keanu> "I know Java-Fu." </Keanu> And they don't, and they can't be persuaded that they don't. Because after all, they have a Bachelor's degree, right? That means they know this stuff, right?

    Someone who's got twelve years of C++ experience and has spent those twelve years actively engaged in learning, in developing new skills, in finding interesting corners and how-to-do-weird-things, is a gift from the Almighty. Treasure these people. They are rare.

    Someone who's got twelve years of C++ experience and has spent those twelve years doing the same sorts of problems the same way over and over and over again is eleven years past their sell-by date.

    There are a lot more of the latter than the former.

    Pre-Y2K I was hired by a major telecommunications company. I soon found myself an unofficial liaison to the UNIX development group, because being a recent college grad I understood modern C++. The UNIX development group had a lot of programmers, some who'd started using C++ in 1983... and none of them had kept abreast of the ever-evolving C++ spec past '93. That meant that when we got an updated C++ compiler that was stricter and more standards-conformant, half their code immediately crapped out all over the place, and I got dragged over to the UNIX dev group to walk them through modernizing their code.

    So imagine that you're the manager of the UNIX dev group. What you see are a bunch of old graybeards with 20+ years of software experience (and salaries to match!), who are relying on a twentysomething not six months out of college to tell them how to make their code compile.

    What would you as the manager think? Would you think "damn, that kid must be really hot!", or would you think "damn, experience in programming is really overrated!"?

    Now, these guys who didn't know beans about modern C++ knew every single bug, quirk and weirdness in the phone system. They were walking Bugzillas for phreaking, fraud and mayhem. They knew every RS-6000, they knew every weirdness of our systems. But once outside the very narrow domain of our systems, they were completely out of their depth. They were essentially unemployable as programmers given how dated their programming knowledge was.

    There are a lot of guys like that out there. They far outnumber the hardcore geeks who never stop learning and who pride themselves on always staying current.

  6. Maybe it's a sociological phenomenon. by Futurepower(R) · · Score: 4, Interesting


    You said "He believes that people with 10 years experience in C++ have nothing significant to offer over people with 2 years experience."

    Everyone comment I've read treats this as a question of fact. I'm guessing it isn't. It's a sociological phenomenon. There are several possible theories. More than one of them could be true simultaneously. Not all of them are mentioned below.

    1) He doesn't believe that and is only saying it to you because he wants to act out anger.

    2) He believes that. Intimidation is important to him, and he would rather hire someone he is likely to be able to intimidate rather than someone he would be required to respect somewhat.

    3) He doesn't believe it, but is saying it because he is trying to hide his jealousy about not knowing very much about technical things. This is common. The logical people, as programmers are required to be, don't get respect from the people who are not able to be logical. To give the logical people respect would mean that he should study how to be logical, and he is trying to hide that from himself, since he has three kids, a wife, a house, a mortgage, other debts, and doesn't have the freedom to improve himself.

    4) It doesn't matter what he thinks. He is really, really ignorant. He knows nothing about code quality. In actuality, it is common during programming to discover some serious flaw in the original specifcation for the project. It may take someone with even more experience than 10 years to recognize this and know what to do.

    5) His mind is so disorganized that it is impossible to determine what he really thinks, even for him.

    6) It doesn't matter what he thinks because you have made a mistake, and it appears to you that he has "considerable hiring power", but that is not true.

    7) He realizes that he will be forced to outsource your job soon, and his statement is only symbolic of the true disrespect coming from the company.

  7. Uh do you really want to do this? by TheLink · · Score: 5, Interesting

    Years of experience count for something, but someone with decades of experience of building houses and shoplots won't necessarily be good at building highways, bridges and towers.

    It's more using the right tool for the job thing. If he only needs "cheap VB/Java" programmers then 12 years in C++ doesn't count for much.

    "Can Slashdot offer up some tangible benefits that can result from 10+ years experience in programming that I can share with him?"

    You say you have 12 years of C++ and you have to resort to Slashdot to show why it counts for something?

    I'd say it's better to keep your mouth shut till you figure out a few really convincing things. If your boss can't tell the difference between you and a C++ programmer with 2 years experience, it's time for you to get a new boss or prepare for an income impacting incident...

    The world has tons of C++ programmers with years of experience, and yet we keep having "attacker can run arbitrary code of his/her choice" problems.

    If you ask me, years of experience don't count. Track record counts. Years of "evidence" if you wish.

    A programmer who's been churning out crap code for 10 years, is likely to keep doing that.

    Lots of geniuses do their best work before they hit their mid/late 20s (I should be sent to the glue factory by now - I suppose that's why I'm using Perl ).

    Get some smart 9 year old kids to learn programming in a suitable environment[1] and by the time they're legally hireable they'll be damn good. Once they're past their best they'd probably be married or something then you can "promote" them to Project Manager or something.

    [1] They say the best time for people to learn languages is before their teens. Instead of just French/German/Japanese etc, why not C++, Java and LISP as well ;). Better than _just_ watching MTV/Nickelodeon/Disney all day.

    --
  8. Re:The difference by paulydavis · · Score: 4, Interesting

    "Though it's also harder to sucker some with experience into working 60+ hour weeks. Younger programmers don't know better."

    I have heard this argument used for why age discrimination happens in IT. But I have found in lower waged jobs quite the opposite is true. If you are older, have a family, losing your job could be catastrophic so family men(women) are trapped. So they work harder and more hours to keep their jobs ...basically they tow the line. I personally saw this in the NAVY were they knew the young guy with the family would be the ones to re-enlist because they needed the security of knowing they had a job.

  9. Re:I agree, but possibly for different reasons... by tgrotvedt · · Score: 2, Interesting
    Yes, certainly those focusing on a career in software development should look at "moving up the ladder", but the chances are that if they are that good at algorithmic thinking, they will always be coding.

    Geeks who start companies and end up as a high corporate executive still code. On their PCs and laptops, these guys want good workstations, and are prepared to write the scripts! I've seen guys like that hacking up Python scripts for their Red Hat installation, as a daily part of their work. And as a result, they get higher-up jobs also based on their programming experience (albeit less directly).

    Just my AUD$0.05 (US$0.03).

    --
    What makes a man want to be a mouse? (Python's Flying Circus)
  10. I disagree. by hummassa · · Score: 2, Interesting

    I am a coder. And a sysadmin. Been up in the ladder, was a PHB and a big-shot (CIO) for three and two years, respectively. It sucks. I love to code and hack. I code and hack the things I like to code and hack 10x better, faster, well-tought, and maintainable than when I got out of university 13 years ago.

    --
    It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
  11. PAI MEI by nege · · Score: 2, Interesting

    As someone learning to program now, and as someone who is learning to really ENJOY creating clean code, this article is somewhat disturbing. If hiring managers and HR do not recognize the value of an experienced C++ (or any) kind of programmer, then what is my incentive to learn to become so, other than as a hobby?

    I know the answer for me: I will continue down the path of the coding Pai Mei (kill bill 2!) - I do what I do for honor, and because it is right, and no other reason.

    But...damn that sucks they arent going value me any more for it!

  12. Your boss is speaking a different language by _iris · · Score: 3, Interesting

    Your boss is right, in the context of hiring a new programmer into a mature programming team. Because this is probably his most common situation, his generalization is correct for him, in his current position.

    The point of diminishing returns on a chart of experience vs. time is definitely around 2 years. The extreme problems that can arise from the mistakes a younger (2 years experience) programmer will make can be catastrophic. Likewise, hiring an entire department of younger programmers would likely loose you your job as a hiring manager.

    If you hire a younger programmer into a department with an average experience of ~5 years, the mistakes that younger programmers make can be mitigated far earlier, preventing them from causing catastrophic problems. This same situation allows you to harness the knowledge of a wide array of experience levels. It also usually helps you hire programmers before another company over-pays them, causing them to ask you for more money than they are worth.

  13. Mozart was a Software Engineer by Roman_(ajvvs) · · Score: 2, Interesting
    Composers are the architects of systems, understanding the ebb and flow of musical intonation, repetition and variation across dozens of instruments. How many composers can play every instrument in an orchestra on par? How many would be able to recognize an instrument by its sound alone?

    Conductors and orchestra members are the programmers, adjusting the notes and delivering the music in their intepretation of what they read. How many orchestras compose sheet music as their primary act/art? How many of those with experience in an orchestra might go on to compose?

    Being a programmer and a piano player, I see many similarities between music and programming, in both the art and the "artists". Someone who has played an instrument for 12 years may not have progressed past the stage of memorizing sequences of notes, yet another who's studied for only 2 or 5, might be able to play anything heard but once, or create something that noone has heard before.

    You can distinguish an amateur from a professional in the way they play and they way they code. But you might not be able to pick out the gifted composer or architect so easily. Code monkeys might work best in an 'orchestrated' environment (if you'll excuse the pun). But only the best can be successful conductors. Not everyone wants to take on the responsibility that accompanies the job, though.

    --
    click-clack, front and back. I'm not moving this car otherwise.
  14. Experience != Expertise by jvv62 · · Score: 2, Interesting
    As others have mentioned, years in grade doesn't necessarily mean anything, BUT very few real experts have only two years experience. There's a great article about chess that talks about how experts think differently than novices. [Chase, W.G. and Simon, H.A. (1973). Perception in Chess. Cognitive Psychology, 4 , 55-81] Experts think differently about what they do because they are able to "chunk" things differently. So there is definitely a difference that the manager should know about between novices and experts.

    On the other hand, ...
    In research I've been involved with it is clear that the number of years of experience a person has has very little to do with whether or not they are an expert. So the manager may well be right that he can get what he wants from folks with 2 years of experience. Its how you think, not how long you've been thinking that's important. An other article that mentioned that there is a real difference between high and low productivity teams, but I suspect that the reserach was silent on the effect of years of experience.

    --
    -John Van Voorhis