Torna all'elenco degli articoli Articoli
Tempo di lettura: 8 minuti

Perché imparare l'SQL come sviluppatore software

Come sviluppatore di software, vi sarete trovati in situazioni in cui avete dovuto lavorare con SQL. Potreste chiedervi se una conoscenza superficiale di SQL sia sufficiente per il ruolo o se sia il caso di approfondirla. Risposta breve: dovreste! In questo articolo spiegherò perché gli sviluppatori di software dovrebbero imparare l'SQL.

Sono uno sviluppatore di software da 15 anni e ho notato un progressivo cambiamento nel ruolo. Anni fa, uno sviluppatore di software doveva conoscere il linguaggio di programmazione con cui lavorava e alcune librerie o framework. Oggi la realtà è più complessa e molti sviluppatori di software stanno imparando a fondo l'SQL. Vediamo perché.

L'importanza di SQL nei ruoli di sviluppo software

Gli sviluppatori di software spesso pensano di non dover investire tempo nell'apprendimento dell'SQL e che sia sufficiente conoscerne le basi. Ma a mio avviso questa è un'idea superata. L'ambito dello sviluppo del software è cambiato.

Supponiamo che siate ufficialmente uno sviluppatore Python. Naturalmente, dovete conoscere il linguaggio Python e le librerie e i framework relativi alla vostra particolare area di sviluppo. È inoltre necessario comprendere diversi campi correlati che orbitano intorno allo sviluppo software: IoT, Cloud, DevOps e dati/database (tra gli altri).

Di questo elenco, non sottovalutate l'importanza dei dati e dei database. Tutti i colloqui per sviluppatori software che ho fatto negli ultimi dieci anni hanno SEMPRE posto domande su SQL. Negli ultimi anni ho condotto anche molti colloqui tecnici su Python e devo confessare che ho una zona dedicata alle domande sui database e soprattutto su SQL.

Vi sentite pronti per il prossimo colloquio tecnico? Se no, Marek Pankowski vi aiuterà! Date un'occhiata al suo articolo Domande comuni sui colloqui di lavoro in SQL. Se avete bisogno di imparare prima l'SQL, vi consiglio il nostro SQL dalla A alla Z percorso. I suoi sette corsi e le centinaia di sfide di codifica vi porteranno sulla buona strada nel vostro viaggio in SQL!

Vale la pena imparare SQL come sviluppatore!

In questa sezione spiegherò perché, secondo me, vale la pena imparare SQL come sviluppatore.

SQL è ovunque!

Innanzitutto, SQL è alla base della maggior parte delle tecnologie dei dati. Indipendentemente dal settore in cui si lavora, è probabile che si utilizzi almeno una tecnologia SQL.

I database relazionali sono una vecchia tecnologia, ma sono più importanti che mai! Siti di e-commerce, social network, siti web di notizie e persino la vostra applicazione bancaria utilizzano SQL.

Anche se negli ultimi anni sono apparse nuove tecnologie di database, i database relazionali e l'SQL rimangono la tecnologia principale per i database. Secondo lo Stack Overflow Developer Survey 2024, gli sviluppatori professionisti utilizzano massicciamente i database relazionali: infatti, i 4 database più utilizzati sono database relazionali (PostgreSQL, MySQL, SQLite e MS Server).

Perché imparare l'SQL come sviluppatore software

Sondaggio Stack Overflow 2024

Se vi chiedete dove viene utilizzato oggi SQL, vi consiglio di dare un'occhiata all'eccellente articolo di Agnieszka Kozubek-Krycuń, SQL Technologies Are More Common Than You Think. (Spoiler: sono ovunque!)

Imparare l'SQL per capire gli ORM

Parliamo poi di Object Relational Mappers (ORM). Come sviluppatore, potreste chiedervi: "Perché dovrei conoscere l'SQL? Gli ORM possono fare il lavoro!" È un grosso errore!

L'uso di un ORM è generalmente una buona pratica: aiuta a interagire con i database relazionali e fornisce un livello di astrazione che genera la query SQL per voi. Gli ORM sono anche ottimi alleati per la sicurezza: possono proteggervi da un attacco diretto di SQL injection o da altre vulnerabilità SQL.

Tuttavia, gli ORM, come tutti i sistemi, hanno dei limiti. Il più famoso è un problema di prestazioni. Un ORM rappresenta un ulteriore livello tra il database e il backend e ha una propria latenza. La latenza può essere irrilevante per le piccole query, ma può diventare un problema enorme per le grandi query. In questo caso, avete due alternative: ristrutturare la query per renderla più efficiente o scrivere la query SQL a mano. In entrambi gli scenari, è necessaria una conoscenza approfondita di SQL.

L'SQL è essenziale per l'analisi dei dati

L'SQL è il linguaggio dell'analisi dei dati. I Product Manager mi hanno chiesto molte volte di preparare rapporti, compresi grafici e cruscotti di analisi dei dati (uno sviluppatore, non un analista di dati). Come sviluppatore, potreste pensare "Ehi, questo non è il mio lavoro!", ma in realtà lo è! Tutti gli strumenti di BI (ad esempio Metabase, Looker) si collegano a database relazionali e utilizzano SQL.

Sebbene l'interfaccia visiva di questi strumenti consenta di estrarre facilmente i dati dal database, i product manager, gli addetti al marketing o chiunque abbia bisogno dei dati sono per lo più persone non esperte di tecnologia; non hanno la minima idea di come sia strutturato un database. Inoltre, l'interfaccia visiva degli strumenti di BI ha delle limitazioni; probabilmente dovrete redigere delle query grezze utilizzando SQL. Dopo tutto, SQL è un linguaggio di programmazione e voi siete uno sviluppatore!

Siete pronti a immergervi nell'SQL? In questo caso, date un'occhiata al nostro fantastico (e gratuito) SQL per principianti Cheat Sheet, una guida pratica ai comandi più utilizzati del linguaggio. È un ottimo modo per iniziare a imparare SQL o per rinfrescare la memoria!

Risoluzione efficiente dei problemi

La risoluzione dei problemi di prestazioni delle applicazioni è più comune di quanto si pensi; è persino una domanda tipica nei colloqui tecnici. Supponiamo che il tempo di risposta per una determinata azione all'interno della vostra applicazione sia anormalmente alto (o addirittura che vada a vuoto). Come si può risolvere il problema? Molti attori possono essere coinvolti in questo problema: cross-domain, cache, endpoint throttling, capacità del server, cold start e... database.

Se il problema proviene dal database, è possibile che vi venga chiesto di ottimizzare alcune query, indipendentemente dal fatto che l'applicazione utilizzi o meno un ORM. In questo caso, la conoscenza approfondita di SQL è essenziale. Il vostro database è privo di indici? È possibile creare una vista per le query più frequenti? Le query possono essere paginate? Per tutte queste cose è necessario l'SQL.

Prendere decisioni tecniche

Imparare l'SQL e i database relazionali in generale è molto utile anche quando è il momento di prendere decisioni tecniche. In qualità di sviluppatori di software e, in ultima analisi, di leader tecnici, è possibile che vi venga chiesto di scegliere tra diverse tecnologie prima di iniziare un nuovo progetto. Quando si tratta di database, è necessario conoscere i diversi tipi di database e il modo in cui vengono scalati (e quindi i costi).

Anche la natura del settore in cui si lavora è importante. Tradizionalmente, i database relazionali sono utilizzati quando le transazioni (sequenze di operazioni multiple su un database) sono necessarie per la conformità ACID. Quindi, se state costruendo un'applicazione di e-commerce o bancaria, un database SQL è probabilmente la scelta migliore.

Detto questo, imparare l'SQL dà anche un'idea di ciò che si può fare facilmente. Anni fa, io e il mio team abbiamo scelto di utilizzare un database NoSQL per memorizzare le informazioni sulla sessione utente della nostra applicazione. Questo database offriva dati non strutturati, nessuna transazione necessaria, scalabilità verticale. La scelta sembrava essere quella giusta, finché non ci è stato chiesto di creare un dashboard analitico per i dati delle sessioni utente. Quello che avremmo potuto fare facilmente con un database SQL e semplici comandi ci ha richiesto una notevole quantità di tempo. In sostanza, abbiamo finito per reinventare la ruota.

Debug e automazione

Conoscere l'SQL come sviluppatore è molto utile anche durante il debug o la creazione di dati di test. In alcuni casi, dovrete eseguire il debug della vostra applicazione e lavorare direttamente con il database. Molte volte ho dovuto interrogare il database di produzione dell'azienda per trovare un caso limite e creare uno script SQL per risolverlo. Conoscere comandi come SELECT, JOIN e WHERE (per recuperare i dati) e INSERT, UPDATE e DELETE (per modificarli) è essenziale.

Gli script SQL aiutano anche ad automatizzare le attività più comuni del database. Ad esempio, si può eseguire uno script ogni giorno per trovare e disattivare tutti gli utenti del database che non hanno rinnovato l'iscrizione dopo diverse notifiche.

Opportunità di carriera

L'ultimo motivo per cui dovreste imparare l'SQL come sviluppatore è che vi aiuta a fare carriera e ad avere opportunità. Imparando l'SQL, si può collaborare meglio con i team che si occupano di dati (analisti di dati, scienziati e ingegneri). Kateryna Koidan ha riassunto perfettamente questo aspetto nel suo eccellente articolo How Developers Can Build SQL Skills. E dopo un po' di tempo, potreste anche cambiare carriera e lavorare con i dati, se vi piace.

Imparate l'SQL oggi!

In questo articolo abbiamo visto perché vale la pena imparare l'SQL come sviluppatore di software. Probabilmente vi servirà durante il vostro lavoro quotidiano e potrà aiutarvi a fare carriera e a cogliere nuove opportunità.

Spero di avervi convinto a iniziare il vostro viaggio in SQL! Se è così, vi consiglio vivamente di dare un'occhiata alla nostra traccia SQL dalla A alla Z. Copre tutto ciò di cui avrete bisogno in SQL come sviluppatori.

Grazie per aver letto questo articolo; spero davvero che vi sia piaciuto! Ci vediamo nel prossimo!