Resources (Books) for learning Scala

48 views
Skip to first unread message

Christian Haas

unread,
May 13, 2014, 11:28:01 AM5/13/14
to scala-...@googlegroups.com
Hello there!

So far I'm getting a grasp of Scala through the study group of the book about functional programming (in Scala). This is nice and all, but I want to have a dedicated track of learning specifically for this language. So I turn to you helpful people in my quest for resources for learning.

What am I looking for: Something from which to learn/get used to Scala and its standard library from the basics. Perhaps also about one/some of the common frameworks, though I prefer to avoid a framework-lock-in. With knowing plenty of languages, including Java, I don't need extra chapters like "What is a computer"; But given the material, I doubt there would be any of those.

My preference is to have e-books in PDF format (Books from O'Reilly and lean-pub are currently my favourite). I see two possible books by O'Reilly: "Learning Scala" and "Programming Scala, 2nd edition" - any experiences with them?
I've also heard you people mentioning some online courses - I never did any of those but I'd be open for suggestions.

Of course, I also accept recommendations like "Dude, we've done this already. See here: <link>" :)

have fun & thank you!
ch

Manuel Bernhardt

unread,
May 13, 2014, 11:39:10 AM5/13/14
to scala-...@googlegroups.com
Hi,

I could recommend this one: http://pragprog.com/book/vsscala/programming-scala

Probably a bit outdated by now, but it goes straight to what matters
without shortcuts. As for libraries - I think those evolve too quickly
in order to be relevant for a book.

I find the "Programming Scala" book slightly too verbose for my taste
- I never managed to finish it, it goes very much into the details of
the language design.

Manuel
> --
> You received this message because you are subscribed to the Google Groups
> "Vienna Scala Users' Group" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to scala-vienna...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

Sebastian Nozzi

unread,
May 13, 2014, 11:52:17 AM5/13/14
to scala-...@googlegroups.com
Hi Christian,

do you prefer more like a reference book, or something that guides you step by step?

Cheers,
Sebastian

Rafael Cordones

unread,
May 13, 2014, 11:51:41 AM5/13/14
to scala-...@googlegroups.com, Christian Haas
Hi Christian,

On 13 May 2014 at 17:28:03, Christian Haas (dert...@gmail.com) wrote:
Hello there!

So far I'm getting a grasp of Scala through the study group of the book about functional programming (in Scala). This is nice and all, but I want to have a dedicated track of learning specifically for this language. So I turn to you helpful people in my quest for resources for learning.

What am I looking for: Something from which to learn/get used to Scala and its standard library from the basics. Perhaps also about one/some of the common frameworks, though I prefer to avoid a framework-lock-in. With knowing plenty of languages, including Java, I don't need extra chapters like "What is a computer"; But given the material, I doubt there would be any of those.

I can really recommend "Scala Cookbook”: http://shop.oreilly.com/product/0636920026914.do?green=2ddf7400-b3f3-116062-1b53-9ca6237795b&intcmp=af-mybuy-0636920026914.IP

It’s decided in small chunks that you can digest appropriately in short focused sessions.

From this page http://typesafe.com/resources/e-book/atomic-scala you can download a good part of the book “Atomic Scala”: http://www.atomicscala.com/

My preference is to have e-books in PDF format (Books from O'Reilly and lean-pub are currently my favourite). I see two possible books by O'Reilly: "Learning Scala" and "Programming Scala, 2nd edition" - any experiences with them?

If you mean “Programming in Scala” http://www.artima.com/shop/programming_in_scala_2ed I personally found it too dry.

If you mean this other book http://shop.oreilly.com/product/9780596155964.do I believe there should be a revision coming out soon since that book is already five years old.

It was not down… it was sleeping! I have woke up the app now ;-)

Enjoy!

/rafa

Sebastian Nozzi

unread,
May 13, 2014, 12:04:19 PM5/13/14
to scala-...@googlegroups.com, Christian Haas
I second Rafa's comments and suggestions regarding the "Scala Cookbook" (excellent/liked-it) and Programming Scala (long/dry/partially-outdated). The other books I don't know.

Christian Haas

unread,
May 13, 2014, 4:46:43 PM5/13/14
to scala-...@googlegroups.com
Heya!

Thank you for your responses so far. I already own the Cookbook, but it doesn't feel suitable for what I want; As Sebastian is pointing out, I'm more looking for a thing giving me a roller-coaster ride. (Contrary to "Strings! All you (n)ever wanted to know about them in 30 pages! Next up: Numbers!" ;) i.e., I'm looking for breath-first to get used to the most common used stuff and gradually go deeper into the rabbit hole.
That AtomicScala book seems to fit the bill, although the sample starts with very basics.

Perhaps I'll make it a double and also get the "Learning Scala" one ( http://shop.oreilly.com/product/0636920030287.do ) and see how this works out.

see you!
ch

Sebastian Nozzi

unread,
May 13, 2014, 4:59:01 PM5/13/14
to scala-...@googlegroups.com
Hmm... I sense a candidate for doing a talk... I sense it... :-D


--

Rafael Cordones

unread,
May 14, 2014, 2:59:33 AM5/14/14
to Christian Haas, scala-...@googlegroups.com
On 13 May 2014 at 22:46:45, Christian Haas (dert...@gmail.com) wrote:
Heya!

Perhaps I'll make it a double and also get the "Learning Scala" one ( http://shop.oreilly.com/product/0636920030287.do ) and see how this works out.

Michal Bigos

unread,
May 14, 2014, 3:19:08 AM5/14/14
to scala-...@googlegroups.com, Christian Haas
I found Scala for Impatient very good and quick read http://www.horstmann.com/scala/index.html
It goes also deep enough into the advanced topics, e.g. type projections, structural types, compound types ...

M.


--
You received this message because you are subscribed to the Google Groups "Vienna Scala Users' Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-vienna...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
'(")'~

Yago Alonso

unread,
May 14, 2014, 7:40:24 AM5/14/14
to scala-...@googlegroups.com, sebn...@googlemail.com

I sense it too... The type safety is strong with this one....

Christian Haas

unread,
May 14, 2014, 1:40:59 PM5/14/14
to scala-...@googlegroups.com, sebn...@googlemail.com
Doing a talk? Is this some kind of secret membership ritual? ;) (I knew it - I always see that look of recursion in the eyes of all of you...)

But seriously, a talk about what? Assuming about the beginner books, apart from never having done a talk about a technical book, I don't know what use there would be talking about basics to you experts.

I just bought the book from O'Reilly and the one for the impatient (sounded very fitting ;) - I might come back to the AtomicScala if I find something lacking.

have fun!
ch

Sebastian Nozzi

unread,
May 14, 2014, 2:53:56 PM5/14/14
to Christian Haas, scala-...@googlegroups.com
I guess you never were present in one of our book raffles...? ;-)

I don't know what use there would be talking about basics to you experts

It's unfortunate (for us) that you think this way, but thanks for voicing it. We, at least me, would like that there is no such distinction on this group. Note that I'm not accusing you of anything! :-) But I suspect that many people differentiate between experts and "newbies" (I like "beginners" better, but I'm trying to make a point), and therefore they think they have nothing to contribute.

If I knew how to change this perception and lower the inhibitions of "beginners", I would be very happy. Maybe you yourself have some ideas...?

Regarding the book. Yes, you don't have to, but it would just be cool to hear your impressions on the book after you read it (or consider that it helped you enough) in the form of a quick informal talk (5 to 10 minutes, nothing fancy).

Right now, for example, you, as a beginner, would have something very valuable to contribute in a talk... Don't consider it a request, I'm just throwing an idea. When I knew you in the first code-retreat you were like: JavaScript is my top language. Now you are interested in learning Scala... I'm like "what?!". Maybe you can share with us, if you want, in a short presentation your journey to Scala. Does not have to be next time. But something you might want to consider :-)

That reminds me that our talks don't all need to be technical... Those experiences, or any other experiences, are equally valuable.

Cheers,
Sebastian

Christian Haas

unread,
May 15, 2014, 12:15:32 PM5/15/14
to scala-...@googlegroups.com, Christian Haas, sebn...@googlemail.com
I see your point about distinctions and equality of contribution rights and I'm sorry for too generalizing about you all.

But perhaps I might have been led to this mistake by the lack of visibility, so I use this to segue into your first question and to tie it into the original topic of the thread: The topics from the regular meetups feel high(er)-level that I, as one who barely knows how to get Scala code to compile according to some simple examples, couldn't relate what is talked about. i.e., it feels as if I need to have some decent knowledge about the language to be able to follow the presented topics.
For instance I wanted to see if there is some beginners-guide on your homepage, what books to look for, what ecosystem (libraries, frameworks) exists, videos to watch and the like (all with reviews/comments in some form or another); Possibly a "tour of Scala" (similar to the online "Tour of Go" which is very good for example). This combined with the call for "bring the Scala people to your workplace for a hands-on experience" like you started. These would be indicators for me that beginners, such as I am, are considered by this group and (of couse) welcomed.
In short, some sort of map stating "Great, you are interested in Scala and found this group! These are your options from here: ..."
(This is just a quick brainstorming, could be refined in some places; But this way there's more to work with)

I think I can wing some book reviews/experience - will be fun :)

As for me using JavaScript: I've since gone past JavaScript and accepted it to some degree as the "assembler-language of the Web". I'm now looking into Go and Scala (for both of which compilers to JS exist, something I'm /very/ interested in ;)

have fun!
ch

Manuel Bernhardt

unread,
May 15, 2014, 9:51:58 PM5/15/14
to scala-...@googlegroups.com, Christian Haas, Sebastian Nozzi
Hi,

> For instance I wanted to see if there is some beginners-guide on your
> homepage, what books to look for, what ecosystem (libraries, frameworks)
> exists, videos to watch and the like (all with reviews/comments in some form
> or another); Possibly a "tour of Scala" (similar to the online "Tour of Go"
> which is very good for example). This combined with the call for "bring the
> Scala people to your workplace for a hands-on experience" like you started.
> These would be indicators for me that beginners, such as I am, are
> considered by this group and (of couse) welcomed.
> In short, some sort of map stating "Great, you are interested in Scala and
> found this group! These are your options from here: ..."
> (This is just a quick brainstorming, could be refined in some places; But
> this way there's more to work with)

That sounds like easy enough to do - I mean, to add a "Getting
started" tab where we would keep a list of books and other resources.
Especially given all the recommendations given in this thread. What do
you think about adding this to the site?

Greetings from LA,

Manuel

Sebastian Nozzi

unread,
May 16, 2014, 6:56:08 AM5/16/14
to Christian Haas, scala-...@googlegroups.com
Hey Christian,

very cool; thanks for your excellent feedback. And please, you don't need to apologize for anything!

I see your point about distinctions and equality of contribution rights and I'm sorry for too generalizing about you all.

Please, no need.
 
But perhaps I might have been led to this mistake by the lack of visibility, so I use this to segue into your first question and to tie it into the original topic of the thread: The topics from the regular meetups feel high(er)-level that I, as one who barely knows how to get Scala code to compile according to some simple examples, couldn't relate what is talked about. i.e., it feels as if I need to have some decent knowledge about the language to be able to follow the presented topics.

Ok, now this is very valuable to know. 
 
For instance I wanted to see if there is some beginners-guide on your homepage, what books to look for, what ecosystem (libraries, frameworks) exists, videos to watch and the like (all with reviews/comments in some form or another); Possibly a "tour of Scala" (similar to the online "Tour of Go" which is very good for example).

This all seems like an excellent idea. I'm not sure it's us (the Vienna Scala Use Group) the ones who should do it... I mean: something like this should exist for any potential Scala developer in the world... I wonder if something like this does not already exist...

I just found this:


And this exists, though right now it seems to be broken:

 
This combined with the call for "bring the Scala people to your workplace for a hands-on experience" like you started.

(I didn't start it, but thanks ;-)
 
These would be indicators for me that beginners, such as I am, are considered by this group and (of course) welcomed.

At the end, this is what counts. I think this is a general problem of the Scala communities. I don't think it's the case any more that it is actively antagonistic towards beginners. Just that, because either some good background in either Java and/or Haskell is assumed, total beginners are unintentionally neglected.
 
In short, some sort of map stating "Great, you are interested in Scala and found this group! These are your options from here: ..."
(This is just a quick brainstorming, could be refined in some places; But this way there's more to work with)

Excellent ideas / brainstorming. Keep'em coming (and not just you ;-).
 
I think I can wing some book reviews/experience - will be fun :)

Cool.
 
As for me using JavaScript: I've since gone past JavaScript and accepted it to some degree as the "assembler-language of the Web". I'm now looking into Go and Scala (for both of which compilers to JS exist, something I'm /very/ interested in ;)

Would you be interested in me giving a live-code session with Scala.js, or to have a Scala.js workshop?

Cheers,
Sebastian

Rafael Cordones

unread,
May 22, 2014, 12:16:38 PM5/22/14
to Christian Haas, Sebastian Nozzi, scala-...@googlegroups.com
Hi Christian,

On 15 May 2014 at 18:15:47, Christian Haas (dert...@gmail.com) wrote:
I see your point about distinctions and equality of contribution rights and I'm sorry for too generalizing about you all.

But perhaps I might have been led to this mistake by the lack of visibility, so I use this to segue into your first question and to tie it into the original topic of the thread: The topics from the regular meetups feel high(er)-level that I, as one who barely knows how to get Scala code to compile according to some simple examples, couldn't relate what is talked about. i.e., it feels as if I need to have some decent knowledge about the language to be able to follow the presented topics.

We will always need to strike a balance between having events that are interesting to beginners and to more experienced Scala developers. That’s a difficult exercise but very well worth attempting to “solve” it!

For instance I wanted to see if there is some beginners-guide on your homepage, what books to look for, what ecosystem (libraries, frameworks) exists, videos to watch and the like (all with reviews/comments in some form or another); Possibly a "tour of Scala" (similar to the online "Tour of Go" which is very good for example). This combined with the call for "bring the Scala people to your workplace for a hands-on experience" like you started. These would be indicators for me that beginners, such as I am, are considered by this group and (of couse) welcomed.

Creating and *maintaining* such a “homepage” takes time. The application powering scala-vienna.org is actually written in Scala and the code is on GitHub https://github.com/scala-vienna/scala-vienna-web There are even instructions on how to push changes to it  in the README. Members of the group are already actively updating the web with info from their talks so your contribution is highly welcome! :-)

In short, some sort of map stating "Great, you are interested in Scala and found this group! These are your options from here: ..."
(This is just a quick brainstorming, could be refined in some places; But this way there's more to work with)

IMHO, if you are interested in Scala and have found this group you should just come to the meetups and meet people face to face. Talk to them and ask them questions. If afterwards you do not come back and you are no longer interested then we either

  1. are not being inclusive enough to beginners
  2. you though Scala was something else
  3. you just came to for the food and the drinks
I personally would like to move the groups towards being more inclusive and thus try to find out as many of the reasons why people would not return due to option 1 above.

/rafa

Rafael Cordones

unread,
May 22, 2014, 12:20:00 PM5/22/14
to Christian Haas, scala-...@googlegroups.com, Sebastian Nozzi
Hi all,

This Java Posse podcast will definitely be of interest to anybody with a Java background who is interested in Scala.

Roundup ‘14 - Monads, Whiskey Tango Foxtrot

/rafa 

Sebastian Nozzi

unread,
May 23, 2014, 3:48:27 AM5/23/14
to Rafael Cordones, Christian Haas, scala-...@googlegroups.com
2014-05-22 18:16 GMT+02:00 Rafael Cordones <raf...@cordones.me>:
We will always need to strike a balance between having events that are interesting to beginners and to more experienced Scala developers. That’s a difficult exercise but very well worth attempting to “solve” it!
 
I'll re-post my suggestion here: let us "rate" the talks according to audience-level (Scala expertise level) and announce that on the meetup. We should strive to have a 50/50 ratio between beginner/advanced talks. This way, attendants know what to expect.

The other suggestion you did, Rafa, about office-hours was also very good!

For instance I wanted to see if there is some beginners-guide on your homepage, what books to look for, what ecosystem (libraries, frameworks) exists, videos to watch and the like (all with reviews/comments in some form or another); Possibly a "tour of Scala" (similar to the online "Tour of Go" which is very good for example). 
 I got in touch with the guy of scalatutorials.com; there are some problems with the engine they are using (corebrew.io) - hopefully they'll get solved soon.
  1. are not being inclusive enough to beginners
Maybe we are not. It's very easy to do this with such a broad language like Scala. It has been the Scala curse for a while.
  1. you thought Scala was something else
"I thought Scala was a JavaScript framework!"
  1. you just came to for the food and the drinks
Well... that's a lame way to save 5€ ... :-D
 
I personally would like to move the groups towards being more inclusive and thus try to find out as many of the reasons why people would not return due to option 1 above.

You have provided very good ideas regarding this... we should try them out.

Every once in a while we should do a beginners intro to Scala. I can gladly help here.

Cheers,
Seb.

Christian Haas

unread,
May 23, 2014, 12:41:32 PM5/23/14
to scala-...@googlegroups.com, Rafael Cordones, Christian Haas, sebn...@googlemail.com
The beginners-resources page on the homepage doesn't have to be a dynamic one. It could also be a semi-regularly updated page that is updated whenever the group (or a considerable group of people) came to the conclusion that the found/discussed resource is worth spreading.
For instance, the homepage currently lists all past talks. The most recent one is a book review about Akka, but it doesn't tell whether the book is good or for which experience level it would be.
Idea: How about adding functionality in small steps; When a meetup hosted a review, a short (<10 sentence) abstract may be written, but at least a level categorization is added. This categorization could also be done with the tag-system (which is already present) - and even before the actual talk for instance.

Which leads me to the level categorization itself. The book "Scala for the impatient" classifies its chapters according the categories that Martin Odersky himself put out for Scala: Application A1-A3 and Library L1-L3, which map to the 4 abstract names Beginning, Intermediate, Advanced and Expert.
Knowing about these levels (and knowing that the L are shifted by one to A) would give me, as a beginner, a good hint how I would fare with an L2 for instance.
Reply all
Reply to author
Forward
0 new messages