
Ask HN: How do you learn a new programming language - anuragpeshne
If you already know couple of popular languages such as Python, Java, C and you want to start learning a new language, say Elixir, how would you start.<p>Would you go bottom up: follow a book or online tutorial and start from very basics.
Or would you top down: start with a project and then lookup how to do things.
======
jlg23
It depends..

case a) I already know the basic concepts (say "imperative" or "object
oriented"). Then I skim over a few tutorials, the documentation of the
standard library and some style guides. Then I build something I don't have to
think about so I am not distracted by the task itself (once upon a time it
always was a simple blogging software, nowadays it is a rudimentary httpd).

case b) I don't know the basic concepts. Then I get the best book about it and
go from there. This takes considerably more time and is nothing I'd do if I
had to use the language professionally soon. (I spent about 1.5 years reading
On Lisp and Common Lisp the Language in the little time a 80h/week job in a
startup left me, several times re-reading parts until it finally "clicked"
when I could recognize functional concepts in my own perl code. Only then I
started to write code in CL.).

------
WalterSear
I start by finding simple code to read. Often, if I start with the books and
classes, I'll end up more confused than if I just looked at examples and
stumble myself through the code, and look up things that I don't understand.

The next step is setting up a build process so I can hello world.

From then, it's time to figure out why I wanted to learn the language in the
first place, and tackle something that gives me that.

