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.

I'll cut to the chase. I'm looking for advice on how an experienced developer would convince a prospective employer that they should be considered for a position that uses another language. This is with other non-language specific requirements being met (knowing version control, OO, degree, etc...). For example an experience PHP developer looking to move to a Perl position. Is it even possible? How diffiult would it be? Is it language dependant?

EDIT: The answers that I got are proof that this communitys future is bright indeed, but sadly it only allows me to select one answer. Thank you to all that replied.

share|improve this question
6  
language != career; career == developer –  Steven A. Lowe Mar 31 '11 at 17:10
add comment

10 Answers

up vote 11 down vote accepted

Speaking as someone who has given interviews.

Be honest

Let them know you're switching tracks, and also tell them how long you think it will take you to ramp up.

Be enthusiastic

Show them you are excited about learning the new language. Enthusiasm can make up for experience when you know the developer is going to go home and continue to program in the same language.

Have an understanding of CS concepts

Having a deeper understanding will facilitate picking up a new language (among other things).

Show that you know a related language

Learning Ruby once you know Perl is not a big leap. Learning Scheme when you only know C is a huge leap.

Show that you already know 3 languages

The more languages you know the easier they are to pick up until it becomes a case of learning the idioms more than the syntax.

share|improve this answer
    
This is great information to get, seeing a potential applicant from the hiring managers side of things. –  canadiancreed Mar 25 '11 at 13:07
    
@canadiancreed I'm actually the team lead, but know what I look for and what my boss looks for. –  dietbuddha Mar 25 '11 at 16:15
add comment

The company I work for didn't look for "C# programmers". Any good programmer would do as he can pick up a language in no time.

If you hire programmers with the idea of them staying for a few years then I really can't see it as a problem, they have plenty of time to learn the ins and out of the language. If they leave after a year then it's probably a waste of time.

share|improve this answer
add comment

It's certainly possible. I've just started a job where I'm working in ruby, javascript and go. Before I started I didn't have much experience with any of those languages.

I think the key to my success here was that in the time between the initial response and the interview, I made sure I knew enough ruby (their main language) to understand and write real world code. I think it also helped that I knew Python and C which are quite similar to ruby and go.

share|improve this answer
add comment

As a personal anecdote, I got hired for a Java position by showing a PHP based demo.I think I got it because I knew a language from a certain domain (if it can be called that way), so I wouldn't be re-learning the complete concepts, it would just be like using a pen instead of a pencil (you get the idea right?).

I believe that what is really really important is to show that you have good software development, CS concepts and communicating skills, that you seek solutions to problems even to the most difficult ones, that you want to be helpful to your co-workers, automate and simplify their work and most importantly (to me at least) that you are humble and admit that you don't know everything and that you're willing to learn more.

(Totally abused the "that" word..)

share|improve this answer
add comment

Over about 25 or maybe even 30 years I have had to learn many new languages. So many now I've lost count. Here is a rough list.

IF I go way, way back...

8080, Z80, 6502, 8086, 80286 assembler.

BASIC (about 6 varieties).

APL (yay)

PL/1

FORTRAN 4 and 77

COBOL (believe it or not)

PASCAL (several varieties including Delphi)

OCCAM2 (heaps of fun - instant process creation)

C (lots of compilers, lots of processors, lots of strange variants)

C++

Ada (big systems and also embedded systems)

A little Perl just for fun

PHP

These have been used on all sorts of machines - little embedded systems, development boards, IBM mainframes running TSO, VAX/VMS, CP/M, DOS, Windows, Solaris, Linux, embedded systems with no OS, remote hosted development environments, on and on the list goes.

And there are a few more obscure things thrown in along the way that I can't remember (or don't want to... PL/M).

Each of these had to be learned because it was part of getting a job done. In most cases I had no experience beforehand, just a tolerant manager and a willingness to leap in and get the job done.

If learning something new is of interest to you, then buy a book, have a play, do things in your own time. If going for a position it looks good on a resume that you have done this because you are interested.

As one of the other answers pointed out, most of the time the concepts for doing mainstream stuff don't change a lot, only the means of expressing it. (Or course you can get into some very unusual languages that are no OO or procedural and this does require a shift in mindset.)

If you get the chance to do something a bit out of the ordinary as part of your job, then grab the chance while you can. Most of those things listed above I have not used for years and am not likely to use again, but you never know. One day I'd really like to build a microcoded APL machine :)

share|improve this answer
add comment

I've only ever taken one job where I already knew the primary development language, so yes, its not only possible, I always assumed it was common.

The thing to remember is that its only one langauge out of many languages and technologies they probably use. SQL is SQL. It doesnt matter if you do it in python or perl. And configuring the DB server isnt even language related. HTML is HTML, it doesnt matter if its generated by PHP or ASP. Same with XML. Sockets are sockets, they basically operate the same in all languages. OpenGL works the same in Delphi as it does in C++. The specific syntax is a small part of the picture when you look at development as a whole. Some of those skills are huge topics in and of themselves, and far more difficult to learn than a new langauge.

The point is, focus on the skills. Sure, you may not know their main development technology, but thats just one piece of the puzzle. But chances are they also use other technologies and OS's which you DO know.

share|improve this answer
add comment

IMHO, not all programmer react similarly. Language is religion ;-)

In my personal experience, I love to learn new language but it comes to love or hate very quickly. I can fall in love with a new language the first day knows it and use it for years to come. I also hated languages from the beginning till now, even hundred of thousands if not millions programmers are using them.

So I'd advice not to command a peer programmer into another language. Instead, chit-chat about language preference during the Friday evening beer time, to discover his/her love or hate.

  • I intentionally leave out language names in this answer ;-)
share|improve this answer
add comment

Full disclosure: I've not tried this myself

It seems to me that you'd need a two-part strategy to make this work. First, you need to get your foot in the door for an interview. That means getting past any resume and HR filters. Any way you can work the new language keyword into your resume without lying (e.g., contributing an open-source project). Once you get an interview, you need to prove to the hiring manager that...

  • you can speak intelligently on the new language (especially if you're not an expert yet)
  • you're capable of coming up to speed quickly so you're not lagging your coworkers

I would think any sufficiently talented programmer in any language should be able to pull that off with enough patience. You'll need the right opportunity at the right company with the right circumstances to get hired for a new language. So, in short, just like getting hired for a normal job. :-)

share|improve this answer
add comment

You will struggle to get in the door if you don't have the write acronyms on your resume. If you want to change spend some time on personal projects to learn it well enough and then highlight that.

share|improve this answer
add comment

An experienced programmer should be able to take-up just about any programming language, in addition to any reasonable programming tool. If you want to move to a new language, just read a book or two in your own time, practice it at home, and then send in a resume just like everyone else.

share|improve this answer
3  
I ain't buying it. It takes time to learn the libraries that come with a language. Will a c++ pro/php newbie be as good as a 10-year php vet? Also, going from a memory-managed language to one that is not is much more difficult than the reverse. –  bye Mar 25 '11 at 8:03
9  
@NRM, why do you want to "learn" the libraries? There is always a reference available, you should not clutter your brains with such an unimportant stuff as APIs. –  SK-logic Mar 25 '11 at 8:30
4  
@NRM Bad example. C++ => PHP should be an almost trivial transition. Now, trying this the other way is hard. –  Konrad Rudolph Mar 25 '11 at 12:45
1  
@NRM - of course a "newbie" won't be as good as a 10 year "vet." However, there are plenty of jobs for "newbies". That's where vets come from. –  davidhaskins Mar 25 '11 at 12:46
1  
The problem here is convincing the prospective employer that you can switch languages, especially getting by HR, who just has a req that says "minimum 37 years Java experience" or something equally stupid. –  Fred Larson Mar 25 '11 at 14:49
show 2 more comments

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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