Menu

Can you get by with just 1 programming language?

Can you get by with just 1 programming language?

No doubt this is one of the most popular questions asked on the internet regarding programming. Just how many programming languages should a programmer learn? And is learning just one enough to get you by in this day and age? And typically the answers range from learn "just one" to learn "all of them", with a few outliers mentioning specifics, such as "learn 4 of them".

And often times you see younger developers jumping from language to language in the hopes of complete mastery only to see them struggle with a few basic database crud operations or setting up proper architecture on a single language. Because those things are also a part of learning a language and learning it well.

So it's safe to say that most programmer's will learn 1 programming language well, and pretty much no one learns all of them, because there's just too many and not every language is commonly used these days.

So my answer is going to lie somewhere near the lesser route. Because you can probably get by with just a singular language, but you might have a much simpler time in your career by adding 1 or 2 more to the list as supplemental.

The case for 1 language

The benefit of dedicating yourself to just a single language is in the fact that you will become very well versed in that language in the long term. Similar to anything else that requires practice. If you play baseball every single day, you'll get really good a baseball. But if you play every sport every single day, then you might be mediocre at best in all of them.

And typically when you get hired as a professional programmer for a company, you spend most of your time working on a single project, which no surprise, is built using one language or one framework. Not always, but often times.

My first programming job, as an example, was developing X++ applications for Microsoft Dynamics, a very popular ERP. I personally didn't know X++ (at all) but the company hoped that I would pick it up within a few short months, especially as senior X++ programmers were rare to come by, and to some extent still are.

Soon after though, I was shifted over to the web team at this company, and so my journey with C# began here. I already had knowledge of C# as I took a class on it during my college years, so this wasn't a huge leap. And I never saw X++ again nor do I remember what it looked like.

After getting professional experience with C# at this company, I was able to land a more senior role still as a C# developer somewhere else. And I've been a professional C# developer for close to 15 years now. Most of my personal projects and past startups have also been created using .NET and C# as well.

Essentially, I get hired to work on C# applications almost exclusively as that is my specialty language. And I personally enjoy it, because I know the language very well at this point in time. And that's also what companies are looking for when they hire a developer. Because 10 randomly chosen developers can probably solve a problem given 'n' amount of time. But one of those developers can probably do it quicker and more efficiently based on their overall experience.

But because I am a web developer 99% of the time, I also need to work with JavaScript. There's no real way of going around that these days. Not only are there client-side content changes to make, but there's a ton of 3rd party JavaScript libraries that are typically implemented on enterprise level websites.

And truthfully, I have worked with professional web developers who knew C# and nothing else. They refused to pick up new languages as they felt that they were beyond that phase of their career. But for that reason, whenever JavaScript was required for a feature request, they would not be able to execute and they offloaded the work to someone else.

Luckily, JavaScript is also a C-based language much like C#, so the syntax shares huge similarities making the process of learning it relatively painless.

Adding JavaScript

While you could be like my old developer friend from above who refused to learn anything except for C#, you are putting yourself at a disadvantage. JavaScript has dominated the markets during the past decade or so and it's pretty much found everywhere these days. And not everyone is lucky enough to work for a company that is that lenient in developer workload.

Being able to only understand a portion of a project makes you a liability because it increases the chances of bugs down the road, and because the company has to have someone on payroll that can make up for that lack of knowledge it also comes at an added expense.

And JavaScript is very developer friendly, so there really isn't an excuse for avoiding it. In fact, during my time at this company I worked with this developer who only did C# and I introduced them to JavaScript. While hesitant for the first few days, several weeks later they were more open to taking on tasks involving JavaScript.

But...

An up and coming technology that hasn't really taken off just yet, is Blazor. And Blazor is a free and open-sourced framework that let's developers build client web applications using C# instead of JavaScript.

And that's pretty huge, because it means that you might be able to get away (in the future) with only knowing a single language and still being able to work on all facets of a project from the server to the client.

I personally have not adopted Blazor just yet myself, as I am still a fan of JavaScript and use it daily when working on React applications.

Because as much as I enjoy C#, I have also spent the past 5 years of my career working with React almost exclusively.

Multiple languages

There is of course a benefit in knowing multiple languages and/or frameworks. But only if you learn them at a very high level. If you can only build a simple 'hello world' application using Java, then I wouldn't say that you're a Java developer just yet.

But if you've spent time (hopefully years) working on a production level Java app, then your options for employment exponentially grows.

But the issue there, is that it typically does take years of work on an enterprise app to get that experience. And that is not easy to come by at all. Because you can only really get that experience on the job typically. And most companies won't pay you to sit around learning a new language, unless required for a specific task.

So what's a developer to do. Well, my personal advice is the following. I personally never really set out to learn any language in particular. In college I learned C++ mainly. And at my first job I learned to some degree X++, which isn't at all similar or related.

From there I went on to C# as was requested by my employer. And for the following decade I applied to C# jobs and picked up JavaScript as it was required for various tasks.

I spent several years teaching for a React.js coding bootcamp on a daily basis, and so I became very fluent in using it. Fluent enough that I chose it as the primary language for the current startup that I am helping to build.

In my younger years though, I did spend some time in attempting to learn Golang, Python, Swift and Objective-C by myself during my off hours. But because I never had any real-world experience, the most that I could do there was to setup a few basic applications.

So let your career, your education and your life dictate just how many programming languages you will need to learn. Maybe it will be one and you will land a high paying job using that language. Or maybe you'll jump around from company to company and pick up 3 or 4 along the way.

There is no algorithm I'm afraid that can help to predict the answer.

Walter G. author of blog post
Walter Guevara is a Computer Scientist, software engineer, startup founder and previous mentor for a coding bootcamp. He has been creating software for the past 20 years.

Get the latest programming news directly in your inbox!

Have a question on this article?

You can leave me a question on this particular article (or any other really).

Ask a question

Community Comments

No comments posted yet
Ad Unit

Current Poll

Total Votes:
Q:
Submit

Add a comment