Alors, j’ai mis la main dessus et j’ai trouvé le temps de partager ma petite histoire.
Prologue.
Commençons par le fait que j'ai 30 ans, ma formation principale est une formation supérieure en chimie (je n'entrerai pas dans les détails), j'ai travaillé dans une usine pendant près de 8 ans. Le travail était en fait assez intéressant, mais en regardant mes collègues, j’ai compris que je ne voulais pas prendre ma retraite et travailler ici pendant *vingt ans, ce n’est pas comme ça que je veux passer ma vie. Je tiens aussi à ajouter que j'ai une famille, deux enfants (l'aîné a 6 ans, le plus jeune a un an) et, selon les classiques, un crédit immobilier. Finalement, j'ai décidé d'essayer d'aller ailleurs, dans une autre usine, où les salaires sont plus élevés et où il y a une évolution de carrière. J'avais déjà pris racine à l'usine, c'était dur de la quitter, mais j'ai décidé de le faire. Le voyage à Saint-Pétersbourg a duré un mois. J'y ai officiellement travaillé pendant une semaine, j'ai réalisé que dans notre pays la situation des usines était pour la plupart triste et je suis retourné dans ma ville natale. Je ne voulais pas revenir en arrière, il me semblait que c'était un pas en arrière. C’est à ce moment-là que j’ai décidé que si je changeais de vie, alors changez-la radicalement ! Pendant environ une semaine, j'ai réfléchi au langage de programmation à choisir et, en fait, le choix s'est porté sur Java . Après cela, j'ai commencé à chercher des cours. En fait, il y a beaucoup de bons cours, certains même à un prix raisonnable, mais j'avais un problème : j'avais beaucoup d'envie et de temps pour étudier, mais le coussin financier était d'un maximum de 3-4 mois. . Tous les cours qui me plaisaient duraient six mois ou plus avec deux cours par semaine (le plus souvent). Et puis une amie m'a recommandé JavaRush , disant qu'elle avait entendu dire que c'était une très bonne ressource. J'ai vu que tout ce dont j'avais besoin était ici :- abonnement avec matériel et tâches.
- aucune restriction de temps : je pouvais étudier exactement autant que mon emploi du temps le permettait (et c'était gratuit) et mon envie (et, comme je l'ai écrit plus haut, il y en avait beaucoup).
Partie 1 : À la recherche de connaissances.
Le 26 novembre 2019, je me suis inscrit et j'ai commencé les cours. Je dirai tout de suite que parfois il y avait des jours où je passais jusqu'à 14 heures à étudier, à lire tous les liens associés, à chercher de plus belles solutions (sans chercher dans l'Aide). Ce n'est que lorsque j'ai pensé que ma solution était optimale que j'ai consulté l'aide et j'ai très souvent été surpris qu'elle aurait pu être résolue de manière plus belle et plus concise. Fin janvier, après avoir atteint le niveau 17, j'ai décidé de commencer à m'adresser aux services sociaux, de perfectionner mes compétences et de voir ce qui était généralement demandé sur le marché. En fait, personne ne m'a vraiment répondu, mais il y avait un bureau qui m'a accueilli en stage gratuit sous condition : le premier mois était gratuit, le deuxième et le troisième - avec une petite allocation). Ensuite, il était censé y avoir une sécurité sociale basée sur les résultats de trois mois et, après une réussite, un emploi.Partie 2 : Nous nous précipitons au combat.
Le stage consistait à écrire un plugin pour Chrome avec un back-end en Java pour automatiser les tâches courantes d'un service interne de l'entreprise. J'ai eu un excellent mentor avec beaucoup de connaissances, je pense que c'est aussi important. En fait, afin de ne pas entrer dans les détails, j'écrirai immédiatement quelle pile a été utilisée, et à la fin de l'article je donnerai plusieurs liens qui se sont avérés très utiles pour moi.Empiler:
Java 11 (le projet a été entièrement écrit à partir de zéro), Spring (Boot, Security, OAuth2) ; MongoDB a été utilisé comme base ; Pour couvrir les autotests, j'ai utilisé Assertj, Mockito, Spring-boot-starter-test et j'ai travaillé en utilisant le assez populaire GitHub Flow (article en russe , dans l'original ). Ici et plus loin, j'essaierai de fournir des liens vers l'original et la traduction. Il est bien entendu conseillé de lire l'original, mais si cela n'est pas possible, lisez la traduction. C'est le moment de recommander d'apprendre l'anglais. J'ai un niveau A2, mais j'essaie de lire des articles en anglais (bien sûr, non sans faire appel à un traducteur). C'était précisément la plus grande difficulté au début du projet de stage, car il fallait alors travailler avec un CRM tiers, qui disposait de toute la documentation en anglais. De plus, lorsque l'on travaille avec Spring, il est préférable de lire la documentation originale, elle est très bonne et détaillée, vous n'avez même pas besoin de guides en russe, et en général presque toute la documentation est en anglais (un peu de Captain Évident). Le mentor m'a également dit d'écrire tous les commentaires de code et la documentation de l'API en anglais, donc je le répète encore une fois : apprenez l'anglais ! Même si vous n’avez pas l’intention de travailler avec des clients étrangers ou de voyager à l’étranger, cette compétence simplifiera simplement grandement votre apprentissage et votre développement.Partie 3 : Dénouement.
Cette partie sera beaucoup plus courte :) A la fin du stage, j'ai passé la sécurité sociale et trouvé un emploi, et j'ai continué à travailler sur ce projet. Dans le cadre du stage, la première étape était censée être mise en œuvre, et il y en avait, pourrait-on dire, trois au total. En raison du début de la pandémie, de nombreux projets commerciaux ont disparu, et j'ai mis en œuvre toutes les étapes et idées/envies que j'aurais pu avoir pour ce projet. Il y avait d'autres tâches à accomplir, mais cela, comme on dit, est une autre histoire.Partie 4 : Happy End, même si c'est loin d'être la Fin ;)
À la mi-juillet, ils m'ont appelé et m'ont demandé si je cherchais un emploi. Le CV était accroché à hh, même s'il n'avait pas été mis à jour depuis longtemps. J'ai décidé de m'essayer, j'ai passé par 3 étapes : une tâche de test, un entretien technique, un entretien avec la direction, ils m'ont envoyé une offre et... C'était une offre que je ne pouvais pas refuser. À propos, assurez-vous de lire l'article sur les types d'entreprises disponibles et essayez de choisir celle qui vous convient le mieux. Je comprends, bien sûr, que dans le premier couple, vous essaierez d'arriver là où ils vous mènent, mais quand même. Mon premier travail était en dehors du personnel, et maintenant c'est un travail d'épicerie (au moment d'écrire ces lignes, je ne travaille que le deuxième jour). Ils ont également embauché un junior pour ce poste, mais je ne suis pas du tout contrarié, car il y a de la place pour grandir à la fois en connaissances et en argent.Épilogue.
Alors les amis, ne vous découragez pas, l’essentiel est de décider et de ne pas s’écarter de votre chemin. Dans mon cas, j'avais une grande responsabilité envers ma famille et un désir de changer quelque chose dans ma vie, de faire ce que j'aimais vraiment. Ce qui est particulièrement intéressant dans ce domaine, c'est que vous pouvez gravir les échelons de carrière, qu'il y ait ou non un poste vacant plus élevé dans l'entreprise, qu'un retraité qui a travaillé pendant * vingt ans soit parti et que vous ayez les bras suffisamment poilus pour gravir les échelons. place vacante. Dans notre domaine, tout est entre nos mains !Articles que j'aimerais partager :
- Compréhension de l'architecture ( en russe et dans l'original ). J'ai personnellement lu cet article 4 fois alors que nous développions justement l'architecture de la future application. J'écris au pluriel, puisque tout a été vérifié et envoyé pour modifications répétées par le mentor (il a fait une revue de code). La première fois, je n’ai pas compris grand chose, puis je l’ai lu 3 mois plus tard, et là j’ai déjà compris pourquoi il en était ainsi. Ensuite, je l'ai lu encore 2 fois, pour ainsi dire, pour consolider et assimiler pleinement toutes les informations.
- Formation interactive sur l'utilisation de Git .
- Je conseille à tout le monde d'apprendre à travailler avec les flux. C'est une chose vraiment cool : vous pouvez souvent remplacer une énorme quantité d'écriture par un petit flux. Pour me rappeler de travailler avec des flux, j'ai toujours ouvert cet article .
- Il existe une documentation détaillée pour travailler avec Spring, donc je ne donnerai pas de lien vers celle-ci, mais pour une raison quelconque, je n'ai pas immédiatement rencontré un homme nommé Evgeny Borisov, alias Spring the Ripper . Voici une présentation et une analyse très sympa du fonctionnement des bacs, etc. Je regrette vraiment de ne pas l'avoir découvert tout de suite, beaucoup de choses auraient été plus claires au début. Je recommande particulièrement non seulement d'écouter, mais d'écrire du code en même temps et de tout mettre, pour ainsi dire, dans la mémoire musculaire.
- Eh bien, comme j'ai travaillé avec une base de données non relationnelle et que la plupart des entreprises (en particulier les grandes) travaillent avec SQL, pendant mon temps libre, j'ai essayé de résoudre au moins quelques problèmes liés à la création de requêtes SQL. Il existe de nombreux sites différents pour cela, mais j'ai aimé celui-ci , avec des problèmes et un manuel pour étudier.
- Je recommanderais également de lire sur l'écriture de tests (Assertj, Mockito), mais je ne me souviens d'aucun bon article, juste de la documentation.
- Et lors du développement d’une application (mais ce n’est pas vraiment pour les débutants), essayez d’utiliser des modèles de conception . Familiarisez-vous au moins en diagonale avec les modèles connus, cela vous sera utile au début.
GO TO FULL VERSION