Detailed training program
- Commands and the first program in Kotlin
- Integers, strings, and user input: readln()
- Conditional operators and logic
- Loops for flow control
- IDE setup and Kotlin project configuration
- Floating-point numbers and their peculiarities
- Arrays in Kotlin + ranges and progressions
- Functions and their structure
- Advanced string operations
- Pair/Triple and local functions
- Null-safety and safe null handling
- Exception handling: try/catch/finally
- when: branching, validation, commands
- Input/validation functions: designing a mini utility API
- Mini-project #1: "Guess the Number" game
- vararg and spread: convenient functions
- Project / Packages / Imports
- Introduction to Git: why version control matters
- GitHub: commit / branch / merge / PR, conflicts
- Collections List/Set/Map, mutable/immutable, generics: starting the end-to-end project
- Iterating collections: Iterable, withIndex, entries, safe removals
- Lambdas and callable references in collection tasks
- Collection operations I: map/filter/find/any/all/count/mapNotNull
- Collection operations II: sorting, compareBy, top-N via take(n), == vs ===
- Groupings and frequencies: groupBy, groupingBy().eachCount()
- Aggregations and pipeline performance: fold/reduce, Sequence
- Workshop: reports and transformation pipelines
- Strings in depth + Regex + takeIf/takeUnless
- Scope functions and mini-project #2: Text Analyzer
- Java interoperability: platform types, SAM, Java API
- Classes and objects: properties, methods
- Constructors and init: primary/secondary, require/check
- Properties: encapsulation, lateinit/lazy
- data class and value class
- enum and sealed class, is/as/as?, exhaustive when
- Inheritance and polymorphism
- Generics in depth: variance (out/in), projections, inline/reified
- Interfaces, SAM + object/companion object
- Extensions and operators
- Architecture and refactoring: end-to-end project
- Exceptions: Result, runCatching, error design
- Null-safety: null-free design, smart-cast limitations
- Files: reading/writing, use, paths
- Files: binary, buffers, chunk copying, ZIP
- Encodings and BOM
- Reliable I/O: IOException, atomic write, backup
- Mini-project #3: File Organizer
- JSON + kotlinx.serialization
- Serialization: enum/sealed, annotations
- JsonElement, validation, JSON vs XML
- XML workshop: DOM/XPath
- Dates and time: kotlinx.datetime, time zones, parsing/formatting
- Coroutines: suspend, runBlocking, launch/async, Dispatchers
- Structured concurrency: scope/job, cancellation, exceptions, withContext
- Channel and Flow
- Synchronization: Mutex, Atomic*, actor/confinement
- Asynchronous I/O and cancellation
- Events/Observer and integration with Flow
- HTTP + Ktor Client + JSON
- Databases: JDBC + Exposed + transactions
- Logging and observability
- Reflection + KSP + Kotlin 2.x + JVM memory
330+
Lectures
1000+
Tasks
61
Tests
Also:
- Instant validation
- AI code validator
- IDE plugin
- WebIDE
- Gamification
- Motivational lectures