Here are some resources our developers use when learning Scala. If you have suggestions for us to include, then let us know @WorkdayDev

First Steps

Useful Links

What should be on your bookshelf

  • Programming In Scala 2nd Edition by Martin Odersky, Lex Spoon and Bill Venners
    Definitive, but dare we say it, a little dry. That being said, it’s a text-book that’s worth reading.
  • [Scala in Depth by Joshua D. Suereth] (http://www.manning.com/suereth/)
    Excellent book for more advanced topics - don’t start with this - but when you are ready, read it, then read it again.
  • DSLs in Action by Debasish Ghosh
    Covers DSLs very well in Ruby, Groovy, Scala and Clojure (Scala gets a lot of coverage). Also covers External DSLs with Scala parser combinators generating case class models

Scala Courses

Some excellent free Coursera courses are available. They are 7 weeks long, so it’s a commitment, but worth it. Start with the Functional Programming Principles - this teaches functional programming through Scala.

Tips

  • [Between Zero & Hero Tips] (https://speakerdeck.com/agemooij/between-zero-and-hero-scala-tips-and-tricks-for-the-intermediate-scala-developer) - Age Mooij’s Scala Tips and Tricks for the intermediate Scala developer
  • [StackOverflow Hidden Features of Scala] (http://stackoverflow.com/questions/1025181/hidden-features-of-scala)

Style / Coding Standards

  • Scala Style Guide - mostly naming conventions, indentation style etc.
  • [Twitter’s coding standards] (http://twitter.github.com/effectivescala/)
  • “Scala In Depth” by Joshua D. Suereth - Chapters 2+3 - This contains some good advice similar to “Effective Java”
  • [Zen of Python] (http://www.python.org/dev/peps/pep-0020/) - provides some good general principles for succinct coding styles, these apply equally well to Scala code

Practising Scala

  • We would advise beginners to start with unit-testing their existing Java code in Scala. It’s a useful and non-threatening way to start getting to grips with the syntax. Have a look at ScalaTest or Specs2
  • Scalatron a programming game that can help with learning Scala
  • Some puzzles that can be useful as well - Ninety-Nine Scala Problems

Functional Programming

  • [Introduction to Functional Programming] (http://jsuereth.com/intro-to-fp)
    This is an excellent presentation that shows how functional programming simplifies using APIs and Futures