Kotlin Development

Kotlin is an object-oriented language that runs on the Java Virtual Machine. Kotlin is also a functional language, and combines the features and benefits of OO and functional programming. This course provides a fast-paced introduction to the language for developers with experience Java or similar languages (e.g. C# or C++), and then delves deeper into idiomatic uses of Kotlin in practice.


What you'll learn:

  • Writing and running Kotlin programs
  • Object orientation in Kotlin
  • Functional programming in Kotlin
  • Implementing Domain-Specific Languages
  • Using concurrency
  • Best practices and advanced techniques


Experience using Java or a similar contemporary object-oriented language.

Course Content:

  • Introduction to Kotlin: Overview of Kotlin; Kotlin tools; Writing a simple Kotlin program; Using the interactive shell; Using the online playground
  • Core Kotlin Syntax: Types and variables; Literals; Decision making and looping; Exceptions; Enumerations; Regular expressions
  • Functions: Class-level and top-level functions; Local functions; Extension functions and properties; Variable-argument functions
  • Object-Oriented Programming in Kotlin: Classes and objects; Properties, getters and setters; Open, final, and abstract modifiers; Construction techniques; Data classes; Class delegation and the “by” keyword; Singleton objects
  • A Closer Look at Kotlin Types: Nullability; Primitive types; Nullable primitives; Collections; Arrays
  • Kotlin Techniques: Loops and iterators; Destructuring; Delegated properties; Operator overloading
  • Functional Programming: Overview of functional programming; Lambdas and member references; Functional APIs and collections; Lazy collection operations
  • Going Further with Functional Programming: Higher-order functions; Inlining; Control flow
  • Domain-Specific Languages: Overview of DSLs; Using lambdas and receivers in DSLs; Best practices
  • The Kotlin Type System: Generics; Constraints; Covariance and contravariance; Defining and using annotations; Reflection
  • Concurrency: Creating and synchronizing threads; Callbacks; Futures; Coroutines and channel


Andy Olsen - author of the course

Andy is a freelance consultant and instructor based in the UK, working mostly in the City of London and Oxford. Andy has been working with .NET since the Beta 1 days and has extensive experience in many facets of .NET development including WCF, WPF, WF, ASP.NET MVC Web development, and mobile applications. Andy has designed and written many Microsoft Official Curriculum courses in the last decade, and has been engaged as author and technical reviewer with Apress on some of their biggest selling books.

Other relevant courses

24. August
3 days
Classroom Virtual
12. October
3 days
Classroom Virtual
2 days
Classroom Virtual