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?"

167 comments

  1. The difference by Dr.+Sp0ng · · Score: 4, Insightful

    The person with 10 years experience has had more failures to learn from. Life experience applies in the programming field as much as any other.

    1. Re:The difference by Anonymous Coward · · Score: 0
      The person with 10 years experience has had more failures to learn from.

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

    2. 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.

    3. Re:The difference by AnwerB · · Score: 4, Informative

      I remember reading somewhere that the difference in efficiency and productivity over the life cycle of a software product is quite dramatic between good software developers and poor developers. The report I read applied specifically to embedded firmware developers, but it probably applies to some degree to software development in general:

      The difference between the top 25% of productive development teams and the bottom 25% is a factor of 5. i.e. productive development groups are 5 times more productive. For individuals, it's even more dramatic; productive individuals are up to 10 times more productive than their less talented compatriots.

      This counts time spent redesigning, and the amount of effort that must be spent debugging bad code, etc., and not just lines of code.

      One of the first authoritative book on the special nature of software development management is called "The Mythical Man-month", and has just been reissued in a new edition. You might want to stop by your local bookstore and see what it has to say.

    4. Re:The difference by Anonymous Coward · · Score: 1, Informative
      basically they tow the line

      "toe the line", actually. If they tow it, well, that's a whole 'nother kettle of fish.

    5. Re:The difference by BrokenHalo · · Score: 1
      So they work harder and more hours to keep their jobs ...basically they tow the line

      Sometimes. Many of us, however, are more inclined to ask our boss if he's serious when he asks you to do something we know is stupid, and are prepared to tell him to stick his job where the sun doesn't shine if the situation becomes untenable.

      It's all part of growing up, guys. Yes, being out of work isn't fun, but neither is being a doormat.

      [disclaimer: I turn 41 in 3 weeks... :-)]

    6. Re:The difference by cgenman · · Score: 2, Insightful

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

      Generally I find the programmer with experience gets his work done without the 60+ hour weeks. You save a lot of time if the first thing a programmer tries, works.

    7. Re:The difference by HippieJoe · · Score: 1

      I think we may have missed the point here. I think the boss isn't arguing about life experience, but reminding the programmer that he is expendable. Subtler than my bosses "We can replace you with 3 Indians Tommorow" threats, but still, this is a threat, not a debate.

    8. Re:The difference by Anonymous+Custard · · Score: 1

      Generally I find the programmer with experience gets his work done without the 60+ hour weeks. You save a lot of time if the first thing a programmer tries, works.

      And you save a LOT of time if it not only works for the cases you tested, but also in cases you didn't plan for, and in future revisions. I'm a new developer myself and I'm seeing a lot of people put in some very short-sighted code.

  2. sometimes by mattboston · · Score: 2, Insightful

    more experience can (sometimes) be bad. because you are set in your ways. sometimes a newbie brings fresh ideas and new ways to do something

    1. Re:sometimes by xoran99 · · Score: 1

      But with lots of experience, one knows what WORKS and what doesn't! Something that seems innovative will not usually work, but something that has worked a million times before usually will. Sometimes just working is better.

      --

      Karma: Bad (mostly due to all those "In Soviet Russia" jokes)

    2. Re:sometimes by baldass_newbie · · Score: 2, Insightful

      Sometimes just working is better.

      AFAIK, 'just working' is the goal.

      --
      The opposite of progress is congress
    3. Re:sometimes by sglane81 · · Score: 3, Insightful

      But with lots of experience, one knows what WORKS and what doesn't! Something that seems innovative will not usually work, but something that has worked a million times before usually will. Sometimes just working is better.(Emphasis mine)

      Does that same train of though applies to people like The Wright Bros., Copernicus, Socrates, etc who went against conventional wisdom?

      Flying is not something humans will ever be able to do... Conventional wisdom before 1900 (except Da Vinci)

      Earth is the center of the galaxy... Conventional wisdom before Copernicus.

      Justice is a bad and injustice is good... Conventional wisdom before Socrates.

      Unconventional approches to a problem (regardless of the area) can sometimes lead to huge breakthroughs.

      --
      This is the Internet. You can say "fuck" here. - AC
    4. Re:sometimes by KDan · · Score: 4, Insightful

      Not just that, but the quality of experience counts a lot. Most importantly, "official" experience is not any more valid than coding at home as a hobby. I know some ppl who have many more years of experience than me, and their code stinks. Never seen such badly architected crap.

      To work on my team, I'd rather have someone who's been coding as a hobby since they were 10 and is fresh out of uni on a completely different degree than someone who's done a degree in CS and has 5 years of experience in the software industry.

      Daniel

      --
      Carpe Diem
    5. Re:sometimes by gurustu · · Score: 1
      This assumes that fresh ideas and new ways of doing things have value. The only real values (IMO) are :
      • Does the system solve the problem?
      • Can the system be maintained?
      • Can we get more value out of the solution beyond solving the original problem?
      And that's where 10 years of experience brings more value.

      Two years of experience brings you competence in your toolkit and exposure to a few development lifecycles.

      Ten years gives you an arsenal of already solved problems from which you can borrow ideas, an understanding of how problems interrelate across broader domains, and an awareness of out-of-scope and future problems that can be solved (or have the groundwork laid, to simplify solving later) with easier up-front work now.

      I guess my response to the manager would be : not every developer with 10 years of experience should be an architect, because frequently that converts a happy developer into an unhappy architect. However, 10 years of experience gives you a developer who can think architecturally, and that's something you won't get from someone with only 2 years under their belt.

    6. Re:sometimes by mattboston · · Score: 1

      notice i said sometimes!!!!! I've met tons of people with years of experience that are very good. but at the same time i've met lots of people who have years of experience that have trouble thinking outside the box when it comes to coming up with a solution

    7. Re:sometimes by gcaseye6677 · · Score: 1

      I've also seen entire companies made up of "out of the box thinkers" that went belly up because their ideas are so "out of the box" that they just do not work in the real world. This is why a diverse team is very valuable. The more progressive types can come up with amazingly creative solutions and the experienced people can make sure that the ideas are practical. Not saying that someone cannot be both experienced and progressive, but a mix of people adds a lot of perspective to a project.

  3. Your boss is right by Tuxinatorium · · Score: 1

    Fresh college graduates can often code with the best of them. It's about skill, not experience.

    1. Re:Your boss is right by SoCalChris · · Score: 2, Insightful

      Sure, they can probably crank out good code, but they will lack the experience to make good decisions about the program design and logic. School can teach you a lot, but it can't teach you what years of experience will teach you.

    2. Re:Your boss is right by naden · · Score: 1

      Exactly right .. a classic example I keep seeing is the attitude towards design and documentation.

      In uni, I was taught that design and documentation are equally as important as the code.

      In the workplace, I learned that the client and product is the most important. How it is implemented, or how much design, documentation is involved is secondary. Not that it isn't important rather that:

      A program delivered months early with secondary attention given to design and documentation is much better than a well designed, documented program that is delivered months late.

      --
      Funtage Factor: Purple
    3. Re:Your boss is right by AS400+Hacker · · Score: 1

      Bullshit. I didn't learn how to code well until I was in a real job. College teaches you theory but it doesn't teach you how a real business operates.

      However, the boss in the orginal post wasn't talking about college grads, he said that someone with 2 years of experience is as useful as someone with 10. He has a point. 80% of what you need to learn to be a useful programmer in a business you learn in the first 2 years.

      Of course that other 20% is pretty useful, especially during crunch time.

    4. Re:Your boss is right by Tuxinatorium · · Score: 1

      And lack of good design and documentation --> debugging hell

  4. C++ is slowly dying by Tirel · · Score: 2, Insightful

    C++ is being phased out by Java, C# and various scripting languages anyway, because they're safe and speed usually doesn't matter if you're just trying to get some non-time-critical work done. If I had a penny everytime C++ was used for string manipulation which could have been done in perl 100 times faster and more secure, I'd be a rich man right now. I guess that's the schools fault though, not teaching kids to use the right tool for the job. Of course, C++ is here to stay, but eventually the only place where it'll be used is going to be games, system programming and embedded applications (but even here, Java is starting to turn up, which imo is a mistake.)

    1. Re:C++ is slowly dying by TheWanderingHermit · · Score: 3, Insightful

      Of course, C++ is here to stay

      I can remember when everyone was saying that about Cobol. Everyone I went to college with who was a CS major (I wasn't) was getting jobs in Cobol, even though the Computer dept. didn't teach it. (They had to take Cobol through the business dept.)

      That's one part of the "good ol' days" I definitely do NOT long for.

    2. Re:C++ is slowly dying by AltaMannen · · Score: 1

      The parent mentioned games as a reason C++ is here to stay. I can't think of a single commercial game created entirely in Cobol, or anyone saying Cobol was the better choice for game programming.

      It does sound like a nice topic for one of those game programming books though, like "Black art of Cobol videogame voodoo".

    3. Re:C++ is slowly dying by TheWanderingHermit · · Score: 1

      I can't think of a single commercial game created entirely in Cobol, or anyone saying Cobol was the better choice for game programming.

      Thank heaven for small favors.

  5. 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.

    1. Re:sadly, it's a valid question by naden · · Score: 4, Insightful

      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.

      IMHO all good programmers should think about what will happen if they leave. That is, if you do use all the exotic features of the language then you have to understand that it will be harder for management to find a replacement for you.

      Hence things like templates/overloading whilst great for you and usually for the project .. is pretty bad for the long time survability of the project as generally there will be less chance of finding good C++ programmers than a crappy C programmer.

      --
      Funtage Factor: Purple
    2. Re:sadly, it's a valid question by Ender+Ryan · · Score: 1
      Eeek! A C++ programmer I am not, but isn't it insane to discourage using some of the best features of a language?

      Damn, no wonder programming is getting outsourced, most programmers are REALLY BAD anyway!

      --
      Sticking feathers up your butt does not make you a chicken - Tyler Durden
    3. Re:sadly, it's a valid question by garaged · · Score: 0

      I totally agree !! They are tring to get things running in their minimal expresion, so the new ones can come and do the hob for half the money

      --
      I'm positive, don't belive me look at my karma
    4. Re:sadly, it's a valid question by uradu · · Score: 2, Insightful

      > Wait till your boss asks you to "dumb it down" [...] because
      > others are having trouble understanding/maintaining your code

      The boss is right, and sadly because his is a largely self-fulfilling prophecy. He doesn't place any value in experience, so he hires any old kid out of college (because they're cheap and not for any other reason!!!). This in turn sends the message to the market that experience and skills aren't important, so new programmers (and I use the term VERY loosely) are less likely to pursue advanced concepts, effectively dumbing down the market. This of course makes it harder for the boss to find people with advanced skills, thus reinforcing his original opinion that experience isn't important anyway.

      I see this happening on a daily basis, it's not a matter of debate, it's a fact.

    5. Re:sadly, it's a valid question by AltaMannen · · Score: 1

      templates makes for some pretty tough debugging. if debugging tools don't fully handle templates you may not be able to see how the code works, and can be a valid reason not to use them. other issues may be that you're not very good at using the advanced features offloading bad programming choices on the people that use your features.

    6. Re:sadly, it's a valid question by Mr.+Slippery · · Score: 1
      but isn't it insane to discourage using some of the best features of a language?

      If a language feature makes code hard for others to understand, then it is not a good feature of the language. It should either not be used, or used only if accompanied by annotation that explains it.

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    7. Re:sadly, it's a valid question by Foolhardy · · Score: 1
      If a language feature makes code hard for others to understand, then it is not a good feature of the language. It should either not be used, or used only if accompanied by annotation that explains it.
      Harder to understand for who? If it's only hard for people who don't know all the language's major features, then those people are the problem. Templates are a major feature of c++. I can see code that does some obscure thing with macros or shadowing or somehting; due to a quirk of the language, but to exclude a major part of the language?
    8. Re:sadly, it's a valid question by Arthur+Dent · · Score: 1
      Heh, this brings back memories of when I was asked to re-write one line of code into 9 lines because some of the newer team members had trouble understanding it. I dimly recall that my original line was something like:
      someVal = <sometest> ? <another test> ? result1 : result2 : result0 ;
    9. Re:sadly, it's a valid question by Foolhardy · · Score: 1
      Hence things like templates/overloading whilst great for you and usually for the project .. is pretty bad for the long time survability of the project as generally there will be less chance of finding good C++ programmers than a crappy C programmer.
      Templates (when used properly) increase the maintainability of the project, by reducing code redundancy considerably. If no one has to use a language's advanced features, no one will learn them. If they wanted a progam written in C: use C, not C++ as they are different languages.
      BTW: I don't consider templates an exotic part of c++. Partial template specialization based on derivative types from another templatized class, yes.
    10. Re:sadly, it's a valid question by Clover_Kicker · · Score: 1
      IMHO all good programmers should think about what will happen if they leave.
      I totally agree.
      That is, if you do use all the exotic features of the language then you have to understand that it will be harder for management to find a replacement for you.
      You say that like it's a bad thing?!?!?!
    11. Re:sadly, it's a valid question by llefler · · Score: 1

      I think the ternary conditional operator in C++ is about the most evil feature in the language. I've often wondered if someone didn't just add that so they could use it in the next obfuscated code contest.

      The problem is that most programmers don't document their code. So if I'm having to troubleshoot that, not only do I have to figure out what it's doing, I also have to figure out if it's doing what you think it is supposed to be doing.

      But I have an easy way of dealing with it. Just put in the coding standard that you either document your quick hacks at a level the CIO can understand it, or you don't use it.

      --
      It is amazing what you can accomplish if you do not care who gets the credit. -- Harry Truman
    12. Re:sadly, it's a valid question by rcpitt · · Score: 1
      I've forgotten more computer languages than most current programmers know even existed - but I'll never call myself a programmer. In fact, the guys I work with have vowed to break my fingers if I write any code.

      On the other hand, I write better documentation than most of them, and can read their code and understand it. Our team is better for this synergy - but the problem in general is that this synergy doesn't exist very often.

      The biggest programming problem IMHO is the fact that most programmers don't know how to write English (or their chosen native tongue) and even if they do, they don't know when and why to write it.

      The people I like (as a manager) are those who understand that the corporation is paying them to assume they might get hit by a bus tomorrow, and someone else is going to have to keep their pet software running for the next 50 years; and that the software will for some reason be still in use 50+ years from now with 4th generation future newbies having to look after it.

      Making understandable and supportable code is necessary. Maybe COBOL wasn't such a bad idea afterall (just kidding ;)

      --
      Been there, done that, paid for the T-shirt
      and didn't get it
    13. Re:sadly, it's a valid question by LordMyren · · Score: 1

      IMHO all good programmers should think about what will happen if they leave. That is, if you do use all the exotic features of the language then you have to understand that it will be harder for management to find a replacement for you.

      so we should or should use these "exotic" features?

      ps: at two years programmers still ask others for basic implementation help (whats a function which...). at ten years they have enough reference text to know where to look.

    14. Re:sadly, it's a valid question by Anonymous Coward · · Score: 0

      Yep this happened to me too. And the even worse part about it was that I /was/ using VB! I was instructed to use simpler algorithms for getting things done so others could understand them even at the price of efficiency.

    15. Re:sadly, it's a valid question by pla · · Score: 1

      If a language feature makes code hard for others to understand, then it is not a good feature of the language.

      My grandmother has trouble understanding functions, variables, and flow-control. Should I not use them?

      Arguments like this absolutely infuriate me. I code to the best of my ability. I may have little loyalty to an employer who might up and outsource my job to India next week, but damn me if I don't produce good code.

      If someone that replaces me can't read my code due to making full use of the language, then the company has failed to replace me. Nothing more, nothing less.

    16. Re:sadly, it's a valid question by Mr.+Slippery · · Score: 1
      My grandmother has trouble understanding functions, variables, and flow-control. Should I not use them?

      If you reasonably expect that your grandmother will have to debug your code one day, yes.

      Or, comment and document your code so thoroughly that even Grandma can understand it.

      If someone that replaces me can't read my code due to making full use of the language, then the company has failed to replace me.

      If you can't be replaced, you can't be promoted, or moved on to other and more interesting projects. I recommend making yourself highly replacable. Indeed, being skilled enough to make yourself highly replacable, will make you irreplacable.

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    17. Re:sadly, it's a valid question by bluGill · · Score: 1

      The ternary operator is VERY useful and creates very readable code, when used correctly.

      I started a new job, and the previous program used it all over. The first couple times I encountered it I thought it was strange and had to go back to the books to figure out how it worked. After that I knew it. Now I find I use it nearly as much a a simple if. Used correct ? : is much more readable than if else.

      Correct useage is:
      foo = bar() ? MAGIC : foo++;
      It takes some thinking the first time you encounter it, but once you know it, you have clearer code, as you have indicated that foo is important here. Compare to:
      if(bar()) {
      foo = MAGIC;
      } else {
      foo++;
      ;
      Which indicates that bar() is important. It also takes up several more lines.

      Maybe that is too subtile. Learn how to use the operator, and then look for times to use it. It isn't evil, it is useful.

    18. Re:sadly, it's a valid question by Anonymous Coward · · Score: 0

      I've seen people with CS degrees, who suck beyond all belief. Having a CS degree says nothing about your skills, some of my colleagues are the living proof.

      It's just another high horse.

    19. Re:sadly, it's a valid question by llefler · · Score: 1

      Actually, I would prefer:

      if(bar()) // tell me what bar() does, bar is a lousy name for a boolean function
      foo = MAGIC;
      else
      foo++;

      or

      if(bar())
      {
      foo = MAGIC;
      }
      else
      {
      foo++;
      }

      White space doesn't cost anything. I get annoyed at people who choose a construct because it's "less typing" or "fewer lines". If a function gets too long to read on the screen, we have this nifty device called a printer. Although it probably means your function could be more modular.

      The problem with doing things cleverly is that they are more difficult to debug. And really, the compiler/computer don't care. It's just a stream of instructions. But for the programmer it is a problem when it comes time to maintain the code. If you're working on someone else's code you think: "that guy was a hack, what did he think he was doing", especially if that programmer is no longer around. When it comes to modifying your own code 2 or 3 years down the road, you will look at it and say: "what the hell was I thinking?"

      Here is a quote for the C programmers out there....

      "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." Brian Kernighan

      --
      It is amazing what you can accomplish if you do not care who gets the credit. -- Harry Truman
    20. Re:sadly, it's a valid question by bluGill · · Score: 1

      Assume as everyone else does that bar is a filler for a more descriptive operations. When contriving examples it is often hard to come up with something reasonable that fits in a few lines.

      I agree that cleaver code is to be avoided. I disagree that ? is a sign of clever code. It is a sign of someone who knows the language.

      You could write
      if(foo == bar) {
      x = doSomething();
      } else {
      y = SomethingDifferent();
      }
      with the ? operator, but it wouldn't be clear. The example I gave previously is clearer using the ? operator. It sits on one line and makes it clear that changing foo is important. The later example needs to make it clear that different things are happening depending on the situation.

      Whitespace is a different argument (I don't write code like I just posted it, I'm just too lazy to figure out how to make the above look nice in html). Overall whitespace is good, but the style you posted has the disadvantage of taking more lines, meaning you can see less code on screen at a time and that makes it hard to understand code, despite the other advantages. But there is a reason whitespace arguments are considered religious: no two people will ever agree perfectly.

  6. In most areas, 2 years vs 10 by DaRat · · Score: 5, Insightful

    In most areas, 2 years is enough time to get someone fairly experienced (they know what to do), but more time is required to have enough experience to become polished and an "expert." For example, after 2 years or practice, you might be an experienced archer, horseman, or cook, but, more likely than not, it takes more time before the knowledge becomes instinctual, you have enough experience to know the various things that can go wrong (how to figure that something has gone wrong based on small clues and how compensate for them), and you can even begin compete with the best.

    An analogy. Your boss's son is accused of a crime that he didn't commit. Would he rather have someone who is 2 years out of law school to defend him or someone who has 10+ years of standing in front of juries? Both, in theory, know the law equally well and the general theory of how to defend a client. The 10+ year person who has more experience is more likely to know what will work with juries, how to read them, how to work with judges, how to work with forensic experts, and how to make the best presentation.

    1. Re:In most areas, 2 years vs 10 by Anonymous Coward · · Score: 0

      Your analogy works against you: It means that if you absolutely positively have to have the best man for the job, experience counts. But is the work of (low level) programmers really worth that much? If you pay attention in CS you know that the important decisions are not in the code but in the design. A code monkey can simply not make mistakes which are expensive enough to warrant a person with a decade of experience. If a more experienced person does the job for the same money, that's fine, but the experience is not worth as much more as the code guru may think it is.

  7. Your boss is almost right by Captain+Kirk · · Score: 3, Insightful

    Most programmers take three years to really 'get' C++ and once they do, any additional experience is of value if it broadens out to particular API. So for example, if I'm looking for a PS2 developer with vector unit experience, an applicant with 1 year of C++ on a PS2 that includes some low level experience will be preferred to an applicant with 10 years MFC C++ experience.

    Essentially, its the application environment that is the valued experience after 3 years of C++. Less than 3 years, I need to see if they actually know C++. So your boss is only a little wrong.

    1. Re:Your boss is almost right by sweet+cunny+muffin · · Score: 1

      Three years! Any half decent programmer could pick up C++ in a month with a toy project, easily.

    2. Re:Your boss is almost right by man_ls · · Score: 1

      The fact that someone who programmed in X 12 years ago could still do so today speaks not to the skill of that programmer, but to the fact that obviously those standards are 12 years behind the times.

    3. Re:Your boss is almost right by The+MESMERIC · · Score: 0

      To say X is 12 years behind the times is a lil contradictory.
      It works, people are glad with it - I for one.
      And well done you Microsoft-Lovers that is how MS repays you all: TCPA

      True that there are ppl who feels X should evolve

      I really wished I had known about Linux ages ago and not MS technologies ...

      I am sure I would be more employable (Java,Oracle,Perl,Ansi C, VA Smalltalk .. etc), more knowlegeable and happier.

      To have accumulated C#,MS Office VBA,ASP,Transact-SQL for me its nothing short of an embarrasment.

    4. Re:Your boss is almost right by Mr.+Slippery · · Score: 5, Insightful
      Any half decent programmer could pick up C++ in a month with a toy project, easily.

      Depends on what you mean by "pick up". I consider myself a very good coder, with over a decade's professional experience and about five years of working with C++. But it's a very "deep" language; I doubt anyone who's not named Stroustrup fully understands it completely. There are features of it I've never even touched. (The first C++ environment I used, back in the early 90s, didn't even have exception handling, much less the STL.)

      In contrast, I've been working with PHP for about a year, and I don't think there's much significant to it beyond what I've seen. It's a shallow language.

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    5. Re:Your boss is almost right by Anonymous Coward · · Score: 0

      At one of the presentations at SD West (last month) the question was "how many here are experts in C++." Nobody raised the hand.

      The continuation: "This is a little experiment I do. Nobody ever raised hand to this question. At one of my previous presentation Stroustrup was in the audience, and he did not rise the hand."

      I think it is easy to see the difference between "pick up" and be good at it. Just read the code you wrote 3 years ago. If you are still proud of it, maybe it is the time to stop programming, because you are stagnating.

  8. Double Edged Sword by naden · · Score: 4, Insightful

    Because technology is changing so quickly, having a lot of experience with a particular technology (in this case C++) can be both a good thing and a bad thing.

    Good things: Lots of inherent tip & tricks about software design, what works in certain situations and generally a better understanding of what the clients/managers want.

    Bad things: Natural inclination to stick to the technology they know best rather than whats the best in that particular situation.

    I tend to think people with a lot of development experience should move into becoming technology managers. This is where their experience is most valuable and they will tend to be better at relating to and understanding programmers and the software development lifecycle.

    --
    Funtage Factor: Purple
    1. Re:Double Edged Sword by flabbergast · · Score: 4, Insightful

      Because technology is changing so quickly, having a lot of experience with a particular technology (in this case C++) can be both a good thing and a bad thing

      I'm a little puzzled by this comment and a lot of comments that have been (sorry to pick on this one). Yes technology is changing, but not in the way implied here. Technology is changing our lives, but technology itself is not changing so quickly that C++ will be phased out any time soon.

      Yes, now we have wireless computers when 5 or 6 years ago that wasn't possible for the consumer. And 10 years ago most people would've scratched their head if you said "World Wide Web" and email. But again, these technological changes aren't really THAT much of a quantum leap forward when it comes to programming. Its still a whole bunch of if/then, while/for loops, etc, put together cohesively to perform a job.

      Further, think about how much legacy code is out there in C/C++. Look at Linux, FreeBSD etc. Companies are still looking for Cobol programmers. People aren't going to magically say "Oh my gosh! This program, that we've been writing for 10 years and 100s of programmers have worked on shouldn't be written in C! It should be written in Python! Let's rewrite it!"

      So please don't sit there and say "C is dead! Long live X!" because of rapid technology change. TCP/IP has been around for over 20 years, and ethernet, C and the microprocessor for over 30 years. They're not going anywhere.

    2. Re:Double Edged Sword by nickos · · Score: 1

      I can't see C++ dieing anytime soon. It remains the best way of creating native executables, and really is a "better C". Unlike Java/C#, it's also independant of any commercial interest.

      An aside - if I'm to be convinced that running bytecode/script on a virtual machine/interpreter is really the way forward, I must first be convined that I'm getting some benefit over C/C++ "check at compile-time" behaviour. A bastardised C++ with garbage collection (and what's wrong with smart/auto pointers) is not enough.

  9. 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.

    1. Re:try tangible analogies by Anonymous Coward · · Score: 1, Insightful

      That analogy isn't too great. I have an old car that I fix myself and it's the only car repair experience I have. Since it's quite old, there are very few professional mechanics who know it better than myself. Recently this was made painfully obvious when I swapped in a fresh long block and was having persistent backfiring. I took it to ten different professional mechanics and not one of them could figure out the problem. Eventually it turned out it simply needed to be taken for a nice long drive and it came into full power. In this case, the pros all struck out and it turned out the amateur had it right the first time and had merely lacked confidence to know the job was done. So, even with a car, a pro is not necessarily the better choice.

    2. Re:try tangible analogies by cloudmaster · · Score: 1

      I'd rather have the mechanic who's worked on lots of cars, and spends his weekends working on his own car. I go into Auto Zone and ask the parts guy - who's been there for several years - for a square-flange carbuerator base gasket, and he asks "what's it going on?" It doesn't matter what it's going on - the damned gasket is the same one that was used on every Holley/Carter equipped car from the 50's up to the 70's, and on most any aftermarket intake manifold up to today. There's *1* gasket - why doesn't the parts guy know that?

      Then, I can go to the NAPA, where a kid's been working for a few weeks. He's a lot younger than the guy at Auto Zone, and has a lot less parts store experience in terms of years. However, he knows what I want without me having to pull a car model out of my arse ("I dunno, try a '70 LS6 chevelle's gasket").

      Years of experience don't automatically add up to quality of experience - they're just the easiest way to guess at experience. I've worked with programmers who have degrees and experience, but can't wrap their head around simple looping structures, and I've worked with people who have no professional experience but can write code with the best of them. Much like a credit score, "years of experience" is just a quantifier that has the right ratio of ease-of-use to accuracy for the typical management type. It's not completely accurate, though, just very easy to use.

  10. 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

    1. Re:Quantifying Programming Experience is Hard by baldass_newbie · · Score: 1

      The Greek root of 'technician', i.e. 'techne', means 'applied art'.
      Look at this definition for technology.
      Guess the Greeks figured this out a while ago, eh?

      --
      The opposite of progress is congress
    2. Re:Quantifying Programming Experience is Hard by Anonymous Coward · · Score: 0

      The main point is that bosses don't want to herd artists because artists are HARD to herd. It's an expense of its own, offsetting the value gained by tapping into their expertise. From a boss perspective it's much more reasonable to employ replaceable code monkeys and only very few "artists".

  11. It isn't the language so much as structuring data. by ubiquitin · · Score: 1

    Face it: most business problems have a striking similarity, especially when opposed to handling binary data types such as in image processing. Error handling for basic text and numeric data constructs is something that should be mastered within a few years. The difference between someone ten years into IT and someone just two years in is that they know the whole stack better: from operating system to database setups to application layer design. Odds are that they'll be more adept at building more secure systems if they've been around longer too, meaning systems that are more robust/reliable, better prepared to handle growth (scaling up AND scaling out), more highly available, etc.

    Structuring data and networked systems for the long haul is and will remain a valuable skill. Particular languages, while important skillsets, are just one piece of that puzzle. Have your boss investigate the candidates' proficiency with the security professional's Common Body of Knowledge (www.isc2.org) and I'll doubt the 10 year coder and 2 year coder will rate the same on it.

    --
    http://tinyurl.com/4ny52
  12. In games... by Anonymous Coward · · Score: 5, Insightful

    In game development somebody with 2 years of full-time experience has most likely only completed one major 18-month project. From personal experience, it took me three projects (and about five years) before I really figured out how little I knew and I started to become comfortable with diving into unknown code to fix it.

    The quality, consistency and performance of the code I write now (after 7 years of C++) blows away anything I wrote as recently as two years ago. And I'm sure I'll continue to improve. Every day I still learn something new. If not a new problem, a new approach to a problem - or a more elegant and efficient solution.

    A programmer with 2 years experience and a somewhat grizzled 10-year industry veteran are wildly different beasts. One thinks they know everything, the other knows how little they really know - their problem-solving and abstraction skills are much more concrete.

    I'm not in a position to comment on the exact nature of the C++ programmer positions that the article submitter was talking about. But it almost sounds as though they were focusing on a single aspect of development - expecting a programmer to specialize in one thing and never do anything different. If you spend two years doing nothing but, say, building linked lists - your approach is not likely to be very different after 10 years of doing the same.

    But not only does this level of overspecialization sound horribly, horribly wrong - it builds unversatile programmers.. but it also sounds like such a position would be mind-numbingly boring. However - I'm sure some people could do it, if they wanted to work without learning anything different. Perhaps your recruiter has only encountered such programmers before.

    1. Re:In games... by cgenman · · Score: 1

      I've worked with game programmers with varying degrees of experience, and I must say the more experience the far fewer bugs come down the line. A fresh-faced programmer just learning the system might take 3 or 4 tries to get bug-free code into our hands, while a 6 year veteran will know the exact problem the moment they see the stack, and will be able to fix it quickly. The 12 year veteran will implement a new chunk of code and have a very good chance that it will be bug-free.

  13. Ask your boss by Anonymous Coward · · Score: 4, Insightful

    If he thinks someone with fewer years experience is just as capable of doing his job. (He'll probably say no.) Ask him why.

  14. He obviously is not a professional recruiter by Molina+the+Bofh · · Score: 3, Funny

    ...if he was, he'd be looking for people with 10 years experience in C#. That'd be so typical of recruiters.

    --

    -
    Roses are #FF0000, Violets are #0000FF, find / -name '*base*' |xargs chown -R us && mv zig greatjustice
    1. Re:He obviously is not a professional recruiter by thegrassyknowl · · Score: 1

      My friend recently went to an interview for a job that involved C#. They were looking for someone with 5 years experience with the language. AFIK C# is not quite that old yet.

      Needless to say, they wanted someone who'd had 5 years experience in C# and gone back in time a couple of years to apply for their job.

      --
      I drink to make other people interesting!
    2. Re:He obviously is not a professional recruiter by Anonymous Coward · · Score: 0

      So what? I have more than 5 years experience with C#. The basics where even taught long ago in highschool, although they called the language by a different name, Pascal IIRC. Sure, the syntax changed a little and they added a few new concepts, like OO, but I stayed on the ball and assimilated improvements as soon as they were released. I've had experience with C# long before it was called C#.

    3. Re:He obviously is not a professional recruiter by Anonymous Coward · · Score: 0

      You can know everything there is to know about C#, but you can't possibly have had 5 years experience with it (unless you were on the design committee for the language).

  15. He's right by Da+Masta · · Score: 1

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

    Sticking to the exact wording, he's exactly correct. It doesn't really take more than two years for a professional to get familiar with all the nuances and nuisances of any programming language, including C++. Technical expertise really doesn't progress transitively beyond those years.

    What you should be trying to convince your boss is of everything else around this experience. Mention the depth of your acquisitions -- your understanding of the field, your knowledge of the development process, your success in leading projects, your ability to control (or rather, hide) your ego -- all to whatever extent.

    Every skill has its threshold, beyond which advancement is stagnant. Your boss figures he's discovered that point. He might not be in the same ballpark but he's definitely playing the right game.

    1. Re:He's right by Halfbaked+Plan · · Score: 1

      I think maybe what his boss was hinting around at, and you're maybe gently doing it as well, is that anybody still programming after ten years is probably dead wood that should be culled.

      --
      resigned
  16. 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.

    1. Re:ISO 14882 by Halfbaked+Plan · · Score: 3, Insightful

      Those are all fine journals and excellent resources from the programming culture. However, most bosses don't view programming as an artisan's craft.

      Using all the fancy trendy methodologies of the day is dangerous in day to day business, because it adds a tremendous amount of complexity to what needs to be straight-forward code. Businesses are NOT enthusiastic about hiring a priesthood of artisans to run their backoffice.

      --
      resigned
  17. I agree, but possibly for different reasons... by maunleon · · Score: 4, Insightful

    I think people who have 12 years of experience and are still "programmers" are wasting their experience, and I may be agreeing with your boss here.. but probably from a different point of view.

    If you have 12 years of experience, by now you should have collected enough experience to have moved beyond "programming." Your skills are better spent in architecture and software design, and not coding. After a while, the programming language becomes irrelevant, and yes, you can trust the 2+ years programmers to implement what you design. You may be a hot shot programmer, but you can't match the speed with which a proper design is implemented by 12 code monkeys working in parallel.

    Yes, I do know that are people who like programming. However most people are expected to grow and develop, and I think architecture/design is on the logical path away from programming.

    Just my $0.03.

    1. Re:I agree, but possibly for different reasons... by samael · · Score: 1

      Possibly better programming is the way away from programming?

      Knowing more APIs, more languages, more systems.

    2. 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)
    3. Re:I agree, but possibly for different reasons... by Mr.+Slippery · · Score: 2, Insightful
      I think architecture/design is on the logical path away from programming.

      Master carpenters doesn't stop sawing wood, though they may leave the framing work to the apprentices and focus on the fine detail work. A master plumber still sweats pipe. Master surgeons don't stop cutting and sewing.

      Master software developers analyze, design, and implement code. He who stops coding will lose the Tao of Programming, and his designs will suffer. The belief that actal coding is someone "beneath" experienced developers is responsible for much of lack of quality in software. Code written by a master developer not only serves as an example for the apprentice, it keeps the master grounded and aware of details.

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    4. Re:I agree, but possibly for different reasons... by Alan+Shutko · · Score: 1

      I'd have to disagree. In general, you can't trust a 2-year programmer to write maintainable code, no matter how good the design.

      In addition, unless you're implementing a very boring, commonplace system, the architect needs to have experience implementing it so that s/he learns the picky little unexpected details that end up changing the overall design. Otherwise, you end up with a pretty set of UML docs, and a codebase which is kludge upon kludge dealing with the real world.

      Knuth has some good comments on this in, I believe, his Digital Typography book.

    5. Re:I agree, but possibly for different reasons... by Anonymous Coward · · Score: 0

      That is why God invented code reviews, standards, unit testing, and functional testing.

      Also, if you can't trust your developers, pair them up a'la extreme programming.

      the designer shoul definitely be up on the technology. However code quality is the job of the team lead, not the designer.

      I think many people here don't understand the proper structure of a development team.

    6. Re:I agree, but possibly for different reasons... by Anonymous Coward · · Score: 1, Insightful
      If you have 12 years of experience, by now you should have collected enough experience to have moved beyond "programming."

      This is a mistake that a lot of companies fall into where people who are really good in one area get moved into another that might not suit them as well. I've seen a lot of people who have proven themselves as great programmers, architects, etc. and so they get moved up to management, but then make really horrible managers. I think a lot of companies should develop paths where you can stay "in the trenches" and become an expert at what you are good at and not nessessarily move on to something else (unless of course you want to).

      Also, I don't think you can really consider yourself a programmer if you don't already know a little about software design and architecture. If you've been programming for a decade and haven't picked up even the most basic elements in those areas, then you have been doing something wrong. This is the difference between a programmer and a code monkey. The code monkey just physically writes the code to a someone else's solution. The programmer is the one who thinks about the problem at hand and comes up with the solution. Anyone can pick up a copy of "C++ in 24 Hours", and while you might have the syntax of the language down, that doesn't mean you know how to think through a problem and effeciently solve it.

  18. Arrogance by xenocide2 · · Score: 0

    People with 10+ years experience tend too overvalue their skills and experience ;)

    --
    I Browse at +4 Flamebait

    Open Source Sysadmin

    1. Re:Arrogance by The+MESMERIC · · Score: 0

      I totally disagree
      At least in my experience, I found the more experienced the programmer, the more "humble" the guy.
      Not humble with silent pretense and am "better-than-thou attitude"
      Humble cos anyone in programming and software design knows that it hardly ever becomes easy.

      Programming is and will always be a very hard subject to master

      On the other hand, I've never met such arrogant plonks as new programmers.
      It figures, I mean the less you know - the more you think you know.

  19. 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.

    1. Re:Your boss is right. by Screaming+Lunatic · · Score: 1
      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.

      I think you've spent too much time in academia. I don't know of many professors who have delivered projects that consisted anywhere close to 100KLOC.

      I learned more in my first 6 months in industry than I did during my 4 years of undergraduate study.

    2. Re:Your boss is right. by rjh · · Score: 1
      I think you've spent too much time in academia.
      I spent plenty of time in the industry, thank you. Now I'm back in school for an M.Sc. as a career move, not as a shift to an academic career.

      There are plenty of perfectly legitimate reasons to pursue advanced degrees that have nothing to do with committing to academia. One of them happens to be "so that I can get a better job and out of the programming ghetto".
      I don't know of many professors who have delivered projects that consisted anywhere close to 100KLOC.
      But if you're not in academia, how many professors do you know and do you know them well enough to know their professional resumes? I know three professors who've delivered large projects for industry, and that's just in a fairly small department at one school. (Heck, my advisor still continues to hack on a 10KLOC LISP library that he maintains by himself.)
    3. Re:Your boss is right. by Anonymous Coward · · Score: 0

      Well, I have worked on two 1,000KLOC but you miss the point. Academics are not supposed to be code monkeys. Rather they are supposed to develop new ideas and techniques for code monkeys (how successful we are at that is up for debate).

    4. Re:Your boss is right. by tverbeek · · Score: 2, Insightful
      I'm a graduate student. As such, I see a lot of code both from students and from professors.

      So in other words, pretty much everyone younger than you and older than you is either too inexperienced or set in their old ways. You're right at that "sweet spot" where you've got it all down but are still firing on all thrusters. The thing is: I thought that about myself when I was 14, when I was 22, when I was 30, and probably will when I'm 48, when I'm 59, and when I'm 67. It's quite possible that I was/will be wrong at all of these points.

      --
      http://alternatives.rzero.com/
    5. Re:Your boss is right. by efflux · · Score: 1
      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.

      This is perhaps the best argument for getting your undergraduate at a *small* school. You don't have to buy into the prestige game to get a decent education. Of course, graduate school is an entirely different situation.

      --
      Do I contradict myself? Very well, then I contradict myself, I am large, I contain multitudes. -- Walt Whitman
    6. Re:Your boss is right. by Xepo · · Score: 2, Insightful

      I may be wrong about this, I easily could be. But, I think programming is one of the fields where experience matters the *most*, not the least. But, I'm talking real experience, as in, not measured in time. That 12 year programmer that has been doing the same thing over and over has very little experience, while the other one has a lot.

      There are so many nuances to programming. I've been programming for 10 years, and I still find things in my primary language (C++), that I had either never heard of, or didn't know. For example., how much experience programming does it take to run into the fact that you can't store derived classes in a vector of base classes, or actually understand all of the function objects and such from the STL? Now, sure, simple logic, if you understood the limitations of your system, would figur eout the first one, and the second is rarely used, but the whole STL is part of C++, it's in the C++ standard. And I'd bet very few programmers less than 5 or 6 years into it know much of it.

      There are just *way* too many things to have to watch out for, to have to know about, for that long of a difference to make no difference. Now, it may not matter to the company the quality of code that comes out of their programmers, and, from that, it may not matter how much experience their programmers have, but that's not the same as saying it doesn't matter if you have experience.

    7. Re:Your boss is right. by Anonymous Coward · · Score: 0

      Like everything, it depends.

      For every 12 year C++ programmer that knows the language back-to-front, there's the guy who hasn't picked up any new features for the last 8 years (ie STL).

      Then there's the guy who refuses to use Feature X because it didn't work in Compiler Y five years ago.
      Then there's the guy who refuses to use your coding standard because he's has own version that he always uses.
      Then there's the guy who wants to change the requirements to fit his supercool code library he stole from his last company.
      Then there's the guy who took the coder job but really thinks he should be the senior architect.
      Then there's the guy who decides the schedule is unrealistic and gives up rather than play project politics with management.

      Fact is that experience is a negative more often than a positive. Unfortunately.

    8. Re:Your boss is right. by Screaming+Lunatic · · Score: 1
      But if you're not in academia, how many professors do you know and do you know them well enough to know their professional resumes? I know three professors who've delivered large projects for industry, and that's just in a fairly small department at one school.

      Like I said, I spent 4 years doing an undergrad and did work in a research lab at this time. Most professors, especially the ones on the tenure track have not been in industry for at least a decade.

      They may be able to teach programming. But, generally, are not able to teach development. There is a distinction there.

      A lot do not have experience delivering polished products based on changing market requirements, tight schedules, with large development teams, strict QA requirements, and a tight budget.

      They don't work with technical writers, QA, product management, marketing & sales, and executives on a day-to-day basis.

    9. Re:Your boss is right. by kwoff · · Score: 1

      I'm not sure what this has to do with 12 years of actual work experience.

    10. Re:Your boss is right. by cperciva · · Score: 1

      The students have an excuse for lousy code. The professors don't.

      You might like to take a look at the full titles of said professors: "Professor of Computer Science". Not "Professor of Computer Programming", and certainly not "Computer Programmer". The greatest architects of the world are often entirely ignorant of the latest techniques in plumbing, welding, and electric wiring.

      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!"?


      No, I'd think "twentysomething programmers are cheap. Let's hire two more, for the sole purpose of cleaning up after the greybeards and making sure that their code compiles". Let the experts do what they're good at; hire a janitor to do the janitorial work.

    11. Re:Your boss is right. by Anonymous Coward · · Score: 0

      Your comments really struck a chord with me, because I have noticed the exact same thing at my company (major US bank).

      We have guys who would be VERY hard pressed to find another programming job if they ever got laid off, because 98% of their knowledge is so system specific, and they've convinced themselves that because they know all the ins and outs of our archaic DOS-based mortgage processing system that they are programming gods. Yes, when the system goes down, they can fix it. Great. Ask them to program something else that has nothing whatsoever to do with said DOS-based mortgage system, and they are totally lost and confused.

      The sad thing is that the ancient DOS-based mortgage system is on schedule to be replaced by a new J2EE system early next year. These guys are going to be royally screwed in about 11 months.

  20. Turn It Back On Your Boss by TheWanderingHermit · · Score: 5, Insightful

    Ask him if his years of experience matter, or if a manager with 2 years experience can do as well as one with 10 years of experience.

    He'll probably say it is different, since his skills involve people. You can point out (if you want to piss him off) that his people skills can't be that great, or he wouldn't be degrading you the way he is. In 12 years someone in ANY field has time to watch the changes, learn the trends, figure out which way things tend to move, and see many, many things that don't work and learn to avoid them for things that do work.

    I have been programming seriously for a few years, but will be moving on beyond any programming soon for my passion: writing. (I write poetry and screenplays and came close to writing for Trek:TNG at one point.) I have no problem saying programming is as intuitive as writing poetry and requires the same experience and practice to improve one's art and skill. It seems that your manager doesn't understand this and thinks computers, being made up of bits, can only be but so complex.

    Or, there's the other side of the situation: you can't enlighten someone who thinks they know everything. Obviously your boss, who has likely been his job for a while, has NOT learned much about people, but thinks he has. You can't teach people like that. In his case, there is probably no difference in the skills he knew in his job after 2 years and those he learned in the next 10 -- he's too busy saying he knows everything to learn anything.

    1. Re:Turn It Back On Your Boss by pfdietz · · Score: 1

      If he says programming doesn't involve people skills, I want to know what he's smoking. That ten year veteran will have picked up the skills in working with others. He'll have experience in the process of software creation that the freshout thinks is all bureaucratic nonsense. He'll know how important it is to test, and document, and not do something for the wrong reasons. He'll have seen projects go down in flames when these sorts of things weren't done right.

  21. 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.

    1. Re:Maybe it's a sociological phenomenon. by johnwroach · · Score: 2, Insightful
      8) He doesn't believe the difference between 10 years and 2 years of experience is with the difference in salary.

      It's all about the money, people.

  22. Don't all things come with experience ? by Jtoxification · · Score: 3, Insightful

    Here's but a tiny fraction: Bitwise arithmetic, polymorphism, virtual functions, template templates, operator-overloading, cast-overloading, low-level memory pointer casting tricks, optimizations, prime fields, and of course the STL ... these things alone take quite a bit of time to learn. If your boss believes that even this chunk of concepts can be digested into a form in such a way that could possibly give equal footing to people with experience levels differing by as much as 1/6th, then he's got some explaining to do.
    Still, maybe a person with a background in C with C# and/or Java could theoretically master C++ in a short period of time.

    But, let's just ignore the semantics and tricks, for a second, and simply assume it IS easy to pick up in two years, since not all people learn at the same speed, so there should be at least a small-medium-sized amount of 2year-experienced brilliance ... then we must focus on style and habit:
    Nutshell: The differences are familiarity, code modularity, and time/energy efficiency.

    Verbose: By 12 years, it's like reading and writing. You debug your code before you write it. You know every possible mistake your code could come up with, across various compilers, and how to deal with one when it arises -- since you know that no matter how good you are, errors will crop up. On the other hand, two years of experience can still have you wracking your brain for a hideously irritating and trite error that you've somehow overlooked.
    Your ever-growing library of re-useable code snippets can, by now, create at least a working framework for anything under the sun within any requested period of time.
    Speaking of time, you can save lots, since you're not trying out ideas which are new to you (and old to everyone else) ... you're doing what works. You're not still practicing "binge" programming where you work 11 hours at a time or more (20+ at a time for those in late teens/early twenties who want to destroy themselves) -- instead, you work smartly, with breaks, and in a more reasonable fashion. You have a planned structure even before you start to code. You're so familiar with the language enough that if there is something new, you assimilate it quite easily into your own ADT<tools> of tricks.

    That is what experience means, and it is attainable by anyone ... all in good, respected time.

    PS - C++ ain't goin' nowhere. And if you java/C++ programmers want somethin' really interesting to chew on, go to s-mail.org and look at this guy's minimalAPI src2src conversion code. :-)

    --
    --I gots 99 problems but a new machine ain't one!
    AMD! Asus! Whoot! 6 years!
  23. 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.

    --
  24. Quantifying Programming Experience is Hard-OSS by Anonymous Coward · · Score: 0

    Maybe he needs to borrow an idea from artists, and have a porfolio? The more variety the better.

  25. Education doesn't matter either. by Anonymous Coward · · Score: 0

    You're boss's headcount is the only thing that matters.

  26. I agree with your boss by Anonymous Coward · · Score: 0

    So does the mythical man month. I find it funny how people are quite willing to quote other parts of that book like it's the bible of software development, but conveniently neglect the fact that it also contends that productivity doesn't have much correlation with experience. Perhaps that makes people feel uncomfortable (or at least makes their billing rate uncomfortable)?

    It makes perfect sense to me ... I feel software development is more about intuition and instinct than experience and learning. Good software developers have a gut feel for what is the right path to take - bad ones tend to rely on "I read we should do this" or "we did it this way on the last project, so we should do it that way on this one".

    Anyway, I recently wrote more about this (shameless plug): http://dontletsstart.com/entries/2004/04/15/experi ence-a-valueless-commodity/

    1. Re:I agree with your boss by Anonymous Coward · · Score: 0

      From your website:

      SQL/DB Error:
      [Got error 28 from table handler]
      SELECT DISTINCT * FROM wp_posts WHERE 1=1 AND YEAR(post_date)='2004' AND MONTH(post_date)='4' AND DAYOFMONTH(post_date)='15' AND post_name = 'experience-a-valueless-commodity' AND post_date_gmt ...

      It looks like you have some lessons to learn yourself (what a horrible schema, btw). ;)

  27. Fscking Mozart. by jotaeleemeese · · Score: 2, Insightful

    He should have grow and developped.

    Just to be a pesky composer, my goodness.

    He could have been a respected conductor.

    A librettist.

    Or even better, an opera empresario.

    Most people are expected to grow and develop....

    --
    IANAL but write like a drunk one.
    1. Re:Fscking Mozart. by Anonymous Coward · · Score: 0

      Mozart sucks. His music is sissy and repetitive. I'm beginning to wonder if he was gay or something.

    2. Re:Fscking Mozart. by Anonymous Coward · · Score: 0

      Oh great one, show us your masterpieces. Then you'll have room to talk.

    3. Re:Fscking Mozart. by Anonymous Coward · · Score: 0

      1. He could deliver the entire product himself.

      2. He was dead by 35.

    4. Re:Fscking Mozart. by CptNerd · · Score: 2, Funny
      1. He could deliver the entire product himself.
      2. He was dead by 35.

      Sounds like the ideal software developer, from a management perspective.

      --
      By the taping of my glasses, something geeky this way passes
  28. Typical /. answer.... by jotaeleemeese · · Score: 1

    Since most /.ers are late teens or early 20s the answer was obviously predictable.

    So far most comments pat the ignorant boss in the back for being so insightful, well, the pat comming mostly from people with hardly any experience in the working place has very little value.

    Now, from old fart to whinney youngs, let me tell you this, prgraomming mad skillz can be put to better use if you have lived a bit more.

    Young programmers have a tendency to reinvent the wheel because simply they have not seen other wheels before. For a company that is an absolute tragedy. Older, more experienced prgrammers bring with them something called perspective and corporate awarness.

    Thye are the people that will tell you if something has done before, it perhaps ther is a piece of code, an script, an algorith, that solves a given problem.

    The best programmer is not the one that programs 1000 lines of code to solve one problem, but the one that remembers sombedy else wrote a similar program that can be modified with little effort.

    That is why experience is important.

    --
    IANAL but write like a drunk one.
  29. 12 years' experience -vs- 2 years six times over by waterbear · · Score: 2, Informative

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

    In almost any field of skill, you get some people who eventually push out the limits -- they almost never stop learning and advancing -- and there are others who hardly advance beyond the basic skill level, if they achieve that.

    Your boss may be jaded by the experience of hiring people from the second group, but you might need to remind him that the first group exists too.

    It's the difference between people who really have 12 years of experience, and those who have had practically the same initial two years, but six times over.

    Your boss may challenge you to show indicators of continuing development and acquisition of mature skill, but that would be a different question.

    -wb-

  30. Its about the Money by Artega+VH · · Score: 1

    To be honest I think that any team composed entirely of (older|younger) programmers wouldn't be the best to have particularly from a company/business perspective. Consider a group of old programmers working their craft. Firstly they cost more.. this is probably what your boss is talking about. Also what happens when they all retire/move on, what happens to the system that particular group was maintaining? It will either fall over and die, or someone will have to be hired to wade through all the legacy code with the mountain of patches ect ect. Now consider a group of young programmers. They think they know everything but really there are several traps awaiting them in the real world and they will probably fall into every single one without fail. Now consider a group comprised of experienced and inexperienced programmers. The inexperienced can learn quickly from their mistakes and not spend much time on fixing them because the experienced programmers already know how. And when the experienced programmers leave we have trained replacements already there, who know the system, know the company and are able to adequetly fill the shoes of the person who just left. --------- Then along comes the boss, sees all these young programmers getting along great.. and hires too many of them because they are cheaper...

    --
    groklaw, wired and slashdot. The holy trinity of work based time wasting.
  31. 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
  32. What kind of experience is important! by sixpacker · · Score: 0

    In a sense, you boss might be right. I have almost 8 years of professional programming experience though I'm doing something else(selling women's clothes, ;-). but I'm still doing programming as my hobby) in S.Korea after dot.com collapse. Anyway, what I've found out is proper balance between theory and experience. If you have lots of experience without proper theory, you reaily get stereotyped and you don't find anything creative. But if you know lots of theory without experience, 9 cases out of 10, you'll make a huge and dangerous mistake since the world( or even computer programs) doesn't work as you perceive with your brain. There is a huge gap between theory and reality and I think EXPERIENCE is a method of filling the gap. Probably, you boss saw too many experienced programmers without proper theoretical background. With proper & fresh theory, you'll get more creative in inventing solutions. Also with you experience, you'll get far more efficient and less dangerous in implenenting your idea. That's what I've found after those hellish 8 years of programming. Take care~

    --
    Your ego is Matrix!
  33. maybe by Anonymous Coward · · Score: 0

    Experience is everything in programming. So many of the concepts and mental tools a programmer uses are only developed by reading and writing lots of good code.
    Now, you should be careful that the experience is valuable; two years of experience developing quality code is obviously better than ten years of junk.
    What your boss might be trying to say is that the skills that a senior developer has over a junior one doesn't provide a benefit to the company, or doesn't justify the extra pay he'll demand. Sometimes you will only need a junior developer.

  34. You are wrong, your boss is right by Anonymous Coward · · Score: 0

    For your boss, it's only a matter of being able to make it or not. He doesn't want employees to come in his office and cry because their task is too hard. The idea with 2 and 10 years being the same is that this is sufficient to eliminate those dumb workers.

  35. A programmer with 10 years experience by eraserewind · · Score: 1

    recognises that it's a job, and you don't do what you don't get paid for. That there is no excuse for any project to demand your unpaid overtime, and furthermore, that no project if it was managed properly whould ever need such contributions.

    That's probably why they prefer ppl with 2 years experience :-)

  36. not necessarily by hak1du · · Score: 4, Insightful

    You can do 10 years of C++ programming and learn very little. And someone else can do 2 years of C++ programming and be a much better programmer than you (and still "know less" C++ than you).

    Some environments also tend to equalize skills. For applications programming in Visual C++, it doesn't make that much of a difference whether you have 2 years or 10 years of experience: the environment ensures a certain degree of uniformity of product. Java and C#, in fact, further equalize the playing field by removing most of the tricky stuff (memory management, error checking, etc.) from day-to-day programming, the stuff that traditionally required skill and expertise to deal with correctly.

    By analogy, it probably doesn't make much of a difference to his product whether a MacDonald's short order cook has 2 years or 10 years experience: you get the same predictable mass-market stuff out of him. Yet, there are many restaurants where the difference between 2 years and 10 years experience for a cook are huge.

    So, in short, your boss isn't obviously wrong or obviously right--it depends on the kind of work you are doing. If you are doing mainstream application development, I suspect your boss is largely right. (Keep in mind that unlike the MacDonald's short order cook, your standardized mass-market job can be outsourced to India, so maybe it's time to move into something more challenging.)

  37. The difference is between a producer and a teacher by MerlynEmrys67 · · Score: 1
    So as a 13 year vet myself - I see my benefit to my employer as a teacher. I have experience on what has worked and what hasn't - how things are run, etc. that can be passed on.

    So make sure you are using your role as a mentor correctly

    --
    I have mod points and I am not afraid to use them
  38. One advantage of 10 year experience by wowbagger · · Score: 4, Informative
    We are hiring and with that much experience you have a pretty good shot. Show your soon-to-be former boss what good experience is.

    Sheesh. Let's see, what sorts of things will you know with 10 years experience that you wouldn't with 2:
    1. The only constant is change - specs change, languages change, chips change. At two years you haven't seen as much change, and you think things are relatively static.
    2. Macro-optimization. Suppose you have a program that does lots of string compares (like a language parser). At 2 years experience you probably would try things like inlining the string compare, or the "if (a[0] == b[0]) return strcmp(a,b); else return -1" trick. At 10 years you do things like making your String objects have a hash code and doing a simple single int compare. In other words, you learn to optimize ALGORITHMS, not implementations.
    3. Compilers lie. At two years you think the problem MUST be in your code, because you have not yet learned that compilers have bugs, and sometimes mis-compile things. At ten years you learn that most of the time you screwed up, but SOMETIMES the compiler screwed up - so you get a mixed assembly output and doublecheck
    4. Neo-phillia. At two years you jump on every new thing, because you think it simply MUST be good. At ten, you learn to sit back, evaluate, and then implement in an experimental context.
    5. Documentation. At two years you hate doing documentation. At ten you hate doing documentation, but you hate NOT HAVING DOCUMENTATION EVEN MORE.
    6. Project maintainance. At two years you figure if it can be compiled on your machine, good enough. At 10, you learn to make the build proceedure as easy as possible, so that newbies can come on the project quickly, and so that you can recreate the project easily after several years of inactivity.
    7. The difference between being productive and being busy. At two years, you think that working 60 hours a week, always in crisis mode is being productive. At ten, you learn that the most productive people get more done in 40 hours a week, calmly. Crisis are to be avoided by forsight.

    1. Re:One advantage of 10 year experience by Qaztal · · Score: 1
      In my experience, developers with years of experience can still have problems with Neo-phillia.

      I have all too often seen people jump on a new idea and write more code to do less actual functionality.

      The current one being overuse of Functors. Lets write a whole class to do what that three line for loop used to do :(

  39. 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!

  40. Re:The difference: Depends on the work by G4from128k · · Score: 4, Insightful

    The answer also depends on the work and workplace. If it is a large IT organization that needs another warm body to crank out code designed by the company's gurus, then the less experienced (less expensive) programmer is fine.

    If it's a smaller company and the "programmer" will also be responsible for software architecture, high-level design, purchasing tools, and unsupervised coding, then you want the most experienced person possible. For higher-level software engineering, you want someone with a diversified mental library of patterns, designs, and experiences.

    It also depends on the code. If its for small little utilties with a short lifespan, limited userbase, and simple control flow logic, then a less experienced programmer is OK. If the code is mission-critical, high-performance, inner-loop code, then you will want the more experienced person.

    --
    Two wrongs don't make a right, but three lefts do.
  41. 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.

  42. You've already lost by Mandatory+Default · · Score: 2, Insightful

    If you try to explain this in technical terms, you've already lost the argument. You're up against the classic case of the engineer against the business person. Although you are both speaking English, neither of you has the faintest understanding of what the other is talking about. You need to discuss this in language your boss understands.

    Start by asking your boss how a manager with 10 years experience is different from a manager with 2 years experience. You'll probably get answers about more successful projects, different environments, larger budgetary authority, better political skills, maybe better "instincts", etc. Look for analogies in how those answers apply to developers. I have yet to meet a developer with 2 years experience who has the skills to handle a meeting with marketing, manage a bug review session, negotiate features with clients, or any number of other "soft skills." These are skills your boss will understand.

    Also, don't lump programmers in the same bin with architects. I've never met an architect with less than ten years experience who was worth diddily. Programming skills may be there, but people skills, technical writing skills, quality assurance methodology, security concerns, cost vs. feature tradeoffs - all of the skills necessary to be an architect take a *long* time to develop, and many of these skills are similar to what your boss's peers develop between years 2 and 10.

    Finally, what the "run of the mill" developer learns between years 2 and 10 depends heavily on training by their employer. If the employer doesn't require them to read books, read magazines, improve code quality and grow beyong the "Year 2" knowledge, than most of them never will.

  43. learn some psychology by Anonymous Coward · · Score: 0

    For a long, long time there has been a tension between bosses who know that they might be able to hire 2 or 3 of me in the lite version (VB or Java). But the problem is that these guys can't work the API's necessary to make the hardware run. Sure we can both write a business app that looks and (post .NET CLR) works about the same. But try to get the VB or .NET to drive the HW.

    So they have to pay us more. Here's what he has over you: the ability to put you in the buh, buh, buh mode before you can get the seventy zillion arguments posters like wowbagger & others have put here. And there the conversation ends.

    Mastering C++ is a beginning, not an end. Yes, it took me that long to know C++ well, and STL pretty well. But then there was MFC, .NET, WDM, WAPI, TAPI, & on & on. You sure don't get into the deep end of the pool from zero C++ to implementing those & the many other M$ & non M$ APIs inside of two years.

    Chances are the boss who told you this knows these things full well. But he wanted to send you into that kind of "buh...buh....buh" boardroom tailspin where he feels as though he's got a petty victory and can provoke you into showing your cards: you have another offer now or you don't, or you're ready to jump without one. Or maybe you care to argue back. Go ahead. You're argument & ten pennies might get you a dime.

    As C++ veteran, for the last decade or so, I know how to do many things. But this isn't the same as always knowing what to do. You and I are working for other people because we don't have financing for our own killer app idea through or bringing in cash.

    Boss to peon: life is a shit sandwich. Like it? Yum.

  44. Why don't you ask him why? by yancey · · Score: 2, Insightful

    I would take a completely different tack. Instead of trying to blindly convince your boss that experience counts, try asking him how he arrived at his conclusion. The answer might surprise you. At the very least, you better understand how he arrived at his conclusions and are better able to counter them.

    --
    Ouch! The truth hurts!
  45. Bluff called by Godeke · · Score: 1

    Having a wife who is in academia and myself working for the last 17 years running a computer consultantry, I'm calling your bluff.

    Yes, most professors code sucks. I know, because I have been called it to help repair it. Academia *don't* make a living architecting, designing and coding. They making a living thinking about such things (and then having graduate students code it). Now, I will admit that I have interviewed a lot of "grizzled veteran's" who are very narrow in focus. Programming COBOL and Fortran and old school C. If my project is in that area, I would hire them in a heartbeat. I have also interviewed a lot of 12+ year veteran's who know a broad range of tools, learn quickly and (not coincidently) are valueable members of my team today. Having spent a lot of time on the interview side, I will say point blank that your "there are a lot of guys out there" statement doesn't wash with my interviews. The split is roughly 50/50: focused vs jack of all trades. Additionally, you dismiss those focused programmers far to easily: I have found that with a few weeks of training, those focused programmers can gain the same level of focus on *your* project, and achieve mighty things.

    On the flip side, I have interviewed a lot of graduate student with your world view: everyone older than me is washed out, I am gods gift to the world, and those poor BS students are sad sad programmers without the credentials I have. May I suggest, from my "grizzled, out of date perspective" that you grow up that last little bit? You wouldn't pass the personality part of my interview: while I believe technical knowledge can be learned, arrogance takes far too long to beat out of someone.

    --
    Sig under construction since 1998.
  46. 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.
    1. Re:Mozart was a Software Engineer by amarodeeps · · Score: 1
      Okay, this is a complete digression, and doesn't really invalidate your post's point, but I think you are a little off. Composers and their assistants, if they even have them, are both the architects and programmers. They also do preliminary compiling, or maybe, test cases when they hear the piece in their head or play a reduction of an orchestral piece on the piano. Unless they're playing a piece they wrote on their instrument of choice, of course, then, well, they're like the compiler really. But, a compiler that can make changes on the fly to increase the efficiency (read: expressiveness) of the code. Of course, in an orchestral situation, this might be the entire orchestra and the conductor--they are a big compiler really, aren't they? Then, of course, we can talk about an improvisatory band, which throws the whole thing to hell...or maybe we've got something going on like rtti or using a scripting language...well, this analogy is really breaking down, which serves to show that music is quite a different beast from computer programming in some ways, but it was fun getting here nonetheless.

      Now back to your regularly scheduled program.

  47. What about diminishing returns? by derfla8 · · Score: 1

    I've been in IT for just over ten years now. I'm just as worried as any other; however, I do see a diminishing rate of return from people with simply more "programming" experience.

    How much a premium do you pay for someone with 10+ years of C++ experience? If you have budget for five senior development staff, would you get the same value by hiring two 10+ year experience individuals to supervise and mentor six with only 2 years experience?

    I guess this all has to be taken in context though. For just a code monkey position, really do you need someone with that much experience? Just having someone churn out code?

    But let's say you code specialized derivatives trading algorithms or something that is deemed a major revenue producer product, where 10+ years of C++ plus 10+ years of business logic understanding...that's where you pay top dollar.

    This is also the basis of a lot of "outsourcing" arguments. Code monkeys are the next McD's workers unless you have an intimate understanding of the business or have other non-IT skills that make you sell yourself better than the next guy.

  48. Not 10 years C++, 10 years experience by AlecC · · Score: 1

    It's not the language that counts, it is experience in the wierd and wonderful ways that computers can misunderstand you that matters. I've been at this lark thiry years now - Fortran, Algol, Pascal, C, C++ and nowadays Java. You can learn a new language in days and become fluent in months. But until you have been scarred by the many and varied ways in which computer systems bite back at anybody who takes anything for granted, I don't want you on my project. Someone with 10 years Cobol and 2 years C++: looks good. Someone straight out of college who started learning C++ two years ago: very dubious.

    Latin: Experior I try. Expertus sum I have tried - or, I am an expert. If you've been there, done that, and got the crash dumps, then languages are irrelevant.

    --
    Consciousness is an illusion caused by an excess of self consciousness.
  49. Irreconcilable differences. by Fortran+IV · · Score: 3, Insightful

    You are asking about one of the fundamental flaws in your chosen profession, and one of the key reasons I stopped trying to work as a programmer years ago. Fact of life: Managers don't look at what you can do, they look at what you have done.

    The same technician-manager conflict arises in virtually every technical profession; ask any experienced engineer, or even a good welder. Management and HR can't judge ability from your resume; they can only judge success. But I've said for years there's no technical job in which sheer incompetence can be so easily disguised as in programming. The imbalance is more severe, because the true incompetents are so much more dense (in more than one sense).

    And management knows it. Hiring a programming team is a crapshoot, because you may not find out for years which of them is worth the money. Experience is superior to education, but it's far easier to see if a welder can lay a bead cleanly than if a programmer can write 10K lines of clean code.

    In my day I wrote payroll software in Fortran, library routines and system utilities in assembler or PL-6, and database applications in (gack!) COBOL. Fortran was clean, assembler and PL-6 had system-level access, and HAIRBOL had database functions built in. I used what I had to, however it worked. I didn't think of myself as a Fortran or COBOL programmer; I thought of myself as a system programmer and (in occasional moments of overconfidence) a system designer.

    But to prospective employers, I learned, I was not a system designer or a system programmer; I wasn't even particularly a Fortran or COBOL programmer. I was a Honeywell programmer because that's the hardware my company had. I was a accounting programmer because I'd written accounting software.

    So the way you phrased your question catches my ear. First:

    As someone with 12 years C++ . . .

    but then:

    . . . from 10+ years experience in programming . . .

    Which is it? Is your boss looking at the amount of time you've spent in C++ (and you should learn even a complex language thoroughly in 2 years) or at your body of work as a programmer?

    The manager who needs a search engine would rather hire a kid who spent 2 years coding someone else's engine than someone with decades of design experience from accounting to gene sequencing who has never done a search engine. But the manager who needs a design team leader will look for someone who hasn't turned all his projects into lumber because the only tool he knew was a handsaw.

    In conclusion (I ramble too much to say in summary), I believe this is an argument you can't win--you can only outlive it. Tangible benefits from years of programming experience take years to reveal.

    --
    I figure by 2030 or so my 6-digit UID will be something to brag about.
  50. Re:The difference: Depends on the work by mbadolato · · Score: 1, Offtopic

    >> Two wrongs don't make a right, but three lefts do.

    And of course, two Wright's make an airplane ;-)

  51. Experience counts, sorta by Cuthalion · · Score: 1

    Every time you make a mistake that takes you 3 days to find and fix, you learn not to do that again.

    That said, don't discriminate against people because of the numbers they write on their résúmé, but definitely in the interview ask the hard questions and don't settle for the guys who only kind of know what they're talking about. People who want to improve can get better in 3 years than someone who doesn't care will in 15.

    --
    Trees can't go dancing
    So do them a big favor
    Pretend dancing stinks!
  52. welcome to reality by fred+fleenblat · · Score: 1

    Your 12+ years of experience should have prepared you to deal with short sighted/manipulative/ladder-climbing/egotistical managers a little bit better. You took it personally as an insult to your experiences and professionalism, but he's just playing with you because you're just a chess piece to him and he wants to put you in a square, not listen to what you have to say.

    If you want to move to management, which is an obvious place for a 12 year programmer to go, especially in a company that values them the same as 2 year programmers, then he would probably be delighted to mentor you and get you started with a "team leader" position.

    If you just want to get back at him, then you're playing his game and you're going to lose. Start looking for another job, but don't be surprised if you eventually have to deal with the same attitude from someone else at your new place.

  53. No, it isn't by bob65 · · Score: 1

    12 years of C++ programming experience isn't worth anything more than 2 years of C++ programming experience. However, 12 years of software development experience IS worth a lot more than 2 years of software development experience (or 12 years of C++/any other language programming experience).

  54. The difference by Jeremiah+Cornelius · · Score: 1
    Well,

    Lesseee...
    That must follow your boss' experience. Perhaps he learned no more than his first two years of management taught him in the ten subsequent years.

    --
    "Flyin' in just a sweet place,
    Never been known to fail..."
  55. depends by sir_cello · · Score: 1


    It's not a straightforward question/answer.

    I agree that it only takes 2-3 years of solid C++ coding experience to reach very proficient level.

    However, over a period of 10 years, your value as a designer increases if you've worked in multiple problem domains, multiple products, multiple environments, etc.

  56. He's a Idiot. by bettlebrox · · Score: 1
    I normally would not give a reply like this but, so let me apolgise in advance, sorry:

    (Rant mode begin)
    He's a f**king, stupid manager idiot, who's probably risen to the level he's at because he can talk the talk (but not walk the walk). Ever hear of the "Peter Principle"? This manager has risen to his level of incompetence. He's exactly like many of the tech managers at the huge financial company I work for. They have not a clue, about technology, about managing, about coding ...
    (Rant mode end)

    Sorry for the rant. This guy might be your friend, but don't ever work for him. Just reading UR posting set me off cause I have to deal with moronic tech managers who just don't have a clue about the project (or staff) they manage. It sounds like your friend may be the same.
    Best O' Luck!

    --

    I have a very small mind and must live with it.
    -- E. Dijkstra

    1. Re:He's a Idiot. by bettlebrox · · Score: 1

      Oops, misread. Thought you said "my friend is a boss of a ...".
      Still I wouldn't work for this guy. And tell him those 2 year C++ programmers he hires, that your not working with them. Luck Mick

      --

      I have a very small mind and must live with it.
      -- E. Dijkstra

  57. Easy answer by dtfinch · · Score: 1

    Veteran programmers tend to know all the common mistakes, the proven design strategies, and generally can code anything in a short amount of time and have it be efficient, reliable, scalable, maintainable, and extendable. A two year programmer might know the syntax, and the api's, but usually won't be able to produce good code. Generally, though not certainly, you often end up with something that seems to work, slowly, and fails under any sort of stress. They take 10 times as long to produce anything complex. They code themselves into corners. They can turn anything into spaghetti. They write more code to do less. They spend too much time on the little things. They fail to use all the tools available to them. They may lack business and communication skills. They reinvent the wheel. They're inconsistent. And anyone you bring in to clean up their mess will likely end up rewriting the whole thing anyway.

    Not to say that they're useless for coding or that they're all that way, there are certainly a lot of trivial programming tasks out there, but you can't expect the same quality and value hiring underexperienced programmers as with veteran programmers.

  58. Slashdot offer up tangible benefits? by xtermin8 · · Score: 0

    "Can Slashdot offer up some benefits that can result from 10+ years experience?" In short, no. I'm sure you will find better answers on another website. Ask Dr Dobb's Journal maybe... Slashdot is for SCO rants or maybe to find out why N-Gage still sucks

  59. Definitely another possibility. by Futurepower(R) · · Score: 1


    Definitely another possibility. Should be, of course, "He doesn't believe the difference between 10 years and 2 years of experience is worth the difference in salary." And, if the 10 years is a serious extra 8 years of growthful experience, he is wrong. The moral of the story is, Don't believe what people in authority say without independent justification. Sometimes what they say is random nonsense.

  60. Years of experience by Alan+Shutko · · Score: 1

    The question is whether the person with 10 years had 10 years of experience, or 1 year repeated ten times.

    The latter programmer is common and not worth hiring.

  61. 10 Years of Experience by CharlieG · · Score: 1

    You boss has probably run into something I've seen way too may times that I'll sum up with a quote:

    "There is a huge difference between 10 years of experience, and 1 year of experience ten times"

    Unfortunately, there are way way too may programmers out there who hit a certain level of experience (usually around their 2nd or 3rd year), who then never learn anything more - they just do the same thing over and over again

    IF you can find a programmer who keeps learning/ improving, a 10 year guys knows a HECK of a lot more than a 2 year guy. I will say, however, that from experience, the curve seems to be asymptotic - there is no way near as much difference between a 5 year guy and a 10 year guy, as a 10 and a 15, or a 15 and a 20 - and yes, I've been doing this for 22 years now

    --
    -- 73 de KG2V For the Children - RKBA! "You are what you do when it counts" - the Masso
  62. DFWI-IM by Glonoinha · · Score: 1

    I actually ended up using DFWI-IM as a standard code documentation notifier for some of the more wicked stuff I did in whatever code I was doing. It stands for 'Don't fuck with it, it's magic' and I generally reserved it for some of the more evil things like recursive routines and self modifying code.

    Word on the street is that my name still gets used in vain from time to time by the guys still maintaining that code.

    --
    Glonoinha the MebiByte Slayer
    1. Re:DFWI-IM by Lehk228 · · Score: 1

      Recursive functions magic? now maybe if you used a tail-end/regular recursion hybrid that branched in a weird way perhapse, but regular recursion? now SMC, OTOH is indeed magic and I will probably never understand it.

      --
      Snowden and Manning are heroes.
  63. Difference between two year and ten year veterans by hey! · · Score: 1

    Hmmm.

    What I'm looking for when I'm looking at two year resumes versus ten year ones is bound to be different.

    When I'm looking for with the two years is a utilty programmer. Somebody who can be given clear specifications and who can create acceptable code which meets those specifications.

    What I'm looking for in somebody who has a decade experience is different. What I'm looking for poise, professional polish, well honed analytical skills, design judgement, maturity and leadership. I'm looking for the much greater problem solving capabilities that come with experience. I expect a more experienced professional to be able to work better with others, to be able to anticipate problems better, to interact with customers, to handle and research problems with inconsistent or incomplete requirements, to respond to situations where the project may be in jeopardy with assurance and sound judgement. To be able to look at an anticipate problems such as security or scalability issues in a design or implementation. I expect them to have the maturity to handle organizational problems, such as dealing with a person in another department or a person at the customer's site that is being difficult. The list goes on and on.

    Not everyone who stays with it acheives this level of professionalism; but very few acheive it in two years.

    Now, I don't want to disparage your boss. He may have simply been talking about coding simple objects that have alredy been designed and have clear and bounded responsiblities. In that case he's right you really don't get that much better at that sort of thing after a couple of years, although there's always room for improvement. On the other hand, some managers are so poor at using the latent talents of their team that there is no difference between what a two year veteran and a ten year veteran are allowed to accomplish. If he is one of those, you are probably underappreciated.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  64. File a bug. by BrainStain · · Score: 1
    Surprised nobody has mentioned this, the true professional software engineer lives by the bug tracking database, knows how to prioritize issues and answer to the most likely and shortest path to victory for the project.

    Bugtracking is more than blame game, it is more than cover your ass, it is a challenge / response forum that is tried and true and the only way to keep sanity in a large project period; versioning is just a convenient backup and restore otherwise. Junior programmers just don't get the process for several years. The process is more important than the code.

  65. 2 years is enough for an investment bank by Animats · · Score: 1

    They're probably coding COBOL-type apps in C++. That's a low-level job for low level people.

  66. You need both, hugs all around by totierne · · Score: 1

    You need people with 10 years experience and you need people with 2 years experience. What seems to happen at the moment is that there are no new hires and the people at the bottom do not have promotion prospects because everyone is holding on to their job (or not ....), basically low moral all around.

    Software is a comunity thing, not an individual thing. Communism is not optional but required :) ...

  67. He didn't mean ..... by 09za+ · · Score: 0

    I think he might mean that todays equipment allows people to learn quicker, and as a result, the value of your labor decreases.
    Your knowledge may be great, but it can all be duplicated in a quarter of the time it took you to gain it in todays computer envrionment.
    Just a fact of technology.
    Plus... As we gain experience we become a threat to those who provide our employment.
    Employees have a Shelf Life
    Take your skills and put them to work where they can fully grow without fear of getting too good

    Become Self Employed

  68. 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
  69. It depends on the experience by bdsesq · · Score: 1

    I have seen people with ten years experience and I have seen people with one years experience ten times.

    I would take the person with two years experience over someone with one year 10X. On the other hand, someone with ten good years of experience can be awsome.

    Programming is a profession where a gifted and experienced person can produce things the average slob cant understand.

    Your boss is most likely only able to judge average slobs. And that means you will never convince him because you will be asking him to act beyond his abilities. And don't ever expect him to hire someone smarter than he is. (present company excepted, of course ;)

    Good luck looking for your next job.

  70. Probably a little late... by haplo21112 · · Score: 1

    ...however...
    In my own programming carrer I have found that each year, my library of quick code snippits grows. The first year or two is spend learning how to do things, the rest of the time programmers spend making those things easier for themselves. When ask to a particular task they can do it much more quickly and efficently because they have some code they have already written that does "That" or is sufficently similar to the point where it can be quickly turned into "That"...

    --
    Power Corrupts,Absolute Power Corrupts Absolutely, leaving one person(group)in charge is absolutely corrupt.
    1. Re:Probably a little late... by vidarh · · Score: 1

      ... and if you mention that in a job interview, the interviewers first response should be "we can't risk hiring this person". I know that's what I would be thinking. If ANY of that code was written while you were employed somewhere else, you would be a legal risk to the company if you indicate a willingness to reuse ANYTHING but general knowledge from your "library".

    2. Re:Probably a little late... by haplo21112 · · Score: 1

      You don't tell them...you just bring your cd full of canned code with you to work the first day and then your off the races.

      --
      Power Corrupts,Absolute Power Corrupts Absolutely, leaving one person(group)in charge is absolutely corrupt.
  71. You can't trade talent for experience ... by Anonymous Coward · · Score: 0

    Talented people don't need experience ...

    You can try to compose music, but you will not become a Beethoven, even if you're writing music for 10+ years!

    Reality hurts!

  72. Experience and environment by MightyMicro · · Score: 1

    There is one key rule: one good or great programmer is worth 100 of the other kind. Length of experience is less key than ability, provided that ability is molded by working within a great programming environment with highly experienced people to mentor the less experienced.

  73. 2 vs 10 by Anonymous Coward · · Score: 0

    Your boss is an idiot. Give him the sentence fragment:

    "The little"

    And then ask him what it means. Meanwhile, give someone else the sentence:

    "The little bird flies overhead while the hawk watches ominously."

    One has 2 words, the other has 10. When you have 2 words you have no idea what the sentence means. Compare this to 2 years experience and 10. Its like seeing the whole picture vs seeing the first 2 words. If he can't see that then he has no business with such responsibility and it sounds like he is just covering his own lack of experience.

  74. It's true by El+Cabri · · Score: 1

    I completely agree with your boss. Programming is one of these activities, along with research in mathematics or artistic creation, where experience is worthless.

    If I were to hire programmers, I would test of thoroughly they know the standards, tools, patterns and algorithms. Past experience can only be a source of inflexibility due to adherence to alien practices. The only value of experience is to contribute to wire the details of standards, tools, etc better into the programmer's brains.

  75. Value of Experience by GhodMode · · Score: 1

    Your boss foolish and not worth the time or effort it would take to enlighten him. It's common sense that in any aspect of life, not just programming, that more experience makes a person more able.

    Beware, though, that there are some people who somehow got the impression they could just learn what they needed to learn in college. They have no interest in, or enthusiasm for learning more. They just want to do what they learned in college for thirty years, then retire.

    This is especially false in the IT field where the requirements and technologies are constantly changing. As a more extreme example, a C programmer who is not willing to learn anything about any object-oriented programming languages is probably less valuable than someone proficient in current technologies regardless of how many years of experience he has.

    It is my impression that the most valuable people, especially in this field, are not the people who have the most experience, but the most genuine enthusiasm for their work.

    This characteristic alone could actually make a person with two years of experience much more valuable than a person with twelve years of experience.

    Someone with twelve years of experience and a great deal of enthusiasm and interest in learning new techniques and new ways of applying old techniques should just about blow anyone away.

    --
    -- GhodMode

    P.S.: I'm a very enthusiastic programmer with just about two years of experience. :)

    -- GM