Kotlin SELF
Want the language of the future? Kotlin — Google's official choice for Android, used by Netflix, Uber, Trello. 68 levels of practice: coroutines, null-safety, functional programming. 680 tasks — a record among all Kotlin courses! Instant verification with AI validator. Become a skilled Kotlin developer!
- Level 1
Unavailable Commands and First Program in Kotlin - Level 2
Unavailable Integers, Strings, and Input: readln() - Level 3
Unavailable Conditional Statements and Logic - Level 4
Unavailable Loops for Control Flow - Level 5
Unavailable Installing IDE and Setting Up a Kotlin Project - Level 6
Unavailable Floating-Point Numbers and Their Features - Level 7
Unavailable Arrays in Kotlin + Ranges and Progressions - Level 8
Unavailable Functions and Their Structure - Level 9
Unavailable Advanced String Operations - Level 10
Unavailable Pair/Triple and Local Functions - Level 11
Unavailable Null-safety and Handling Nulls Safely - Level 12
Unavailable Exception Handling: try/catch/finally - Level 13
Unavailable when: Branching, Validation, Commands - Level 14
Unavailable Input/Validation Functions: Designing Utility Mini‑API - Level 15
Unavailable Mini‑Project #1: «Guess the Number» Game - Level 16
Unavailable vararg and spread: Convenient Functions - Level 17
Unavailable Project/Packages/Imports, Gradle, Running, Building JAR - Level 18
Unavailable Git/GitHub: commit/branch/merge/PR, Conflicts - Level 19
Unavailable Collections List/Set/Map, mutable/immutable, Generics: Capstone Project Start - Level 20
Unavailable Iterating Collections: Iterable, withIndex, entries, Safe Removals - Level 21
Unavailable Lambdas and Callable References in Collection Tasks - Level 22
Unavailable Collection Operations I: map/filter/find/any/all/count/mapNotNull - Level 23
Unavailable Collection Operations II: Sorting, compareBy, Top‑N via take(n), == vs === - Level 24
Unavailable Grouping and Frequencies: groupBy, groupingBy().eachCount() - Level 25
Unavailable Aggregations and Pipeline Performance: fold/reduce, Sequence - Level 26
Unavailable Workshop: Reports and Transformation Pipelines - Level 27
Unavailable Strings In‑Depth + Regex + takeIf/takeUnless - Level 28
Unavailable Scope Functions and Mini‑Project #2: Text Analyzer - Level 29
Unavailable Java Interoperability: Platform Types, SAM, Java API - Level 30
Unavailable Classes and Objects: Properties, Methods - Level 31
Unavailable Constructors and init: primary/secondary, require/check - Level 32
Unavailable Properties: Encapsulation, lateinit/lazy - Level 33
Unavailable data class and value class - Level 34
Unavailable enum and sealed class, is/as/as?, Exhaustive when - Level 35
Unavailable Inheritance and Polymorphism - Level 36
Unavailable Generics In‑Depth: Variance (out/in), Projections, inline/reified - Level 37
Unavailable Interfaces, SAM + object/companion object - Level 38
Unavailable Extensions and Operators - Level 39
Unavailable Architecture and Refactoring: Capstone Project - Level 40
Unavailable Exceptions: Result, runCatching, Error Design - Level 41
Unavailable Null-safety: Design Without Null, smart-cast Limitations - Level 42
Unavailable Files: Read/Write, use, Paths - Level 43
Unavailable Files: Binary, Buffers, Chunk Copying, ZIP - Level 44
Unavailable Encodings and BOM - Level 45
Unavailable Reliable I/O: IOException, Atomic Write, Backup - Level 46
Unavailable Mini‑Project #3: File Organizer - Level 47
Unavailable JSON + kotlinx.serialization - Level 48
Unavailable Serialization: enum/sealed, Annotations - Level 49
Unavailable JsonElement, Validation, JSON vs XML - Level 50
Unavailable XML Workshop: DOM/XPath - Level 51
Unavailable Date and Time: kotlinx.datetime, Timezones, Parsing/Formatting - Level 52
Unavailable Coroutines: suspend, runBlocking, launch/async, Dispatchers - Level 53
Unavailable Structured Concurrency: scope/job, Cancellation, Exceptions, withContext - Level 54
Unavailable Channel and Flow - Level 55
Unavailable Synchronization: Mutex, Atomic*, actor/confinement - Level 56
Unavailable Asynchronous I/O and Cancellation - Level 57
Unavailable Events/Observer and Connection to Flow - Level 58
Unavailable HTTP + Ktor Client + JSON - Level 59
Unavailable DB: JDBC + Exposed + Transactions - Level 60
Unavailable Logging and Observability - Level 61
Unavailable Reflection + KSP + Kotlin 2.x + JVM Memory - Level 62
Unavailable Final Project