We may earn an affiliate commission when you visit our partners.
Course image
Jurek Wozniak

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.

Read more

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

Enroll now

What's inside

Learning objectives

  • 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.

Syllabus

Getting Started
Course Introduction
RxJS Overview
Quick Start
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Explores concepts such as Observables, Subscriptions, Observers, and Pipeable Operators, which are core components of RxJS
Utilizes hands-on coding sections to illustrate concepts, making it easier to comprehend
Provides a comprehensive overview of the essentials of RxJS, suitable for learners with little or no prior knowledge
Covers advanced topics, such as Flattening Operators and Subjects, to deepen understanding of RxJS
Taught by industry experts Jurek Wozniak, ensuring learners receive up-to-date knowledge and best practices
Emphasizes the practical applications of RxJS, equipping learners with skills directly applicable to real-world scenarios

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Clear rxjs introduction with visuals

According to learners, this course provides an exceptionally clear and step-by-step introduction to RxJS. Students frequently praise the instructor's ability to simplify complex concepts using fantastic visual aids like Marble Diagrams and crucial hands-on coding examples. It is widely considered a strong foundation for understanding Observables, Subscriptions, and Operators, making challenging topics easy to grasp. While it excellently serves beginners, some experienced learners noted the pace was too slow or desired more advanced real-world project integrations, indicating it's primarily suited for absolute newcomers.
Marble Diagrams and coding sections greatly aid comprehension.
"...using fantastic visual aids like Marble Diagrams. The hands-on examples are crucial for solidifying understanding."
"I especially liked how he used Marble Diagrams to visualize difficult concepts."
"The use of Marble diagrams is genius. I came in knowing almost nothing and now feel confident in using Observables in my projects."
Complex concepts are broken down into easily understandable parts.
"The instructor, Piotr, explains complex concepts like Observables and Subjects with such clarity, using fantastic visual aids..."
"Absolutely brilliant! As someone who struggled with RxJS before, this course breaks it down perfectly."
"The explanations are incredibly clear, and the instructor's teaching style is engaging. ...this course made everything click."
Could benefit from more complex, real-world project integrations.
"My only minor critique is that it could benefit from a few more real-world project examples beyond the basic HTTP calls, perhaps integrating with a small frontend framework example."
"While Marble diagrams are helpful, I was looking for more practical application in a larger context, like state management in Angular or React."
"Some examples felt a bit too isolated; I would have preferred more integrated scenarios for applying the concepts."
Excellent for foundational understanding, but too basic for some advanced learners.
"This course is a masterpiece for beginners in RxJS."
"I found this course a bit too slow-paced for my liking. While it claims to help advanced users, I felt it mostly reiterates very basic concepts."
"It's good for absolute beginners but might not offer much to those who have already dabbled in RxJS."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in RxJS 7 and Observables: Introduction with these activities:
Organize Course Resources
Create a central repository for all course materials, including notes, assignments, and quizzes.
Show steps
  • Create a dedicated folder or notebook for course materials.
  • Organize materials into logical sections or categories.
  • Review materials regularly to reinforce understanding.
Review RxJS Essentials
Reinforce your understanding of RxJS core concepts like Observables, Subscriptions, Observers, and Operators before diving into the course.
Browse courses on Observables
Show steps
  • Revisit the course syllabus and identify key concepts covered in the first few modules.
  • Review documentation or tutorials on RxJS Observables, Subscriptions, and Operators.
  • Complete practice exercises or code along with introductory RxJS examples.
Review Marble Diagrams
Review the concept of Marble Diagrams to develop a strong foundation for understanding Observables.
Show steps
  • Review the purpose and benefits of Marble Diagrams.
  • Practice creating Marble Diagrams for different types of Observable notifications.
  • Analyze and interpret Marble Diagrams to understand the behavior of Observables.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Explore RxJS Marble Diagrams
Develop a deeper understanding of Observable behavior by studying Marble Diagrams, a graphical representation of RxJS sequences.
Browse courses on Marble Diagrams
Show steps
  • Find online tutorials or resources that explain Marble Diagrams in RxJS.
  • Practice creating Marble Diagrams to represent different Observable scenarios.
  • Analyze Marble Diagrams to understand how Operators transform Observables.
Flattening Operators Exercises
Reinforce your understanding of flattening operators by solving practice exercises.
Browse courses on Data Transformation
Show steps
  • Identify different scenarios where flattening operators can be applied.
  • Practice using concatMap, switchMap, and mergeMap operators.
  • Debug code that involves flattening operators.
  • Compare and contrast the behavior of different flattening operators.
Develop an RxJS Code Example
Solidify your understanding by creating a practical code example that demonstrates RxJS principles.
Show steps
  • Choose a specific RxJS concept or scenario to focus on.
  • Design and implement a code example that showcases the concept.
  • Document your code with clear comments and explanations.
Explore Advanced RxJS Topics
Extend your knowledge of RxJS by exploring advanced topics through tutorials.
Browse courses on RxJS
Show steps
  • Identify areas where your RxJS understanding can be improved.
  • Search for and select high-quality tutorials on advanced RxJS topics.
  • Follow the tutorials thoroughly and implement the concepts in your own projects.

Career center

Learners who complete RxJS 7 and Observables: Introduction will develop knowledge and skills that may be useful to these careers:
Software Architect
Software Architects are responsible for designing and overseeing the construction of software systems. Observables and reactive programming are used in designing scalable and resilient architectures that can handle complex event-driven scenarios. This course provides insights into how to use RxJS to build software systems that can respond to changes and handle concurrency effectively. It covers advanced concepts such as error handling, concurrency, and performance optimization, which are essential for designing robust and reliable software systems.
Back-End Developer
Back End Developers are responsible for the development and maintenance of the server-side logic and data management of web applications. Observables and reactive programming are used in handling asynchronous events, processing data streams, and communicating with databases. This course provides a foundation for understanding these concepts, helping developers build scalable and efficient back-end systems. It covers the basics of RxJS, including creating and using observables, as well as how to use operators to transform and combine data.
Full-Stack Developer
Full Stack Developers are in charge of developing and maintaining both the front-end and back-end of web applications. Observables and reactive programming are used in handling user interactions, managing state, and communicating with APIs. This course provides a solid understanding of these concepts, helping developers build responsive and interactive applications. It covers the fundamentals of RxJS, including observables, subscriptions, and operators, and teaches how to use them to handle asynchronous events and data streams.
Front-End Developer
Front End Developers are responsible for the design and implementation of the user interface of websites and web applications. Observables and reactive programming are used in handling user interactions, managing state, and communicating with back-end services. This course provides a practical understanding of how to use RxJS to build responsive and engaging user interfaces. It teaches how to create and use observables, apply operators, and handle asynchronous events.
Data Scientist
Data Scientists are responsible for collecting, cleaning, and analyzing data in order to find patterns and trends. Observables and reactive programming are used in data collection, data streaming, and event processing. This course helps build a foundation for understanding the concepts and tools needed to succeed in this role. It teaches how to create and use Observables, define and apply operators, and consume data from multiple sources. This course is recommended for those who wish to pursue a career as a Data Scientist or for those who want to enhance their skills in data analytics.
Product Manager
Product Managers are responsible for managing the development and launch of new products. Observables and reactive programming are used in understanding user behavior, tracking product usage, and gathering feedback. This course provides a foundation for understanding how to use RxJS to collect and analyze data, and to make data-driven decisions. It covers the basics of RxJS, including creating and using observables, as well as how to use operators to transform and combine data.
DevOps Engineer
DevOps Engineers are responsible for bridging the gap between development and operations teams. Observables and reactive programming are used in automating build, deployment, and monitoring processes. This course may be useful for DevOps Engineers who want to enhance their skills in event-driven automation and continuous delivery. It provides a foundation for understanding the concepts of observables and operators, and teaches how to apply them to practical DevOps tasks.
Cloud Architect
Cloud Architects are responsible for designing and managing cloud computing environments. Observables and reactive programming are used in monitoring cloud usage, optimizing performance, and handling cloud events. This course may be useful for Cloud Architects who want to enhance their skills in event-driven cloud management and real-time performance monitoring. It provides a foundation for understanding the concepts of observables and operators, and teaches how to apply them to practical cloud architecture tasks.
Quantitative Analyst
Quantitative Analysts are responsible for using mathematical and statistical models to analyze financial data. Observables and reactive programming are used in real-time data analysis, risk assessment, and portfolio optimization. This course may be useful for Quantitative Analysts who want to enhance their skills in event-driven data analysis and real-time risk management. It provides a foundation for understanding the concepts of observables and operators, and teaches how to apply them to practical quantitative analysis tasks.
Software Tester
Software Testers are responsible for testing software to identify and fix bugs. Observables and reactive programming are used in automated testing, performance testing, and exploratory testing. This course may be useful for Software Testers who want to enhance their skills in event-driven test automation and real-time performance testing. It provides a foundation for understanding the concepts of observables and operators, and teaches how to apply them to practical software testing tasks.
System Administrator
System Administrators are responsible for managing and maintaining computer systems. Observables and reactive programming are used in monitoring system performance, detecting anomalies, and handling system events. This course may be useful for System Administrators who want to enhance their skills in real-time system monitoring and event-driven system management. It provides a foundation for understanding the concepts of observables and operators, and teaches how to apply them to practical system administration tasks.
Data Analyst
Data Analysts are responsible for collecting, cleaning, and analyzing data in order to find patterns and trends. Observables and reactive programming are used in data collection, data streaming, and event processing. This course may be useful for Data Analysts who want to enhance their skills in data streaming and real-time data analysis. It provides a foundation for understanding the concepts of observables and operators, and teaches how to apply them to practical data analysis scenarios.
Database Administrator
Database Administrators are responsible for managing and maintaining databases. Observables and reactive programming are used in monitoring database performance, detecting anomalies, and handling data changes. This course may be useful for Database Administrators who want to enhance their skills in real-time database monitoring and event-driven data management. It provides a foundation for understanding the concepts of observables and operators, and teaches how to apply them to practical database administration tasks.
UX Designer
UX Designers are responsible for designing user interfaces that are both functional and aesthetically pleasing. Observables and reactive programming are used in gathering user feedback, tracking user interactions, and testing user interfaces. This course may be useful for UX Designers who want to enhance their skills in real-time user feedback collection and event-driven user interface testing. It provides a foundation for understanding the concepts of observables and operators, and teaches how to apply them to practical UX design tasks.
Technical Writer
Technical Writers are responsible for creating and maintaining technical documentation. Observables and reactive programming are used in generating documentation from code, updating documentation in response to code changes, and handling documentation feedback. This course may be useful for Technical Writers who want to enhance their skills in automated documentation generation and event-driven documentation updates. It provides a foundation for understanding the concepts of observables and operators, and teaches how to apply them to practical technical writing tasks.

Reading list

We've selected eight books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in RxJS 7 and Observables: Introduction.
Provides a comprehensive introduction to JavaScript. It covers the essential concepts, syntax, and patterns, and includes numerous examples and exercises.
Provides a comprehensive introduction to JavaScript. It covers the essential concepts, syntax, and patterns, and includes numerous examples and exercises.
Series provides a comprehensive introduction to JavaScript. It covers the essential concepts, syntax, and patterns, and includes numerous examples and exercises.
Provides a gentle introduction to functional programming concepts, including a chapter on reactive programming and RxJS.
Provides a collection of reusable JavaScript patterns, including a chapter on reactive programming and RxJS.
Provides a comprehensive overview of JavaScript, including a chapter on reactive programming and RxJS.
Provides a comprehensive introduction to Node.js. It covers the essential concepts, patterns, and techniques, and includes numerous examples and exercises.
Provides a concise introduction to the good parts of JavaScript. It covers the essential concepts, syntax, and patterns, and includes numerous examples and exercises.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser