Elixir is a dynamic, friendly, easy-to-use, functional language designed to build scalable and maintainable applications. Elixir leverages the Erlang VM, known for running low-latency, distributed, and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.
This course begins with the origin of the Elixir programming language.
You will dive into the functional programming paradigm and know why this language is so special.
This course will then move on to introducing the core programming concepts of Elixir. You will sharpen your skills by learning the language syntax, defining modules, manipulating the characteristics of common data structures, and more.
You will learn about Elixir installation along with successfully running its interactive shell called IEx and its build tool, Mix, which is used to scaffold, build, and test projects.
Next, you will get to know Elixir data types and collections to perform complex computations along with familiarizing yourself with the concept of pattern matching used to extract data from complex structures.
This course will teach you the IO concepts which will allow you to present data in much more useful ways. You will also glean a firm understanding of basics of OTP.
By the end of this course, you will gain an accurate knowledge to start building your own applications from scratch.
What am I going to get from this course?
What’s special about this course?
We've spent the last decade working to help developers stay relevant. The structure of this course is a result of deep and intensive research into what real-world developers need to know in order to be job-ready. We don't spend too long on theory, and focus on practical results so that you can see for yourself how things work in action.
We have combined the best of the following Packt products:
Meet your expert instructors:
Joao Goncalves is a professional software engineer with over 7 years of experience in various areas of software development.
Kenny Ballou is a life-long learner, developer, mathematician, and overall thinker. He enjoys solving problems, learning about technologies, and discussing new and different ideas.
Meet your managing editor:
This course has been planned and designed for you by me, Tanmayee Patil. I'm here to help you be successful every step of the way, and get maximum value out of your course purchase. If you have any questions along the way, you can reach out to me and our author group via the instructor contact feature on Udemy.
In this video, we will learn the foundations of Elixir. We will cover the following topics:
In this video, we will understand functional programming and its uses. We will explore what defines functional languages and see their common characteristics. We will cover the following topics:
In this video, we will understand basic literal types in Elixir and how we can begin writing Elixir programs. We will cover the following topics:
In this video, we will learn to build more complex data structures using the built-in collection types in Elixir. We will also understand its uses. We will cover the following topics:
In this video, we will understand what pattern matching is and how does it differ from assignment. We will also learn the uses of pattern matching.
In this video, we will see how can we leverage pattern matching to extract data from complex structures. We will cover the following topics:
In this video, we will understand functions in Elixir. We will learn to define and compose them. This video will cover the following topics:
In this video, we will understand how we can leverage pattern matching in function calls and match a call with specific arguments to a concrete function. This video covers the following topics:
In this video, we will understand what anonymous functions are and their part in making code reusable. We will also explore how does this play with functional programming. This video covers the following topics:
In this video, we will learn recursion and understand its designing recursive computations. This video will cover the following topics:
In this video, we will understand how to execute branching paths in Elixir along with using them in control flow. This video will cover the following topics:
In this video, we will see what exceptions are and how can we trigger and handle them. This video will cover the following topics:
In this video, we will learn standard IO and see how can we write strings to the terminal screen along with reading from the keyboard. We will cover the following topics:
In this video, we will learn the manipulation of files using Elixir. We will cover the following topics:
Now that we have most of the basics of processes in Elixir, let's try out some examples and applications.
There will be a progression through these examples. We will start pretty small and grow in complexity.
Work pools are similar in concept to thread pools. There is some static allocation of worker threads that are able to execute general purpose work. Given some task, the thread or worker will run off, compute the work, and return the result.
Many topics surrounding Erlang/Elixir and OTP require us to be careful about our verbiage. We discussed before the difference between Erlang processes and OS processes. Similarly, we need to be careful about applications.
In this video, we will cover the following topics:
In this video, we will see how can we leverage the use of third-party dependencies to enrich our application. Where we can get these dependencies and how do we make them work with our application. We will cover the following topics:
In this video, we will see what are unit tests, how we can test our application automatically to ensure everything is working as expected and isolate the components of our application to test them effectively.
Before we dive into the depths of metaprogramming, we need to discuss some related functionalities of Elixir that provide polymorphic features to the language. These are behaviours and protocols.
ASTs are not just a concept of your programming language course. They are real and very useful in the real world.
Since macros are about injecting code, special care must be taken for the context, of both the caller and the context of the macro.
We've mentioned process trees several times already, and it's time we discuss them in-depth.
Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.
With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.
From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.
Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.