Wie ich den gesamten freeCodeCamp-Lehrplan in 9 Monaten fertiggestellt habe, während ich Vollzeit gearbeitet habe

Im vergangenen Jahr habe ich den gesamten freeCodeCamp-Lehrplan abgeschlossen, während ich Vollzeit als Lehrer gearbeitet habe. In diesem Artikel werde ich skizzieren, wie ich das geschafft habe. Besonders wie ich meine Zeit organisiert habe und welches Zusatzmaterial ich verwendet habe.

Hintergrund

Erstens die Hintergrundgeschichte. Ich war nicht ganz neu im Codieren. Ich bin in einem kleinen Technologieunternehmen aufgewachsen.

Mein Vater gründete vor meiner Geburt eine eigene Firma, in der verschiedene technische Aktivitäten durchgeführt wurden, z. B. das Reparieren von Computern, das Einrichten von Internetverbindungen und Netzwerken für andere Unternehmen, das Unterrichten von Computerkursen und das Erstellen von Verwaltungsanwendungen für Unternehmen. Es war eine kleine Stadt, also waren sie im Grunde die „Techniker“ für die ganze Stadt.

Die Büros der Firma befanden sich in unserem Haus, also bin ich buchstäblich unter Computern und Leuten aufgewachsen, die sie mochten. Ich habe als Kind angefangen, mit Visual Basic herumzuspielen (einer der Jungs in der Firma hat mir beigebracht, wie man es benutzt) und ich habe meine ganze Freizeit online verbracht und mich mit anderen Nerds unterhalten.

Als ich ungefähr 12 Jahre alt war, schickte mir einer dieser Nerds eine E-Mail mit einem Webentwicklungshandbuch (eine riesige TXT-Datei, die sich hauptsächlich mit HTML befasste) und ich verwendete es, um meine eigene Fanseite zu erstellen. Es gab sogar einen dieser coolen Besuchsschalter.

Ich habe es auf Geocities gehostet, eine kostenlose kurze URL erhalten und es auf Yahoo und AltaVista aufgelistet (dies waren die größten zu dieser Zeit).

Danach passierte das Leben und ich gab die Idee, Programmierer zu sein, völlig auf, da die Umstände einen „realistischeren“ Ansatz erforderten. Ich werde jetzt nicht auf die Details eingehen, aber im Grunde musste ich das Studium aufgeben und einen Job bekommen.

Ich lebte mein Leben weiter. Ich baute gelegentlich eine Website für die Kunden meines Vaters und beschloss schließlich, Englisch zu unterrichten, was mir leicht fiel, und vergaß im Grunde alles über die Webentwicklung. Bis 2016 also.

Wie ich mich entschied, die Karriere zu wechseln

Ich liebe es zu unterrichten. Es ist ein lohnender Beruf, interessant und macht Spaß. Aber es hat seine Nachteile. Am Anfang fühlte sich alles wie eine Herausforderung an, aber nach so vielen Jahren fühlte ich, dass ich keinen Zweck hatte. Dass ich nicht mehr wuchs oder lernte.

Ich fühlte mich festgefahren. Als ob mein Job Jahr für Jahr genau der gleiche wäre. Ich habe gerade die Bewegungen durchgearbeitet. Es bot auch nicht viele Möglichkeiten, umzuziehen, was später für mich sehr wichtig wurde.

2013 traf ich meinen Mann und im nächsten Jahr machten wir eine dreimonatige Rucksackreise nach Europa, was ein ganz anderer Blog-Beitrag ist, aber im Grunde war das Budget extrem niedrig und wir hatten eine großartige Erfahrung. Wir haben Europa geliebt und beschlossen, für eine weitere lange Reise wiederzukommen.

Die Zeit verging, wir machten andere Sachen, und dann fand ich Codecademy und fing an, damit herumzuspielen und mit der Idee zu spielen, ein Vollzeitentwickler zu werden. Ich hatte bereits einige Erfahrungen mit der Erstellung von Websites nur mit HTML und CSS, aber ohne JavaScript. Ich habe viele Erfolgsgeschichten online gelesen, aber ich habe es immer noch nicht für eine echte Karriere gehalten, bei weitem nicht.

In der Zwischenzeit planten wir die nächste lange Reise, sparten Geld, planten und so weiter. Ich arbeitete immer mehr als freiberuflicher Übersetzer, war super in meine Karriere involviert und übersetzte coole Sachen wie Romane und Gedichte. 2017 kam und wir gingen dieses Mal wieder für zwei Monate nach Europa.

Dort haben wir eine Reihe von Entwicklern getroffen. Es war verrückt. Jeder einzelne Couch-Surfer, den wir getroffen haben, schien irgendwie in der IT zu sein, entweder als Software-Produktmanager, als Entwickler, als Tester und so weiter. Sie alle ermutigten uns, in die Technik einzusteigen. Zu diesem Zeitpunkt hatten wir bereits beschlossen, nach Europa zu ziehen, und viele sagten uns: „Hier könnte man einen Job finden. Entwickler sind hier gefragt, wir brauchen viele von ihnen. “

Bevor die Reise endete, beschlossen wir, uns für ein zweijähriges technisches Zertifikat an einer neu gegründeten technischen Universität in der Nähe unserer Heimatstadt anzumelden. Das Programm bestand hauptsächlich aus Java. Als wir zurückkamen, starteten wir einen Java-Kurs in Cousera. Das erste Modul war eigentlich ein JavaScript-Kurs, also haben wir uns sofort mit JavaScript beschäftigt.

Während wir JavaScript lernten, warteten wir auf den Beginn des Schuljahres im März 2018. Es gab nur 50 Plätze für die Uni, also wurden wir super engagiert und lernten vorher. Wir gingen, machten Tests, bestanden Kurse und mussten dann warten, bis sie sich entschieden hatten. Wir haben die besten Noten unter allen Kandidaten erhalten, aber diese Noten haben keinen Unterschied gemacht. Die Plätze würden über ein Lotteriesystem vergeben. Mein Mann stieg ein und ich wurde ausgeschlossen.

Er entschied, dass er es vorzog, alleine zu lernen, er interessierte sich nicht mehr so ​​sehr für Java, weil er von JavaScript begeistert war, also fingen wir an, selbst zu lernen.

Wir haben mit Codecademy angefangen, aber es war zu handlich für uns (wir hatten keine Premium-Konten). Irgendwo lesen wir über freeCodeCamp. Und wir haben es sehr langsam angefangen (das erste Zertifikat hat Monate gedauert, zugegeben, in der Mitte wurde der Lehrplan geändert und ich ließ meinen Laptop fallen und musste ihn reparieren lassen). Nachdem die Sommerferien zu Ende waren und ich wieder Vollzeit arbeitete, wurde es schwierig.

Vollzeit arbeiten und freeCodeCamp mit voller Geschwindigkeit machen

Es war nicht einfach, ich werde nicht lügen. Es hat geholfen, dass die meisten meiner Freunde und Bekannten nicht in meiner Nähe wohnen und ich in einer kleinen Stadt lebe, die nicht viele Unterhaltungsmöglichkeiten bietet. In diesem Sinne war das Programmieren ein Lebensretter. Ich hatte etwas Spaß zu tun und es machte süchtig, so dass ich stundenlange Langeweile damit töten konnte.

Das hat mir sehr geholfen, wenn ich mich mit der Anzahl der Stunden befasst habe, die ich mit geistiger Arbeit verbracht habe (Lehren und Lernen).

Das erste Zertifikat dauerte Monate, teils weil ich darauf wartete, an die Uni zu kommen, teils weil ich in den ersten drei Monaten des Schuljahres 10 Stunden am Tag arbeitete.

Leider konnte ich nicht einfach meinen Job kündigen und Vollzeit studieren, da ich die Rechnungen bezahlen musste, also musste ich in drei Dingen wirklich gut werden:

  1. Zeiteinteilung
  2. Disziplin
  3. Organisation

Zeiteinteilung

Ich begann um 7 Uhr morgens mit der Arbeit und stand an den meisten Tagen um 4:30 Uhr morgens auf. Ich begann den Tag mit freeCodeCamp-Herausforderungen und Kaffee. Manchmal las ich auch aus einem Buch oder machte andere Tutorials, je nachdem, woran ich gerade arbeitete. Ich habe auch während meiner Mittagspause und nach der Arbeit studiert, aber ich habe mich damit abgefunden, dass ich während der Woche wegen der Arbeit nicht so produktiv war. Während der Woche machte ich meistens kurze Herausforderungen, las und so weiter. Und ich habe an den Wochenenden, Feiertagen und in der Freizeit an Projekten gearbeitet.

Wenn ich 30 Minuten hätte, würde ich 30 Minuten lesen. Wenn ich 15 hatte, habe ich 15 Minuten lang studiert. Ich nutzte jeden freien Moment meines Tages, um zu studieren.

Sonntags bereitete ich die meisten meiner Mahlzeiten für die Woche zu, damit ich keine Zeit mit Kochen verbringen musste und keine ungesunden Sachen essen musste. Ich habe auch alles geplant und gesammelt, was ich für die Arbeit für die Woche brauchte, sodass ich neben den normalen Arbeitszeiten keine zusätzliche Zeit aufwenden musste.

Glücklicherweise wurde meine Arbeitszeit nach Juni von 10-12 auf 8 reduziert, so dass ich jetzt einen normalen Zeitplan arbeitete und dort anfing, das Tempo zu beschleunigen.

Disziplin

Sie müssen auch an Tagen lernen, an denen Sie keine Lust dazu haben. Hier spielt auch die Motivation eine große Rolle, aber Disziplin ist wichtig - besonders wenn Sie wie ich sind und sich durch soziale Medien und Katzenvideos stark ablenken lassen.

Der beste Tipp, den ich Ihnen geben kann, um der Versuchung entgegenzuwirken, Artikel online zu lesen, lautet: Wenn Sie eine Frage in Ihrem Kopf haben, wie „Wie fliegen Flugzeuge?“ (was normalerweise die Art von Frage ist, die mich mitreißt und mich 30 Minuten lang ansaugt), schreiben Sie sie irgendwo auf und versprechen Sie sich, dass Sie alles darüber lesen können, nachdem Sie fertig sind, was Sie tun.

99% der Zeit interessiert es Sie nicht mehr, weil diese Fragen nur in Ihrem Gehirn auftauchen, weil es abgelenkt werden möchte. Durchdrücken und du wirst es schlagen.

Ein weiterer Aspekt der Disziplin besteht darin, das Studium anderen Dingen vorzuziehen. Dies ist der nicht so lustige Teil. Ich musste viele, viele Dinge aufgeben, die ich gerne studierte, und ich kann es kaum erwarten, wieder zu ihnen zurückkehren zu können. Ich habe es nur getan, weil ich so schnell wie möglich Entwickler werden wollte (siehe Motivation unten), aber selbst wenn Sie nicht so eilig sind wie ich, werden Sie vielleicht feststellen, dass Sie viel Zeit damit verbringen, Dinge zu tun, die sogar so sind Obwohl sie angenehm und nett sind, nehmen Sie zu viel Zeit in Anspruch.

Sie müssen Prioritäten setzen und schwierige Entscheidungen treffen.

Motivation

Ich hatte einen sehr starken Motivator, der Entwickler wurde und nach Europa zog. Dies war mein Ziel für eine lange, lange Zeit und ich erreichte den Punkt, an dem ich frustriert war, dass ich es nicht bekam. Alle meine Freunde haben die Stadt verlassen, ich habe praktisch keine Familie hier, ich fühlte mich isoliert und wollte gehen.

Das hat mich angetrieben. Es fühlte sich an wie ein Feuer unter meinen Füßen, ich hatte das Gefühl, keine Wahl zu haben. Sie brauchen eine starke Motivation, um radikale Veränderungen vorzunehmen. Ich weiß nichts über dich, aber ich bin eine Art Person, die nicht repariert, was nicht kaputt ist. Es ist also wirklich schwierig, mich dazu zu bringen, Dinge zu tun, nur um sie zu tun.

Meine Hobbys sind alle sehr praktisch und produktiv: Gartenarbeit, Yoga, Kochen. Ich muss einen Grund haben, sie zu machen (ich möchte kostenloses Gemüse, mein Rücken tut weh, ich habe Hunger). Wenn Sie so etwas wie ich sind, müssen Sie eine Karotte finden, um weiterzumachen.

Denken Sie einige Zeit darüber nach. Was genau möchten Sie erreichen, indem Sie freeCodeCamp beenden? Was möchten Sie dadurch ändern oder in Ihr persönliches Leben bringen?

Das Curriculum + ergänzende Ressourcen

Im Folgenden sind einige der zusätzlichen Ressourcen aufgeführt, die ich auf meiner freeCodeCamp-Reise verwendet habe. Denken Sie daran, dass dies keine vollständige Liste ist, da ich tonnenweise gegoogelt habe und einige dieser Kurse nicht kostenlos sind.

Responsive Web Design: Dies war der Teil, mit dem ich bereits Erfahrung hatte, also war es einfach und hat Spaß gemacht. Ich habe einige zusätzliche Ressourcen verwendet, insbesondere für Flexbox. Mein Lieblingsort dafür ist Interneting ist schwer.

JavaScript-Algorithmen und Datenstrukturen: Als ich zu den JavaScript-Modulen kam, war ich begeistert. Alles hat super Spaß gemacht, ich habe viel gelernt und wollte es unbedingt in die Praxis umsetzen.

Für diesen Abschnitt habe ich hauptsächlich Bücher verwendet. Ich hatte bereits genug Übungen mit freeCodeCamp, aber ich brauchte mehr Erklärungen. Anfang JS hat auch jede Menge Übungen.

  • Beginn der 5. Ausgabe von JavaScript
  • Sie kennen JS nicht
  • Programmieren von Grundlagen mit JavaScript, HTML und CSS
  • JavaScript-Dokumentation

Als ich diesen Bereich erreichte, schloss ich mich auch dem Summer of Code-Programm von 1 Million Women to Tech (1MWTT) an. Ich habe grundlegendes Python und grundlegendes bis fortgeschrittenes JavaScript gelernt, was sehr hilfreich war, insbesondere bei Promises.

Das Erlernen von Python hat mir auch geholfen, einige grundlegende Programmierkonzepte zu vertiefen. Ich empfehle dringend, wenn Sie sich mit JavaScript sicher fühlen, eine neue Sprache auszuprobieren, nur die Grundkonzepte. Sie werden sich danach viel wohler fühlen, wenn Sie wissen, wie man dasselbe mit verschiedenen Werkzeugen macht.

JavaScript Frameworks: Dieser Abschnitt war auch großartig, da er mir eine Grundlage für React und Redux gab. Ich hatte bereits einen React-Kurs über Udemy, React 16.6 - The Complete Guide (inkl. React Router & Redux) absolviert.

Ich kann diesen und andere Kurse des gleichen Autors nur empfehlen. Er ist unglaublich gründlich und seine Erklärungen sind großartig. Dies war einer der wenigen Udemy-Kurse, in denen ich das von ihm durchgeführte Projekt tatsächlich verfolgt habe: Normalerweise schaue ich mir die Videos an und wende die Prinzipien auf alles an, woran ich arbeite.

Auf 1millionwomentotech hatten wir eine React-Woche, die größtenteils aus React stammte, und dann fing ich an, damit herumzuspielen. Zu diesem Zeitpunkt begann ich auch mit meinem Mann an meinem Nebenprojekt zu arbeiten, das wir als PWA mit React beschlossen hatten.

Ich kann nicht betonen, wie wichtig es ist, etwas Eigenes von Grund auf neu zu bauen. Ich habe in ein paar Wochen viel mehr gelernt, als ich mit einem Kurs oder Tutorial gelernt habe.

APIs und Microservices: Dieser Abschnitt war eine große Offenbarung für mich und hat alles verändert. Bis zu diesem Modul war ich mir sicher, dass ich ein Front-End-Entwickler sein wollte, aber nachdem ich Node.js gelernt hatte, begann ich darüber nachzudenken, ein Back-End- oder Full-Stack-Entwickler zu sein. Das Erstellen von APIs macht einfach so viel Spaß und Sie sehen die Ergebnisse so schnell. Ich begann meine ersten kleinen Full Stack-Projekte zu bauen und war sehr aufgeregt.

Einige der Ressourcen, die ich verwendet habe:

  • Der vollständige Node.js-Entwicklerkurs (2. Ausgabe)
  • Node Girls Einführung in die Backend-Entwicklung mit Express
  • Knotendokumente
  • Express-Dokumente
  • NodeSchool
  • Einführung in Node.js
  • REST & GraphQL API Design in Node.js, v2 (mit Express & MongoDB)

Während dieser Zeit meldete ich mich auch freiwillig für „1MWTT“ und wurde gebeten, eine Probot-App für Freiwillige an Bord mit Node zu erstellen. Dies gab mir auch etwas Übung mit Node, was sehr viel Spaß machte.

Qualitätssicherung und Informationssicherheit: Dieses Modul war auch ein Augenöffner. Bis dahin hatte ich noch nie in meinem Leben einen einzigen Test geschrieben. Jetzt liebe ich es, Tests zu schreiben, und ich habe mich sogar sehr für testgetriebene Entwicklung interessiert.

Ich habe meistens die Dokumente für diesen Abschnitt verwendet, aber dann habe ich beschlossen, auch mein Front-End zu testen, und ich fand diesen erstaunlichen Kurs auf Udemy, den ich nicht genug empfehlen kann. Der Instruktor ist bei weitem der beste Instruktor, den ich je auf Udemy gesehen habe. Ich kann es kaum erwarten, andere Kurse zu konsumieren, die sie in Zukunft veröffentlicht.

- Chai docs

- Reaktionstests mit Scherz und Enzym

Datenvisualisierung mit D3: Dies war zweifellos das schwierigste Zertifikat. Die Erklärungen waren gut, aber sobald Sie zu den Projekten kommen, stellen Sie fest, dass die Herausforderungen nur das erste Projekt abdecken und Sie für den Rest ein bisschen alleine sind. Und es gibt nicht viele gute Ressourcen online. Ich habe hauptsächlich die Dokumente gelesen und Tutorials verwendet. Hier sind die Ressourcen, die mich schließlich durch diese Zertifizierung gebracht haben:

- D3.js Tutorials von d3Vienno

- D3-Dokumentation

Tipps zum Beenden des Lehrplans

Zusammenfassend sind dies die Dinge, die mir am meisten geholfen haben, mein Ziel, den Lehrplan zu beenden, zu erreichen:

  • Verwenden Sie den Lehrplan als Roadmap, ergänzen Sie ihn jedoch durch andere Ressourcen
  • Bleib nicht lange hängen: stelle Fragen, Google, Paarprogramm.
  • Setzen Sie sich für jeden Tag und jede Woche realistische Ziele. Mach dich nicht fertig, wenn du eine Woche langsamer bist: Das Leben passiert. Lass dich nicht vom Kurs abbringen.
  • Denken Sie an Ihre Motivation: Sie wird Sie durch die harten Tage führen.
  • Priorisieren: Sie müssen die Zeit reduzieren, die Sie für andere Dinge aufwenden.
  • Vergessen Sie nicht, Tage frei zu nehmen. Sie sind für den Lernprozess von entscheidender Bedeutung. Und genug Schlaf bekommen!

Nach freeCodeCamp fühlte ich mich etwas verloren. Dies war die Roadmap, die mich auf meinem Weg vom Lehrer zum Entwickler führte.

Nach ein paar Tagen des Nachdenkens und Planens widmete ich mich meinem Nebenprojekt, das ich mit meinem Mann baue. Wir lernen und haben Spaß und freuen uns sehr darüber.

Und ja, ich habe gleich nach Abschluss des Lehrplans ein Stellenangebot erhalten , aber mehr dazu in einem kommenden Artikel.

Alles in allem hätte ich nicht alles lernen können, was ich so schnell gelernt habe, wenn es nicht für freeCodeCamp gewesen wäre, und ich bin allen sehr dankbar, die ein so wunderbares Projekt möglich machen.

Wenn es Ihnen genauso geht und Sie etwas zurückgeben können, spenden Sie bitte hier an freeCodeCamp.