Kurzy a certifikace Dev & Test

Kotlin

Kotlin for Java Developers

19.900 CZK

Cena (bez DPH)

Days2
24. 3.25. 3. 2026
virtual
ENG
12. 5.13. 5. 2026
virtual
ENG

Kotlin has become a primary choice for modern JVM development, offering a more concise, safer, and expressive alternative to Java while maintaining 100% interoperability. For experienced Java developers, the transition is less about learning a new ecosystem and more about “unlearning” boilerplate and defensive patterns that were common in older Java versions.
This training is designed to fast-track Java engineers into Kotlin productivity. We focus on pragmatic differences that matter in production: moving from NullPointerExceptions and verbose DTOs to null-safety, functional idioms, and lightweight concurrency with coroutines.

Audience

  • Senior and Mid-level Java Developers
  • Backend Engineers moving to Spring Boot with Kotlin
  • Developers transitioning from Java

Goals

The course is designed to bridge the gap between Java and Kotlin. Participants will learn how to leverage Kotlin’s type system to eliminate common runtime errors and how to write code that is significantly more readable than its Java equivalent.
Through practical labs with real-world examples, we will refactor "Java-style"Kotlin into idiomatic Kotlin. You will explore how to build type-safe DSLs for internal configurations and how to replace heavy-duty threading with Coroutines to build highly scalable, non-blocking applications.

Outline

Day 1: Syntax, Null Safety, Data Classes, and "Unlearning" Java boilerplate

The Kotlin Mindset

  • Interoperability: Adding Kotlin to existing Java projects
  • "Unlearning" Java: No more semicolons, the new keyword, and static members
  • Properties vs. Fields: Custom getters and setters

Basic Syntax & Control Flow

  • Variable declaration: val (immutable) vs var (mutable)
  • Type inference and String templates
  • When expression: The "Switch on steroids"
  • Smart casts and the is operator

Safe Type Syste

  • The Billion Dollar Mistake: Nullability in the type system
  • Nullable types (String?) vs Non-nullable types
  • Safe calls (?.), Elvis operator (?:), and Not-null assertions (!!)
  • Late-initialization:lateinit vs lazy

Mastering Data Classes

  • Creating DTOs in one line
  • Auto-generated equals, hashCode, toString, and copy
  • Destructuring declarations

Day 2: Concurrency, DSLs, Frameworks and Functional Programming

Functional Programming Idioms

  • Functions as first-class citizens: Lambdas and High-order functions
  • Extension functions: Extending classes without inheritance
  • Standard Library: filter, map, fold and Sequences for lazy evaluation
  • Inline functions and performance implications

Concurrency: Coroutines vs. Threads

  • The limitations of OS Threads and the Java Memory Model
  • Coroutines basics: Lightweight threads and the suspend keyword
  • Structured Concurrency: CoroutineScope, Job and Deferred
  • Contexts and Dispatchers: Moving between IO, Default, and Main threads
  • Coroutines vs. Project Loom

The Framework Landscape (High-Level Overview)

  • Spring Boot (The Enterprise Choice):Leveraging Kotlin’s @JvmStatic and beans { ... } DSL - Coroutine support in WebFlux vs. Standard MVC
  • Ktor (The Kotlin-First Alternative): Understanding the "no magic" philosophy - Building lightweight microservices using the Ktor DSL

Prerequisites

  • Strong proficiency in Java (JDK 8+)
  • Basic understanding of the JVM ecosystem (Maven/Gradle)
  • Familiarity with Git and IntelliJ IDEA

Technical requirements (BYOD)

  • Laptop with administrative rights
  • IntelliJ IDEA (Community or Ultimate) or any other IDE
  • JDK 17 or higher installed
  • Working Internet connection for dependency resolution via Gradle/Maven

Poptejte kurz u nás

Kurzy
Submit
* Povinné pole