I'm a developer who has worked mainly in Java in back-end software. I've recently sent an email to a software company which is working on a web-based product I'm really interested in working with along with my CV. The person who responded mentioned that I didn't list PHP in my CV which he said they use heavily and that I should get back to him if I have a lot of experience with PHP.

I don't see a new language as a barrier for me not to be able to do a job. I've worked in several projects where I had to learn a new language/framework on the job and I where I believe I produced good results. I believe my strength lies in my problem solving abilities rather than my Java language skill, isn't this what is more important for a developer?

My question is how do I respond? Do I tell him this? Or do I just let the job go and look for something else?

  • So you prefer to start a new backend project in Java rather than PHP. But suppose you were handed a project written in PHP and asked to add a feature. How would you approach that
    – Brandin
    Mar 28, 2015 at 16:43
  • 4
    They did not ask is you could learn PHP. They asked is you have a lot of experience in PHP.
    – paparazzo
    Mar 28, 2015 at 18:40
  • 3
    Problem solving is indeed more important than coding. But you still have to code. Somebody who argues that he can learn how to code in a particular language on the job - that individual raises my hackles. That kind of claim is just too slick. If you are as good as you say you are, then learn the language on your own so that you don't have to tell the interviewer that you can learn that same language on the job. Mar 28, 2015 at 19:55
  • 4
    Why should they hire you rather than someone who has problem solving experience and significant commercial experience with PHP? Bear in mind that we are not talking about an obscure language here, where employers would expect difficulties in finding experienced candidates. Mar 29, 2015 at 0:52

4 Answers 4


isn't this what is more important for a developer?

In the long run, yes. But the company is probably not hiring you to get a job done 5 years down the road when you know PHP well enough. Most likely, they want to get a job done now. In PHP. And with a skill level that is above "I just tried it for the first time".

Problem solving is an important skill. But so is knowing your tool. The good thing is, the later can be learned. But most likely, a company will not pay you to learn PHP on company time when people that already know PHP are available.

Sorry for ranting a bit, but I have come across a lot of consultants who think that problem solving is better than knowing the tool. It's not. Even a great solution can be brought down by a mediocre implementation. If you think you can solve problems while learning PHP, then that must be completely trivial problems. But people with trivial problems don't need great problem solvers. They need cheap and skilled coders.

There is no harm telling your contact what you believe. What can happen? Worst case, they do not hire you. So what, they seem to want to hire someone else right now, so there is really nothing to lose.

But before you make that phonecall, ask yourself if you would want to be the customer of the guy who learns his tools on the job. Would you be happy to fly with the pilot that says "I have never flown this kind of plane before, but how hard can it be, lets just get it on"?

  • Bad analogy. Flying a plane happens in real time and mistakes are irrevocable. Programs are written, tested, and corrected before they go into production. Mar 28, 2015 at 23:27
  • 3
    They should be. But even if they are that also happens in real time. The company's time. And that time is irrevocably gone. The company pays for it. Mistakes cost real time and real time is real money.
    – nvoigt
    Mar 29, 2015 at 7:44
  • Actually, I think that analogy raises a good point. I'd have no problem at all flying with a pilot with little experience on a particular type if he has thousands of hours on a similar type. In fact, I'd rather fly with him than the guy who only has 50 flight hours, but they're all in the exact airplane we're using. The same is true with programming languages. Someone with a lot of experience and in-depth knowledge of a similar language is likely a better hire than someone with some surface-level experience in the same languages, but someone with no experience in the paradigm is a no-go.
    – reirab
    Apr 13, 2015 at 15:56
  • Also, I'd just like to point out that anyone who takes 5 years of full-time professional development to learn PHP really probably shouldn't be programming. It's really not that difficult of a language to learn. For a highly-skilled software engineer, even with no web programming experience at all, I'd rate it at more like 1 year, maybe 2 to be very proficient. But that's still 1-2 years more than a given company may want to put up with, particularly when lots of PHP programmers are available to hire.
    – reirab
    Apr 13, 2015 at 16:03

Any competent programmer is already a solid problem solver and a fast learner. It's the standard minimum requirement for entry into the field. So that's not exactly something to try and use to overcome lack of experience in a particular language.

Looking at Java and PHP, about the only thing those share is some syntax. How you go about solving problems in each language is very different - and you are only going to know that with experience.

I've seen numerous developers try and cross the language barrier. In every case the first thing they do is try to make the new language work like the old one.

This is a mistake and causes problems for them, and the team, until about 6 months into it when they do one of two things: Either they quit and go back to what they know while saying how horrible language X is or they finally give in and learn how the language is supposed to work. To be honest, not very many people end up making the switch long term unless they are forced to due to market influence. The ones that do make the switch usually spend long hours on their own time learning.

So, when I'm interviewing a dev and they tell me they don't know the language but they are a "fast learner" I stop listening. I don't want to spend 6 months to a year trying to retrain them to a talent level that I can readily find today.

I'd say that if you want to switch languages then you should start learning the new one now. On your own time. Pick a smaller project you've worked on and rebuild it in PHP. Every so often ask a PHP dev to code review it. Take it all the way through deployment. Then, and only then, put out your resume.

  • I'd personally say that understanding the paradigm is more important than having a lot of experience with a particular language. For example, someone who has only ever done low-level C programming is going to have a much harder time becoming a highly-productive C# developer than someone who has spent years designing and implementing software in Java. Similarly, someone who has only ever coded in Java is going to take a lot longer to become productive in Motorola assembly than someone who has a lot of experience in x86 assembly.
    – reirab
    Apr 13, 2015 at 15:51

I have hired many developers in my career. I was always looking for people like you because I was working in consulting where you need people who learn fast, have good problem solving and communications skills and whom you will promote after a while.

Other companies on the other hand often have a different approach. I also came to situations when I had to hire skill rather than willingness to build that skill.

This also makes sense because it takes months to become productive in a new programing language and produce just basic delivery quality. It takes long years to become an expert. Often we cannot afford this and we hire skill.

This usually happens to resolve an immediate issue or skill shortage. If the company thinks long term there should be a skill building opportunity and you may get the job. If they need the skills immediately they will pick somebody else.

I think it is a fair game to highlight your strengths, the benefits you can bring to them and your willingness to learn php. And let them decide.


When I hire a programmer, I usually have a particular need in mind, based on the rest of the team.

Sometimes that means we can afford the time to get someone up to speed on the particular languages and tools we use, and in that case I love to see a resume with experience in other languages. A quality programmer can generally learn a new language quickly (within months) with guidance and oversight, and there are real benefits to training someone the way I want them to code. Not to mention that there will likely be a lower starting salary.

However, sometimes I need someone who can hit the ground running immediately, and that I can expect to produce mature code at reasonable quality. In this case, the starting salary will be higher because I expect more right away.

Above all, be honest about your experience. If you tell them that you have done PHP for years, they will find out that's not true right away, as soon as they read your code the first time. This will be a waste of time for you and for them, and not likely a good reference for the next job either. Frankly, it's very likely that this job is not right for you, based on the phrase "a lot".

However, it's still worth being hopeful while being honest. You have nothing to lose by writing back and explaining that you don't have PHP experience, but emphasizing the breadth of your languages and describing relevant scenarios from your resume. It may be that the next opening in that organization will be a better fit, and an interview is an interview. Good people are scarce enough that if you make a good impression, you might get a call later.

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