Learn Scala in 2 Days

Organiser
Frontier Developers' Meetup
Date
Fri, 29 Apr 2011, 14:00 - 16:00 (Add to calendar) GMT
Venue
(Exact location not available) , Boulder, US
Cost
250.0 USD

Scala is the fastest-growing language on the JVM, and quite possibly the fastest-growing functional language ever invented. More companies than ever are embracing Scala as their secret weapon to rapidly build high-performing, powerful desktop and server-side applications, with fewer defects than Java and similar languages thanks to declarative coding, an extremely powerful type system, and an automated testing ecosystem second to none (ScalaCheck, Specs, ScalaTest, etc.).

In this two day, hands-on workshop, you will go from knowing nothing about Scala, to being able to proficiently solve complicated problems in an idiomatically Scala way. Every session consists of a 45 minute lecture (with examples, interactive coding, and Q&A), and a 50 minute hands-on exercise in which you pair up and work through a problem with a fellow attendee.

Teachers include highly-experienced Scala developers and committers to the hottest Scala web framework, with collectively more than 10 years experience writing Scala applications.

Breakfast, lunch, WiFi, and tables are provided. You should bring your own laptop.

Space is extremely limited, so register now while you still can! 

Day 1: Dungeon Game

In day 1, you’ll learn the basics of Scala as you build a simple dungeon game that allows you to work your way around a map and fight monsters.

Networking & Breakfast: 8:00 - 8:40
Networking & Lunch: 1:00 - 2:00
Afterhours Social: 7:30+ @ Absinthe House

  1. Why Scala? 8:40 - 9:00
  1.  
  2. JVM
  3. Consistent
  4. Functional
  5. Powerful Type System
  6. Internal DSLs
  7. High-level
  8. Easy to factor out duplicated data/logic
  9. Low boilerplate = easier to read/write/debug
  10. Data Modeling: Model Data Objects in a Text Adventure Game 9:00 - 11:00
  11. Literals & Core Types
  12. val/var
  13. type inference in variable/field declaration
  14. Accessor & Mutator Methods
  15. Lazy Vals
  16. Classes, Traits, Objects
  17. Construction
  18. Primary Constructors
  19. Secondary Constructors
  20. Factory Methods
  21. Case Classes
  22. Companion Objects
  23. Option & Either
  24. Collections
  25. Immutable
  26. Mutable
  27. Data Transformation: Introducing Behavior to Domain Objects 11:00 - 1:00
  28. Methods
  29. Named & Default Arguments
  30. Operators as method calls
  31. Right-associative operators
  32. Functions
  33. Functions as objects & the apply() method
  34. Function Literals
  35. Closure
  36. Partial application
  37. Lifted methods
  38. Covariance & Contravariance
  39. Higher-Order Functions
  40. Folding, Mapping, For-Comprehensions
  41. Case Class Functionality
  42. Copy methods
  43. Equality & HashCode
  44. Pattern Matching
  45. Basic Syntax - Case Classes
  46. Variable binding & escaping
  47. Guards
  48. PartialFunction
  49. isDefinedAt & MatchError
  50. PartialFunction literals
  51. When PartialFunctions are total
  52. Scaling: Organizing & Testing the Project 2:00 - 4:00
  53. Namespace, Packages, Path Dependent-Types
  54. Composability as a Design Principle
  55. Scala-Style OOP
  56. Subclasses
  57. Traits
  58. Build Tools
  59. Sbt
  60. Testing Frameworks
  61. ScalaCheck
  62. Specs
  63. Practice: Tying it all together in an idiomatic Scala app 4:00 - 6:00
  64. Purity Where Possible
  65. Tail recursion and the @tailrec annotation
  66. Interactivity
  67. Basic IO
  68. Modularization
  69. Pushing Effects to the Top
  70. Configuration and DI?

  71. Day 2: Real World Scala

    In day 2, you’ll learn advanced topics in Scala as you complete simple projects, working your way to a graduation project in which you and a team mate build a fully-functional Scala application from the ground-up.

    Networking & Breakfast: 8:00 - 8:40
    Networking & Lunch: 1:00 - 2:00
    Afterhours Social: 7:30+ @ Absinthe House

    1. Power Scala: Leveraging Scala to Make Code Safe, Readable & Maintainable
    2. Implicits
    3. implicit arguments
    4. implicit values
    5. implicit conversions
    6. Parametric Polymorphism
    7. Parametric Types
    8. Parametric Methods
    9. Covariance/Contravariance
    10. Type constructors & Higher-kinded types
    11. The implicit typeclass pattern
    12. Conformance implicits in Predef
    13. Evidence notation for parametric methods
    14. Method invocation
    15. Operator definition
    16. Invocation with spaces
    17. Custom Pattern Matching
    18. unapply()/unapplySeq()
    19. Building Internal DSLs
    20. Concurrency: Building an MMO Game
    21. Futures
    22. Actors (Akka)
    23. A Taste of the Scala Ecosystem
    24. Lift
    25. XML literals
    26. AJAX input / Comet output
    27. Scalaz: Hardcore Functional Scala
    28. Monoids & Foldable
    29. Validation: Introduction to Applicative
    30. Arrows
    31. Scala + Swing
    32. Graduation Project

You might also like...

Comments

Other nearby events

Map

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“Engineers are all basically high-functioning autistics who have no idea how normal people do stuff.” - Cory Doctorow