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
Kotlin Koans are a series of exercises to get you familiar with the Kotlin syntax
In-IDE learning
Kotlin Onboarding: Introduction
This course is designed for novices in Kotlin and focuses on the basic concepts of the Kotlin language. Each lesson of the course is built in the form of a project: step by step, by completing different small tasks, you will get a finished small project in the end. At the end of each lesson, an additional similar project will be offered: it includes all the lesson topics but does not contain the theory part. Note, this course does not provide a detailed explanation of the basic concepts, like variables: it just shows how to use them in Kotlin and can briefly remind you the definitions. All topics will be accompanied by links to the official Kotlin documentation, which you can read later. After this course, you will be ready to write basic console applications in the Kotlin-like style.
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
Algorithmic Challenges in Kotlin
Prepare for your next technical interview by practicing solving algorithmic challenges in IDE using Kotlin. The main learning objectives of this hands-on course are the following. Practice applying essential algorithmic techniques. We introduce you to the main algorithmic techniques (brute force, greedy algorithms, divide and conquer, dynamic programming). For each topic, you will be solving a number of coding challenges to master the corresponding technique. Prepare for your next coding interview. Solve a suite of carefully selected coding challenges that cover the most popular topics from coding interviews. Code like a pro. Our workflow will push you to code like a pro, whereas IDEA will boost your productivity: implement a solution using various smart features of IDEA (code inspections, auto-completion, on-the-fly code analysis, and reliable refactoring tools); then ensure that your solution is correct by implementing various tests; then, debug it right in IDEA. Practice writing efficient and reliable code. For each problem in this course, your goal is to implement a solution that works in less than one second even on large datasets. When you submit, our automatic grading system checks your solution against a collection of carefully designed test cases that contain both large datasets and various corner cases. Practice Kotlin. Implement your solutions in Kotlin, a cross-platform programming language developed by JetBrains. P.S. Want to contribute? Feel free to send a pull request to the github repo.
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: Object-Oriented programming
This course is designed for novices in Kotlin and focuses on the object-oriented (OOP) concepts of the Kotlin language. This is the second module of the course, the first module can be found on JetBrains Marketplace. This module assumes that you are familiar with all the constructs discussed in the first part. Each lesson of the course is built in the form of a web project: step by step, by completing different small tasks, you will get a functional project in the end. At the end of each lesson, an additional similar project will be offered: it includes all the topics of the lesson but does not contain the theory part. Note, this course does not provide a detailed explanation of the OOP concepts, it just shows how to use them in Kotlin and can briefly remind you the definitions. All topics will be accompanied by links to the official Kotlin documentation, which you can read later. After this course, you will be ready to write basic Kotlin applications.
In-IDE learning
Practical IDE Code Refactoring in Kotlin
Write cleaner Kotlin code—not just code that works. Learn how to refactor with JetBrains IDE tools and build habits that scale your code, your systems, and your skills. Ideal for learners with basic Kotlin experience.
In-IDE learning
Coroutines and Channels
In this course, you'll learn how to use coroutines in IntelliJ IDEA to perform network requests without blocking the underlying thread or callbacks. You'll learn: Why and how to use suspending functions to perform network requests. How to send requests concurrently using coroutines. How to share information between different coroutines using channels. This course is based on Coroutines and Channels tutorial
In-IDE learning
Kotlin Onboarding: Collections
This course is designed for novices in Kotlin and focuses on working with collections in the Kotlin language. This is the third module of the course, the first and second modules can be found on JetBrains Marketplace. This module assumes that you are already familiar with all the constructs discussed in the first and second parts. Each lesson of the course is built in the form of a project: step by step, by completing different small tasks, you will get a fully working project in the end. Some of the projects are practice-based and introduce to you different helpful Kotlin functions though practical exercises without much theory part. Note that this course does not provide a detailed explanation of such aspects as asymptotic complexity, mostly, it just describes the definitions of different types of collections and shows how to use them in Kotlin. All topics will be accompanied by links to the official Kotlin documentation, which you can read later. After this course, you will be ready to use Kotlin collections in efficient ways.
In-IDE learning
IDE Plugin Development Course
This course is designed for novices in plugin development for JetBrains IDEs. It covers the basics of plugin development and provides hands-on experience in working with PSI (Program Structure Interface) elements. The main goal of the course is not to rewrite the existing documentation but rather to cover popular topics and provide links to the official documentation so that students can get used to reading the documentation and searching for necessary information.
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