I have cut down my learning list recently. I really wanted to learn Flutter and ML but I don't have that much time to learn it along React, Node, MySQL and MongoDB. I know these but I'm not really comfortable with Node and MongoDB. So I decided to get really good at MERN stack then move the learning to a new route. Flutter has to wait for a while but I'm gonna get there soon.
To an extent, I agree. But I also disagree in some areas.
It's better to be good at something, instead of mediocre at everything
That's definitely true, but isn't it even better to be great at a lot things?
My point is, if you have the ability to learn a lot of things really well, go for it! It's good to have a lot of tools in your toolbox.
And also, by learning a wide variety of things, you can learn other things that will help you that you wouldn't have learned otherwise.
For example, I started out learning JavaScript. I learned JS really well. But I was so obsessed with the "vocabulary" of the language that I didn't understand how the grammar of programming languages applies in other languages the same way.
9+ languages later, I feel confident that I could jump into any modern coding language, and with the help of Google I could use it just as well as any other.
Also, just to be specific to this case...
I think you can justify most of this guy's learning:
I don't think he should stop learning, I think he should keep learning! Maybe pick up Java (or Kotlin) and Swift (or Objective-C) and start making mobile frontends for his web apps.
Depending on how you define "knowing" a language, you could probably say that I don't know Swift. I don't know all of the syntax and functions attached to data types. Yet I'm coding an iOS app all the same, because I've used enough languages to jump right in.
Whenever I hear about a new language or framework, I want to try it. I've used HTML/CSS/JS, React, React Native, Go, Dart, Flutter, Java, Swift, Scala, PHP, SQL, jQuery, Ruby, Rails, C++, Python, and more. And even though I'm not perfect with all of these, I've learned new things from all of them!
For my opinion, I think have more exposure will be better, because you are able to see the full image. But you pointed out too, don't learn too many things, at least, all at once
What I've come to learn is that only technologists care about what particular languages you know. Depending on what you do (me, web app development), your audience may not care at all. I can tell you the nurses who use the system I developed could care less about the language. All they want is to get at the data they need, when they need it and have it be as simple as possible to use. For that to happen, I have to know what they need. I have to understand why they need it. I have to learn to think like them.
With that said, and from that perspective, I would counter the advice given with: learn your business. The languages come second.
I think this just do 1 thing is nice if you just want to do 1 thing. I am now with my 10th language.
Maybe I am mediocre in comparison to some specialists. But at least the specialists rarely complain about me. After the 5th+ language and concept you're getting pretty quick in understanding languages.
And if you stay within the same language family it's even easier. In my opinion most people stay mediocre despite specialization. At some point they decide they know their stuff and just stay there because it's comfortable.
Challenging yourself on a regular basis is exhausting but it can be a lot of fun. And with every language I learn about the other languages as well.
But I get bored easily, and doing LTP (load, transform, persist) on an abstract framework level in a GC based language is easy anyways.
There are a few exceptions that are more challenging prolog for example or the first ML dialect.
Anyways that's just me complaining about these 'do one thing good' attitude. I am more of a free spirit and say 'do what you enjoy'. Everything you enjoy you will get good at anyways ... because you enjoy it, it will come easy.
just 15 minutes a day in another language will get you pretty far within a year 91,25h of coding.
There is a reason why the pragmatic programmer writes: Learn 1 language per year and not master one per year.
It's better to be good at something, instead of mediocre at everything.
That's a piece of great advice! 👏
I disagree with some of this. However I do approve of the overall message - be good, if not great, at one thing (or more things) in particular.
Edit:
If you wish to specialise in one particular area - that's a great thing to do. But equally as important is not to limit yourself solely to a single language or framework as the experience gained from comparing different languages and their best practises, syntax, pit-falls means you become a better developer overall in my opinion.
Well you can do this really easily in language X so how can we do that in this language OR can we actually use language X instead?
Dwight Badua
Backend Developer
Hmmm... Not sure I entirely agree... The list is a roadmap (which could take at least 5-8 years of learning)... Not a "do all these at once" list. Some are redundant, but sure - learning each could broaden your knowledge.
The bigger picture, he's actually trying to be good at full stack development - not just bits and pieces of it. So there's that.