Come diventare developer
Sei seduto di fronte al tuo computer, uno schermo vuoto che ti guarda, un cursore lampeggiante che sembra sottolineare la tua incertezza. Nel cassetto della tua scrivania c’è da tempo un sogno: diventare sviluppatore di software, mettendo finalmente a frutto la tua passione per l’informatica. L’incertezza consiste in questo: da dove cominciare?
Se sei approdato qui, è probabile che la tua situazione non sia molto diversa da questa. In ogni caso, indipendentemente dal motivo che ti ha spinto a fare clic su questa guida, sappi che sto per darti delle indicazioni pratiche adattabili a ogni contesto/scenario.
Non conta nemmeno quale sia la tua ambizione precisa (per esempio diventare developer mobile, di videogiochi, oppure di software per PC): nei capitoli che seguono, troverai tutto quello che ti serve sapere su come diventare developer in ogni ambito. Ovviamente si tratta solo di una leggera “infarinatura” su quello che dovrai fare per intraprendere un percorso tanto impegnativo, ma spero possa comunque tornarti utile per prendere la decisione giusta. Se questa premessa sui contenuti è chiara, non mi resta che augurarti buona lettura e – soprattutto – che il tuo sogno si avveri!
Indice
- Informazioni preliminari
- Come diventare sviluppatore software
- Come diventare sviluppatore di app
- Come diventare sviluppatore di videogiochi
- Come diventare sviluppatore Java
- Come diventare Web developer
Informazioni preliminari
Allora, a quanto ho capito, desideri sapere come diventare sviluppatore di software (diverso dal Web developer). In questa prima parte, ti illustrerò gli esatti passi da compiere per raggiungere il tuo obiettivo. Preliminarmente, però, è opportuno familiarizzare con il linguaggio… o meglio, con i linguaggi effettivi di questo mondo.
Mi riferisco ovviamente ai linguaggi di programmazione, che di seguito trovi elencati con accanto il loro “scopo” specifico.
- Java: ampiamente utilizzato nello sviluppo di applicazioni enterprise, applicazioni Android e servizi Web (per approfondire, leggi la mia guida su come imparare Java).
- Python: è noto per la sua semplicità e versatilità ed è utilizzato in una vasta gamma di applicazioni, inclusi sviluppo Web, data science, intelligenza artificiale e automazione. A questo link, una guida completa.
- JavaScript: è il linguaggio principale per lo sviluppo Web front-end e può essere utilizzato anche per lo sviluppo back-end tramite Node.js.
- C#: comunemente utilizzato per lo sviluppo di applicazioni Windows, giochi tramite Unity e applicazioni enterprise.
- C++: utile per lo sviluppo di sistemi embedded, giochi, applicazioni desktop e software a basso livello. Se è tua intenzione partire proprio con C (nelle sue varie declinazioni), dai un’occhiata a questo tutorial.
- PHP: praticamente imprescindibile per i Web developer in particolare; è il linguaggio dei siti Web dinamici e delle applicazioni Web.
- Ruby: noto per il framework Ruby on Rails e utilizzato anch’esso tipicamente nello sviluppo Web.
- Swift: “parlano” questo linguaggio le moderne applicazioni iOS, iPadOS e macOS. Maggiori informazioni qui.
- Objective-C: è il linguaggio storico su cui si sono basate le app per iPhone e iPad (Swift sta prendendo pian piano il suo posto). Come si intuisce dal nome, si tratta di un’estensione a oggetti del linguaggio C. Maggiori informazioni qui.
- Kotlin: popolare per lo sviluppo di applicazioni Android in alternativa a Java.
- SQL: non un linguaggio di programmazione tradizionale, ma comunque essenziale per la gestione di database.
- Rust: impiegato per lo sviluppo di sistemi e app a basso livello, Rust si distingue per sicurezza e velocità.
- Go (Golang): l’efficienza è la prerogativa di questo linguaggio, “parlato” da applicazioni back-end, servizi Web e app di sistema.
Quelli che abbiamo appena visto sono i linguaggi più importanti, tra quelli impiegati nell’industria del software. La scelta del linguaggio può variare in base alle preferenze personali, alle esigenze del progetto e alle risorse disponibili. Il più delle volte, a suggerire il linguaggio da utilizzare, è la stessa piattaforma di destinazione: se per esempio si desidera sviluppare un’app per Android, la scelta di Java è praticamente obbligata.
Ma dove va scritto, materialmente, il codice di un software? Beh, basta procurarsi un programma (IDE, ambiente di sviluppo integrato) come Visual Studio, utile per la programmazione in diversi linguaggi tra cui C, Visual Basic, F# e Python. Visual Studio è gratuito e scaricabile facilmente dal sito di Microsoft.
Con esso, potrai scrivere, compilare e debuggare codice in modo efficiente, sfruttando gli strumenti messi a disposizione per lo sviluppo di software per piattaforme Windows e – con alcune estensioni – anche per altre piattaforme. Ti ho spiegato come usare Visual Studio Code in un mio tutorial dedicato.
Ad ogni modo, sarà mia cura suggerirti l’IDE più indicato per ogni progetto nei prossimi capitoli.
Come diventare sviluppatore software
A questo punto, desidero informarti su come, generalmente, si diventa software developer. Una laurea non è sempre necessaria, ma può comunque essere utile e aprirti più opportunità di lavoro. Quello universitario rimane il percorso canonico, specie se si punta a fare carriera o a sviluppare software particolarmente avanzati, ma – come vedremo – non è l’unica strada possibile. Di seguito un elenco con le principali opzioni di formazione.
- Corso di laurea in Informatica. Questo tipo di studi offre una solida base teorica e pratica in informatica, ed è quello più consigliato se il tuo obiettivo è raggiungere posizioni di alto livello nel nostro settore. Ci sono anche università online che potrebbero rivelarsi adatte allo scopo.
- Corso di laurea in Ingegneria informatica. Ibrido, combina elementi di ingegneria con l’informatica e prepara alla progettazione di software complessi, oltre che di infrastrutture tecnologiche.
- Corso di laurea in Matematica, Fisica o Biologia (combinato a una specialistica in Bioinformatica). Alcuni sviluppatori hanno un background formativo matematico o scientifico, e applicano le loro conoscenze e abilità nel campo informatico. Chiaramente, in certi casi, è opportuno integrare le lacune seguendo dei corsi post-laurea.
- Interfacoltà. Al giorno d’oggi, diversi atenei propongono dei percorsi di studio in “Economia e Informatica”, oppure “Comunicazione e Informatica”. Vale la stessa postilla del punto precedente.
- Bootcamp di sviluppo software (“coding bootcamp). Se non hai molto tempo da dedicare alla formazione, o comunque vorresti accedere rapidamente al mondo del lavoro, considera di seguire un bootcamp di sviluppo software, in gergo ”coding bootcamp”. Si tratta di programmi intensivi di durata variabile (da alcune settimane ad alcuni mesi) in grado di fornirti le competenze necessarie per iniziare a produrre software di media complessità.
- Autodidattismo. Persone dotate di una forte passione e (quindi) motivazione possono acquisire le competenze necessarie anche da soli, leggendo libri e/o seguendo tutorial online (ad esempio su piattaforme come Udemy o cercando su YouTube) ed esercitandosi con la creazione di progetti personali. Di seguito trovi alcuni testi ideali per acquisire almeno i “fondamentali”.
Imparare a programmare: Dopo averlo letto sarà facilissimo imparare qu...
PROGRAMMARE, Impara velocemente Javascript, Python, PHP, Java, C#, HTM...
PRO Web Developer - La guida definitiva
Se sei molto giovane (ma hai già le idee chiare!) e stai leggendo questo articolo prima ancora di iscriverti alla scuola superiore, potresti valutare la scelta di un liceo scientifico a indirizzo tecnologico oppure di un istituto tecnico informatico. Entrambi sono in grado di darti solide basi in tema di informatica e sistemi; in particolare il secondo, che al termine del quinquennio prevede il rilascio di una qualifica spendibile già di per sé (la qualifica di “perito informatico).
Come diventare sviluppatore di app
Uno sviluppatore di app mobile o mobile developer è un professionista che progetta e sviluppa applicazioni per dispositivi mobili come smartphone e tablet. Le app possono essere sviluppate per almeno due piattaforme: Android (Google) e iOS/iPadOS (Apple), a cui corrispondono altrettanti linguaggi di programmazione (Java/Kotlin e Swift/Objective-C).
La prima cosa da fare, se sei deciso a intraprendere questo percorso, è chiederti proprio quali app sviluppare, per quale delle due piattaforme. Trovi qui dei consigli pratici su come creare le tue applicazioni; adesso, invece, intendo soffermarmi sullo step anteriore a quello della creazione, quindi svuotare con te la “cassetta degli attrezzi” e descriverti uno per uno gli “strumenti del mestiere”, oltre alle competenze necessarie per adoperarli efficacemente.
Come diventare sviluppatore Android
Per diventare sviluppatore Android, è indispensabile conoscere i linguaggi di programmazione Java e Kotlin. È richiesto anche uno studio preliminare della documentazione disponibile sul sito ufficiale degli sviluppatori Android (developer.android.com), contenente una vasta quantità di informazioni, tutorial e guide tecniche utili per iniziare.
Lo step successivo consiste nell’installare Android Studio, l’ambiente di sviluppo ufficiale di Google. Per programmare effettivamente la tua prima app, puoi seguire le istruzioni contenute in questo tutorial. Raggiunto un risultato soddisfacente, potrai pubblicarla sul Google Play Store, previa creazione di un account sviluppatore. L’operazione in sé è abbastanza semplice da compiere (qui trovi la guida approfondita), ma tieni conto del costo una tantum di 25$. Maggiori informazioni qui.
Come diventare developer Apple
Ci sono due modi di intendere il lavoro da sviluppatore Apple. Il primo modo corrisponde al lavoro come dipendente per un’azienda che sviluppa app Apple, mentre il secondo è rappresentato dallo sviluppo di app indipendenti da pubblicare in autonomia sull’App Store. In ogni caso, potrai definirti “sviluppatore Apple” solo quando avrai compiuto una serie di passi specifici, primo fra tutti iscriversi all’Apple Developer Program (qui trovi spiegato come fare: ti anticipo solo che l’iscrizione ha un costo di 99$ all’anno). Maggiori informazioni qui.
Fatto ciò, per iniziare effettivamente a programmare, dovrai scaricare Xcode, l’ambiente di sviluppo integrato (IDE) di Apple. Xcode è scaricabile gratuitamente dall’App Store del tuo Mac. Su Xcode, è possibile sviluppare app per tutti i sistemi operativi Apple, inclusi quelli mobili (iOS, iPadOS, watchOS) e tvOS. Per istruzioni su come scaricarlo e installarlo, consulta pure questo articolo.
Quanto al linguaggio di programmazione, come abbiamo visto prima, è richiesta la conoscenza di Swift ed eventualmente anche di Objective-C, ancora utilizzato in alcune codebase più vecchie.
Volendo, è possibile anche sviluppare da iPad, avvalendosi dell’applicazione Swift Playgrounds, che permette di imparare le basi della programmazione Swift mediante giochi e procedure interattive.
In generale, a te che chiedi come diventare sviluppatore iOS o come diventare sviluppatore su iPhone (o anche iPad e Mac), darei come ulteriore consiglio quello di partecipare a eventi e conferenze Apple (la più importante è la Worldwide Developers Conference (WWDC) ma ovviamente non è alla portata di tutti). Appuntamenti come questi, infatti, potrebbero aiutarti a rimanere aggiornato sulle ultime novità e a connetterti con i colleghi.
Come diventare sviluppatore di videogiochi
Lo sviluppo di videogiochi è un lavoro particolarmente complesso, nel senso etimologico del termine. Ciò che voglio dire è che comprende più task, ovvero – in sintesi – la progettazione, la programmazione vera e propria, la realizzazione della grafica e delle musiche e altro ancora. Prima di cominciare, è conveniente approfondire la teoria dei giochi, la psicologia del giocatore, e ulteriori concetti specifici come quelli di game design, level design e storytelling.
Potrebbe sembrarti troppo, detta così, e in effetti potresti avere ragione: di solito, questi task vengono distribuiti tra più persone facenti parte di un team di sviluppo. Ci sono dunque – oltre agli “sviluppatori” propriamente detti – anche sceneggiatori e musicisti, tanto per fare due esempi. La collaborazione è spesso chiave nello sviluppo dei giochi; per questo motivo, il primo consiglio che mi sento di darti è quello di fare networking, ossia di provare ad ampliare la tua rete di contatti partecipando a corsi, workshop e in generale a eventi sul mondo del game development.
Parlando nello specifico della scrittura del codice, ti servirà conoscere i linguaggi C++, C#, Java o Python. Essenziale anche dotarsi di un motore grafico come Unity o Unreal Engine, attraverso cui generare la parte più strettamente visuale del gioco. Per quanto riguarda gli IDE, Unity utilizza il suo editor proprietario – Unity Editor, appunto –, e così anche Unreal Engine (Unreal Editor).
Unity. Guida pratica per creare videogiochi, app, realtà aumentata e v...
Trovi info più dettagliate su come creare un gioco nella mia guida dedicata (qui ti spiego come creare un gioco specifico per PC). In alternativa, puoi pensare di seguire qualche corso base per aspiranti game developer disponibile su Udemy.
Come diventare sviluppatore Java
Java è uno dei linguaggi di programmazione a oggetti più conosciuti e apprezzati in assoluto. Il percorso formativo necessario per diventare uno sviluppatore Java varia in base alle tue aspirazioni e al tuo livello di istruzione di partenza. In generale, come ti dicevo nel secondo capitolo, potresti impararlo o da autodidatta, seguendo tutorial e/o corsi come questo, oppure considerare l’opzione università. In entrambi i casi, per specializzarti in sviluppo Java, potrebbe essere necessario seguire dei corsi più avanzati. In alternativa, dopo aver acquisito competenze di base, potresti ricercare opportunità di lavoro entry-level come sviluppatore Java junior, per poi ambire al ruolo di senior.
Di seguito un elenco di altre opportunità lavorative comuni.
- Architetto Java. Si occupa di progettare l’architettura dei sistemi software e di prendere decisioni strategiche sulle tecnologie e le soluzioni da adottare.
- Sviluppatore Java (freelance o consulente). Professionista autonomo o consulente per diversi progetti e clienti.
- Insegnante o formatore Java. Fornisce formazione alle persone che vogliono imparare questo linguaggio.
- Sviluppatore di app Android. Vd. capitolo dedicato.
- Impiegato nell’industria finanziaria e delle assicurazioni. Java è molto utilizzato in questo settore per lo sviluppo di software e applicazioni per la gestione delle operazioni finanziarie e assicurative.
- Impiegato in start-up tecnologiche. Le start-up cercano spesso sviluppatori Java che diano forma concreta alle loro idee.
Se hai bisogno di una guida più completa al linguaggio di programmazione Java, oppure se ti senti già pronto a cimentarti nella creazione di un primo progetto, consulta pure questo tutorial. Ti anticipo solo che – se sei intenzionato a fare sul serio – ti conviene procurarti al più presto Eclipse o IntelliJ IDEA come ambienti di sviluppo integrato (IDE) dove iniziare effettivamente a fare pratica. Eclipse è particolarmente utilizzato nella comunità Java open source, mentre IntelliJ IDEA è noto per la sua interfaccia utente intuitiva e le sue funzionalità avanzate.
JAVA: La guida in 7 giorni più completa per principianti alla programm...
Il nuovo Java. Guida completa alla programmazione moderna
Come diventare Web developer
In questa guida abbiamo visto principalmente come si diventa software developer. E se invece volessi dedicarti allo sviluppo Web? Be’, i percorsi formativi possibili sarebbero sempre molteplici; praticamente identici a quelli che ti ho elencato nel secondo capitolo, solo con sbocchi/esiti diversi. Dovresti infatti specializzarti (in itinere o dopo aver ricevuto un’infarinatura generale ad esempio durante il tuo corso di laurea triennale) nella programmazione con uno o più linguaggi Web, a cominciare da HTML, CSS e JavaScript.
Più nel concreto, potresti considerare l’opzione “corso di formazione”: realtà come Aulab ne offrono diversi, ma per i dettagli sulle modalità di accesso e i prezzi puoi fare riferimento a questo articolo. Qui, invece, ti spiego passo passo come si diventa Web developer da zero, anche da completi autodidatti.
In qualità di affiliati Amazon, riceviamo un guadagno dagli acquisti idonei effettuati tramite i link presenti sul nostro sito.
Autore
Salvatore Aranzulla
Salvatore Aranzulla è il blogger e divulgatore informatico più letto in Italia. Noto per aver scoperto delle vulnerabilità nei siti di Google e Microsoft. Collabora con riviste di informatica e cura la rubrica tecnologica del quotidiano Il Messaggero. È il fondatore di Aranzulla.it, uno dei trenta siti più visitati d'Italia, nel quale risponde con semplicità a migliaia di dubbi di tipo informatico. Ha pubblicato per Mondadori e Mondadori Informatica.