I had just committed career suicide. Well, that’s what I had been told.
My coworkers had just learned that I would be leaving the company. Most understood that. What bothered them was that my current company was a Windows shop and we wrote code in C#.net. However, the position I was moving into developed in a Linux environment where the main programming language would be Java. They saw the change in programming language as me throwing away years of experience. Many people would agree with them.
There are hundreds of programming languages. Some are pretty common, such as Java, C#, PHP, Ruby, Python, and Javascript, while others are more on the fringe or are new, such as Awk, Go, Julia, Rust. With so many choices, how do you know which to focus on? So, I started to think – do you really need to know more than one language?
9 Reasons You Would Want to Know More Than One Language
- You have multiple ways to tackle the same problem. Knowing different languages gives you more options. After all, when all you have is a hammer, everything looks like a nail.
- You’re more marketable, thus you have more job opportunities. Learning a second language can sometimes double the number of positions you could fill. It depends on which language you learn, however. Either way, you become qualified for more opportunities, which improves your job search.
- It shows that you’re able to learn new languages. Your potential employers understand you’re not rigid or traditional.
- It can be fun. Learning something new gives your brain a rush. It will help you grow and improve in a new area.
- You stay current with technology trends. You get an idea of where the industry is headed, and can capitalize on riding the wave. Your skills don’t become outdated.
- It reminds you why you like your “main” language, or how things could be better. Sometimes you just don’t know how good you have it in your main language until you try something new. You’ll appreciate the concepts of your favorite language. At the same time, the new language might have some features that you’re surprised you lived without for so long.
- You become a better computer programmer. Learning new languages helps you improve skills that are transferable between all languages, e.g., designing and building algorithms or handling different data structures.
- You can use the best tools for the job. There is no perfect language; some languages are better than others at particular things. Knowing more than one language gives you the option to choose the best tools for the job.
- It indicates that you are a quick learner. Nothing shows you can learn quickly like knowing a second language.
9 Reasons Why You Wouldn’t Want to Know More Than One Language
- It’s easier to master just one language. Mastery normally comes through focused attention and dedicated work. If you’re continually switching between multiple languages, the probability of mastering one is lowered. Knowing only one language helps you focus.
- Most people only need one job and most companies only use one language. After you’ve been hired, knowing multiple languages won’t necessarily help you. If you know the language for the project, you’re set.
- There’s always something to learn; even if that means diving deeper into just one language.
- Specialists can demand a higher salary in most instances because people are willing to pay more money for an expert. John Sonmez talks about why being a generalist isn’t always the best idea in his video I’m Not Sure I Want To Be A Specialist.
- Even with just knowing only one language, you can still be considered a great developer. Being a great developer has nothing to do with how many languages you know. The thing that matters is what you build. By knowing only one language, you can spend more time building.
- You only need to learn a limited number of software development tools. Most languages only have a few tools. Switching languages normally means switching tools as well. By knowing only one, you can master the tools more quickly. This can help you be more productive.
- It is easier to market yourself. By knowing only one language, you have essentially niched down (even if it’s not by choice).
- You can solve most software problems in any language. Regardless of what many people will tell you, most languages can be used to solve any problem. If making things is your main goal (which it should be), knowing more languages won’t necessarily help you with that.
- It’s better to know one thing well than ten things only on the surface.
This isn’t a black or white issue. Like most issues, the best solution is somewhere in the middle; there’s always a gray area. If you’re a beginner, it’s easy to learn just one language and use it for your first dozen projects. After that, I would suggest you become a T-shaped software developer.
What is a T-Shaped Software Developer?
A T-shaped software developer has deep knowledge in a specific area, and is an expert in one language. This is represented by the vertical line of the T. They also continue to learn another skill more broadly which is represented by the horizontal line of the T.
So what does this have to do with software development and, more specifically, learning programming languages? I would recommend that you learn one language very well. That will become your bread and butter, your go-to language when solving most problems. You should try your best to master this language. From there, you can learn a second language or skill that is best for the job. Check out my previous post on Finding What To Learn Next if you’re having trouble figuring out what skills to choose.
A T-shaped software developer is a jack-of-all-trades, but a master of one.
By becoming T-shaped, you gain the flexibility of knowing multiple languages, while still having the benefits of being an expert in one area.
What Programming Language Should You Choose to Master?
A very common question that you normally see floating around is what language you should select to learn. Or, if you’re just starting out, which language should you learn first. For your main language, I would choose something that has been around for a while. The language should be used in multiple industries and have a solid community with plenty of development tools. Java, C#.net, Ruby, Python, and Swift are a few of the languages that meet these criteria.
Tiobe Software keeps an index that tracks the popularity of software languages based on a few of these criteria. You can see the full list of programming languages here. The index is updated every month, but most languages in the top 20 are great choices. Will all these languages be around in the next 10 years? I’m not sure. They will likely be around for at least the next four years, which is long enough for whatever project you may be starting soon.
Needing to Know More Than One Language Depends on Your Goals
Do you want to start a new side project or business? You probably only need to know one language.
Do you want to change industries or ride the technology trends? You probably need to know more than one language.
Do you want to work in an enterprise setting? You probably only need to know one language.
Do you want to work on cutting-edge projects? You probably need to know more than one language because the trends are always changing.
Honestly, when deciding if you need to know more than one language, there’s no right or wrong answer. In the end, the choice is really up to you.
How many languages do you know? What’s your area of expertise and how do you broaden it with interests? Share with us in the comments.