Erlings: Small exercises to get you used to reading and writing Erlang code
source: http://www.erlang.org/
Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability. Some of its uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang's runtime system has built-in support for concurrency, distribution and fault tolerance.
One of the most important parts of any learning process it the resolution of practical problems by one self, but is hard when you don't have anything to guide you or something to compare with.
Must Read
Exercises
The exercises are divided in 5 sections. They are meant to be done as you read Learn you some Erlang for great good, but feel free to do them as you wish.
Start by clicking one of the exercises below or just run:
$ make
A. Sequential Programming
B. Concurrent Programming
C. OTP
D. Distributed Programming
E. Libraries
Down the Rabbit Hole
Advanced Erlang
- How to build stable systems
- Stacking Theory for Systems Design
- A Ramble Through Erlang IO Lists
- Erlang String Handling
- How Erlang does scheduling
- Red and Green callbacks
- RTB: Where Erlang BLOOMs
- On Erlang, State and Crashes
- It's About the Guarantees
- Don’t Lose Your ETS Tables
- The Road we didn't go down
- Erlang Garbage Collection Details and Why It Matters
- Sequence and Order in Erlang
- The Erlang shell
- Queues Don't Fix Overload
- https://www.erlang-in-anger.com/
- Whatever you can find in spawned shelter
Distributed systems and databases
- Distributed Systems: for fun and profit
- Designing Data-intensive applications book
- From the Ground Up: Reasoning About Distributed Systems in the Real World
- Jepsen: On the perils of network partitions
- MapReduce: Simplified Data Processing on Large Clusters
- Dynamo: Amazon’s Highly Available Key-value Store
- Bigtable: A Distributed Storage System for Structured Data
- Time, Clocks and Ordering of Events in a Distributed System
- Unreliable failure detectors and reliable distributed systems