Ask HN: Learning multiple languages vs. mastering one
131–137 of 137 posts
Re: Ask HN: Learning multiple languages vs. mastering one
#132Earlier quoted context omitted.
Programming is not carpentry. The best programming languages (IMO) are general-purpose, and the gains from being able to know a single language in depth and reuse the same tools and techniques across different domains outweigh those from using different languages in different domains.
Depends. Yes, learn a general-purpose language, and learn it well. But also, learn some other things well enough to be able to use them. Use them when they make the job easier. For example, my main language is C++, and my second language is Java. But when the problem I have is picking snippets of text out of a text file, I reach for Perl, because Perl is far better at that than either C++ or Java. I don't want to "re…
I've found that even if I don't need to use a language after I've learned it, the skills and experiences I pick up while learning it improve my code as a programmer.
I've learned how to write fast code in C; learned how to write flexible template code in C++; appreciated the "batteries included" standard libraries of Python; wrote concurrent code in Go; used sum types and functional programming in OCaml.
My friend wrote an article[1] that says there is still no silver bullet for programming, and I agree with her.
Perhaps even if you think it is better to master a single programming language, you might better master it by seeing how other languages approach the same problem.
[1]: https://chameleon.kingdomofmysteries.xyz/articles/harmful/st...
Re: Ask HN: Learning multiple languages vs. mastering one
#133I have python in training plan as well, since it also has lots of 3rd party library and wide support from online community.
I like to keep my learning to a limited set of languages and not spend more time on learning.
Re: Ask HN: Learning multiple languages vs. mastering one
#134It's inevitable you will have multiple languages / platforms comprising your stack. Bash scripts for admin. Golang to write servers. Data science in Python. JS / D3 on the frontend. C# / Unity 3D modelling and scripting. Even low level C / Assembly if you need performance optimizations. I think mastery of cloud development and deployment is crucial going forward. Start experimenting locally right on your laptop with…
> It's inevitable you will have multiple languages / platforms comprising your stack. Bash scripts for admin. Golang to write servers. Data science in Python. JS / D3 on the frontend. C# / Unity 3D modelling and scripting. Even low level C / Assembly if you need performance optimizations. It's not at all inevitable. I would - indeed do - use Scala for all of the use cases you listed.
Re: Ask HN: Learning multiple languages vs. mastering one
#1351. Your "personality"
Properties/qualities that you like most. To discover what you really like you need to try different things. It might change over time as you become more experienced.
- dynamic vs static
- weakly vs strongly
- oop vs functional
2. Impact and market.You need to specialize in things that let you make the most impact. At some point, knowing specific APIs/Frameworks is more important for productivity. You also want to get nicely paying job and these will only come when you are expert.
- frontend vs backend
- DevOps vs dev vs dba vs full-stack
- networking vs distributed vs graphics vs web vs embeded
I would avoid Project Euler as problems are too small to evaluate anything other than syntax. Learning stuff like Kube or AWS is not particularly useful. Knowing what tool to use and how to put it together is more important.Finally depends what you choose you might end up learning one language or multiple.
Re: Ask HN: Learning multiple languages vs. mastering one
#136Re: Ask HN: Learning multiple languages vs. mastering one
#1371. Learn bash. It's the glue of the *nix world. It's not complicated but it's foreign enough that it's worth spending a few weeks really understanding.
2. Learn Javascript. It's the C of the modern era. Practically every piece of software in the world has to interact with Javascript, and the value of it is only increasing.
3. Learn C. It's the Javascript of the old world, and the foundation on which most of modern computing is built. If you need to get two things to talk to each other, the answer is usually C. Fortunately unlike its younger brother C++, it's a fairly straightforward language to learn.