Путь до junior developer (java/kotlin). Сколько времени потребуется?
Здравствуйте, хочу услышать ваше мнение. Вкратце опишу ситуацию. Лет 10 назад изучал html, css, php, SQL, как хобби. Делал простые сайты на локальном сервере. Мне это нравилось, хоть и изучал всё это дело достаточно поверхностно. Потом из-за обстоятельств пришлось забросить. На данный момент из-за сезонности в работе сижу дома с детьми, а жена устроилась на работу, чтобы дать возможность выучить язык программирования и найти работу уже в IT сфере. Морально готовы к тому, что придется потратить не один месяц, но все же хочется понимать сколько времени может занять изучение Java, а в последующем и Kotlin, чтобы претендовать на позицию Android разработчика. Насколько наличие сертификата об окончании платных/бесплатных курсов помогает в поиске работы или работодателя в первую очередь интересуют знания кандидата? Понимаю, что это всё индивидуально, но интересно послушать ваше мнение. Возможно, поделитесь своей историей и дадите пару дельных советов. Спасибо вам!
- Вопрос задан более года назад
- 11009 просмотров
7 комментариев
Простой 7 комментариев
Я уверен, что в первую очередь интересуют знания, которые проверят на собеседовании.
Мне показалась Java простой. По крайней мере основы языка. Но я учил имея опыт на C#, а они похожи.
Высока вероятность, что на первой работе будешь поначалу править баги. Дадут тебе на первый взгляд гигантский проект и описание ошибки. Будешь должен разобраться как её починить. Хотя я на своей первой работе занимался разработкой проекта с нуля. Мне повезло найти такую работу. Туда и взяли из-за знания определённой технологии. То есть будь морально готов, что начнётся работа именно так — это огромный проект, непонятно как он устроен и т.д. Постепенно картина будет проясняться по мере работы с проектом. Обычно это скелет, на который уже навешивают новый функционал, добавляют новый код. Вот этот скелет будет поначалу сложно разглядеть (придётся пообщаться ни раз с тимлидом про устройство проекта). Скелет обычно почти не меняется. Важно знать это заранее.
Может повезти и на новой работе тебе дадут сделать какой-то простой функционал, а не править баги. Например, добавить новый экран с функционалом. Его нужно будет делать по аналогии с другими экранами. В проекте будет какая-то архитектура, вот ей и будешь следовать. То есть это не будет полная отсебятина «напишу как вижу, как хочу».
С полного нуля конечно будет очень не просто. И долго. Я бы рассчитывал на пол года самостоятельного обучения (каждый день).
Если хочешь с места в карьер (ради интереса), примерно представлять как может выглядеть реальный проект (только это сильно маленький и простой проект в видосах), то посмотри всю серию:
Я бы взял книгу по Java и в отрыве от Android сначала писал бы простые консольные приложения. Изучи сначала сам язык, все ООП фишки языка (интерфейсы, абстрактные классы, наследование, всякие переопределения методов, зачем вообще всё это нужно).
Напиши свою первую консольную программу в ООП стиле, которая будет что-то полезное делать, ну или имитировать полезную деятельность. Можно попробовать парсить папки на диске, искать там файлы определённого типа, читать в них текст, что-то оттуда доставать и куда-то складывать, что-то считать на основе этих данных. Например, HTML файлы или XML какие-нибудь. Результат записывать в какой-то другой файл или даже БД. Попробовать сломать работу программы, сделав с файлами и папками то, чего программа не ожидает (не со всеми, устанешь 🙂 ). Потом сделать многопоточный парсинг и запись результата (потренироваться работать с потоками, ускорить работу программы, если парсинг тяжёлый). Один поток собирает данные с диска в структуры данных в памяти, другие парсят эти данные и складывают куда-то результаты.
Тебе нужно понимать: работу с файлами, с коллекциями, понимание когда использовать ArrayList, а когда лучше HashSet и т.д. (там много другого всего, это просто пример). Чем все эти коллекции отличаются, должен будешь понимать когда какую коллекцию использовать. Какие-то простые алгоритмы можно для начала освоить. Многопоточность хотя бы на базовом уровне.
Когда понимаешь, что консольные программы ты уже пишешь не напрягаясь, после этого я бы полез в Android. Вот там тоже будет пласт знаний немалый, но после изучения основ ты будешь эти знания дополучать, сначала нужно будет научиться писать простые приложения.
И после всего этого ты устраиваешься на работу и офигеваешь от проекта, который тебе дают, чтобы починить в нём баги :D. Скорее всего, он будет оооочень большой и непонятный.
Как быстро и безболезненно перейти на Kotlin – книги, онлайн-курсы и лайфхаки
В 2018 году экосистема языка программирования Kotlin, в числе создателей которого — выпускники Университета ИТМО, росла беспрецедентными темпами. С января код на Kotlin редактировали приблизительно 1,5 миллиона пользователей — по сравнению с прошлым годом их число выросло более чем в два раза. Постоянно растет и база знаний, благодаря которой изучать и использовать язык становится проще. Вместе с Романом Елизаровым, руководителем команды библиотек языка Kotlin в компании JetBrains, тьютором факультета информационных технологий и программирования Университета ИТМО, разбираемся, какие ресурсы помогут быстро и эффективно освоить Kotlin.
Иллюстрация: Дмитрий Лисовский
Kotlin — современный статически типизированный объектно-ориентированный язык программирования, компилируемый для платформ Java и JavaScript. Являясь полностью совместимым с Java, Kotlin предоставляет дополнительные возможности, которые призваны упростить повседневную работу программиста и повысить его продуктивность. Как подчеркивают в JetBrains, язык сочетает в себе лаконичность, выразительность, производительность и простоту в изучении. Kotlin разрабатывается с 2010 года. Исходный код распространяется под свободной лицензией Apache 2. В 2017 году язык получил официальную поддержку на платформе Android. Как подчеркивается в блоге компании JetBrains, сегодня Kotlin дружит с Google Cloud Platform, Spring Framework и Gradle. Сообщество open source создает различные библиотеки, среди которых RxKotlin, mockito-kotlin, TornadoFX, Kodein и ΛRROW. На Kotlin переходят или планируют перейти такие проекты, как Square’s Okio и LibreOffice. Растет база знаний и на StackOverflow, а также в публичном Slack. Для того, чтобы сделать изучение Kotlin удобным, компания представляет обучающие ресурсы на официальном сайте языка программирования на английском языке, а также в блоге, доступном на шести языках, включая русский. Как проще всего изучить Kotlin Kotlin полностью совместим с Java (код на Java и Kotlin можно безболезненно смешивать в одном проекте). При этом, как отмечает Андрей Бреслав, руководитель проекта Kotlin в JetBrains, изначально язык задумывался как более простой и значительно удобный для разработчиков. Благодаря такой совместимости Java-программистам освоить Kotlin не составит труда, добавляет Роман Елизаров. По наблюдениям JetBrains, более половины тех, кто сейчас переходит на Kotlin — Android-разработчики, которые программировали на Java.
«Kotlin изначально создавался именно так, чтобы Java-программисту было легко его изучить. То есть отличия от Java были сделаны только там, где это необходимо, в остальных случаях все реализовано похожим образом. И практика показывает, что так оно и есть: для опытных Java-программистов изучение Kotlin не представляет большого труда — они изучают Kotlin от двух дней до двух недель», — говорит Роман Елизаров.
В случае с разработчиками, которые работают с другими языками, освоение Kotlin не отличается от изучения любого другого нового для него языка. В целом, по разных подсчетам, в мире существует более двух тысяч разных языков программирования. Для старых языков постоянно выходят обновления, а также появляются новые языки. Различные компании ежегодно составляют рейтинги наиболее популярных языков программирования (например, здесь можно посмотреть январский рейтинг от TIOBE). Несмотря на то, что Java пока удерживает лидерство, в целом расстановка сил в первой двадцатке регулярно меняется. Меняются и технологии, применяемые для создания различных программных продуктов. Именно поэтому сегодня, чтобы оставаться востребованным, программисту необходимо постоянно отслеживать появление новых инструментов и технологий и быстро учиться. По словам Романа Елизарова, профессиональный программист сегодня активно владеет как минимум тремя языками программирования, при этом в пассивном запасе у него остается еще около десятка языков. Как начать изучать Kotlin Тем, кто только начинает освоение Kotlin, лучше прежде всего изучить официальные ресурсы, которые выпускает команда разработчиков языка. С полной библиотекой материалов можно ознакомиться на официальном сайте Kotlin. Для новичков представлен широкий выбор ресурсов — от онлайн-курсов и книг до ссылок на актуальные блоги с разбором конкретных задач. Такое многообразие дает возможность изучать язык удобным и наиболее эффективным для каждого разработчика способом. Книги «Kotlin in Action» (книга также доступна на русском языке) Авторы: Дмитрий Жемеров и Светлана Исакова Как отмечает Дмитрий Жемеров, книга предназначена для программистов с опытом разработки на Java и рассказывает о всех возможностях языка Kotlin для разработки под JVM и Android. В ней представлен обзор особенностей языка, а также раскрываются его наиболее интересные отличительные стороны, такие как поддержка создания высокоуровневых абстракций и предметно-ориентированных языков (Domain-Specific Languages). Также уделено внимание взаимодействию Kotlin с Java и внедрению его в существующие проекты. «Atomic Kotlin» Авторы: Брюс Эккель и Светлана Исакова (книга находится в раннем доступе, ознакомиться с содержанием можно здесь.) «Kotlin for Android Developers» Автор: Антонио Лейва (Antonio Leiva) Книга рекомендована Google и JetBrains. Материал для обучения построен на проведении параллелей между Kotlin и Java. Как подчеркивает автор, разработчики смогут на конкретных примерах увидеть, в чем различие между языками и какие конкретно возможности Kotlin помогут ускорить работу. Онлайн-курсы 1) Курс «Introduction to Kotlin Programming» Язык: Английский Курс представляет собой простое введение в язык программирования. Как отмечает автор курса, эксперт-преподаватель Хади Харири (Hadi Hariri), ключевой особенностью Kotlin является его сходство с Java, C # и JavaScript, поэтому если вы знакомы с любым из этих языков, то сможете пройти этот курс без трудностей и начать понимать Kotlin в первый же день. 2) Курс «Введение в язык Kotlin» на Coursera Язык: Русский Курс создан при поддержке компании JetBrains и рассчитан на студентов, только начинающих свое знакомство с программированием и почти незнакомых с Java. Авторы курса отмечают, что после его прохождения слушатели получат достаточно знаний для того, чтобы решать с помощью языка Kotlin простые и практически полезные задачи, а также в дальнейшем изучать программирование. 3) Курс «Kotlin for Java Developers» Светланы Исаковой и Андрея Бреслава на Coursera Язык: Английский Курс включает модули как по базовому обзору языка, так и обсуждение ключевых кейсов, касающихся взаимодействия с Java. Авторы курса рассматривают базовый синтаксис, функциональное программирование с Kotlin, объектно-ориентированное программирование с Kotlin, возможности стандартной библиотеки Kotlin и совместимость с Java.
На практике Для тех, кто уже программирует на Java и кому нужно быстро на практике понять, что представляет из себя Kotlin, подойдет изучение раздела Reference на официальном сайте Kotlin. Здесь можно быстро пролистать интересующие разделы и составить впечатление о языке. Также можно попробовать изучить язык на практических примерах с помощью Kotlin Koans. Это серия упражнений, призванных познакомить разработчика с синтаксисом Kotlin. Здесь доступны как простые, так и более сложные задания. С Kotlin Koans можно работать тремя способами: онлайн; решать задачи прямо в IntelliJ IDEA или Android Studio, установив плагин EduTools и выбрав курс Kotlin Koans; а также клонировав проект на GitHub (в этом случае можно открыть этот проект в IntelliJ IDEA или работать с ним из командной строки, используя любимый редактор). Добавим, что в новой мини-веб-IDE play.kotl.in есть коаны, примеры и возможность создавать встраиваемые фрагменты кода, плагин EduTools помогает изучать Kotlin прямо в IDE. Вебинары Для программистов всех уровней отличным отправным пунктом послужат вебинары по Kotlin 1.3. Записи всех семинаров с KotlinConf 2018 доступны на JetBrains TV. Общение с комьюнити Помимо официальных ресурсов, в Сети можно встретить множество других источников, где размещены материалы по Kotlin. Многие из них представлены на русском языке. Как подчеркивает Роман Елизаров, Kotlin — открытый язык, поэтому любой разработчик может предложить на GitHub свои дополнения и исправления. Здесь же, на GitHub, можно ознакомиться с гайдом для начинающих изучать Kotlin.
Кроме того, более опытные разработчики всегда помогут новичкам и подскажут решение в случае специфической задачи, именно поэтому взаимодействие с комьюнити также очень важно.
«Сторонние ресурсы стоит использовать больше как источник вдохновения, — говорит Роман Елизаров. — Конечно, новичку лучше начать освоение с официальных источников: официального сайта, изучения документации, книг и так далее. Здесь описывается в целом, как все работает, но, возможно, нет ответов на какие-то специфические вопросы. Для таких случаев есть комьюнити, блоги, где пользователи работают с какими-то специфичными проблемами. Всегда найдутся опытные программисты на Kotlin, которые помогут и, например, укажут на соответствующее место в документации. В блогах также помогут новичкам, дадут советы по тому, какой конкретный способ лучше применить в конкретной ситуации. В своем блоге, например, я обычно пишу какую-то новую информацию, поясняю, даю дополнительный материал».
Полезные ссылки на официальные источники, сообщества в социальных сетях, книги, библиотеки и многое другое также можно найти здесь. Туториалы и практические советы по Kotlin можно почитать по этой ссылке. Kotlin в Университете ИТМО Кроме того, сотрудники JetBrains читают отдельные курсы по Kotlin уже в нескольких вузах Петербурга, отмечает Роман Елизаров. Язык программирования преподается в рамках отдельных образовательных программ и для студентов факультета информационных технологий и программирования Университета ИТМО. Так как Kotlin с 2017 года является официальным языком для Android, сейчас язык преподается именно в контексте мобильной разработки.
Язык программирования Kotlin: что это, где применяется и за что его любят разработчики
Рассказываем про Kotlin — молодой язык родом из Питера, который вовсю теснит Java в мобильной и бэкенд-разработке.
Иллюстрация: Jeen Adams / Nikolai Prokofiev / Wikimedia Commons / Colowgee для Skillbox Media
Максим Сафронов
Автор, редактор, IT-журналист. Рассказывает о новых технологиях, цифровых профессиях и полезных инструментах для разработчиков. Любит играть на электрогитаре и программировать на Swift.
Язык Kotlin вот уже третий год стабильно числится в любимчиках у программистов согласно опросу Stack Overflow. Его официально поддерживает Google, используют Jira и Adobe, а разработчики топовых приложений для Android переписывают на Kotlin свои продукты. Разбираемся, чем хорош этот язык, какие в нём есть фишки и сколько зарабатывают программисты.
Что такое Kotlin
Kotlin — это язык программирования, созданный в компании JetBrains. Его разработали в 2011 году на замену Java, который в компании считали чересчур многословным. Новый язык получился на 40% компактнее предшественника, что помогло ускорить работу над основным продуктом JetBrains — средой разработки IntelliJ IDEA. При этом Kotlin полностью совместим с Java, потому что запускается на его виртуальной машине (JVM).
Если же давать формальное определение, Kotlin — это объектно-ориентированный язык со статической типизацией. Что это значит?
Объектно-ориентированными называют языки, в которых все операции происходят с объектами — блоками кода, куда можно «складывать» несколько значений. Объектом может быть любая сущность с определённым набором характеристик. Например, персонаж в онлайн-игре или стикер со Спанч Бобом в Telegram. Все объекты проектируются по специальным шаблонам, которые называются классами.
Статическая типизация означает, что типы переменных задаются разработчиком до выполнения программы. Если вы объявили целочисленную переменную, текст в неё поместить уже не получится — компилятор сразу укажет на ошибку. Это замедляет разработку на начальном этапе, но добавляет надёжности.
Если хотите больше узнать про типизацию и её виды, почитайте одну из наших предыдущих статей — там всё просто и доступно написано, сразу разберётесь.
Кстати, корни теперь уже международной JetBrains — в Санкт-Петербурге. А свой язык они назвали в честь острова в Финском заливе. Помимо намёка на Питер, такое название ещё и подчёркивает связь с Java (и Ява, и Котлин — острова).
Что можно писать на Kotlin
Потенциально Kotlin можно использовать везде, где работает Java — а это и бэкенд, и веб, и десктоп, и куча других задач. Как говорит Андрей Бреслав, создатель языка, «Kotlin — это язык для всех платформ». И в этом большая доля правды.
Тем не менее у каждого языка есть своя ниша — та сфера, где его используют больше всего программистов. У Kotlin пока их две — это серверная и мобильная разработка. Хотя его всё чаще можно встретить и в других областях — например, в науке и Data Science.
Давайте рассмотрим все сферы по порядку.
Приложения для Android
До 2017 года официальным языком для Android-приложений был Java, но потом Google объявил свою мобильную ОС Kotlin-first:
- частично — из-за долгого суда с Oracle из-за использования некоторых механик Java;
- частично — потому, что разработчикам понравился новый язык, они стали стихийно писать на нём мобильные приложения и регулярно теребить корпорацию: «Вы же будете поддерживать Kotlin? Ну скажите это официально! Он хороший!»
Сегодня на Kotlin написано 80% самых скачиваемых программ в Play Market, включая приложения от Netflix, Twitter, Reddit и самого Google.
Серверные приложения
Благодаря совместимости с JVM, Kotlin можно запустить на любых серверах, где работает Java. Поэтому его часто используют для создания бэкенда — той части систем, которая выполняется на сервере и не видна обычному пользователю. Например, на Kotlin уже работают облачные сервисы Jira и некоторые продукты Adobe.
Эта ниша — одна из приоритетных для команды Kotlin. И несмотря на популярность Kotlin в мобильной разработке, DevRel-команды JetBrains говорят о своём языке исключительно в контексте серверной разработки, вообще не упоминая мобилку.
Веб-приложения (фронтенд)
Помимо бэкенда, есть ещё фронтенд — «фасадная» сторона интернета. Это разные кнопки, выпадающие меню и окошки, с которыми взаимодействуют пользователи. Почти весь фронтенд пишется на одном языке — JavaScript.
А Kotlin как раз умеет компилироваться в JavaScript — и такую его версию можно использовать для создания фронтенда. То есть на нём вполне реально написать и логику, и интерфейс — веб-приложение целиком.
Кросс-платформенные мобильные приложения
Допустим, нам нужно написать мобильное приложение для аренды самокатов. Оно должно одинаково хорошо работать и на айфонах, и на смартфонах под управлением Android.
В таком случае нам может помочь кросс-платформенная разработка — это когда мы пишем код один раз, а потом адаптируем под несколько систем. В Kotlin есть технология, которая позволяет так делать, — называется Multiplatform. Её используют уже довольно много компаний — например, тот же «Яндекс».
Наука и большие данные
Если вы работали с дата-сайенс, то наверняка знаете про Jupyter Notebook. Это среда разработки, которая может исполнять код по кусочкам и мгновенно давать результат. Её часто используют в машинном обучении, статистике и визуализации данных. Раньше в Jupyter писали только на Python, Ruby и R, но теперь можно и на Kotlin. Достаточно подключить пару библиотек, и можно делать свою Siri или Алису.
А ещё Kotlin активно осваивают учёные — например, физики и математики. Сейчас достаточно быстро развивается специальная библиотека KMath, которая приносит в Kotlin продвинутую математику и обеспечивает интеграцию с тем же TensorFlow.
Kotlin vs Java
Как мы писали выше, Java и Kotlin — функционально совместимые языки. Они действительно очень похожи: оба статически типизированы, поддерживают ООП и работают на JVM. В некоторых средах разработки их функции и классы даже можно смешивать. Теперь давайте посмотрим, чем эти языки отличаются.
Читаемость
Когда язык Java только появился, он был гораздо проще и лаконичнее конкурентов — тех же C и C++. Да у него и сейчас достаточно понятный и логичный синтаксис — правда, по современным меркам этот язык уже кажется многословным и несколько старомодным. Это и неудивительно: в Java всё вертится вокруг обратной совместимости, которая так важна для энтерпрайза, в котором «кофейный» язык является стандартом.
Создатели же Kotlin изначально делали ставку на компактность: чем меньше ненужного кода, тем проще работать программисту и тем быстрее идёт разработка. В итоге одной строкой в Kotlin можно описать то, на что в Java уйдёт восемнадцать. Сравните, как по-разному выглядят классы данных на двух языках.
Создание класса Person на Java:
Допустим, нам нужно сделать приложение — электронный дневник, чтобы ученик мог зайти в него, узнать свои оценки и посмотреть, что задали.
Если загружать с сервера все данные последовательно, то приложение будет открываться очень долго. Вместо этого ненужные пока данные (например, новости), можно вынести в корутину и поставить их подгрузку на паузу, пока грузится основной интерфейс.
Корутины позволяют расставить приоритеты в работе программы. Этот механизм напоминает многопоточность, но тратит меньше ресурсов процессора — за что их и ценят, например, в мобильной разработке.
Функции-расширения
В языках программирования с поддержкой ООП все объекты строятся по специальным шаблонам, которые называются классами. Они содержат базовые сведения о том, как должен выглядеть и работать объект.
Иногда по ходу исполнения программы нам нужно расширить класс и добавить в него новые параметры. В Kotlin это можно легко и изящно сделать с помощью специальных функций-расширений. Выглядит это так:
Что по деньгам
Программировать на Kotlin пока умеет не так много разработчиков, поэтому компании готовы предлагать неплохие деньги даже новичкам. В глобальном списке лучше всего оплачиваемых языков Kotlin находится примерно посередине, обгоняя JavaScript, SQL, PHP и Java, но уступая лидерам: Perl, Go и Scala (данные Stack Overflow).
На российском рынке Kotlin в топе по зарплатам. По данным «Хабр Карьеры», за 2021 год средний оклад котлинистов вырос на 13% — со 160 до 180 тысяч рублей в месяц.
В Москве и Питере мы нашли 2100 вакансий для тех, кто умеет программировать на Kotlin. Три четверти компаний ищут Android-разработчиков, остальные — бэкендеров и аналитиков данных. Зарплаты новичков варьируются от 30 до 100 тысяч рублей, мидлов — от 120 до 250 тысяч. Сеньоры и тимлиды могут получать до полумиллиона в месяц.
Если хорошо знаете английский, можете попробовать удалённо устроиться в американскую или европейскую компанию. Kotlin-разработчики там тоже нужны, и их труд довольно хорошо оплачивается: от 4000 долларов на старте.
Но перед этим советуем хотя бы немного поработать на российском рынке — джунам без опыта получить должность за рубежом практически нереально.
С чего начать?
Kotlin — очень лаконичный язык, в нём нет формальных операций, ненужных проверок типов и других раздражающих вещей. Его легко выучить даже новичку, но сначала надо будет глубоко погрузиться в предмет.
Начните изучать Kotlin c документации — на сайте JetBrains она доступна только на английском, но есть почти официальный перевод от сообщества. Можно почитать книгу «Kotlin в действии» от создателей языка, Дмитрия Жемерова и Светланы Исаковой. Там достаточно ясно и доходчиво изложены основы языка. А ещё в JetBrains Academy можно пройти бесплатный курс по основам Kotlin — правда, он на английском.
Бесплатные гайды по Kotlin есть и у Google: как для новичков, так и для тех, кто уже умеет программировать на Java. Они тоже подойдут только тем, кто хотя бы немного дружит с английским, — перевода в открытом доступе мы найти не смогли.
У программистов есть лайфхак, как учиться быстрее и интереснее. Нужно придумать свой пет-проект и начать его делать прямо во время учёбы. Это может быть любая несложная программа: например, таск-менеджер, парсер новостей или бот в Telegram. Плюс пет-проекта в том, что в него можно встроить сложную абстракцию и сразу посмотреть, как она работает. А ещё его можно положить в портфолио и потом показывать работодателям.
На первых порах для упражнений хорошо подойдёт онлайн-компилятор Kotlin Playground. Когда будете готовы писать приложение, понадобится инструмент посерьёзнее — например, среда разработки Android Studio от Google или IntelliJ IDEA от JetBrains.
Если же интересно вкатиться именно в Android-разработку, можно выбрать курс от Skillbox «Android-разработчик». За 12 месяцев научим программировать на Kotlin, проектировать интерфейсы и создавать приложения на уровне Junior-специалиста. На выходе будет диплом — сможете написать свою соцсеть и положить её в портфолио.
Что нужно новичку
Требования работодателей к новичкам сильно зависят от ниши. Если метите в бэкенд, изучите фреймворки Kotlin для работы с сервером: например, Spring, Ktor и Vert.x. Плюсом к ним надо будет освоить протокол HTTP, форматы XML и JSON, научиться работать с SQL-запросами и одной из популярных баз данных — например, PostgreSQL.
Для разработки под Android джуну нужно знать Android SDK, уметь работать в Git и Android Studio (и/или IntelliJ IDEA), понимать, как устроены корутины и многопоточность. Ещё с вас обязательно спросят и паттерны проектирования: MVC, MVP и MVVM.
Если хотите научиться программировать, но чувствуете, что не хватит времени или терпения, поищите курсы с опытными преподавателями. Так вы точно не собьётесь с пути и уже сейчас начнёте работать в команде.
Читайте также:
- In Kotlin we trust: как устроено комьюнити перспективного языка программирования
- Как разработчик на C++ превратил свой пет-проект в прибыльный стартап
- Docker: обзор экосистемы
Почему вам стоит выучить Kotlin?
Я Анна Жаркова, Senior iOS/Android разработчик компании Usetech. В статье хочу привести аргументы в пользу того, чтобы выучить Kotlin.
Анна Жаркова
Senior iOS/Android разработчик компании Usetech
Всем привет! Я Анна Жаркова, Senior iOS/Android разработчик компании Usetech, архитектор мобильных приложений и тимлид. В коммерческой разработке более 6 лет, в мобильной 8 лет. Пишу на Swift/Objective-C под iOS, Java/Kotlin под Android, укрощаю Xamarin (как Xamarin iOS/Android, так и Xamarin Forms).
Современному разработчику приложений, в том числе и мобильных, доступен широкий выбор языков и технологий практически на все вкусы и случаи жизни. Одни языки рождаются и становятся популярными, другие, наоборот, уходят в тень. Одни выигрывают за счёт своей необычности, другие — за счёт достоинств, новых версий и широкой используемости. Но опять же, у какого какие потребности. В этой статье я хочу привести весомые аргументы в пользу того, чтобы выучить Kotlin.
Итак, Кotlin — это …
Современный, лаконичный и безопасный язык разработки от компании JetBrains, работающий поверх Java Virtual Machine (JVM). При его создании компания руководствовалась собственной необходимостью, и первоначально это была технология для внутренней работы. Уже в 2011 году язык был представлен общественности, а в 2012 стал открыт исходных код. Так что, извините, iOS -разработчики, но в споре, что появилось раньше, и кто кем вдохновлялся, Kotlin или Swift, побеждает Kotlin.
Это статически-типизированный, объекто-ориентированный язык программирования. Среди его достоинств создатели отмечают прагматичность и гибкость. Язык одинаково хорош как для начинающих программистов, так и опытных.
Язык активно развивается. Текущая версия 1.5.20.
Также стоит отметить выразительность и краткость Kotlin:
В отличие от своего предшественника, Java, Kotlin более безопасен. В семантику языка заложены принципы, которые предотвращают целый ряд очень распространённых ошибок, которые обычно случаются в момент исполнения программы. Например, Kotlin обеспечивает механизм Null safety за счёт поддержки Nullable переменных и безопасной проверки с помощью распаковки опционального значения. Также Kotlin поддерживает безопасную проверку и приведение типов:
И да, Kotlin полностью совместим с Java. Вы можете использовать как существующую библиотеку, написанную под JVM, так и постепенно мигрировать с приложения, написанного на Java. Также IDE Intelij Idea и Android Studio поддерживают автоматическую конвертацию Java кода в Kotlin.
Также у Kotlin есть поддержка уникального механизма структурированного параллелизма (structured concurrency). Корутины Kotlin представляют собой простой и удобный в использовании способ организации работы с многопоточностью в приложении. Внутри Kotlin, работающего поверх JVM, остается тот же механизм работы с потоками и асинхронностью, что и в Java, но благодаря Kotlin Coroutines нам не нужно работать с ними напрямую, и мы получаем довольно легковесное во всех смыслах решение:
Складывается впечатление, что Kotlin — это Java, только лучше и удобнее, с богатыми синтаксическим возможностями. Но это не совсем так. Подробнее о различиях между языками смотрите здесь. В принципе парадигма использования по желанию либо Kotlin, либо Java, либо оба языка вместе, имеет место быть.
Основной язык разработки мобильных приложений под Android
В 2017 году на Google I/O анонсировали поддержку языка Kotlin для разработки приложений под Android с помощью IDE Android Studio. Спустя 2 года на I/O 2019 Google объявили Kotlin приоритетным языком для разработки Android приложений (Kotlin-First) и рекомендовали начинать новые проекты уже на Kotlin: «Меньше кода для вас, меньше кода писать, проще тестировать и поддерживать». Также Kotlin-First означает приоритетность выпуска новых API и библиотек (Jetpack API) именно на Kotlin.
Согласно статистике Google (I/O 2021), Kotlin сейчас и самый популярный язык разработки. Причем не только самих приложений под Android, но и различных библиотек и решений, в том числе серверных и кроссплатформенных (см. ниже). 1000 топовых (по установкам) приложений из Google Play содержат 80% кода на Kotlin. 60% всех разработчиков Android пишут свой код именно на Kotlin.
Больше 70 приложений самой компании Google написаны на Kotlin. Сервисы Maps, Places, Firebase и другие давно используют Kotlin. Также Google отмечают, что благодаря их совместной работе с JetBrains над компилятором, разработка на Kotlin становится быстрее и производительнее, чем на Java.
Итак, какие же расширения (KTX) и библиотеки Kotlin облегчают и улучшают разработку библиотек и приложений:
- Kotlin Symbol Processing (KSP), мощный и в то же время простой API, который напрямую анализирует код, написанный на Kotlin, и способен работать в 2 раза быстрее с некоторыми библиотеками, например, Room. Также он поддерживается кроссплатформенно.
- Android Jetpack Compose;
- Android Jetpack API;
- Kotlin Coroutines, Flows, DataStore, Paging….
- Kotlin Serialize;
- Android Lifecycle KTX;
- И многие другие.
Больше информации смотрите в видео State of Kotlin.
В общем, если вы Android-разработчик, то советую выучить Kotlin.
Технология кроссплатформенной разработки Kotlin Multiplatform
Kotlin можно использовать не только для Android, но и для других платформ, а также кроссплатформенно.
Kotlin multiplatform — это SDK для кросс-платформенной-разработки от компании JetBrains. Данная технология позволяет писать модуль общего расшариваемого кода на Kotlin, компилировать с помощью JVM в байт-код для Android и LLVM в байт-код под iOS и подключать как библиотеку к нативным приложениям.
Так как общий код может включать в себя практически всё, кроме UI и особо специфического платформенного программного кода, то использовать KMM позволяет ускорить и упростить параллельную разработку приложения под обе платформы.
Помимо блока common кода модуль содержит платформенные модули, позволяющие дополнять реализацию функционала для поддержки используемых платформ.
Для каждой из поддерживаемых платформ (это не только iOS, Android, но и JS, Windows, MacOS и тому подобное) Kotlin Multiplatform использует свою версию языка, адаптированную под индивидуальные особенности платформы:
Хотя плагин KMM (Kotlin Multiplatform Mobile) и находится еще в стадии альфа (то есть в работе), он уже готов к промышленному использованию при разработке большинства приложений. Многие компании уже активно разрабатывают свои продукты на Kotlin Multiplatform.
Для разработки эффективных KMM приложений существует много готовых библиотек и фреймворков. Среди них Ktor (сетевой клиент), SqlDelight (хранилище), Coroutines, Serialization, Moko (решения от IceRock), решения от компании Badoo и многие другие.
И не только мобильные приложения.
Технологии Kotlin позволяют разрабатывать не только мобильные приложения. Kotlin JS предназначен для веба. В разработке можно использовать как решения из экосистемы языка, так и готовые библиотеки для JS, JavaScript, TypeScript.
Одним из наиболее интересных фреймворков, работающих на Kotlin JS, — Compose for Web. Специальная версия Jetpack Compose для веб-разработки. Подробнее со списком поддерживаемых решений можете ознакомиться здесь.
Также язык подходит и для бэкенда. Такие фреймворки, как Spring, уже давно активно его поддерживают.
В общем, если вам нужен:
- современный мощный инструмент с простым и понятным синтаксисом,
- технология для написания приложения под Android,
- эффективный инструмент для кроссплатформенной разработки;
- вы хотите писать бэкенд и фронтэнд на одном языке,
то вас стоит выучить Kotlin.