Table of Contents

The bold & italicized atoms in the table of contents below are those included in the Leanpub Free Sample. The Stepik Free Sample includes beginning portions of all non-bold & italicized atoms.

Most of the atoms marked “(In Progress)” contain significant content but they have not been completed.

If you purchase the early-access edition you will receive updates as they become available.

Section I: Programming Basics

  • Introduction
  • Hello, World!
  • var & val
  • Data Types
  • Functions
  • if Expressions
  • String Templates
  • Number Types
  • Booleans
  • Repetition with while
  • Looping & Ranges
  • The in Keyword
  • Expressions & Statements
  • Summary 1

    Section II: Introduction to Objects

  • Objects Everywhere

  • Creating Classes

  • Properties

  • Constructors

  • Constraining Visibility

  • Packages

  • Testing

  • Exceptions

  • Lists

  • Variable Argument Lists

  • Sets

  • Maps

  • Property Accessors

  • Summary 2

    Section III: Usability

  • Extension Functions

  • Named & Default Arguments

  • Overloading

  • when Expressions

  • Enumerations

  • Data Classes

  • Destructuring Declarations

  • Nullable Types

  • Safe Calls & the Elvis Operator

  • Non-null Assertions

  • Extensions for Nullable Types

  • Introduction to Generics

  • Extension Properties

  • break & continue

    Section IV: Functional Programming

  • Lambdas

  • The Importance of Lambdas

  • Operations on Collections

  • Member References

  • Higher-Order Functions

  • Manipulating Lists

  • Building Maps

  • Sequences

  • Local Functions

  • Folding Lists

  • Recursion

    Section V: Object-Oriented Programming

  • Interfaces

  • Complex Constructors

  • Secondary Constructors

  • Inheritance

  • Base Class Initialization

  • Abstract Classes

  • Upcasting

  • Polymorphism

  • Composition

  • Inheritance & Extensions

  • Class Delegation

  • Downcasting

  • Sealed Classes

  • Nested Classes

  • Inner Classes

  • Objects

  • Companion Objects

  • Object-Oriented Design

    Section VI: Preventing Failure

  • Exception Handling (In Progress)

  • Check Instructions (In Progress)

  • The Nothing Type (In Progress)

  • Resource Cleanup (In Progress)

  • Logging (In Progress)

  • Unit Testing (In Progress)

    Section VII: Power Tools

  • Lambda with Receiver (In Progress)

  • More Generics (In Progress)

  • The with() Function (In Progress)

  • Scope Functions (In Progress)

  • Immutability (In Progress)

  • Hashing (In Progress)

  • Operator Overloading (In Progress)

  • Using Operators (In Progress)

  • Lazy Initialization (In Progress)

  • Late Initialization (In Progress)

  • Property Delegation (In Progress)

  • Property Delegation Tools (In Progress)

    Appendices

  • Appendix A: AtomicTest

  • Appendix B: Java Interoperability (In Progress)