Volver a la lista de artículos Artículos
Lectura de 8 minutos

¿Por qué aprender SQL como desarrollador de software?

Como desarrollador de software, puede que te hayas encontrado en situaciones en las que has tenido que trabajar con SQL. Puede que te preguntes si tener un conocimiento superficial de SQL es suficiente para el puesto o si realmente deberías profundizar en ello. Respuesta corta: ¡deberías! En este artículo explicaré por qué los desarrolladores de software deberían aprender SQL.

Soy desarrollador de software desde hace 15 años, y he notado un cambio progresivo en la función. Hace años, un desarrollador de software necesitaba conocer el lenguaje de programación con el que trabajaba y algunas librerías o frameworks. Hoy en día, la realidad es más compleja y muchos desarrolladores de software están aprendiendo SQL en profundidad. Veamos por qué.

La importancia de SQL en las funciones de desarrollo de software

Los desarrolladores de software suelen pensar que no necesitan invertir tiempo en aprender SQL y que con saber lo básico es suficiente. Pero, en mi opinión, se trata de una idea obsoleta. El ámbito del desarrollo de software ha cambiado.

Digamos que eres oficialmente un desarrollador de Python. Por supuesto, necesitas conocer el lenguaje Python y las librerías y frameworks relacionados con tu área particular de desarrollo. También necesitas entender múltiples campos relacionados que orbitan alrededor del desarrollo de software: IoT, Cloud, DevOps y datos/bases de datos (entre otros).

De esta lista, no subestimes la importancia de los datos y las bases de datos. En todas las entrevistas a desarrolladores de software que he hecho en los últimos diez años SIEMPRE me han hecho preguntas sobre SQL. En los últimos años, también he dirigido muchas entrevistas técnicas de Python, y debo confesar que tengo una parcela dedicada a las preguntas sobre bases de datos y, más especialmente, SQL.

¿Te sientes preparado para tu próxima entrevista técnica? Si no es así, Marek Pankowski te ayudará. Echa un vistazo a su artículo Common SQL Job Interview Questions. Si necesitas aprender SQL primero, te recomiendo nuestro Curso completo de SQL curso. Sus siete cursos y cientos de desafíos de codificación te ayudarán a avanzar en tu viaje por SQL.

Merece la pena aprender SQL como desarrollador

En esta sección, explicaré por qué, en mi opinión, vale la pena aprender SQL como desarrollador.

SQL está en todas partes

En primer lugar, SQL está detrás de la mayoría de las tecnologías de datos. Independientemente del ámbito en el que trabajes, es probable que utilices al menos una tecnología SQL.

Las bases de datos relacionales son una tecnología antigua, pero son más relevantes que nunca. Los sitios de comercio electrónico, las redes sociales, los sitios web de noticias e incluso tu aplicación bancaria utilizan SQL.

Aunque en los últimos años han aparecido nuevas tecnologías de bases de datos, las bases de datos relacionales y SQL siguen siendo la principal tecnología para bases de datos. Según la Encuesta de desarrolladores de Stack Overflow 2024, los desarrolladores profesionales utilizan masivamente bases de datos relacionales: de hecho, las 4 bases de datos más utilizadas son bases de datos relacionales (PostgreSQL, MySQL, SQLite y MS Server).

Por qué aprender SQL como desarrollador de software

Encuesta Stack Overflow 2024

Si te preguntas dónde se utiliza SQL hoy en día, te recomiendo que eches un vistazo al excelente artículo de Agnieszka Kozubek-Krycuń Las tecnologías SQL son más comunes de lo que crees. (Spoiler: ¡están por todas partes!)

Aprende SQL para entender los ORM

A continuación, hablemos de los mapeadores relacionales de objetos (ORM). Como desarrollador, es posible que se pregunte: "¿Por qué debo saber SQL? Es un gran error.

Utilizar un ORM suele ser una buena práctica: ayuda a interactuar con las bases de datos relacionales y proporciona una capa de abstracción que genera la consulta SQL por ti. Los ORM también son grandes aliados para la seguridad: pueden protegerte contra un ataque directo de inyección SQL u otras vulnerabilidades SQL.

Sin embargo, los ORM -como todos los sistemas- tienen limitaciones. La más famosa es un problema de rendimiento. Un ORM representa una capa adicional entre su base de datos y su backend y tiene su propia latencia. La latencia puede ser irrelevante para consultas pequeñas, pero puede convertirse en un gran problema para consultas grandes. En este caso, tiene dos alternativas: reestructurar la consulta para que sea más eficiente o escribir la consulta SQL a mano. En ambos casos, se necesita un profundo conocimiento de SQL.

SQL es esencial para el análisis de datos

SQL es el lenguaje del análisis de datos. Los jefes de producto me han pedido muchas veces (a un desarrollador, no a un analista de datos) que prepare informes, incluidos gráficos y cuadros de mando de análisis de datos. Como desarrollador, puedes pensar "¡Eh, este no es mi trabajo!", ¡pero en realidad sí lo es! Todas las herramientas de BI (como Metabase o Looker) se conectan a bases de datos relacionales y utilizan SQL.

Aunque la interfaz visual de esas herramientas permite extraer datos fácilmente de la base de datos, los jefes de producto, los responsables de marketing o quienquiera que necesite los datos son, en su mayoría, personas ajenas a la tecnología; no tienen ni idea de cómo se estructura una base de datos. Además, la interfaz visual de las herramientas de BI tiene limitaciones; probablemente tendrá que redactar consultas sin procesar utilizando SQL. Al fin y al cabo, SQL es un lenguaje de programación y usted es un desarrollador.

¿Listo para sumergirte en SQL? Si es así, consulte nuestra magnífica (y gratuita) SQL para principiantes Cheat Sheet, que es una práctica guía de los comandos más utilizados del lenguaje. Es una forma estupenda de empezar a aprender SQL o de refrescar la memoria.

Solución eficaz de problemas

La resolución de problemas de rendimiento de las aplicaciones es más habitual de lo que crees; incluso es una pregunta típica en las entrevistas técnicas. Supongamos que el tiempo de respuesta para una acción determinada dentro de su aplicación es anormalmente alto (o incluso se agota). ¿Cómo podría resolverlo? Muchos actores pueden estar implicados en este problema: dominio cruzado, caché, estrangulamiento de punto final, capacidad del servidor, arranque en frío y... base de datos.

Si el problema proviene de la base de datos, es posible que se le pida que optimice algunas consultas, independientemente de si su aplicación utiliza un ORM o no. En este caso, es esencial tener un profundo conocimiento de SQL. ¿Le faltan índices a su base de datos? ¿Podría crear una vista para las consultas frecuentes? ¿Podrían paginarse las consultas? Necesitará SQL para todo esto.

Toma de decisiones técnicas

Aprender SQL y bases de datos relacionales en general también es muy útil a la hora de tomar decisiones técnicas. Como desarrollador de software y, eventualmente, líder técnico, se te puede pedir que elijas entre diferentes tecnologías antes de comenzar un nuevo proyecto. Cuando se trata de bases de datos, necesitas conocer los distintos tipos de bases de datos y la forma en que se escalan (y, por tanto, los costes).

También es importante la naturaleza del sector en el que se trabaja. Tradicionalmente, las bases de datos relacionales se utilizan cuando es necesario realizar transacciones (secuencias de operaciones múltiples en una base de datos) para cumplir la normativa ACID. Así que si estás creando una aplicación de comercio electrónico o de banca, una base de datos SQL es probablemente la mejor opción.

Dicho esto, aprender SQL también te da una idea de lo que se puede hacer fácilmente. Hace años, mi equipo y yo optamos por utilizar una base de datos NoSQL para almacenar la información de la sesión de usuario de nuestra aplicación. Esta base de datos ofrecía datos no estructurados, sin necesidad de transacciones y con escalado vertical. La elección parecía ser la buena hasta que nos pidieron crear un cuadro de mando de análisis de datos para los datos de sesión de usuario. Lo que podríamos haber hecho fácilmente con una base de datos SQL y comandos sencillos nos llevó una cantidad de tiempo considerable. En esencia, acabamos reinventando la rueda.

Depuración y automatización

Saber SQL como desarrollador también es muy útil a la hora de depurar o crear datos de prueba. En algunos casos, tendrás que depurar tu aplicación y trabajar directamente con la base de datos. Muchas veces, he tenido que consultar la base de datos de producción de la empresa para encontrar un caso extremo y crear un script SQL para solucionarlo. Conocer comandos como SELECT, JOIN, y WHERE (para recuperar los datos) y INSERT, UPDATE, y DELETE (para modificarlos) es esencial.

Los scripts SQL también te ayudan a automatizar tareas habituales de las bases de datos. Podrías, por ejemplo, ejecutar un script cada día para encontrar y desactivar a todos los usuarios de tu base de datos que no hayan renovado su afiliación tras múltiples avisos.

Oportunidades profesionales

La última razón por la que deberías aprender SQL como desarrollador es porque te ayuda con la promoción profesional y las oportunidades. Al aprender SQL, puedes colaborar mejor con los equipos de datos (analistas de datos, científicos e ingenieros). Kateryna Koidan lo resumió perfectamente en su excelente artículo How Developers Can Build SQL Skills. Y después de un tiempo, puede que incluso cambies de carrera y te dediques a trabajar con datos si descubres que te gusta.

Aprende SQL hoy mismo

En este artículo hemos visto por qué merece la pena aprender SQL como desarrollador de software. Probablemente lo necesitarás durante tu trabajo diario, y puede ayudarte con la promoción profesional y las nuevas oportunidades.

Espero haberte convencido para que inicies tu andadura en SQL. Si es así, te recomiendo que eches un vistazo a nuestro tema Curso completo de SQL. Cubre todo lo que necesitarás en SQL como desarrollador.

Gracias por leer este artículo; ¡espero de verdad que te haya gustado! ¡Nos vemos en el próximo!