I suggest Elm into Haskell. Elm will give you the ability to do frontend work while familiarizing yourself with functional programming concepts. Once you're OK with Elm, go to Haskell, which is a great language to get exposed to plenty of radically new programming concepts. Once you have done that, and considering you have experience in Java, you will have a much broader view of abstraction thinking.
Ask HN: Learning multiple languages vs. mastering one
11–20 of 137 posts
Re: Ask HN: Learning multiple languages vs. mastering one
#12This has helped me to be quicker when picking up new languages or even frameworks. Because, well, nothing is ever really new, right?
(Note that I would not recommend this strategy to a complete beginner. You need something to compare what you are discovering to.)
As for recommendations, I would suggest you look at what kind of problem you're trying to solve. If you could benefit from the infrastructure something like Java EE provides you, choose Java or kotlin (those are mostly interchangeable). For scripting, choose bash or python. For client-side web stuff, JavaScript. And so on.
Re: Ask HN: Learning multiple languages vs. mastering one
#13Re: Ask HN: Learning multiple languages vs. mastering one
#14From there start to play with the internet, load remote datas, parse them, put them to your database. Then melt this all. Learn bash php scripting and unix, start to make system calls (exec, system, passthru...) enjoy the speed. Learn conditions (With just if you can do everything...seriously), Learn looping(while, foreach) , exit conditions and timing. Try to recreate basics tools: grep, cut, head, tail, cat.. you will see it is fairly doable and very funny to do.
Get bored? Do some javascript!
You will see personal ideas flowering at high rate. Still keep your objectives as low as you can. Small projects all aside.
Now you have all this in mind, open a book, check other sources code.
Learn security a bit. (Or not it all depends to your objective). Check good practices.
Close the books. Cut the Internet.
Get over this fancy libraries that anyone advise.
Open your editor. You are the internet. Have fun. ;)
Re: Ask HN: Learning multiple languages vs. mastering one
#15My experience tells me that monoglots reach false maxima because there experience isn't broad enough to realize that there are other maxima to climb.
Java is still, probably, my strongest language, but I strongly believe my craft would have stagnated around Spring/Hibernate if I hadn't taken the time to figure out how problems like typing, dependency injection, persistence, IO etc all work in other ecosystems.
Pick a language that is good for the market place you care most about. Mobile go with C or Swift. Science probably python. JavaScript if you like the web and if you like the perks of working in an Enterprise Java won't hurt.
Re: Ask HN: Learning multiple languages vs. mastering one
#16Re: Ask HN: Learning multiple languages vs. mastering one
#17- Haskell, functional programming with static types
- Clojure (or Common Lisp), functional programming in a dynamic language (and understanding the AST-as-syntax-homoiconicity)
- C/C++, "low-level" programming (e.g. pointers, memory management, registers, the basics of compilers)
- Prolog, Logic Programming as a completely different paradigm
Then after you've "grokked" the pros and cons of these languages, pick one language to become good at. It doesn't matter if that is Java, Java is a fine language; but being exposed to different paradigms broadens your horizon in my experience, and sometimes the idioms and ideas are portable. Personally I've done a lot of back and forth between Java, Python, Clojure and R . If the choice is mine I usually pick Clojure, but not always. Statistics and datascience I still do in R or Python just because the sheer amount of documentation and libraries available. I guess I've been influenced too much by Rich Hickey but he asks "would you rather become good at programming or at problem solving?", and for me it's the latter. Language paradigms help you to recast problems onto a different frame of mind, but at the end of the day it's your ability to help further a cause/business/idea that counts. Just my 2 cents!
Re: Ask HN: Learning multiple languages vs. mastering one
#18Re: Ask HN: Learning multiple languages vs. mastering one
#19Re: Ask HN: Learning multiple languages vs. mastering one
#20Might be what you're looking for, a quick way to asses the landscape.
As for mastery: yes, you need to be able to master at least one language, and plan to always master the language you are going to use the most.