Kotlin
In-IDE learning
AtomicKotlin
These are examples and exercises accompanying the Atomic Kotlin book. These materials are designed for both dedicated novices and experienced programmers – no programming background is necessary. Kotlin is powerful – not only does it have a rich set of features, but you can also express those features in numerous ways. These features are discussed in the book and presented in the exercises. Each atom in Atomic Kotlin is accompanied by several exercises to cement your understanding of the material. We recommend solving the exercises directly after reading an atom.
In-IDE learning
Kotlin Koans
Build Kotlin fluency by fixing failing unit tests. Each bite-sized challenge helps you master syntax, idioms, and core features through real, test-driven practice.
In-IDE learning
Kotlin Onboarding 1: Introduction
Kotlin makes coding easier—see for yourself! Develop console games and playful apps from day one with no experience, in a professional IDE tailored for a stress-free, step-by-step learning experience.
In-IDE learning
Algorithmic Challenges in Kotlin
From easy puzzles to dynamic programming marathons—solve Kotlin challenges with real-time IntelliJ feedback and Big-O insights. Master brute force, greedy, binary search, and DP in bite-sized units.
Hyperskill
Introduction to Android with Kotlin
Take your first step towards a career in mobile development. Acquire the fundamental skills needed to create, design and deploy simple mobile apps.
In-IDE learning
Introductory Kotlin workshop for programmers
This is an introductory workhshop into the wondrous world of Kotlin provided by David Stibbe and Ali Meshkat. The target audience is anyone with a bit of programming experience and an interest in learning Kotlin. Through these assignments we will explore the most important aspects of the Kotlin language and how to apply these. The presented materials are based on the official Kotlin documentation. Topics Basics Nullable Types Functions and Lambdas Generics Collections Extensions Objects Testing
In-IDE learning
{ this is Kotlin }
Support exercises for { this is Kotlin } course. { this is Kotlin } is an introductory Kotlin course, so no previous Kotlin experience is required. However, it's not an in introductory course in programming, so some programming experience is required. The target audience is usually Java programmers that want to switch to Kotlin, but explicit Java knowledge is not a prerequisite. Please try to do the exercises after attending the corresponding lesson. We do not recommend doing exercises in advance to keep the interest in the course fresh. The structure of the course is the following: Introducing Kotlin: high level overview of the Kotlin language; the next lessons will cover the same concepts in detail, and more. Functions Collections OOP Advanced Topics Generics Testing with Kotest Coroutines Slides and code samples are available on github. Please report any issues here.
In-IDE learning
Kotlin Onboarding 2: Object-Oriented Programming
Build more than just code—build structure. This hands-on Kotlin module introduces object-oriented programming through guided, creative projects like a Memory Trainer. Ideal for learners with basic Kotlin.
In-IDE learning
Practical IDE Code Refactoring in Kotlin
Learn to write cleaner, more maintainable Kotlin code using JetBrains IDE refactoring tools. Build professional habits that make your codebase scalable and easy to evolve.
In-IDE learning
Kotlin Coroutines and Channels
Discover how to use coroutines in IntelliJ IDEA to execute network requests efficiently, preventing thread blocking and callback-based complexities. Ideal for Kotlin devs going pro.
In-IDE learning
Kotlin Onboarding 3: Collections
Stack your ducks, sort your photos, feed your Tamagotchi—and master Kotlin collections along the way. Learn to filter, group, and transform data through real, runnable projects. Beginner-friendly.
In-IDE learning
Developing IntelliJ IDE Plugins with Kotlin and PSI
Build a tool that solves your everyday developer pains—a custom JetBrains IDE plugin. Learn Kotlin and PSI to create extensions that automate tasks, refactor code, and enhance your productivity.
In-IDE learning
KotlinFlashKards - coroutines
This is a set of flash cards to practise Kotlin Coroutine syntax. It can be used at regular intervals to strengthen long term memory recall of core syntax patterns used in concurrent code in Kotlin. It covers Coroutines, error handling and testing Coroutines. It does not replace the documentation at kotlinlang.org or a good book but is a supplementary source of practice material to practise recall of the syntax and coding patterns.
In-IDE learning
Enchant Codelabs
Level-up your skills with the Enchant architecture stack, the most concise way to develop architecture components in Kotlin Multiplatform. You'll create a full MVVM (Model-ViewModel-View) "counter" application with just a few lines of code. Then, you'll learn more about developing models with Flare, a multiplatform Firebase client, and learn how to develop ViewModels with Magic, an architecture library that makes crafting high-quality, reactive ViewModels easy. If you know a little bit of Kotlin and want to develop full-stack apps, this course is perfect for you! Enjoy and good luck!
In-IDE learning
Kotlin UTBM/CNAM
This is an introductory Kotlin course and programming paradigms in French. It is intended for students in the first year of a computer science degree. The first part is dedicated to imperative programming, the second part to object-oriented programming and the third part to functional programming. A final part about design patterns is also included. Every part has a bunch of exercises to practice the concepts learned.
University degree
Software, Data and Technology
This bachelor's program offered by JetBrains and Constructor University combines the latest in software development, data analysis, and machine learning.
University degree
Computer Science and Artificial Intelligence
This undergraduate program focuses on data science, machine learning, robotics, software engineering, and theoretical computer science