This video lays the foundation for thinking reactively. First we look at how a formula in a spreadsheet updates cells when upstream cells changed. Then we contrast this with imperative programming, which requires additional steps to update non reactive bindings. Then, RxJs subjects are introduced as glorified "event emitters", and it shown how it helps to separate code into producers & consumers. Lastly, the combineLatest & merge creation operators are introduced to create a 3rd [observable] stream that emulates the spreadsheet example, which hopefully turns a light bulb on in your head. It's then explained how Subjects & Observables will be contrasted in future videos.