Please log in to watch this conference skillscast.
"In this talk Noel will discuss six fundamental concepts that underly effective Scala.
How can programmers quickly and effectively learn to write idiomatic Scala? This is a question Noel at Underscore had to answer when developing their own training material. They knew we wanted to go beyond teaching syntax and give developers the concepts and techniques they needed to develop Scala in a systematic and idiomatic way.
They identified six core concepts that cover a wide range of Scala programs. These concepts give programmers a reproducible way to create code -- once the problem domain is understood the code follows through a series of systematic and reproducible steps. The resulting code is robust and easily maintained.
In this talk Noel will describe these six concepts, which are:
- expressions, values, and types;
- objects and methods;
- algebraic data types;
- structural recursion;
- functors and monads; and
- type classes.
Noel will show how they let us create code in a systematic manner, and how we can go about teaching the concepts to new Scala developers. This talk should be of interest to anyone who is transitioning to, or leading a team that is transitioning to, Scala, and anyone interested in guidelines for idiomatic Scala code. "
YOU MAY ALSO LIKE:
- The Elements of Tagless Final Style (SkillsCast recorded in May 2019)
- LJC Live with Andrey Breslav - Shoulders of Giants: Languages Kotlin learned from (in London on 12th December 2022)
- Taming the Context Beast (SkillsCast recorded in October 2022)
- The Middle Way for Static Typing in Spark DataFrames (SkillsCast recorded in October 2022)
Essential Scala: Six Core Concepts for Learning Scala
Noel has been interested in computers for a long time, particularly the leverage that computers give to people. He followed this interest to a PhD in machine learning, focusing on Bayesian nonparametrics and reinforcement learning. He still finds machine learning very interesting, but right now is more involved with programming and programming languages. A large part of his work is helping people become more effective with functional programming.