RxJS 7 and Observables: Introduction
What you'll learn
- By completing this course you will understand how Observables work, behave and how to use them.
- You will learn the basics (and much, much more) of RxJS in a slow step-by-step manner.
- You will have a good understanding of the Observables and other key RxJS topics, such as: Subscriptions, Observers, Operators, Subjects
- After you finish this course, you will be able to understand other, more advanced articles, videos and docs available on the Internet.
- You will have a great set of tools to start your RxJS journey.
Requirements
- No RxJS knowledge needed!
- No TypeScript knowledge needed
- JavaScript is required
- Functional programming experience is nice to have - understanding of JavaScript's array operators (.map, .filter, etc.) is helpful
Description
Have you joined a project which uses the Observables and RxJS and have no idea how to use it?
Are you already using RxJS and Observables and its behavior keeps surprising you?
Do you want to learn a new tool to conveniently handle asynchronous code?
If you responded YES to any of the above questions, then this might be a great course for you! RxJS is known to have a steep learning curve. There are many courses, articles, docs on the Internet which are great and cover a lot of complex RxJS scenarios, however I've noticed that it is difficult to start going and make first steps. Also, many experienced RxJS users still make some basic mistakes from time to time as they don't understand the mechanics of the Observables well.
This course will help you enter the world of RxJS in a slow step-by-step way. It might even help more advanced RxJS users fill the missing gaps in their understanding of the Observables and RxJS.
The objective of this course is to give you a great set of tools to start your RxJS journey!
You will learn here the core concepts of RxJS, such as:
Observables
Subscriptions
Observers
Creation Functions
Pipeable Operators
Subjects
The first sections of this course will present the basics of the Observables and RxJS in a slow and detailed way. We'll have a look at the idea of streams and reactive programming to understand how the data comes to us when using the Observables. I'll show you what kind of sources can we find in the world of Observables. You'll learn how can we execute an Observable by making Subscriptions, and how can we react to the notifications emitted by providing Observers. We'll use Marble Diagrams to present things in an easy to understand graphical way. There will also be a plenty of coding sections explaining each feature.
After we get the theory behind the Observables clarified, we'll move towards more practical uses of RxJS.
We'll use Creation Functions to easily create Observable from various sources like: arrays, DOM events, HTTP requests, timers, intervals and combining multiple Observables together. We'll use the Pipeable Operators to create more complex Observables.
Finally, we'll learn about the Subjects, which are a special type of Observable which allow us to conveniently emit a value to all Observers.
After you finish this course, you'll be able to start using the Observables and other RxJS tools in your apps and understand the articles, videos and docs on the Internet, so you can continue your RxJS journey.
Let's get started!
This course uses OpenMoji emojis and icons in some of the videos (CC BY-SA 4.0 license)
Promo music: Royalty Free Music from Bensound
Who this course is for:
- For those, who have just started working on a project which uses RxJS and Observables and have not used RxJS previously.
- For those, who already use Observables and RxJS, but it keeps surpising them and want to understand it better.
- For those, who find other courses and resources too complicated and who look for a slower, more detailed introduction into RxJS and Observables.
- For those, who look for more advanced tools for handling asynchronous code.
Instructor
I am a software developer based in Warsaw, Poland. My main focus is front-end development, however I also have the experience in back-end development. If you have any questions or would like to contact me - I am very eager to make new connections here!
Tutoring
In recent years, I've spent a lot of time tutoring and mentoring other aspiring programmers, mostly in 1-on-1 sessions online and in person. Now, I'd like to share my findings and knowledge with a wider public and be open to discussion to find easier, more efficient and better ways of using new technologies.
Professional experience
As a professional developer I've worked on Fintech apps, major e-commerce systems, highly available booking platforms, I've lead and architected numerous Frontend projects. However, the most important moment was when I wrote my first program when I was 6. It was a Turbo Pascal code which didn't even compile - this was a great start to learning by trial and error. It quickly fascinated me that you can have the control over a machine, which will do EXACTLY what you instruct it to. On the other hand, it'll do the same if you make a mistake - it'll fail, because you hadn't foreseen something. Programming has shown me that human minds are very limited and we're prone to making mistakes and incorrect assumptions. This attitude helped me learn new stuff quickly as I went through multiple platforms (PHP, C, C++, DirectX, OpenGL, Java, JavaScript, Assembler and many others) as I've graduated from Computer Science and IT systems engineering at Warsaw University of Technology. Now the fields of my greatest expertise are RxJS, TypeScript, Angular, NgRx, however I'm open to anything new that will make me develop further and make work more efficient.
Outside of programming I'm interested in music and business. I've launched a few startups along the way. In 2019 I've graduated from the MBA program on Kozminski University, which gave me the idea to share my experience and knowledge.