I like to generate examples by trying to add random things together, and then adding constraints. Forget, for a moment, words like &quot;group&quot; and &quot;ring&quot;. At the risk of fatally oversimplifying things, I&#x27;ll try to help.<p>What happens if I add water and... oil? Well, first of all, let&#x27;s specify that if I add water to water, I still get water; and if I add oil to oil, I still get oil. Now, I could have water on top of the oil, oil on top of the water, water in the oil, and oil in the water. Let&#x27;s collapse this so that now we have a collection of combinations that are water, oil, water and oil mixed, water on top of oil, and oil on top of water. If we can agree that we can &quot;add&quot; things in this collection together and get other things in the collection, then we have created an abstract algebra. The math is just a formalization that gives us extra power to reason about this collection of things.<p>In a more computer sciencey case, what might be the outcome of &quot;adding&quot; two Twitter users? Does one follow the other? Do they both follow each other? Is there something else that happens? Monad was a buzzword for a while because it made questions like this solvable with some goodies like easy parallelization. What if 200 million accounts suddenly needed to be added together? It sure would be nice to have an idempotent, parallelizable way to do so. Monads were one way of doing that, and abstract algebra gives us mathematical methods to rigorously approach problems like this (and many that aren&#x27;t like this one).<p>It might be worth it to check out algebird