Complete Angular Developer in 2025 Zero to Mastery

52h 28m 39s
English
Paid
September 28, 2024

Learn Angular from a senior industry professional. This is the only Angular course you need to learn Angular, build enterprise-level applications from scratch & get hired as an Angular Developer in 2022. Go from Zero To Angular Mastery.

More
  • Build enterprise-level applications using Angular 13 and TypeScript and deploy them to production
  • Use WebAssembly and Rust in your applications to improve performance and combine with the power of Angular
  • Use RxJS and Streams in your applications
  • Set up authentication and user accounts
  • Learn to build reactive, performant, large-scale applications like a Senior Developer
  • Master Production and Deployment of a professional Angular app
  • Master the latest ecosystem of a Angular Developer from scratch
  • Learn to lead Angular projects by making good architecture decisions and helping others on your team
  • Learn the latest features in Angular: Routing, Directives, Pipes, Services, Ahead of time Compilation + much more
  • Master Angular Design Patterns
  • Use Firebase to build full-stack applications
  • Learn to deal with Memory Leaks in your projects to improve performance
  • Learn to use TailwindCSS in an Angular application
  • Become a top 10% Angular Developer

Watch Online Complete Angular Developer in 2025 Zero to Mastery

Join premium to watch
Go to premium
# Title Duration
1 Complete Angular Developer: Zero to Mastery 02:23
2 What Are We Building? 04:18
3 Understanding Frameworks 04:42
4 The Angular CLI 04:18
5 Upgrading Angular 02:16
6 Creating a New Application 03:34
7 Starting the Server 05:08
8 Reviewing the Configuration Files 08:11
9 Main Entry File 01:28
10 AOT Compilation 05:05
11 Bootstrapping Angular 05:28
12 Understanding Components 02:04
13 Creating Components 05:48
14 External Templates and Styles 06:10
15 Everything Else 01:55
16 Introduction to TypeScript 05:13
17 Installing TypeScript 03:48
18 Type Annotations 04:53
19 Variables 04:42
20 Union Types 03:18
21 Arrays 03:03
22 Objects 03:32
23 Interfaces 03:48
24 Classes 03:35
25 Generics 07:47
26 Why Decorators 04:44
27 TypeScript Configuration 02:51
28 Writing Decorators 08:10
29 Signals 10:12
30 Property Binding 04:14
31 Event Binding 07:04
32 Type Assertions 05:39
33 Creating a Component 04:46
34 Custom Properties 08:05
35 Required Inputs 02:31
36 Emitting Events 08:47
37 Content Projection 03:21
38 Discovering Lifecycle Hooks 07:08
39 Exploring More Lifecycle Hooks 10:44
40 Scoped CSS 04:26
41 Understanding Pipes 02:12
42 Pipe Basics 05:00
43 Angular Dev Tools 02:29
44 Pipe Parameters 07:03
45 Dealing with Numbers 08:07
46 Debugging with Pipes 02:28
47 Understanding Directives 01:32
48 The ngClass Directive 06:45
49 The ngStyle Directive 04:14
50 If Block 02:18
51 For Block 06:07
52 Introduction to the Master Project! 04:36
53 What is Tailwind? 05:38
54 Installing Tailwind 07:31
55 Configuring Tailwind 02:34
56 Practicing with Tailwind 06:32
57 Loading Static Assets 06:17
58 What’s Next? 03:35
59 Navigation and Modal Components 06:37
60 Designing a Modal 02:26
61 Creating a Shared Component 02:32
62 Creating a Reusable Modal 02:55
63 Multi-slot Content Projection 03:16
64 Understanding Services 03:38
65 Creating a Service 01:27
66 Understanding Dependency Injection 09:04
67 Injecting Services 03:22
68 Signal Queries 07:54
69 Opening the Modal 06:41
70 Closing the Modal 03:54
71 Memory Leaks 06:33
72 Fixing the memory leak 04:57
73 Creating a Tabs Component 06:04
74 The contentChildren Query Signal 04:51
75 Looping through the Tabs 03:41
76 Setting an Active Tab 05:41
77 Toggling Tabs 05:18
78 Preventing the Default Behavior 02:03
79 Preparing the Forms 06:01
80 Registering a New Form 04:56
81 Adding Form Controls 03:20
82 Binding a Form 03:10
83 Form Validation 07:24
84 Understanding Errors 04:37
85 Handling Errors 05:22
86 Form Controller Status 05:44
87 Designing an Input Component 03:47
88 Binding Form Controls 02:21
89 Updating the Template 04:58
90 Validating Emails 07:12
91 Validating Numbers 06:02
92 Validating Passwords with Patterns 06:19
93 Input Masking 05:50
94 Applying Input Masking 06:00
95 Disabling Buttons 02:51
96 Handling Form Submission 02:52
97 Designing an Alert Component 11:30
98 Importing the FormsModule 02:10
99 Registering a new Form 03:40
100 Two-way Binding 06:45
101 Template Variables 05:51
102 Attribute Validation 03:28
103 Handling Error Messages 03:46
104 Preparing the Password Field 04:16
105 Handling Form Submission 03:57
106 Introduction to RxJS 05:56
107 Observables 05:48
108 Observers 04:23
109 Pushing Asynchronous Values 03:41
110 Unsubscribing from Observables 03:36
111 Declarative Programming with Operators 05:49
112 Timing Operators 05:28
113 DOM Event Operators 02:17
114 The of and from Operators 05:58
115 Understanding Pipeable Operators 04:08
116 The Map Operator 04:10
117 Marble Diagram 02:46
118 Filter Operator 07:28
119 Reduce Operator 04:07
120 Take Operator 04:19
121 Tap Operator 03:29
122 Understanding Flattening Operators 07:40
123 mergeMap Operator 06:17
124 switchMap Operator 05:06
125 concatMap Operator 02:30
126 exhaustMap Operator 02:35
127 Flattening Operators Recap 02:23
128 Setting Up Firebase 07:12
129 Reviewing the Rules 06:19
130 Installing AngularFire 04:00
131 Importing AngularFire 06:45
132 User Registration 08:05
133 Handling the Response 08:44
134 Buckets, Collections and Documents 03:21
135 Firestore Provider 01:51
136 Storing User Data 06:18
137 Refactoring to a Service 06:35
138 Interfaces vs. Classes 06:21
139 Connecting the User with their Data 10:27
140 Database Rules 02:42
141 Understanding Authentication 04:17
142 Authentication after Registration 03:23
143 The User Observable 03:46
144 The Async Pipe 05:00
145 Setting Up the Login 10:42
146 Destroying the Modal 04:23
147 The Delay Operator 03:55
148 Signing Out 04:38
149 Sidebar JSON Web Tokens 09:33
150 Validating Passwords 06:34
151 Creating a Validator Class 03:35
152 Factory Functions 06:12
153 Handling Errors 06:04
154 Creating an Asynchronous Validator 05:06
155 Validating Unique Emails 05:22
156 Finalizing the Validator 07:59
157 Understanding Routing 05:30
158 Configuring the Router 03:07
159 Registering Routes 07:16
160 Exercise Registering a Route 03:41
161 Adding Navigation Links 03:46
162 Active Links 07:08
163 Creating the Manage Route 02:47
164 Forcing Redirection 04:44
165 A Quick Refactor 04:11
166 Adding Route Data 05:50
167 Filtering Router Events 04:38
168 Retrieving Data Outside of the Outlet 06:51
169 Exercise Registering a Route with Data 05:00
170 Route Parameters 07:16
171 Subscribing to Route Parameters 04:57
172 Query Parameters 10:12
173 Learning More About Query Parameters 08:36
174 Selecting an Option 01:49
175 Wildcard Routes 03:32
176 Updating Routes 03:50
177 Route Guards 05:48
178 Understanding File Uploads 03:28
179 Blocking Events with Directives 08:36
180 Handling Drag and Drop Events 07:52
181 Handling Files 08:13
182 Multi-Step Form 03:59
183 The Upload Form 09:28
184 Uploading Files with Firebase 09:19
185 Firebase Rules and Validation 07:38
186 Adding an Alert Component 05:31
187 Upload Progress Observable 03:55
188 Handling Errors and Successful Uploads 07:33
189 Storing the File Data 06:06
190 Adding the File Data to the Database 07:20
191 Firebase References and Snapshots 02:25
192 Disabling Forms 02:49
193 Canceling Uploads 05:39
194 Redirection after Upload 05:31
195 Storing a Timestamp 04:27
196 Querying the Database 07:32
197 Storing the List of Clips 06:40
198 Displaying the List of Clips 02:34
199 Preparing the Form 06:39
200 Passing on the Clip Data 03:29
201 Binding the Edit Form 05:53
202 Updating Clips 11:31
203 Updating the List of Clips 08:53
204 Deleting a Clip from the Storage and Database 11:33
205 Sorting Clips with Computed Signals 05:08
206 What is WebAssembly? 08:54
207 Getting Started with Rust 06:21
208 Exploring the Starter Project 06:47
209 Variables 05:17
210 Data Types 06:48
211 Debugging with Macros 06:55
212 Control Flow 04:41
213 Match Expressions 07:51
214 Arrays 02:51
215 Vectors 05:21
216 Structures 04:09
217 Ownership 06:49
218 Results 08:21
219 Preparing the Project 03:40
220 Installing Webpack 03:41
221 Configuring Webpack 10:21
222 Reading Files 08:11
223 Compiling Rust with Webpack 04:47
224 Importing Web Assembly 05:48
225 Logging Files 09:22
226 Base64 Decoding 03:49
227 Loading an Image from Memory 03:00
228 Grayscaling an Image 02:54
229 Buffering an Image 05:19
230 Encoding an Image 05:11
231 App Deployment 04:07
232 Understanding FFmpeg 02:48
233 Installing FFmpeg 05:07
234 Custom Asset Paths 05:19
235 Adding support for SharedArrayBuffer 06:48
236 Loading FFmpeg with a Service 04:08
237 Initializing FFMPeg 06:06
238 Saving Files in Memory 06:29
239 Generating a Screenshot 11:05
240 Generating Multiple Screenshots 05:14
241 Creating Screenshot URLs 05:49
242 Rendering Screenshots 03:10
243 Adding Feedback 03:32
244 Selecting a Screenshot 04:20
245 Updating the Firebase Storage Rules 02:04
246 Uploading a Blob 07:11
247 Recalculating the Upload Progress 05:04
248 The forkJoin Operator 05:16
249 Deleting Screenshots 04:28
250 Introduction 01:45
251 Creating a List Component 02:01
252 Handling Scroll Events 08:27
253 Querying for Clips 12:44
254 Rendering Clips on the Home page 05:21
255 Understanding Cross Origin Issues 03:45
256 Fixing Cross Origin Issues 08:11
257 Fixing the Timestamp 05:09
258 Rendering Clips on the Clip Page 03:47
259 Installing Videojs 01:38
260 Selecting the Video Player 03:22
261 Initializing the Video Player 01:43
262 Clip Styles 02:11
263 Resolving Data with a Guard 08:35
264 Dynamically Rendering the Video 06:42
265 Fixing the Manage Page 01:04
266 Copying Links to the Clipboard 05:27
267 Production Budgets 03:29
268 Modifying Firebase Rules 03:46
269 Deploying an App with Vercel 10:47
270 Introduction to Testing 11:27
271 Understanding Karma and Jasmine 03:12
272 Preparing Our App for Testing 03:12
273 Writing a Sanity Test 06:05
274 Angular’s Test Bed Utility 05:34
275 Testing a Component’s Instance 06:29
276 Querying the Component’s Template 06:41
277 Inverting Matchers 03:17
278 Testing Nested Components 05:11
279 Testing Content Projection 06:34
280 Custom Matcher Error Messages 02:33
281 Mocking Services 06:31
282 Overriding a Dependency 02:23
283 Providing the Router in Tests 01:55
284 Exercise Testing the Logout Link 03:00
285 Simulating DOM Events 04:03
286 Installing Cypress 06:46
287 Exploring Cypress 06:05
288 Writing an E2E Sanity Test 06:09
289 Testing the Video Player 08:54
290 Thank You! 01:18
291 Understanding Frameworks 04:41
292 The Angular CLI 04:09
293 Latest Version Of Angular 02:22
294 Creating a New Application 03:36
295 Starting the Server 05:09
296 Reviewing the Configuration Files 07:44
297 Main Entry File 01:26
298 AOT Compilation 05:02
299 Loading a Platform 03:00
300 Bootstrapping Angular 02:48
301 Enabling Production Mode 04:29
302 Understanding Modules 04:01
303 Creating Modules 06:06
304 Understanding Components 01:59
305 Creating Components 06:01
306 External Templates and Styles 06:00
307 Everything Else 03:45
308 Introduction to TypeScript 05:09
309 Installing TypeScript 03:46
310 Type Annotations 04:51
311 Variables 04:40
312 Union Types 03:15
313 Arrays 03:01
314 Objects 03:31
315 Interfaces 03:46
316 Classes 03:32
317 Generics 07:42
318 Why Decorators? 04:39
319 TypeScript Configuration 01:57
320 Writing Decorators 07:04
321 Interpolation 07:46
322 Property Binding 03:50
323 Event Binding 06:18
324 Type Assertions 05:38
325 Creating a Component 05:32
326 Custom Properties 06:44
327 Input Aliases 02:45
328 Emitting Events 09:11
329 Content Projection 03:18
330 Discovering Lifecycle Hooks 06:08
331 Exploring More Lifecycle Hooks 10:33
332 Scoped CSS 04:24
333 Understanding Pipes 02:07
334 Pipe Basics 05:43
335 Angular Dev Tools 02:40
336 Pipe Parameters 06:16
337 Dealing with Numbers 07:14
338 Debugging with Pipes 01:51
339 Understanding Directives 02:00
340 The ngClass Directive 05:10
341 The ngStyle Directive 04:12
342 Understanding ng-template 02:12
343 The ngIf Directive 03:51
344 The ngFor directive 05:44
345 Introduction to Master Project 06:03
346 What is Tailwind? 05:37
347 Installing Tailwind 07:16
348 Configuring Tailwind 02:31
349 Practicing with Tailwind 05:26
350 Loading Static Assets 06:17
351 What’s Next? 03:31
352 Creating a User Module 04:36
353 Navigation and Modal Components 05:34
354 Exporting Components 03:25
355 Designing a Modal 02:24
356 Creating a Shared Module 04:10
357 Creating a Reusable Modal 02:49
358 Multi-slot Content Projection 03:13
359 Understanding Services 03:32
360 Creating a Service 01:42
361 Understanding Dependency Injection 05:35
362 Injecting Services 05:12
363 Opening the Modal 05:52
364 Closing the Modal 03:10
365 Understanding Singletons 03:47
366 Creating an ID System 05:46
367 Refactoring the Service 05:06
368 Updating the Components 04:47
369 Memory Leaks 06:03
370 Fixing the Memory Leak 04:47
371 CSS Issues 05:50
372 Creating a Tabs Component 06:05
373 The ContentChildren Decorator 05:41
374 The QueryList Object 03:23
375 Looping through the Tabs 03:21
376 Setting an Active Tab 07:08
377 Toggling Tabs 04:18
378 Preventing the Default Behavior 02:00
379 Preparing the Forms 05:44
380 Registering a new Form 04:16
381 Adding Form Controls 03:16
382 Binding a Form 03:06
383 Form Validation 07:12
384 Understanding Errors 04:17
385 Handling Errors 05:17
386 Form Controller Status 05:50
387 Designing an Input Component 03:51
388 Binding Form Controls 08:24
389 Updating the Template 06:28
390 Validating Emails 06:50
391 Validating Numbers 05:58
392 Validating Passwords with Patterns 06:01
393 Input Masking 05:55
394 Applying Input Masking 06:06
395 Disabling Buttons 05:12
396 Handling Form Submission 02:50
397 Designing an Alert Component 10:14
398 Importing the FormsModule 02:23
399 Registering a new Form 04:05
400 Two-way Binding 06:39
401 Template Variables 05:47
402 Attribute Validation 03:25
403 Handling Error Messages 03:41
404 Preparing the Password Field 04:14
405 Handling Form Submission 04:50
406 Exercise: Imposter Syndrome 02:56
407 Introduction to RxJS 06:03
408 Observables 05:22
409 Observers 04:21
410 Pushing Asynchronous Values 03:40
411 Unsubscribing from Observables 03:34
412 Declarative Programming with Operators 05:48
413 Timing Operators 05:26
414 DOM Event Operators 02:16
415 The of and from operators 05:54
416 Understanding Pipeable Operators 04:03
417 The Map Operator 04:05
418 Marble Diagram 02:44
419 Filter Operator 07:27
420 Reduce Operator 04:04
421 Take Operator 04:17
422 Tap Operator 03:27
423 Understanding Flattening Operators 07:02
424 mergeMap Operator 06:15
425 switchMap Operator 04:42
426 concatMap Operator 02:29
427 exhaustMap Operator 02:32
428 Flattening Operators Recap 02:22
429 Setting up Firebase 07:09
430 Reviewing the Rules 06:15
431 Installing AngularFire 03:58
432 Importing AngularFire 06:59
433 User Registration 07:55
434 Handling the Response 07:55
435 Buckets, Collections, and Documents 03:18
436 Storing User Data 06:33
437 Refactoring to a Service 06:19
438 Interfaces vs. Classes 07:51
439 Collection Types 06:21
440 Connecting the User with their Data 10:09
441 Database Rules 02:40
442 Understanding Authentication 04:14
443 Authentication after Registration 03:20
444 The User Observable 05:53
445 The Async Pipe 07:38
446 Initializing Firebase First 09:33
447 Setting up the Login 09:26
448 Destroying the Modal 06:08
449 The Delay Operator 04:06
450 Signing Out 04:27
451 Sidebar: JSON Web Tokens 09:32
452 Creating a Validator Class 03:57
453 Static Methods 03:19
454 Validating Passwords 06:13
455 Factory Functions 06:16
456 Handling Errors 06:04
457 Creating an Asynchronous Validator 05:27
458 Validating Unique Emails 05:25
459 Finalizing the Validator 07:28
460 Understanding Routing 05:29
461 Configuring the Router 05:50
462 Registering Routes 07:01
463 Exercise: Registering a Route 03:40
464 Adding Navigation Links 03:13
465 Active Links 06:46
466 Generating a Routing Module 05:57
467 Forcing Redirection 04:41
468 A Quick Refactor 03:29
469 Adding Route Data 05:25
470 Filtering Router Events 04:35
471 Retrieving Data Outside of the Outlet 07:43
472 Exercise: Registering a Route with Data 04:37
473 Route Parameters 06:53
474 Subscribing to Route Parameters 04:36
475 Query Parameters 09:25
476 Learning More About Query Parameters 08:43
477 Selecting an Option 01:48
478 Wildcard Routes 05:07
479 Updating Routes 03:50
480 Route Guards 05:52
481 Understanding File Uploads 03:25
482 Blocking Events with Directives 09:02
483 Handling Drag and Drop Events 07:10
484 Handling Files 07:54
485 Multi Step Form 04:30
486 The Upload Form 09:13
487 Uploading Files with Firebase 06:55
488 Firebase Rules and Validation 07:24
489 Adding an Alert Component 05:16
490 Upload Progress Observable 03:47
491 Handling Errors and Successful Uploads 10:23
492 Storing the File Data 08:29
493 Adding the File Data to the Database 08:13
494 Firebase References and Snapshots 02:23
495 Disabling Forms 02:48
496 Fallback Upload 06:18
497 Canceling Uploads 05:47
498 Redirection after Upload 06:25
499 Storing a Timestamp 04:39
500 Querying the Database 08:54
501 Storing the List of Clips 07:21
502 Displaying the List of Clips 02:13
503 Preparing the Form 07:06
504 Passing on the Clip Data 03:28
505 Binding the Edit Form 06:33
506 Updating Clips 09:18
507 Updating the List of Clips 07:00
508 Deleting a Clip from the Storage/Database 10:02
509 Sorting Clips with Behavior Subjects 11:06
510 Composite Indexes 04:32
511 What is WebAssembly? 08:52
512 Getting Started with Rust 06:18
513 Exploring the Starter Project 06:47
514 Variables 05:15
515 Data Types 06:47
516 Debugging with Macros 06:52
517 Control Flow 04:39
518 Match Expressions 07:49
519 Arrays 02:50
520 Vectors 05:19
521 Structures 04:07
522 Ownership 06:49
523 Results 08:20
524 Preparing the Project 03:41
525 Installing Webpack 03:40
526 Configuring Webpack 10:06
527 Reading Files 08:10
528 Compiling Rust with Webpack 04:48
529 Importing Web Assembly 05:43
530 Logging Files 09:15
531 Base64 Decoding 03:07
532 Loading an Image from Memory 03:22
533 Grayscaling an Image 02:58
534 Buffering an Image 04:20
535 Encoding an Image 05:40
536 App Deployment 04:06
537 Understanding FFmpeg 02:45
538 Installing FFmpeg 05:01
539 Custom Asset Paths 05:26
540 Adding support for SharedArrayBuffer 06:46
541 Loading FFmpeg with a Service 04:12
542 Initializing FFMPeg 06:47
543 Saving Files in Memory 05:46
544 Generating a Screenshot 11:01
545 Generating Multiple Screenshots 05:10
546 Creating Screenshot URLs 05:47
547 Bypassing Sanitization with Pipes 08:25
548 Adding Feedback 03:39
549 Selecting a Screenshot 04:16
550 Updating the Firebase Storage Rules 02:03
551 Uploading a Blob 06:32
552 Recalculating the Upload Progress 04:48
553 The forkJoin Operator 07:23
554 Deleting Screenshots 03:46
555 Section Overview 01:44
556 Creating a List Component 01:48
557 Handling Scroll Events 07:41
558 Querying for Clips 10:39
559 Rendering Clips on the Home page 04:51
560 Understanding Cross Origin Issues 03:44
561 Fixing Cross Origin Issues 08:10
562 Fixing the Timestamp 08:16
563 Rendering Clips on the Clip Page 03:31
564 Installing Videojs 01:38
565 Selecting elements with the ViewChild Decorator 05:59
566 Initializing the Video Player 02:03
567 Styles without View Encapsulation 05:17
568 Tailwind’s Aspect Ratio Classes 01:27
569 Resolving Data with a Guard 08:10
570 Dynamically Rendering the Video 07:03
571 Fixing the Manage Page 01:04
572 Copying Links to the Clipboard 06:05
573 Lazy Loading Modules 06:32
574 Production Budgets 03:27
575 Modifying Firebase Rules 03:43
576 Deploying an App with Vercel 10:45
577 Introduction to Testing 11:21
578 Understanding Karma and Jasmine 08:14
579 Preparing our App for Testing 02:57
580 Writing a Sanity Test 06:02
581 Angular’s Test Bed Utility 05:56
582 Testing a Component’s Instance 06:28
583 Querying the Component’s Template 06:40
584 Inverting Matchers 03:11
585 Testing Nested Components 04:42
586 Testing Content Projection 06:25
587 Custom Matcher Error Messages 02:31
588 Mocking Services 06:33
589 Overriding a Dependency 02:45
590 Importing the Router Testing Module 02:00
591 Exercise: Testing the Logout Link 03:06
592 Simulating DOM Events 03:59
593 Installing Cypress 06:10
594 Exploring Cypress 06:05
595 Writing an E2E Sanity Test 06:05
596 Testing the Video Player 08:53

Read Book Complete Angular Developer in 2025 Zero to Mastery

# Title
1 Angular Course Resources

Similar courses to Complete Angular Developer in 2025 Zero to Mastery

React, Angular, Node In-Depth Guide: Beginner to Pro

React, Angular, Node In-Depth Guide: Beginner to Pro

Duration 80 hours 1 minute 57 seconds
Angular and Golang: A Rapid Guide - Advanced

Angular and Golang: A Rapid Guide - Advanced

Duration 9 hours 40 minutes 39 seconds
NgRx (with NgRx Data) - The Complete Guide (FREE E-Book)

NgRx (with NgRx Data) - The Complete Guide (FREE E-Book)

Duration 6 hours 11 minutes 19 seconds
Learn to build an e-commerce app with .Net Core and Angular

Learn to build an e-commerce app with .Net Core and Angular

Duration 36 hours 40 minutes 51 seconds
100 Angular Challenge

100 Angular Challenge

Duration 12 hours 23 minutes 17 seconds
Accelerating Through Angular 2

Accelerating Through Angular 2

Duration 1 hour 4 minutes 35 seconds