This is not intended to be comprehensive or authoritative, just free online resources I've found valuable while learning more about Erlang. ## Similar lists * [0xAX's list of Erlang bookmarks](https://github.com/0xAX/erlang-bookmarks/blob/master/ErlangBookmarks.md) * [Federico Carrone, Erlang Spawned Shelter](https://github.com/pyotrgalois/spawnedshelter) ## Instruction * [Erlang Master Classes (videos)](https://www.cs.kent.ac.uk/ErlangMasterClasses/) * [Learn You Some Erlang](http://learnyousomeerlang.com) * [Erlang in Anger](http://www.erlang-in-anger.com) * [Erlang Handbook: A concise reference for Erlang](http://opensource.erlang-solutions.com/erlang-handbook/) * [Concurrent Programming in Erlang / Part 1 (PDF)](http://www.erlang.org/download/erlang-book-part1.pdf) * [Try Erlang (hands-on web-based demo)](http://www.tryerlang.org/) * [Erlang for C, C++ and Java Programmers (very short overview)](http://www.tamale.net/erlang/tutorial.shtml) * [Thinking in Erlang](http://www.scribd.com/doc/44221/Thinking-in-Erlang) * [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) ## Documentation * [Official Erlang docs](http://erlang.org/doc/) * [Alternative presentation of Erlang docs](http://erldocs.com) * This site is particularly useful if you need to check docs for older versions of Erlang/OTP * [Inside the Erlang VM with focus on SMP (PDF)](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) ## 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: The Movie](http://www.youtube.com/watch?v=xrIjfIjssLE) * [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) * [Why Erlang Is Awesome](http://veldstra.org/whyerlang/) * [When would you choose Erlang?](http://blog.troutwine.us/2013/07/10/choose_erlang.html) * [Erlang's Big Idea](http://www.sportshacker.net/posts/erlang_big_idea.html) ## Style * [Solving Embarrassingly Obvious Problems In Erlang](http://www.gar1t.com/blog/solving-embarrassingly-obvious-problems-in-erlang.html) * [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) * [Exercism](http://exercism.io) ### General FP(ish) exercises * [Project Euler](http://projecteuler.net) * [Programming Praxis](http://programmingpraxis.com) * [Rosalind](http://rosalind.info/problems/list-view/) * [Sphere](http://www.spoj.com) * [CodeKata](http://codekata.pragprog.com) * [HackerRank](https://www.hackerrank.com) ## Alternative languages targeting the Erlang VM * [Joxa](http://joxa.org) * [Lisp-flavored Erlang (LFE)](http://lfe.io) * [Elixir](http://elixir-lang.org) * [The Concurrent Schemer (CSCM)](http://the-concurrent-schemer.github.io/scm-doc/) * [Efene/Ifene](https://github.com/marianoguerra/efene) ### Erlang(-like) environments on the JVM * [Erjang](https://github.com/trifork/erjang/wiki) * [Quasar](http://www.paralleluniverse.co/quasar/) * [Akka](http://akka.io) ### Other Actor implementations * [Pony](http://www.ponylang.org) * [Orleans](http://dotnet.github.io/orleans/) * [Akka.NET](http://getakka.net) * [CAF - C++ Actor Framework](http://actor-framework.org) ## Erlang-heavy blogs * [Joe Armstrong on GitHub](http://joearms.github.io) and [Blogspot](http://armstrongonsoftware.blogspot.com) * [Jesper L. Andersen on Medium](https://medium.com/@jlouis666) and [Blogspot](http://jlouisramblings.blogspot.de) * [Paolo D’Incau](http://pdincau.wordpress.com) * [Takeru OHTA](http://sile.hatenablog.jp) (Japanese) * See also http://qiita.com/sile * [Ward Bekker](http://blog.equanimity.nl/blog/categories/erlang/) ## Software patterns * [Erlang Patterns](http://www.erlangpatterns.org) ### Actor patterns (currently only Akka resources) * [Enterprise application integration patterns for Akka actors](https://vaughnvernon.co/?tag=eai-patterns-actor-model) * [Learnings from Actor Development](http://blog.chariotsolutions.com/2011/07/learnings-from-actor-development.html) ## History * [LFE-Related History](http://docs.lfe.io/history.html) ## 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) * [An Introduction to Core Erlang (PostScript)](http://www.erlang.se/workshop/carlsson.ps) * [Bjarne Däcker's thesis (2000)](http://www.erlang.se/publications/bjarnelic.pdf) * [Comparison of Erlang Runtime System and Java Virtual Machine (PDF)](http://ds.cs.ut.ee/courses/course-files/To303nis%20Pool%20.pdf) * [Testing Erlang Concurrency with QuickCheck](http://publications.lib.chalmers.se/records/fulltext/146291.pdf) * Note: QuickCheck is commercial software, but tremendously powerful and accessible as a web resource via [QuickCheck CI](http://quickcheck-ci.com) ### 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) * [A Universal Modular ACTOR Formalism for Artificial Intelligence / Hewitt, Bishop, Steiger, 1973 (PDF)](http://worrydream.com/refs/Hewitt-ActorModel.pdf) * [Actor-Oriented Models for Codesign (PDF)](http://ptolemy.eecs.berkeley.edu/publications/papers/04/FormalCodesign/FormalCodesign.pdf) * [ACTORS: A Model of Concurrent Computation in Distributed Systems / Agha, 1985](http://dspace.mit.edu/handle/1721.1/6952) ### 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 * [Erlang Cookbook: collaborative code snippets at ErlangCentral](https://erlangcentral.org/wiki/index.php?title=Category:CookBook) * [Mostly Erlang (podcast)](http://mostlyerlang.com) * [Erlang interviews and resources](http://pdincau.wordpress.com/category/erlang/) * [Akka team blog](http://letitcrash.com) * [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) ## Slide decks * [Erlang in Production](http://yowconference.com.au/slides/yowlambdajam2013/Duggan-Erlang.pdf) ## 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) * [Takeru OHTA](https://twitter.com/reduls)