Hvordan jeg fullførte hele freeCodeCamp-læreplanen på 9 måneder mens jeg jobbet på heltid

I løpet av det siste året fullførte jeg hele freeCodeCamp-læreplanen mens jeg jobbet heltid som lærer. I denne artikkelen vil jeg skissere hvordan jeg klarte å gjøre dette. Spesielt hvordan jeg organiserte tiden min og hvilket tilleggsmateriale jeg brukte.

Bakgrunn

Først bakhistorien. Jeg var ikke helt ny med koding. Jeg vokste opp i et lite teknologiselskap.

Min far grunnla sitt eget selskap før jeg ble født, hvor de utførte forskjellige aktiviteter innen teknologi, for eksempel å fikse datamaskiner, sette opp internettforbindelser og nettverk for andre selskaper, undervise i datakurs og bygge administrative applikasjoner for bedrifter. Det var en liten by, så de var i utgangspunktet "tech gutta" for hele byen.

Firmaets kontorer var i huset vårt, så jeg vokste bokstavelig talt opp blant datamaskiner og folk som likte dem. Jeg begynte å leke med Visual Basic som barn (en av gutta i selskapet lærte meg å bruke det), og jeg brukte all fritiden min på nettet og chattet med andre nerder.

Da jeg var omtrent 12, sendte en av disse nerdene meg en webutviklingshåndbok (en stor .txt-fil som i utgangspunktet handlet om HTML), og jeg brukte den til å bygge mitt eget fan-nettsted. Det hadde til og med en av de kule besøkstellene.

Jeg var vert for det på Geocities, fikk en gratis kort URL og oppførte den på Yahoo og AltaVista (disse var de største på den tiden).

Etter det skjedde livet og jeg ga helt opp ideen om å være programmerer, da omstendighetene krevde en mer “realistisk” tilnærming. Jeg vil ikke gå i detaljene nå, men i utgangspunktet måtte jeg gi opp studiet og få jobb.

Jeg fortsatte livet mitt. Jeg bygde en og annen nettside for pappas klienter, og bestemte meg til slutt for å begynne å lære engelsk, noe som kom lett for meg, og i utgangspunktet glemte alt om nettutvikling. Fram til 2016 altså.

Hvordan jeg bestemte meg for å bytte karriere

Jeg elsker å undervise. Det er et givende yrke, interessant og morsomt. Men det har sine ulemper. I begynnelsen føltes alt som en utfordring, men etter så mange år å gjøre det begynte jeg å føle at jeg ikke hadde noen hensikt. At jeg ikke vokste eller lærte lenger.

Jeg følte meg fast. Som om jobben min var nøyaktig samme år inn og ut. Jeg gikk bare gjennom bevegelsene. Det ga heller ikke mange muligheter til å flytte, noe som ble veldig viktig for meg senere.

I 2013 møtte jeg mannen min, og året etter dro vi på en tre måneders backpackertur til Europa, som er et helt annet blogginnlegg, men i utgangspunktet var det ekstremt lavt budsjett, og vi hadde en fantastisk opplevelse. Vi elsket Europa, og vi bestemte oss for at vi skulle komme tilbake på nok en lang tur.

Tiden gikk, vi gjorde andre ting, og da fant jeg Codecademy og begynte å leke med det, og leke med ideen om å bli en heltidsutvikler. Jeg hadde allerede erfaring med å bygge nettsteder med bare HTML og CSS, men ingen JavaScript. Jeg leste mange suksesshistorier på nettet, men jeg anså det fortsatt ikke som en ekte karriere, ikke på lang sikt.

I mellomtiden planla vi neste lange tur, sparte penger, planlegging og så videre. Jeg jobbet som frilansoversetter mer og mer, veldig involvert i karrieren min, og oversatte kule ting som romaner og poesi. 2017 kom og vi dro til Europa igjen denne gangen i to måneder.

Der møtte vi en haug med utviklere. Det var sprøtt. Hver sofasurfer vi møtte, så ut til å være i IT på en eller annen måte, enten som programvaresjef, utvikler, tester og så videre. De oppfordret oss alle til å komme inn i teknologi. På den tiden hadde vi allerede bestemt oss for at vi ønsket å flytte til Europa, så mange av dem fortalte oss: ”Du kunne finne en jobb her. Her er utviklere etterspurt, vi trenger mange av dem. ”

Før turen ble avsluttet, tok vi beslutningen om å registrere oss for et 2 års teknisk sertifikat i et nystiftet teknisk universitet i nærheten av hjembyen vår. Programmet var hovedsakelig Java, så da vi kom tilbake, startet vi et Java-kurs i Cousera. Den første modulen var faktisk et JavaScript-kurs, så vi ble faktisk hekta med JavaScript med en gang.

Mens vi lærte JavaScript, ventet vi på begynnelsen av skoleåret i mars 2018. Det var bare 50 steder for Uni, så vi ble superengasjerte og lærte på forhånd. Vi gikk, tok prøver, besto kurs, og så måtte vi vente til de bestemte seg. Vi fikk de høyeste karakterene blant alle kandidatene, men disse karakterene gjorde ingen forskjell. Stedene vil bli tildelt via et lotterisystem. Mannen min kom inn og jeg ble utelatt.

Han bestemte seg for at han foretrakk å lære av seg selv, han var ikke så interessert i Java lenger fordi han var hekta på JavaScript, så vi begynte å lære på egenhånd.

Vi startet med Codecademy, men det var for håndholdt for oss (vi hadde ikke Premium-kontoer). Et eller annet sted leser vi om freeCodeCamp. Og vi startet det veldig sakte i begynnelsen (det første sertifikatet tok meg måneder å få, riktignok i midten ble læreplanen endret, og jeg droppet den bærbare datamaskinen min og måtte få den reparert). Etter at sommerferien var over, og jeg gikk tilbake til full jobb, ble det vanskelig.

Jobber heltid og gjør freeCodeCamp i full fart

Det var ikke lett, jeg vil ikke lyve. Det hjalp at de fleste av mine venner og bekjente ikke bor i nærheten av meg, og jeg bor i en liten by som ikke tilbyr mange underholdningsmuligheter. Sånn sett var programmering en livredder. Jeg hadde noe gøy å gjøre, og det var vanedannende slik at jeg kunne drepe timer med kjedsomhet med det.

Så det hjalp mye når jeg taklet mengden timer jeg brukte på mentalt arbeid (undervisning og studier).

Det første sertifikatet tok måneder, dels fordi jeg ventet på å komme inn i Uni, dels fordi jeg jobbet 10 timer om dagen de første 3 månedene av skoleåret.

Dessverre kunne jeg ikke bare si opp jobben min og studere på heltid, siden jeg trengte å betale regningene, så jeg måtte bli veldig god på 3 ting:

  1. Tidsfordriv
  2. Disiplin
  3. Organisasjon

Tidsfordriv

Jeg begynte å jobbe klokka 07.00, så jeg begynte å stå opp klokka 04.30 de fleste dagene. Jeg startet dagen med freeCodeCamp utfordringer og kaffe. Noen ganger leste jeg også fra en bok eller gjorde andre veiledninger, avhengig av hva jeg jobbet med for øyeblikket. Jeg studerte også i lunsjpausen min og etter jobb, men jeg ble enig med det faktum at jeg ikke var så produktiv i løpet av uken på grunn av jobb. Så i løpet av uken gjorde jeg stort sett korte utfordringer, lesing og så videre. Og jeg jobbet med prosjekter i helgene, ferien og fritiden.

Hvis jeg hadde 30 minutter, hadde jeg lest 30 minutter. Hvis jeg hadde 15, studerte jeg i 15 minutter. Jeg brukte hvert eneste ledige øyeblikk på dagen for å studere.

På søndager ville jeg tilberede de fleste måltidene mine for uken, slik at jeg ikke måtte bruke tid på å lage mat og ikke måtte ende opp med å spise usunne ting. Jeg planla og samlet også alt jeg trengte til jobb for uken, så jeg trengte ikke bruke ekstra tid i tillegg til vanlig arbeidstid.

Heldigvis etter juni ble arbeidstiden min redusert fra 10-12 til 8, så jeg jobbet nå med en normal timeplan og der begynte jeg å øke tempoet.

Disiplin

Du må studere selv på dager du ikke har lyst. Her spiller motivasjon også en stor rolle, men disiplin er viktig - spesielt hvis du er som meg og blir distrahert mye med sosiale medier og kattevideoer.

Det beste tipset jeg kan gi deg for å bekjempe fristelsen til å lese artikler på nettet er dette: hvis du kommer med et spørsmål i hodet ditt som "hvordan fly fly?" (som vanligvis er typen spørsmål som får meg med og suger meg inn i 30 minutter), skriv det ned et sted og lov deg selv at du kan lese alt om det når du er ferdig med det du gjør.

99% av tiden bryr du deg ikke lenger, fordi disse spørsmålene bare dukker opp i hjernen din fordi den vil bli distrahert. Skyv gjennom så slår du det.

Et annet aspekt ved disiplin er å måtte velge studie fremfor andre ting. Dette er den ikke så morsomme delen. Jeg måtte gi opp mange, mange ting jeg likte å favorisere å studere, og jeg gleder meg til å kunne gå tilbake til dem. Jeg gjorde det bare fordi jeg ønsket å bli utvikler så snart som mulig (se Motivasjon nedenfor), men selv om du ikke har det travelt som jeg var, kan du oppdage at du bruker mye tid på å gjøre ting som, til og med Selv om de er hyggelige og hyggelige, tar du for mye av tiden din.

Du må prioritere og ta vanskelige valg.

Motivasjon

Jeg hadde en veldig sterk motivator som ble utvikler og flyttet til Europa. Dette var målet mitt i lang, lang tid, og jeg nådde et punkt der jeg ble frustrert over at jeg ikke fikk det. Alle vennene mine forlot byen, jeg har praktisk talt ingen familie her, jeg følte meg isolert og ønsket å dra.

Det var det som presset meg. Det føltes som en brann under føttene mine, jeg følte at jeg ikke hadde noe valg. Du trenger en sterk motivasjon for å gjøre radikale endringer. Jeg vet ikke om deg, men jeg er en "ikke fikse det som ikke er ødelagt", en person, så det er veldig vanskelig å få meg til å gjøre ting bare for å gjøre det.

Mine hobbyer er veldig praktiske og produktive: hagearbeid, yoga, matlaging. Jeg må ha en grunn til å gjøre dem (jeg vil ha gratis grønnsaker, ryggen gjør vondt, jeg er sulten). Hvis du er noe som meg, må du finne en gulrot for å holde deg i gang.

Bruk litt tid på å tenke på dette, hva er det akkurat du vil oppnå ved å fullføre freeCodeCamp? Hva vil du endre eller få i ditt personlige liv gjennom det?

Læreplanen + Supplerende ressurser

Følgende er noen av de supplerende ressursene jeg brukte på min freeCodeCamp-reise. Husk at dette ikke er en uttømmende liste fordi jeg gjorde massevis av googling, og at noen av disse kursene ikke er gratis.

Responsivt nettdesign: Dette var den delen jeg allerede hadde litt erfaring med, så det var enkelt og morsomt. Jeg brukte noen tilleggsressurser, spesielt for Flexbox. Mitt favorittsted for dette er Internett er vanskelig.

JavaScript-algoritmer og datastrukturer: Når jeg kom til JavaScript-modulene, ble jeg hekta. Alt var supergøy, jeg lærte mye og var ivrig etter å få det ut i livet.

For denne delen brukte jeg bøker, for det meste. Jeg hadde allerede nok øvelser med freeCodeCamp, men jeg trengte flere i veien for forklaringer. Begynnelsen på JS har også mange øvelser.

  • Begynner JavaScript 5. utgave
  • Du kjenner ikke JS
  • Programmering av stiftelser med JavaScript, HTML og CSS
  • JavaScript-dokumentasjon

Da jeg nådde denne delen, ble jeg også med i 1 million kvinner til Techs (1MWTT) Summer of Code-program. Jeg lærte grunnleggende Python og grunnleggende til avansert JavaScript som hjalp mye, spesielt med løfter.

Å lære Python hjalp meg også med å forsterke noen grunnleggende programmeringskonsepter. Jeg anbefaler på det sterkeste at når du føler deg trygg med JavaScript, prøver du et nytt språk, bare dets grunnleggende konsepter. Du vil være mye mer komfortabel etterpå når du vet hvordan du gjør det samme med forskjellige verktøy.

JavaScript Frameworks: Denne delen var også flott, da den ga meg et grunnlag i React og Redux. Jeg hadde allerede fulgt et React-kurs på Udemy, React 16.6 - The Complete Guide (inkl. React Router & Redux).

Jeg anbefaler dette kurset og andre av samme forfatter på det sterkeste. Han er utrolig grundig, og forklaringene hans er kjempebra. Dette var et av få Udemy-kurs der jeg faktisk fulgte med på prosjektet han lager: Jeg ser normalt på videoene og bruker prinsippene på det jeg jobber med.

På 1millionwomentotech hadde vi en React-uke som for det meste var React-innfødt, og så begynte jeg å leke med den. På den tiden begynte jeg også å jobbe med sideprosjektet mitt med mannen min, som vi bestemte oss for å være en PWA med React.

Jeg kan ikke understreke hvor viktig det er å bygge noe eget fra bunnen av. Jeg har lært mye mer på et par uker med å bygge appen vår enn jeg har lært med noe kurs eller opplæring.

APIer og mikrotjenester: Denne delen var en stor åpenbaring for meg og endret alt. Frem til den modulen var jeg sikker på at jeg ønsket å være en front-end-utvikler, men etter å ha lært Node.js begynte jeg å tenke på å være en back-end eller Full Stack-utvikler. Å bygge API-er er bare så gøy, og du ser resultater så raskt. Jeg begynte å bygge mine første små Full Stack-prosjekter, og jeg ble veldig spent.

Noen av ressursene jeg brukte:

  • The Complete Node.js Developer Course (2. utgave)
  • Node Girls Intro to Backend Development with Express
  • Node Docs
  • Express Docs
  • NodeSchool
  • Introduksjon til Node.js
  • REST & GraphQL API Design i Node.js, v2 (bruker Express & MongoDB)

I løpet av denne tiden meldte jeg meg også til "1MWTT", og jeg ble bedt om å lage en Probot-app for frivillige med Node med Node. Dette ga meg også litt øvelse med Node, noe som var veldig gøy.

QA og informasjonssikkerhet: Denne modulen var også en øyeåpner. Inntil da hadde jeg aldri skrevet en eneste test i mitt liv. Nå elsker jeg å skrive tester, og til og med ble jeg veldig interessert i Test Driven Development.

Jeg brukte for det meste dokumentene for denne delen, men så bestemte jeg meg for å teste frontend også, og jeg fant dette fantastiske kurset på Udemy som jeg ikke kan anbefale nok. Instruktøren er den aller beste instruktøren jeg noensinne har sett på Udemy. Jeg kan ikke vente med å konsumere andre kurs hun gir ut i fremtiden.

- Chai dokumenterer

- React Testing med Jest and Enzyme

Datavisualisering med D3: Dette var det vanskeligste sertifikatet, hendene ned. Forklaringene var gode, men når du først kommer til prosjektene, finner du ut at utfordringene bare dekker det første prosjektet, og du er ganske alene på resten. Og det er ikke massevis av gode ressurser på nettet. Jeg leste hovedsakelig dokumentene og brukte opplæringsprogrammer. Her er ressursene som endelig fikk meg gjennom denne sertifiseringen:

- D3.js Tutorials av d3Vienno

- D3-dokumentasjon

Tips for å fullføre læreplanen

For å oppsummere, dette er de tingene som hjalp meg mest med å nå målet mitt om å fullføre læreplanen:

  • Bruk læreplanen som en veikart, men suppler med andre ressurser
  • Ikke bli sittende fast lenge: still spørsmål, Google, par-program.
  • Sett deg realistiske mål for hver dag og uke. Ikke slå deg selv hvis en uke du er tregere: livet skjer. Ikke la det kaste deg utenfor kurset.
  • Husk motivasjonen din: det er det som vil presse deg gjennom de tøffe dagene.
  • Prioriter: du må kutte ned tiden du bruker på å gjøre andre ting.
  • Ikke glem å ta fridager. De er viktige for læringsprosessen. Og få nok søvn!

Etter freeCodeCamp følte jeg meg litt tapt. Dette var veikartet som ledet meg gjennom reisen min fra lærer til utvikler.

Etter noen dager med refleksjon og planlegging viet jeg meg til sideprosjektet mitt som jeg bygger sammen med mannen min. Vi lærer og har det gøy, og vi er veldig glade for det.

Og ja, jeg fikk et jobbtilbud rett etter å ha fullført læreplanen , men mer om det på en kommende artikkel.

Alt i alt kunne jeg ikke ha lært alt jeg har lært så raskt hadde det ikke vært for freeCodeCamp, og jeg er ekstremt takknemlig for alle som gjør et så fantastisk prosjekt mulig.

Hvis du føler det samme og er i stand til å gi tilbake, kan du vurdere å donere til freeCodeCamp her.