Nous savons que les étudiants de CodeGym veulent entendre les histoires de ceux qui travaillent déjà dans l'informatique. Nous avons donc pris les choses en main et lancé une série sur les développeurs de différents pays et entreprises qui ont suivi notre formation Java. Cette histoire concerne Irina. À l’école et à l’université, elle aimait les sciences techniques. Elle connaissait un peu la programmation mais a choisi de travailler dans la publicité contextuelle. Pourtant, Irina voulait s’essayer au développement. Un jour, elle a reçu un e-mail l’informant que des stagiaires développeurs étaient embauchés pour un service particulier. Et même si notre héroïne n’a pas réussi l’entretien, cette expérience l’a motivée à commencer à apprendre Java."Il n'est pas nécessaire de combattre le mal dans le développement, mais il ne faut pas non plus y toucher" : l'histoire d'Irina la programmeuse - 1

"Je voulais absolument m'essayer au développement"

Après la 9e année, lorsque j'ai dû faire un choix d'orientation pour la suite de mes études (c'est-à-dire les filières techniques, humanitaires, économiques et médicales), j'étais tiraillé entre les filières humanitaire et technique. Pour moi, les sciences humaines représentaient une carrière de journaliste, dénonçant le mal et défendant les bonnes causes partout dans le monde. En contemplant la piste technique, je me suis dit que si je ne combats pas le mal, au moins je n'y toucherai pas. J'ai suivi le chemin de moindre résistance et j'ai choisi la piste technique. Après l'école, je suis entré à l'université, avec une spécialisation en informatique et en génie informatique. Hélas, l’université n’offrait aucune compétence dans une langue spécifique. De manière décousue, j'ai appris quelques choses sur le C++, le C#, le JavaScript et la disposition de l'interface utilisateur. Au cours de ma troisième année, je me suis intéressé par hasard à la publicité contextuelle et j'ai justement trouvé un emploi dans une entreprise assez connue. Du coup, je suis resté 2 ans dans la publicité. J'ai connu des succès décents, mais je voulais absolument m'essayer au développement. Mon retour à la programmation s'est également déroulé sans plan bien pensé : j'ai reçu un e-mail au travail concernant un nouveau service cherchant à embaucher des stagiaires développeurs Java. J'ai décidé d'aller à un entretien. Bien sûr, à cette époque, mes connaissances de base n'étaient pas suffisantes pour obtenir une offre, mais cet épisode m'a incité à rechercher des ressources sur Java. Je suis tombé sur ce cours sur Internet. Au début, ils ne m'ont pas accroché : toutes les images amusantes et les histoires de robots me faisaient paraître peu sérieuses, mais j'ai vraiment aimé avoir l'occasion de m'entraîner et de vérifier mes tâches. Je me suis attardé et j'ai décidé de l'essayer, puis j'ai été attiré.

"J'ai raté les premiers entretiens"

J'ai étudié sans horaire rigide, par à-coups : pendant les pauses au travail, parfois la nuit. Vers le niveau 16-17, j’ai commencé à chercher un emploi. À cette époque, j'étudiais depuis environ trois mois, avec quelques pauses. Si vous n'avez pas d'expérience professionnelle, ils aiment poser des questions sur les algorithmes, mais je les connaissais à peine. J’ai donc échoué aux premiers entretiens. J'ai dû me préparer davantage, rechercher les questions les plus fréquemment posées et mémoriser les réponses. J'ai appris de toute urgence SQL, étudié les systèmes de gestion de versions de code (OMI, CodeGym mentionne Git à un niveau déraisonnablement avancé, pas avant le niveau 30) et les principes SOLID, et appris les algorithmes de tri. Finalement, j'ai été embauché en tant que développeur junior dans une petite entreprise. Mes tâches dans mon premier emploi étaient très triviales : développer de nouvelles fonctionnalités du système, peaufiner les fonctionnalités existantes, corriger les bugs. Nous avons utilisé la méthodologie en cascade : un homme d'affaires envoie une tâche, un analyste la décrit un peu plus en détail, un développeur la met en œuvre, un analyste la teste, puis le développeur l'intègre dans le produit. Nous n'avons utilisé aucune technologie particulière : nous avons tout écrit en Java pur — un monolithe au lieu de microservices. Pour travailler avec la base de données, nous avons utilisé notre propre framework propriétaire fermé. Il y a eu un océan de difficultés au tout début : depuis l'apprentissage de la manière de télécharger le projet dans le référentiel jusqu'à la manière d'écrire une requête dans la base de données afin qu'elle n'expire pas. J'ai dû beaucoup chercher sur Google sur le travail avec JSON, SOAP, sur ce qu'est Maven et sur la façon de créer un projet Maven. Je n'ai pas abandonné l'apprentissage. J'ai essayé d'étudier au moins un jour sur deux, mais il y a eu plusieurs fois où j'ai dû le mettre de côté pendant un mois. Mais mon objectif était de terminer les 40 niveaux tant convoités. En parallèle, j'ai suivi un cours sur le framework Spring. Le printemps m'a ouvert beaucoup de nouvelles opportunités et les offres que je reçois grâce à mon CV se sont multipliées à plusieurs reprises. Pendant la quarantaine, j'ai changé de travail et suis passé à un projet avec une architecture de microservices. Nous créons un service de recherche, de vente, d'achat et de location de biens immobiliers résidentiels et commerciaux, ainsi que de demande et de gestion de prêts hypothécaires. 80% de nos services sont écrits en Kotlin. Les 20 % restants sont écrits en Java.

Mes projets pour le futur proche sont :

  1. Immersion plus profonde dans l'architecture. J'aimerais approfondir la conception de l'architecture backend.

  2. Apprentissage du C++. Je pense que cela sera certainement utile à tout programmeur : pouvoir, si nécessaire, écrire les parties d'une application qui doivent s'exécuter exceptionnellement rapidement. Cela sera utile pour tous les calculs mathématiques complexes.

  3. DevOps. Certaines entreprises font même de cette compétence une exigence obligatoire pour les programmeurs. Et cela sera certainement utile dans n'importe quelle autre entreprise.

Je ne regrette absolument pas d'avoir opté pour la filière technique en 9e année et d'avoir eu le courage, il y a deux ans, de quitter la publicité et de commencer une carrière dans la programmation. Le développement est une sorte de magie, un moyen de simplifier les choses complexes pour les gens, de remplacer la confusion par la clarté. J'essaie actuellement d'intéresser mon jeune frère de 12 ans à la programmation. Il y a un an, je lui ai offert un kit de démarrage Arduino et je pense lui acheter un livre sur le codage Python pour Minecraft. Quand il sera un peu plus grand, je lui présenterai CodeGym. Je pense qu'il va aimer ça. Une chose importante que j'ai apprise de CodeGym est ma prise de conscience qu'il ne faut vraiment pas avoir peur de payer pour du bon matériel. Cela rapportera au centuple.

Conseils pour les développeurs débutants :

  • Continuez la programmation. Le travail d'un programmeur consiste entièrement à résoudre certains problèmes, à trouver certaines erreurs et à les corriger. Parfois, cela peut (et cela sera certainement le cas !) sembler insupportablement difficile, ennuyeux et frustrant, mais lorsque vous résolvez enfin le problème, cela ressemble à une véritable avancée, une victoire, presque une découverte. Et ce cycle se répète. Colère, acceptation, longues tentatives et échecs sans fin, puis victoire. Le plaisir du travail d'un programmeur réside dans l'anticipation de la prochaine percée et de la prochaine victoire. "Il n'est pas nécessaire de combattre le mal dans le développement, mais il ne faut pas non plus y toucher" : l'histoire d'Irina la programmeuse - 2
  • Continuez à apprendre chaque fois que cela est possible. Lisez des articles et des livres. Trouvez et suivez des cours dans divers domaines du développement de logiciels. Assurez-vous d'essayer les nouvelles technologies. Appliquez-les à vos projets personnels. Interagissez avec d’autres passionnés par le développement de logiciels. Échangez des expériences et des idées. Il était une fois, c'est le fait de parler à des gens aussi ambitieux qui m'a aidé à ne pas languir dans ma première entreprise et à ne pas avoir peur de passer à autre chose.

  • D'où mon troisième conseil — N'ayez pas peur de changer les choses : un nouveau métier, un nouveau framework, un nouveau langage (pardonnez-moi, CodeGym). Toutes mes grandes victoires sur moi-même se sont produites exactement au moment où je changeais de travail. Au début, cela semble effrayant d'aller quelque part sans maîtriser complètement la technologie ou le langage, mais cela stimule beaucoup de croissance, à mesure que vous étudiez cette technologie ou ce langage inconnu. Votre second souffle apparaît et vous trouvez une signification particulière à comprendre et à étudier quelque chose de nouveau.

  • Soyez raisonnable dans l’évaluation de vos points forts. Même si vous pouvez combiner emploi, études indépendantes à la maison, cours en ligne, université et peut-être famille, pendant un certain temps, il y a de grandes chances que vous soyez épuisé. Malheureusement, je connais quelques gars qui se sont épuisés et ont abandonné la programmation après une période prolongée passée à combiner l'université, à avoir un emploi rémunéré et à travailler également comme stagiaire développeur non rémunéré. S'ils avaient pris un jour de congé supplémentaire ou un congé académique à l'université, s'ils avaient pris un jour de vacances et mis de côté leurs études, s'ils avaient fait une pause de quelques semaines dans leurs cours en ligne, alors peut-être que tout se serait passé comme prévu. différemment.