Come ho finito l'intero curriculum di freeCodeCamp in 9 mesi lavorando a tempo pieno

Durante lo scorso anno, ho terminato l'intero programma di freeCodeCamp mentre lavoravo a tempo pieno come insegnante. In questo articolo, descriverò come sono riuscito a farlo. In particolare come ho organizzato il mio tempo e quale materiale supplementare ho usato.

sfondo

Innanzitutto, la storia di fondo. Non ero completamente nuovo alla programmazione. Sono cresciuto in una piccola azienda tecnologica.

Mio padre ha fondato la sua azienda prima che io nascessi, dove svolgevano diverse attività nell'ambito della tecnologia, come riparare computer, creare connessioni Internet e reti per altre aziende, insegnare corsi di informatica e costruire applicazioni amministrative per le aziende. Era una piccola città, quindi erano fondamentalmente i "ragazzi tecnologici" di riferimento per l'intera città.

Gli uffici dell'azienda erano a casa nostra, quindi sono letteralmente cresciuto tra computer e persone a cui piacevano. Ho iniziato a giocare con Visual Basic da bambino (uno dei ragazzi della compagnia mi ha insegnato come usarlo) e ho passato tutto il mio tempo libero online, chiacchierando con altri nerd.

Quando avevo circa 12 anni, uno di quei nerd mi ha mandato via e-mail un manuale di sviluppo web (un enorme file .txt che trattava fondamentalmente HTML) e l'ho usato per creare il mio sito di fan. Aveva persino uno di quei fantastici contatori delle visite.

L'ho ospitato su Geocities, ho ottenuto un URL breve gratuito e l'ho elencato su Yahoo e AltaVista (questi erano i più grandi all'epoca).

Dopo di che, la vita è successa e ho rinunciato completamente all'idea di essere un programmatore, poiché le circostanze richiedevano un approccio più "realistico". Non entrerò nei dettagli ora, ma fondamentalmente ho dovuto smettere di studiare e trovare un lavoro.

Ho continuato a vivere la mia vita. Ho costruito il sito web occasionale per i clienti di mio padre, e poi alla fine ho deciso di iniziare a insegnare inglese, cosa che mi è stata facile, e in pratica ho dimenticato tutto sullo sviluppo web. Fino al 2016 che è.

Come ho deciso di cambiare carriera

Amo insegnare. È una professione gratificante, interessante e divertente. Ma ha i suoi lati negativi. All'inizio, tutto sembrava una sfida, ma dopo così tanti anni ho iniziato a sentire che non avevo uno scopo. Che non stavo più crescendo o imparando.

Mi sentivo bloccato. Come se il mio lavoro fosse esattamente lo stesso anno dopo anno. Stavo solo facendo i movimenti. Inoltre non offriva molte opportunità di trasferirsi, il che è diventato molto importante per me in seguito.

Nel 2013 ho incontrato mio marito e l'anno successivo abbiamo fatto un viaggio con lo zaino in spalla in Europa di tre mesi, che è un post del blog completamente diverso, ma fondamentalmente aveva un budget estremamente basso e abbiamo avuto un'esperienza fantastica. Abbiamo adorato l'Europa e abbiamo deciso di tornare per un altro lungo viaggio.

Il tempo passava, abbiamo fatto altre cose, e poi ho trovato Codecademy e ho iniziato a giocarci ea giocare con l'idea di diventare uno sviluppatore a tempo pieno. Ho già avuto esperienza nella creazione di siti Web solo con HTML e CSS, ma senza JavaScript. Stavo leggendo molte storie di successo online, ma ancora non la consideravo una vera carriera, non per niente.

Nel frattempo stavamo pianificando il prossimo lungo viaggio, risparmiando denaro, pianificando e così via. Lavoravo sempre di più come traduttrice freelance, molto coinvolta nella mia carriera, traducendo cose interessanti come romanzi e poesie. Il 2017 è arrivato e questa volta siamo tornati in Europa per due mesi.

Lì abbiamo incontrato un gruppo di sviluppatori. È stato pazzesco. Ogni singolo navigatore sul divano che abbiamo incontrato sembrava essere in qualche modo nell'IT, come manager di prodotti software, sviluppatore, tester e così via. Tutti ci hanno incoraggiato ad entrare nella tecnologia. A quel punto avevamo già deciso che volevamo trasferirci in Europa, quindi molti di loro ci hanno detto: “Potresti trovare un lavoro qui. Gli sviluppatori sono richiesti qui, ne abbiamo bisogno molti ".

Prima che il viaggio finisse, abbiamo deciso di iscriverci per un certificato tecnico di 2 anni in un'università tecnica di nuova fondazione vicino alla nostra città natale. Il programma era principalmente Java, quindi quando siamo tornati, abbiamo iniziato un corso Java a Cousera. Il primo modulo era in realtà un corso JavaScript, quindi ci siamo subito innamorati di JavaScript.

Mentre abbiamo imparato JavaScript, abbiamo aspettato l'inizio dell'anno scolastico a marzo 2018. C'erano solo 50 posti per l'università, quindi ci siamo dedicati e abbiamo imparato in anticipo. Siamo andati, abbiamo fatto dei test, superato i corsi e poi abbiamo dovuto aspettare finché non hanno deciso. Abbiamo ottenuto il punteggio più alto tra tutti i candidati, ma quei voti non hanno fatto la differenza. I posti sarebbero stati assegnati tramite un sistema di lotteria. Mio marito è entrato e io sono stato escluso.

Ha deciso che preferiva imparare da solo, non era più interessato a Java perché era appassionato di JavaScript, quindi abbiamo iniziato a imparare da soli.

Abbiamo iniziato con Codecademy, ma era troppo portatile per noi (non avevamo account Premium). Da qualche parte leggiamo di freeCodeCamp. E l'abbiamo iniziato, molto lentamente all'inizio (il primo certificato mi ci sono voluti mesi per ottenere, devo ammettere che a metà il curriculum è stato cambiato e ho lasciato cadere il mio laptop e ho dovuto farlo riparare). Dopo che le vacanze estive sono finite e sono tornato al lavoro a tempo pieno, le cose si sono fatte difficili.

Lavorare a tempo pieno e fare freeCodeCamp a tutta velocità

Non è stato facile, non mentirò. Ha aiutato il fatto che la maggior parte dei miei amici e conoscenti non vivesse vicino a me, e io vivo in una piccola città che non offre molte opportunità di intrattenimento. In questo senso, la programmazione è stata un salvavita. Avevo qualcosa di divertente da fare e creava dipendenza, così potevo ammazzare ore di noia con esso.

Quindi questo mi ha aiutato molto quando ho affrontato la quantità di ore che ho trascorso facendo il lavoro mentale (insegnamento e studio).

Il primo certificato ha richiesto mesi, un po 'perché aspettavo di entrare in Uni e un po' perché lavoravo 10 ore al giorno per i primi 3 mesi dell'anno scolastico.

Sfortunatamente non potevo semplicemente lasciare il mio lavoro e studiare a tempo pieno, poiché dovevo pagare le bollette, quindi dovevo diventare davvero bravo in 3 cose:

  1. Gestione del tempo
  2. Disciplina
  3. Organizzazione

Gestione del tempo

Ho iniziato a lavorare alle 7 del mattino, quindi ho iniziato ad alzarmi alle 4:30 quasi tutti i giorni. Ho iniziato la giornata con sfide freeCodeCamp e caffè. A volte leggevo anche da un libro o facevo altri tutorial, a seconda di cosa stavo lavorando al momento. Ho studiato anche durante la pausa pranzo e dopo il lavoro, ma ho fatto i conti con il fatto che non ero così produttivo durante la settimana a causa del lavoro. Quindi durante la settimana ho fatto per lo più brevi sfide, letture e così via. E ho lavorato a progetti nei fine settimana, nei giorni festivi e nel tempo libero.

Se avessi 30 minuti, leggerei 30 minuti. Se ne avevo 15, ho studiato per 15 minuti. Ho impiegato ogni singolo momento libero della mia giornata per studiare.

La domenica, preparavo la maggior parte dei miei pasti per la settimana, quindi non dovevo perdere tempo a cucinare e non dovevo finire per mangiare cose malsane. Ho anche pianificato e raccolto tutto ciò di cui avevo bisogno per il lavoro della settimana, quindi non ho avuto bisogno di dedicare tempo extra oltre al normale orario di lavoro.

Fortunatamente dopo giugno, le mie ore di lavoro sono state ridotte da 10-12 a 8, quindi ora lavoravo normalmente e lì ho iniziato ad aumentare il ritmo.

Disciplina

Dovrai studiare anche nei giorni in cui non ne hai voglia. Qui è dove anche la motivazione gioca un ruolo importante, ma la disciplina è importante, soprattutto se sei come me e ti distrai molto dai social media e dai video sui gatti.

Il miglior consiglio che posso darti per combattere la tentazione di leggere articoli online è questo: se ti viene in mente una domanda del tipo "come volano gli aerei?" (che di solito è il tipo di domanda che mi fa prendere la mano e mi risucchia per 30 minuti), scrivilo da qualche parte e prometti a te stesso che puoi leggere tutto al riguardo dopo aver finito quello che stai facendo.

Il 99% delle volte non ti interesserà più, perché quelle domande ti vengono in mente solo perché vuole distrarsi. Spingiti e lo batterai.

Un altro aspetto della disciplina è dover scegliere lo studio rispetto ad altre cose. Questa è la parte meno divertente. Ho dovuto rinunciare a molte, molte cose che mi piacevano per favorire lo studio e non vedo l'ora di poterle tornare. L'ho fatto solo perché volevo diventare uno sviluppatore il prima possibile (vedere la motivazione di seguito), ma anche se non sei di fretta come me, potresti scoprire che passi molto tempo a fare cose che, anche sebbene siano piacevoli e simpatici, occupano troppo tempo.

Dovrai dare la priorità e fare scelte difficili.

Motivazione

Avevo un motivatore molto forte che stava diventando uno sviluppatore e si stava trasferendo in Europa. Questo è stato il mio obiettivo per molto, molto tempo e ho raggiunto il punto in cui mi sentivo frustrato per non averlo raggiunto. Tutti i miei amici hanno lasciato la città, non ho praticamente famiglia qui, mi sono sentito isolato e volevo andarmene.

Questo è ciò che mi ha spinto. Sembrava un fuoco sotto i miei piedi, sentivo di non avere scelta. Serve una forte motivazione per fare cambiamenti radicali. Non so voi, ma sono una specie di persona che “non aggiusta ciò che non è rotto”, quindi è davvero difficile convincermi a fare le cose solo per il gusto di farle.

I miei hobby sono tutti molto pratici e produttivi: giardinaggio, yoga, cucina. Ho bisogno di un motivo per farli (voglio verdure gratis, mi fa male la schiena, ho fame). Se sei come me, dovrai trovare una carota per farti andare avanti.

Passa un po 'di tempo a pensare a questo, cosa vuoi ottenere esattamente finendo freeCodeCamp? Cosa vuoi cambiare o ottenere nella tua vita personale attraverso di esso?

Il Curriculum + Risorse Supplementari

Le seguenti sono alcune delle risorse supplementari che ho usato nel mio viaggio freeCodeCamp. Tieni presente che questo non è un elenco esaustivo perché ho fatto tantissime ricerche su Google e che alcuni di questi corsi non sono gratuiti.

Responsive Web Design: questa era la parte con cui avevo già esperienza, quindi è stato facile e divertente. Ho usato alcune risorse supplementari, specialmente per Flexbox. Il mio posto preferito per questo è Internet è difficile.

Algoritmi JavaScript e strutture dati: una volta arrivato ai moduli JavaScript, mi sono appassionato. È stato tutto molto divertente, ho imparato molto ed ero ansioso di metterlo in pratica.

Per questa sezione ho usato principalmente libri. Avevo già abbastanza esercizi con freeCodeCamp, ma avevo bisogno di più spiegazioni. Beginning JS ha anche tantissimi esercizi.

  • Inizio della 5a edizione di JavaScript
  • Non conosci JS
  • Fondamenti di programmazione con JavaScript, HTML e CSS
  • Documentazione JavaScript

Quando ho raggiunto questa sezione, ho anche aderito al programma Summer of Code di 1 Million Women to Tech (1MWTT). Ho imparato Python di base e JavaScript da base a avanzato che mi ha aiutato molto, specialmente con Promises.

Imparare Python mi ha anche aiutato a rafforzare alcuni concetti di programmazione di base. Consiglio vivamente che quando ti senti a tuo agio con JavaScript, provi una nuova lingua, solo i suoi concetti di base. Ti sentirai molto più a tuo agio dopo una volta che saprai come fare la stessa cosa con strumenti diversi.

Framework JavaScript: anche questa sezione è stata fantastica in quanto mi ha fornito le basi per React e Redux. Avevo già seguito un corso React su Udemy, React 16.6 - The Complete Guide (incl. React Router & Redux).

Consiglio vivamente questo corso e altri dello stesso autore. È incredibilmente completo e le sue spiegazioni sono fantastiche. Questo è stato uno dei pochi corsi Udemy in cui ho effettivamente seguito il progetto che realizza: normalmente guardo i video e applico i principi a qualunque cosa sto lavorando.

Su 1millionwomentotech abbiamo avuto una settimana di React che era principalmente nativa di React e poi ho iniziato a giocarci. A quel punto ho anche iniziato a lavorare al mio progetto parallelo con mio marito, che abbiamo deciso che sarebbe stato un PWA con React.

Non posso sottolineare quanto sia importante costruire qualcosa di tuo da zero. Ho imparato molto di più in un paio di settimane costruendo la nostra app di quanto abbia imparato con qualsiasi corso o tutorial.

API e microservizi: questa sezione è stata una grande rivelazione per me e ha cambiato tutto. Fino a quel modulo ero certo di voler diventare uno sviluppatore front-end, ma dopo aver appreso Node.js ho iniziato a pensare di diventare uno sviluppatore back-end o Full Stack. La creazione di API è così divertente e puoi vedere i risultati così rapidamente. Ho iniziato a costruire i miei primi piccoli progetti Full Stack e sono rimasto molto entusiasta.

Alcune delle risorse che ho utilizzato:

  • Il corso completo per sviluppatori Node.js (2a edizione)
  • Node Girls Introduzione allo sviluppo backend con Express
  • Node Docs
  • Documenti Express
  • NodeSchool
  • Introduzione a Node.js
  • Progettazione API REST e GraphQL in Node.js, v2 (utilizzando Express e MongoDB)

Durante questo periodo stavo anche facendo volontariato per "1MWTT" e mi è stato chiesto di creare un'app Probot per i volontari a bordo con Node. Questo mi ha anche fatto fare pratica con Node, il che è stato molto divertente.

Controllo qualità e sicurezza delle informazioni: anche questo modulo ha aperto gli occhi. Fino ad allora non avevo mai e poi mai scritto un solo test in vita mia. Ora adoro scrivere test e mi sono persino appassionato allo sviluppo Test Driven.

Ho utilizzato principalmente i documenti per questa sezione, ma poi ho deciso di testare anche il mio front-end e ho trovato questo fantastico corso su Udemy che non posso raccomandare abbastanza. L'istruttore è di gran lunga il miglior istruttore che abbia mai visto su Udemy. Non vedo l'ora di consumare qualsiasi altra portata che rilasci in futuro.

- Chai docs

- Test di reazione con Jest ed Enzyme

Visualizzazione dei dati con D3: questo è stato il certificato più difficile, senza dubbio. Le spiegazioni erano buone, ma una volta arrivato ai progetti, scopri che le sfide riguardano solo il primo progetto e sei un po 'da solo per il resto. E non ci sono molte buone risorse online. Ho letto principalmente i documenti e ho utilizzato i tutorial. Ecco le risorse che finalmente mi hanno permesso di ottenere questa certificazione:

- Tutorial D3.js di d3Vienno

- Documentazione D3

Suggerimenti per completare il curriculum

Per riassumere, queste sono le cose che mi hanno aiutato di più a raggiungere il mio obiettivo di finire il curriculum:

  • Usa il curriculum come una tabella di marcia, ma completa con altre risorse
  • Non rimanere bloccato a lungo: fai domande, Google, programma di coppia.
  • Stabilisci obiettivi realistici per ogni giorno e settimana. Non picchiarti se una settimana sei più lento: la vita accade. Non lasciare che ti porti fuori rotta.
  • Tieni a mente la tua motivazione: è ciò che ti spingerà a superare i giorni difficili.
  • Dai la priorità: dovrai ridurre il tempo speso a fare altre cose.
  • Non dimenticare di prenderti giorni liberi. Sono vitali per il processo di apprendimento. E dormi abbastanza!

Dopo freeCodeCamp, mi sono sentito un po 'perso. Questa è stata la tabella di marcia che mi ha guidato attraverso il mio viaggio da insegnante a sviluppatore.

Dopo alcuni giorni di riflessione e pianificazione, mi sono dedicato al mio progetto parallelo che sto realizzando con mio marito. Stiamo imparando e divertendoci e ne siamo molto entusiasti.

E sì, ho ricevuto un'offerta di lavoro subito dopo aver terminato il curriculum , ma ne riparleremo in un prossimo articolo.

Tutto sommato, non avrei potuto imparare tutto ciò che ho imparato così velocemente se non fosse stato per freeCodeCamp e sono estremamente grato a tutti coloro che rendono possibile un progetto così meraviglioso.

Se ti senti allo stesso modo e sei in grado di restituire, considera la possibilità di donare a freeCodeCamp qui.