Android 12 Developer Preview is here! Try it out, and give us your feedback!

Kotlin Bootcamp for programmers: Welcome to the course

Welcome to the Kotlin bootcamp for programmers. In this course, you learn the basics of Kotlin and the benefits of using Kotlin as you create various small programs in IntelliJ IDEA.

Google officially supports Kotlin for developing Android apps, as announced in the Android Developers Blog. Kotlin is a mature programming language that's interoperable with the Java programming language. You can use Kotlin to write robust, concise, readable code.

The course materials include course codelabs with suggested homework assignments.


  • Familiarity with the basics of a modern, object-oriented, statically typed programming language such as the Java programming language or C#
  • Ability to program with classes, methods, and exception handling in at least one language
  • Familiarity with an IDE such as IntelliJ IDEA, Android Studio, Eclipse, or Visual Studio

This course content is a prerequisite of the Android Kotlin Fundamentals course.

We recommend that you take the course codelabs in sequence, but it's not a requirement. Depending on your knowledge, you may be able to skim some sections.

This course includes the following codelabs:

Lesson 1: Get started


In lesson 1, you install the necessary tools to work with the Kotlin REPL (read-evaluate-print loop) interactive shell and IntelliJ IDEA, and you practice using the basic syntax of Kotlin code.

Start the lesson:

Lesson 2: Kotlin basics

In lesson 2, you learn how to work with Kotlin data types, operators, variables, booleans, and conditions. You explore the difference between nullable and non-nullable variables, and you practice using Kotlin arrays, lists, and loops.

Start the lesson:

Lesson 3: Functions

In lesson 3, you learn how to create a program with a main() function and arguments in IntelliJ IDEA. You create small programs as you learn about default values, compact functions, list filters, basic lambdas, and higher-order functions.

Start the lesson:

Lesson 4: Classes and objects

In lesson 4, you learn about classes, objects, and inheritance in Kotlin. You create small programs as you learn about abstract classes, interfaces, and interface delegation. You implement an abstract class, an interface implemented in subclasses, and by using interface delegation.

Start the lesson:

Lesson 5.1: Extensions

In lesson 5.1, you learn about collections, constants, and extension functions in Kotlin. You create small programs as you learn about pairs, triples, lists, and hash maps for storing data, and you implement extension functions to add functionality to existing classes.

Start the lesson:

Lesson 5.2: Generics

In lesson 5.2, you learn about generic classes, methods, and functions in Kotlin. You create a type hierarchy and make the classes more flexible by making them generic, and you extend their functionality with generic methods and functions.

Start the lesson:

Lesson 6: Functional manipulation

In lesson 6, you learn about annotations, labeled breaks, and single abstract method (SAM) interfaces, and you review lambdas and higher-order functions. You create and use lambdas and higher-order functions, and learn about some useful higher-order functions in the Kotlin Standard Library.

Start the lesson: