Hacker News new | ask | show | jobs
by ThorinJacobs 2953 days ago
As others have said, going "T-shaped" where you master a small number of languages and learn the basics on a much larger number is probably the way to go.

For language recommendations, it depends a little on what you're ready for, what cognitive load you can take on. If you need to pace yourself, focus on one or two paradigm differences at a time.

Want to "dip your toes" without giving yourself a ton of cognitive load? Try doing some work in C# - being familiar with Java, you should be pretty comfortable with its idioms, and can ease yourself into functional thinking if you're not comfortable yet. JavaScript and Python are good choices if you need practice with dynamically typed, interpreted languages. JavaScript is pretty much necessary at this point. If you're dealing with Big Data(TM) you may want to look into a functional language. Haskell is probably a good choice there, but F# may be worth experimenting with as well.

As for evaluating the languages, Project Euler is good, but I've personally found Advent Of Code more helpful for learning. Advent gives you sample input/output that is perfect for setting up unit tests, and the problems are less math intensive so you can really focus on the new language and what idiomatic code and architecture looks like.

Good luck!