Course Overview

Get an overview of the content of this course and who this course is designed for.

About Kotlin

Kotlin is a powerful language, largely thanks to its expressive syntax, intuitive and null-safeNull safety is a mechanism to help prevent null pointer exceptions, which are a common source of bugs and crashes in programs. type system, and great tooling support. It’s no wonder Kotlin is one of the most popular language for Android development and is a popular alternative to Java for back-end applications. It is also used for data science and for multiplatform, iOS, desktop, and web application development. In this course, we’re going to learn about the most important Kotlin features, which will let us properly start our adventure with Kotlin.

Intended audience

This course is intended for developers. We assume that all developers understand what functions, statements, and strings are. However, we try to explain (at least briefly) all the topics that might not be clear for all kinds of developers, like classes, enums, or lists. Therefore, we assume this course might be taken by C, JavaScript, or Matlab developers.

Kotlin is a multiplatform language, but it is mainly used on JVMJava Virtual Machine (JVM) is a runtime environment that interprets and executes bytecode, enabling platform-independent execution of Kotlin code by abstracting hardware specifics.. Also, most Kotlin developers have experience in Java. This is why we sometimes reference Java and its platform and present JVM-specific elements. Whenever we do this, we state it explicitly. We assume that some readers might be mainly interested in using Kotlin/JS or Kotlin/Native, so everything that is not described as Java-specific should be useful for them.

What will be covered?

In this course, we’ll cover the following topics:

  • Variables, values, and types
  • Conditional statements and loops
  • Support for nullability
  • Classes, interfaces, and inheritance
  • Object expressions and declarations
  • Data, sealed, enum, and annotation classes
  • Exceptions
  • Extension functions
  • Collections
  • Operator overloading
  • The type system
  • Generics