DEV Community

Discussion on: "Am I a bad developer?" - A question developers commonly face

Collapse
 
afif profile image
Temani Afif

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.

Collapse
 
__manucodes profile image
manu

(EDIT: With frameworks and libraries included, such as react, vue, angular, etc.)

Collapse
 
afif profile image
Temani Afif

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.

Collapse
 
jonahgeek profile image
Jonathan Mwebaze

Well said

Collapse
 
scovic profile image
Stefan Čović

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.

Collapse
 
legorock profile image
Ahmet Erdem

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)

Collapse
 
__manucodes profile image
manu • Edited

Depends on how much you want to learn and how much the project you're working on needs. Just my personal recommendation ;)

Collapse
 
devlorenzo profile image
DevLorenzo

Totally agree

Collapse
 
alvaromontoro profile image
Alvaro Montoro

We count HTML and CSS as 2 for this list, right? 😈

Collapse
 
__manucodes profile image
manu

Yes! Absolutely!
(Even though HTML is technically not a programming language)

Thread Thread
 
alvaromontoro profile image
Alvaro Montoro

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. 😋

Collapse
 
afif profile image
Temani Afif

is it needed to consider HTML at all? for someone drawing with no html element 😜

Thread Thread
 
alvaromontoro profile image
Alvaro Montoro • Edited

I even have a full game in CSS without HTML (it only works on chrome though)

Thread Thread
 
cokacode profile image
theoldman

nice, took me a few seconds to figure out what it is but yeah .... nice

Collapse
 
link2twenty profile image
Andrew Bone • Edited

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.

Collapse
 
ozzythegiant profile image
Oziel Perez • Edited

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

Collapse
 
metalmikester profile image
Michel Renaud

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.

Collapse
 
__manucodes profile image
manu • Edited

Agreed.
(I have edited the article to include frameworks instead of learning a new language altogether)

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

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.

Collapse
 
afif profile image
Temani Afif

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 ...

Thread Thread
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

There's no contradiction whatsoever. Know as many languages as possible, and focus on a small number that you really master.

Thread Thread
 
ludamillion profile image
Luke Inglis

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.

Thread Thread
 
fjones profile image
FJones • Edited

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.