I am from Java background & new to Scala and i need to learn Scala,Akka & Play & Scalaz lib.
I have gone through the official documentation available online but i am unable to grasp them hence i request you to kindly suggest me some books/resources which would help me gain a in depth knowledge for developing reactive applications using all of them.
I apologize if there was a similar post like this/ or any mistake in posting the question.
Kindly to provide me a solution. I would be grateful.
Iâd like to highly recommend Alvin Alexanderâs new book âFunctional Programming Simplifiedâ. It helped me tremendously to understand many of the principles of functional programming and Scala.
Itâs simple, easy to understand, well structured and tries to explain the things that I didnât fully grasp in the other books that I read.
Could you be more specific about what you didnât grasp about the
documentation? Do you have any specific questions?
Scala, Akka, Play and Scalaz taken together is a lot of stuff to learn,
so it is expected to take a long time.
Presumably, you would start with learning Scala. My favorite book is
"Scala for the Impatient" by Cay S. Horstmann.
With Akka and Play, it may help you to first study the Java API.
If you are working in a team that makes extensive use of Scalaz and you
find the code hard to read, it may comfort you to know that almost every
one finds code hard to read that makes extensive use of Scalaz.
I would like to second @woyzeck 's Alvin Alexander book reccomendation even without having seen the book. The web has a smattering of Scala help. Mostly hodgepodge blogs. Many are talking about the most complex parts of Scala and seem primarily designed to show how smart the author is, and IMO this holds back Scala. The posts I found most useful in actually helping use Scala were almost always from Alvin Alexander.
Coming from a Java OOP background I had a very hard time to understand both the huge number of new terms and the principles behind them. I could barely follow online discussions where people threw words like monoids and type classes into the field, even worse, it was very difficult to read advanced source code.
Learning those is - at least for me - difficult, as most documentation assumes that the reader has a background in functional programming, which most Scala newbies donât have. And even if you start to understand what a monad does it can sometimes be hard to link that theoretical knowledge to the practice of writing commercial software.
Alvinâs book filled that gap for me, as itâs rooted in pragmatic application development and not in the theory of functional programming.
Itâs very nice that Dr Odersky makes the Functional Programming course available for free online. He is the creator of Scala and very gifted. However, I cannot recommend it for learning Scala. He starts the class with convoluted exercises in recursive functions and other items which are not always of great practical use to everyday coding. Plowing through the course may discourage many and it is perhaps a place to come back to once you have the practical usage of Scala down.
Thanks for guiding. @woyzeck thanks for Alvin Alexanderâs book recommendation, i have gone through his online resources available, that is quite handy for novices like me. @softinio thanks for the recomendations, i have been doing that course on functional progrmming but as @bentito as said i find at times difficult grabbing the concepts which donot go on with the traditional OOP approach.
Just to take a note Can you guys suggest some related stuffs in Akka & Play which can go handy.
My honest recommendation is that you should invest some time to learn Scala and its concepts before even thinking about Akka. Youâll very soon see code thatâs not even possible to âparse in your headâ for an unexperienced newbie. Play is easy, but as soon as you want to access a database all the implicit hell breaks over you.
Anyway, learn Scala first, do advanced stuff later. And learning Scala will take you several months.
I know others have recommended Scala for the Impatient but I personally didnât like it. Iâve also read part of Functional Programming in Scala (the red book) and some of the guides from the official site. I think reading the red book in combination with the guides on scala lang was most helpful. Scala for the Impatient seems like itâs good for teaching you syntax but the red book was much better at teaching functional programming well.
The red book was a bit too dense though and I only went up to the first 100 pages but even covering that much was really helpful, and I had to use other resources in combination with it. Try to do all the exercises in the book.
I found Alvin Alexanderâs âScala Cookbookâ to be invaluable. His latest
book âFunctional Programming, Simplifiedâ is the best guide to
functional programming in Scala that you will ever find. You can find
it on Amazon in Kindle format and on his website at https://alvinalexander.com/