FAQ для Telegram-чата @kotlin_start.
Если вы начинающий — обратите внимание на официальную документацию. Она хорошо написана и позволяет решить абсолютное большинство вопросов, возникающих при изучении языка. Как правило, на каждой странице есть редактируемые примеры кода, которые можно запустить прямо в браузере.
Краткий обзор синтаксиса языка и полезных идиом.
Про использование Java-библиотек.
Очень краткий обзор языка от Google.
Базового английского (на крайний случай Google Translate) достаточно для понимания документации. Но если русскоязычные материалы предпочтительнее — есть неофициальные переводы. Имейте в виду, что в отдельных случаях переводы могут быть устаревшими. Сверяйтесь с официальным сайтом языка.
Большой список книг по Kotlin есть на сайте.
Нужна ли мне книга? Скорее всего, нет. В большинстве случаев документации будет хватать.
Но я хочу именно книгу — какую выбрать? Если есть опыт на Java — берите Kotlin in Action.
А если у меня нет опыта программирования? Скоро выйдет Atomic Kotlin. Книга есть в раннем доступе в виде курса на Stepik. Часть материалов доступна бесплатно.
Для Android'a? Android Development with Kotlin или Kotlin for Android Developers.
Kotlin:
- Для тех, кто только начинает программировать — Введение в язык Котлин на Coursera.
- Для тех, кто знает Java — Kotlin для Java разработчиков на Coursera.
- Kotlin Bootcamp for Programmers — Kotlin курс от Google.
Android:
- Developing Android Apps with Kotlin — бесплатный курс для начинающих про разработку Android-приложений с использованием Kotlin.
- Android Kotlin Fundamentals — большой codelab по использованию Kotlin в контексте Android-разработки.
- Refactoring to Kotlin — часовой codelab про рефакторинг существующего приложения.
- Using Kotlin Coroutines in your Android App — часовой codelab о том, где и как использовать корутины в приложении.
(посмотрите также на раздел "Курсы")
Установив Kotlin Educational Plugin, вы сможете ознакомиться с языком в интерактивном режиме.
Маленькие интерактивные примеры с обьяснениями можно также попробовать на странице "Kotlin by Example".
Задачки, называемые Kotlin Koans, также доступны онлайн. Отличный инструмент для продолжения знакомства с языком.
Для написания небольших фрагментов кода иногда удобно использовать Scratch files в IDE или REPL в консоли.
Да. Kotlin вполне подходит как первый язык. Знание JVM/Java не обязательно на начальных этапах, но, вероятно, (если вы планируете использовать Kotlin на JVM-платформе) потребуется позже.
Например, если вы собираетесь писать приложения для Android — готовьтесь читать Java-код время от времени и очень часто использовать Java-библиотеки. Инвестируйте хотя бы немного времени в понимание Java и основ JVM как освоите базу языка Kotlin.
Примите во внимание, что хотя вы и будете работать со стандартной библиотекой Kotlin'a, на JVM-платформе (Android, JavaFx, backend) под капотом иногда используются Java-классы (например, конкретные реализации Java-коллекций скрыты за Kotlin-интерфейсами).
Знание и понимание целевой платформы полезно в целом, но не обязательно на начальных этапах.
Да. Конвенции по оформлению кода есть на сайте. Для Android'a также тут.
Знаете, как написать нужный вам код на Java? Используйте конвертацию кода в IDEA и доведите до идиоматического Kotlin-кода вручную.
Хотите показать код другим? Сократите его до маленького примера, демонстрирующего то, с чем возникли затруднения, и загрузите на play.kotlinlang.org.
Убедитесь, что вы просмотрели соответсвующий раздел в документации (см. выше).
Все еще непонятно? Спросить можно:
- на форуме.
- в Slack-чате.
- в Telegram-чате @kotlin_start. УЧТИТЕ, что чат посвящен языку Kotlin и вопросы по алгоритмам или основам программирования (не языка) не соответствую тематике чата. Подобное поведения будет рассматриваться как злоупотребление помощью и, скорее всего, вопросы останутся неотвеченными.
Пример неуместных вопросов для Kotlin-чата:
- Как мне создать singleton в Kotlin? (прямой ответ есть в документации)
- Как мне реализовать бинарный поиск? (вопрос слишком общий или не соответствует тематике чата)
- Как сделать Adapter в RecyclerView на Kotlin? (так же, как и в Java. Чат для Android-вопросов есть тут: @android_ru)