Scala School

39 views
Skip to first unread message

Ishaaq Chandy

unread,
Feb 26, 2013, 7:02:15 PM2/26/13
to scala-melb
Hi all,
I'm currently helping my colleagues at work learn scala by walking them through the notes at Twitter's Scala School (http://twitter.github.com/scala_school/) twice a week.

I have mixed feelings about the course though. While it is easy to follow, I am not sure I'm making the best use of my colleagues' time. It doesn't feel very interactive, I know I learn a language best by actually doing stuff. What I think is missing are exercises at the end of each lesson to put the lesson into practice.

So, has anyone else on this list done something similar? Suggestions/advice?

Thanks,
Ishaaq

Ben Hutchison

unread,
Feb 26, 2013, 7:55:22 PM2/26/13
to scala...@googlegroups.com
Martin Oderksy's back at Cousera on March 25: https://www.coursera.org/course/progfun

That would make a good intro to Scala IMO.

and, Yes, I think the best learning happens in interactive courses. 

That's why I like the Udacity style of MOOCs, because they are accessible (everything in the browser, unlike alot of Coursera) and interactive (constantly stop and ask you questions). Unfortunately, Udacity will teach you Python but not Scala. But the scala school site seems flat by comparison.

-Ben

--
You received this message because you are subscribed to the Google Groups "Melbourne Scala User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-melb+...@googlegroups.com.
To post to this group, send an email to scala...@googlegroups.com.
Visit this group at http://groups.google.com/group/scala-melb?hl=en-GB.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Ishaaq Chandy

unread,
Feb 26, 2013, 9:49:50 PM2/26/13
to scala-melb
Yeah, unfortunately Martin's course is more about functional programming, not scala per se, so it doesn't exactly fit the bill. Perhaps I'll try and augment the scala shool classes by adding some exercises at the end.

Ishaaq

Bryan Murphy

unread,
Feb 26, 2013, 9:53:23 PM2/26/13
to scala...@googlegroups.com
Can't make any suggestions with respect to online material but agree with Ben that the Coursera Scala course would be worth doing.

I would suggest you take a piece of code that your colleagues are familiar with from your code base, naively convert it to Scala and then iteratively improve it using different features of Scala.  So if the code was in Java, the first version would be a very Java like version of it (but written in Scala - I think IDEA can do this for you) so you can just focus on the Scala syntax like, val, var, def, variables names before types, return type at end, how the class constructors work, traits instead of interfaces, arrays, generics.  You could even keep the Java collections at first.  

Then you can apply some straightforward simplifications like case classes, automatic getters and setters, type inferencing and various types of syntactic sugar.  Next Scala collections, discussion on immutability and use of the standard collection methods (eg map, filter)  - might need an intro to closures and function literal syntax and more syntactic sugar.  Warn them about the scary method signatures of some of the collection methods if they look at the Scala doc too closely

Things like pattern matching, use of Options and the for loop syntax will likely arise next and then you could look at how implicits work, conversion to/from java collections and basic pimp my class examples.

At the end of this they should have a basic feel for how common programming tasks would be mapped to Scala in a reasonably idiomatic way.  The next step of looking at functional programming is a bigger learning curve and you need to decide how far down that road you want to go.  The Coursera course is a good intro for the functional side of things and use of more of the collection methods.

Maybe a bit more work than going through already existing material but working with real code is a good way to learn, provides a context to discuss pros and cons of various way of solving a problem and gives examples that can be referred to later.

Bryan

John Mitchell

unread,
Feb 27, 2013, 3:57:27 AM2/27/13
to scala...@googlegroups.com
Have you looked at the book "Scala for the Impatient" by Cay Horstmann?

http://horstmann.com/scala/

I've read it and worked through the exercises at the end of each chapter.
It is specifically slanted to the Java/C#/C++ programmer learning Scala.
I did find it hard to do the exercises on my own, perhaps as a group it will work better.
But it is a good book for getting going fairly quickly with Scala and I think that is important as having a real world problem at work is a good way to learn the language.

Cheers,

John

Jem

unread,
Feb 27, 2013, 6:37:47 AM2/27/13
to scala...@googlegroups.com
Consider pairing on Scala with those devs who you think would be the best Scala advocates. That helps share the load. Even if you don't do pairing at your workplace, you should be able to get away with some 'tactical pairing' for a specific purpose like this.


--

theGhost

unread,
Feb 27, 2013, 5:08:11 PM2/27/13
to scala...@googlegroups.com
+1 for Scala for the Impatient
Reply all
Reply to author
Forward
0 new messages