Hacker News new | past | comments | ask | show | jobs | submit login
Creative Scala: A New Introduction to Scala (underscore.io)
120 points by noelwelsh on Feb 25, 2015 | hide | past | favorite | 28 comments



For a ground-up, thorough, and free course on functional programming in Scala, take the course Martin Odersky teaches our undergrads at EPFL (Functional Programming Principles in Scala): https://www.coursera.org/course/progfun

Given as a MOOC on Coursera.


Great course, well tought and constructed. Great auto grader for the excercises. Both challenging and fun.

P.s. I liked your talk at north east scala symposium about scala's type system, looking foreword to more like this


That course is definitely targeted to people with previous programming experience.


I would argue the same about the language in general. Not from an elitist perspective, but I don't think it is a particularly beginner friendly language.


Sadly this course dwelves too much into mathematics. Most of the time, when learning a new language one might want to make a simple real-world app.

Don't get me wrong, the course is good, but sometimes some things could be presented in a simpler way. If I were to enroll into the course again, first I'd check out Twitter's Scala School page to learn some basics: https://twitter.github.io/scala_school/


Totally agreed with Heather. Martin's Coursera course is an excellent functional programming course. The fact that it's free is kind of crazy.

Differentiating Coursera and Creative Scala, Coursera is aimed at people with some programming experience and is intended as a comprehensive introduction to functional programming. Creative Scala is intended as a taster rather than a comprehensive course. It is designed to be run as a workshop in a few hours to a day.

The bulk of Underscore's basic Scala training is our Essential Scala book/course, which is aimed squarely at people requiring learning Scala for commercial purposes. Essential Scala is a follow-on from the material in Creative Scala.


I like the idea of using graphics to introduce functional programming to beginners. From experience, I think taking the risk of introducing key concepts in an visually appealing way is much more effective than using classic examples (calculators?).


This looks nice! Can anyone recommend other good resources for Scala beginners? I'm checking out Twitter's Scala School[1] but the disclaimer near the start indicates that it's based on an older Scala version. I'm also using Odersky's "Scala by Example"[2]

1: http://twitter.github.io/scala_school 2: http://www.scala-lang.org/docu/files/ScalaByExample.pdf


I think the Twitter school is pretty up-to-date. Scala-by-Example is older. There are also a large number of good books teaching Scala. I believe it's worth investing in one or two. And, there's my Coursera course, if you want a more rigorous introduction not just to Scala but to functional programming in general.


The Coursera Functional Programming Principles in Scala[0] course is definitely worth the time. Coming from being a Java programmer in my day job, it's made my Scala I've written since a lot cleaner, in my opinion. It's also had the side effect of making Java a bit more unbearable. It's definitely not to be approached as a beginner to programming though.

[0] - https://www.coursera.org/course/progfun


Wow, I didn't expect to receive a reply from you! Thanks, I'll check out the Coursera course. I did start reading "Functional Programming in Scala" by Paul Chiusano and RĂșnar Bjarnason, but wanted something a bit more beginner-friendly. Then again I was recovering from a concussion at the time, so perhaps I should revisit it now. :)


While Functional Programming in Scala is great, it focuses on areas of Scala that I think are better tackled once you're more familiar with the core language - pattern matching, traits, case classes, variance, for comprehensions...

I find that the best book if you want a deep understanding of the language is Odersky's Programming in Scala. Complete, thorough, well written. It does expect you to have some programming experience, and some bits are perhaps over-detailed, but as long as you allow yourself to skip the bits that bore you, you're in for a treat.


I would definitely recommend Martin's Coursera course, it's incredibly well structured and very well delivered, with enough difficulty to be challenging but it guides you through very gently. Well worth it for learning both Scala and Functional Programming.


In retrospect I found it to be more of a "functional programming which happens to be using scala" class and less an "intro to scala". That's not a bad thing (nor a good thing, it's just a thing) but it's not necessarily what is most useful for a person.

A few years ago I joined a group which had been using scala for a while (since '09ish IIRC) and I took the coursera class to get up to speed. It definitely helped but the reality was that their code base was closer to being java++ than to haskell and a lot of the early habits I picked up from the coursera class were immediately beaten out of me once I got rolling there.

One could argue that they were in the wrong, but I disagree - Scala is a multi-paradigm language and not everyone is going the FP route (I recently heard Venners refer to Scala as a "reform movement for OO, which is how I personally treat it, but that's neither here nor there).

All this said, I don't have a better suggestion. As I mentioned I took the Coursera class and read the Staircase book. The Twitter stuff online was useful but mainly I just read as much as I could online, tracked down conference videos, etc.


"Scala for the Impatient" by Cay Horstmann; awesome resource to learn Scala because the author relies heavily on Scala REPL and the supporting text is full of clear succinct summaries of fundamental scala concepts


Usually we have programmers take the Odersky coursera course. [1]

1: https://www.coursera.org/course/progfun


I took this course about a year ago. It was my real exposure to a functional language. I had a lot of fun!


I like Venkat Subramaniam's "Scala for the Intrigued." There's a 12 part article series[1], and a video.[2]

1: http://blog.agiledeveloper.com/2012/08/scala-for-intrigued-a... 2: https://www.youtube.com/watch?v=grvvKURwGNg


Thanks! If you like Creative Scala I hope you'll consider Essential Scala, which is our follow on course. It's available as a book and we also deliver face-to-face training online and at public courses: http://underscore.io/training/courses/essential-scala/

We wrote Essential Scala because we didn't think any of the existing introductory books meshed with how we want to teach. Essential Scala focuses on core patterns of functional programming, and only introduces Scala features as necessary to support these patterns.

I'm happy to email you (and anyone else who is interested) an excerpt. I'm noel at underscore dot io.



*and by just met, i mean just hired @Mesosphere!


sorry for barging in. The same mesosphere which created the Chaos web framework?


Programing in Scala[1] helped make a lot of things click for me. I'd start there.

1.http://www.amazon.com/Programming-Scala-Comprehensive-Step-S...


I'd recommend you to bite the bullet and work through "Programming in Scala 2E" by Odersky, Spoon and Venners. It's a pretty thorough and systematic introduction to the language and its philosophy.


This is exactly what I was looking for! I started looking at Scala over the weekend and found the existing beginner-oriented documentation to be pretty lacking. I also signed up for the course.


The Neophyte's Guide to Scala is the best language intro I've read.

No other platform I'm aware of has anything like Typesafe Activator, which is an awesome learning/tutorial resource.

There's also Scala Koans out there somewhere I found helpful to practice with.


Let me know how you get on with the material. We're very keen to find out how it works in practice.


Even better, it's from the future: Posted 25 Mar 2015




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: