CodeGym /Blog Java /Random-FR /Comment était-ce? Ou mon premier projet
John Squirrels
Niveau 41
San Francisco

Comment était-ce? Ou mon premier projet

Publié dans le groupe Random-FR
Il s'agit d'une traduction de l'histoire de réussite de notre communauté Java mondiale. Alex a appris Java dans la version russe du cours, que vous étudiez en anglais sur CodeGym. Puisse-t-il devenir une source d'inspiration pour votre apprentissage ultérieur et peut-être qu'un jour vous aurez envie de partager votre propre histoire avec nous :)

Introduction

Un peu sur la façon dont je suis arrivé à la programmation. Je suis enseignante et psychologue de formation, et depuis 5 ans j'exerce mon métier avec succès. Mais pour diverses raisons, je pense de plus en plus à déménager dans un autre pays. Et comme la langue et les réglementations sont différentes dans d’autres pays, je ne pourrais pas devenir le même type de professionnel sans une sérieuse reconversion. J’ai donc commencé à chercher des moyens plus simples et intéressants de bouger et de réussir. Comment était-ce?  Ou mon premier projet - 1Je me suis essayé au métier de tatoueur (cela ne nécessite pratiquement aucune connaissance de la langue), mais c'est une histoire pour un autre jour. Ensuite, mon ami collègue m'a présenté CodeGym. J'étais au départ sceptique quant aux promesses de faire de moi un programmeur à part entière en jouant à un jeu et à un prix aussi modeste. Mais ensuite, j'ai reçu de l'argent pour mon anniversaire (non soumis à la "taxe familiale") et j'ai dû choisir entre WoW et CodeGym... Eh bien, grâce à une remise opportune, la balance a penché dans la bonne direction, et me voilà. Comme nous devrions tous le savoir déjà, CodeGym est à 90 % une pure pratique. Vous apprenez à résoudre des tâches. Vous apprenez à trouver les connaissances qui vous manquent sur Internet. Tout cela est bien, mais pendant 15 niveaux, je ne pouvais pas m'empêcher de penser qu'il me manquait quelque chose qui compléterait le tableau pour moi. J'ai pensé rejoindre GeekBrains, mais (probablement heureusement) le même ami m'a arrêté à temps et m'a présenté Udemy. Lorsque j'ai ouvert ce référentiel de connaissances, j'ai accepté les appels : " Psst, mon ami. Tu es un débutant ?" Il y a une réduction pour vous... pour seulement 3 jours — Ne manquez pas cette opportunité ! " Plus tard, il est devenu clair qu'il y avait toujours des réductions, mais ce n'est pas la question. J'ai immédiatement acheté un package avec deux cours : Java de 0 à Pro et quelque chose de similaire pour Android. Et c'est là que commence notre histoire.

Succès ou échec ?

Pendant que je suivais le cours Android, j'ai eu des devoirs pour réaliser un projet basé sur mes nouvelles connaissances. Je suis le genre de personne qui croit que faire quelque chose de manière simple ou ordinaire, c'est comme ne pas le faire du tout. Alors, j'ai immédiatement commencé à me compliquer la vie. Je me suis tourné vers la personne que je connais et qui a l’imagination la plus développée et la plus vive. Voici ma chère épouse (oui, elle lira aussi cet article). Elle a suggéré de créer une application avec des images d'animaux, qui émettent des sons d'animaux correspondants lorsqu'on clique dessus. C'était une excellente idée, mais quand même assez simple. Prenant cette suggestion comme base, j'ai commencé à raisonner :
  • Cette application doit être plus que du fluff (quelque chose dont on peut rire et oublier). Je veux que ça ait de la valeur. Par exemple, en enseignant quelque chose.
  • Que ce soit l'alphabet avec des animaux. Mais pas n’importe quel alphabet, mais l’alphabet anglais !
  • Et pas seulement des animaux, mais des animaux rares que peu de gens connaissent, afin d'élargir leurs horizons !
  • Et il devrait y avoir une animation, une reproduction audio des noms des lettres et des noms d'animaux en anglais et en russe !
Maintenant, c'est ce que j'appelle des devoirs (j'ai oublié de mentionner qu'avant CodeGym, je n'étais pratiquement pas familier avec la programmation. Et moins de 3-4 mois se sont écoulés entre le moment où j'ai commencé à utiliser activement le site Web et le moment où j'ai commencé le projet. Donc, si vous Vous êtes un vétéran dans ce domaine et vous vous dites : " Pff... Est-ce que quelque chose a changé par rapport à la version originale ? ", je vous assure, oui, ça a changé) ! La première difficulté que j’ai rencontrée a été , curieusement, le démarrage du projet. Il s'avère que les auteurs ne sont pas les seuls à souffrir du « blocage de l'écrivain »... Mais comme je suis psychologue, je connaissais la solution à mon problème. Vous avez juste besoin de commencer à faire quelque chose. Faites au moins un petit pas, puis ne vous arrêtez pas. J'ai donc commencé avec un cours de lettres abstrait . Cette classe avait quelques champs et devait par la suite avoir diverses méthodes. En réalité, je n’avais aucune idée de ce que j’allais en faire, mais je devais faire quelque chose. Ensuite, j'ai créé des classes pour chaque lettre, leur faisant hériter de la classe abstraite. Cela a pris beaucoup de temps et c'est ainsi que s'est terminée ma première journée de travail. Le lendemain, j'ai supprimé le projet et j'ai recommencé. Je viens d'ouvrir le projet pour me souvenir de ce qui a changé depuis le moment que j'ai décrit ci-dessus. Et je voudrais dire que tout avait l’air mieux quand j’ai fini, mais non. Il y a vraiment encore des cours pour chaque lettre... Cela était notamment dû au fait qu'on m'avait confié ce devoir presque au tout début du cours Android, et j'ai dû comprendre par moi-même les subtilités de la relation entre un activité (la fenêtre active, ou quelque chose comme ça) avec une classe. Et je n'ai rien trouvé ni imaginé d'autre que cette manière maladroite d'associer tel cours à telle activité. Quoi qu'il en soit, l'un des principes de la programmation (éviter les répétitions) a été violé 26 fois. Tout d'abord, j'ai complètement (il me semblait) implémenté les deux premières lettres, créé une interface utilisateur approximative composée de deux menus (un menu général qui pourrait être nécessaire lors de l'extension des fonctionnalités et une table des matières, à partir de laquelle vous pouviez accéder à n'importe quel des lettres). Je n'ai pas vraiment rencontré beaucoup de difficultés en programmation. Au fur et à mesure que je mettais en œuvre mon projet indépendant, beaucoup de choses, comme les relations entre les classes, les méthodes, etc., sont devenues claires et le projet lui-même est devenu une excellente pratique pour consolider toutes les connaissances que j'avais acquises non seulement sur Android, mais aussi sur Java. La deuxième difficulté étaitque la lettre changeait en même temps que son nom était entendu. La transition douce (ombrage) donnait l’impression que le son précédait l’image. Mais lorsque j'ai mis un retard sur le son, le fil entier s'est figé — la transition a été simplement retardée de la quantité de retard, produisant le même effet indésirable, mais seulement plus tard. Ensuite, j’ai pris la décision audacieuse de rendre mon programme multithread ! J'ai déplacé la lecture du son vers un fil de discussion séparé, avec un délai suffisamment long pour que l'image se charge. C'était tout ce que le multithreading allait, mais j'étais fier de dire que j'écrivais une application multithread. La dernière difficulté a été de sélectionner les matériaux adaptés. Pensiez-vous que l'anglais n'a pas d'animal pour la lettre X (il s'avère que c'est le cas) ? J'ai dû identifier 26 animaux, retrouver leurs images et leurs sons, et enregistrer les noms de 26 lettres et 26 animaux. Si j'avais travaillé en équipe, j'aurais évidemment laissé cette partie du travail à quelqu'un d'autre. De tels moments monotones tuent l’envie de travailler, et quand il n’y a pas d’envie, il y a des excuses. Quoi qu'il en soit, cette étape a duré environ 2 semaines (j'ai fait le projet pendant mon temps libre et quand je n'avais aucune excuse). Le projet a été déclaré terminé environ 3 à 4 semaines après son début.

Vaut-il la peine de continuer à étudier la programmation ?

La désillusion s’ensuit. Premièrement, je n'avais pas le droit de publier mes devoirs pendant le cours. J'ai fait le travail et j'ai déployé beaucoup d'efforts pour me montrer, mais je n'en avais pas le droit. Deuxièmement, mon application a parfaitement fonctionné dans l'émulateur et sur mon téléphone. De ce que j'avais prévu de faire, je n'ai pas mis en œuvre l'animation, car j'ai craché et j'ai décidé de le terminer après avoir suivi les leçons pertinentes du cours. Mais lorsque j'ai commencé à réfléchir à la distribution de l'application, je suis tombé sur un problème intéressant. Après avoir utilisé un autre téléphone et une tablette pour vérifier si mon application était optimisée pour différents écrans et différentes versions d'Android, j'ai rencontré une erreur inconnue. Le programme s'arrête simplement lors du passage à une lettre. J'ai essayé de trouver la racine du problème, examiné les journaux qui, comparés aux exceptions Java concises, ressemblaient encore plus à un tour de passe-passe. Internet ne m'a pas aidé. D'une part, j'ai créé une application fonctionnelle à laquelle mes enfants aiment jouer. Par contre, cela ne fonctionne que sur mon téléphone. Cela me fait rire. Bien sûr, j’étais bouleversé, mais en y réfléchissant, j’ai conclu que j’avais gagné plus que perdu :
  • Je me suis amélioré dans la gestion des critiques de mon travail.
  • J'ai réalisé la valeur des connaissances et de l'expérience en conception de logiciels.
  • J'ai renforcé mon estime de moi en matière de programmation.
  • J'ai réalisé la nécessité d'étudier les modèles de conception et les bases du refactoring.
  • Et comme je l’ai dit, j’ai maintenant ma propre application, que personne d’autre n’a et n’aura probablement jamais. =)
"Je sais que je ne sais rien". En mettant en œuvre des projets éducatifs comme celui-ci, vous avez une excellente opportunité d’analyser ce que vous savez, là où vous avez des lacunes dans vos connaissances, et d’identifier des moyens de progresser davantage. Vaut-il la peine de continuer à étudier la programmation si vous comprenez que tous vos efforts sur une longue étape de votre vie vous ont fait passer de 0 à +0,001 ? Pour moi, la réponse était oui. Et toi?
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION