Come sono diventato programmatore in un anno e come puoi farlo anche tu

di Parker Byrd su Unsplash

Questo post ha lo scopo di aiutare almeno una persona là fuori che è nei miei panni circa un anno fa. Il consiglio qui è più prezioso se siete seriamente intenzionati a diventare uno sviluppatore di software a tempo pieno, ma può essere ancora utile se state semplicemente cercando di espandere le vostre competenze o semplicemente siete curiosi di imparare lo sviluppo. Non si tratta di roba tecnica, ma di roba importante di livello superiore.

Circa un anno e mezzo fa, mi sono trovato di fronte alla difficile decisione di dove portare la mia carriera. Il mio lavoro come project manager a contratto si è concluso senza alcuna proroga. Il mercato del lavoro per i project manager è duro e competitivo, ma il problema più grande era all’interno. Anche se avevo lavorato per grandi squadre e organizzazioni grandi e piccole, non mi stavo divertendo come mi aspettavo. Mi sentivo come se stessi andando controcorrente, non facendo ciò che ero destinato a fare.

Ho preso la decisione più difficile di perseguire la programmazione, che era un po’ folle date le circostanze. Avevo una laurea in economia e nessuna vera esperienza di programmazione a parte qualche workshop di HTML/CSS. Avevo una grande quantità di debiti personali e di istruzione universitaria. Tutto ciò che avevo era una piccola quantità di risparmi, la convinzione che avrei potuto farlo funzionare, e (fortunatamente) un partner che mi supportava molto. Una volta ho letto un libro che diceva che la tua mente ti venderà, ma il tuo cuore non lo farà mai, semplicemente non può. Così ho deciso di seguire il mio cuore.

Credo che questo sia il posto migliore per la prima lezione:

… e anche una volta che ci arrivi l’apprendimento non si ferma mai.

Foto di Raj Eiamworakul su Unsplash

Quello è stato l’anno più difficile che abbia mai passato. Ho dovuto investire molto tempo per imparare e costruire. Ho dovuto consumare tutti i miei risparmi e indebitarmi ancora di più. Ho dovuto lasciare andare il mio ego e accettare di essere di nuovo un principiante, ho dovuto passare meno tempo con il mio partner, ho dovuto fare del mio meglio per spiegare alla mia famiglia e ai miei amici che stavo completamente facendo una svolta a 180 gradi senza alcuna garanzia di entrare in un settore che, sebbene sia molto richiesto, è pieno di giovani laureati in informatica e desiderosi di sviluppare alumni dei bootcamp.

Non avevo anche soldi per i bootcamp. Non avevo altra scelta che insegnare a me stesso tutto ciò che ho imparato. L’unica cosa che vi farà andare avanti è la GRIT. Non l’intelligenza o il denaro. Questi possono aiutare, ma tutto si basa sul duro lavoro che ci metti. E l’unica cosa che ti farà superare quei momenti difficili è se ti stai divertendo.

QUESTO DEVE ESSERE DIVERTENTE per superare le sfide difficili.

Foto di Kelly Sikkema su Unsplash

L’emozione di risolvere un problema veramente difficile deve essere enorme per te perché lo sforzo che metterai nel risolvere i problemi di programmazione può essere a volte stressante, estenuante e dispendioso in termini di tempo. Se siete eccitati o addirittura ossessionati dal risolvere qualcosa che si rivela essere una sfida, questo vi aiuterà in grande misura.

Una combinazione di non arrendersi quando diventa difficile ed essere eccitati nel risolvere un problema enorme sono ingredienti necessari. Se avete questi ingredienti ma non pensate di essere abbastanza intelligenti, capite che non si tratta di essere intelligenti o efficaci all’inizio. Nessuno sa tutto, specialmente quando inizia. Ciò che conta è lo sforzo continuo, indipendentemente da quanto tempo ci voglia per arrivare a questo punto.

Liberatevi della percezione che programmare significhi essere grandi in matematica. Un programmatore deve essere bravo a risolvere problemi che non ha mai incontrato prima. Questo sarà importante tanto sul lavoro quanto quando si inizia il percorso di apprendimento.

Scegliete presto un percorso e concentratevi su di esso.

Foto di Esteban Lopez su Unsplash

Questo può essere un consiglio contraddittorio ma qualcosa che vorrei aver saputo all’inizio. Capisco i pro del cercare di imparare un po’ di tutto. Il vostro istinto naturale può essere quello di voler imparare tutto. Imparerete rapidamente che questo è impossibile e non funziona così.

Ogni programmatore ha una particolare competenza, abilità e può diventare molto granulare. Le aziende ti assumono in base a particolari abilità. Potreste finire per usare un software di cui non avete mai sentito parlare una volta assunti, questo va bene ed è uno scenario molto probabile, ma nel processo di assunzione si valuta che abbiate un particolare set di abilità.

Scegliete un PERCORSO o probabilmente soffrirete di conoscere solo tutto ad un livello base e non sapere nulla ad un livello profondo che è dove sono il vero apprendimento e le sfide.

Questo può significare prima passare attraverso un breve periodo di ricerca e scoperta. Fate in modo che il vostro obiettivo sia quello di arrivare ad un percorso scelto. La scelta principale coinvolta è quale tipo di programmazione vuoi fare (es. web design, front end, back end dev, applicazioni mobili, ecc.) Una volta deciso il percorso, fai una ricerca sugli strumenti standard del settore utilizzati, sui titoli di lavoro, sul tipo di competenze che ci si aspetta che tu abbia ecc. È anche utile decidere per quale tipo di azienda vuoi lavorare. Il tuo lavoro e le tue competenze possono variare molto per esempio tra startup tecnologiche, grandi banche aziendali e organizzazioni non profit.

BUILD PRODUCT. Questo dovrebbe essere il tuo più importante indicatore di progresso.

Foto di SpaceX su Unsplash

Questo è forse di nuovo controverso ma ha fatto la differenza per me. Una delle cose con cui ho lottato all’inizio era su cosa concentrarsi mese dopo mese in termini di progresso. È facile perdersi nei risultati dell’apprendimento, nei segni di spunta verdi e nelle notifiche di congratulazioni per il completamento dei corsi online. Questi sono grandi e necessari nel processo di apprendimento. Ma alla fine di tutto, a nessuno interessa veramente cosa hai imparato in un corso, quanti ne hai fatti, o quali certificati digitali hai per averci passato 120 ore.

Quello che gli interessa è quello che hai costruito. Non sto dicendo che i corsi online non hanno valore, possono essere uno strumento estremamente prezioso per imparare ciò che si deve sapere. Ma non fate troppo affidamento su di loro, imparate a configurare il vostro ambiente di sviluppo all’inizio (sì, con il terminale che inizialmente fa paura) e costruite qualcosa.

Quello che costruite da soli, mese dopo mese dovrebbe essere ciò su cui dovreste concentrarvi come pietre miliari del viaggio. Quando fai un colloquio, questo è ciò di cui passerai quasi tutto il tempo a parlare e a mostrare. La gente ama vedere quello che hai costruito.

Non aver paura di immergerti nel profondo.

Foto di Jakob Owens on Unsplash

Questo è stato forse il miglior consiglio che ho ricevuto all’inizio intervistando altri programmatori su questa carriera. Se volete determinare rapidamente se la programmazione è il giusto percorso di carriera per voi, questo è il MIGLIOR MODO PER Mettervi alla prova. Costruirà anche la tua persistenza più velocemente se vuoi veramente ottenere un lavoro entro un anno.

Una volta che hai deciso il tuo percorso scegli un progetto HARD. Forse è una bella app che hai in mente e che usi un framework avanzato per costruirla, nessun progetto è troppo folle. L’obiettivo qui non è il completamento del progetto (anche se sarebbe fantastico), ma vedere quanto lontano si arriva, come si reagisce alla pressione di essere in uno spazio completamente sconosciuto, quanto velocemente si può afferrare un nuovo concetto.

Durante il percorso è probabile che ci si imbatta in concetti nuovi ma importanti che si sarà costretti a superare (es. impostare un ambiente di sviluppo, installare i vostri strumenti, trovare e capire la documentazione, capire come comunicare con un’API, capire come fare una chiamata AJAX, capire come funziona internet, ecc)

I vantaggi di fare questo è che mette tutto l’apprendimento che farete in prospettiva. Dà un senso alle lezioni quando le stai imparando. Vi darà anche la CONFIDENZA di poterlo fare. Ne avrete bisogno per i mesi pesanti e faticosi che vi aspettano. Non abbiate paura di tuffarvi nel profondo, mai.

Siate aperti in termini di tipo di industria o mercato in cui entrate.

Foto by Ryan Franco on Unsplash

È importante avere in mente un percorso e un obiettivo per il tipo di lavoro che si desidera. Ma è anche importante rimanere aperti rispetto alle opportunità che si presentano.

Il mio obiettivo iniziale era quello di entrare in una startup tecnologica, dato che avevo molte connessioni ed esperienza con la scena delle startup a Toronto. Ma sono stato assunto da un’incredibile organizzazione non-profit nello spazio del cinema e delle arti con un grande team, un ambiente divertente, un marchio ben noto e molte opportunità di crescita e apprendimento. La vita è divertente e non sai mai quando un settore o un mercato completamente diverso può avere quello che stai cercando. Ricorda che tutti hanno bisogno di programmatori perché tutti sono in competizione per l’attenzione nello spazio digitale.

Sii aperto e mentre cerchi lavoro, non aver paura di uscire dai tuoi soliti confini. Fai domanda ad alcune organizzazioni casuali ma interessanti che solleticano la tua fantasia. Anche se non stanno esplicitamente assumendo per la tua posizione. Non sai mai chi puoi incontrare o chi può aver bisogno delle tue specifiche competenze. La passione e l’interesse per il tuo lavoro vanno molto lontano e possono aiutare a superare i buchi di esperienza. Il settore meno atteso potrebbe essere quello che ti offre la più grande opportunità.

Fare networking è GRANDE, ma ciò che è più grande è costruire il prodotto.

Foto di Daniel Cheung su Unsplash

Questo segue i consigli precedenti e può sembrare ripetitivo, ma lo ripeto per importanza. Questo può anche essere contraddittorio e ancora di più se vieni da un background di business. Lo so, l’ho capito e l’ho vissuto. La tua rete è la tua chiave. Nel diventare un programmatore anche questo è importante, ma non quanto costruire il prodotto. C’è un forte bisogno nel mercato di sviluppatori per il futuro prossimo. Quando sarai pronto ci saranno molte opportunità e persone da incontrare. Ma fino ad allora non importa quante conferenze tecnologiche o eventi di social networking frequenti.

Non sto dicendo di non fare queste cose, sono preziose e importanti per non perdersi nella propria bolla, e per imparare di cosa sta parlando il settore. Ma preoccupatevi di più di costruire il prodotto. Questo vi aiuta anche quando partecipate agli eventi e incontrate gli altri, perché vi dà un obiettivo per le vostre conversazioni. Puoi ottenere un feedback reale e onesto, idee e forse ottimi consigli quando mostri e parli con le persone. Tira fuori il tuo portatile (se è il caso) e mostralo alla gente, ottieni un feedback, esercitati a spiegare il tuo pensiero e il motivo per cui hai costruito X in un certo modo.

Ricorda qui che il design conta e mostrando agli altri ciò che hai costruito, ti costringerà a preoccuparti di cose come UI, UX e visual design. So che questo può sembrare spaventoso, ma dovrete sentirvi a vostro agio a parlare dei vostri progetti quando si tratta di interviste.

Il vostro obiettivo per le interviste: Indirizzare la conversazione verso COSA HAI FATTO.

Foto di Jo Szczepanska su Unsplash

Per il massimo successo del colloquio, il vostro obiettivo dovrebbe essere quello di dirigere la conversazione verso i vostri prodotti costruiti. Questo non funzionerà sempre e molto probabilmente dovrete fare prove di codifica e tecniche in entrambi i casi, ma ho trovato che questo aiuta molto nel colloquio. Siate pronti a parlare del PERCHE’ avete preso certe decisioni.

Perché avete scelto questo framework/libreria/linguaggio? Perché l’hai costruito in quel modo? Perché hai messo questo pulsante qui (sì, come programmatore sei anche parte del processo di progettazione, sorpresa!)? Perché hai scelto questo metodo per ordinare questa lista? Chi è l’utente (sì, come programmatore sei anche parte del processo di UX, sorpresa!?)

Preparati a parlare dell’utente. Comprendete profondamente l’utente e come il vostro progetto risolve il suo dolore o desiderio. Ai manager che assumono piacerà molto vedere che vi interessa profondamente l’utente e che siete consapevoli di qualsiasi pregiudizio o ipotesi che avete personalmente e che può influenzare il prodotto.

Ricordate che la persona che assume non sta cercando di spaventarvi o di mettere in discussione le vostre decisioni personali. Vogliono che tu vinca. Ma ciò di cui sono più curiosi è come pensate, come reagite alle sfide e quanto vi interessa l’utente e il suo problema. Il modo migliore per dimostrare queste cose è attraverso i vostri progetti.

Continuate finché non ci arrivate.

Foto di Zhen Hu su Unsplash

È un viaggio difficile, pieno di stress, sentirsi persi, non sapere dove si è a volte. È importante non lasciare che le acque turbolente ti facciano desistere. Ricorda che ogni problema che affronti è in realtà un’opportunità mascherata. Qualcosa che forse ti porterà ad un piano più alto o più profondo di comprensione di un concetto. Non essere duro con te stesso per aver fallito. Diventa comodo con il fallire molte volte e abbraccialo come parte del viaggio.

Spero che questo consiglio raggiunga qualcuno là fuori che ne ha bisogno e che sta passando quello che ho passato io, e spero che sia d’aiuto. Puoi farcela, basta andare avanti! 🙌🙌🙌

Grazie per aver letto e seguimi su Medium o Twitter @aellenj

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *