Elixir: Scalable and Efficient Application Development
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
23 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Elixir: Scalable and Efficient Application Development to your Wishlist.

Add to Wishlist

Elixir: Scalable and Efficient Application Development

Explore the Elixir programming concepts for building maintainable applications
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
23 students enrolled
Created by Packt Publishing
Last updated 5/2017
English
Current price: $10 Original price: $200 Discount: 95% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 1.5 hours on-demand video
  • 8 Articles
  • 3 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Learn the functional programming style with Elixir
  • Explore the core concepts behind the language
  • Build applications with the robust Elixir toolset
  • Concise step-by-step instructions to teach you difficult technical concepts
View Curriculum
Requirements
  • No prior knowledge of Elixir is required. Basic knowledge of Erlang is required to learn Elixir efficiently.
Description

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?

  • Understand functional programming and get to know the origin of Elixir
  • Create applications using the Mix tool set
  • Communicate with the outside world from within your program
  • Explore Elixir to create resilient, scalable applications
  • Create fault-tolerant applications
  • Design program-distributed applications and systems
  • Learn to do more with less using Elixir's metaprogramming


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:

  • Getting Started with Elixir by Joao Goncalves
  • Learning Elixir by Kenny Ballou


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.



Who is the target audience?
  • This is a go-to course for neophytes who are willing to strengthen their core Elixir programming skills for building efficient web applications from scratch.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
26 Lectures
03:02:52
+
Introduction to Elixir
3 Lectures 11:59

In this video, we will learn the foundations of Elixir. We will cover the following topics:

  • Introduce the Elixir programming language and its history
  • Define the language category and style
  • Present use cases for this language and its importance
Preview 04:09

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:

  • Present functional programming
  • Provide a motivation for its usage
  • Define the characteristics of functional programming
Preview 03:01

Quiz Time!
2 questions
+
Basic Types and Operators
2 Lectures 20:31

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:

  • Introduce numeric types and operators
  • Introduce logical (Boolean) types and comparison expressions
  • Introduce text types – Strings – and some functions to manipulate them
Literals and operators
08:56

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:

  • Present lists and their building blocks
  • Introduce tuples and how do they compare to lists
  • Present key-value types and an example of their usage
Collection types
11:35

Quiz Time!
2 questions
+
Pattern Matching
2 Lectures 09:18

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.

  • Introduce the concept of assignment
  • Define pattern matching as opposed to assignment
  • Present the pin operator
Pattern matching versus assignment
03:19

In this video, we will see how can we leverage pattern matching to extract data from complex structures. We will cover the following topics:

  • Introduce pattern matching in collection types
  • Present the binary data type in Elixir
  • Extract binary data using pattern matching
Forms of pattern matching
05:59

Quiz Time!
2 questions
+
Functions
3 Lectures 16:54

In this video, we will understand functions in Elixir. We will learn to define and compose them. This video will cover the following topics:

  • Recap the concept of a function, now applied to Elixir
  • Define call and chain functions together
  • Define functions in modules and compose them
Functions and modules
08:08

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:

  • Present a use case and a concrete problem
  • Provide a solution for the problem using pattern matching
  • Introduce function guard clauses and complete use case
Pattern matching in functions
04:23

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:

  • Recap high order functions
  • Present a use case and sample solution
  • Analyse the Enum module as a use case
Anonymous functions
04:23

Quiz Time!
2 questions
+
Control Flow
3 Lectures 13:23

In this video, we will learn recursion and understand its designing recursive computations. This video will cover the following topics:

  • Recap the concept of a function, now applied to Elixir
  • Define recursion using functions
  • Learn the types of recursion
Recursion
03:32

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:

  • Recap pattern matching
  • Explain conditionals using an age discount example
  • Learn the different types of conditionals
Conditionals
06:20

In this video, we will see what exceptions are and how can we trigger and handle them. This video will cover the following topics:

  • Start from a single function
  • Use an example to handle any exception
  • Learn how to raise exceptions
Exception handling
03:31

Quiz Time!
2 questions
+
IO
2 Lectures 06:50

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:

  • Define standard IO and IO module devices
  • Use this in an example to read from the keyboard
  • Learn how to write on screen using standard IO
Standard IO
03:13

In this video, we will learn the manipulation of files using Elixir. We will cover the following topics:

  • Define the file module
  • Learn how to create a directory
  • Learn the different actions in a file
Files
03:37

Quiz Time!
2 questions
+
Concurrent Programming – Using Processes to Conquer Concurrency
3 Lectures 35:05
Basics of Elixir process
14:46

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.

Applications
12:20

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.

Work pool
07:58

Quiz Time!
2 questions
+
OTP – A Poor Name For a Rich Framework
1 Lecture 20:48

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.

Applications
20:48

Quiz Time!
2 questions
+
Tooling
3 Lectures 17:53

In this video, we will cover the following topics:

  • Present the Mix toolset and how to create an GIF generation application
  • Show the structure of a common application and its files
  • Compile an application and run it interactively with iex -S mix
Creating an application
03:52

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:

  • Present a use case for dependencies on our application
  • Use the Hex package manager to search and import a dependency
  • Configure dependencies and test the application with them
Importing dependencies
06:06

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.

  • Complete the GIF generator application with all functionality
  • Present unit tests and discuss their viability with the current application structure
  • Change the application structure to allow for isolated unit testing
Running tests
07:55

Quiz Time!
2 questions
+
Metaprogramming – Doing More with Less
4 Lectures 34:14

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.

Behaviours and protocols
08:44

ASTs are not just a concept of your programming language course. They are real and very useful in the real world.

Abstract syntax trees
09:21

Since macros are about injecting code, special care must be taken for the context, of both the caller and the context of the macro.

Context and macro hygiene
10:36

We've mentioned process trees several times already, and it's time we discuss them in-depth.

Supervisors
05:32

Quiz Time!
2 questions
About the Instructor
Packt Publishing
3.9 Average rating
7,219 Reviews
51,681 Students
616 Courses
Tech Knowledge in Motion

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.