Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

As a little background, I've been programming for a long time now using various languages, systems, etc.

I've come across the old problem of a recruiter wanting to know "how many years experience" I have of C++. I'm a little stumped as I've bounced around it many times over a number of years. I don't think I can just add up the months/years. I'd put myself somewhere around the 3 - 5 year mark. I know it's a bit of a wide range, but I'm not really sure, with newer standards and libraries, the older stuff probably becomes deprecated.

So, I wanted to ask your opinion. What would you expect a C++ programmer with (i) 3 years, and (ii) 5 years experience (mainly on Unix/Linux systems) to be able to do? Perhaps, more importantly, what would be the difference you would expect to see between a programmer of 3 years compared to 5 years (and above)?

I know this is all a bit vague and the correct answer is, "it depends". But if anyone has a good opinion, I'd love to know.

share|improve this question

migrated from stackoverflow.com Mar 3 '12 at 17:10

This question came from our site for professional and enthusiast programmers.

closed as not constructive by gnat, JeffO, Walter, gbjbaanb, Jim G. Mar 4 '12 at 14:37

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. If this question can be reworded to fit the rules in the help center, please edit the question.

That depends on what you have used in your daily jobs. A guy with 10 years may still be a novice while a guy just out from college may know more. But still it is dangerous to predict. –  DumbCoder Mar 3 '12 at 17:11
My favorite way to describe is does he have "10 of the same year" or "10 of different years". It's more interesting if your growing and learning across different languages than you specifically worked in one narrow domain for many years. –  Travis Mar 3 '12 at 17:24
Well ... given the fact that we have jut now C++11, I wonder who may have more than 1 year of C++11! (joke) –  Emilio Garavaglia Mar 3 '12 at 21:57
@Emilio. The guys who wrote the standard I suppose :). –  PeteOopNorf Mar 3 '12 at 23:07
This is not the answer to your question: But it will change the way you will ask the question programmers.stackexchange.com/questions/136037/… –  Dipan Mehta Mar 4 '12 at 2:31

6 Answers 6

Years of experience have not much correlation with actual knowledge and level of expertise. Someone may have been using C++ for 10 years, repeating the same 1 year of experience 10 times. Another developer may learn many times more than that in the course of 2 years.

Recruiters asking for years of experience almost never have any real idea about software development. You may tell him you have 3 or 5 years of experience - that sounds like you are experienced with C++. Or you may try to ask back what are his expectations for a developer with n years of experience with C++.

The main point is to get through that filter in the recruitment process. In any software shop worth its salt, after the HR filter, you get to talk with someone having a real idea about software development, who will ask you what you did with C++, what actual problems you solved and how, what you delivered over the years, etc. That tells much more about your real value than mere count of years. (Or if you get an offer solely based on the number of your years of experience, maybe you should think twice before accepting that offer :-)

share|improve this answer
Hi Péter, I certainly agree that the X years experience is a poor way of determining experience. However, I've had this question several times from different agents and employers, always used as a filter, and the 3 and 5 years seem to crop up most often. An agent won't answer a question like "what does the employer expect 5 years of experience to be"? In my experience they're not interested in the extra work, and never understand the details of programming themselves. So, I was really wondering if people had any guides as to what these guys might want. –  PeteOopNorf Mar 3 '12 at 17:33
Unfortunately the number of years experience requirement isn't so much focused on the skill level as "How many years has someone been willing to pay you to do this type of work?" Because they can't figure it out for themselves. –  JeffO Mar 3 '12 at 18:14
@JeffO This is a very good insight Jeff! It's probably the way a non-technical recruiter thinks when they ask you that question, +1 –  Irfy Mar 3 '12 at 19:11
@Péter Török - I would make the argument that experience is required but not necessarily sufficient for actual knowledge (E.g. I've seen plenty of talented youngsters, but anyone who claims to know everything about a platform after only one year is deluding themselves). In that sense, using experience as a filter is slightly more correct than you make it seem... That said, we all know the sorry state of recruitment in our profession :) –  Daniel B Mar 4 '12 at 13:38
@DanielB, there is indeed a significant difference between having 0, or 6 month to 2 years of experience with a given technology / platform. Beyond that, the correlation (between time spent and experience gained) becomes very weak. –  Péter Török Mar 4 '12 at 20:53

You need to find out how many they "want", and give him that number (+1 if your feeling cheeky). The question shows complete lack of understanding of what programming is. Fortunately anyone asking such a question is not that bright, so finding out what they want to hear should not be too hard, they probably put it in the advert How many times have you read "3 years C++" - put 4 in your resume.

What you need to do is get past the Recruitment Insultantant, HR Advisor to someone who will ask real questions. When you see them, be completely honest "Although I said I have 5 years C++, one of the projects was a mix of C++ and Ada, and I spend most of my time on that project programming a Nuclear Submarine Reactor Core control module, which was in Ada. The Rocket Lauch Telemetrics module was also Ada, with a GUI in C++, I'm hoping being a bit light on C++ isn't a problem".

I have been around the block for 20+ years, and could claim anything from 1 to 10 years C++, depending how I count them. (Do you count 3 years at 33% C++, 33% C and 33% Ada as 1 or 3 years experiance)?

share|improve this answer

What would I expect from a programmer in case (i) and (ii)?

  • (i) - write a goode code
  • (ii) - write a good code


Sorry for being smartass, but not years of experience make programmer a good programmer. When someone would tell that he has 1 month of experience, then it could mean something. But 3 years is enough to learn pretty much if someone is fast learner. 3 years, 5 years... - this is the same order of magnitude.

share|improve this answer
I'd expect a programmer to be able to spell-check 'goode' too :) –  gbjbaanb Mar 4 '12 at 14:17

I think it depends on what type of experience you have. If you have 5 years systems or embedded programming with C++, you'll feel inexperienced and out of place around a bunch of guys who do higher-level Applications programming (and vice versa). Just be honest, tell them how many years you've used C++ and what you used it for.

share|improve this answer

If you search on a job site, you see some companies requiring 3 years and some requiring 5 years, for very similar job descriptions. However, I couldn't find any companies having job listings for both 3 and 5 years, which tells me it's just an arbitrary number describing someone who's not a newbie anymore. More senior positions are going to list 10+ years.

Therefore, if I wasn't sure, I would put the 5 years so those jobs don't get filtered out, and let the interviewer decide if my skills were exaggerated.

If I were interviewing for a position that required 3-5 years of experience, I would expect the candidate to have mostly moved past the basic mechanics of programming and started to concern himself with choosing the best design instead of just whatever works.

share|improve this answer

Since C++ is an incredibly complex language with hundreds of gotchas, I would say:

  • 3 years - qualified professional, but not someone who could make very solid, future-proof architectural decisions
  • 5 years - could be senior developer/architect capable of designing sound and maintainable architectures and code, but would still use some input from more experienced colleagues, and would still make some unsound decisions

Of course, there are prodigies and people who spend 10 years doing ctrl+c, ctrl+v. But IMHO, after 3 years, C++ developer is just starting to grasp the senior developer/architect role, definitely not there yet.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.