Курс на Stepik
Обложка курса «Kotlin» на Stepik
4 790 ₽

В этом курсе мы изучим все, что нужно, чтобы перейти с Java на Котлин. По его окончании, все, что вы до этого писали на Java, вы сможете написать на Kotlin. Шаг за шагом мы будем продвигаться к цели. Мы начнем со стандартного Hello World и постепенно изучим все основы, включая много новых вещей, которых не было в Java, таких как: extension-функции, функциональное программирование, data-классы и многое другое.

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Kotlin»Учеников на курсе 1 608
Сертификаты, выданные на курсе «Kotlin»Сертификатов выдано 462
Отзывы о курсе «Kotlin»Отзывов получено 47
Рейтинг курса «Kotlin»Рейтинг курса 4.936
Уроки в курсе «Kotlin»Количество уроков 217
Тесты в курсе «Kotlin»Количество квизов 32
Задачи с кодом в курсе «Kotlin»Количество задач с кодом 73
Время прохождения курса «Kotlin»Время прохождения курса —
Стоимость курса «Kotlin»Стоимость курса 4 790 ₽ —
Обновления курса «Kotlin»Обновления курса — —
Дата публикации курса «Kotlin»Дата публикации курса — ———
Последнее обновление курса «Kotlin»Последнее обновление — ———
Сложность normal — ———

Содержание курса

Разделы в курсе «Kotlin» 14 разделов Уроки в курсе «Kotlin» 217 уроков Тесты в курсе «Kotlin» 32 теста Задачи в курсе «Kotlin» 73 задачи Время прохождения курса «Kotlin» 69 ч. Последнее обновление курса «Kotlin» обн. 3 февраля 2026

@Deprecated Введение

2 урока
1. Введение ↗
2. Первая программа на Kotlin ↗

@Deprecated Основной синтаксис

9 уроков
1. Переменные ↗
2. Nullable types (нулабельные типы) ↗
3. Условный оператор if ↗
4. Условный оператор when ↗
5. Введение в коллекции ↗
6. Циклы ↗
7. Введение в функции ↗
8. Дефолтные и именованные параметры ↗
9. Исключения ↗

@Deprecated Функциональное программирование

9 уроков
1. Анонимные методы или лямбда-выражения ↗
2. Функции высшего порядка filter и map ↗
3. Бесконечные последовательности ↗
4. Функция ZIP ↗
5. Функция FlatMap ↗
6. Контрольная работа по коллекциям ↗
7. Функции with и let ↗
8. Создание функций высшего порядка ↗
9. Extension-функции ↗

@Deprecated ООП

16 уроков
1. Введение в ООП ↗
2. Конструкторы ↗
3. Методы ↗
4. Equals ↗
5. HashCode ↗
6. Data class ↗
7. Enum-class ↗
8. Наследование ↗
9. Абстрактные классы, интерфейсы и Smart Cast ↗
10. Анонимные классы ↗
11. Оптимизируем код ↗
12. Модификаторы доступа ↗
13. Companion Object ↗
14. SingleTon ↗
15. Generic ↗
16. Generic functions. Lateinit var ↗

@Deprecated Использование Kotlin в Android-разработке

13 уроков
1. Первое приложение на Kotlin ↗
2. Обзор второго приложения на Kotlin ↗
3. Добавляем зависимости для приложения ↗
4. Добавляем POJO объекты ↗
5. Получаем данные из сети ↗
6. Создание локального хранилища ↗
7. Добавляем и настраиваем ViewModel ↗
8. Дорабатываем ViewModel ↗
9. Создаем первые макеты ↗
10. Адаптер и первый экран ↗
11. Ссылка на готовый проект ↗
12. Итоги ↗
13. Экран с детальной информацией ↗

Введение

2 урока
1. Что такое программирование? ↗
2. Зачем нужны языки программирования? ↗

Базовый синтаксис

18 уроков
1. Скачиваем среду разработки ↗
2. Первая программа ↗
3. Чтение из консоли. Переменные ↗
4. Спецсимволы и шаблоны ↗
5. Целочисленный тип Int ↗
6. Целочисленное деление ↗
7. Условный оператор ↗
8. Условный оператор. Часть 2. Комбинирование ↗
9. Изменяемые переменные ↗
10. Дробные числа ↗
11. Введение в коллекции ↗
12. Циклы Repeat и While ↗
13. Цикл for и свойство size ↗
14. Диапазоны Ranges ↗
15. Целочисленные типы Long Short Byte ↗
16. If and when are expressions ↗
17. Символьный тип данных ↗
18. Do while и split ↗

Объектно-ориентированное программирование

24 урока
1. Введение в ООП ↗
2. Создание класса и объекта ↗
3. Введение в функции ↗
4. Функции с параметрами ↗
5. Ключевое слово this и именованные параметры ↗
6. Введение в конструкторы ↗
7. Перегрузка конструкторов ↗
8. Первичный конструктор ↗
9. Возвращаемый тип функций ↗
10. Введение в наследование ↗
11. Upcast, Downcast, Smartcast ↗
12. Введение в полиморфизм ↗
13. Практика создание бухгалтера. Метод super ↗
14. Enum ↗
15. Работа с файлами и мутабельными коллекциями ↗
16. Ручная сериализация и десериализация ↗
17. Удаление элементов из списка ↗
18. Рефакторинг ↗
19. Контрольная работа ↗
20. Инкапсуляция и модификаторы доступа ↗
21. Абстрактные классы ↗
22. Интерфейсы ↗
23. Класс Any и метод toString ↗
24. Обзор ООП ↗

Погружаемся в Kotlin

15 уроков
1. Геттеры и сеттеры. Часть 1 ↗
2. Геттеры и сеттеры. Часть 2 ↗
3. Single Responsibility Principle ↗
4. Рефакторинг и StringBuilder ↗
5. Singleton Object ↗
6. Backing Field ↗
7. Метод copy ↗
8. Метод equals ↗
9. Метод hashcode. Коллекции Set ↗
10. Data Classes ↗
11. Дополнение по методу copy ↗
12. Nullable Types ↗
13. Elvis и Unit ↗
14. Try catch ↗
15. Nothing ↗

Функциональное программирование

15 уроков
1. Kotlin Serialization ↗
2. Получение тестовых данных ↗
3. Чистые функции ↗
4. Анонимные классы ↗
5. Лямбда выражения ↗
6. Введение в Generics ↗
7. Extension functions ↗
8. Inline functions ↗
9. Примеры функций высшего порядка ↗
10. Функция Let ↗
11. Функция Also ↗
12. Коллекции Map ↗
13. Map для улучшения производительности ↗
14. Функции With и Apply ↗
15. Функция Run и Method reference ↗

Паттерны проектирования

14 уроков
1. Основы многопоточности ↗
2. Singleton. Companion. Init. ↗
3. Singleton. Способы реализации ↗
4. Singleton. Синхронизация ↗
5. Создание GUI ↗
6. Observer. Введение ↗
7. Observer. Зависимость от абстракций ↗
8. Observer. Функциональный интерфейс ↗
9. Observer. Интерфейс Observable ↗
10. Observer. MutableObservable ↗
11. Observer. Backing field и итоги ↗
12. Command и BlockingQueue ↗
13. Sealed Interface ↗
14. Builder ↗

Устройство коллекций

24 урока
1. Junit часть 1 ↗
2. Junit часть 2. Parameterized Test ↗
3. Массивы ↗
4. ArrayList. Часть 1 ↗
5. ArrayList. Часть 2 ↗
6. ArrayList. Часть 3. Константы и операторы ↗
7. Алгоритмическая сложность ↗
8. Тестирование исключений. System.arraycopy ↗
9. LinkedList. Принцип работы ↗
10. LinkedList. Реализация ↗
11. LinkedList. Двусвязный список ↗
12. HashSet. Принцип работы ↗
13. HashSet. Реализация. Часть 1 ↗
14. HashSet. Реализация. Часть 2 ↗
15. HashSet. Вопросы на собеседовании ↗
16. Параметризируем коллекции ↗
17. Collections и Iterable ↗
18. MutableIterable ↗
19. Реализации Set ↗
20. Устройство TreeSet ↗
21. Неизменяемые коллекции ↗
22. Коллекции Map ↗
23. Использование Map внутри Set ↗
24. Собеседование по теме коллекции ↗

Асинхронность и многопоточность

38 уроков
1. Создание GUI ↗
2. Добавление логики и метод String.format ↗
3. Механизм callback ↗
4. Suspend функции ↗
5. Корутины под капотом ↗
6. Executor Services ↗
7. Structured Concurrency. Часть 1 ↗
8. Dispatchers Default и Unconfined ↗
9. Dispatchers IO и Main ↗
10. Job и параллельность ↗
11. Async и Deferred ↗
12. Jobs Hierarchy ↗
13. Исключения. Часть 1 ↗
14. Исключения. Часть 2. Async ↗
15. Отмена корутин ↗
16. Suspend Coroutine ↗
17. SupervisorJob ↗
18. Что такое потоки данных ↗
19. Способы создания Sequence ↗
20. Начало работы с Flow ↗
21. Знакомство с API ↗
22. Загрузка данных из сети ↗
23. Создание GUI и работа с Regex ↗
24. Реактивный стиль ↗
25. Channels и Debounce ↗
26. Холодные потоки данных ↗
27. Горячие потоки данных ↗
28. ShareIn ↗
29. Buffer и Backpressure ↗
30. Screen state as Flow ↗
31. MutableStateFlow ↗
32. SharedFlow vs StateFlow ↗
33. Exceptions in Flow ↗
34. Практика работы с исключениями ↗
35. Оператор FlowOn ↗
36. Наследование CoroutineScope ↗
37. Синхронизация корутин ↗
38. Channels ↗

Kotlin в деталях

18 уроков
1. Инвариантность и Ковариантность ↗
2. Контрвариантность ↗
3. Стирание типов ↗
4. Reified и Star Projection ↗
5. Inline и Non local return ↗
6. Crossinline и noinline ↗
7. Value classes ↗
8. Делегирование свойств ↗
9. Делегирование реализации интерфейсов ↗
10. Inner и Nested классы ↗
11. Destructuring declaration and Infix ↗
12. Устройство памяти в Kotlin ↗
13. Как работают программы на Java и Kotlin ↗
14. Модификатор Internal ↗
15. Собеседование ↗
16. Тест Kotlin основы ↗
17. Тест Kotlin Prof ↗
18. Финал ↗