3 ms·
The returns to knowing more than 2 or 3 languages diminish greatly and your time would be better spent acquiring knowledge elsewhere (product, architecture, inf
by rebelos 5y ago
The returns to knowing more than 2 or 3 languages diminish greatly and your time would be better spent acquiring knowledge elsewhere (product, architecture, infra, monitoring, testing, security, etc).
I also don't see much of a point in learning languages that you have no expectation of using routinely. The knowledge will invariably atrophy and the time will have largely been wasted. The counterargument is that some of it will be retained unconsciously and influence how you think. Personally, I find that argument to be exceedingly frail.
So pick a couple and then let any future language learning efforts be directed by your immediate needs. It is in any case not hard to learn most languages once you have a good foundation.
Languages in common use today for most software engineers in FAANG/startups: Javascript/Typescript, Java, Python, Golang, Rust
For mobile: Swift, Kotlin
For embedded/performance: C, C++
For frontend: HTML, CSS, TS/JS
I would also recommend having a good grasp of Bash (& shell utilities) and SQL.
- schwartzworld 5y agoDepends on what kind of thinker you are, I guess. For me, I find that learning new languages with different paradigms helps me to learn new ways of thinking that make me stronger in my real work.
- rebelos 5y ago> For me, I find that learning new languages with different paradigms helps me to learn new ways of thinking that make me stronger in my real work. I don't disagree that this is possible. My argument is that it's a needlessly circuitous route to improving your capabilities. You can choose to explicitly learn things that have demonstrable pragmatic value and end up with a better long term learning outcome, on balance. But many people are inherently interested in programming languages and paradigms and that's fine too. I just don't think we should pretend that it's uniformly the best use of time in the effort to become a competent engineer or thinker.