If you know at least 10-15 programming languages, that's awesome! --> I think this is still too much. Your brain cannot handle such number, the more language you learn the less you are good at them (you may probably know only the basic stuff). I think no more than 4-5 languages is pretty good and you can focus on them in order to do advanced stuff. You can easily notice this with veteran developers and people doing complex thing, they focus on few languages.
also included in my thinking. Even if you count frameworks and libraries, it's too much to handle 10 of them. You will clearly notice this one day. Either you know 20 different things and you are stuck at the basic stuff or you know 3 different things and you can gain enough experience and knowledge to become an expert on them.
Software engineer with a passion for tech, system design, entrepreneurship, and continuous self-development. Crafting solutions and pursuing personal growth.
Languages and frameworks are just a tools. In my opinion, you need to learn principles behind software development, design patterns, etc. You can use principles with every language, and framework.
Totally agree! Also what does knowing a language or framework means? When we say you know python, do we mean we know all the language features end to end, which version of the language... If not, where do we draw the line :) 10+ language in this case definitely not feasible. Especially, languages also evolve. (These apply also to frameworks)
Hello World 👋🏻I'm a young man working to be a full stack developer. My goal is to create a programming community for exchanging ideas. Send weekly newsletter! Thx for 160k view❤
Nonononononono... if we add them to the list, it's with full privileges or they don't count at all. They cannot be programming languages for what we want, but not for what we don't want. 😋
Yeah, 10 - 15 feels like a big number. I generally think knowing a language off the top of your head isn't as important as knowing, logically, how to do something.
If you know I want to do xyz because of abc, without falling into the xy problem, you can easily google how to do that in a said language and the more you use the language the more it will stick with you.
When you're starting out it's perfectly fine to tinker with multiple languages but understand programming fundamentals first. Even if you learn multiple languages, at some point, you should consider mastering a default stack. For me that's Vue/Django/PostgreSQL, switching to Laravel for shared servers or Go for web sockets or high performance. Then I use Flutter for mobile apps
Yeah. I've toyed with dozens of languages since I first started in 1984. A lot of them, even those I used for years, I would not say today that I "know" them, because I don't remember enough to just jump in and be productive. I'm currently working with... Let's say three languages, only two very actively (the third one is more of an occasional maintenance thing, so I often have to reset my brain if I need to do anything non trivial).
The ability, the willingness to learn something new (language or whatever) is more important than something like, "knowing X languages", because that's a completely meaningless metric as far as I'm concerned.
Nah, there's no upper limit; you should have one or two languages that you're really good at, where you keep up with the latest news and the ecosystem. Beyond that, the more languages you play around with the better, but there's no point in learning them properly unless you're going to use them.
There is a contradiction in your comment : you said there's no upper and right after you should have one or two language that you're really good at ...
I think an issue that always comes up in this sort of discussion is that people often have two distinct and very different ideas of what knowning a language means.
For some people knowledge means familiarity. Knowing a language means being familiar with how it works, it's essential concepts, etc. but aren't masters. For other people knowledge means proficiency. Knowing a language means knowing all the ins and outs, edge cases. For the first group 'knowing' a dozen languages, frameworks, etc doesn't seems at all out of the question while for the second 'knowing' more than a few languages means decades of work.
I suspect that you (as I am) are in the first group while Temani above is in the second group.
Even for the second group, it's often more a matter of memorizing specific idiosyncracies of individual languages. And with that, I would argue it's much easier to have multiple broader strokes in memory than knowing every last detail of any given language. That is, I find it much easier to remember the various details of how PHP handles things differently from Python, for example, than remembering the deep exact details of everything PHP does. The rest is general programming knowledge.
The more languages you explore to depth, the more you'll be able to generalize that knowledge - and recall the contrasts.
So I would actually argue that especially the second group should learn more than a handful of languages. The underlying principles and their differences teach a lot more about algorithms and language theory than mastery of one language ever will. And that, in turn, is knowledge that can be applied as mastery of any language very quickly.
To expand on that, since a few people are applying the criterion of whether you can immediately dive into a language you used to learn: Minimizing the time it takes to get back into a language I haven't worked with in years (or even a new language!) has repeatedly come in very useful. I learned Golang in its basics overnight, and to depth within a week. I switched back from PHP to Java within two weeks, despite not having worked with Java in at least four years, to the point where I'm comfortably discussing intricate language and architecture problems the new team had been struggling with for months.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
If you know at least 10-15 programming languages, that's awesome! --> I think this is still too much. Your brain cannot handle such number, the more language you learn the less you are good at them (you may probably know only the basic stuff). I think no more than 4-5 languages is pretty good and you can focus on them in order to do advanced stuff. You can easily notice this with veteran developers and people doing complex thing, they focus on few languages.
(EDIT: With frameworks and libraries included, such as react, vue, angular, etc.)
also included in my thinking. Even if you count frameworks and libraries, it's too much to handle 10 of them. You will clearly notice this one day. Either you know 20 different things and you are stuck at the basic stuff or you know 3 different things and you can gain enough experience and knowledge to become an expert on them.
Well said
Languages and frameworks are just a tools. In my opinion, you need to learn principles behind software development, design patterns, etc. You can use principles with every language, and framework.
Totally agree! Also what does knowing a language or framework means? When we say you know python, do we mean we know all the language features end to end, which version of the language... If not, where do we draw the line :) 10+ language in this case definitely not feasible. Especially, languages also evolve. (These apply also to frameworks)
Depends on how much you want to learn and how much the project you're working on needs. Just my personal recommendation ;)
Totally agree
We count HTML and CSS as 2 for this list, right? 😈
Yes! Absolutely!
(Even though HTML is technically not a programming language)
Nonononononono... if we add them to the list, it's with full privileges or they don't count at all. They cannot be programming languages for what we want, but not for what we don't want. 😋
is it needed to consider HTML at all? for someone drawing with no html element 😜
I even have a full game in CSS without HTML (it only works on chrome though)
nice, took me a few seconds to figure out what it is but yeah .... nice
Yeah, 10 - 15 feels like a big number. I generally think knowing a language off the top of your head isn't as important as knowing, logically, how to do something.
If you know I want to do xyz because of abc, without falling into the xy problem, you can easily google how to do that in a said language and the more you use the language the more it will stick with you.
When you're starting out it's perfectly fine to tinker with multiple languages but understand programming fundamentals first. Even if you learn multiple languages, at some point, you should consider mastering a default stack. For me that's Vue/Django/PostgreSQL, switching to Laravel for shared servers or Go for web sockets or high performance. Then I use Flutter for mobile apps
Yeah. I've toyed with dozens of languages since I first started in 1984. A lot of them, even those I used for years, I would not say today that I "know" them, because I don't remember enough to just jump in and be productive. I'm currently working with... Let's say three languages, only two very actively (the third one is more of an occasional maintenance thing, so I often have to reset my brain if I need to do anything non trivial).
The ability, the willingness to learn something new (language or whatever) is more important than something like, "knowing X languages", because that's a completely meaningless metric as far as I'm concerned.
Agreed.
(I have edited the article to include frameworks instead of learning a new language altogether)
Nah, there's no upper limit; you should have one or two languages that you're really good at, where you keep up with the latest news and the ecosystem. Beyond that, the more languages you play around with the better, but there's no point in learning them properly unless you're going to use them.
There is a contradiction in your comment : you said there's no upper and right after you should have one or two language that you're really good at ...
There's no contradiction whatsoever. Know as many languages as possible, and focus on a small number that you really master.
I think an issue that always comes up in this sort of discussion is that people often have two distinct and very different ideas of what knowning a language means.
For some people knowledge means familiarity. Knowing a language means being familiar with how it works, it's essential concepts, etc. but aren't masters. For other people knowledge means proficiency. Knowing a language means knowing all the ins and outs, edge cases. For the first group 'knowing' a dozen languages, frameworks, etc doesn't seems at all out of the question while for the second 'knowing' more than a few languages means decades of work.
I suspect that you (as I am) are in the first group while Temani above is in the second group.
Even for the second group, it's often more a matter of memorizing specific idiosyncracies of individual languages. And with that, I would argue it's much easier to have multiple broader strokes in memory than knowing every last detail of any given language. That is, I find it much easier to remember the various details of how PHP handles things differently from Python, for example, than remembering the deep exact details of everything PHP does. The rest is general programming knowledge.
The more languages you explore to depth, the more you'll be able to generalize that knowledge - and recall the contrasts.
So I would actually argue that especially the second group should learn more than a handful of languages. The underlying principles and their differences teach a lot more about algorithms and language theory than mastery of one language ever will. And that, in turn, is knowledge that can be applied as mastery of any language very quickly.
To expand on that, since a few people are applying the criterion of whether you can immediately dive into a language you used to learn: Minimizing the time it takes to get back into a language I haven't worked with in years (or even a new language!) has repeatedly come in very useful. I learned Golang in its basics overnight, and to depth within a week. I switched back from PHP to Java within two weeks, despite not having worked with Java in at least four years, to the point where I'm comfortably discussing intricate language and architecture problems the new team had been struggling with for months.