Por amor a SQL: por qué debería aprenderlo y cómo le ayudará

Recientemente leí un gran artículo del estimado @craigkerstiens que describe por qué siente que SQL es una habilidad tan valiosa para los desarrolladores. Este tema realmente me impactó. Se alineó bien con notas que ya había comenzado a esbozar para un artículo similar sobre el desarrollo del amor por los datos.

Sin embargo, cuanto más desarrollé mi tema, más me di cuenta de que muchos de mis puntos y ejemplos parecían centrarse en SQL. La lectura del artículo de Craig me convenció de redirigir mi enfoque y hablar más sobre por qué personalmente tengo tanta afinidad por SQL.

En resumen, Craig hace las siguientes afirmaciones sobre SQL (y cito):

1. Es valioso en diferentes roles y disciplinas2. Aprenderlo una vez realmente no requiere reaprendizaje3. Pareces un superhéroe. Pareces muy poderoso cuando lo sabes debido a la cantidad de personas que no lo hablan

Descubrí que todos estos puntos son ciertos en mi propia experiencia, y me gustaría reformular y ampliar cada uno.

El efecto de versatilidad

El conjunto de habilidades de SQL ha demostrado ser un activo extremadamente valioso en mi carrera. De hecho, creo que SQL es el lenguaje de “programación” más poderoso y versátil que conozco.

He podido usar SQL para resolver muchos problemas y es mi herramienta de referencia cada vez que enfrento un nuevo desafío. De hecho, mantengo una instancia de PostgreSQL ejecutándose en mi computadora portátil para poder acceder rápidamente a mi GUI SQL favorita siempre que necesite probar algo.

Estas son solo algunas de las cosas interesantes que he podido hacer con SQL:

¿Está teniendo dificultades para creer en la lista anterior? Te prometo que no hay una pizca de exageración en ello. Ahora bien, ¿hay algunos elementos que dependen de otras capacidades del RDBMS que estaba usando en ese momento? Por supuesto. Independientemente, cada una de esas soluciones se implementó en SQL.

El efecto bicicleta

Si bien el lenguaje de consulta estructurado ciertamente ha experimentado cambios y se ha expandido a lo largo de los años, estoy de acuerdo con Craig en que los fundamentos no han cambiado. El nivel general de volatilidad en comparación con otros idiomas ha sido relativamente bajo.

Yo diría que este hecho solo refuerza el argumento de que uno debe invertir el tiempo para aprender SQL. Puede estar seguro de que sacará mucho provecho de dicha inversión sin tener que buscar las últimas convenciones la próxima vez que lo necesite.

¡Aprenda SQL! Aquí hay algunos lugares excelentes para comenzar:

Tutorial de SQL: SQL esencial para principiantes

Este tutorial de SQL lo ayuda a comenzar con SQL de manera rápida y efectiva a través de muchos ejemplos prácticos. Después de… www.sqltutorial.org

Incluso hay tutoriales interactivos:

SQLBolt - Aprenda SQL - Introducción a SQL

SQLBolt proporciona un conjunto de lecciones y ejercicios interactivos para ayudarlo a aprender SQL sqlbolt.com

También hay algunos sandboxes versátiles que le permiten ejecutar SQL en varios dialectos sin tener que instalar nada. Por ejemplo, SQL Fiddle:

O, DB Fiddle:

El efecto superhéroe

Recuerdo que una vez un colega dijo que sudaba frío cada vez que tenía que escribir SQL. ?

Suena exagerado, pero SQL puede ser intimidante para cualquiera que considere adecuadamente la base de datos como un activo sensible y no esté familiarizado con cómo interactuar de forma segura con ella. SQL, al ser uno de los adultos en la sala, tampoco recibe tanta atención como otros lenguajes de programación nuevos y brillantes. Eso significa que sigue siendo un conjunto de habilidades menos común entre los desarrolladores emergentes y contemporáneos.

Como tal, tener un conocimiento sólido de SQL y la perspectiva para ver las facetas basadas en conjuntos de un problema o desafío dado brinda la oportunidad de ser un héroe.

Una de mis experiencias personales favoritas fue ayudar a un cliente a depurar un programa SAS lento y complejo. El objetivo de este programa era extraer una lista de transiciones de estado de una tabla de auditoría para medir la duración media que pasó un widget en cada fase de un flujo de trabajo empresarial determinado. La implementación de estos cálculos fue compleja y requirió la construcción de múltiples conjuntos de datos locales.

Recuerdo aplicar ingeniería inversa a este programa y darme cuenta de que podía resolver el problema mucho más fácilmente usando una sola consulta SQL y la función de ventana mágica LAG.

El cliente estaba simplemente impresionado.

No solo porque aprendió sobre la función LAG, sino porque vio lo poderoso que puede ser SQL.

Un ejemplo aún más dramático fue durante una migración de un gran almacén de datos donde reemplacé un programa Java completo (¡que tardó más de 20 minutos en completarse!) Con una sola consulta SQL que se ejecutó en segundos. ¡El autor original del programa se sorprendió! Ese fue un día realmente bueno. ?

Por lo tanto, lo animo a sumergirse en SQL hoy y ampliar su conjunto de habilidades con una de las herramientas más versátiles con las que he tenido el placer de trabajar. Si ya conoce SQL y está de acuerdo, o si lo he convencido de que lo pruebe, considere dejarme un comentario.