Table of contents : Intro -- Getting started: a quick dip -- Basic types and variables: being a variable -- Functions getting out of main -- Classes and objects: a bit of class -- Subclasses and superclasses: using your inheritance -- Abstract classes and interfaces: serious polymorphism -- Data classes: dealing with data -- Nulls and exceptions: safe and sound -- Collections: get organized -- Generics: know your ins from outs -- Lambdas and higher-order functions: treating code like data -- Built-in higher-order functions: power up your code -- Coroutines: running code in parallel -- Testing: hold your code to account -- Leftovers: the top ten things (we didn't cover).