Percorsi di formazione alternativi

Premessa

Questo capitolo nasce con l’intento di fornire una panoramica generale sui percorsi di formazione alternativi in ambito dev, partendo dall’assunzione che chi legge si stia ponendo la domanda: “Come posso diventare developer?”, ma soprattutto: “Posso farlo anche senza diplomarmi o laurearmi in informatica?”. Iniziamo con il dire che la risposta a quest’ultima domanda è: .

Introduzione

Quando si muovono i primi passi, quelli dettati dalla curiosità e dalla voglia di intraprendere un nuovo percorso formativo/lavorativo, ci si imbatte sin da subito con il mondo della formazione.

Basta una semplice ricerca su Google, del tipo: “Come diventare developer?”

Da lì in avanti i vari canali social, da Instagram a TikTok, dai video promozionali di YouTube alle inserzioni su Facebook, inizieranno a proporre differenti percorsi formativi, principalmente incentrati sulla figura professionale nota come Fullstack Developer.

Ma cosa c’è dietro questa fantomatica figura e come mai è così ricercata dal mercato tanto da essere sulla bocca della maggior parte dei percorsi formativi?

Chi ricopre il ruolo di Fullstack Developer, teoricamente, conosce uno o più linguaggi di programmazione frontend e backend. Qui si apre uno scenario enorme che cercheremo di ridurre molto semplicemente come segue. Stiamo parlando di formazione in ambito programmazione, quindi di quali strade si possono percorrere per imparare a programmare, e dunque entrare nel mondo dello sviluppo software. Quindi chi scrive codice crea il programma. Il programma è tendenzialmente composto da una parte grafica ed una parte logica.

Prendiamo l’esempio dell’ambito più semplice (in termini di comprensione) nel settore tech: il web. Un programma sul web è un sito web, il quale è composto da una parte grafica, che permette all’utente di interagire, ed una parte logica, che a sua volta interpreta le azioni dell’utente.

Un tempo, fortunatamente ormai lontano, tutto questo veniva svolto da un’unica figura: il Web Master. Poi siamo passati ad avere 2 figure: Web Designer (la figura che si occupava di realizzare l’interfaccia grafica, detta anche UI/UX) e Web Developer (che traduceva in codice ciò che veniva designato dalla prima figura). Oggi la situazione è differente, e per fare un sito web servono almeno 3 figure: Designer, Frontend Developer e Backend Developer.

Tutto ciò ovviamente oggi ha un costo nettamente superiore in ottica aziendale, per questo motivo il mercato necessita di Fullstack Developer che siano in grado di tradurre le componenti prodotte dal Designer e agganciare le logiche funzionali del progetto.

Per comprendere meglio la differenza tra Frontend Developer e Backend Developer bisogna però scendere maggiormente nei dettagli.

Chi ricopre il ruolo di Frontend Developer dovrà programmare tutta la parte “visiva” del progetto. Quindi appunto tradurrà in codice tutto ciò che è stato progettato nel design. Chi invece ricopre il ruolo di Backend Developer dovrà realizzare tutta la parte logica e funzionale “dietro le quinte” del progetto. Possiamo dire che è una spiegazione un po’ approssimativa ma per ora dovrebbe bastare.

Quindi, per sommi capi, la figura del/la Fullstack Developer è la fusione tra Frontend Developer e Backend Developer.

Chi lavora nel settore è ben consapevole che ad oggi, con l’evoluzione dei linguaggi di programmazione, risulta difficilissimo conoscere e padroneggiare in maniera corretta ed approfondita entrambi gli aspetti (frontend e backend), mentre i percorsi di formazione mirano piuttosto a fornire un’infarinatura generale di entrambi gli aspetti per permettere poi a chi vuole diventare developer di scegliere in autonomia quale strada seguire.

Con il termine “Fullstack” intendiamo una figura che però non ha necessariamente competenze sistemistiche, di infrastruttura, di UI/UX e tutte quelle nuance che al giorno d’oggi sono però fondamentali.

“Ok, ma queste informazioni come possono essermi utili nella scelta degli argomenti su cui formarmi?

Sapere che esistono questi 2 mondi, frontend e backend, permette di fare una piccolissima separazione logica tra le varie strade che si possono intraprendere nel diventare developer.

La cosa fondamentale che bisogna tenere a mente quando si inizia ad intraprendere un percorso di formazione nell’ambito della programmazione è: se inizi con una cosa non è detto che poi farai quella per tutto il resto della carriera.

“Cosa vuol dire?” Ad esempio: se inizi come Frontend Developer non è detto che un domani tu non possa cambiare strada e passare al lato oscuro (backend).

Per tale motivo spesso chi fa formazione propone dei percorsi di fullstack in ambito web.

“Ok, ma come mai parliamo di siti web e non di videogiochi?” Perchè la curva di apprendimento è più bassa per chi vuole imparare a realizzare siti web, quindi è più facile che sia a portata di molta più gente, e se teniamo a mente sempre il concetto fondamentale per cui “se si inizia come frontend non è detto che si finisca da frontend” allora vien da sé pensare che un frontend oggi possa diventare un Game Developer domani.

Inoltre le tecnologie che si toccano con mano durante la fase di apprendimento in ambito web sono diverse (HTML, CSS, JavaScript) e ciò permette di avere una overview più ampia.

Facciamo un esempio: con JavaScript possiamo sviluppare siti web ma non solo: grazie alla versatilità del linguaggio possiamo ad oggi spaziare su tantissimi altri argomenti, dalle Mobile App ai Videogiochi. Addirittura con JavaScript oggi possiamo fare qualcosa che fino a qualche anno fa sembrava impossibile: il backend.

“Mi stai dicendo che se voglio diventare Game Developer devo prima formarmi come developer web?” Assolutamente no.

Se si hanno le idee chiare sin da subito allora la scelta del percorso formativo è molto più semplice, d’altro canto partire dallo sviluppo web è la strada migliore per chi ancora non ha preso una decisione in quanto consente una maggiore accessibilità. La permeanza della tecnologia web permette anche un accesso al mercato più facile e rapido rispetto ad altri campi.

“Mi stai dicendo che è più facile fare i siti web piuttosto che i giochi?” Assolutamente no.

Il concetto è che fare siti web è più accessibile sia in termini di risorse tecnologiche che in termini di know-how di partenza, per un neofita, rispetto a fare videogiochi.

“Ok, ipotizziamo che voglia partire nell’imparare a fare siti web, come scelgo il percorso giusto?” Non c’è una risposta corretta o sbagliata a questa domanda, tutto dipende dall’approccio che si ha con lo studio; subentrano poi anche altri fattori non da poco come, ad esempio, il tempo (inteso sia come tempo a disposizione per studiare e sia come quantità di tempo necessaria per raggiungere lo scopo), oppure gli sbocchi lavorativi.

Prima fase: come approcciare lo studio

Ci sono corsi formativi che lasciano maggiore autonomia e altri che invece seguono più assiduamente i propri studenti. Non ce n’è uno giusto piuttosto che uno sbagliato, l’importante è tenere a mente un altro concetto fondamentale: noi developer non smettiamo mai di imparare e, la maggior parte delle volte, impariamo per conto nostro. Sicuramente sarebbe meglio, almeno nella fase iniziale, avere qualcuno che ci segua ed alimenti la nostra curiosità. Un tutor ci permette di avere una guida, un supporto (anche morale e non solo tecnico); avere qualcuno che indirizza e che spiega all’inizio può essere d’aiuto piuttosto che chiedersi se stiamo approcciando correttamente o meno ad un problema o ad una soluzione. La curiosità invece ci insegna l’autonomia e soprattutto, cosa molto importante, ci aiuta a trovare la nostra strada.

A tal proposito, tieni sempre a mente quanto segue: Google è tuo amico, ma soprattutto il tuo miglior alleato.

Seconda fase: il tempo

Alcuni percorsi di formazione si sviluppano per periodi di tre mesi, altri di sei, altri ancora offrono dei pacchetti personalizzati. Alcuni sono costituiti da classi e le lezioni si tengono in presenza, altri invece completamente da remoto con lezioni live oppure on-demand. Anche qui, una formula magica non esiste.

Diventare developer non è semplice, ed essere developer è una questione di mindset, quindi serve del tempo per cambiare il nostro modo di approcciare e di vedere le cose. In sostanza… ci vuole tempo.

Quindi maggiore tempo dedichiamo alla nostra formazione e migliore sarà il risultato che otterremo alla fine del processo. La scelta dovrebbe essere soggettiva e ponderata, basandosi sulla quantità di tempo che si ha a disposizione. Il tempo è il maggiore investimento in questa fase; più tempo dedicate, migliore sarà il risultato finale.

“Va bene, quindi quanto tempo serve e quanto tempo dovrei dedicare alla mia formazione?” Il tempo non è mai abbastanza, e soprattutto molto soggettivo riguardo al raggiungimento del risultato, quindi la risposta giusta è: investi il miglior tempo possibile nella tua formazione.

Ad esempio: se il percorso di formazione offre lezioni mattutine, sarà necessario dedicare anche altro tempo durante la giornata per fare pratica in autonomia ed approfondire gli argomenti visti a lezione.

In poche parole: non basta il tempo “vivo” proposto dal percorso di formazione, questo perchè è necessario che chi sta imparando riesca ad “entrare” nell’ottica… ovvero acquisire il mindset da developer.

“Ma se ho un lavoro come faccio ad investire tutto questo tempo?”

Generalmente se ci si affida ad un percorso di formazione per imparare a programmare sarebbe meglio dedicarsi fulltime ad esso, perchè la mole di nozioni da acquisire nel pochissimo tempo a disposizione (tre o sei mesi) è molto elevata. Sarebbe più consigliabile un altro tipo di approccio per chi non dispone di così tanto tempo: studiare da autodidatta oppure attraverso un percorso personalizzato; in questo caso però non sarà possibile ottenere un risultato in soli tre/sei mesi ma ci vorrà molto più tempo.

Quindi se non avete pazienza, tempo, passione, curiosità e voglia è meglio lasciare perdere.

Terza fase: gli sbocchi lavorativi

Gli sbocchi lavorativi nel settore della programmazione sono tanti. La programmazione è un trend in costante crescita dato che è una materia in continua evoluzione.

Scommettere quindi su una tecnologia piuttosto che su un’altra per impostare la propria carriera lavorativa potrebbe essere un errore: il rischio di diventare un “dinosauro” e ritrovarsi fuori mercato è troppo alto.

Se si vuole rimanere appetibili nei confronti delle aziende e del mercato dobbiamo quindi essere in grado di adattarci ai cambiamenti e, soprattutto, aggiornarci. La formazione è un tema piuttosto spinoso per molte aziende, quindi mentre in alcune di queste vengono proposti percorsi di formazione interni strutturati, è importante considerare che la formazione e l’aggiornamento dovrà partire in primis da noi, in autonomia.

La figura Web Designer di ieri, che si limitava solamente ad impostare graficamente gli elementi a schermo, è diventata oggi Frontend Developer che è in grado di mettere mano a Framework e varie librerie.

Questo concetto spiega bene 2 cose:

  • bisogna continuare ad imparare e ad aggiornarsi
  • non si può fare affidamento su di una tecnologia

“Tutto bellissimo, ma come faccio a sapere se un percorso di formazione mi permette di lavorare dopo? Chi mi dà questa certezza dato che spesso e volentieri hanno dei costi alti?” Il settore della programmazione, come dimostrano le statistiche, non è un settore in perdita e non è un settore saturo, perlomeno nel periodo in cui questo contenuto è stato scritto. Basta una piccola ricerca su Google o un giro nella sezione “Lavoro” di LinkedIn (impostando come criterio di ricerca developer) per rendersi conto di quanta domanda c’è da parte delle aziende.

Inoltre spesso (anzi oserei dire che è quasi diventato uno “standard”) chi propone percorsi di formazione favorisce l’incontro dei propri corsisti con alcune Aziende Partner che sono interessate ad assumere una volta terminato il percorso.

“Cosa mi posso aspettare al termine di un percorso di formazione? Avrò autonomia e le competenze necessarie per il mondo del lavoro?” Sicuramente al termine di un percorso di formazione si potrebbe essere più consapevoli di cosa aspettarsi scegliendo di percorrere la carriera da developer, di quali siano gli strumenti necessari e di quali siano le qualità che costituiscono una figura competente.

Sia che il corso duri tre mesi, o sei, o addirittura dodici, si è ancora Junior. Una figura Junior rimane tale fino a quando non ottiene la completa autonomia lavorativa, sia con gli strumenti che già conosce e sia con gli strumenti che dovrà apprendere.

Ricordiamo che l’apprendimento nel mondo della programmazione è una costante, e ricordiamo anche che la maggior parte del tempo, durante la carriera professionale, apprendiamo in solitaria.

Al termine del percorso di formazione si faranno le prime esperienze lavorative sia sotto l’aspetto colloquiale (eh si anche quelli sono tosti) sia sotto l’aspetto lavorativo nudo e crudo.

Scegliete un percorso di formazione che vi permette di lavorare in team facendovi sporcare le mani con vari progetti da realizzare ed altrettanti strumenti da padroneggiare.

“Ok tutto chiaro, ma le aziende cosa cercano? Perchè dovrebbero prendere una persona che ha fatto un corso?” Le aziende cercano, e cercheranno sempre, figure Junior perchè esse sono più “malleabili” e quindi è più facile “impostarle” per quelle che sono le necessità specifiche dell’azienda in questione.

Quando una azienda assume, significa che è pronta a investire tempo e denaro sulle nuove risorse, quindi è pronta a fare crescere qualcuno all’interno del proprio ambiente.

Ciò significa 2 cose:

  • c’è ancora da imparare, ma…
  • …questo porta a crescita personale e formativa

Ovviamente però l’azienda ha bisogno di alcune “certezze” prima di assumere un candidato, spesso tali certezze sono difficili da ottenere specialmente sotto l’aspetto tecnico, e non basta un test per capire se si ha davanti la persona adatta per il modus operandi dell’azienda o del team.

Dunque scegliere un percorso di formazione, se si ha la possibilità, sicuramente è meglio piuttosto che decidere di intraprendere un percorso da “autodidatta” sia perchè otterrete dei risultati tangibili in minor tempo, sia anche perchè il percorso di formazione stesso vi farà da “garante”.

Quindi, per concludere, se non sai da dove partire, buttati! Strada facendo, troverai quella più adatta alle tue esigenze. Se invece hai già le idee chiare, allora è tutto più semplice (ma ricordati di essere disponibile al cambiamento).