Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What is meant by HR/headhunters when they ask for a senior Java/PHP developer? Does that mean three solid years experience in one language alone? That come accross as quite a lot considering that the typical developer probably learns more than one language.

Edit: I think most people answering missed the point. I know what senior is. I simply want to know what is actually required when a job offer or consultancy firm states that a senior Java developer is required.

share|improve this question

marked as duplicate by pdr, Walter, ChrisF Aug 27 '11 at 14:34

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

3 years experience is not senior, IMO – Matt Ellen Aug 27 '11 at 10:31
@Matt: not in mine either, but many recruiters "sell" developers with 3 years experience as "experts". On the other hand, we have had applicants with 10+ years experience that we would not qualify as senior. And not just because of lack of mentoring/communication skills, but because of a lack of expertise. All in all senior means whatever the recruiter thinks it means... – Marjan Venema Aug 27 '11 at 10:45
I think most people missed the point of the question. Does senior Java developer mean three years solid Java experience? – James Poulson Aug 27 '11 at 18:24
No. Experience is individual. – user1249 Aug 27 '11 at 18:53
James, people answer the question in the title, not the one you put almost at the end. – user1249 Aug 28 '11 at 8:22
up vote 2 down vote accepted

I wouldn't place a number on the years that would take you to become senior developer for a particular language. You could have spent 3 years in a Java job doing nothing but releases and the odd refactoring. I'd say a senior developer is one who has had exposure to enough projects: small, medium and large and can proficiently work with the language. In order to be proficient, you need to have enough exposure to the technologies you work with. 1 year is far too small. 3 years, sounds like a reasonable number to expect some level of exposure, but it would take more than a number for me to consider someone senior.

On the HR side of things, they usually say a senior developer needs to have X years exp in technologies Y and Z, but I think that's very naive (see point above).

share|improve this answer
Thank you for answer Desolate Planet. You seem to be only one that understood the question in it's entirety. And, yes, I do believe that is slightly "naive" as you say. Seeing the diversity of languages out there someone who is said be "senior" with 3 years Java programming could very well have done 10 years of programming on AS400 beforehand. – James Poulson Aug 27 '11 at 18:30

IMHO, a senior developer is someone who:

  1. Has done large-scale projects, which pass from a simple, one-form data entry applications.
  2. Is good at team work (because of experience)
  3. Has experienced, or analyzed failed projects
  4. Is a ocean, and a well at the same time (an ocean, because has a good grasp of the overall programming world, including database, architecture, analysis, design, web, etc., and a well, because he's pretty pro at one or some limited fields, for example a C# expert)
  5. Can manage a team (can become a supervisor, or project manager, or scrum master)
share|improve this answer
+1, for including failed projects. This is an important one. Too many glory hunters out there that focus on successes and don't pay much attention to the things that have went wrong. – Desolate Planet Aug 27 '11 at 10:46
I'd agree with all the points except #5. Software skills are not always associated with management skills. To be specific, one could be a very good Senior Programmer but a very bad project manager. – NoChance Aug 27 '11 at 11:17
Good point @Emmad. I should redefine my idea about senior developer. I'd better say that a senior developer could at least guide junior developers. :) – Saeed Neamati Aug 27 '11 at 11:51
@Saeed, to me there is a huge difference between mentoring junior (in the relative sense, here) programmers, and being able to step up as a good manager. I have worked with at least one developer who I think any developer in their right mind would consider senior in what he was doing, and who certainly took responsibility for his own work, but he also explicitly said that he did not want people management responsibilities. – Michael Kjörling Aug 27 '11 at 15:24
Ok, we know what a senior is but what about when a language is mentionned. As asked above does that mean three solid years in one given language meaning all other programming experience is not taken into consideration? – James Poulson Aug 27 '11 at 18:26

Absolutely nothing - it's entirely dependent on each company.

  • Management's point of view: a 'senior X' developer is someone who has more experience than a 'junior X' developer.
  • From a junior X developer's point of view, 'senior X developer' (usually) means someone you knows - and has more experience - than they do.

There is no standardised distinction in skill, as it tends to be a title that is dubbed based on something relative. There are many companies out there that throw around meaningless titles just because the see others doing so.

share|improve this answer
Absolutely nothing is also true from the recruiter's point of view too. That is what they were asked to supply. If you present yourself as a senior developer and your skills match the job, presto! – kevinsky Aug 27 '11 at 14:25

EDIT: No, being a senior does not imply having three years of solid experience in the given language.

A senior developer is expected to be capable of being on his or her own, without needing mentoring from a more experienced programmer.

A junior developer is expected to need mentoring and other guidance in some areas.

share|improve this answer
Ok. My question was more along the lines of whether a requirement asking for a senior in a given language implies that they should have three years solid experience in that language. – James Poulson Aug 27 '11 at 18:31
You cannot put up rigid rules for that. – user1249 Aug 27 '11 at 18:52
I'm not the one making the rules. The question is with respect to people in human resources or headhunters. – James Poulson Aug 28 '11 at 12:04

A senior developer is someone who can lead developers and mentor juniors. It's more about leadership, people and communication skills.

You can be the best programmer on earth, but not have such skills, which would make you a poor fit for a senior developer (but of course a valuable asset to a team).

share|improve this answer
Being a senior also requires some depth in a skill or more. – NoChance Aug 27 '11 at 11:14

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