Do you need to learn a new programming language for a specific job?

My previous post, My Experience Job Hunting as a Software Engineer in America, gave an overview of the talent shortage in Silicon Valley, a snapshot of the Bay Area tech boom, and how, as a career switcher, I still managed to get plenty of interviews. This post is chapter one of the preparation series. With so many programming languages out there, if you already have experience (or none at all), do you need to learn a specific one?

The short version (if the rest is too long, this paragraph is the conclusion): If you already have experience and a language you are comfortable with, make your strongest language even stronger. There is no need to deliberately learn another one. The company will find engineers who know your language to interview you. If you do not know how to code yet, pick the language your ideal job uses most. If you want to build for the web, you can choose JavaScript, Ruby, PHP, or Python. (Era note: that was the mainstream list in 2015. By 2026, TypeScript has become the most-used language on GitHub, and Ruby and PHP make up a much smaller share of new projects.) If you want to build mobile apps, that means Kotlin (Android) or Swift (iOS); Google has been Kotlin-first for Android since 2019. If you have no particular direction, C++ and Java are what generalist software engineers use at many companies.

A few friends asked me whether they should learn a new language specifically to prepare for a future job at some company. I do not have a lot of experience, and I do not know that many languages, but in my experience, the first phone screen is with a recruiter, and the recruiter always asks what my strongest programming language is. The next round, the technical interview, is then done by engineers who know that language. Recruiters at both Google and Facebook specifically confirmed this with me: in most cases they hire generalists, meaning they are not looking for someone who must know a particular domain or a particular language. They look for people who are smart, work well in a team, and keep learning new technology. The Facebook recruiter gave an example: the team I interviewed with did not use Ruby, but an earlier candidate’s strength was Ruby, so they found engineers who knew Ruby to interview him. He passed the final rounds, Facebook gave him an offer, and they believed that if your computer science fundamentals are solid and you are someone who keeps learning, you can pick up whatever language the job needs and fit right into the team.

Of course, not every company is like Google and Facebook. Either way, you need one strongest language: know its idioms well, and know the most popular frameworks and libraries in it right now. In one of my interviews, a small startup needed a partner who was deeply familiar with a specific domain. They wanted my expertise in my strongest language to give them different opinions, or even better solutions, on architecture.

So do not worry that your dream company does not use your strongest language. Practice solving all kinds of problems in it. If you are a true expert in that language, your interview opportunities will be more than you can imagine! (Era note: that last line was written in 2015, in the middle of a Silicon Valley talent shortage. By 2026, the entry-level market for engineers has contracted sharply.)

Next in the series: How Software Engineering Interviews Work in the US


This post was originally published on my former blog, 「半路出家軟體工程師在矽谷」, on August 8, 2015. The blog is now offline; the full text is preserved by the Wayback Machine. It has been lightly edited for this site, with era notes added where the facts have moved on.