Live data from Hacker News

Ask HN: Learning multiple languages vs. mastering one

news.ycombinator.com

11–20 of 137 posts

Re: Ask HN: Learning multiple languages vs. mastering one

#11
post #10

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.

Just to back this up, I found Elm to be a really good way to learn Haskell. I actually started with Haskell, but Elm allowed me to practice a lot of my functional programming skills and the different way of thinking without getting in my way too much, and in a fun environment with immediate feedback (frontend development). When I went back to Haskell I found it much easier.

Re: Ask HN: Learning multiple languages vs. mastering one

#12
During downtime between 2 jobs, I used to look at different languages for like half a day each, just to see what they did differently compared to the ones I already knew. I was mostly interested in concepts, not syntax.

This 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

#14
Don't overlook at any books or tutorials from now. Go to the php docs alone. See stackoverflow for special queries only if stuck. Like any langs, start with low objectives. First try to do some maths, display the results. Then work with texts, try to alter contents by program. String, array, object, learn to create, and alter them. Later see by youself what kind of database type suits well your objectives. play with it (Flat files? json?). Wow you can pass external arguments by the url. (Big moment here ;) )

From 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

#15
What makes you think it's even possible to master a single language without learning others?

My 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

#16
I'd suggest to learn different _types_ of programming languages. That is, one object-oriented (like Java as you already have), one logical such as Prolog, one functional such as Haskell, you get the idea. In my mind learning several languages that all more or less belong into the same domain probably won't gain you any more insight into this field since all you're actually learning are subtle differences in syntax.

Re: Ask HN: Learning multiple languages vs. mastering one

#17
I would sort of do a hobby project in the following languages (in addition to Java for Object Oriented Programming, although something obscure like Smalltalk can be fun for an evening):

- 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

#20
There's a book: 7 Languages in 7 Weeks that tries to pick a language from different "domains" (functional, imperative, prototype...)

Might 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.

Post reply on HN