Is Experience in Programming Worth Anything? 167
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?"
The difference (Score:5, Insightful)
Re:The difference (Score:4, Informative)
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.
The difference (Score:2)
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.
Re:The difference: Depends on the work (Score:5, Insightful)
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.
Re:The difference (Score:5, Interesting)
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
Re:The difference (Score:3, Insightful)
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.
Re:The difference (Score:2)
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.
sometimes (Score:2, Insightful)
Re:sometimes (Score:5, Insightful)
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
Re:sometimes (Score:2, Insightful)
AFAIK, 'just working' is the goal.
Re:sometimes (Score:3, Insightful)
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 ga
Re:sometimes (Score:2)
Your boss is right (Score:1)
Re:Your boss is right (Score:3, Insightful)
Re:Your boss is right (Score:1)
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 de
C++ is slowly dying (Score:2, Insightful)
Re:C++ is slowly dying (Score:4, Insightful)
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.
Re:C++ is slowly dying (Score:2)
Thank heaven for small favors.
sadly, it's a valid question (Score:5, Interesting)
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.
Re:sadly, it's a valid question (Score:4, Insightful)
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
Re:sadly, it's a valid question (Score:2)
Damn, no wonder programming is getting outsourced, most programmers are REALLY BAD anyway!
Re:sadly, it's a valid question (Score:2)
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
Re:sadly, it's a valid question (Score:2)
Re:sadly, it's a valid question (Score:3, Insightful)
> 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
Re:sadly, it's a valid question (Score:2)
DFWI-IM (Score:2)
Word on the street is that my name still gets used in vain from time to time by the guys still maintaining that code.
Re:DFWI-IM (Score:2)
Re:sadly, it's a valid question (Score:2)
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 stan
Re:sadly, it's a valid question (Score:2)
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
Re:sadly, it's a valid question (Score:2)
if(bar())
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 clev
Re:sadly, it's a valid question (Score:2)
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 usin
Re:sadly, it's a valid question (Score:2)
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 k
In most areas, 2 years vs 10 (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.
Your boss is almost right (Score:4, Insightful)
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.
Re:Your boss is almost right (Score:2)
Re:Your boss is almost right (Score:5, Insightful)
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.
Double Edged Sword (Score:4, Insightful)
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.
Re:Double Edged Sword (Score:4, Insightful)
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 [dice.com] 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.
Re:Double Edged Sword (Score:2)
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.
try tangible analogies (Score:2, Interesting)
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.
Re:try tangible analogies (Score:2)
Quantifying Programming Experience is Hard (Score:3, Interesting)
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. [poemhunter.com] :D
It isn't the language so much as structuring data. (Score:2)
In games... (Score:5, Insightful)
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.
Re:In games... (Score:2)
Ask your boss (Score:4, Insightful)
He obviously is not a professional recruiter (Score:4, Funny)
He's right (Score:2)
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. Men
ISO 14882 (Score:4, Interesting)
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. [slashdot.org]
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.
Re:ISO 14882 (Score:3, Insightful)
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.
I agree, but possibly for different reasons... (Score:5, Insightful)
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.
Fscking Mozart. (Score:3, Insightful)
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....
Mozart was a Software Engineer (Score:3, Interesting)
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
Re:Mozart was a Software Engineer (Score:2)
Re:Fscking Mozart. (Score:2, Funny)
Sounds like the ideal software developer, from a management perspective.
Re:I agree, but possibly for different reasons... (Score:2)
Knowing more APIs, more languages, more systems.
Re:I agree, but possibly for different reasons... (Score:3, Interesting)
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 res
I disagree. (Score:2, Interesting)
Re:I agree, but possibly for different reasons... (Score:2, Insightful)
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 devel
Re:I agree, but possibly for different reasons... (Score:2)
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
Arrogance (Score:1)
Your boss is right. (Score:5, Interesting)
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.
Re:Your boss is right. (Score:2)
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.
Re:Your boss is right. (Score:2)
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".
Re:Your boss is right. (Score:2)
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, gen
Re:Your boss is right. (Score:3, Insightful)
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/wil
Re:Your boss is right. (Score:2)
This is perhaps the best argument for getting your undergraduate at a *small* school. You don't have to buy into the prestig
Bluff called (Score:2)
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
Re:Your boss is right. (Score:2, Insightful)
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
Re:Your boss is right. (Score:2)
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 softwa
Turn It Back On Your Boss (Score:5, Insightful)
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.
Re:Turn It Back On Your Boss (Score:2)
Maybe it's a sociological phenomenon. (Score:5, 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.
Re:Maybe it's a sociological phenomenon. (Score:2, Insightful)
It's all about the money, people.
Definitely another possibility. (Score:2)
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.
Don't all things come with experience ? (Score:3, Insightful)
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
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)
That is what experience means, and it is attainable by anyone
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.
Uh do you really want to do this? (Score:5, Interesting)
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
Typical /. answer.... (Score:2)
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 whe
12 years' experience -vs- 2 years six times over (Score:3, Informative)
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-
A programmer with 10 years experience (Score:2)
That's probably why they prefer ppl with 2 years experience
not necessarily (Score:5, Insightful)
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.)
The difference is between a producer and a teacher (Score:2)
So make sure you are using your role as a mentor correctly
One advantage of 10 year experience (Score:5, Informative)
Sheesh. Let's see, what sorts of things will you know with 10 years experience that you wouldn't with 2:
PAI MEI (Score:3, Interesting)
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!
Your boss is speaking a different language (Score:4, Interesting)
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.
You've already lost (Score:2, Insightful)
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 successfu
Why don't you ask him why? (Score:3, Insightful)
Irreconcilable differences. (Score:3, Insightful)
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.
depends (Score:2)
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.
Easy answer (Score:2)
Years of experience (Score:2)
The latter programmer is common and not worth hiring.
10 Years of Experience (Score:2)
"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
Difference between two year and ten year veterans (Score:2)
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 mu
2 years is enough for an investment bank (Score:2)
Experience != Expertise (Score:2, Interesting)
It depends on the experience (Score:2)
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 askin
Probably a little late... (Score:2)
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"...
Re:Probably a little late... (Score:2)
Re:Probably a little late... (Score:2)
It's true (Score:2)
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.