2 added
2 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>26 апр 2022</li>
2
<ul><li>26 апр 2022</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Рассказываем про Kotlin - молодой язык родом из Питера, который вовсю теснит Java в мобильной и бэкенд-разработке.</p>
4
</ul><p>Рассказываем про Kotlin - молодой язык родом из Питера, который вовсю теснит Java в мобильной и бэкенд-разработке.</p>
5
<p>Иллюстрация: Jeen Adams / Nikolai Prokofiev / Wikimedia Commons / Colowgee для Skillbox Media</p>
5
<p>Иллюстрация: Jeen Adams / Nikolai Prokofiev / Wikimedia Commons / Colowgee для Skillbox Media</p>
6
<p>Шеф-редактор Skillbox Media "Код". Пишет о разработке, софт-скиллах и культовых личностях в IT. Обожает Swift, продукты Apple и мемы про код.</p>
6
<p>Шеф-редактор Skillbox Media "Код". Пишет о разработке, софт-скиллах и культовых личностях в IT. Обожает Swift, продукты Apple и мемы про код.</p>
7
<p>Язык Kotlin вот уже третий год стабильно числится в любимчиках у программистов согласно опросу<a>Stack Overflow</a>. Его официально поддерживает Google, используют Jira и Adobe, а разработчики топовых приложений для Android переписывают на Kotlin свои продукты. Разбираемся, чем хорош этот язык, какие в нём есть фишки и сколько зарабатывают программисты.</p>
7
<p>Язык Kotlin вот уже третий год стабильно числится в любимчиках у программистов согласно опросу<a>Stack Overflow</a>. Его официально поддерживает Google, используют Jira и Adobe, а разработчики топовых приложений для Android переписывают на Kotlin свои продукты. Разбираемся, чем хорош этот язык, какие в нём есть фишки и сколько зарабатывают программисты.</p>
8
<p>Kotlin - это язык программирования, созданный в компании JetBrains. Его разработали в 2011 году на замену Java, который в компании считали чересчур многословным. Новый язык получился на 40% компактнее предшественника, что помогло ускорить работу над основным продуктом JetBrains - средой разработки IntelliJ IDEA. При этом Kotlin полностью совместим с Java, потому что запускается на его виртуальной машине (JVM).</p>
8
<p>Kotlin - это язык программирования, созданный в компании JetBrains. Его разработали в 2011 году на замену Java, который в компании считали чересчур многословным. Новый язык получился на 40% компактнее предшественника, что помогло ускорить работу над основным продуктом JetBrains - средой разработки IntelliJ IDEA. При этом Kotlin полностью совместим с Java, потому что запускается на его виртуальной машине (JVM).</p>
9
<p>Если же давать формальное определение, Kotlin - это объектно-ориентированный язык со статической типизацией. Что это значит?</p>
9
<p>Если же давать формальное определение, Kotlin - это объектно-ориентированный язык со статической типизацией. Что это значит?</p>
10
<p><strong>Объектно-ориентированными</strong>называют языки, в которых все операции происходят с объектами - блоками кода, куда можно "складывать" несколько значений. Объектом может быть любая сущность с определённым набором характеристик. Например, персонаж в онлайн-игре или стикер со Спанч Бобом в Telegram. Все объекты проектируются по специальным шаблонам, которые называются классами.</p>
10
<p><strong>Объектно-ориентированными</strong>называют языки, в которых все операции происходят с объектами - блоками кода, куда можно "складывать" несколько значений. Объектом может быть любая сущность с определённым набором характеристик. Например, персонаж в онлайн-игре или стикер со Спанч Бобом в Telegram. Все объекты проектируются по специальным шаблонам, которые называются классами.</p>
11
<p><strong>Статическая типизация</strong>означает, что типы переменных задаются разработчиком до выполнения программы. Если вы объявили целочисленную переменную, текст в неё поместить уже не получится - компилятор сразу укажет на ошибку. Это замедляет разработку на начальном этапе, но добавляет надёжности.</p>
11
<p><strong>Статическая типизация</strong>означает, что типы переменных задаются разработчиком до выполнения программы. Если вы объявили целочисленную переменную, текст в неё поместить уже не получится - компилятор сразу укажет на ошибку. Это замедляет разработку на начальном этапе, но добавляет надёжности.</p>
12
<p>Если хотите больше узнать про типизацию и её виды, почитайте одну из наших предыдущих<a>статей</a> - там всё просто и доступно написано, сразу разберётесь.</p>
12
<p>Если хотите больше узнать про типизацию и её виды, почитайте одну из наших предыдущих<a>статей</a> - там всё просто и доступно написано, сразу разберётесь.</p>
13
-
<p>Кстати, корни теперь уже международной JetBrains - в Санкт-Петербурге. А свой язык они назвали в чес��ь острова в Финском заливе. Помимо намёка на Питер, такое название ещё и подчёркивает связь с Java (и Ява, и Котлин - острова).</p>
13
+
<p>Кстати, корни теперь уже международной JetBrains - в Санкт-Петербурге. А свой язык они назвали в честь острова в Финском заливе. Помимо намёка на Питер, такое название ещё и подчёркивает связь с Java (и Ява, и Котлин - острова).</p>
14
<p>Потенциально Kotlin можно использовать везде, где работает Java - а это и бэкенд, и веб, и десктоп, и куча других задач. Как говорит Андрей Бреслав, создатель языка, "Kotlin - это язык для всех платформ". И в этом большая доля правды.</p>
14
<p>Потенциально Kotlin можно использовать везде, где работает Java - а это и бэкенд, и веб, и десктоп, и куча других задач. Как говорит Андрей Бреслав, создатель языка, "Kotlin - это язык для всех платформ". И в этом большая доля правды.</p>
15
<p>Тем не менее у каждого языка есть своя ниша - та сфера, где его используют больше всего программистов. У Kotlin пока их две - это серверная и <a>мобильная</a>разработка. Хотя его всё чаще можно встретить и в других областях - например, в <a>науке</a>и Data Science.</p>
15
<p>Тем не менее у каждого языка есть своя ниша - та сфера, где его используют больше всего программистов. У Kotlin пока их две - это серверная и <a>мобильная</a>разработка. Хотя его всё чаще можно встретить и в других областях - например, в <a>науке</a>и Data Science.</p>
16
<p>Давайте рассмотрим все сферы по порядку.</p>
16
<p>Давайте рассмотрим все сферы по порядку.</p>
17
<p>До 2017 года официальным языком для Android-приложений был Java, но потом Google объявил свою мобильную ОС Kotlin-first:</p>
17
<p>До 2017 года официальным языком для Android-приложений был Java, но потом Google объявил свою мобильную ОС Kotlin-first:</p>
18
<ul><li>частично - из-за долгого суда с Oracle из-за использования некоторых механик Java;</li>
18
<ul><li>частично - из-за долгого суда с Oracle из-за использования некоторых механик Java;</li>
19
<li>частично - потому, что разработчикам понравился новый язык, они стали стихийно писать на нём мобильные приложения и регулярно теребить корпорацию: "Вы же будете поддерживать Kotlin? Ну скажите это официально! Он хороший!"</li>
19
<li>частично - потому, что разработчикам понравился новый язык, они стали стихийно писать на нём мобильные приложения и регулярно теребить корпорацию: "Вы же будете поддерживать Kotlin? Ну скажите это официально! Он хороший!"</li>
20
</ul><p>Сегодня на Kotlin написано 80% самых скачиваемых программ в Play Market, включая приложения от Netflix, Twitter, Reddit и самого Google.</p>
20
</ul><p>Сегодня на Kotlin написано 80% самых скачиваемых программ в Play Market, включая приложения от Netflix, Twitter, Reddit и самого Google.</p>
21
<em>Кадр: Android Developers / YouTube</em><p>Благодаря совместимости с JVM, Kotlin можно запустить на любых серверах, где работает Java. Поэтому его часто используют для создания бэкенда - той части систем, которая выполняется на сервере и не видна обычному пользователю. Например, на Kotlin уже работают облачные сервисы Jira и некоторые продукты Adobe.</p>
21
<em>Кадр: Android Developers / YouTube</em><p>Благодаря совместимости с JVM, Kotlin можно запустить на любых серверах, где работает Java. Поэтому его часто используют для создания бэкенда - той части систем, которая выполняется на сервере и не видна обычному пользователю. Например, на Kotlin уже работают облачные сервисы Jira и некоторые продукты Adobe.</p>
22
<p>Эта ниша - одна из приоритетных для команды Kotlin. И несмотря на популярность Kotlin в мобильной разработке, DevRel-команды JetBrains говорят о своём языке исключительно в контексте серверной разработки, вообще не упоминая мобилку.</p>
22
<p>Эта ниша - одна из приоритетных для команды Kotlin. И несмотря на популярность Kotlin в мобильной разработке, DevRel-команды JetBrains говорят о своём языке исключительно в контексте серверной разработки, вообще не упоминая мобилку.</p>
23
<p>Помимо бэкенда, есть ещё фронтенд - "фасадная" сторона интернета. Это разные кнопки, выпадающие меню и окошки, с которыми взаимодействуют пользователи. Почти весь фронтенд пишется на одном языке - JavaScript.</p>
23
<p>Помимо бэкенда, есть ещё фронтенд - "фасадная" сторона интернета. Это разные кнопки, выпадающие меню и окошки, с которыми взаимодействуют пользователи. Почти весь фронтенд пишется на одном языке - JavaScript.</p>
24
-
<p>А Kotlin как раз умеет компилироваться в JavaScript - и такую его версию можно использовать для создания фронтенда. То есть на нём вполне реально написать и логику, и интерфейс - веб-приложение целиком.</p>
24
+
<p>А Kotlin как ��аз умеет компилироваться в JavaScript - и такую его версию можно использовать для создания фронтенда. То есть на нём вполне реально написать и логику, и интерфейс - веб-приложение целиком.</p>
25
<p> Допустим, нам нужно написать мобильное приложение для аренды самокатов. Оно должно одинаково хорошо работать и на айфонах, и на смартфонах под управлением Android.</p>
25
<p> Допустим, нам нужно написать мобильное приложение для аренды самокатов. Оно должно одинаково хорошо работать и на айфонах, и на смартфонах под управлением Android.</p>
26
<p>В таком случае нам может помочь кросс-платформенная разработка - это когда мы пишем код один раз, а потом адаптируем под несколько систем. В Kotlin есть технология, которая позволяет так делать, - называется Multiplatform. Её используют уже довольно много компаний - например, тот же "Яндекс".</p>
26
<p>В таком случае нам может помочь кросс-платформенная разработка - это когда мы пишем код один раз, а потом адаптируем под несколько систем. В Kotlin есть технология, которая позволяет так делать, - называется Multiplatform. Её используют уже довольно много компаний - например, тот же "Яндекс".</p>
27
<p>Если вы работали с дата-сайенс, то наверняка знаете про Jupyter Notebook. Это среда разработки, которая может исполнять код по кусочкам и мгновенно давать результат. Её часто используют в машинном обучении, статистике и визуализации данных. Раньше в Jupyter писали только на Python, Ruby и R, но теперь можно и на Kotlin. Достаточно подключить пару библиотек, и можно делать свою Siri или Алису.</p>
27
<p>Если вы работали с дата-сайенс, то наверняка знаете про Jupyter Notebook. Это среда разработки, которая может исполнять код по кусочкам и мгновенно давать результат. Её часто используют в машинном обучении, статистике и визуализации данных. Раньше в Jupyter писали только на Python, Ruby и R, но теперь можно и на Kotlin. Достаточно подключить пару библиотек, и можно делать свою Siri или Алису.</p>
28
<p>А ещё Kotlin активно осваивают учёные - например, физики и математики. Сейчас достаточно быстро развивается специальная библиотека<a>KMath</a>, которая приносит в Kotlin продвинутую математику и обеспечивает интеграцию с тем же TensorFlow.</p>
28
<p>А ещё Kotlin активно осваивают учёные - например, физики и математики. Сейчас достаточно быстро развивается специальная библиотека<a>KMath</a>, которая приносит в Kotlin продвинутую математику и обеспечивает интеграцию с тем же TensorFlow.</p>
29
<p>Как мы писали выше, Java и Kotlin - функционально совместимые языки. Они действительно очень похожи: оба статически типизированы, поддерживают ООП и работают на JVM. В некоторых средах разработки их функции и классы даже можно смешивать. Теперь давайте посмотрим, чем эти языки отличаются.</p>
29
<p>Как мы писали выше, Java и Kotlin - функционально совместимые языки. Они действительно очень похожи: оба статически типизированы, поддерживают ООП и работают на JVM. В некоторых средах разработки их функции и классы даже можно смешивать. Теперь давайте посмотрим, чем эти языки отличаются.</p>
30
<p>Когда язык Java только появился, он был гораздо проще и лаконичнее конкурентов - тех же C и C++. Да у него и сейчас достаточно понятный и логичный синтаксис - правда, по современным меркам этот язык уже кажется многословным и несколько старомодным. Это и неудивительно: в Java всё вертится вокруг обратной совместимости, которая так важна для энтерпрайза, в котором "кофейный" язык является стандартом.</p>
30
<p>Когда язык Java только появился, он был гораздо проще и лаконичнее конкурентов - тех же C и C++. Да у него и сейчас достаточно понятный и логичный синтаксис - правда, по современным меркам этот язык уже кажется многословным и несколько старомодным. Это и неудивительно: в Java всё вертится вокруг обратной совместимости, которая так важна для энтерпрайза, в котором "кофейный" язык является стандартом.</p>
31
<p>Создатели же Kotlin изначально делали ставку на компактность: чем меньше ненужного кода, тем проще работать программисту и тем быстрее идёт разработка. В итоге одной строкой в Kotlin можно описать то, на что в Java уйдёт восемнадцать. Сравните, как по-разному выглядят классы данных на двух языках.</p>
31
<p>Создатели же Kotlin изначально делали ставку на компактность: чем меньше ненужного кода, тем проще работать программисту и тем быстрее идёт разработка. В итоге одной строкой в Kotlin можно описать то, на что в Java уйдёт восемнадцать. Сравните, как по-разному выглядят классы данных на двух языках.</p>
32
<p>Создание класса Person на Java:</p>
32
<p>Создание класса Person на Java:</p>
33
public class Person { private final String name; private final int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } }<p>Объявление того же класса на Kotlin:</p>
33
public class Person { private final String name; private final int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } }<p>Объявление того же класса на Kotlin:</p>
34
data class Person(val name: String, val age: Int)<p>Тут шайба, кажется, на стороне Java. Он лучше адаптирован под JVM, поэтому приложения компилируются на 15-20% быстрее в сравнении с Kotlin. Однако существует такая штука, как инкрементальная компиляция - это когда пересобирается не весь проект, а только те участки, где программист внёс изменения.</p>
34
data class Person(val name: String, val age: Int)<p>Тут шайба, кажется, на стороне Java. Он лучше адаптирован под JVM, поэтому приложения компилируются на 15-20% быстрее в сравнении с Kotlin. Однако существует такая штука, как инкрементальная компиляция - это когда пересобирается не весь проект, а только те участки, где программист внёс изменения.</p>
35
<p>Если подключить к Kotlin специальный плагин, обеспечивающий такую компиляцию, то сборка может проходить даже быстрее, чем на Java. Так что в этом пункте ничья.</p>
35
<p>Если подключить к Kotlin специальный плагин, обеспечивающий такую компиляцию, то сборка может проходить даже быстрее, чем на Java. Так что в этом пункте ничья.</p>
36
<p>Наряду с Python и C, Java - один из самых популярных языков программирования в мире. В рейтинге TIOBE за март 2022 года Java занимает третье место, а Kotlin - пока только 31-е. Однако важно помнить, что Kotlin - язык новый, и область его применения постоянно растёт. В то же время Java всё чаще используется для поддержки старых проектов, а не для создания новых.</p>
36
<p>Наряду с Python и C, Java - один из самых популярных языков программирования в мире. В рейтинге TIOBE за март 2022 года Java занимает третье место, а Kotlin - пока только 31-е. Однако важно помнить, что Kotlin - язык новый, и область его применения постоянно растёт. В то же время Java всё чаще используется для поддержки старых проектов, а не для создания новых.</p>
37
<p>Безопасность - это то, как язык защищает программиста от его собственных ошибок. В языках со статической типизацией, таких как Java и Kotlin, компилятор следит, чтобы не смешивались несовместимые типы данных - например, строка и число.</p>
37
<p>Безопасность - это то, как язык защищает программиста от его собственных ошибок. В языках со статической типизацией, таких как Java и Kotlin, компилятор следит, чтобы не смешивались несовместимые типы данных - например, строка и число.</p>
38
<p>В Kotlin вшито несколько функций, которые упрощают работу с типами - например, язык может сам привести переменные к единому типу, если того требует логика кода. Эта функция называется smart cast, или "умное преобразование".</p>
38
<p>В Kotlin вшито несколько функций, которые упрощают работу с типами - например, язык может сам привести переменные к единому типу, если того требует логика кода. Эта функция называется smart cast, или "умное преобразование".</p>
39
<p>Вот ещё несколько фишек, которые дают Kotlin преимущество в скорости, безопасности и производительности.</p>
39
<p>Вот ещё несколько фишек, которые дают Kotlin преимущество в скорости, безопасности и производительности.</p>
40
<p>Coroutines (корутины) - это средство, которое обеспечивает параллелизм, чтобы программа могла выполнять несколько операций одновременно. Когда возникает необходимость, выполнение одной функции приостанавливается с сохранением данных, и начинает работать другая функция.</p>
40
<p>Coroutines (корутины) - это средство, которое обеспечивает параллелизм, чтобы программа могла выполнять несколько операций одновременно. Когда возникает необходимость, выполнение одной функции приостанавливается с сохранением данных, и начинает работать другая функция.</p>
41
<em>Инфографика: Skillbox Media</em><p>Допустим, нам нужно сделать приложение - электронный дневник, чтобы ученик мог зайти в него, узнать свои оценки и посмотреть, что задали.</p>
41
<em>Инфографика: Skillbox Media</em><p>Допустим, нам нужно сделать приложение - электронный дневник, чтобы ученик мог зайти в него, узнать свои оценки и посмотреть, что задали.</p>
42
<p>Если загружать с сервера все данные последовательно, то приложение будет открываться очень долго. Вместо этого ненужные пока данные (например, новости), можно вынести в корутину и поставить их подгрузку на паузу, пока грузится основной интерфейс.</p>
42
<p>Если загружать с сервера все данные последовательно, то приложение будет открываться очень долго. Вместо этого ненужные пока данные (например, новости), можно вынести в корутину и поставить их подгрузку на паузу, пока грузится основной интерфейс.</p>
43
<p>Корутины позволяют расставить приоритеты в работе программы. Этот механизм напоминает многопоточность, но тратит меньше ресурсов процессора - за что их и ценят, например, в мобильной разработке.</p>
43
<p>Корутины позволяют расставить приоритеты в работе программы. Этот механизм напоминает многопоточность, но тратит меньше ресурсов процессора - за что их и ценят, например, в мобильной разработке.</p>
44
<p>В языках программирования с поддержкой ООП все объекты строятся по специальным шаблонам, которые называются классами. Они содержат базовые сведения о том, как должен выглядеть и работать объект.</p>
44
<p>В языках программирования с поддержкой ООП все объекты строятся по специальным шаблонам, которые называются классами. Они содержат базовые сведения о том, как должен выглядеть и работать объект.</p>
45
<p>Иногда по ходу исполнения программы нам нужно расширить класс и добавить в него новые параметры. В Kotlin это можно легко и изящно сделать с помощью специальных функций-расширений. Выглядит это так:</p>
45
<p>Иногда по ходу исполнения программы нам нужно расширить класс и добавить в него новые параметры. В Kotlin это можно легко и изящно сделать с помощью специальных функций-расширений. Выглядит это так:</p>
46
// Добавляем функцию Titanic к объекту Introduce. Название объекта выносится в префикс fun Introduce.Titanic(): String{ return "I am " + this } //Далее вызываем функцию val Leo= "the king of the world" println(Leo.Titanic())<p>Те, кто пишет на Java, часто сталкиваются с исключением под названием Null Pointer Exception. Это такая штука, которая вылезает во время выполнения программы, если в проекте есть строка, которая ссылается на переменную с нулевым значением.</p>
46
// Добавляем функцию Titanic к объекту Introduce. Название объекта выносится в префикс fun Introduce.Titanic(): String{ return "I am " + this } //Далее вызываем функцию val Leo= "the king of the world" println(Leo.Titanic())<p>Те, кто пишет на Java, часто сталкиваются с исключением под названием Null Pointer Exception. Это такая штука, которая вылезает во время выполнения программы, если в проекте есть строка, которая ссылается на переменную с нулевым значением.</p>
47
<p>В больших и сложных проектах поиск строки с ошибкой может занять много времени и сильно потрепать нервы. В Kotlin такой проблемы нет, потому что все переменные по умолчанию не нулевые. Компилятор сразу перестанет собирать проект, если значение какой-то строки равно нулю, и ошибка не вылезет в готовой программе.</p>
47
<p>В больших и сложных проектах поиск строки с ошибкой может занять много времени и сильно потрепать нервы. В Kotlin такой проблемы нет, потому что все переменные по умолчанию не нулевые. Компилятор сразу перестанет собирать проект, если значение какой-то строки равно нулю, и ошибка не вылезет в готовой программе.</p>
48
<p>Мы подробно разбирали, что такое исключения в Java и как с ними работать, в своём<a>цикле статей</a>.</p>
48
<p>Мы подробно разбирали, что такое исключения в Java и как с ними работать, в своём<a>цикле статей</a>.</p>
49
<em>Скриншот: Skillbox Media</em><p>Программировать на Kotlin пока умеет не так много разработчиков, поэтому компании готовы предлагать неплохие деньги даже новичкам. В глобальном списке лучше всего оплачиваемых языков Kotlin находится примерно посередине, обгоняя JavaScript, SQL, PHP и Java, но уступая лидерам: Perl, Go и Scala (данные<a>Stack Overflow</a>).</p>
49
<em>Скриншот: Skillbox Media</em><p>Программировать на Kotlin пока умеет не так много разработчиков, поэтому компании готовы предлагать неплохие деньги даже новичкам. В глобальном списке лучше всего оплачиваемых языков Kotlin находится примерно посередине, обгоняя JavaScript, SQL, PHP и Java, но уступая лидерам: Perl, Go и Scala (данные<a>Stack Overflow</a>).</p>
50
<p>На российском рынке Kotlin в топе по зарплатам. По данным "<a>Хабр Карьеры</a>", за 2021 год средний оклад котлинистов вырос на 13% - со 160 до 180 тысяч рублей в месяц.</p>
50
<p>На российском рынке Kotlin в топе по зарплатам. По данным "<a>Хабр Карьеры</a>", за 2021 год средний оклад котлинистов вырос на 13% - со 160 до 180 тысяч рублей в месяц.</p>
51
<em>Инфографика:<a>блог</a>компании "Хабр Карьера"</em><p>В Москве и Питере мы нашли 2100 вакансий для тех, кто умеет программировать на Kotlin. Три четверти компаний ищут Android-разработчиков, остальные - бэкендеров и аналитиков данных. Зарплаты новичков варьируются от 30 до 100 тысяч рублей, мидлов - от 120 до 250 тысяч. Сеньоры и тимлиды могут получать до полумиллиона в месяц.</p>
51
<em>Инфографика:<a>блог</a>компании "Хабр Карьера"</em><p>В Москве и Питере мы нашли 2100 вакансий для тех, кто умеет программировать на Kotlin. Три четверти компаний ищут Android-разработчиков, остальные - бэкендеров и аналитиков данных. Зарплаты новичков варьируются от 30 до 100 тысяч рублей, мидлов - от 120 до 250 тысяч. Сеньоры и тимлиды могут получать до полумиллиона в месяц.</p>
52
<em>Скриншот: Skillbox Media</em><em>Скриншот: Skillbox Media</em><p>Если хорошо знаете английский, можете попробовать удалённо устроиться в американскую или европейскую компанию. Kotlin-разработчики там тоже нужны, и их труд довольно хорошо оплачивается: от 4000 долларов на старте.</p>
52
<em>Скриншот: Skillbox Media</em><em>Скриншот: Skillbox Media</em><p>Если хорошо знаете английский, можете попробовать удалённо устроиться в американскую или европейскую компанию. Kotlin-разработчики там тоже нужны, и их труд довольно хорошо оплачивается: от 4000 долларов на старте.</p>
53
<p>Но перед этим советуем хотя бы немного поработать на российском рынке - джунам без опыта получить должность за рубежом практически нереально.</p>
53
<p>Но перед этим советуем хотя бы немного поработать на российском рынке - джунам без опыта получить должность за рубежом практически нереально.</p>
54
<p>Kotlin - очень лаконичный язык, в нём нет формальных операций, ненужных проверок типов и других раздражающих вещей. Его легко выучить даже новичку, но сначала надо будет глубоко погрузиться в предмет.</p>
54
<p>Kotlin - очень лаконичный язык, в нём нет формальных операций, ненужных проверок типов и других раздражающих вещей. Его легко выучить даже новичку, но сначала надо будет глубоко погрузиться в предмет.</p>
55
<p>Начните изучать Kotlin c документации - на сайте JetBrains она доступна только на английском, но есть почти официальный<a>перевод</a>от сообщества. Можно почитать книгу "Kotlin в действии" от создателей языка, Дмитрия Жемерова и Светланы Исаковой. Там достаточно ясно и доходчиво изложены основы языка. А ещё в JetBrains Academy можно пройти бесплатный курс по <a>основам Kotlin</a> - правда, он на английском.</p>
55
<p>Начните изучать Kotlin c документации - на сайте JetBrains она доступна только на английском, но есть почти официальный<a>перевод</a>от сообщества. Можно почитать книгу "Kotlin в действии" от создателей языка, Дмитрия Жемерова и Светланы Исаковой. Там достаточно ясно и доходчиво изложены основы языка. А ещё в JetBrains Academy можно пройти бесплатный курс по <a>основам Kotlin</a> - правда, он на английском.</p>
56
<p>Бесплатные гайды по Kotlin есть и у Google: как для<a>новичков</a>, так и для тех, кто уже<a>умеет</a>программировать на Java. Они тоже подойдут только тем, кто хотя бы немного дружит с английским, - перевода в открытом доступе мы найти не смогли.</p>
56
<p>Бесплатные гайды по Kotlin есть и у Google: как для<a>новичков</a>, так и для тех, кто уже<a>умеет</a>программировать на Java. Они тоже подойдут только тем, кто хотя бы немного дружит с английским, - перевода в открытом доступе мы найти не смогли.</p>
57
<p>У программистов есть лайфхак, как учиться быстрее и интереснее. Нужно придумать свой пет-проект и начать его делать прямо во время учёбы. Это может быть любая несложная программа: например, таск-менеджер, парсер новостей или бот в Telegram. Плюс пет-проекта в том, что в него можно встроить сложную абстракцию и сразу посмотреть, как она работает. А ещё его можно положить в портфолио и потом показывать работодателям.</p>
57
<p>У программистов есть лайфхак, как учиться быстрее и интереснее. Нужно придумать свой пет-проект и начать его делать прямо во время учёбы. Это может быть любая несложная программа: например, таск-менеджер, парсер новостей или бот в Telegram. Плюс пет-проекта в том, что в него можно встроить сложную абстракцию и сразу посмотреть, как она работает. А ещё его можно положить в портфолио и потом показывать работодателям.</p>
58
<p>На первых порах для упражнений хорошо подойдёт онлайн-компилятор<a>Kotlin Playground</a>. Когда будете готовы писать приложение, понадобится инструмент посерьёзнее - например, среда разработки<a>Android Studio</a>от Google или<a>IntelliJ IDEA</a>от JetBrains.</p>
58
<p>На первых порах для упражнений хорошо подойдёт онлайн-компилятор<a>Kotlin Playground</a>. Когда будете готовы писать приложение, понадобится инструмент посерьёзнее - например, среда разработки<a>Android Studio</a>от Google или<a>IntelliJ IDEA</a>от JetBrains.</p>
59
<p>Если же интересно вкатиться именно в Android-разработку, можно выбрать курс от Skillbox "<a>Android-разработчик</a>". За 12 месяцев научим программировать на Kotlin, проектировать интерфейсы и создавать приложения на уровне Junior-специалиста. На выходе будет диплом - сможете написать свою соцсеть и положить её в портфолио.</p>
59
<p>Если же интересно вкатиться именно в Android-разработку, можно выбрать курс от Skillbox "<a>Android-разработчик</a>". За 12 месяцев научим программировать на Kotlin, проектировать интерфейсы и создавать приложения на уровне Junior-специалиста. На выходе будет диплом - сможете написать свою соцсеть и положить её в портфолио.</p>
60
<p>Требования работодателей к новичкам сильно зависят от ниши. Если метите в бэкенд, изучите фреймворки Kotlin для работы с сервером: например, Spring, Ktor и Vert.x. Плюсом к ним надо будет освоить протокол HTTP, форматы XML и JSON, научиться работать с SQL-запросами и одной из популярных баз данных - например, PostgreSQL.</p>
60
<p>Требования работодателей к новичкам сильно зависят от ниши. Если метите в бэкенд, изучите фреймворки Kotlin для работы с сервером: например, Spring, Ktor и Vert.x. Плюсом к ним надо будет освоить протокол HTTP, форматы XML и JSON, научиться работать с SQL-запросами и одной из популярных баз данных - например, PostgreSQL.</p>
61
<p>Для разработки под Android джуну нужно знать Android SDK, уметь работать в Git и Android Studio (и/или IntelliJ IDEA), понимать, как устроены корутины и многопоточность. Ещё с вас обязательно спросят и паттерны проектирования: MVC, MVP и MVVM.</p>
61
<p>Для разработки под Android джуну нужно знать Android SDK, уметь работать в Git и Android Studio (и/или IntelliJ IDEA), понимать, как устроены корутины и многопоточность. Ещё с вас обязательно спросят и паттерны проектирования: MVC, MVP и MVVM.</p>
62
<p>Если хотите научиться программировать, но чувствуете, что не хватит времени или терпения, поищите курсы с опытными преподавателями. Так вы точно не собьётесь с пути и уже сейчас начнёте работать в команде.</p>
62
<p>Если хотите научиться программировать, но чувствуете, что не хватит времени или терпения, поищите курсы с опытными преподавателями. Так вы точно не собьётесь с пути и уже сейчас начнёте работать в команде.</p>
63
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
63
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>