Kotlin

roadmap.sh: https://roadmap.sh/kotlin

Suggested path through the Kotlin nodes. Each node links to its lesson when written.

Nodes

Fundamentals

  • What is Kotlin
  • Kotlin vs Java
  • Setting up the environment
  • Kotlin compiler and runtime
  • Hello World
  • val and var
  • Basic types
  • Type inference
  • String templates
  • Operators
  • Comments and conventions

Control Flow

  • if as an expression
  • when expression
  • for loops
  • while and do-while
  • Ranges
  • break and continue with labels

Functions

  • Function declarations
  • Default and named arguments
  • Single-expression functions
  • Variable number of arguments (vararg)
  • Local functions
  • Extension functions
  • Infix functions
  • Lambdas and higher-order functions
  • Inline functions

Null Safety

  • Nullable types
  • Safe call operator
  • Elvis operator
  • Not-null assertion
  • let, run, also, apply, with

Object-Oriented Programming

  • Classes and constructors
  • Properties and backing fields
  • Inheritance
  • Interfaces
  • Abstract classes
  • Visibility modifiers
  • Data classes
  • Sealed classes
  • Enum classes
  • Object declarations and singletons
  • Companion objects
  • Nested and inner classes
  • Delegation
  • Delegated properties

Functional Programming

  • Function types
  • Closures
  • Collection operations (map, filter, reduce)
  • Sequences
  • Scope functions

Generics

  • Generic functions and classes
  • Variance (in/out)
  • Type projections
  • Reified type parameters

Collections

  • Lists, sets, maps
  • Mutable vs immutable collections
  • Collection builders
  • Grouping and aggregation

Coroutines

  • What are coroutines
  • Suspending functions
  • Coroutine builders (launch, async)
  • Coroutine scope and context
  • Structured concurrency
  • Dispatchers
  • Flows
  • Channels
  • Exception handling in coroutines

Advanced and Ecosystem

  • Exceptions
  • Annotations
  • Reflection
  • Operator overloading
  • Type-safe builders (DSLs)
  • Java interoperability
  • Kotlin Multiplatform
  • Gradle Kotlin DSL
  • Testing (JUnit, Kotest)
  • Android with Kotlin

Resources

See resources.md.

Project ideas

  • Build a coroutine-based CLI that fetches and aggregates data from several APIs concurrently with Flows.
  • Write a small type-safe DSL for generating HTML or configuration using Kotlin’s builder syntax.
  • Create a shared Kotlin Multiplatform module with business logic consumed by a JVM and a native target.

1 item under this folder.