Enfant, Anastasia Birillo rêvait de devenir professeur de langue et littérature russes. Aujourd'hui, elle est chercheuse à JetBrains Research, méthodologue et enseignante à Digital Banana, et également développeur de sa propre startup. «L'humaniste n'est pas une phrase», affirme Nastya. Lors de notre conférence de novembre, "
Contenting ", elle a expliqué comment apprendre la programmation par elle-même, quelle direction choisir pour un développeur novice, où chercher des projets, quelles difficultés pourraient être rencontrées sur le chemin du fumeur et comment les surmonter.

Sous la coupe - décodage de son rapport.
Deux façons de programmer
Les gens pensent souvent que la programmation est très difficile. Quand vous ne pouvez pas écrire même quelques lignes de code, il semble que les programmeurs sont des dieux qui font des choses incroyablement complexes. En fait, rien de tel.

Vous pouvez accéder à cette profession de deux manières. La voie classique est assez standard, à travers l'enseignement dans une université technique. Je l'ai traversé, c'est cool, cool. Vous avez beaucoup de temps parce que vous êtes étudiant. Vous êtes jeune, vous avez beaucoup de force et d'énergie. Autour - votre communauté, vous pouvez toujours poser une question à l'enseignant ou à ses camarades de classe. De plus, vous recevez un diplôme technique, qui vous offre de nombreuses perspectives, notamment celles liées au travail à l'étranger.

Mais nous parlerons d'une autre façon, du soi-disant «chemin du fumeur». C'est quand vous avez déjà reçu un premier diplôme, vous travaillez quelque part dans les relations publiques, par exemple, - et soudain, vous avez envie de devenir programmeur. Cette méthode présente plusieurs inconvénients. Tout d'abord, vous avez peu de temps, après le travail, vous vous asseyez pour des manuels au lieu d'aller dans un bar ou de filmer avec des amis. Deuxièmement, très probablement, vous ne recevrez aucune éducation et vous ne posséderez pas de diplôme. Mais avec une diligence raisonnable, vous surprendrez vos amis, vous deviendrez le "dieu-programmeur" à propos duquel ils pensaient: "Seigneur, c'est si difficile." Et maintenant vous savez comment!

Premiers pas, premières difficultés et succès
Il me semble que la connexion à la programmation est plus facile à partir du Web. Au début, il ne s'agira même pas de programmation, mais vous pouvez commencer par la mise en page: structurer les pages, les coloriser à l'aide de styles. Avec une diligence raisonnable, vous pourrez bientôt obtenir un bon prix pour cela, en collectant des commandes en freelance. Ensuite, vous étudiez JavaScript, HTML, CSS ... Vous pensez que vous avez déjà tout compris - et, bien sûr, vous vous trompez.
Ceci est une vraie citation d'un VKontakte public assez populaire. Les gars pensent: "J'ai maîtrisé le front, je suis un programmeur web super cool, maintenant je dois aller au backend." En fait, ce n'est pas le cas.

Le frontend est un endroit très cool. Très souvent, les gens pensent qu'il n'y a rien d'intéressant, il suffit de s'asseoir et de mettre en page. Comme si je le maîtrisais, ça deviendrait follement ennuyeux. Ils ne comprennent pas qu'il y a beaucoup de logique dans ce front-end. Vous appliquez des modèles de programmation utilisés dans le développement conventionnel, vous comprenez les algorithmes et les structures de données - et c'est assez difficile.

Après JavaScript, HTML et CSS, vous pouvez commencer à apprendre les frameworks frontaux. Après 3-4 mois, vous pouvez déjà écrire votre application simple en Angular ou React. Auparavant, en voyant un tas d'erreurs dans la console, vous aviez peur: "Oh mon Dieu, qu'est-ce que c'est?! .." Maintenant, regardez-le calmement, vous commencez à google et à le comprendre, quelle est la raison. À la mention de Github, vous n'êtes pas brisé par une sueur froide: vous savez que c'est un chat si mignon, une chose assez pratique pour tous les programmeurs. Peut-être vous riez déjà doucement à un ami des sciences humaines qui veut soudainement aussi apprendre à programmer. Il ne réussit pas, il s'assoit et ne comprend pas ce qui lui arrive. Et vous voyez qu'il vient d'oublier le support quelque part.
Programmeur - en tant qu'artiste
Maintenant, vous maîtrisez bien la programmation et vous pouvez passer à ce que l'on appelle le génie logiciel. Les mêmes gars vivent là-bas qui écrivent toutes sortes de choses compliquées en Java, C #, C ++, Python et ainsi de suite. Et ce n'est pas si difficile: à ce moment-là, vous comprenez déjà qu'un programmeur est comme un artiste. Il a simplement appris à penser comme un ordinateur et le transfère au code - avec certaines règles strictes. L'artiste n'a pas de cadre rigide, mais ils sont en programmation. Mais vous comprenez déjà: en principe, ce n'est pas si difficile, je peux le gérer.

Quelle langue commencer
De nombreux chemins et langages de programmation vous sont ouverts. Par exemple, vous pouvez commencer avec Python. C'est une langue assez simple, elle a été faite à des fins académiques, pour les enfants. Si vous connaissez l'anglais, vous pouvez comprendre le code Python, même si vous ne l'avez jamais programmé. Servachki sont écrits sur Python - c'est la logique sur tous les sites. Et si vous découvrez soudainement un talent pour les mathématiques en vous-même et que vous trouvez beaucoup de temps, vous pouvez vous rendre dans la Data Science la plus en vogue et y gagner 300 000 par seconde. Mais il y a des difficultés dans ce domaine.

Kotlin ou Java est plus difficile à apprendre que Python. Il y a beaucoup plus de subtilités et une syntaxe assez compliquée. Mais trouver un emploi, en particulier au début du voyage, sera beaucoup plus simple: les postes vacants de développeur Java junior sont bien plus que les postes vacants pour les programmeurs débutants en Python. Il existe également de nombreuses opportunités. Vous pouvez simplement rester en génie logiciel en tant que développeur Java, vous pouvez aller au développement mobile ou écrire les mêmes services, uniquement en Java ou Kotlin.

Et si vous voyez beaucoup de force en vous, vous vous sentez comme le maître de l'univers, alors apprenez le C ++ ou Rust. C'est la voie de ces gens qui partent en stage chez Google, écrivent des applications super complexes, parlent constamment de quelques fuites de mémoire ou qu'ils peuvent se tirer des pieds. Mais si vous voulez vraiment le faire, je suis sûr que vous n'abandonnerez pas ce que vous pouvez - pourquoi pas?

Échelle de fraîcheur

J'ai mentionné une chose telle que Junior Java Developer. Dans le monde informatique, il y a ce que l'on appelle «l'échelle de fraîcheur» de Junior à Senior. Quand tu es Junior, tu es comme un enfant: tu vois une sorte d'erreur et tu t'assois dans la panique, tu ne comprends pas ce qui se passe. Vous venez de pleurer et d'appeler à l'aide de ce super-héros-señor: il vient et résout votre problème, sur lequel vous pouvez vous asseoir pendant plusieurs heures ou jours, littéralement en une minute. Ce n'est pas de la magie, les capacités s'accumulent avec le temps: l'expérience est acquise et la base de connaissances se développe.
Que pratiquer

Maintenant, vous pensez probablement: "Je vais choisir un domaine, je vais apprendre le Python ou aller sur le Web, m'inscrire à une montagne de cours, lire une tonne de livres et devenir un programmeur sympa." En fait, cela ne fonctionne pas. La chose la plus importante est la pratique. Je ne parle pas de projets triviaux qui sont demandés dans les cours, de la catégorie "supprimer les 10 premiers nombres de Fibonacci" ou "échanger deux variables dans le tableau". Résolvez des tâches vraiment intéressantes, faites ce que vous aimez.
Écrivez votre version de l'application que vous utilisez tous les jours, essayez-la. Pourquoi? C'est une chose de lire la théorie: "Ouais, encapsulation, une sorte de mot effrayant ... eh bien, je comprends à peu près à quoi ça sert ..." Une autre chose est de faire face à cela dans la pratique: vous verrez immédiatement toutes les lacunes qui pourraient ne pas suffire plus tard, quand Vous obtiendrez un emploi.

Lors des entretiens, nous rencontrons souvent des joons qui parlent de livres que nous lisons et de cours. Vous demandez ceci: "Qu'avez-vous fait?" Il: "Eh bien, j'ai décidé qu'il y avait quelques ingénieurs de projet de formation qui étaient sur Stepik." C'est beaucoup plus cool de parler de ma propre application: "J'ai fait cette architecture ... Je n'ai pas réussi, je l'ai refaite, j'ai rencontré tel ou tel problème, les ai résolus comme ça et comme ça ..." Les RH le voient, et c'est un plus cool dans karma. Lorsqu'ils postulent pour un emploi - oui, ils regardent les connaissances en général. Mais pour un junior, il est important qu'il puisse apprendre et qu'avant de lire non seulement la théorie, mais aussi de s'engager dans une sorte de pratique.
Où chercher des projets

Trouver des projets est facile. Par exemple, vous avez décidé de vous lancer dans la mise en page. Nous sommes tous assis sur Internet, vous avez probablement une ressource préférée - Habr, Picabu, une sorte de site Web avec des photos. Vous prenez ce site et inventez le même. Oui, il ne sera pas utilisé, personne ne l'achètera. Mais pendant que vous serez engagé dans ce projet, vous rencontrerez un tas de problèmes - et vous apprendrez à les résoudre: vous essaierez de faire quelque chose, d'abord cela ne fonctionnera pas, puis vous le réparerez.

Si vous voulez écrire une sorte de logique - par exemple, pour les applications Web à l'avant ou à l'arrière, alors il vous suffit de rechercher une ressource similaire sur Internet et de l'implémenter ... En général, vous pouvez écrire du code pour n'importe quoi. Trouvez un tutoriel trivial sur Internet - comment faire une liste de tâches. C'est ce que beaucoup conseillent - une telle liste de tâches dans laquelle vous notez ce qui a été fait. Vous pouvez implémenter des dames que vous jouerez avec l'ami même qui a également décidé d'étudier. Vous pouvez même vous réunir et écrire un projet ensemble.
Comment tout faire et obtenir de l'argent pour un passe-temps

Habituellement, je ne dors pas beaucoup. Mais en général, vous pouvez peindre tous les jours. Si vous avez une liste des choses que vous voulez faire, vous les ferez probablement. L'essentiel, ce sont les délais fermes. Si vous dites: «J'ai besoin de déposer une demande de test, j'ai deux semaines pour cela», cela ne fonctionne pas. Mais si vous avez besoin de "couper l'application de test avant le 4 décembre", alors vous vous asseyez et vous voyez. J'ai simplement commencé un calendrier sur mon ordinateur, mis des choses par moi-même tous les jours et essayé de les faire. En même temps, je trouve le temps de marcher avec des amis, de danser et d'anglais.

Cela ne fonctionnera que si vous aimez vraiment le travail. Mon collègue est devenu développeur front-end parce qu'il était extrêmement fatigué de travailler dans les relations publiques. Il s'est rendu compte qu'il aimait vraiment la disposition des sites et il y a consacré tout son temps libre. Mais il aimait ça. Pas étonnant qu'ils disent: trouvez ce que vous aimez, et alors vous ne travaillerez pas un jour. Cela semble pathétique, mais c'est vrai. J'aime tellement ce que je fais que je ne peux pas appeler ça du travail. Il s'avère que je suis payé pour mon hobby.
Point d'entrée: pourquoi le web est meilleur que les jeux
Les jeux sont également un bon point d'entrée. Mais vous devez faire ce que vous aimez. Par exemple, je déteste les jeux et je ne pouvais pas devenir programmeur à travers eux, même si je le voulais vraiment. Si vous utilisez une construction (c'est si simple de créer des jeux 2D), vous ne programmez pas essentiellement. Et lorsque vous commencez à composer, vous vous habituez toujours à au moins une certaine discipline: vous voyez ces crochets, vous vous habituez à ne pas avoir peur d'écrire du code, et il vous sera plus facile de vous adapter à des choses plus complexes. Ensuite, vous regardez calmement de gros morceaux de code: "Eh bien, d'accord, j'ai écrit cela aussi, c'est bon."
L'essentiel est de ne pas avoir peur
- Vous pensez: «Oui, elle le dit, comme si tout était facile. En fait, ce ne sont que des rêves. » Non, pas facile - mais possible. Quand je suis entrée à l'université d'une école d'arts libéraux, j'étais la pire du cours. Mais vous essayez, et même si vous n'y arrivez pas, vous essayez plus loin. Je pensais que je ne comprendrais jamais tous ces POO, graphiques, structures de données et plus encore. Mais maintenant je travaille comme programmeur et j'enseigne la programmation aux enfants. Cela peut sembler pathétique, mais l'humaniste n'est pas une phrase.

Si vous voulez aller à l'informatique, l'essentiel - n'ayez pas peur. Vous devez surmonter la peur, ne pas avoir peur d'écrire du code. Pour une raison quelconque, tout le monde pense à la programmation, que cela, bon sang, est très, très difficile. Même les enfants que j'enseigne ont parfois peur d'exécuter un programme qu'ils ont eux-mêmes écrit: "Maintenant, il y aura une erreur, tout tombera et je ne pourrai pas comprendre quelle en est la raison." L'essentiel est de surmonter cette peur. Vous pouvez commencer par le web, c'est assez simple. Et rappelez-vous: pratiquez, pratiquez et beaucoup, beaucoup de pratiques. Rien ne fonctionnera sans elle!
Tous les rapports de «
Contenting » - et ce sont 16 heures d'informations utiles, 26 discours et 3 discussions sur la façon de créer du contenu cool sur les technologies et l'utilisation des technologies - sont au format vidéo
ici . Remise pour les utilisateurs Habr avec le code promo habr_online_promo.
Pour soutenir la conférence, nous remercions nos sponsors: