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

I am a C++ programmer and have worked on various web apps using Perl, Ruby, etc.. I have decent a knowledge of Java as well. The problem I face while applying for jobs is companies have specific requirements like, "Experience with C# 3.5/4. Should have experience experience building web apps with ASP.NET". What should you do in these situations?

  1. Not consider these companies and look for companies with your expertise?

  2. Just put that in your resume, and learn the technology before interviews? After all, how hard is it for a developer to wrap their brains around new languages?

  3. Try to convince the employer in the cover letter that you are good at one thing but can a learn a new language a tool pretty easily?

  4. Something else?


migration rejected from May 28 at 13:52

This question came from our site for professional and enthusiast programmers. Votes, comments, and answers are locked due to the question being closed here, but it may be eligible for editing and reopening on the site where it originated.

closed as off-topic by durron597, gnat, Ixrec, MichaelT, GlenH7 May 28 at 13:52

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – durron597, gnat, Ixrec, MichaelT, GlenH7
If this question can be reworded to fit the rules in the help center, please edit the question.

@Job: Great! "I have never met anyone who can do Scheme, Haskell, and C pointers who can't pick up Java in two days, and create better Java code than people with five years of experience in Java, but try explaining that to the average HR drone." – sbi Jul 25 '11 at 0:36
@sbi, there are many irrational companies out there. I am surprised that the market has not taken care of them. – Job Jul 25 '11 at 1:19
I would suggest the first. I'm sure there are plenty of job opportunities for C++/Java/Perl/Ruby developers. – Zhehao Mao Jul 25 '11 at 16:16

10 Answers 10

Avoid companies that require a specific, temporarily hyped, set of skills. Instead apply for companies that look for developers which bring a certain set of traits that are timeless, like the ability to learn new stuff.

In the long term, that will make you happier.

I agree to that, but its not as easy as it sounds right. Sometimes there are companies that you know work on a particular language. Like for example, bloomberg uses C++ extensively. So should a programmer with Java expertise never apply to bloomberg ? – tryurbest Jul 23 '11 at 21:38
@tryurbest: Yes, they should - if said company looks for good developers, no matter what their current skill set is. However, if they look for developers with 3.7 years of experience in <insert_random_set_of_C++_technologies_here>, I'd recommend looking somewhere else. – sbi Jul 23 '11 at 21:52
@tryurbest, not convinced of the bloomberg argument, went for a "c++" interview there, every question was c. I agree with sbi here. – Nim Jul 23 '11 at 22:42
I'm not sure I agree with this, especially for developer positions. Unless its explicitly an entry-level position, I highly doubt that the company would want to spend time training an employee in language X or framework Y. Instead, they would want someone with this knowledge already, so they can learn the company's process and procedures, then jump in and start working. I would be concerned if the interview only focused on one technology, rather than also including general development and engineering questions/discussions, though. – Thomas Owens Jul 24 '11 at 13:39
@Thomas - Learning enough of language X or framework Y to be productive often takes very little time, especially if you already know similar languages X' and X'' etc. A lot can be learned in your spare time, and a huge amount generally isn't learned at all, but just looked up when needed. I tend to think of learning a particular language as trivial compared with learning the product and the existing code - every programming job I've had was the first time I used that particular language professionally. I lost count of how many languages I'd used before I even got my first programming job. – Steve314 Jul 24 '11 at 19:26

Smart employer will hire you regardless any particular hands on experience. Dull employer will ask for very specific skill and it isn't worth to convince them, because even if you got hire, they will easily lay you off. If you are looking for cutting edge job just contact me, my company is always open for smart people regardless previous experience or knowing particular technology.


Submit your resume. Go in for the interview. You'll find a large percentage of the time you'll find questions are general design questions, or programming language questions.

Not ASP.NET version 2.001112, arcane feature X

The resume will never get past the HR/Recruiter screening. – Sean McMillan Jul 25 '11 at 13:30
Sadly Sean is right. An IT/Software manager may discount specific experience for someone who knows what they're talking about (as they can pick it up quick) but in most situations HR hands resumes off to that person, and HR only looks for buzzwords/keywords so the manager will never even see your resume or know you applied. – Wayne M Jul 25 '11 at 13:59

I find the question is more whether you are interested in X or Y? E.g. If I one day grow an interest for JavaScript I would apply to such jobs even without being an expert because other factors may be more important to the employer like domain specific knowledge than whether I am a wizard in the language. In my experience one should not take specific requirements in a job ad too seriously, sometimes they don't know what they want. Tell them what they want.

That said, of course it doesn't hurt to prepare yourself and learn the language that you want to work in so that you can answer specific questions at the interview (if you get called)

Another example is from my own work, we wanted to hire a mobile phone developer preferably with objective-c experience, unfortunately there are not that many people that have that skill set so if you get 50 CVs and only one or two have the necessary knowledge you may be forced as an employer to broaden your search hoping to find somebody with the right attitude who can learn fast instead.

  1. Probably a good choice. The best is of course find one where you can also pick up new technologies.
  2. Companies expect you to have work-place experience in those technologies so this probably won't work
  3. It's very hard to find a company that looks for bright people and knows that some knowledge in a technology in negligible compared to the qualities of the applicant on the long term. This is especially true for agencies who don't give a sh.t how bright you are. I saw a couple of mad things in my life.. I worked with three different RDBMSes and they declined my application because I don't have experience in a 4th one. Come'on, how different that one can be? :/
  4. Wait till you get a good offer, if you have the skills you will eventually find the right place. If you are really interested in C# or ASP then learn it, but it doesn't make sense to do so just because it's popular.

Something else?

Yes, two things - either separately or in combination.

Move to an area where your skills are in demand.

Your particular skill set (C++/Java/Perl/Ruby) is in great demand around San Francisco/Silicon Valley, and in NYC/Wall Street.

I just did a quick search on Craigslist for the Bay Area, and found 237 open C++ positions, and 628 for Java. DICE lists 777 open C++ positions in Silicon Valley, and 1350 Java. It's also my experience that for every advertised position, there are three that are undergoing an unadvertised search through headhunters.

So even allowing for duplication in the listings, there are a lot of gigs here for you, bro.

Put your resume on DICE, and a profile on LinkedIn.

That's how you find those unadvertised open positions. Headhunters looking for software developers comb those sites every day looking for people who match particular keywords.

And of course it's really great when, instead of blindly applying for jobs and hoping to hear back, recruiters are calling and emailing you asking if you're willing to apply.

Even if you don't move to begin with, if you have a great skills match and an employer really wants you, they'll foot the bill to bring you in for an interview, and if you take the job, they'll cover your relocation costs. That's how I wound up in the Bay Area from Texas, and a few years ago a company flew me in for an interview and overnight stay in Manhattan.


I think one of two things would happen in these situations;

A) The company has the specifics listed because they need someone to work a specific project that is using these specific technologies, and they need someone who can come in and start producing results immediately. In these cases, you are not likely to get the position. Especially one that requires more years of experience. For example I have held Senior Software Engineer positions in both Java and .NET. If I applied for a Sr. level Ruby position, while I have no doubt that I could pick up the language quickly, I'd really be doing entry level work, not Sr. level and instructing others as to what is good and bad.

B) If the company is hiring for a an entry level or up to maybe 3 yrs of experience in a technology, then they are not looking for a super experienced programmer to in mentor others on the team, so you are more able to get away with learning on the job. In these cases, a good cover letter that includes some discussion of another situation where you have had to quickly learn a new language or technology, and demonstrates your willingness to do so, may get you in the door.

So, I'd say either #1 or #3 from your original question, but it depends on the company and their staffing needs, and the experience level of the position. As you get into more experienced positions, I think you will find companies less willing to compromise on skill sets. After all, they are investing a lot of money in you at that point, and they don't always want to train you.


Not consider these companies and look for companies with your expertise?

That seems like a waste. If you have no skills that the company is looking for, then perhaps you should look elsewhere. Is there some way that you can relate your current skills to what the employer is looking for? It might be a little harder to get past HR, but still possible.

Just put that in your resume, and learn the technology before interviews? After all, how hard is it for a developer to wrap their brains around new languages?

Absolutely not. If I was a hiring manager and found out that you lied on your resume or interview, you would be done. You wouldn't just go to the bottom of the pile, you wouldn't be considered. Never lie on your resume or during the interview. In an interview or on a cover letter, you can spin your experiences to show how they are relevant to the organization or position, but don't flat out lie.

Try to convince the employer in the cover letter that you are good at one thing but can a learn a new language a tool pretty easily?

Absolutely this. You can take a lot of approached in a cover letter, from trying to explain how your skills are applicable to the position or how you see yourself as a good fit for the team and/or organization, even if you don't have a lot of the required skills. Showing things like adaptability, quick learning, problem solving, and leadership in a cover letter and talking about them in an interview would go a long way.

Something else?

Learn the technologies that are used by the companies that you want to work for. Take part in open source projects. Ask and answer questions here, on Stack Overflow, and other Stack Exchange sites. Kick off your own projects - even if you never release them, you can submit code samples or the entire project to your potential employer to demonstrate your knowledge.


A modified Option 3.

Send your resume in, and if you get an interview, use it to convince them you can do the job. Worse case, you spend $.44 on a stamp and dont get an inteview, right? (and emailed resumes are free). When companies list requirements, they usually list what skills their ideal candidate will have, not what they will accept. Heck, half of the time the job description is written by a recruiter or HR drone who has no clue what the technologies are in the first place. So if you hit a couple of their bullet points, dont be bashful.

I say 'modified', in that you should not highlight that you dont have a particular skill set in a cover letter. Just promote yourself as a successful developer who completes projects using whatever technology is needed. Or dont use a cover letter.


4. Work with a recruiter.

Many companies go through recruiters to find applicants for jobs. Recruiters try to keep a stable of programmers around so they can hook employers up with people who are a good fit. If the recruiters know you well, and know what you're good at, you'll be rewarded:

  • They will let you know first when a job that fits your skills comes up.
  • They will advocate for you when a job that you would be good at, but you don't have the history for comes up.
  • They will not submit you for jobs where the need someone writing in C# yesterday, because that will be a waste of everyone's time

A good relationship with a few recruiters will do wonders to get you jobs that fit you well, even if the posting is asking for the wrong thing.


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