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

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

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Kotlin»Учеников на курсе 1 608
Сертификаты, выданные на курсе «Kotlin»Сертификатов выдано 462
Отзывы о курсе «Kotlin»Отзывов получено 48
Рейтинг курса «Kotlin»Рейтинг курса 4.938
Уроки в курсе «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

1. @Deprecated Введение

2 урока
Закрытый
1.1 Введение
1 080
1 080
2м 42с
59
Открытый
1.2 Первая программа на Kotlin
3 177
3 177
5м 9с
65

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

9 уроков
Закрытый
2.1 Переменные
973
973
4м 23с
48
Закрытый
2.2 Nullable types (нулабельные типы)
932
932
12м 52с
55
Закрытый
2.3 Условный оператор if
871
871
12м 6с
54
Закрытый
2.4 Условный оператор when
857
857
13м 25с
58
Закрытый
2.5 Введение в коллекции
826
826
10м 44с
53
Закрытый
2.6 Циклы
795
795
14м 39с
46
Закрытый
2.7 Введение в функции
766
766
14м 8с
44
Закрытый
2.8 Дефолтные и именованные параметры
721
721
8м 59с
43
Закрытый
2.9 Исключения
716
716
5м 59с
55

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

9 уроков
Закрытый
3.1 Анонимные методы или лямбда-выражения
737
737
13м 46с
57
Закрытый
3.2 Функции высшего порядка filter и map
687
687
14м 3с
59
Закрытый
3.3 Бесконечные последовательности
665
665
11м 44с
47
Закрытый
3.4 Функция ZIP
653
653
9м 8с
42
Закрытый
3.5 Функция FlatMap
639
639
16м 58с
60
Закрытый
3.6 Контрольная работа по коллекциям
627
627
12м 24с
51
Закрытый
3.7 Функции with и let
629
629
13м 48с
41
Закрытый
3.8 Создание функций высшего порядка
607
607
7м 20с
39
Закрытый
3.9 Extension-функции
615
615
19м 48с
87

4. @Deprecated ООП

16 уроков
Закрытый
4.1 Введение в ООП
630
630
12м 31с
47
Закрытый
4.2 Конструкторы
612
612
9м 36с
52
Закрытый
4.3 Методы
585
585
11м 26с
39
Закрытый
4.4 Equals
577
577
9м 55с
34
Закрытый
4.5 HashCode
562
562
8м 19с
39
Закрытый
4.6 Data class
574
488
14м 57с
60
Закрытый
4.7 Enum-class
549
549
8м 15с
41
Закрытый
4.8 Наследование
546
546
9м 21с
45
Закрытый
4.9 Абстрактные классы, интерфейсы и Smart Cast
545
545
11м 9с
49
Закрытый
4.10 Анонимные классы
532
532
14м 44с
44
Закрытый
4.11 Оптимизируем код
512
512
4м 49с
35
Закрытый
4.12 Модификаторы доступа
514
514
3м 4с
44
Закрытый
4.13 Companion Object
523
523
12м 21с
43
Закрытый
4.14 SingleTon
523
523
11м 37с
52
Закрытый
4.15 Generic
516
516
14м 5с
37
Закрытый
4.16 Generic functions. Lateinit var
504
504
8м 11с
47

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

13 уроков
Закрытый
5.1 Первое приложение на Kotlin
605
605
12м 5с
35
Закрытый
5.2 Обзор второго приложения на Kotlin
470
470
2м 27с
26
Закрытый
5.3 Добавляем зависимости для приложения
432
432
9м 10с
23
Закрытый
5.4 Добавляем POJO объекты
406
406
20м 11с
33
Закрытый
5.5 Получаем данные из сети
386
386
17м 57с
29
Закрытый
5.6 Создание локального хранилища
359
359
15м 51с
25
Закрытый
5.7 Добавляем и настраиваем ViewModel
354
354
26м 13с
30
Закрытый
5.8 Дорабатываем ViewModel
335
335
12м 29с
32
Закрытый
5.9 Создаем первые макеты
340
340
15м 10с
18
Закрытый
5.10 Адаптер и первый экран
339
339
22м 54с
20
Закрытый
5.11 Ссылка на готовый проект
381
381
0м 3с
7
Закрытый
5.12 Итоги
372
372
1м 25с
25
Закрытый
5.13 Экран с детальной информацией
349
349
14м 36с
23

6. Введение

2 урока
Открытый
6.1 Что такое программирование?
2 328
2 328
4м 57с
92
Открытый
6.2 Зачем нужны языки программирования?
2 635
2 635
5м 28с
84

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

18 уроков
Закрытый
7.1 Скачиваем среду разработки
1 626
1 626
5м 18с
82
Закрытый
7.2 Первая программа
1 619
1 337
18м 7с
102
Открытый
7.3 Чтение из консоли. Переменные
2 532
1 303
23м 54с
102
Закрытый
7.4 Спецсимволы и шаблоны
1 483
1 199
22м 45с
87
Закрытый
7.5 Целочисленный тип Int
1 410
1 241
18м 22с
90
Закрытый
7.6 Целочисленное деление
1 371
1 091
33м 34с
85
Закрытый
7.7 Условный оператор
1 345
1 102
33м 31с
86
Закрытый
7.8 Условный оператор. Часть 2. Комбинирование
1 310
1 043
38м 50с
77
Закрытый
7.9 Изменяемые переменные
1 283
1 009
17м 14с
72
Закрытый
7.10 Дробные числа
1 235
1 019
25м 9с
72
Закрытый
7.11 Введение в коллекции
1 260
1 016
21м 12с
71
Закрытый
7.12 Циклы Repeat и While
1 239
993
29м 20с
81
Закрытый
7.13 Цикл for и свойство size
1 192
968
24м 53с
66
Закрытый
7.14 Диапазоны Ranges
1 183
985
14м 30с
71
Закрытый
7.15 Целочисленные типы Long Short Byte
1 152
960
18м 56с
66
Закрытый
7.16 If and when are expressions
1 169
945
35м 17с
71
Закрытый
7.17 Символьный тип данных
1 150
942
24м 4с
80
Закрытый
7.18 Do while и split
1 157
936
17м 46с
79

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

24 урока
Закрытый
8.1 Введение в ООП
1 208
1 208
7м 33с
69
Закрытый
8.2 Создание класса и объекта
1 188
964
23м 21с
72
Закрытый
8.3 Введение в функции
1 142
945
11м 7с
70
Закрытый
8.4 Функции с параметрами
1 127
907
26м 16с
74
Закрытый
8.5 Ключевое слово this и именованные параметры
1 122
884
37м 59с
75
Закрытый
8.6 Введение в конструкторы
1 117
883
22м 59с
72
Закрытый
8.7 Перегрузка конструкторов
1 099
854
36м 4с
75
Закрытый
8.8 Первичный конструктор
1 079
865
17м 45с
72
Закрытый
8.9 Возвращаемый тип функций
1 053
796
65м 36с
73
Закрытый
8.10 Введение в наследование
1 029
797
42м 11с
82
Закрытый
8.11 Upcast, Downcast, Smartcast
1 036
1 036
12м 53с
89
Закрытый
8.12 Введение в полиморфизм
1 010
777
28м 34с
82
Закрытый
8.13 Практика создание бухгалтера. Метод super
996
996
29м 0с
81
Закрытый
8.14 Enum
998
763
34м 19с
86
Закрытый
8.15 Работа с файлами и мутабельными коллекциями
984
690
63м 19с
77
Закрытый
8.16 Ручная сериализация и десериализация
949
681
32м 6с
68
Закрытый
8.17 Удаление элементов из списка
899
636
47м 34с
65
Закрытый
8.18 Рефакторинг
877
877
11м 41с
50
Закрытый
8.19 Контрольная работа
895
895
28м 41с
67
Закрытый
8.20 Инкапсуляция и модификаторы доступа
872
614
34м 25с
64
Закрытый
8.21 Абстрактные классы
848
601
39м 4с
61
Закрытый
8.22 Интерфейсы
838
583
49м 41с
63
Закрытый
8.23 Класс Any и метод toString
836
565
30м 35с
57
Закрытый
8.24 Обзор ООП
839
839
6м 29с
102

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

15 уроков
Закрытый
9.1 Геттеры и сеттеры. Часть 1
874
874
22м 6с
59
Закрытый
9.2 Геттеры и сеттеры. Часть 2
818
558
56м 32с
70
Закрытый
9.3 Single Responsibility Principle
804
560
22м 22с
67
Закрытый
9.4 Рефакторинг и StringBuilder
766
559
28м 57с
64
Закрытый
9.5 Singleton Object
790
556
14м 40с
57
Закрытый
9.6 Backing Field
779
551
22м 50с
63
Закрытый
9.7 Метод copy
760
509
74м 46с
66
Закрытый
9.8 Метод equals
744
506
47м 33с
57
Закрытый
9.9 Метод hashcode. Коллекции Set
732
504
36м 10с
56
Закрытый
9.10 Data Classes
750
506
30м 9с
66
Закрытый
9.11 Дополнение по методу copy
711
711
6м 48с
50
Закрытый
9.12 Nullable Types
724
485
50м 39с
61
Закрытый
9.13 Elvis и Unit
725
496
14м 15с
48
Закрытый
9.14 Try catch
713
488
27м 6с
55
Закрытый
9.15 Nothing
731
480
28м 10с
72

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

15 уроков
Закрытый
10.1 Kotlin Serialization
773
498
33м 8с
63
Закрытый
10.2 Получение тестовых данных
701
449
43м 55с
57
Закрытый
10.3 Чистые функции
710
710
8м 56с
60
Закрытый
10.4 Анонимные классы
706
463
41м 37с
69
Закрытый
10.5 Лямбда выражения
710
458
49м 37с
83
Закрытый
10.6 Введение в Generics
683
467
26м 31с
60
Закрытый
10.7 Extension functions
672
445
28м 51с
64
Закрытый
10.8 Inline functions
691
417
27м 29с
66
Закрытый
10.9 Примеры функций высшего порядка
658
427
28м 30с
55
Закрытый
10.10 Функция Let
656
432
21м 20с
59
Закрытый
10.11 Функция Also
644
415
33м 13с
62
Закрытый
10.12 Коллекции Map
650
415
45м 7с
58
Закрытый
10.13 Map для улучшения производительности
627
410
15м 44с
47
Закрытый
10.14 Функции With и Apply
641
395
39м 24с
57
Закрытый
10.15 Функция Run и Method reference
627
384
28м 13с
78

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

14 уроков
Закрытый
11.1 Основы многопоточности
662
396
31м 56с
50
Закрытый
11.2 Singleton. Companion. Init.
625
389
40м 14с
51
Закрытый
11.3 Singleton. Способы реализации
589
589
15м 45с
40
Закрытый
11.4 Singleton. Синхронизация
594
387
25м 48с
58
Закрытый
11.5 Создание GUI
632
632
17м 3с
49
Закрытый
11.6 Observer. Введение
589
353
47м 52с
50
Закрытый
11.7 Observer. Зависимость от абстракций
551
551
14м 14с
41
Закрытый
11.8 Observer. Функциональный интерфейс
534
534
10м 25с
43
Закрытый
11.9 Observer. Интерфейс Observable
541
541
15м 32с
38
Закрытый
11.10 Observer. MutableObservable
532
300
65м 41с
47
Закрытый
11.11 Observer. Backing field и итоги
510
510
7м 45с
40
Закрытый
11.12 Command и BlockingQueue
527
527
21м 5с
40
Закрытый
11.13 Sealed Interface
535
289
55м 32с
39
Закрытый
11.14 Builder
552
307
20м 12с
58

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

24 урока
Закрытый
12.1 Junit часть 1
552
552
19м 39с
35
Закрытый
12.2 Junit часть 2. Parameterized Test
499
435
14м 14с
39
Закрытый
12.3 Массивы
501
501
22м 17с
35
Закрытый
12.4 ArrayList. Часть 1
492
492
14м 38с
36
Закрытый
12.5 ArrayList. Часть 2
455
455
16м 1с
35
Закрытый
12.6 ArrayList. Часть 3. Константы и операторы
439
439
14м 42с
37
Закрытый
12.7 Алгоритмическая сложность
457
457
13м 32с
41
Закрытый
12.8 Тестирование исключений. System.arraycopy
433
433
17м 9с
30
Открытый
12.9 LinkedList. Принцип работы
911
911
7м 4с
35
Закрытый
12.10 LinkedList. Реализация
443
443
29м 24с
30
Закрытый
12.11 LinkedList. Двусвязный список
425
425
22м 52с
31
Закрытый
12.12 HashSet. Принцип работы
435
435
9м 25с
30
Закрытый
12.13 HashSet. Реализация. Часть 1
425
425
26м 31с
27
Закрытый
12.14 HashSet. Реализация. Часть 2
409
409
16м 10с
23
Закрытый
12.15 HashSet. Вопросы на собеседовании
412
412
24м 50с
28
Закрытый
12.16 Параметризируем коллекции
401
401
10м 45с
23
Закрытый
12.17 Collections и Iterable
406
406
25м 35с
24
Закрытый
12.18 MutableIterable
386
386
10м 33с
22
Закрытый
12.19 Реализации Set
387
387
11м 51с
25
Закрытый
12.20 Устройство TreeSet
385
385
4м 30с
23
Закрытый
12.21 Неизменяемые коллекции
381
381
14м 25с
23
Закрытый
12.22 Коллекции Map
389
389
24м 38с
27
Закрытый
12.23 Использование Map внутри Set
382
382
14м 38с
23
Закрытый
12.24 Собеседование по теме коллекции
437
348
13м 26с
41

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

38 уроков
Закрытый
13.1 Создание GUI
566
566
10м 54с
38
Закрытый
13.2 Добавление логики и метод String.format
466
466
15м 16с
28
Закрытый
13.3 Механизм callback
474
474
11м 58с
35
Закрытый
13.4 Suspend функции
480
480
14м 18с
43
Закрытый
13.5 Корутины под капотом
490
490
15м 17с
39
Закрытый
13.6 Executor Services
451
451
14м 6с
40
Закрытый
13.7 Structured Concurrency. Часть 1
440
440
12м 22с
42
Закрытый
13.8 Dispatchers Default и Unconfined
426
426
11м 23с
34
Закрытый
13.9 Dispatchers IO и Main
430
430
6м 30с
33
Закрытый
13.10 Job и параллельность
435
435
11м 20с
32
Закрытый
13.11 Async и Deferred
432
432
7м 27с
27
Закрытый
13.12 Jobs Hierarchy
417
417
19м 44с
31
Закрытый
13.13 Исключения. Часть 1
409
409
12м 2с
38
Закрытый
13.14 Исключения. Часть 2. Async
399
399
14м 41с
33
Закрытый
13.15 Отмена корутин
409
409
12м 45с
29
Закрытый
13.16 Suspend Coroutine
398
398
10м 37с
30
Закрытый
13.17 SupervisorJob
411
411
6м 42с
32
Закрытый
13.18 Что такое потоки данных
393
393
13м 2с
37
Закрытый
13.19 Способы создания Sequence
385
385
9м 7с
31
Закрытый
13.20 Начало работы с Flow
395
395
16м 34с
35
Закрытый
13.21 Знакомство с API
409
409
14м 21с
29
Закрытый
13.22 Загрузка данных из сети
378
378
23м 25с
32
Закрытый
13.23 Создание GUI и работа с Regex
392
392
20м 42с
32
Закрытый
13.24 Реактивный стиль
379
379
19м 46с
36
Закрытый
13.25 Channels и Debounce
369
369
12м 31с
32
Закрытый
13.26 Холодные потоки данных
366
366
10м 54с
32
Закрытый
13.27 Горячие потоки данных
368
368
12м 39с
29
Закрытый
13.28 ShareIn
366
366
10м 7с
28
Закрытый
13.29 Buffer и Backpressure
360
360
14м 31с
32
Закрытый
13.30 Screen state as Flow
357
357
15м 38с
30
Закрытый
13.31 MutableStateFlow
358
358
9м 22с
25
Закрытый
13.32 SharedFlow vs StateFlow
350
350
15м 16с
25
Закрытый
13.33 Exceptions in Flow
331
331
12м 42с
22
Закрытый
13.34 Практика работы с исключениями
332
332
8м 28с
26
Закрытый
13.35 Оператор FlowOn
332
332
9м 29с
26
Закрытый
13.36 Наследование CoroutineScope
341
341
13м 41с
30
Закрытый
13.37 Синхронизация корутин
343
343
12м 4с
25
Закрытый
13.38 Channels
360
360
12м 7с
30

14. Kotlin в деталях

18 уроков
Закрытый
14.1 Инвариантность и Ковариантность
407
308
20м 42с
34
Закрытый
14.2 Контрвариантность
334
334
14м 24с
25
Закрытый
14.3 Стирание типов
345
345
8м 51с
24
Закрытый
14.4 Reified и Star Projection
337
337
13м 6с
29
Закрытый
14.5 Inline и Non local return
331
331
15м 27с
24
Закрытый
14.6 Crossinline и noinline
323
323
11м 31с
21
Закрытый
14.7 Value classes
329
329
8м 5с
20
Закрытый
14.8 Делегирование свойств
327
327
24м 56с
22
Закрытый
14.9 Делегирование реализации интерфейсов
324
324
14м 11с
27
Закрытый
14.10 Inner и Nested классы
313
313
7м 57с
22
Закрытый
14.11 Destructuring declaration and Infix
317
317
13м 57с
26
Закрытый
14.12 Устройство памяти в Kotlin
341
341
12м 9с
32
Закрытый
14.13 Как работают программы на Java и Kotlin
346
346
6м 36с
35
Закрытый
14.14 Модификатор Internal
332
332
11м 9с
27
Закрытый
14.15 Собеседование
453
292
30м 51с
36
Закрытый
14.16 Тест Kotlin основы
434
236
22м 5с
10
Закрытый
14.17 Тест Kotlin Prof
382
179
33м 22с
15
Закрытый
14.18 Финал
434
434
2м 38с
50