Article original : How I finished the entire freeCodeCamp curriculum in 9 months while working full time

Par Virginia Balseiro

Au cours de l'année passée, j'ai terminé tout le programme freeCodeCamp tout en travaillant à temps plein comme enseignante. Dans cet article, je vais expliquer comment j'ai réussi à faire cela. Plus particulièrement, comment j'ai organisé mon temps et quelles ressources complémentaires j'ai utilisées.

Contexte

D'abord, un peu d'histoire. Je n'étais pas complètement nouvelle en programmation. J'ai grandi dans une petite entreprise technologique.

Mon père a fondé sa propre entreprise avant ma naissance, où ils réalisaient différentes activités dans le domaine de la technologie, comme la réparation d'ordinateurs, la mise en place de connexions Internet et de réseaux pour d'autres entreprises, l'enseignement de cours d'informatique et la création d'applications administratives pour les entreprises. C'était une petite ville, donc ils étaient essentiellement les "mecs de la tech" de toute la ville.

Les bureaux de l'entreprise étaient dans notre maison, donc j'ai littéralement grandi parmi les ordinateurs et les personnes qui les aimaient. J'ai commencé à jouer avec Visual Basic enfant (l'un des gars de l'entreprise m'a appris à l'utiliser) et j'ai passé tout mon temps libre en ligne, à discuter avec d'autres passionnés.

Quand j'avais environ 12 ans, l'un de ces passionnés m'a envoyé un manuel de développement web (un énorme fichier .txt qui traitait principalement de HTML) et je l'ai utilisé pour créer mon propre site de fans. Il avait même l'un de ces compteurs de visites cool.

Je l'ai hébergé sur Geocities, obtenu une URL courte gratuite et l'ai listé sur Yahoo et AltaVista (ceux-ci étaient les plus grands à l'époque).

Après cela, la vie a continué et j'ai complètement abandonné l'idée de devenir programmeuse, car les circonstances exigeaient une approche plus "réaliste". Je n'entrerai pas dans les détails maintenant, mais basically, j'ai dû abandonner mes études et trouver un travail.

J'ai continué à vivre ma vie. J'ai construit occasionnellement des sites web pour les clients de mon père, puis j'ai finalement décidé de commencer à enseigner l'anglais, ce qui était quelque chose qui me venait facilement, et j'ai basically oublié tout sur le développement web. Jusqu'en 2016.

Comment j'ai décidé de changer de carrière

J'adore enseigner. C'est une profession gratifiante, intéressante et amusante. Mais elle a ses inconvénients. Au début, tout semblait être un défi, mais après tant d'années à le faire, j'ai commencé à sentir que je n'avais plus de but. Que je ne grandissais plus ou n'apprenais plus.

Je me sentais coincée. Comme si mon travail était exactement le même d'une année à l'autre. Je faisais juste les mêmes choses. Cela n'offrait pas non plus beaucoup d'opportunités de déménagement, ce qui est devenu très important pour moi plus tard.

En 2013, j'ai rencontré mon mari, et l'année suivante, nous sommes partis pour un voyage de trois mois en Europe avec un sac à dos, ce qui est un tout autre article de blog, mais basically, c'était extrêmement économique et nous avons eu une expérience incroyable. Nous avons adoré l'Europe et nous avons décidé que nous reviendrions pour un autre long voyage.

Le temps a passé, nous avons fait d'autres choses, et puis j'ai trouvé Codecademy et j'ai commencé à jouer avec, et à envisager l'idée de devenir développeuse à temps plein. J'avais déjà une certaine expérience dans la création de sites web avec juste HTML et CSS, mais pas de JavaScript. Je lisais beaucoup d'histoires de succès en ligne, mais je ne considérais toujours pas cela comme une vraie carrière, pas du tout.

Pendant ce temps, nous planifiions notre prochain long voyage, économisions de l'argent, planifiions, etc. Je travaillais de plus en plus comme traductrice freelance, super impliquée dans ma carrière, traduisant des trucs cool comme des romans et de la poésie. 2017 est arrivé et nous sommes retournés en Europe, cette fois pour deux mois.

Là-bas, nous avons rencontré un groupe de développeurs. C'était fou. Chaque surfeur de canapé que nous avons rencontré semblait être dans l'informatique d'une manière ou d'une autre, soit comme chef de produit logiciel, soit comme développeur, testeur, etc. Ils nous ont tous encouragés à nous lancer dans la tech. À cette époque, nous avions déjà décidé que nous voulions déménager en Europe, donc beaucoup d'entre eux nous ont dit : "Vous pourriez trouver un travail ici. Les développeurs sont en demande ici, nous en avons besoin de beaucoup."

Avant la fin du voyage, nous avons pris la décision de nous inscrire à un certificat technique de 2 ans dans une nouvelle université technique près de notre ville natale. Le programme était principalement en Java, donc à notre retour, nous avons commencé un cours de Java sur Coursera. Le premier module était en fait un cours de JavaScript, donc nous avons été immédiatement accrochés à JavaScript.

Pendant que nous apprenions JavaScript, nous avons attendu le début de l'année scolaire en mars 2018. Il n'y avait que 50 places pour l'université, donc nous nous sommes super impliqués et avons appris à l'avance. Nous sommes allés, avons passé des tests, réussi des cours, et puis nous avons dû attendre qu'ils décident. Nous avons obtenu les meilleures notes parmi tous les candidats, mais ces notes n'ont pas fait la différence. Les places seraient attribuées via un système de loterie. Mon mari a été accepté et j'ai été laissée de côté.

Il a décidé qu'il préférait apprendre par lui-même, il n'était plus aussi intéressé par Java parce qu'il était accro à JavaScript, donc nous avons commencé à apprendre par nous-mêmes.

Nous avons commencé avec Codecademy, mais c'était trop guidé pour nous (nous n'avions pas de comptes Premium). Quelque part, nous avons lu à propos de freeCodeCamp. Et nous avons commencé, très lentement au début (le premier certificat m'a pris des mois à obtenir, admettons qu'au milieu le programme a été changé et j'ai laissé tomber mon ordinateur portable et j'ai dû le faire réparer). Après la fin des vacances d'été et mon retour au travail à temps plein, les choses sont devenues difficiles.

Travailler à temps plein et faire freeCodeCamp à plein régime

Ce n'était pas facile, je ne vais pas mentir. Cela a aidé que la plupart de mes amis et connaissances ne vivent pas près de chez moi, et je vis dans une petite ville qui n'offre pas beaucoup d'opportunités de divertissement. En ce sens, la programmation a été un sauveur. J'avais quelque chose d'amusant à faire, et c'était addictif donc je pouvais tuer des heures d'ennui avec ça.

Cela a beaucoup aidé à gérer le nombre d'heures que j'ai passées à faire du travail mental (enseigner et étudier).

Le premier certificat a pris des mois, en partie parce que j'attendais d'entrer à l'université et en partie parce que je travaillais 10 heures par jour pendant les trois premiers mois de l'année scolaire.

Malheureusement, je ne pouvais pas simplement quitter mon travail et étudier à temps plein, car je devais payer les factures, donc j'ai dû devenir très bonne dans trois choses :

  1. La gestion du temps
  2. La discipline
  3. L'organisation

Gestion du temps

Je commençais le travail à 7h, donc je me suis mise à me lever à 4h30 la plupart des jours. Je commençais la journée avec des défis freeCodeCamp et du café. Parfois, je lisais aussi un livre ou faisais d'autres tutoriels, selon ce sur quoi je travaillais à ce moment-là. J'étudiais aussi pendant ma pause déjeuner et après le travail, mais j'ai accepté le fait que je n'étais pas si productive pendant la semaine à cause du travail. Donc pendant la semaine, je faisais surtout des défis courts, de la lecture, etc. Et je travaillais sur des projets le week-end, les jours fériés et pendant mon temps libre.

Si j'avais 30 minutes, je lisais pendant 30 minutes. Si j'avais 15, je faisais de l'étude pendant 15 minutes. J'ai utilisé chaque moment libre de ma journée pour étudier.

Le dimanche, je préparais la plupart de mes repas pour la semaine afin de ne pas avoir à passer du temps à cuisiner et de ne pas finir par manger des choses malsaines. Je planifiais aussi et rassemblais tout ce dont j'avais besoin pour le travail de la semaine, afin de ne pas avoir à passer du temps supplémentaire en dehors des heures de travail normales.

Heureusement, après juin, mes heures de travail ont été réduites de 10-12 à 8, donc je travaillais maintenant selon un horaire normal et j'ai commencé à accélérer le rythme.

Discipline

Vous devrez étudier même les jours où vous n'en avez pas envie. C'est là que la motivation joue aussi un grand rôle, mais la discipline est importante — surtout si vous êtes comme moi et que vous vous laissez facilement distraire par les réseaux sociaux et les vidéos de chats.

Le meilleur conseil que je puisse vous donner pour résister à la tentation de lire des articles en ligne est le suivant : si une question vous vient à l'esprit comme "comment les avions volent-ils ?" (ce qui est généralement le type de question qui me fait dévier et me fait perdre 30 minutes), notez-la quelque part et promettez-vous que vous pourrez tout lire à ce sujet après avoir terminé ce que vous êtes en train de faire.

99 % du temps, vous ne vous en soucierez plus, car ces questions surgissent dans votre cerveau simplement parce qu'il veut se distraire. Persévérez et vous le surmonterez.

Un autre aspect de la discipline est de devoir choisir l'étude plutôt que d'autres choses. Ce n'est pas la partie la plus amusante. J'ai dû renoncer à beaucoup de choses que j'aimais pour favoriser l'étude, et j'ai hâte de pouvoir revenir à elles. Je l'ai fait simplement parce que je voulais devenir développeuse le plus rapidement possible (voir Motivation ci-dessous), mais même si vous n'êtes pas pressé comme je l'étais, vous pourriez constater que vous passez beaucoup de temps à faire des choses qui, bien qu'elles soient agréables et sympas, prennent trop de votre temps.

Vous devrez prioriser et faire des choix difficiles.

Motivation

J'avais une motivation très forte qui était de devenir développeuse et de déménager en Europe. C'était mon objectif depuis longtemps et j'en suis arrivée au point où j'étais frustrée de ne pas l'atteindre. Tous mes amis ont quitté la ville, je n'ai pratiquement plus de famille ici, je me sentais isolée et je voulais partir.

C'est ce qui m'a poussée. C'était comme un feu sous mes pieds, je sentais que je n'avais pas le choix. Vous avez besoin d'une forte motivation pour faire des changements radicaux. Je ne sais pas pour vous, mais je suis une personne du genre "ne réparez pas ce qui n'est pas cassé", donc il est vraiment difficile de me faire faire des choses juste pour le plaisir de les faire.

Mes passe-temps sont tous très pratiques et productifs : le jardinage, le yoga, la cuisine. J'ai besoin d'avoir une raison de les faire (je veux des légumes gratuits, mon dos me fait mal, j'ai faim). Si vous êtes comme moi, vous devrez trouver une carotte pour vous motiver.

Passez un peu de temps à réfléchir à cela, qu'est-ce que vous voulez exactement accomplir en terminant freeCodeCamp ? Que voulez-vous changer ou obtenir dans votre vie personnelle grâce à cela ?

Le programme + ressources complémentaires

Voici quelques-unes des ressources complémentaires que j'ai utilisées lors de mon parcours freeCodeCamp. Gardez à l'esprit que ce n'est pas une liste exhaustive car j'ai fait des tonnes de recherches sur Google, et que certains de ces cours ne sont pas gratuits.

Conception Web Responsive : C'était la partie où j'avais déjà une certaine expérience, donc c'était facile et amusant. J'ai utilisé quelques ressources complémentaires, surtout pour Flexbox. Mon endroit préféré pour cela est Interneting is hard.

Algorithmes JavaScript et structures de données : Une fois que j'ai atteint les modules JavaScript, j'ai été accrochée. Tout était super amusant, j'ai beaucoup appris et j'avais hâte de le mettre en pratique.

Pour cette section, j'ai utilisé des livres, principalement. J'avais déjà assez d'exercices avec freeCodeCamp, mais j'avais besoin de plus d'explications. Beginning JS a aussi des tonnes d'exercices.

Au moment où j'ai atteint cette section, j'ai également rejoint le programme 1 Million Women to Techs (1MWTT) Summer of Code. J'ai appris les bases de Python et de JavaScript de base à avancé, ce qui a beaucoup aidé, surtout avec les Promesses.

Apprendre Python m'a également aidé à renforcer certains concepts de programmation de base. Je recommande sérieusement que lorsque vous vous sentez à l'aise avec JavaScript, vous essayiez un nouveau langage, juste ses concepts de base. Vous serez beaucoup plus à l'aise ensuite une fois que vous saurez comment faire la même chose avec différents outils.

Frameworks JavaScript : Cette section était également géniale car elle m'a donné une base en React et Redux. J'avais déjà suivi un cours React sur Udemy, React 16.6 - The Complete Guide (incl. React Router & Redux).

Je recommande vivement ce cours et d'autres du même auteur. Il est incroyablement complet et ses explications sont géniales. C'était l'un des rares cours Udemy où j'ai vraiment suivi le projet qu'il fait : normalement, je regarde les vidéos et j'applique les principes à ce sur quoi je travaille.

Sur 1millionwomentotech, nous avions une semaine React qui était principalement React Native et ensuite j'ai commencé à jouer avec. À cette époque, j'ai également commencé à travailler sur mon projet parallèle avec mon mari, que nous avons décidé de faire une PWA avec React.

Je ne peux pas assez insister sur l'importance de construire quelque chose de votre propre création à partir de zéro. J'ai appris bien plus en quelques semaines à construire notre application que ce que j'ai appris avec n'importe quel cours ou tutoriel.

APIs et Microservices : Cette section a été une grande révélation pour moi et a tout changé. Jusqu'à ce module, j'étais certaine de vouloir être développeuse front-end, mais après avoir appris Node.js, j'ai commencé à penser à devenir développeuse back-end ou Full Stack. Construire des APIs est juste tellement amusant et vous voyez les résultats si rapidement. J'ai commencé à construire mes premiers petits projets Full Stack et j'étais très excitée.

Quelques-unes des ressources que j'ai utilisées :

Pendant cette période, je faisais également du bénévolat pour "1MWTT" et on m'a demandé de créer une application Probot pour l'intégration des bénévoles avec Node. Cela m'a également donné un peu de pratique avec Node, ce qui était très amusant.

QA et Sécurité de l'Information : Ce module a également été une révélation. Jusqu'alors, je n'avais jamais écrit un seul test de ma vie. Maintenant, j'adore écrire des tests, et je me suis même beaucoup intéressée au Développement Piloté par les Tests.

J'ai principalement utilisé la documentation pour cette section, mais ensuite j'ai décidé de tester mon front-end également, et j'ai trouvé ce cours incroyable sur Udemy que je ne peux pas recommander assez. L'instructeur est de loin le meilleur instructeur que j'ai jamais vu sur Udemy. J'ai hâte de consommer tous les autres cours qu'elle sortira à l'avenir.

Visualisation de Données avec D3 : C'était le certificat le plus difficile, sans conteste. Les explications étaient bonnes, mais une fois que vous arrivez aux projets, vous découvrez que les défis ne couvrent que le premier projet, et vous êtes un peu seul pour le reste. Et il n'y a pas une tonne de bonnes ressources en ligne. J'ai principalement lu la documentation et utilisé des tutoriels. Voici les ressources qui m'ont finalement aidée à obtenir cette certification :

Conseils pour terminer le programme

En résumé, voici les choses qui m'ont le plus aidée à accomplir mon objectif de terminer le programme :

  • Utilisez le programme comme une feuille de route, mais complétez avec d'autres ressources
  • Ne restez pas bloquée longtemps : posez des questions, utilisez Google, faites de la programmation en binôme.
  • Fixez-vous des objectifs réalistes pour chaque jour et chaque semaine. Ne vous en voulez pas si une semaine vous êtes plus lente : la vie arrive. Ne laissez pas cela vous faire dévier de votre cours.
  • Gardez votre motivation à l'esprit : c'est ce qui vous poussera à travers les jours difficiles.
  • Priorisez : vous devrez réduire le temps que vous passez à faire d'autres choses.
  • N'oubliez pas de prendre des jours de repos. Ils sont vitaux pour le processus d'apprentissage. Et dormez suffisamment !

Après freeCodeCamp, je me sentais un peu perdue. C'était la feuille de route qui m'a guidée tout au long de mon parcours d'enseignante à développeuse.

Après quelques jours de réflexion et de planification, je me suis consacrée à mon projet parallèle que je construis avec mon mari. Nous apprenons et nous amusons, et nous sommes très excités à ce sujet.

Et oui, j'ai bien reçu une offre d'emploi juste après avoir terminé le programme, mais plus à ce sujet dans un prochain article.

Dans l'ensemble, je n'aurais pas pu apprendre tout ce que j'ai appris si rapidement sans freeCodeCamp et je suis extrêmement reconnaissante à tous ceux qui rendent un tel projet merveilleux possible.

Si vous ressentez la même chose et que vous pouvez redonner, envisagez de faire un don à freeCodeCamp ici.