This is not intended to be comprehensive or authoritative, just free online resources I've found valuable while learning more about Erlang. ## Instruction * [Learn You Some Erlang](http://learnyousomeerlang.com) * [Joe Armstrong's Ph.D. thesis (PDF)](http://www.sics.se/~joe/thesis/armstrong_thesis_2003.pdf) * [Introduction to Erlang blog series](http://trigonakis.com/blog/series/introduction-to-erlang/) * [The Architecture of Open Source Applications: Riak and Erlang/OTP](http://www.aosabook.org/en/riak.html) * [Getting Started with Erlang User's Guide](http://www.erlang.org/doc/getting_started/users_guide.html) * [OTP Design Principles User's Guide](http://www.erlang.org/doc/design_principles/users_guide.html) * [Concurrent Programming in Erlang / Part 1 (PDF)](http://www.erlang.org/download/erlang-book-part1.pdf) ## Documentation * [Official Erlang docs](http://erlang.org/doc/) * [Alternative presentation of Erlang docs](http://erldocs.com) * [Inside the Erlang VM with focus on SMP](http://www.erlang.se/euc/08/euc_smp.pdf) ## Community * [Erlang Solutions](https://www.erlang-solutions.com) * [ErlangCentral](https://erlangcentral.org) * [Erlware](http://www.erlware.org) * [Planet Erlang](http://www.planeterlang.org) * [TrapExit (retired, frequently broken)](http://trapexit.org) ## Mailing lists * [Erlang questions](http://erlang.org/mailman/listinfo/erlang-questions) * [Erlang.org list of lists](http://www.erlang.org/static/doc/mailinglist.html) ## Advocacy * [Erlang is not a Concurrent Functional Programming Language](http://www.javalimit.com/2011/05/erlang-is-not-a-concurrent-functional-programming-language.html) * [Systems that Run Forever Self-heal and Scale: Lambda Jam keynote by Joe Armstrong](http://www.infoq.com/presentations/self-heal-scalable-system) * [Erlang's Open Telecom Platform (OTP) Framework: QCon talk by Steve Vinoski](http://www.infoq.com/presentations/Erlang-OTP-Behaviors) * [Erlang – A survey of the language and its industrial applications (PostScript)](http://www.erlang.se/publications/inap96.ps) ## Style * [Solving Embarrassingly Obvious Problems In Erlang](http://www.gar1t.com/blog/2012/06/10/solving-embarrassingly-obvious-problems-in-erlang) * [More Embarrassingly Obvious Problems](http://www.gar1t.com/blog/2012/11/11/more-embarrassingly-obvious-problems/) * [Programming Rules and Conventions (incomplete)](http://www.erlang.se/doc/programming_rules.shtml) ## Projects * [GitHub Erlang repositories](https://github.com/search?l=Erlang&q=erlang&source=c&type=Repositories) * [Comprehensive Erlang Archive Network (unclear if still active)](http://cean.process-one.net) ## Exercises * [Études for Erlang](http://chimera.labs.oreilly.com/books/1234000000726) * [Erlang Programming Exercises](http://www.erlang.org/course/exercises.html) ### General functional programming exercises * [Project Euler](http://projecteuler.net) * [Programming Praxis](http://programmingpraxis.com) * [Rosalind](http://rosalind.info/problems/list-view/) ## Alternative languages targeting the Erlang VM * [Joxa](http://joxa.org) * [Lisp-flavored Erlang (LFE)](http://lfe.github.io) * [Elixir](http://elixir-lang.org) * [The Concurrent Schemer (CSCM)](http://the-concurrent-schemer.github.io/scm-doc/) ## Papers ### Erlang * [History of Erlang](http://dl.acm.org/citation.cfm?id=1238850) * [One Pass Real-Time Generational Mark-Sweep Garbage Collection (1995)](http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.42.7791) * [The development of Erlang (PDF)](http://erlang.se/publications/icfp97.pdf) * [Implementing a functional language for highly parallel real time application (PostScript)](http://www.erlang.se/publications/implem.ps) * [Erlang - A survey of the language and its industrial applications (1996)](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.146.5459) ### Actor model (and similar) * [Actor Model of Computation: Scalable Robust Information Systems / Hewitt, 2012 (PDF)](http://arxiv.org/pdf/1008.1459.pdf) * [The Actor Model (video)](http://channel9.msdn.com/Shows/Going+Deep/Hewitt-Meijer-and-Szyperski-The-Actor-Model-everything-you-wanted-to-know-but-were-afraid-to-ask) * [Actors and Continuous Functionals / Hewitt & Baker, 1977 (PDF)](http://publications.csail.mit.edu/lcs/pubs/pdf/MIT-LCS-TR-194.pdf) * [Why Do Computers Stop and What Can Be Done About It? / Gray, 1985 (PDF)](http://www.hpl.hp.com/techreports/tandem/TR-85.7.pdf) ### Process calculus #### Communicating Sequential Processes (CSP) * [An Introduction](http://chplib.wordpress.com/2009/11/16/an-introduction-to-communicating-sequential-processes/) * [Hoare's book (PDF)](http://www.usingcsp.com/cspbook.pdf) * [Hoare's paper / 1978 (PDF)](http://www.cs.ucf.edu/courses/cop4020/sum2009/CSP-hoare.pdf) #### π-calculus * [*Relation to Pi Calculus* from `erlang-questions`](http://erlang.org/pipermail/erlang-questions/2003-November/010783.html) * [Modeling Erlang in the Pi–Calculus (PDF)](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.113.3913&rep=rep1&type=pdf) * [π-calculus (Wikipedia)](http://en.wikipedia.org/wiki/Π-calculus) ## Misc * [Mostly Erlang (podcast)](http://mostlyerlang.com) * [Erlang interviews and resources](http://pdincau.wordpress.com/category/erlang/) ## Twitter Twitter seems to be the de facto water cooler for technical conversations, and Erlang is no exception. There are far more active accounts than I can comfortably list here; these are just a few of the more interesting ones. * [Erlang Factory](https://twitter.com/erlangfactory) * [Erlang Solutions](https://twitter.com/ErlangSolutions) * [Robert Virding](https://twitter.com/rvirding) * [Joe Armstrong](https://twitter.com/joeerl) * [Paolo D’Incau](https://twitter.com/pdincau) * [Eric Merritt](https://twitter.com/ericbmerritt) * [Francesco Cesarini](https://twitter.com/FrancescoC) * [Bryan Hunter](https://twitter.com/bryan_hunter) * [Ram C Singh](https://twitter.com/RamCSingh) * [Totally Erlang](https://twitter.com/totallyerlang) * [Brian L Troutwine](https://twitter.com/bltroutwine) * [ErlangInfo](https://twitter.com/ErlangInfo)