
Explore Erlang and Elixir, with the BEAM virtual machine, lightweight concurrent processes, and the Open Telecom Platform (OTP); compare strengths, ecosystems, and learning curves for scalable, fault-tolerant applications.
Explore Elixir basics by learning how variables are bound, not assigned, use pattern matching to extract values from tuples, and leverage wildcards and rebindings to control data flow.
Explore built-in data types in Elixir, including numbers (decimal, hex, binary, octal) with underscores for grouping and exponent notation, and atoms, booleans, lists with head and tail.
Master keyword lists and maps as key-value data structures in Elixir, and learn binary strings versus charlists, including access via dot and bracket notation and conversions.
Explore modules as namespaces in Elixir and defining public and private functions with def and defp. Use one-line definitions, camelCase module names, and the pipe operator to chain results.
Learn how arity defines how many arguments a function accepts, implement multiclass functions with the same name but different arities, and use guard clauses for pattern matching and safe fallbacks.
Explore anonymous functions in Elixir, bind lambdas to variables, pass lambdas as arguments, use the capture operator and placeholders, and understand closures in practice.
Explore recursion in Elixir by examining lists, maps, and comprehensions, and implement a recursive map function to multiply elements across lists.
Explore a bit more complex recursion by building a max-finding function over a list in Elixir, using guard clauses and a current-maximum accumulator.
Learn how tail calls optimize recursion in Elixir by converting non-tail recursive patterns into tail-recursive ones, reducing memory usage and improving performance with examples like multiplication and factorial.
Explore Elixir built-in functions for lists and maps, including delete, flatten, insert, pattern matching, and reduce with keyword lists.
Learn how streams in Elixir lazily compose map and drop transformations, enable efficient reductions, and even generate endless streams via iterate to process large data or files without intermediates.
Learn to stream large files in Elixir with the stream module, reading line by line to avoid memory load. Build a typewriter-like output that animates characters with delays.
Explore how comprehensions in Elixir create new collections from existing data using generators, filters, and multiple sources, including lists, ranges, and binary strings.
Learn conditional logic in Elixir, using if, else, and unless, explore case and cond, and leverage pattern matching and macros like keys to build maintainable, testable code and handle defaults.
Learn how to handle exceptions in Elixir with try and rescue, after blocks, and multiple clauses, and understand when to rely on supervision and normal process exits.
Learn how isolated processes, often called actors in Elixir, enable concurrency and fault tolerance by communicating through synchronous messages. This approach supports highly available, scalable, distributed systems with parallel execution.
Learn how to spawn and run concurrent processes in Elixir, observe isolated, independently executing tasks identified by process IDs, and explore closures and random execution order.
Elixir course teaches how to make processes communicate using synchronous messages, send and receive patterns, timeouts, and collecting results through spawning, self, and mailbox behavior, including linking and monitoring.
Build a long-running server process that preserves game state through tail-recursive messages, implementing a two-player take-away game with 1–3 stones per turn.
Explore GenServer in Elixir, learn how OTP behaviours, supervisors, and applications simplify building and managing long-running processes, implement callbacks, set the initial state, and start the server.
Respond to requests on a gen_server using synchronous calls and asynchronous callbacks, and manage the current state with timeouts. Explore arithmetic examples showing error handling and termination.
Refactor a game server with GenServer in Elixir, modeling a stones game with a state of the current player and stones, and handling synchronous calls and guards.
Refactoring a GenServer for a stone-taking game in Elixir, exposing three interface functions, handling start and play flows, and presenting a welcome message while validating moves.
Learn to use mix to create a new Elixir application, scaffold a project skeleton with lib modules, including client and server components. Explore dependencies and supervised versus unsupervised applications.
Install and manage third-party packages in Elixir using Hex, specify dependencies, and resolve them with mix. Understand semantic versioning, differentiate production and development dependencies, and generate project documentation with ex_doc.
Turn your Elixir project into a standalone executable using escript, parse command line arguments with the option parser, define a main function, and run a configurable game of stones.
Configure your Elixir application by moving default values to a config file and overriding them with environment variables. Access configuration keys at runtime to avoid magic numbers.
Learn how to use supervisors in Elixir to restart failed processes, implement one-for-one, one-for-all, and all-for-one strategies, and manage supervised trees for reliable applications.
Explore Elixir term storage with ETS and DETS, learning in-memory and disk-based persistence, table types like set and ordered set, and access control for durable game state across restarts.
Discover how to finalize a persistence mechanism with ETS, manage and clear stored game state, fetch the latest state from storage, and continue the game from that saved state.
Discover how Elixir nodes enable distributing tasks across multiple machines, including naming nodes, inter-node communication, and spawning remote processes with global names and shared cookies.
Explore how to use tasks and agents in Elixir to run background work, manage state, and distribute factorial computations across multiple nodes.
Explore how Elixir represents code as data through quoted expressions and abstract syntax trees, and learn how macros enable metaprogramming before program execution.
Explore metaprogramming with Elixir through quote and unquote, and learn how bindings affect evaluation. Inspect macro internals to understand hygiene and code injection.
Explore polymorphism in Elixir by implementing protocols as contracts. See practical examples with integers, strings, and employee and company structs, using each and related protocol functions.
Elixir is a programming language used by application developers of all kinds and it is best for building scalable and maintainable applications. There are lot of people that are jumping on board with Elixir because it sort of has elegance.
Elixir is a functional language and it runs on the top of Erlang virtual machine, which implies it is also inherently concurrent and distributed, whereas the syntax is very straight forward, it’s unlike any other functional languages. The emphasizing reasons why people typically get excited is because, it is fun to read and write, and it has lots of built-in features for building reliable systems.
Our course is designed keeping newbies and freshers in mind, the course separates language into simple bits and pieces that enables you grasp the language easily and furthermore help you to start programming quickly.
In this course we are going to start with basics of functional programming which is for example quite different from object oriented programming. We will even dive deep in the basics of Elixir and how it is different from other popular language with all the specifications. How it work with the processes and makes its stand apart.
In the next section we will see what is node, tasks, and agents. You will also learn how to work with GenServer i.e. the part of OTP framework that comes from Erlang with the applications in Elixir with all the dependencies. What are supervisors and how they can ensure for the tool runs.
That’s not all, you will also see what is Mix tools that comes with Elixir along with the Metaprogramming concepts. We have designed this course for newbies, everything is packed in this course that a developer need.
We can say that Elixir is not only a great programming language that allows you to build powerful applications, but also because it has all the goodness provided by Erlang, it has many tools under the belt which makes it very easy for newcomers to built complex systems. You don't need any third party solutions to go through all the processes, or to introduce all the parallel execution of the code, to store your data in the memory, because there is even a separate database management system that is available for Erlang in Elixir.
We really encourage you to try Elixir because while alluring this language you will have the possibility to look at the process of programming from a different angle. All these new concepts will allow you to think a bit differently.
With our simple to learn course, you won't just take in the nuts and bolts but will advance further to more complex functional programming ideas.
So, what are you waiting for? Let’s get started.