Crossing The Bridge: come passare a una carriera nello sviluppo di software

Foto di Mark Basarab su Unsplash

Ho imparato a programmare da un po 'di tempo, principalmente come hobby la sera e nei fine settimana. È passato da un paio d'ore al mese a sostituire la mia dipendenza da Sudoku.

Un sabato, ero seduto nel nostro ufficio (ero solito entrare e utilizzare i comodi divani, il tè illimitato e il wifi stabile). Ho avuto uno di quei momenti in cui ti guardi dall'esterno e ti rendevi conto che invece di fare cose normali in un caldo pomeriggio estivo, ero solo, in un ufficio, incollato al mio computer.

Fu allora che decisi di fare il salto per diventare uno sviluppatore a tempo pieno. Non avevo mai avuto qualcosa che mi piacesse e che potessi commercializzare come un'abilità sul posto di lavoro.

Dopo alcuni mesi di giocoleria tra apprendimento e lavoro, ho lasciato il mio lavoro all'avvio di un software per concentrarmi sull'apprendimento a tempo pieno. Le persone intorno a me dicevano quanto ero coraggioso nel perseguire il mio sogno, ma gli sguardi sui loro volti dicevano chiaramente che ero pazzo a rinunciare a tutto per uno sconosciuto. Mentirei se dicessi che non ero ** molto ** spaventato.

Il lato positivo è che portarti via il paracadute ti mette improvvisamente a fuoco. Non è un caso di "questo potrebbe funzionare", è un caso di "questo deve funzionare". Non c'era un piano B.

Ci sono voluti poco più di tre mesi per accettare il mio primo ruolo come sviluppatore di software.

Queste sono alcune delle cose che vorrei sapere prima e, si spera, aiuteranno chiunque cerchi di intraprendere un viaggio simile.

Conosci il tuo perché

Perché lo vuoi? Questa deve essere la domanda più importante. Certo, tutti conoscono unicorni, IPO, birra illimitata e una serie di vantaggi. Questo non è abbastanza per farti andare avanti quando hai fissato lo stesso errore negli ultimi 15 minuti o quando hai colpito un blocco stradale e devi trovare un'altra soluzione.

Qual è l'ultimo gioco finale? Vuoi eventualmente gestire la tua azienda? O libero professionista? O dirigere un team di sviluppo? Vuoi avere più gatti online? (Il che è totalmente soddisfacente). O vuoi cambiare il mondo? Qualunque sia la tua motivazione, assicurati di capirla davvero e di tenerla per la vita.

Fai il lavoro

La cosa grandiosa del software è che è per lo più meritocratico. Importa sempre meno quali sono le tue qualifiche accademiche, i datori di lavoro (sensibili) si preoccupano solo se hai le giuste competenze o la capacità di apprenderle sul posto di lavoro. Usa questo a tuo vantaggio.

Immagine da UKBlackTech

Indipendentemente dal fatto che tu scelga front-end o back-end, prenditi il ​​tempo necessario per comprendere davvero i concetti chiave. Concentrati sull'apprendimento della lingua vaniglia anziché fare affidamento su framework. Una solida conoscenza di qualcosa come JavaScript ti consentirà di apprendere qualsiasi framework JavaScript, ma non è vero il contrario. Sarai colto con i pantaloni abbassati quando è il momento di eseguire il debug e non sai se è il framework o il codice a causare il problema.

Mostra il tuo lavoro

Devi avere del lavoro da mostrare. Se provieni da un background informatico, hai una qualifica per dimostrare ciò che hai fatto. Se non hai qualifiche formali, questo è ancora più importante. Il solo fatto di presentarsi per chiedere un lavoro non lo taglierà. Devi essere in grado di mostrare il codice che hai scritto (idealmente qualcosa di più sostanziale di un tutorial su un blog).

Mostra come hai affrontato problemi reali e il percorso che hai intrapreso per raggiungere la tua soluzione finale. Non è necessario disporre di decine di progetti: la qualità è più importante della quantità. La prima intervista che ho ottenuto si basava esclusivamente su ciò che avevano visto da due progetti sul mio GIT. Era una pila fumante, ma potevo spiegare ogni riga, cosa faceva e perché prendevo determinate decisioni.

Non aver paura delle interviste

Immagine da UKBlackTech
L'unico modo per migliorare le interviste è fare interviste.

Questo è un consiglio che ho ricevuto da un mio amico sviluppatore all'inizio. Sembra una situazione da gallina e uovo, ma puoi iniziare facendo pratica in ogni occasione.

Ci sono servizi come intervistando.io che ti aiuteranno a esercitarti. Parla con le persone che conosci e cerca le domande di intervista comuni per gli sviluppatori junior online. Ci sono anche video di YouTube che ti aiuteranno.

Non ci si aspetta che tu faccia un test alla lavagna come junior, ma ti verrà chiesto di spiegare concetti o affrontare diversi scenari con le tue parole. Non stanno cercando di catturarti, ti stanno dando l'opportunità di brillare e mostrare ciò che sai. Se ti chiedono qualcosa che non conosci, prendi nota. (Sì, in realtà ho tenuto un blocco note / il mio laptop con me durante le interviste per annotare le cose).

Alla fine dell'intervista, chiedi loro alcune delle cose di cui non eri abbastanza sicuro. Ciò mostrerà che sei desideroso di colmare le lacune nelle tue conoscenze e aiutare la tua comprensione. Le migliori interviste da cui sono venuto via mi hanno sempre lasciato sapere più di quello che ho fatto.

È una strada a doppio senso

Dovresti valutarli mentre ti stanno valutando. Se dovessi lavorare lì, saresti felice e di successo? Quanto sono chiaramente scritte le specifiche del lavoro? Le tue e-mail ricevono risposta in modo tempestivo? Sono felici di rispondere alle domande o sono difensivi su determinati argomenti? Le persone in ufficio sembrano felici di essere lì o hanno un occhio sull'orologio?

L'obiettivo non è semplicemente quello di trovare un lavoro, è quello di ottenere un lavoro che ti piacerà, che ti permetta di crescere e migliorare nella scrittura del software. Ho finito per rifiutare un'offerta per passare alla seconda fase di un processo di intervista perché non pensavo che potessero supportarmi come junior. Tre anni + e probabilmente sarebbe andato bene, ma non ho avuto l'impressione che avrebbero avuto il tempo o le risorse per supportare il mio apprendimento come nuovo sviluppatore. Questi sono i tipi di cose che dovresti prendere in considerazione.

Chiedi un feedback

Chiedi feedback in ogni occasione. È improbabile che tu riceva feedback solo per l'invio di una domanda, ma dovresti mirare a ottenere feedback su ogni intervista. Questo ti aiuterà a colmare le tue debolezze. Scrivi un'email chiedendo di loro se non li offrono. Quando finalmente raggiungi il tuo primo ruolo, avrai bisogno di feedback costanti per migliorare, quindi questa è una buona abitudine da prendere all'inizio.

Sembra che siamo geneticamente programmati per essere avversi a qualsiasi tipo di interazione sociale che coinvolge potenziale imbarazzo / negatività. Questo tipo di pensiero ucciderà la tua carriera e la tua crescita. Non ti aspetteresti di unirti senza una revisione del codice, quindi come puoi aspettarti di uscire dall'altra parte senza passare attraverso un processo di revisione e feedback simile?

Scopri come lavorare con una base di codice esistente.

Questo è particolarmente doloroso di cui parlare, ma lo faccio nello spirito di aiutare gli altri.

Una delle mie interviste è stata con un'agenzia straordinaria che lavorava per marchi che potevo solo sognare. Hanno detto che lavorano molto con SASS, quindi ho trascorso ore a leggere e fare pratica.

Quando sono arrivato al colloquio, la sfida del codice era abbastanza semplice: creare una funzione all'interno di una base di codice esistente. Questo può sembrare folle, ma la modifica del codice che altri hanno creato richiede un diverso set di abilità per la modifica del proprio codice. È come aprire un libro scritto a metà e cercare di finire la storia da soli.

Mi sono reso conto che la prima volta che avevo mai lavorato con il codice scritto da qualcun altro era lì e poi al colloquio, e mi ha colto di sorpresa per cambiare marcia. È come quell'incubo che hai quando devi sostenere un esame di inglese e capire di aver studiato il libro sbagliato e di svegliarti con il sudore. Ma invece di svegliarti, hai un'ora in cui devi digitare qualcosa. Nulla. Non c'è letteralmente via d'uscita, nemmeno una scala antincendio o una finestra mal costruita.

Prova ad esercitarti a lavorare con il codice esistente il più possibile. Esegui hackathon, prendi parte a progetti open source o addirittura incontra altri programmatori che conosci e trova qualcosa su cui lavorare. L'ironia è che dopo che sono tornato indietro e mi sono asciugato gli occhi, è stato abbastanza facile creare da zero, non riuscivo a capire come fosse già iniziato.

Va bene non saperlo

Non aver paura di ciò che non sai. Un intervistatore mi ha chiesto di valutare me stesso su una scala da 1 a 10 sulla mia conoscenza del front-end. Ero onesto e ho detto che all'inizio del processo avrei probabilmente detto di 4. Ma dopo tutto il lavoro che stavo facendo, probabilmente lo avrei messo a 1.

Questo non era per auto-deprecarsi, era perché ogni documento o articolo che leggevo mi introduceva a circa 10 nuovi concetti. Quindi più ho imparato, più ho capito quanto più c'era da imparare. Come sviluppatore, devi stare tranquillo con l'idea di non sapere mai tutto. Ogni giorno nascono nuove lingue, strutture e tecnologie. Potresti leggere 24/7 e ancora non graffiare la superficie.

Avere l'atteggiamento giusto

Alla fine, il feedback che ho ricevuto dal lavoro che ho accettato è stato che ero il meno qualificato di tutti i candidati (troppo vero, visto che avevo esattamente 0 anni di esperienza). Ma ho più che compensato con entusiasmo e mi è sembrato il tipo di persona con cui vorrebbero davvero lavorare.

All'inizio c'è poco che puoi fare per la tua esperienza o qualifica, ma quello che puoi fare è darti le migliori possibilità possibili di mettere il tuo piede in avanti. Parla delle cose che hai fatto e mostra la tua passione per il ruolo. Ciò può includere articoli che hai scritto, eventi a cui sei stato, libri che hai letto o persino podcast che ami e che sono correlati al campo.

Dimentica i vantaggi, acquista le tue ciambelle

Molti ruoli software offriranno numerosi vantaggi per attirare gli sviluppatori. Non pretendo che siano irrilevanti. Ma a questo punto della tua carriera, dovrebbero esserlo. La cosa più importante dovrebbe essere il team reale con cui lavorerai e le opportunità di formazione e sviluppo. Fanno il pairing del codice? Revisioni dei pari? C'è tempo dedicato allo sviluppo personale?

Negli anni a venire, quando è il momento di fare la tua prossima mossa, dovrai essere in grado di dimostrare ciò che sai, ora che sei uno sviluppatore con X anni di esperienza. Non daranno uno straccio a quanto ti è stato pagato nel tuo ruolo precedente o a quanti vantaggi gratuiti hai divorato. Saranno comunque colpiti se puoi mostrare tutte le nuove tecnologie che hai imparato, come hai lavorato per risolvere diversi problemi e cosa hai fatto per aiutare il tuo apprendimento nel tuo primo ruolo.

Concentrandoti sui vantaggi quando è il momento di accettare un'offerta, ti stai vendendo a corto e potresti anche lavorare per fagioli magici.

Crea la tua rete.

Immagine da UKBlackTech

Sono stato fortunato a venire dall'avvio di un software e a vivere e lavorare attorno all'hub software di Londra. È pieno di incontri e gruppi. Codebar è probabilmente la cosa migliore di cui ho fatto parte. Non solo ti accoppiano con gli sviluppatori per imparare, ma è gratuito, hanno discorsi fantastici, ottieni l'accesso agli addetti ai lavori ed è un ambiente completamente non giudicante in cui puoi chiedere qualsiasi cosa.

Se vivi in ​​un posto simile, per favore, approfittane, esci e incontra gente. Sì per il networking, ma soprattutto perché ciò che ti assorbi in quei dintorni pagherà più volte i dividendi. Anche i responsabili delle assunzioni adorano essere coinvolti nella comunità e il tuo prossimo datore di lavoro potrebbe presentarsi al prossimo incontro a cui partecipi.

Abbiamo bisogno di te quanto vuoi questo

La sindrome dell'impostore è ben documentata e certamente qualcosa di cui ho sofferto in quei momenti di insicurezza. Ci sono migliaia di persone che si diplomano in diplomi CS e bootcamp - ero irrealistico persino tentare questa carriera solo sapendo cosa mi ero insegnato?

La verità è che non ci sono abbastanza sviluppatori per soddisfare la domanda di posti di lavoro aperti. Finché hai le competenze di base, l'atteggiamento giusto e la volontà di imparare, hai un colpo. I datori di lavoro non possono permettersi di assumere solo sulla base delle qualifiche.

La prossima parte è un po 'permalosa: la questione della diversità. Chi non vive sotto una roccia sa che la tecnologia ha un enorme problema di diversità. Quando ho iniziato a fare domanda, non ho potuto fare a meno di notare che ogni capo squadra che ho cercato su LinkedIn era maschio.

La verità è che non una volta mi sono mai sentito come se non fossi il benvenuto o non sarei rispettato come un membro paritario della squadra. Ogni interazione che ho avuto, mi è sembrato che ognuna di queste squadre stendesse una mano per farmi avere successo. Ora credo davvero che la maggior parte delle aziende voglia aumentare la diversità nei loro team e sono attivi nel farlo.

Se non ti adatti allo stampo stereotipato di come dovrebbe essere uno sviluppatore, e allora? La tecnologia vuole e ha bisogno di te. È un grande tavolo e c'è abbastanza spazio per tutti.

Se ti è piaciuto questo post, applaudi per mostrare il tuo apprezzamento.

Puoi anche lasciare un commento qui sotto.

Mi trovi su Twitter: Marilyn Magnusen