Skip to main content

Elixir & Phoenix for Beginners

17h 24m 18s
English
Paid

Elixir & Phoenix for Beginners is an exciting course that will guide you through the powerful capabilities of Elixir, a modern, concurrent, functional programming language. In this introduction, we'll explore why Elixir stands out from other popular languages and what makes it an ideal choice for specific tasks.

The Uniqueness of Elixir

Elixir is not like many other popular programming languages. While languages such as Java, Python, Ruby, JavaScript, and C# serve broad purposes, they generally appear more similar than different. Elixir, however, is crafted for specific needs, particularly in concurrency and fault tolerance.

What Sets Elixir Apart?

Elixir enables you to write software that can effectively "run forever." Although this claim may sound exaggerated, Elixir achieves impressive uptime and reliability through its design. It's particularly suited for creating web applications, APIs, and embedded software, focusing on fast, concurrent, fault-tolerant, and distributed systems.

Case Studies: Real-world Applications of Elixir

Bleacher Report's Success Story

Bleacher Report, a sports news site experiencing significant growth, transitioned from Ruby on Rails to Elixir & Phoenix to address scaling challenges. By doing so, they drastically reduced their server count from 150 to 5, showcasing Elixir's efficiency in handling heavy loads.

Discord's Bold Move

Discord, a platform for gamers, opted for Elixir from the start, foreseeing the need for high concurrency. They successfully scaled to serve millions of concurrent users with a minimal infrastructure team, highlighting the language's powerful concurrency capabilities.

Why Consider Elixir?

Even if you're not facing scaling challenges today, Elixir offers several advantages:

  • Concurrency: Facilitates real-time features and handles concurrency more effectively than other languages.
  • Responsiveness: Delivers consistent low-latency responses due to its efficient scheduling and garbage collection.
  • Availability and Fault-tolerance: Supports highly available services and isolates errors, preventing server-wide crashes.

The Developer Experience with Elixir

Elixir provides an exceptional developer experience similar to Ruby on Rails, allowing for the creation of maintainable systems that scale well. Despite being relatively young, Elixir runs on the mature, battle-tested Erlang Virtual Machine, ensuring reliability and stability.

Maturity and Stability

The language is stable with no significant changes expected soon, offering a secure platform for developers. Industry leaders like InfoQ and Gartner Research recognize Elixir's readiness for prime time.

Course Outline

In this course, you'll start with the fundamentals and progress through major features of Elixir, eventually tackling the Phoenix web framework. Here’s a glimpse of the topics covered:

  • Data Types
  • Pattern Matching
  • Flow Control: If/Then, Unless, Cond, Case
  • Functions: Anonymous, Named, Higher Order, and more
  • Collection Processing: Map, Filter, Reduce
  • Protocols, Macros, Build tools, Testing
  • Functional Programming Concepts
  • Processes and OTP: GenServers, Supervisors, and more
  • Phoenix Web Framework

Final Project: Building an Exit Polling Application

The course culminates in a hands-on project where you'll develop an exit polling application. This project simulates a real-world scenario with potential massive spikes in usage on election day, serving as a practical application of Elixir's strengths in managing concurrent user demands.

About the Author: knowthen.com

knowthen.com thumbnail
Welcome to Knowthen.com – Your Ultimate Hub for Rapid Skill Development! Embark on a seamless learning journey designed for developers seeking a swift learning curve. Unleash your potential as you delve into a comprehensive array of cutting-edge software development technologies. Our online courses are crafted to provide an accelerated, hands-on experience, ensuring you stay ahead in the dynamic world of technology. Elevate your skills and knowledge with Knowthen.com – where mastery meets efficiency in your software development journey!

Watch Online 150 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 150 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Introduction
All Course Lessons (150)
#Lesson TitleDurationAccess
1
Introduction Demo
08:38
2
Who is this course for?
02:22
3
Why was Elixir Created?
05:22
4
Thinking about concurrency
09:12
5
Concurrency In Sequential Languages
12:39
6
Installing Elixir
02:13
7
Install Elixir on Mac OS
02:53
8
Install Elixir on Windows
01:10
9
Install Elixir on Ubuntu
01:21
10
What we installed
03:04
11
Integers
05:28
12
Floats
03:29
13
Atoms
08:48
14
Boolean
05:15
15
Strings
07:08
16
Maps
11:27
17
Lists
07:07
18
List Operations
11:45
19
Tuples
10:29
20
Keyword Lists
08:50
21
Structs
12:22
22
Immutable Data
11:43
23
Variables
08:38
24
Pattern Matching Introduction
06:00
25
Pattern Matching Strings
07:34
26
Pattern Matching Maps
06:22
27
Pattern Matching Structs
02:12
28
Pattern Matching Lists
04:42
29
Pattern Matching Tuples
04:28
30
Elixir Source Files
10:04
31
Control Flow Introduction
10:21
32
Control Flow Cond
06:26
33
Control Flow Case
09:47
34
Control Flow Unless
06:15
35
Anonymous Functions
08:25
36
Named Functions
05:12
37
Function Pattern Matching
11:31
38
Function & Module Docs
09:51
39
Private Functions
05:52
40
Anonymous Function Pattern Matching
05:07
41
Anonymous Function Dot Syntax
07:49
42
Higher Order Functions
10:18
43
Higher Order Functions Continued
07:33
44
Odds & Ends
11:55
45
Challenge Review
05:10
46
Guards
03:27
47
Sigils
06:37
48
Pure vs Impure Functions
11:39
49
Pipe Operator
03:41
50
Recursion
09:06
51
Tail Call Optimization
10:00
52
Collection Processing Intro
02:16
53
Map
10:34
54
Filter
07:51
55
Reduce
07:16
56
Composition with |>
11:31
57
Streams
08:06
58
Comprehensions
10:18
59
Protocols
12:11
60
Macros Introduction
10:22
61
Macro Quote and Unquote
05:49
62
Macro Example
10:17
63
"Using" Macro
03:38
64
Mix
09:59
65
What is Functional Programming
06:56
66
First Elixir App Overview
02:25
67
Building Apps - Thought Process / Planning
06:03
68
Mix Project and Data Structures
04:00
69
First App View
05:04
70
First App View Body
08:36
71
Review Challenge & Compose View Functions
05:08
72
Update Functions
04:42
73
Add Candidate Command
05:18
74
Review Challenge
06:11
75
Tie Things Together
08:59
76
Testing
11:41
77
First App Summary
02:21
78
Process Introduction
05:41
79
What's a Process?
11:32
80
Process Life time
17:13
81
Process Links
09:47
82
Long Lived Processes
11:46
83
Improving the Counter
11:07
84
Error Handling
11:35
85
Supervisor Introduction
07:49
86
Basic HTTP Server
11:11
87
Supervisor
05:26
88
The Actor Model
01:57
89
Introduction to OTP
03:03
90
Introduction to GenServers
08:54
91
GenServer Callbacks
03:39
92
A more Idiomatic GenServer
05:00
93
OTP Supervisor
10:18
94
Cache GenServer
09:07
95
Application Behavior
13:55
96
Dynamic Supervisor
06:17
97
Agents & Tasks
02:40
98
Introduction to Phoenix
03:31
99
Installing Phoenix
03:49
100
Phoenix Overview/Mental Model
04:02
101
First Phoenix Project
17:19
102
Hello Phoenix
08:42
103
Databases & Phoenix
08:11
104
Review the Auto Generated Files
07:45
105
Planning
07:16
106
Poller Project Planning
04:19
107
Poller Project Data
03:30
108
Poller Project Functions
07:54
109
Try out the Structs and Functions
04:25
110
Poll GenServer
08:30
111
Try out PollServer GenServer
01:47
112
Create Supervisor for PollServer
04:44
113
Poller Application Behavior
02:53
114
Poller Dal Project Intro
05:17
115
Ecto Introduction
02:08
116
Getting Started with the Poller Dal Project
03:54
117
Adding A Repository
05:31
118
Add A Table
05:25
119
Changesets
06:00
120
Database CRUD API
05:59
121
Question Table and Functions
07:50
122
Choices
01:38
123
Users
05:37
124
Hash User Password
06:59
125
User API
04:33
126
Phoenix Project Intro
06:09
127
Districts Index Page
08:55
128
Create Districts Form
10:29
129
Edit Districts Form
07:08
130
Delete Districts
06:40
131
Question Pages
04:38
132
Create Question Form
03:24
133
Edit & Delete Questions
02:45
134
Choice Pages
02:59
135
Review Choice Pages Solution
03:46
136
Authentication & Access Control Introduction
02:36
137
Login Form
07:45
138
Auth Plugs
08:08
139
Nav Bar Links (Login/Logout)
05:49
140
Rest API
06:01
141
Vote Endpoint
06:06
142
Initialize Poll GenServer
09:09
143
Save Votes to Database
07:36
144
Connect the Reactjs App
08:08
145
Phoenix Channels Intro
03:00
146
Phoenix Channels
06:22
147
Channel Callbacks
08:03
148
PubSub
10:21
149
Integrate PubSub
10:06
150
Final Thoughts
04:31
Unlock unlimited learning

Get instant access to all 149 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription