3 ms·
I believe people over-estimate the benefit of properly learning a language. 3-12 months seems to be sufficient for the specialisation benefits to outweigh the
by _xiaz 2y ago
I believe people over-estimate the benefit of properly learning a language.
3-12 months seems to be sufficient for the specialisation benefits to outweigh the small hit to language competency.
My strategy is to be a generalist superficially learning specialized languages.
- tmountain 2y agoWhatever time frames you apply, the only way to really learn a language is to use it. Reading a book, blog articles, and watching videos on YouTube won't give you the hands on experience necessary to internalize how everything works.
- _xiaz 2y agoOf course. My methodology is usually this: Day 1: read the introduction of a book, set up editor and environment Day 2: (superficially) learn flow control and type system Day 3: practice with coding problems on codewars Day 4-7: reimplement one of my projects Week 2: read the second quarter of the book and continue with puzzles Week 3+: Just projects, maybe invest a day into tooling somewhere in between That is assuming 1-3 hour days
- sunrunner 2y ago> read the second quarter of the book And then never get to the third and fourth quarters because the practise you get from actually typing stuff is far more valuable? :)
- _xiaz 2y agoExactly. There usually is some stuff about the deeper, darker corners of a language in the type of book I pick. I usually pick the authoritative book / advanced book. Think "Programming PHP", "The joy of clojure", "The C Programming Language", etc. I don't necessarily need to know all about performance optimization, the async model or non-html templating. Reading a technical book cover to cover feels wasteful imo
- Ma8ee 2y agoTrue, but actually reading a book about the language to understand the philosophy behind it and its trade offs speeds up the process enormously.
- bborud 2y agoThe way to become good at something is to do it for a long time and to be willing to think about what you are doing and continually improve. There's much more to learning a language properly than just learning the language spec itself. Especially if we're talking about languages such as Java, where you have to know quite a bit about how the runtime works in order to be able to make good design decisions. And Go isn't really that simple either when we start to get into the weeds of performant concurrent systems that also need to be robust. It requires quite a bit of work to be able to make full use of what Go offers. It may look simple, but concurrency never is. You're essentially arguing in favor of not being good at what you do, or at best being mediocre at lots of things. And I'm sure there are lots of jobs where that is okay. The thing is: why would you want to spend a lifetime being mediocre, to work on mediocre projects with other people who are mediocre?