Comment j'ai terminé l'intégralité du programme freeCodeCamp en 9 mois tout en travaillant à temps plein

Au cours de la dernière année, j'ai terminé tout le programme de freeCodeCamp tout en travaillant à plein temps en tant que professeur. Dans cet article, je vais décrire comment j'ai réussi à le faire. En particulier comment j'ai organisé mon temps et quel matériel supplémentaire j'ai utilisé.

Contexte

Tout d'abord, l'histoire de retour. Je n'étais pas complètement nouveau dans le codage. J'ai grandi dans une petite entreprise de technologie.

Mon père a fondé sa propre entreprise avant ma naissance, où ils exerçaient différentes activités dans le domaine de la technologie, telles que 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 «techniciens» incontournables pour toute la ville.

Les bureaux de l'entreprise étaient dans notre maison, alors j'ai littéralement grandi parmi les ordinateurs et les gens qui les aimaient. J'ai commencé à jouer avec Visual Basic en tant qu'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 nerds.

Quand j'avais environ 12 ans, l'un de ces nerds m'a envoyé un manuel de développement Web (un énorme fichier .txt qui traitait essentiellement de HTML) et je l'ai utilisé pour créer mon propre site de fans. Il y avait même un de ces comptoirs de visite sympas.

Je l'ai hébergé sur Geocities, j'ai obtenu une URL courte gratuite et je l'ai répertorié sur Yahoo et AltaVista (c'étaient les plus gros à l'époque).

Après cela, la vie est arrivée et j'ai complètement abandonné l'idée d'être programmeur, car les circonstances exigeaient une approche plus «réaliste». Je n'entrerai pas dans les détails maintenant, mais en gros, j'ai dû abandonner mes études et trouver un emploi.

J'ai continué à vivre ma vie. J'ai créé le site Web occasionnel pour les clients de mon père, puis j'ai finalement décidé de commencer à enseigner l'anglais, ce qui était quelque chose qui m'est venu facilement, et j'ai fondamentalement oublié le développement Web. Jusqu'en 2016 c'est.

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

J'adore enseigner. C'est un métier enrichissant, intéressant et amusant. Mais il a ses inconvénients. Au début, tout ressemblait à un défi, mais après tant d'années à le faire, j'ai commencé à sentir que je n'avais aucun but. Que je n'étais plus en train de grandir ou d'apprendre.

Je me sentais coincé. Comme si mon travail était exactement la même année après année. J'étais juste en train de parcourir les mouvements. Cela n'offrait pas non plus beaucoup d'opportunités de déménagement, ce qui est devenu très important pour moi par la suite.

En 2013, j'ai rencontré mon mari et l'année suivante, nous avons fait un voyage de trois mois en sac à dos en Europe, ce qui est un article de blog complètement différent, mais en gros, le budget était extrêmement faible et nous avons eu une expérience formidable. Nous avons adoré l'Europe et nous avons décidé de revenir pour un autre long voyage.

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

Pendant ce temps, nous planifions le prochain long voyage, économisions de l'argent, planifions, etc. Je travaillais de plus en plus comme traductrice indépendante, très impliquée dans ma carrière, traduisant des trucs sympas comme des romans et de la poésie. 2017 est venu et nous sommes retournés en Europe cette fois-ci pendant deux mois.

Là, nous avons rencontré un groupe de développeurs. C'était fou. Chaque internaute que nous avons rencontré semblait être dans l'informatique, que ce soit en tant que chef de produit logiciel, développeur, testeur, etc. Ils nous ont tous encouragés à nous lancer dans la technologie. À ce moment-là, nous avions déjà décidé que nous voulions déménager en Europe et beaucoup d'entre eux nous ont dit: «Vous pourriez trouver un emploi 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 université technique nouvellement fondée près de notre ville natale. Le programme était principalement Java donc quand nous sommes revenus, nous avons commencé un cours Java dans Cousera. Le premier module était en fait un cours JavaScript, nous nous sommes donc immédiatement familiarisés avec JavaScript.

Pendant que nous apprenions le JavaScript, nous avons attendu la rentrée scolaire en mars 2018. Il n'y avait que 50 places pour l'Uni, donc nous nous sommes super dévoués et avons appris à l'avance. Nous y sommes allés, avons passé des tests, avons réussi des cours, puis nous avons dû attendre qu'ils aient décidé. Nous avons obtenu les notes les plus élevées parmi tous les candidats, mais ces notes n'ont fait aucune différence. Les places seraient attribuées via un système de loterie. Mon mari est entré et j'ai été exclu.

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

Nous avons commencé avec Codecademy, mais c'était trop portable pour nous (nous n'avions pas de comptes Premium). Quelque part, nous lisons sur freeCodeCamp. Et nous l'avons commencé, très lentement au début (le premier certificat m'a pris des mois à obtenir, certes, au milieu, le programme a été modifié 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 le retour au travail à plein temps, les choses se sont compliquées.

Travailler à plein temps et faire freeCodeCamp à pleine vitesse

Ce n'était pas facile, je ne mentirai pas. Le fait que la plupart de mes amis et connaissances ne vivent pas près de moi a aidé et je vis dans une petite ville qui n'offre pas beaucoup de possibilités de divertissement. En ce sens, la programmation a sauvé la vie. J'avais quelque chose d'amusant à faire, et c'était addictif pour que je puisse tuer des heures d'ennui avec ça.

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

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

Malheureusement, je ne pouvais pas simplement quitter mon emploi et étudier à plein temps, car je devais payer les factures, je devais donc être vraiment bon dans 3 choses:

  1. Gestion du temps
  2. La discipline
  3. Organisation

Gestion du temps

J'ai commencé à travailler à 7 heures du matin, alors j'ai commencé à me lever à 4 h 30 presque tous les jours. J'ai commencé 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 en ce moment. J'ai également étudié pendant ma pause déjeuner et après le travail, mais j'ai accepté le fait que je n'étais pas aussi productif pendant la semaine à cause du travail. Donc, pendant la semaine, j'ai surtout fait de courts défis, de la lecture, etc. Et j'ai travaillé sur des projets le week-end, les vacances et le temps libre.

Si j'avais 30 minutes, j'aurais lu 30 minutes. Si j'en avais 15, j'ai étudié 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 de la semaine, donc je n'avais pas à passer du temps à cuisiner et je n'avais pas à finir par manger des choses malsaines. J'ai également planifié et rassemblé tout ce dont j'avais besoin pour le travail de la semaine, donc je n'ai pas eu besoin de passer plus de temps en plus 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 là j'ai commencé à accélérer le rythme.

La discipline

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

La meilleure astuce que je puisse vous donner pour lutter contre la tentation de lire des articles en ligne est la suivante: si vous vous posez une question dans votre tête comme «comment les avions volent-ils?» (ce qui est généralement le type de question qui m'emporte et m'aspire pendant 30 minutes), écrivez-la quelque part et promettez-vous de tout lire après avoir terminé ce que vous faites.

99% du temps, vous ne vous en souciez plus, car ces questions surgissent simplement dans votre cerveau parce qu'il veut être distrait. Poussez et vous le battrez.

Un autre aspect de la discipline est d'avoir à choisir l'étude plutôt que d'autres choses. C'est la partie pas si amusante. J'ai dû renoncer à beaucoup, beaucoup de choses que j'aimais pour favoriser les études, et j'ai hâte de pouvoir y revenir. Je l'ai fait simplement parce que je voulais devenir développeur le plus tôt possible (voir Motivation ci-dessous), mais même si vous n'êtes pas pressé comme moi, vous constaterez peut-être que vous passez beaucoup de temps à faire des choses qui, même bien qu'ils soient agréables et agréables, ils prennent trop de temps.

Vous devrez établir des priorités et faire des choix difficiles.

Motivation

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

C'est ce qui m'a poussé. 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 un genre de personne «ne réparez pas ce qui n'est pas cassé», donc c'est vraiment difficile de me faire faire des choses juste pour le plaisir de les faire.

Mes hobbies sont tous très pratiques et productifs: jardinage, yoga, cuisine. J'ai besoin d'une raison pour les faire (je veux des légumes gratuits, j'ai mal au dos, j'ai faim). Si vous êtes comme moi, vous devrez trouver une carotte pour vous permettre de continuer.

Passez du temps à réfléchir à cela, qu'est-ce que vous voulez accomplir exactement en terminant freeCodeCamp? Que souhaitez-vous changer ou obtenir dans votre vie personnelle à travers cela?

Le programme + ressources supplémentaires

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

Conception Web adaptative: c'était la partie avec laquelle j'avais déjà une certaine expérience, donc c'était facile et amusant. J'ai utilisé des ressources supplémentaires, en particulier pour Flexbox. Mon endroit préféré pour cela est Internet est difficile.

Algorithmes JavaScript et structures de données: Une fois que je suis arrivé aux modules JavaScript, je suis devenu accro. Tout était super amusant, j'ai beaucoup appris et j'avais hâte de le mettre en pratique.

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

  • Début de la 5e édition de JavaScript
  • Vous ne connaissez pas JS
  • Fondations de programmation avec JavaScript, HTML et CSS
  • Documentation JavaScript

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

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

Frameworks JavaScript: Cette section était également très bien car elle m'a donné une base dans React et Redux. J'avais déjà suivi un cours React sur Udemy, React 16.6 - The Complete Guide (y compris React Router & Redux).

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

Sur 1millionwomentotech, nous avons eu une semaine React qui était principalement native de React, puis j'ai commencé à jouer avec. À ce moment-là, j'ai également commencé à travailler sur mon projet parallèle avec mon mari, dont nous avons décidé qu'il allait devenir un PWA avec React.

Je ne peux pas souligner à quel point il est important de construire quelque chose de votre choix à partir de zéro. J'ai appris beaucoup plus en quelques semaines à construire notre application que je n'en ai appris avec n'importe quel cours ou tutoriel.

API et microservices: Cette section a été une grande révélation pour moi et a tout changé. Jusqu'à ce module, j'étais certain de vouloir devenir développeur front-end, mais après avoir appris Node.js, j'ai commencé à penser à devenir un développeur back-end ou Full Stack. Construire des API est 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é.

Certaines des ressources que j'ai utilisées:

  • Le cours de développement complet Node.js (2e édition)
  • Node Girls Introduction au développement backend avec Express
  • Documents sur les nœuds
  • Documents express
  • NodeSchool
  • Introduction à Node.js
  • Conception d'API REST et GraphQL dans Node.js, v2 (avec Express et MongoDB)

Pendant ce temps, je faisais également du bénévolat pour «1MWTT» et on m'a demandé de créer une application Probot pour les bénévoles d'intégration avec Node. Cela m'a aussi donné un peu de pratique avec Node, ce qui était très amusant.

Assurance qualité et sécurité de l'information: ce module a également été une révélation. Jusque-là, je n'avais jamais écrit un seul test de ma vie. Maintenant, j'aime écrire des tests et je me suis même beaucoup intéressé au développement piloté par les tests.

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

- Docs de Chai

- Test de réaction avec Jest et Enzyme

Visualisation des données avec D3: c'était le certificat le plus difficile, haut la main. 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 permis d'obtenir cette certification:

- Tutoriels D3.js par d3Vienno

- Documentation D3

Conseils pour terminer le programme

Pour résumer, ce sont les choses qui m'ont le plus aidé à atteindre mon objectif de terminer le programme:

  • Utilisez le programme comme une feuille de route, mais complétez-le avec d'autres ressources
  • Ne restez pas bloqué longtemps: posez des questions, Google, programme de jumelage.
  • Fixez-vous des objectifs réalistes pour chaque jour et chaque semaine. Ne vous en faites pas si une semaine vous êtes plus lent: la vie arrive. Ne laissez pas cela vous déranger.
  • Gardez à l'esprit votre motivation: c'est ce qui vous poussera à traverser 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 congé. Ils sont essentiels au processus d'apprentissage. Et dormez suffisamment!

Après freeCodeCamp, je me suis senti un peu perdu. C'est la feuille de route qui m'a guidé tout au long de mon parcours d'enseignant à développeur.

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

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

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

Si vous ressentez la même chose et êtes en mesure de redonner, veuillez envisager de faire un don à freeCodeCamp ici.