SlideShare a Scribd company logo
Learn Scala Now
Stairway to Scala
Bill Venners
Dick Wall
Copyright (c) 2010-2015 Escalate Software Inc.
All Rights Reserved.
escalatesoft.com
About Our Courses
Stairway to Scala Applied
Day-to-day skills for working in Scala
Stairway to Scala Advanced
In-depth for expert library and API
developers
Scala Experts Training Course Programming Language
http://scalacourse.com/
● No prior knowledge of Scala assumed
● Some programming experience (other languages) required
● Emphasizes Functional Programming style
● Multiple Short Theory Sessions (30-45 minutes)
● Test driven exercises for each theory session
● Separated into 3 distinct parts
Stairway to Scala Applied
● Scala language basics
● Using the REPL
● Expressions and Statements
● val vs var
● Classes and Objects
● Built in Control Structures
● Functions and Closures
● Control Abstractions
Stairway to Scala Applied - Part 1 Topics
● Composition, Inheritance, Sub-typing
● Scala’s Type Hierarchy
● Top and Bottom Types
● Optional Types using Option
● Traits, Multiple Inheritance, Linearization
● Packages and Imports
● Assertions, Unit Testing
Stairway to Scala Applied - Part 2 Topics
● Case Classes
● Pattern Matching
● Futures, Promises, Actors
● Scala Collections API (Sequences, Sets, Maps, etc.)
● Using Java Libraries in Scala
● Mixing Scala and Java on Projects
● Building with SBT (and Activator)
● Custom SBT Settings and Tasks
Stairway to Scala Applied - Part 3 Topics
● Using Mutable State (with care), Caching, Encapsulating
● Type Parameterization
● Co- and Contra-Variance
● Abstract Members, Fields and Types
● Implicits Conversions, Parameters
● Implicit Context, Type Classes
Stairway to Scala Advanced - Part 1 Topics
● XML and JSON Serialization and Manipulation
● Modular Programming
● Dependencies (Cake/Parfait)
● Custom Extractors (unapply, unapplySeq)
● Scala Idioms and Best Practices
● Internal DSLs (Domain Specific Languages)
Stairway to Scala Advanced - Part 2 Topics
● Design Patterns in Scala
● Tail Calls and Trampolines
● Monoids, Functors and Monads
● Parser Combinators
● External DSLs
● Macros
Stairway to Scala Advanced - Part 3 Topics
● Have extensive, hands on exercises
○ Spend as much time doing as learning
● Use the same tools you will use on your projects
○ SBT, IDE (Eclipse, IDEA, your choice of editor), REPL
● Applied available online or in-person
● Advanced available in-person (online coming soon)
Stairway to Scala - Both Courses
● Same Materials, Slides and Exercises
● Online - http://scalacourse.com/
○ Self paced
○ Lower cost
● In-person - http://www.escalatesoft.com/training
○ Learn directly from authors
○ Faster, more intense
○ Minimum class size - 12-25 students recommended
Online or In-Person, you choose

More Related Content

What's hot

OOPS Advanced
OOPS AdvancedOOPS Advanced
OOPS Advanced
Madhavan Malolan
 
Scala
ScalaScala
Why Scala?
Why Scala?Why Scala?
Why Scala?
Alex Payne
 
Achieve the norm with Idiorm
Achieve the norm with IdiormAchieve the norm with Idiorm
Achieve the norm with Idiorm
Stipe Predanic
 
Kotlin & arrow: the functional way
Kotlin & arrow:  the functional wayKotlin & arrow:  the functional way
Kotlin & arrow: the functional way
nluaces
 
Kotlin & Arrow the functional way
Kotlin & Arrow the functional wayKotlin & Arrow the functional way
Kotlin & Arrow the functional way
Thoughtworks
 
05 functional programming
05 functional programming05 functional programming
05 functional programming
Victor Matyushevskyy
 
OpenTripPlanner-Informations Tecs Project
OpenTripPlanner-Informations Tecs ProjectOpenTripPlanner-Informations Tecs Project
OpenTripPlanner-Informations Tecs Project
Tasos Patris
 
Introduction to Object-Oriented Concepts and Java
Introduction to Object-Oriented Concepts and Java Introduction to Object-Oriented Concepts and Java
Introduction to Object-Oriented Concepts and Java
Dr. Rosemarie Sibbaluca-Guirre
 
Oop is not Dead
Oop is not DeadOop is not Dead
Oop is not Dead
Hernan Wilkinson
 
Julia language: inside the corporation
Julia language: inside the corporationJulia language: inside the corporation
Julia language: inside the corporation
Andre Pemmelaar
 
ANTLR4 and its testing
ANTLR4 and its testingANTLR4 and its testing
ANTLR4 and its testing
Knoldus Inc.
 
NLP Transfer learning platform
NLP Transfer learning platformNLP Transfer learning platform
NLP Transfer learning platform
manusuryavansh
 
Metaprogramming in Ruby
Metaprogramming in RubyMetaprogramming in Ruby
Metaprogramming in Ruby
Volodymyr Byno
 
Beginning Java for .NET developers
Beginning Java for .NET developersBeginning Java for .NET developers
Beginning Java for .NET developers
Andrei Rinea
 
Java
JavaJava
Natural Language to Visualization by Neural Machine Translation
Natural Language to Visualization by Neural Machine TranslationNatural Language to Visualization by Neural Machine Translation
Natural Language to Visualization by Neural Machine Translation
ivaderivader
 

What's hot (17)

OOPS Advanced
OOPS AdvancedOOPS Advanced
OOPS Advanced
 
Scala
ScalaScala
Scala
 
Why Scala?
Why Scala?Why Scala?
Why Scala?
 
Achieve the norm with Idiorm
Achieve the norm with IdiormAchieve the norm with Idiorm
Achieve the norm with Idiorm
 
Kotlin & arrow: the functional way
Kotlin & arrow:  the functional wayKotlin & arrow:  the functional way
Kotlin & arrow: the functional way
 
Kotlin & Arrow the functional way
Kotlin & Arrow the functional wayKotlin & Arrow the functional way
Kotlin & Arrow the functional way
 
05 functional programming
05 functional programming05 functional programming
05 functional programming
 
OpenTripPlanner-Informations Tecs Project
OpenTripPlanner-Informations Tecs ProjectOpenTripPlanner-Informations Tecs Project
OpenTripPlanner-Informations Tecs Project
 
Introduction to Object-Oriented Concepts and Java
Introduction to Object-Oriented Concepts and Java Introduction to Object-Oriented Concepts and Java
Introduction to Object-Oriented Concepts and Java
 
Oop is not Dead
Oop is not DeadOop is not Dead
Oop is not Dead
 
Julia language: inside the corporation
Julia language: inside the corporationJulia language: inside the corporation
Julia language: inside the corporation
 
ANTLR4 and its testing
ANTLR4 and its testingANTLR4 and its testing
ANTLR4 and its testing
 
NLP Transfer learning platform
NLP Transfer learning platformNLP Transfer learning platform
NLP Transfer learning platform
 
Metaprogramming in Ruby
Metaprogramming in RubyMetaprogramming in Ruby
Metaprogramming in Ruby
 
Beginning Java for .NET developers
Beginning Java for .NET developersBeginning Java for .NET developers
Beginning Java for .NET developers
 
Java
JavaJava
Java
 
Natural Language to Visualization by Neural Machine Translation
Natural Language to Visualization by Neural Machine TranslationNatural Language to Visualization by Neural Machine Translation
Natural Language to Visualization by Neural Machine Translation
 

Similar to Stairway to scala flyer

Scala Online Training.pdf
Scala Online Training.pdfScala Online Training.pdf
Scala Online Training.pdf
SpiritsoftsTraining
 
Reactive Software Systems
Reactive Software SystemsReactive Software Systems
Reactive Software Systems
Behrad Zari
 
A Tour Of Scala
A Tour Of ScalaA Tour Of Scala
A Tour Of Scala
fanf42
 
Scala adoption by enterprises
Scala adoption by enterprisesScala adoption by enterprises
Scala adoption by enterprises
Mike Slinn
 
Metamorphic Domain-Specific Languages
Metamorphic Domain-Specific LanguagesMetamorphic Domain-Specific Languages
Metamorphic Domain-Specific Languages
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
PL Lecture 01 - preliminaries
PL Lecture 01 - preliminariesPL Lecture 01 - preliminaries
PL Lecture 01 - preliminaries
Schwannden Kuo
 
Yes scala can!
Yes scala can!Yes scala can!
Yes scala can!
amirmoulavi
 
Develop realtime web with Scala and Xitrum
Develop realtime web with Scala and XitrumDevelop realtime web with Scala and Xitrum
Develop realtime web with Scala and Xitrum
Ngoc Dao
 
An Intro to Scala for PHP Developers
An Intro to Scala for PHP DevelopersAn Intro to Scala for PHP Developers
An Intro to Scala for PHP Developers
HuffPost Code
 
Functional programming in Scala
Functional programming in ScalaFunctional programming in Scala
Functional programming in Scala
datamantra
 
Scala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadiusScala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadius
BoldRadius Solutions
 
Scala days mizushima
Scala days mizushimaScala days mizushima
Scala days mizushima
Skills Matter Talks
 
NUS Hackers Club Mar 21 - Whats New in JavaSE 8?
NUS Hackers Club Mar 21 - Whats New in JavaSE 8?NUS Hackers Club Mar 21 - Whats New in JavaSE 8?
NUS Hackers Club Mar 21 - Whats New in JavaSE 8?
Chuk-Munn Lee
 
An Introduction to Scala - Blending OO and Functional Paradigms
An Introduction to Scala - Blending OO and Functional ParadigmsAn Introduction to Scala - Blending OO and Functional Paradigms
An Introduction to Scala - Blending OO and Functional Paradigms
Miles Sabin
 
Scala Days NYC 2016
Scala Days NYC 2016Scala Days NYC 2016
Scala Days NYC 2016
Martin Odersky
 
Programming language paradigms
Programming language paradigmsProgramming language paradigms
Programming language paradigms
Ashok Raj
 
Java 8 and Beyond, a Scala Story
Java 8 and Beyond, a Scala StoryJava 8 and Beyond, a Scala Story
Java 8 and Beyond, a Scala Story
Tomer Gabel
 
The Rise of Functional Programming
The Rise of Functional ProgrammingThe Rise of Functional Programming
The Rise of Functional Programming
Tjerk Wolterink
 
Teaching Functional Programming @ TCD - 11/2012
Teaching Functional Programming @ TCD - 11/2012Teaching Functional Programming @ TCD - 11/2012
Teaching Functional Programming @ TCD - 11/2012
Roland Tritsch
 
TypeScript Overview
TypeScript OverviewTypeScript Overview
TypeScript Overview
Aniruddha Chakrabarti
 

Similar to Stairway to scala flyer (20)

Scala Online Training.pdf
Scala Online Training.pdfScala Online Training.pdf
Scala Online Training.pdf
 
Reactive Software Systems
Reactive Software SystemsReactive Software Systems
Reactive Software Systems
 
A Tour Of Scala
A Tour Of ScalaA Tour Of Scala
A Tour Of Scala
 
Scala adoption by enterprises
Scala adoption by enterprisesScala adoption by enterprises
Scala adoption by enterprises
 
Metamorphic Domain-Specific Languages
Metamorphic Domain-Specific LanguagesMetamorphic Domain-Specific Languages
Metamorphic Domain-Specific Languages
 
PL Lecture 01 - preliminaries
PL Lecture 01 - preliminariesPL Lecture 01 - preliminaries
PL Lecture 01 - preliminaries
 
Yes scala can!
Yes scala can!Yes scala can!
Yes scala can!
 
Develop realtime web with Scala and Xitrum
Develop realtime web with Scala and XitrumDevelop realtime web with Scala and Xitrum
Develop realtime web with Scala and Xitrum
 
An Intro to Scala for PHP Developers
An Intro to Scala for PHP DevelopersAn Intro to Scala for PHP Developers
An Intro to Scala for PHP Developers
 
Functional programming in Scala
Functional programming in ScalaFunctional programming in Scala
Functional programming in Scala
 
Scala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadiusScala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadius
 
Scala days mizushima
Scala days mizushimaScala days mizushima
Scala days mizushima
 
NUS Hackers Club Mar 21 - Whats New in JavaSE 8?
NUS Hackers Club Mar 21 - Whats New in JavaSE 8?NUS Hackers Club Mar 21 - Whats New in JavaSE 8?
NUS Hackers Club Mar 21 - Whats New in JavaSE 8?
 
An Introduction to Scala - Blending OO and Functional Paradigms
An Introduction to Scala - Blending OO and Functional ParadigmsAn Introduction to Scala - Blending OO and Functional Paradigms
An Introduction to Scala - Blending OO and Functional Paradigms
 
Scala Days NYC 2016
Scala Days NYC 2016Scala Days NYC 2016
Scala Days NYC 2016
 
Programming language paradigms
Programming language paradigmsProgramming language paradigms
Programming language paradigms
 
Java 8 and Beyond, a Scala Story
Java 8 and Beyond, a Scala StoryJava 8 and Beyond, a Scala Story
Java 8 and Beyond, a Scala Story
 
The Rise of Functional Programming
The Rise of Functional ProgrammingThe Rise of Functional Programming
The Rise of Functional Programming
 
Teaching Functional Programming @ TCD - 11/2012
Teaching Functional Programming @ TCD - 11/2012Teaching Functional Programming @ TCD - 11/2012
Teaching Functional Programming @ TCD - 11/2012
 
TypeScript Overview
TypeScript OverviewTypeScript Overview
TypeScript Overview
 

Recently uploaded

Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
What is Master Data Management by PiLog Group
What is Master Data Management by PiLog GroupWhat is Master Data Management by PiLog Group
What is Master Data Management by PiLog Group
aymanquadri279
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
GohKiangHock
 

Recently uploaded (20)

Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
What is Master Data Management by PiLog Group
What is Master Data Management by PiLog GroupWhat is Master Data Management by PiLog Group
What is Master Data Management by PiLog Group
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
 

Stairway to scala flyer

  • 1. Learn Scala Now Stairway to Scala Bill Venners Dick Wall Copyright (c) 2010-2015 Escalate Software Inc. All Rights Reserved. escalatesoft.com
  • 2. About Our Courses Stairway to Scala Applied Day-to-day skills for working in Scala Stairway to Scala Advanced In-depth for expert library and API developers Scala Experts Training Course Programming Language http://scalacourse.com/
  • 3. ● No prior knowledge of Scala assumed ● Some programming experience (other languages) required ● Emphasizes Functional Programming style ● Multiple Short Theory Sessions (30-45 minutes) ● Test driven exercises for each theory session ● Separated into 3 distinct parts Stairway to Scala Applied
  • 4. ● Scala language basics ● Using the REPL ● Expressions and Statements ● val vs var ● Classes and Objects ● Built in Control Structures ● Functions and Closures ● Control Abstractions Stairway to Scala Applied - Part 1 Topics
  • 5. ● Composition, Inheritance, Sub-typing ● Scala’s Type Hierarchy ● Top and Bottom Types ● Optional Types using Option ● Traits, Multiple Inheritance, Linearization ● Packages and Imports ● Assertions, Unit Testing Stairway to Scala Applied - Part 2 Topics
  • 6. ● Case Classes ● Pattern Matching ● Futures, Promises, Actors ● Scala Collections API (Sequences, Sets, Maps, etc.) ● Using Java Libraries in Scala ● Mixing Scala and Java on Projects ● Building with SBT (and Activator) ● Custom SBT Settings and Tasks Stairway to Scala Applied - Part 3 Topics
  • 7. ● Using Mutable State (with care), Caching, Encapsulating ● Type Parameterization ● Co- and Contra-Variance ● Abstract Members, Fields and Types ● Implicits Conversions, Parameters ● Implicit Context, Type Classes Stairway to Scala Advanced - Part 1 Topics
  • 8. ● XML and JSON Serialization and Manipulation ● Modular Programming ● Dependencies (Cake/Parfait) ● Custom Extractors (unapply, unapplySeq) ● Scala Idioms and Best Practices ● Internal DSLs (Domain Specific Languages) Stairway to Scala Advanced - Part 2 Topics
  • 9. ● Design Patterns in Scala ● Tail Calls and Trampolines ● Monoids, Functors and Monads ● Parser Combinators ● External DSLs ● Macros Stairway to Scala Advanced - Part 3 Topics
  • 10. ● Have extensive, hands on exercises ○ Spend as much time doing as learning ● Use the same tools you will use on your projects ○ SBT, IDE (Eclipse, IDEA, your choice of editor), REPL ● Applied available online or in-person ● Advanced available in-person (online coming soon) Stairway to Scala - Both Courses
  • 11. ● Same Materials, Slides and Exercises ● Online - http://scalacourse.com/ ○ Self paced ○ Lower cost ● In-person - http://www.escalatesoft.com/training ○ Learn directly from authors ○ Faster, more intense ○ Minimum class size - 12-25 students recommended Online or In-Person, you choose