Costruire il proprio curriculum di apprendimento personale
Pubblicato: 2022-03-10Dopo aver completato un bootcamp a marzo 2019, sono stato sopraffatto dalla scelta di framework, librerie, lingue e corsi tra cui scegliere per continuare l'apprendimento indipendente e, si spera, ottenere uno di quegli sfuggenti lavori di sviluppatore junior. Quasi tutti quelli con cui ho parlato avevano un'opinione diversa su ciò che era importante e valeva la pena perseguire, ma la maggior parte di loro era d'accordo sull'importanza di apprendere i "fondamenti", senza mai specificare realmente quali fossero.
Anche dopo aver ottenuto il mio primo lavoro da sviluppatore l'estate scorsa, è diventato subito evidente che dovevo fare regolarmente lezioni extracurriculari per soddisfare le esigenze di questo nuovo ruolo. Ho svolazzato tra i corsi Udemy per un po' e, anche se ho imparato, mi sono spesso ritrovato a copiare l'istruttore senza sviluppare capacità di risoluzione dei problemi da solo. Mi ci è voluto fare il mio piccolo progetto laterale di scratch pad per afferrare davvero il nuovo materiale. Quindi ora sapevo qual era il mio stile di apprendimento: esposizione iniziale alle idee in un corso o al lavoro, creare uno schizzo di un progetto per consolidare i concetti e quindi utilizzare questo nuovo apprendimento nel mio lavoro quotidiano, se possibile.
La maggior parte di noi ha un'idea solida (anche se duramente guadagnata) di come impariamo meglio a breve termine, ma come si traduce questo nella struttura dell'apprendimento extracurricolare a lungo termine? Ti spiegherò come ho risolto questo problema da solo. Queste strategie funzioneranno attraverso lo spettro dell'esperienza, sia che tu sia nuovo di zecca nello sviluppo di software o un ingegnere esperto.
Il tuo curriculum personale
Questo è il mio metodo per mettere insieme un curriculum di apprendimento . Essendo una persona con poco tempo e una tendenza ad essere preso dalla brezza dell'impulsività a scapito di un lavoro sostenuto e concentrato, ho trovato questo metodo il più compatibile con il mio cervello e i miei ritmi generali. Il tuo chilometraggio, ovviamente, può variare.
Usa le specifiche del ruolo "Lavoro da sogno" per fissare gli obiettivi
Ho trovato questo passaggio davvero utile per attutire tutto il rumore ambientale e concentrarmi su cose che saranno praticamente utili alla mia carriera nei prossimi cinque anni circa. (Come sviluppatore front-end, mi sono spesso ritrovato a fare gli occhi appiccicosi nell'apprendimento di Rust. Sebbene affascinante, non è esattamente una priorità.)
Potresti non voler lavorare tu stesso in una grande azienda tecnologica, ma vale la pena guardare a cosa danno la priorità quando assumono in quanto, nel bene e nel male, le grandi aziende tendono a dare il tono al settore in generale. Ho una piccola lista della spesa di aziende non malvagie che mi piacerebbe finire in un giorno e condividono tutte sostanzialmente le stesse priorità: HTML/CSS semantico, eccellenti competenze JS vanilla, accessibilità e un framework popolare. Un giorno imparerò Rust, ma, per ora, lavorare su queste abilità è la mia priorità assoluta.
Tendo a favorire Indeed, Guardian Jobs e LinkedIn per ottenere un'ampia raccolta di lavori sul mercato, ma ugualmente utile è Twitter (cerca semplicemente [nome dell'azienda che ti interessa] e "lavori") e tieni d'occhio periodicamente nella pagina "Lavorazioni" delle tue aziende preferite ogni due mesi. Jessica Rose, che twitta come @jesslynnrose, scrive spesso lunghi thread su Twitter di offerte di lavoro in "aziende non malvagie" che a volte non sono molto ben pubblicizzate altrove.
Dopo aver raccolto alcune specifiche del lavoro, prova a individuare i punti in comune tra di loro e prendine nota. Li useremo per il passaggio successivo.
Identifica le opportunità per sviluppare le competenze che desideri
Ricordi quella lista che ho citato? Dividilo in due colonne. Colonna uno: cose su cui puoi lavorare nel tuo lavoro quotidiano. Colonna due: cose che devi guardare nel tuo tempo.
Apprendimento sul lavoro
Le cose nella tua lista che sono coperte dal tuo lavoro quotidiano sono le cose di cui devi preoccuparti di meno. Non importa cosa, le tue abilità in queste aree miglioreranno con il tempo. Alcuni di voi lavoreranno in enormi organizzazioni composte da molti sviluppatori con vari livelli di anzianità e specializzazioni, e vi consiglio di sfruttarlo per tutto quello che vale, per dirla senza mezzi termini.
Se l'accessibilità è una tua lacuna di conoscenza che vorresti migliorare, prova a ingoiare i nervi e avvicinati a qualcuno sul posto di lavoro che ha queste capacità per una chiacchierata/un caffè Zoom. Prova ad accoppiarli, con la consapevolezza che puoi "accoppiare" cose che non sono problemi di codifica. Chatta con loro per sapere dove trovano le loro informazioni, con quali account Twitter, blog e podcast tengono il passo e come si mantengono aggiornati con i nuovi sviluppi.
Apprendimento a casa
Come persona con due precedenti carriere, nessuna delle quali legata all'informatica, che è entrata nel settore tramite un bootcamp di nove settimane un anno fa, ho una comprensione rudimentale dell'informatica e molti di voi probabilmente si trovano nella stessa situazione.
Ho trovato i Master Frontend inestimabili quando si tratta di corsi davvero ben progettati sui principi dell'informatica e sull'apprendimento più specifico. Personalmente, ho trovato i corsi di Will Sentance sui Master Frontend utili per capire il come e il perché quando si tratta di JavaScript vanilla. Allo stesso modo, i corsi "Quattro semestri di informatica in 5 ore" di Brian Holt espongono gli studenti al tipo di concetti che possono emergere nelle interviste tecniche.
C'è una quota di abbonamento mensile per Frontend Masters, e ne vale la pena, ma ci sono molte meravigliose risorse gratuite là fuori. Consiglio vivamente a chiunque non l'abbia già fatto di iscriversi a CS50. Il corso, gestito dall'Università di Harvard, è una meravigliosa risorsa gratuita, che ti esporrà a C, Python, JavaScript e moduli sull'etica e sulle strutture dei dati di base. Le lezioni sono estremamente divertenti e puoi fare tutto o meno del corso che vuoi, senza vincoli di tempo.
Allo stesso modo, FreeCodeCamp si è ben guadagnato il suo status di punto di partenza chiave sia per gli sviluppatori autodidatti che per coloro che desiderano sviluppare le proprie competenze esistenti, e ti incoraggio a cercare corsi pertinenti ai tuoi interessi su Udemy (ti suggerisco di non acquista un corso Udemy che non ha uno sconto pesante. Le loro vendite si verificano una volta ogni poche settimane e ci sono sempre codici sconto in giro).
Uno dei miei preferiti in particolare è The Complete Node.js Developer Course di Andrew Mead, e adoro i corsi di Colt Steele (ce n'è uno particolarmente buono su algoritmi e strutture dati che ti aiuteranno se mai ti trovassi sul lato più pesante di algoritmi dello spettro di interviste tecnologiche). Smashing Magazine organizza anche frequenti workshop online su una serie di argomenti che ti aiuteranno a migliorare le tue abilità.
Come forse saprai, le competenze che consentono alle persone di lavorare nel settore tecnologico possono spesso divergere dalle competenze che le persone devono utilizzare sul lavoro. Questi corsi ti insegneranno i fondamenti dell'informatica mentre ti manterranno agile per le interviste e ti aiuteranno a riempire eventuali silenzi potenzialmente schiaccianti con sommazioni scattanti di diverse strutture di dati e dei loro pro e contro. Il punto non è fare tutti questi corsi, ma identificare e combinare quelli che si adattano alle specifiche del lavoro che hai preso di mira.
Ho scoperto che Twitter è incredibilmente utile per trovare persone con cui chattare per problemi di codice. La scorsa primavera ho gridato nel vuoto di un problema che stavo riscontrando con Android Studio e sono rimasto sorpreso di essere in videochiamata con uno sviluppatore Android meno di dieci minuti dopo e, non solo, sembrava felice di aiutarti!
Non sottovalutare la gentilezza della comunità di sviluppatori e non essere timido nel chiedere aiuto quando ne hai bisogno, e fai del tuo meglio per metterti in situazioni in cui puoi parlare con persone di un mondo simile a te all'interno del contesto più ampio del settore tecnologico. L'hashtag #CodeNewbie è una cosa utile da usare se hai bisogno di aiuto.
Imposta obiettivi e orari
Ora è il momento di collegare i tuoi obiettivi di apprendimento autodiretto ad alcuni obiettivi. Cerca di non impostare l'asticella troppo in alto: se non è realistico completare un corso Udemy in una settimana, non cercare di sforzarti di farlo così tanto da raggiungere l'obiettivo a scapito di altre cose importanti nella tua vita o fallire nel raggiungere l'obiettivo e farti sentire un fallito. L'idea è di tenersi in carreggiata , esercitando una leggera pressione per rimanere motivati, ma non così tanto da sentirsi sopraffatti e perdere tutta la motivazione.
Come persona mattiniera, mi sento meglio in grado di concentrarmi sullo studio nelle ore prima che il mio lavoro diurno inizi alle 9:30. Con questo in mente e usando il meraviglioso strumento di monitoraggio del tempo, Toggl, trascorro dalle 7:00 alle 9:00 due mattine a settimana per lo studio del codice. L'uso di Toggl è stato estremamente importante per me perché, indipendentemente da quanto faccio, spesso mi sento come se non fosse abbastanza. Ma con l'aiuto di Toggl, ho potuto vedere con certezza che stavo facendo un minimo di quattro ore a settimana (con extra la sera e nei fine settimana se ne avevo voglia) e mi sentivo meglio in grado di allontanarmi dal mio laptop e riposare quando il mio il tempo era scaduto, sicuro di aver accumulato una quantità accettabile di ore secondo i miei standard.
Rendi i progressi misurabili
Pensa al tuo programma settimanale medio e cerca di bloccare un momento della giornata in cui hai le migliori possibilità di assicurarti la concentrazione ininterrotta. Alcuni di voi saranno assistenti o comunque estremamente occupati, e probabilmente sarà meglio per voi prendervi il vostro tempo come e quando lo avrete.
Se ti aiuta a vedere un esempio, i miei obiettivi personali sono i seguenti:
- Completa un corso Udemy su Node.js entro la fine di febbraio.
- Fai 30 minuti di Esegui programma ogni giorno prima del lavoro.
Cerca di peccare per eccesso di cautela per la tua prima serie di obiettivi. Puoi sempre aumentare la pressione se vuoi, ma è meglio farlo una volta che ci sei riuscito in alcuni; assicurati di avere lo spazio mentale e fisico libero per concentrarti davvero su ciò che devi fare per rimanere in pista.
Trova un mentore, o un amico, o entrambi!
Il tutoraggio è qualcosa che la maggior parte degli sviluppatori consiglierebbe per migliorare le abilità, ma, dalla mia esperienza personale, trovare qualcuno con il tempo che ti guidi è una sfida, soprattutto ora. Ci sono risorse come Coding Coach che possono aiutarti e conosco alcuni sviluppatori che hanno trovato il mentore dei loro sogni ai meetup e sui social media, ma trovare la corrispondenza perfetta è più facile a dirsi che a farsi.
Ho parlato con Falina Lothamer, un Instructional Designer presso Thinkful - un corso online aperto di massa (o MOOC, in breve) - per avere un'idea di come i professionisti si avvicinano all'apprendimento indipendente. È stata molto chiara sul fatto che trovare e lavorare con un mentore è la chiave per far progredire le tue abilità come sviluppatore.
"Se hai bisogno di avere qualcosa da fare per te, avere quel mentore che dica: 'Ecco dove penso che dovresti concentrarti', mostrarti cosa stanno facendo nel loro lavoro e condividere la loro opinione su quale sia il futuro della tua zona della tecnologia aiuterà molto. Penso che ci siano molte persone nel settore che sono disposte a ricoprire quel ruolo di mentore e fare per gli altri quello che qualcuno ha fatto per loro".
Dopo aver espresso alcune delle mie frustrazioni per aver sbattuto contro un muro di mattoni con una serie di corsi Udemy, trovandomi semplicemente a conservare le informazioni e non avendo necessariamente la fiducia in ciò che ho imparato per applicarlo in altre aree, o su altri progetti, Fallina è stata È chiaro che essere responsabili nei confronti di un'altra persona , idealmente un mentore ma ugualmente un altro sviluppatore con una quantità di esperienza professionale simile alla tua, è essenziale.
“Come sviluppatore, devi cercare opportunità per dimostrare ciò che sai e come stai imparando. Avere qualcun altro con cui parlare delle sfide che stai affrontando e avere spazio per parlarne con qualcuno e per realizzare "questa cosa che sto cercando di fare è complicata, non sono uno sviluppatore terribile", avendolo la convalida può essere enorme.
Per coloro che non riescono a trovare uno sviluppatore senior che li prenda sotto la loro ala protettrice, consiglio di seguire il consiglio di Fallina e renderti responsabile nei confronti di qualcun altro nel settore a un livello simile al tuo. Gli sviluppatori che si uniscono e condividono storie rafforzeranno il fatto che questo lavoro è difficile e che non sono gli unici ingegneri che lottano per cavarsela al lavoro alcuni giorni. Questo lavoro può essere molto emotivamente faticoso e avere un amico con cui lottare sarà inestimabile in quei giorni in cui nulla sembra andare bene.
Ti consiglio di iscriverti a Interview Cake, Execute Program o un corso Udemy pertinente per il tuo livello di abilità e specializzazione e di completare gli stessi esercizi del tuo amico più o meno nello stesso momento. Discuti di ciò che hai trovato più facile e di dove sei caduto e mantieni i contatti l'uno con l'altro per tutto il tempo. Sebbene tu possa certamente fare queste cose da solo, promuovere un senso di comunità ti aiuterà a rimanere fedele al tuo compito e renderà più probabile che ti attieni a questo.
Una custodia per applicazioni Scratch Pad
Se hai il tempo e l'energia per dedicarti a un grande progetto collaterale oltre al lavoro, più potere per te, ma trovo che la pressione per farlo sia alquanto gravosa. Invece, sono un fan del progetto scratch pad, principalmente perché traggo davvero vantaggio dal seguire molte nuove idee contemporaneamente e divento rapidamente disinteressato ai progetti personali, non c'è pressione di tempo per guidarmi.
Se il tuo progetto collaterale effettua una chiamata API, visualizza le informazioni in modo semi-attraente e hai imparato qualcosa dal processo e costruire il progetto in un'applicazione più ampia non si adatta alla tua neurologia, al tuo programma di assistenza , o i tuoi gusti, allora concediti una pausa . Non derideresti un artista per aver disegnato, e di certo non dovresti sentirti male se i tuoi progetti secondari sono mutanti a metà, purché tu stia ottenendo qualcosa dal processo. I miei repository GitHub sono elegie di buone idee passate e ho fatto pace con esso.
Arrotondare
Dato lo stato del mondo in questo momento, l'ultima cosa che voglio essere è un'altra voce che chiede produttività durante il blocco. Non è di questo che si tratta. Questi sono semplicemente passaggi che hanno funzionato per me quando avevo bisogno di imparare nel tempo, senza esaurirmi o esercitare un'eccessiva pressione su me stesso. Se funzionano per te, meraviglioso. In caso contrario, nessun problema. Tutti abbiamo il nostro ritmo.
Passi
- Usa le specifiche del lavoro per identificare le abilità chiave.
- Dividi queste abilità tra l'apprendimento sul lavoro e l'apprendimento nel tuo tempo libero.
- Stabilisci obiettivi chiari, misurabili e realistici e aumentali solo quando hai trovato il tuo ritmo.
- Trova un mentore o un amico in modo da essere responsabile di quegli obiettivi.
- Relax! Imparare disordinato è meglio di non imparare.
Risorse utili
- Udemy
- Torta intervista
- CS50
- Esegui programma
- Allenatore di codifica
- Attiva/disattiva
- #CodeNewbie
- Workshop online di Smashing Mag
- FreeCodeCamp
- Maestri di frontend
- Infatti
- Lavori di guardiano
Buona fortuna!