Ask HN: Learning Erlang from scratch

41 points by pierrefar ↗ HN
I've been reading a lot about how wonderful Erlang is. So I'd like to learn Erlang properly from scratch.

Any books/websites/docs/whatever is greatly appreciated. I've started reading the official documentation but it's not very friendly. I want something that starts from the basics, through to the syntax through to deployment. I'm sure one resource will cover all this so anything you may have is welcome.

Thanks!

29 comments

[ 5.1 ms ] story [ 71.0 ms ] thread
http://www.pragprog.com/titles/jaerlang/programming-erlang

No question. Written by the author of the language.

It has lots of great practical examples and walks you through everything from start to finish.

http://www.trapexit.org also has some really nice tutorials and discussion.

It's an amazing book, a rare example of well balanced content. Highly recommended.
programming erlang is a very good book!
The trapexit guys are planning to release "Practical Erlang Programing".
Yes it really is a great book!

However, it is by no means a suitable book for people who haven't programmed anything yet, the author assumes that you are already familiar with coding. So for absolute beginners the book is probably way too difficult.

After seeing it referenced a lot on HN, I've also been really interested in learning Erlang.

What projects have you fellow hackers used/are using Erlang for? Are you glad you did?

I wrote a message queue server that uses the memcached protocol (so I could use memcache client libraries to connect to it), similar to Starling/Sparrow. Starling and Sparrow kept falling over from the volume of connections, so I decided to write my own in Erlang. We've been using it in production for about 6 months now, and it works great.
Any plans to open source it?
Yeah, that's been on my list for months. Maybe I'll get to it this weekend...
please email me when you do - aaron.blohowiak at google's popular free email host.
I just published a screencast demo of a web framework that I made in Erlang, called Nitrogen.

See http://nitrogen-erlang.tumblr.com

Also, the technology behind my startup company, Stitcho.com is in Erlang. See http://www.stitcho.com

I would definitely recommend it, especially if you are one of those people who really stretches a language. Once you get past the new syntax, it is very quick to learn.

RKlophaus: Your stitcho.com site needs to tell the reader more about why they need Stitcho -- on the first page.
I don't know Erlang and I haven't read this, so I can't vouch for it, but I came across this book:

http://www.erlang.org/download/erlang-book-part1.pdf

That's the first Erlang book, and is very good. Unfortunately, it's out of print, or was the last time I checked, but might be available used. It's very good for wrapping your head around programming with pattern matching, single assignment, and message passing concurrency, but light on the OTP, since, I believe, it was written before much of today's OTP was written. Think of it as the book the writers of OTP must have used to learn how to write OTP.

If you can find a used copy, grab it. I bought mine when it was still in print, and wouldn't part with it.

The best way to learn any language is to build stuff. Build something you think is cool. Allow yourself to suck at it and do everything wrong. Then build it again, or build something else cool.
Agreed 100%. I have an idea that I want to build with Erlang.
1) read all courses in http://www.erlang.org/course/course.html then do the exercises in http://www.erlang.org/course/exercises.html

2) read official Getting Started manual http://erlang.org/doc/getting_started/part_frame.html

3) learn about erlang OTP http://www.erlang.org/doc/design_principles/part_frame.html

4) this book is a MUST get! "Programming Erlang: Software for a Concurrent World" by Joe Armstrong http://www.pragprog.com/titles/jaerlang/programming-erlang

good luck!

Thanks! The courses look really good.
We did it as part of a group and found that to be highly advantageous. I recommend finding someone near you who is also interested in learning Erlang and work through it together.