How many programming languages a developer needs to know
Blog
Another one of my favorite questions. And in the best tradition of my blog, there will be no easy answer, for we do not live in a simple world.
Let’s start at the beginning. It doesn’t matter where, you started school/university/online course or just read books. Here you have learned your first programming language. It’s almost certainly full Turing, which means you can write anything.
And go write websites, games, mobile apps, drivers, neural networks, etc. And now we choose some language that covers all these needs at once. Did you get it?
Actually, maybe even yes. There are a couple of the most popular languages Python & JavaScript, which I think have already been ported to absolutely any platform and any UFO supports them out of the box, and there are many open source libraries for games, graphics, blockchain development in Python/JS, although they are obviously not designed for that at all, in the same Python you can write the frontend through WASM. But the success of such projects is quite rare, and “can” does not mean “should”.
Here is my personal example: I have 3 languages in my stack: Python, Go and C++. Each has its purpose: Python for data, Go for backend, C++ for math calculations and very high load stuff. I’d say it’s even a lot because sometimes in a year the focus is on 2 of them, and the third begins to be forgotten, of which it seems 2 is the optimal number, so as not to swoop on everything at once and be able to cover some additional tasks.
Another reason to try other languages is to broaden your horizons. I don’t even know what you can catch in IT without some trivial curiosity and not looking at what’s going on in the world at all, not wanting to try something new. For senior developers, I consider knowing 2-3 languages a plus. I wouldn’t advise junks and novice middles to first master one language properly.
And now the last argument, which I personally think is the most important: how to understand that the chosen language is better than the others? What to base your choice to spend the rest of your life writing in $LanguageName on?
- On the advice of your colleagues? (they are never wrong)
- Marketing bulletins? (they never lie)
- On what you learned at school? (there’s a state-of-the-art program everywhere)
So, we’ve figured out why a good senior and above should know / be interested in something other than what his grandfathers taught him at his previous company. What are the arguments against it? I see only one - it is “dissipation”, the allocation of a small amount of time for everything will make you a “master of nothing” (English idiom jack of trades master of none). So it’s up to you to decide how many languages to have in the stack.
Important clarification: showing interest and even writing something doesn’t mean adding it to the stack. During my career I wrote code in about 12 languages, both popular and not so popular, at the same time in my resume I mentioned only the most important ones, and the rest - only a note about small knowledge and only if the employer wanted to see it.
Be interested in other programming languages for your own self-development, not the employer’s. Don’t inflate the list of basic languages more than your brain can remember.