DEV Community

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

 
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.