I am currently working with four different technologies as a programmer:

  1. Java
  2. C++
  3. PHP
  4. Python

I am not working on only one technology at a time, as I may be assigned to a PHP project while being assigned to support a Java project that is understaffed.

I have four years of experience as a programmer, but if I count multiple languages simultaneously, I will end up with more than 4 total years of experience.

When working with multiple technologies at the same time, how should I measure my years of experience when listed on my resume?

As opposed to this question, I am not seeking an input on how to format the list of these technologies. I am looking for how to indicate my proficiency level in these.

  • do you have to divide your experience into time frames? or do you just think that's best?
    – brwngrldev
    Feb 18, 2014 at 16:11
  • CMW, my question is different. The link you have provided is asking for formatting. I am asking for dividing my experience because I cannot list my experience in all four as 4 years. Their total will come out a four years. I hope I made it clear now. Thanks.
    – Rolen Koh
    Feb 18, 2014 at 16:22
  • 1
    I am confused as to how it is different. You specifics are different how they should be handled is the same. Feb 18, 2014 at 21:38
  • 1
    This is definitely not a duplicate of the other question. I am going to make an edit to try to make it more clear. If you think it could be improved, or if I missed the point, please feel free to make an edit of your own Rolen! Thanks in advance.
    – jmac
    Feb 19, 2014 at 5:44
  • 1
    @gnat, that question is even less applicable as spoken languages are dissimilar to programming languages. Learning a new programming language has a multiplier effect on your "programming ability" which is something applicable for a resume. Learning new spoken languages may improve your "ability to learn spoken languages" but its rare that learning one spoken language directly improves another.
    – user9158
    Feb 21, 2014 at 1:24

4 Answers 4


Summary: list your experience programming not experience with each particular language.

More broadly, list your experience in the skill not experience with each particular tool.

Programming is a skill set that is primarily focused on applying a specific way of thinging and applying algorithms and data structures in a practical way, using a variety of tools. These tools can be langauges, different programming paradigms, libraries, existing software, databases and so on. The skill of programming, is the ability to combine these tools in a meaningful way to achieve an end goal.

For example, picture if you saw someone whose resume:



  • Hammer & nails: 4 years
  • Saw: 2 years
  • Dovetail joints: 2 years
  • Tongue and groove joints: 6 months

The above would make no sense, as being a good carpenter is knowning when particular tools are most applicable for a particular task.

Similarly, your listing of languages is similarly less useful than it would be focusing if you focused on the skill sets you have.

For example, one could break it down like so:


Web development

  • Designed web backends using PHP, Java, Python to do ABC
  • Used MVC template languages XYZ

Server Scripting

  • Designed automated tools using Python and C++ to do ABC
  • Integrated into build suites HHH to achieve blah blah blah.

The point here is that the languages are tools to achieve a skill, not a skill in and of themselves.

As a counter example, you might known Python really well and have used Python to build 100 brilliant scalable websites. However, if there was a position that required a programmer to do scientific data analysis where the business uses Python, you might be less qualified than the programmer who has done a lot of data analysis using R and has a little knowledge of Python syntax.


If I understand the question correctly, the goal is to think about the total time spent working, and to apportion that time to each of several different languages based on the extent to which you used them for a project.

For example, let's pretend you were assigned to do a Java project for 2 months. After the 2 months ended, you were given a second project to be completed using C++, but your Java project kept going at the same pace. So after another two months, you might say you have effectively done 3 "work-months" of Java programming and 1 "work-month" of C++.

But 'experience' with a programming language is not simply the stated amount of time that you actively performed a work function with that language. In this example, just because you weren't directly doing Java for 1/2 the time in that last stretch does not mean you weren't learning about it, becoming better at it, even osmotically from the C++ experience.

Most of the time, once you have begun to use a programming language for serious projects, then your cumulative life experience with that language starts counting from that point on. Even if a few months go by when you don't use the language at all, you might still answer some Stack Exchange questions about it, read an article about it, review old code that you wrote, or teach someone else how to extend your old code to have new features. All of these activities (and many more) count as "experience" with the language, even if at the time you were more focused on using a different language, or your stated projects at work listed different tools.

To summarize, I would treat each language in isolation from the others. Ask when you first began performing serious programming tasks with that language and count your experience as starting at that time. If you feel you are especially rusty or out of the loop in a particular language, just estimate how much experience time to knock off of your estimate so that recruiters and hiring managers have a clear picture of your self-appraisal of your abilities. But do not try to intensely calculate the precise amount of dedicated work hours that technically went into one language versus another. Few, if any, recruiters or managers will even care about that level of specificity anyway.

  • 2
    You are welcome. Consider marking the answer as 'accepted' if it was able to help you. Thanks!
    – user12818
    Feb 20, 2014 at 15:17

I used time only on my employment history. For skills, I merely listed the languages used. Under accomplishments, I quantified whenever possible. Example:

  • Designed and coded of about fifty thousand lines of Ada; designed and led coding of about thirty thousand KSLOC.

CV-s I liked the most (usually consultants) had it in tabular format with three fields: years used, last time used, 0-to-10 self-assessment with well defined meaning of "10" (usually "I wrote books about it and am teaching it to others").

Years Used together with the Level give you a sense of how good the candidate can be with the technology, and Last Used gives an idea of how much catching up is to be required.

Result would be something like:

| #     | Years used | Last used   |  Level (0..10) |
| C++   | 15         | 2 years ago |  8             |
| Java  | 10         | using now   |  7             |
| Linux | 15         | using now   |  6             |

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .