<i>But seriously now: don’t let yourself be scared off by “category type theory” and other fancy-sounding words.  You do not need all of this theoretical background in order to learn and become a fluent Scala developer. I know, because I have not bothered to look at those things until 4 years with the language. And when I did it’s not like I had an epiphany, throwing out all the code I had written until then. In fact, I was monading all over the place, just had no idea how the things I was building and using were called.</i><p>Works for the author, I suppose.  Me, I&#x27;d prefer to have a solid grasp of the abstractions I&#x27;m using -- and an equally solid understanding of how the programming constructs I&#x27;m using correspond to those abstractions -- before using them to crank out production code.