What are some best resources to learn scala language effectively

I am an experiment in action. Since I am trying to teach myself Scala while working full time as a java developer. At this point I view Scala as a very, very , very difficult language to learn. I mean to become competent in the Scala eco system appears to be a daunting task. ON the other hand, if you can learn it on the job in an environment that is using , perhaps that might make it easier to do.
So far my approach ( on and off ) has been to study Odersky’s book , Programming in Scala. But that book can only take you so far before you become confused. There is a rather badly written book on Akka Actors whose first few chapters will help a little also before you become confused again and then forced to revisit Orderky’s book, Programming in Scala , again.
During those episodes , I also made use of examples in the internet. Eventually I went thru a series of exercises in converting old java algorithms to scala to become slightly more familiar with some of the simple aspects of Scala. THese aspects include what Java developers would be somewhat comfortable with such as : Classes, Traits, for loops, case expressions .
Eventually, I took a bold step at trying to understand the book: Functional Programming In Scala. I think I made it to the 6th or 7th chapter before it became OVERWHELMING.
I am currently back at the AKKA stage, trying to get thru the book “Akka In Action”. Up to chapter 8 at this point. From my perspective, I think learning Scala by yourself boils down to perseverance. I am slowly becoming very familiar with the language. But it has been a very difficult journey so far. I view myself as a beginner Scala Developer at this point. ONe thing I can say is that the Book “Functional Programming In Scala” is a very important book. But it is not a book that you can easily grasp initially. It requires several readings. Meaning , the first time you read part of it and learn a little bit. THen you study other references on scala and you will see why that book is very important. I have yet to attempt to read the book the second time but I do look forward to doing that because I can probably appreciated what it is trying to teach much better now. Another thing that seems to help in learning the language is to try to learn some of the frameworks associated with Scala. Akka Streaming , Akka http, Routes … are very interesting to understand; maybe attempt to write your own microservice. In java, I was and am an expert in concurrency/multithreading. So in Scala I have a unique interest in the Future trait. I would recommend looking carefully at the Future trait so that you can compare Scala’s multithreading with java’s multithreading. Scala’s multithreading is infinitely more sophisticate and better than Java’s multithreading ( in my opinion ). Also a lot of Scala’s frameworks make heavy use of the Future trait.

1 Like