11 tipi di sviluppatori (quale sarai?)
Pubblicato: 2022-10-05Pronuncia la parola "sviluppatore" e noi di Kinsta pensiamo "software". Non, diciamo, "immobiliare". Tuttavia, anche l'attenzione ai computer e al codice lascia molto spazio per descrivere i tipi di sviluppatori.
Potremmo classificare gli sviluppatori in base al linguaggio di programmazione che usano, come "sviluppatore JavaScript" o "sviluppatore Python", ma ciò non rivelerebbe ciò che stanno creando o il loro ruolo nel processo. Inoltre, è comune che gli sviluppatori conoscano più lingue.
Pertanto, utilizzeremo alcune etichette ampiamente accettate (e più descrittive) per i tipi di sviluppatore e esamineremo le attività e gli strumenti dietro di esse.
Che cos'è uno sviluppatore?
Abbiamo stabilito che il software è la chiave della storia dei nostri sviluppatori. Ciò può assumere molte forme.
Un membro del team di programmazione dietro il software di database SQL Server di Microsoft è uno sviluppatore. Qualcuno che utilizza Structured Query Language per lavorare con le informazioni archiviate in un database di questo tipo può anche essere uno sviluppatore.
Uno sviluppatore crea un sistema operativo per computer incorporato in un circuito stampato. Un altro scrive script Bash per automatizzare le interazioni tra più altri programmi software.
Tutti questi tipi di sviluppatori hanno costruito qualcosa con il codice.
Quanti tipi di sviluppatori esistono?
Non esiste un elenco "ufficiale" di descrizioni dei lavori degli sviluppatori. Esamineremo cosa fanno gli sviluppatori usando una terminologia comune e stiamo persino suddividendo l'ampia categoria di "sviluppatori web" in tre ruoli distinti. (Lo ammettiamo: abbiamo un debole nei nostri cuori per le persone che creano siti web.)
In tutto, esamineremo 11 tipi di sviluppatori qui.
1. Sviluppatore Web Frontend
Uno sviluppatore frontend si concentra sull'interfaccia utente di un sito web. Usano le loro competenze in HTML e CSS per controllare l'aspetto di un sito, spesso adattando schermi di varie dimensioni su browser mobili e desktop.
Gli sviluppatori frontend in genere si affidano a JavaScript per creare un'esperienza reattiva per gli utenti. Questi sviluppatori hanno spesso familiarità con le librerie e i framework JavaScript che possono accelerare la creazione di applicazioni dinamiche rivolte al client.
Lo sviluppatore frontend lavora per migliorare le prestazioni del sito Web, ottimizzando immagini, JavaScript e markup per tempi di caricamento più rapidi nei browser. La maggior parte degli sviluppatori frontend si concentra anche sull'ottimizzazione dei motori di ricerca e sull'accessibilità del sito web.
Tutto ciò richiede molte abilità e lo stipendio di uno sviluppatore frontend può rifletterlo.
Gli sviluppatori frontend sono web designer?
Molti sviluppatori frontend sono anche designer, ma questo non è un requisito del titolo "frontend". Allo stesso modo, molti web designer sono esperti in HTML e CSS - e potrebbero usarli nei modelli - ma non si considerano sviluppatori.
Per molte organizzazioni, il design fa parte del branding che comprende i media oltre il web.
Indipendentemente da chi crea un design, è compito dello sviluppatore frontend dargli vita su una pagina Web e trasformare la visione di un'esperienza utente in un'applicazione funzionante.
2. Sviluppatore Web di back-end
Uno sviluppatore back-end crea applicazioni lato server che di solito richiedono esperienza nel software del server Web, nei database e nei sistemi operativi su cui vengono eseguiti. Un esempio completamente open source potrebbe essere il sistema operativo Linux, un server Web Nginx o Apache e un database MariaDB o PostgreSQL.
Il confine tra lo sviluppo del back-end e quello del front-end è offuscato da tecnologie come PHP, solo un linguaggio di scripting lato server che invia HTML ai browser sul front-end.
PHP, che alimenta WordPress e altri popolari CMS, nonché framework di sviluppo come Laravel, è il linguaggio di scripting lato server più comune del web. Tuttavia, gli sviluppatori di back-end potrebbero utilizzare tecnologie come C# e .NET framework di Microsoft, Python, Java, Ruby on Rails o Node.js.
Gli sviluppatori di back-end possono aspettarsi di lavorare in collaborazione con i membri del team che si occupano del lato client di un sito Web. Lo sviluppo lato server può includere anche la creazione di API (Application Programming Interface) che supportano i servizi front-end con una minore necessità di uno stretto accoppiamento delle due parti.
Se tutto ciò suona come il tuo tipo di lavoro, potresti essere interessato ai tipici stipendi degli sviluppatori back-end.
3. Sviluppatore Web completo
Potresti aver intuito che uno sviluppatore full-stack fa il lavoro di sviluppatori front-end e back-end. (Purtroppo, ciò non significa che lo stipendio di un tipico sviluppatore full-stack sia il doppio di quello degli altri.)
Tuttavia, la padronanza di tutti i livelli di sviluppo web sembra avere le sue ricompense. Un sondaggio del 2022 tra gli sviluppatori condotto da StackOverflow ha rilevato che "sviluppatore full-stack" è stata la risposta principale (quasi il 47%) quando agli intervistati è stato chiesto di descrivere i propri ruoli.
Gli sviluppatori di WordPress sono sviluppatori full-stack?
Le funzionalità dell'hosting WordPress gestito qui su Kinsta consentono a chiunque sia competente in PHP di fare uno sviluppo serio senza scavare a fondo nel lato server delle cose.
WordPress installato ovunque è intuitivo per gli sviluppatori e offre una vasta libreria di funzioni/metodi PHP propri che costituiscono uno strato di astrazione su alcune attività comuni lato server. Ad esempio, gli sviluppatori di WordPress possono archiviare e recuperare record in database relazionali senza scrivere SQL. Possono salvare i caricamenti multimediali sul file system di un server senza conoscere la funzionalità di base in PHP che rende tutto possibile.
"WordPress Developer" avrebbe potuto essere una categoria a sé stante, ma avremmo dovuto fare lo stesso per gli sviluppatori che utilizzano prodotti CMS come Drupal, Joomla e DNN e framework come Laravel, .NET e Django.
Molti sviluppatori di WordPress, in particolare alcuni che creano temi e plug-in WordPress, hanno spunti stimolanti a tutto campo. Quindi, la risposta alla domanda "Gli sviluppatori di WordPress sono sviluppatori full-stack?" è: Dipende.
4. Sviluppatore di app mobili
Il termine "applicazione" copre molto terreno nello sviluppo del software. Dal desktop al Web, le applicazioni sono gli strumenti che consentono di fare le cose per gli utenti finali.
Quando abbreviato in solo "app", come in "C'è un'app per quello!" — tendiamo a pensare prima alle applicazioni in esecuzione su smartphone, tablet e altri dispositivi mobili. E la creazione di app mobili richiede un tipo di sviluppatore specializzato.
Gli sviluppatori di app mobili hanno familiarità con i kit di sviluppo software (SDK) e gli strumenti correlati utilizzati per creare applicazioni per il sistema operativo di un dispositivo, come iOS di Apple o Android di Google.
Swift è il linguaggio di programmazione nativo per iOS, mentre Java e Kotlin sono i più utilizzati per Android. Inoltre, un ampio ecosistema di strumenti per la creazione di app, come Apache Cordova e NativeScript, può trasformare codice basato su JavaScript, HTML e CSS compatibili con il Web in software mobile nativo.
Quando abbiamo esaminato gli stipendi medi degli sviluppatori di app, abbiamo scoperto che quelli che costruiscono per piattaforme mobili guadagnano leggermente di più di quelli che si concentrano sul desktop o sul Web.
5. Sviluppatore di software desktop
Gli sviluppatori desktop creano applicazioni software che funzionano su personal computer e workstation.
Gli sviluppatori generalmente creano applicazioni desktop per sistemi operativi specifici, quindi l'attività in questo campo riflette le quote di mercato relative di piattaforme come Windows di Microsoft, macOS di Apple, Chrome OS di Google e il sistema operativo open source Linux.
Utilizzando i dati raccolti dalle visite ai siti Web in tutto il mondo, Statcounter ha stimato nell'agosto 2022 che Windows deteneva una quota di mercato del 74% tra i sistemi operativi desktop.
È probabile che gli sviluppatori programmino utilizzando gli strumenti dell'ambiente di sviluppo integrato (IDE) per la modifica, il debug e la compilazione rapida del codice sorgente.
I linguaggi popolari per la programmazione di applicazioni desktop includono C#, C++, Swift e Java.
Il software desktop viene eseguito localmente, ma le applicazioni moderne potrebbero utilizzare la connettività Internet per attività che vanno dagli aggiornamenti dei prodotti alla condivisione dei dati tramite l'archiviazione cloud.
6. Data Scientist (sviluppatore di big data)
Gli esseri umani aiutano a generare molti dati svolgendo la loro vita quotidiana: fare il check-out al supermercato, navigare sul Web, passare davanti alle telecamere del traffico, usare i telefoni cellulari e persino votare. Abbiamo costruito sistemi per registrare dati da fenomeni naturali come il tempo, terremoti e segnali elettromagnetici dallo spazio.
Un data scientist è un mago della matematica con un computer che può scoprire schemi in tutte quelle informazioni.
Ci sono buone probabilità che questi sviluppatori utilizzino il linguaggio di programmazione Python o qualcosa di più specializzato, come R, Scala o Julia.
I "big data" di solito finiscono in un database relazionale, quindi un data scientist avrà probabilmente SQL nel proprio toolbox di programmazione.
7. Sviluppatore di intelligenza artificiale/apprendimento automatico
Gli sviluppatori di software di intelligenza artificiale (AI) cercano di imitare i comportamenti umani come il processo decisionale. Aggiungi il machine learning (ML) e un'applicazione può diventare più intelligente nel tempo.
Le applicazioni AI/ML in genere elaborano molti dati utilizzando algoritmi complessi, quindi gli sviluppatori sul campo sono spesso data scientist.
La società di ricerche di mercato IDC ha rilevato che le entrate mondiali per applicazioni, hardware e servizi relativi all'IA hanno superato i 383 miliardi di dollari nel 2021, con un aumento di quasi il 21% rispetto al 2020.
Il software di gestione delle relazioni con i clienti e il software di gestione delle risorse aziendali hanno rappresentato circa il 65% dei ricavi delle applicazioni potenziate dall'intelligenza artificiale.
8. Sviluppatore di giochi
Gli sviluppatori di giochi per computer rappresentano una vasta gamma di abilità.
Il loro software potrebbe essere eseguito su desktop, dispositivi mobili, console o browser web. Le trame si adattano a diversi generi di gioco, come la simulazione militare o sportiva, gli sparatutto in prima persona, la strategia o il gioco di ruolo. Poi ci sono probabilmente grafica 3D, musica ed effetti sonori.
In un mondo di giochi connessi a Internet, gli sviluppatori di giochi multiplayer di massa devono far fronte a requisiti di server e database di back-end esigenti quanto i siti di e-commerce più trafficati.
Gli sviluppatori di giochi in genere hanno esperienza in strumenti di rendering 3D e altri software relativi all'animazione.
E, concentrandosi sulla tecnologia all'avanguardia, i recenti sondaggi tra gli sviluppatori della Developer Nation di SlashData hanno mostrato che poco più del 37% delle applicazioni di realtà aumentata (AR) o realtà virtuale (VR) erano giochi AR/VR. Un ulteriore 27,9% dei progetti riguardava la costruzione di mondi virtuali, alcuni per i giochi.
9. Sviluppatore di sistemi operativi
Mentre migliaia di sviluppatori lavorano sui sistemi operativi più popolari, contribuendo a Linux o impiegati da Microsoft, Apple o Google, è ancora un gruppo esclusivo. Dopotutto, SlashData afferma che i suoi sondaggi suggeriscono che la popolazione mondiale totale di sviluppatori è di oltre 24 milioni.
Ci sono buone probabilità che il tuo frigorifero abbia un sistema operativo, ma i sistemi operativi per computer più diffusi sono sforzi che richiedono grandi team di sviluppatori, la maggior parte dei quali sta lavorando su componenti più piccoli del progetto generale.
Il cuore della maggior parte dei sistemi operativi è il kernel, che gestisce l'accesso a CPU, memoria, file system e dispositivi I/O. C è il linguaggio di codifica principale per i kernel dietro Microsoft Windows, macOS di Apple e Linux. Viene anche utilizzato del codice di basso livello scritto in assembly.
E il kernel Android si è evoluto dal kernel Linux.
Oltre al kernel, un sistema operativo dispone di driver per gestire vari dispositivi hardware e applicazioni per la pulizia del sistema. E poi c'è l'interfaccia utente grafica del sistema. Gli sviluppatori potrebbero utilizzare C, C++, Objective C (macOS) e persino Python (Linux) per questi componenti.
10. Ingegnere DevOps
Un DevOps Engineer gestisce strumenti e flussi di lavoro che portano il software dalla fase di sviluppo a una versione pubblica in modo rapido e affidabile.
"DevOps" è una fusione delle parole "sviluppo" e "operazioni" e i professionisti automatizzano le attività ripetitive di sviluppo del software, dalla gestione del codice al test, distribuzione, monitoraggio, manutenzione e risoluzione dei problemi.
Questi ingegneri utilizzano una suite di strumenti DevOps per accelerare i cicli di rilascio del software, gestire le varie versioni della base di codice del progetto e confermare che il prodotto finale funzioni come previsto.
Se utilizzato per lo sviluppo Web, il processo DevOps può anche garantire che le risorse richieste dall'applicazione siano disponibili e configurate correttamente sul server Web.
DevOps richiede competenze avanzate e lo stipendio di un ingegnere DevOps di solito lo riflette.
11. Sviluppatore di sicurezza (SecDevOps)
Uno sviluppatore di sicurezza crea strumenti e gestisce processi che testano il software e la sicurezza del sistema informatico.
Nello sviluppo del software, la sicurezza è spesso una componente del processo DevOps. Qualcuno che si concentra sulla sicurezza in quell'ambiente potrebbe essere chiamato un ingegnere SecDevOps.
Gli sviluppatori di sicurezza lavorano per proteggere software e sistemi informatici da attacchi e minacce alla sicurezza informatica. Usano vari strumenti, inclusi linguaggi di scripting come Python, Bash e Ruby, per automatizzare le attività ripetitive.
Uno sviluppatore di sicurezza deve avere una conoscenza approfondita del software e dei sistemi che sta cercando di proteggere.
Che tipo di sviluppatore vuoi essere?
Se stai pensando di diventare tu stesso uno sviluppatore, abbiamo alcune informazioni per aiutarti a compiere i passaggi successivi. Potresti leggere i migliori linguaggi di programmazione per imparare o approfondire l'apprendimento di PHP e scoprire tutorial JavaScript.
Forse saresti interessato a scoprire cosa serve per essere uno sviluppatore Laravel o concentrarti sull'apprendimento di WordPress, il CMS più popolare al mondo.
Poi, forse un giorno, ti unirai a noi con una carriera in Kinsta.
Riepilogo
Questo è uno sguardo a 11 tipi di sviluppatori con ruoli sufficientemente distinti da evidenziare le varie attività disponibili nei loro campi.
Tuttavia, molti sviluppatori ricoprono più di un ruolo e la maggior parte ha familiarità con più linguaggi di programmazione o scripting. Forse è per questo che non saremo mai tutti d'accordo su un elenco "ufficiale" di tipi di sviluppatori.
Nel frattempo, se hai un progetto basato sul Web che vorresti avviare, potresti voler esplorare le soluzioni di hosting di applicazioni e hosting di database di Kinsta.