How many programming languages do you think a person can be proficient in?
To be clear, I am talking about working proficiency. Able to create large, maintainable and "production ready" software that is understandable and idiomatic.
Most programmers will learn that once they've tackled picking up their second language, that picking up any amount of future languages is relatively easy. There are exceptions to that, of course, but broadly speaking you should be able to transfer the core concepts of programming between any number of languages. Going from OOP to Functional is an example of when that might be not so clear-cut, but as I say, there are exceptions.
So then, there is no real limit to the number of languages one can pick up. And it is likely for those who spend a career in software development that they will touch a lot of languages over the years, even if it's only one time to adjust one line in some old project their company has been maintaining for a decade.
In the last three years, I have written something at least once in the following languages (off the top of my head):
- Python
- Rust
- Go
- Elixir
- Java
- JavaScript / TypeScript
- Coldfusion
- C#
- Ruby
Despite that, I am not proficient in most of those languages. Mostly, I needed to make some changes and so looked up syntax as needed and got to work.
In the middle of last year, I had to work on a project for several weeks in Rust. I really enjoyed the language and was able to pick it up and right some reasonable code. My PRs were reviewed a bit more harshly than usual, but over the weeks I seemed to pick the language up well enough. Fast-forward to last week, when I decided I might start a person project in Rust - and it felt very uncomfortable. I was still familiar with the syntax, but I struggled to recall what was idiomatic in the language and which libraries were popular for various problems.
This got me thinking. Having broad experience is great, and I think makes one a better programmer. However, clearly it pays off to go deep in your learning of any tool you use to make money with. And so most of us (I believe) will only touch the surface of most languages, and go much deeper on just a few. And so, to the title of this post, how many languages do you think one person can be truly proficient in?