Hacker News new | ask | show | jobs
Ask HN: How do you learn a new programming language
1 points by anuragpeshne 3221 days ago
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.

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.

2 comments

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

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.