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.

If I work as a Developer in one language (e.g. Java) and work my way up to Senior Developer, would that qualify me to be a Senior Developer for a position using another language (e.g. Ruby)?

share|improve this question

closed as not constructive by Walter, Yannis Rizos Mar 7 '12 at 13:57

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.

2  
@Philip - this question is really a borderline question on a couple of fronts. It's borderline "too localized" because it really will only have value to you and it's borderline "not constructive" as it doesn't really address the guidelines to asking questions listed in our FAQ. If you can edit this question and address the guidelines it might be worth saving the question. –  Walter Jan 20 '11 at 14:02
8  
@Walter - I have to disagree with your first comment on localization. This is a generally applicable question/answer regarding whether being a senior developer in one language entitles you to a senior developer position in another. –  Craige Jan 20 '11 at 14:09
1  
@Walter - removed the localisation issues, I think it's probably reasonable now. –  Jon Hopkins Jan 20 '11 at 14:21
1  
@Walker - Sorry, the question is meant as Craige says. I just wrote it that way because I assume that most programmers who are considered Junior want to be Senior Developer some day. Choosing the right Junior position is therefore crucial (or not) –  Philip Jan 20 '11 at 14:26
11  
This question appears to assume that "Senior Developer" has some sort of generally accepted meaning. It's normally a job title sort of thing, and a job title is whatever you and your employer can agree on. –  David Thornley Jan 20 '11 at 14:48

11 Answers 11

up vote 32 down vote accepted

The best way to answer this is to look at what the difference between a Developer and a Senior Developer. Assuming that it's not just a time served thing, generally I'd expect both Developers and Senior Developers to be able to:

  • Write code competently in the languages required by the role
  • Diagnose and fix bugs
  • Write unit tests
  • Follow standards and reasonable best practice (version control, documentation)
  • Have a broad basic technical competent
  • Act in a professional manner

In addition I'd expect a Senior Developer to:

  • Mentor other members of staff in best practice
  • Be and acknowledge reference point for at least some of the languages being used by the team
  • Actively research and champion new areas of best practice
  • Take technical ownership of more complex issues / areas of code and provide solid solutions

So, the question then becomes do you fulfil the extended criteria for your second (or third or fourth) language? I'd suggest that so long as you're technically competent enough in the language you're moving to then yes as most of the Senior Developer stuff tends to be transferable.

share|improve this answer
1  
This really depends on the environment, especially the boss. Some "Sr's" feel they need to show their knowledge on every subject, especially where a "jr" may have more knowledge and experience on a subject matter. Some serious tension can build up when a Sr. with a C++ background works on a C# project. A "jr" may have a bigger knowledgebase for this particular framework. This can cause some heated battles, especially when the boss is listening. –  P.Brian.Mackey Jan 20 '11 at 15:41
    
@P.Brian.Mackey - Fair enough, there are some fairly hefty differences between different jobs with the same title. I went with what I thought was a fairly generic (and sensible) definition but it can range from "is over the age of 30" to "knows everything about everything". –  Jon Hopkins Jan 20 '11 at 15:54
1  
good luck with the latter in any language more complicated than BF... even C has more dark corners than you would expect! –  SamB Jan 20 '11 at 17:07
    
'Some "Sr's" feel they need to show their knowledge on every subject'. These people should be told to chill out. You can't learn anything if you don't acknowledge there are things you don't know. The ability to freely admit ignorance of something is a sign of strength, not weakness. –  PeterAllenWebb Jan 20 '11 at 18:30
1  
+1 For pointing out that some but not all skills are transferable. Great way to put it. –  NickC Jan 20 '11 at 21:19

I've rarely seen a "senior" title based on language. I know a few senior systems programmers, a couple senior web programmers and one senior COBOL programmer.

Programming is multifaceted and has quite a few disciplines to offer. I would expect a senior web developer (in titles, programmer and developer seem to be interchangeable) to be proficient in several mainstream languages used in web development. Does that make a Python and PHP guru an instant expert in C#? No. On the other hand, not all C# gurus have mastered the fine art of project management and leadership.

I served the role of CTO in a company, in addition to being the senior systems programmer. Yet, I'd happily defer to a scheme or LISP expert if we encountered a project that necessitated either. Part of being a good leader is understanding your own limits and shortcomings first.

I'm not sure that I'd want to work in a company, or even a department that focused on one and only one language. That sounds like it would do what they always said smoking cigarettes would do: stunt your growth when the reality is actually far worse.

Don't chase after titles, chase after knowledge. But, to be fair, your role in a prior leadership position would probably give you an additional edge, provided that you demonstrated competency in the language at hand.

share|improve this answer

I look for the following qualities when I've interviewed Sr. Developers.

  • Has worked in multiple languages
  • Expert in at least one, competent in at least one other, preferably in a different paradigm
  • Aware of current technologies, state of the art, etc in chosen area
  • Good CS basis ie (algorithms, algorithmic costing, data structures, etc)
  • The ability to switch between the details of a specific problem and the big picture
  • Express when things are moving in the wrong direction and why; and then be able to continue in that wrong direction (aka professionalism)
  • Ability to Mentor
  • Ability to work within and with a team

There are a myriad of other things I look for, but these are the main points.

While I have recommended hiring Sr. Developers who weren't experts in the language used at work, they were experts in similar languages.

share|improve this answer

I'd say that the more low-level or machine-friendly the language is, the more expert you are.

Java/C# expertise is less paid than ASM/C/C++ expertise.

Those latter languages do memory management and other things that actually MATTERS when programming.

But for other "easy" languages, you would need to make a quick comparison about the features that makes them "easier", but I find it useless. Experiences with easy languages is better measured with CMS/other made-code you used to do you work, such as code igniter or django or Apache or RoR.

For me, senior developpers are people who program Kernels, Systems, Embedded hardware, etc. Programmers using languages that are not machine friendly are not seniors to me. They just do the job, but that's all.

share|improve this answer
    
Interesting opinion. I agree, C++ is much more pain. On the other hand a lot of C++'s pain is there because parts of the (current) language are kind of out-dated. More recent languages have much more library functions, Lambdas, for-each-loops and less cryptic syntax for lots of things. These issues can distract one from focussing on the actual low-level stuff. –  Philip Jan 20 '11 at 17:34
    
This is an interesting opinion. In my experience a senior person deals more with management, not necessarily because they don't code, but because they have more experience translating the low-level stuff to non-techies. You can certainly respect that ability or not. Your viewpoint raises a question, on a team of 30 web developers, are none of them senior because they can't write a kernel? It makes no difference to you if they worked on Mosaic or just finished High School? –  Steve Jackson Jan 20 '11 at 19:02
    
30 web developpers ? DEVELOPPERS ? Well "senior" means to me that the person has been coding for a long time, or is more aged. But if I think "senior" in terms of experience and knowledge that matters, I don't think you could call it programming experience if you use a garbage collected language. –  jokoon Jan 21 '11 at 8:15

It Depends

Take "programming" out of it. Pretend instead that you are a professional translator.

Assume English is your first language, and you are also proficient in French. You are likely to learn Spanish fairly easily.

However, you are not as likely to quickly master the many dialects of Chinese. While your experience as a linguist will help you learn the language(s), giving you an advantage over somebody that has never studied a foreign language, it will still take you a much longer time to become an "expert" (i.e. "senior") translator in that language.

share|improve this answer

Yes and No.

If the languages are kind of similar, say C++, Java or Ruby sure you should be considered. Depending on how flexible the people sitting in those offices are, you have a fighting chance.

However if the languages are vastly different, and by that I mean you are a COBOL guy who's kicked up about Haskell, then notwithstanding your 10+ years of COBOL chances are rife that you may not be able to even as much like secure an interview.

COUPLE OF THINGS THAT WILL GO IN YOUR FAVOR IN SUCH SITUATIONS:

  1. If you already know multiple languages and have proven experience about the same. Say you are good at C++, but also know Perl, Tcl and some Ruby I'd be willing to consider you for Java. In fact I know people who have got Java jobs with C++ in their resume.
  2. If your experience is in a related domain then you have a good chance of making it. For e.g. if you are a C++ game programmer, I see no reason why you can't be hired for a C# job that needs a fair bit of multi-threading.
share|improve this answer
1  
Okay, I have to ask - how is Ruby like C++ or Java? C++ and Java are both C-style languages, while Ruby is derived from Perl, Python and Smalltalk. –  Craige Jan 20 '11 at 14:54
    
I was referring to OOP as being the guiding theme. –  Fanatic23 Jan 20 '11 at 15:01

Nope.

That's one of the big differences between our profession and other more 'formal' professions. If you've worked as a lawyer doing wills & estates for 20 years, then you are going to command a high rate because you have 20 years of knowledge built up in that domain.

If you've been doing C++/Win32/MFC for 15 years, that doesn't really qualify you for a senior spot as a Rails developer, even if you're still solving the same problems in the same domain... say medical billing, for example.

Even worse, most companies won't even consider you for a position that is roughly similar... For example, if you've done C++/MFC for 5-7 years, you ought to be able to get up to speed on C#/.NET very quickly, at least for the desktop. Unfortunately most companies don't see it that way.

share|improve this answer
4  
I don't know that "most" companies see it that way. The problem right now, in a down economy, is that there are so many more people available that already know (from your example) C#, so they may narrow you out of a search just based on numbers. –  Wonko the Sane Jan 20 '11 at 16:26
    
I think most skills and experiences are transferable. Learning a new syntax is easy. Unfortunately, you're right: its not what you think, but what the person hiring you thinks. –  rmx Jan 20 '11 at 16:28

This is going to be highly dependent upon the company you interview at as it is typically the internal human resources procedures that drive how new employees are brought on board. Larger companies tend to be very rigid and if they say you must have n years experience in a given language to be considered a senior level then you might find that they will only bring you in a a mid-level developer.

That said though, this shouldn't prevent you from applying for the position and if they bring you in for an interview it is something that you should discuss.

share|improve this answer

I think it kind of depends on what you perceive as a Senior developer? If it's more of an architect role, many of the design principles and design patterns will be at your disposal from your experience as a developer, regardless of language. So that's a plus ;-)

However, when looking at creating an application or code as productively and maintainable as possible (the rolling up your sleaves bit), I don't think you could enter at the same experience level when switching language, IDE and/or framework.

But as runrun said, this doesn't stop you from applying for anything

share|improve this answer

You could apply, but at least if I was doing the hiring, I might or might not hire you.

Seniority relates to (at least) two areas. General development expertise and language/framework expertise. (I am purposefully leaving out business-space-knowledge) at present. Being a senior developer in my books would also include a level of design/architecture expertise. How to build good/testable system, etc.

Getting to this level in Java should stand you in good stead for other (similar/procedural) languages.

But in this era of expected immediate productivity, you are unlikely to know nearly as much about Ruby as Java. How to split up your system into Ruby-friendly constructs instead of Java-friendly constructs. You probably know some Java frameworks and not Rails or other Ruby-specific things.

If I were to ask you to do whiteboard coding in Ruby during the interview, could you do it?

All of these would go into my decision to hire you or not, at any level; but in particular for a senior role.

Good Luck

share|improve this answer
    
Thanks for your answer, yes I could do whiteboard coding in Ruby (same for C++, Java). Actually I consider myself at the current point even more proficient in Ruby than in Java because since a year I work on a private project that is build on Ruby. –  Philip Jan 20 '11 at 14:19

You can apply for any position at any company you like regardless of what your current status is.

It will be up to you the prove in your CV/cover letter/interview that you are the man for the job.

share|improve this answer

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