Comment apprendre Kotlin? IDE et navigateur, livres et tutoriels, débutants et dev Java
Tags: french, kotlin, beginners
Published: 2020-11-26 14:24:25

_Kotlin m'enthousiasme parce qu'il est dans le diagramme de Venn des languages bien conçus qui sont également un bon choix en pratique grâce à son outillage, son pragmatisme et la taille de sa communauté._

_Kotlin est connu principalement aujourd'hui pour la [programmation Backend](https://kotlinlang.org/docs/reference/server-overview.html) et [Android](https://kotlinlang.org/docs/reference/android-overview.html). Mais les gens plus aventureux l'utilisent dans plein d'autres domaines: [scripts Kotlin dans Gradle](https://gradle.org/kotlin/), [Data Science](https://kotlinlang.org/docs/reference/data-science-overview.html), [partage de code entre iOS et Android](https://kotlinlang.org/docs/reference/multiplatform.html), [sur le front-end](https://kotlinlang.org/docs/reference/js-overview.html) - voir par exemple [JetBrains Space](https://blog.jetbrains.com/blog/2019/12/05/welcome-to-space/), [Kotlin Native](https://kotlinlang.org/docs/reference/native-overview.html) pour applications en ligne de commande, ..._

_Mais commençons par le commencement._

_Si vous êtes intéressés par Kotlin, la première question que vous vous posez est certainement:_

> Quelle est la manière la plus efficace d'apprendre Kotlin?

_J'ai rencontré Sebastian Aigner à KotlinConf 2019 où il a présenté l'ensemble des options qui s'offrent à vous._

_Du coup je me suis dit que j'allais l'interviewer pour vous._

# Interview avec Sebastian Aigner [JetBrains]

- [Qui êtes vous?](#qui-êtes-vous)
- [Que propose JetBrains en terme de contenus éducatifs?](#que-propose-jetbrains-en-terme-de-contenus-éducatifs)
- [Si je suis nouveau à la programmation](#si-je-suis-nouveau-à-la-programmation)
- [Si je suis un dev Java](#si-je-suis-un-dev-java)
- [Si je veux pratiquer Kotlin dans l'IDE](#si-je-veux-pratiquer-kotlin-dans-lide)
- [Si je suis un prof ou un mainteneur de bibliothèque Kotlin](#si-je-suis-un-prof-ou-un-mainteneur-de-bibliothèque-kotlin)
- [Comment vous contacter?](#comment-vous-contacter)
- [Bonus: Je connais Kotlin, comment explorer son écosystème?](#bonus-je-connais-kotlin-comment-explorer-son-écosystème)

## Qui êtes vous?

_Sebastian, pour commencer, pouvez vous dire quelques mots sur qui vous êtes?_

Bonjour et merci pour cet interview!

Je suis Sebastian et je travaille comme Developer Advocate chez JetBrains où je me focalise sur Kotlin et les projets éducatifs de JetBrains.

Sur la partie Kotlin, mon sujet de prédilection est de pousser l'utilisation de Kotlin sur les applis web, via le compilateur Kotlin vers JavaScript. 

Sur la partie éducation, ma mission est de permettre aux éducateurs et aux élèves d'apprendre Kotlin plus facilement en développant les outils qui leur facilitent la tâche.

## Que propose JetBrains en terme de contenus éducatifs?

_Vous travaillez à JetBrains sur les contenus éducatifs. Pouvez vous expliquer brièvement en quoi cela consiste?_

Je ne travaille pas stricto sensu sur les contenus éducatifs, mais j'aide à collecter le feedback sur ces outils, à planifier les fonctionnalités, et à aider autant les profs que les élèves à s'approprier nos outils.

Notre mission est de rendre la vie plus simple de ceux qui veulent enseigner ou apprendre la programmation.

Nous faisons cela principalement en construisant des outils pour tout ce monde - pour les élèves, nous voulons rendre intuitif de suivre des cours complets dans le même environnement que vous utiliserez plus tard en tant que professionnel - un environnement intégré de programmation professionnel.

Pour les éducateurs, nous cherchons à les aider à créer des expériences d'apprentissages riches et interactives, qui collent au plus près des problématiques dont les développeurs logiciels font l'expérience dans leur vie quotidienne.

## Si je suis nouveau à la programmation

_Disons que je sois un débutant complet à la programmation et que je décide d'apprendre Kotlin. Comment puis-je m'y prendre? Y a t'il des contenus adaptés?_

Nous pensons que Kotlin est un bon premier langage pour démarrer en programmation! Le livre que nous recommandons à tous les débutants est le livre **Atomic Kotlin** de Bruce Eckel et Stevlana Isakova. Le livre n'a aucun pré-requis en terme de connaissance en programmation. Vous pouvez vous renseignez sur le livre à l'adresse https://www.atomickotlin.com/

[![](https://www.atomickotlin.com/images/BookCover.png)](https://www.atomickotlin.com/)


Certains ont du mal à conserver la motivation pour apprendre avec seulement un livre.

Pour ces gens là nous avons une seconde approche:

**Hyperskill de JetBrains Academy** est notre effort pour permettre aux gens d'apprendre la programmation dans un environnement de type projet. Par là je veux dire que vous n'écoutez pas des exposés roboratifs sans rien faire derrière. Chaque lesson a un objectif d'apprentissage.

Nous faisons cela en personnalisant votre curriculum sur la base d'un catalogues de projets dont vous sélectionnez les plus pertinents pour vous.

Nous avons annoncé le support de Kotlin dans Hyperskill à KotlinConf 2019. Vous pouvez tester cela gratuitement tant que le programme est en EAP (Early Access Project) à l'adresse https://hyperskill.org/

<img width="1006" alt="Screen Shot 2019-12-15 at 11 06 31 AM" src="https://user-images.githubusercontent.com/459464/70861210-0075db00-1f2b-11ea-832f-4511066d057f.png">



## Si je suis un dev Java

_Imaginons que j'aie de l'expérience en développement Java, et je veux me consacrer à ce qu'il y a dans nouveau de Kotlin par rapport à Java. Qu'est-ce que vous me conseillez?_

Si vous aimez les livres, je vous conseille [**https://www.manning.com/books/kotlin-in-action](https://www.manning.com/books/kotlin-in-action**) de mes collègues Svetlana Isakova et Dmitry Jeremov.

Il est dédié aux gens familiers avec Java et couvre les thématiques avancées propres à Kotlin. Vous pouvez en savoir plus sur le livre à l'adresse https://www.manning.com/books/kotlin-in-action

![Jemerov-Kotlin-HI](https://user-images.githubusercontent.com/459464/70861225-3c10a500-1f2b-11ea-9c2f-e44c53f87335.png)

Si vous voulez vous jeter directement dans le grand bain, je recommande les  [Kotlin Koans](https://play.kotlinlang.org/koans/overview) qui sont disponibles sur le site de Kotlin.

Ce sont une série de petits exercices, qui chacun présente un aspect de la syntaxe de Kotlin, et vous apprendront à écrire du code plus idiomatique en Kotlin.

Vous pouvez faire les Kotlin Koans directement dans le navigateur sans rien n'avoir à installer, ou vous pouvez les résoudre dans IntelliJ pour bénéficier des fonctionnalités de l'IDE.

Pour en savoir plus, rendez vous à l'adresse https://play.kotlinlang.org/koans/overview

<a href="https://play.kotlinlang.org/koans/overview"><img width="1142" alt="Screen Shot 2019-12-15 at 5 01 35 PM" src="https://user-images.githubusercontent.com/459464/70865326-937b3900-1f5c-11ea-89c3-940ce884b5b1.png"></a>


Et il y a également notre cours [Kotlin for Java Developers](https://www.coursera.org/learn/kotlin-for-java-developers) que vous pouvez suivre gratuitement sur Coursera. Il a été co-écrit par Andrey Breslav, le concepteur de Kotlin, ainsi que Svetlana Isakova (pour la troisième fois!), donc vous serez en de bonnes mains. 

Pour en savoir plus, rendez vous à l'adresse https://www.coursera.org/learn/kotlin-for-java-developers

<a href="https://www.coursera.org/learn/kotlin-for-java-developers"><img width="1002" alt="Screen Shot 2019-12-15 at 11 10 06 AM" src="https://user-images.githubusercontent.com/459464/70861242-74b07e80-1f2b-11ea-82cf-fcee6ab646e8.png"></a>


## Si je veux pratiquer Kotlin dans l'IDE

_Disons maintenant que j'aie déjà un ordinateur avec Android Studio ou IntelliJ IDEA déjà installé. Je voudrais apprendre le langage directement dans l'IDE, comme le ferait un dev professionnel. Comment m'y prendre?_

Simple! Mes collègues de l'équipe éducation ont packagé toutes les fonctionnalités dont vous avez besoin dans le [plugin EduTools](https://plugins.jetbrains.com/plugin/10081-edutools).

Il est disponible dans la plupart de nos IDEs, ainsi que dans Android Studio. Une fois que vous l'avez installé, vous pouvez choisir le cours que vous désirez apprendre, et vous êtes partis!

Le plugin EduTools vient par défaut avec les Kotlin Koans que j'ai évoqué plus haut. Mais il vous permet également de vous connecter à des plate-formes de e learning, et à travaillez sur les cours que vous avez rejoints là bas.

Pour en savoir plus sur le plugin EduTools, rendez-vous à l'adresse https://plugins.jetbrains.com/plugin/10081-edutools

<a href="https://plugins.jetbrains.com/plugin/10081-edutools"><img width="1013" alt="Screen Shot 2019-12-15 at 11 11 25 AM" src="https://user-images.githubusercontent.com/459464/70861259-a32e5980-1f2b-11ea-8566-333489f59167.png"></a>


## Si je suis un prof ou un mainteneur de bibliothèque Kotlin

_Je pense maintenant aux mainteneurs open source. Ils ont eux aussi le besoin d'aider les gens à apprendre leur API. Y a t'il moyen de réutiliser l'infrastructure que vous avez bâti pour rendre l'apprentissage plus simple?_

Parfaitement. Tout comme les professeurs qui veulent aider les gens à comprendre les concepts de programmation, les auteurs de bibliothèques Kotlin ainsi que les personnes en charges de l'on-boarding des nouveaux développeurs ont à agir en tant qu'éducateurs.

Le plugin EduTools que j'ai mentionné plus haut vient avec un mode spécifique, le **Course Creator Mode**. Ce mode permet de créer facilement vos propres cours - avec des placeholder, des descriptions de tâches, des tests automatisés, et même des questions à choix multiples. Tout cela sans quitter l'IDE!

Nos cours sont de simples projets Gradle, donc il est facile de rajouter les dépendances de vos propres bibliothèques. Cela vous permet de faire la démonstration des fonctionnalités de votre bibliothèque qui sont pertinentes pour votre audience cible. Qu'il s'agisse d'étudiants en université, de devs qui veulent tester votre bibliothèque, ou de développeurs juniors qui viennent de rejoindre votre compagnie.

Nous avons des guides très complets qui vous montrent comment vous y prendre à l'adresse https://www.jetbrains.com/help/education/educator-start-guide.html 

## Comment vous contacter?

_Comment les gens qui désirent vous joindre peuvent s'y prendre pour en savoir plus?_

Le moyen le plus rapide est via mon compte Twitter [@TrueSebi](https://twitter.com/TrueSebi).

Je suis également sur GitHub à l'adresse https://github.com/SebastianAigner .

Vous pouvez aussi m'envoyer directement un email à l'adresse _sebastian dot aigner at jetbrains dot com_.

N'hésitez pas à me contacter! Je suis toujours content de discuter avec les gens de Kotlin, et de les aider à profiter de ce que nous faisons à JetBrains pour leur permettre d'aller plus loin. Que vous veniez d'écrire votre premier "Hello World" ou que vous ayez 20 ans d'expériences en tant que dev professionnel.

## Bonus: Je connais Kotlin, comment explorer son écosystème?

_Note du traducteur: je n'avais pas pensé à poser cette question à Sebastian, donc j'y réponds moi-même :)_

La communauté Kotlin est très active, et souvent prête à aider. 

Le meilleur point de départ est le site officiel https://kotlinlang.org/community/

<a href="https://kotlinlang.org/community/"><img width="1253" alt="Community" src="https://user-images.githubusercontent.com/459464/100358255-343ff880-2ff6-11eb-9958-f22635a1e31b.png"></a>

Le meilleur moyen pour rentrer en contact avec la communauté est de s'inscrire sur le Slack KotlinLang. Vous pouvez [demander une invitation ici](https://surveys.jetbrains.com/s3/kotlin-slack-sign-up).


Le site [Kotlin is Awesome](https://kotlin.link/) permet d'avoir un aperçu rapide des bibliothèques existantes.

<a href="https://kotlin.link/"><img width="1270" alt="Kotlin_is_Awesome__and_comment_apprendre_Kotlin_md_—_writing" src="https://user-images.githubusercontent.com/459464/100358429-779a6700-2ff6-11eb-84b3-fd6fd4e64981.png"></a>

Si vous voulez pratiquer ces bibliothèques, je vous conseille le [Kotlin Libraries Playground](https://github.com/LouisCAD/kotlin-libraries-playground) dont je suis un mainteneur:

{% github https://github.com/LouisCAD/kotlin-libraries-playground %}

---

_Voilà, c'est tout pour aujourd'hui. Si vous voulez me poser une question, le page [“ask me” page](https://jmfayard.dev/contact/) de https://jmfayard.dev/ est faite exactement pour cela!_