Cosa vuol dire programmare?
Se volessimo dare una spiegazione comprensibile a tutti e riconoscibile nella nostra quotidianità di tutti i giorni potremmo classificare la programmazione come l'arte del problem solving. Tuttavia una doverosa premessa da fare è che la programmazione stessa (ai giorni nostri) si divide in varie aree più o meno specifiche e spesso riguarda ambiti per nulla simili tra di loro.
Varie definizioni
Nella nostra epoca moderna e sempre pronta al cambiamento possiamo evidenziare varie figure racchiuse sotto l'accezione comune di "programmatore", ecco quelle più richieste dal mercato:
- Web Developer: la figura del Web Developer è una delle più famose e richieste dal mercato. Come il nome suggerisce, uno sviluppatore Web si occupa di tutto quello che il browser mastica ogni giorno. Questa figura di divide in Front-End (ossia tutto ciò che l'utente vede, la parte grafica di un sito) e Back-End (la parte "nascosta" di un sito web con la logica di funzionamento di ogni sua parte). Quando uno sviluppatore padroneggia sia Front-End che Back-End può essere definito Full-Stack Web Developer.
- Software Developer: si occupa di creare Software (ossia applicazione utili nell'uso comune). Ha molte diramazioni in quanto ogni sistema operativo che usiamo ha solitamente uno o più linguaggi di programmazione specifici, per non parlare della moltitudine di dispositivi diversi che usiamo oggi giorno (Desktop Developer e Mobile Developer sono due possibili diramazioni).
- Big Data Developer: sono solitamente maghi della matematica che si occupano di analizzare, classificare e immagazzinare grandi flussi di dati, in qualsiasi contesto, che saranno poi studiati e compresi per attuare decisioni in linea con quanto appreso.
- AI/ML Developer: è una delle figure più richieste nell'ultimo periodo, si occupa di addestrare e nutrire i LLM (Large Language Model) che ha in gestione con lo scopo di renderli più performanti, meno dispendiosi e più intelligenti.
- Game Developer: una figura molto importante nell'industria dell'intrattenimento, spesso è formata più per la parte di animazione e grafica 3D rispetto alla vera e propria programmazione. Anche qua le diramazioni sono molteplici, in quanto si possono categorizzare queste figure per il tipo di videogioco (Simulazioni, Sparatutto, Strategia, ...) e per il ruolo specifico all'interno di ogni progetto.
- OS Developer: rappresentano un gruppo esclusivo di programmatori. Si occupano della programmazione di qualsiasi strumento che richieda un sistema operativo (come telefoni, macchine, frigoriferi e tanto altro..). Spesso usano linguaggi molto vecchi ma ben distribuiti come C oppure Assembly (gli step precedenti al famoso Codice Macchina)
- DevOps & SecDevOps Engineer: gestiscono gli strumenti che portano il progetto dalla fase di sviluppo al rilascio pubblico. Gestiscono inoltre i test del codice, il monitoraggio, la manutenzione e la risoluzione di problemi. Quando invece entra in campo la sicurezza informatica allora diventa SecDevOps, proteggendo il progetto dagli attacchi informatici.
Riepilogo
Se hai notato un ambito che ti interessa particolarmente approfondiscilo! Qui di seguito ti faccio una lista dei linguaggi di programmazione più diffusi per ogni categoria di sviluppatori:
- Web Developer: HTML | CSS | JavaScript
- Software Developer: Java | Python | C#
- Big Data Developer: Java | Scala | Python
- AI/ML Developer: Python | R
- Game Developer: C++ | C# | Java
- OS Developer: C | C++ | Assembly
- DevOps: Python | Bash | Go