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

Angular and Golang: A Rapid Guide - Advanced

Angular and Golang: A Rapid Guide - Advanced

Duration 9 hours 40 minutes 39 seconds
Angular 2 Fundamentals

Angular 2 Fundamentals

Duration 5 hours 6 minutes 53 seconds
Angular NgRx: Getting Started

Angular NgRx: Getting Started

Duration 4 hours 5 minutes 32 seconds
Build an app with ASPNET Core and Angular from scratch

Build an app with ASPNET Core and Angular from scratch

Duration 29 hours 51 minutes 36 seconds
Angular 9 Firebase Project Course

Angular 9 Firebase Project Course

Duration 2 hours 46 minutes 56 seconds
Create a Personal Portfolio using Angular 2 & Behance

Create a Personal Portfolio using Angular 2 & Behance

Duration 2 hours 8 minutes 10 seconds
Angular Basics (v15)

Angular Basics (v15)

Duration 8 hours 58 minutes 31 seconds
Desktop apps with Angular, Firestore and Electron

Desktop apps with Angular, Firestore and Electron

Duration 11 hours 28 minutes 39 seconds