I am a great fan of functional programming from the ground up for expanding one's mind, like in the "Learn You a Haskell for Great Good!" site. But I am not so convinced that it's a productive learning approach for most practicing programmers. In fact, when the first batch of Scala books came out, I was a bit put off by the "we have sinned, and we must repent" approach that exhorted readers to give up their misguided object-oriented ways and embrace the one true way of functional programming instead.
After all, Scala is an object-oriented AND functional language.
So, when I wrote "Scala for the Impatient", I imagined the typical reader to be a programmer who knows and likes Java, and wants to know what Scala has to offer beyond that. I introduce functional concepts in stages, always motivated by practical examples (i.e. shorter, cleaner code), but without dogma.
I do recommend Martin Odersky's Coursera course "Functional Programming Principles in Scala", but I think you'll find it more accessible after having learned Scala fundamentals.