Logotipo de DevSkiller TalentBoostLogotipo de DevSkiller TalentScoreEl logo de DevSkillerLogotipo de TalentBoostLogotipo de TalentScore

Requisitos de habilidades clave para el desarrollador de SQL de pantalla

Publicado: Última actualización:
SQL: preguntas de entrevista a los ingenieros de software

Desea contratar a un desarrollador de SQL y comenzar su campaña de contratación de TI. Ha recibido muchos currículos y cartas de presentación: ahora es el momento de empezar el proceso de selección. Al examinar las solicitudes y hablar por teléfono con los candidatos, empieza a preguntarse si un determinado programador de SQL es lo suficientemente bueno para formar parte de su equipo de TI y si merece la pena invitarlo a una entrevista técnica in situ. Por un lado, no quiere rechazar a un programador SQL con potencial que podría ser valioso para su empresa. Por otro lado, no quiere invitar a un candidato débil a una entrevista con su equipo de TI y oírles quejarse de que las habilidades de programación del candidato son escasas y que lo sabían después de una charla de 5 minutos.

Por eso es tan importante planificar el proceso de selección de las habilidades de programación SQL y elegir los métodos que ayuden a los reclutadores de TI a hacerlo con la mayor precisión posible. Así que hemos pensado en echarle una mano. A continuación encontrarás toda la información crucial sobre cómo cribar candidatos de forma rápida y eficaz. Empecemos.

1. ¿Qué es SQL?

SQL es el más popular de los 4GL (Lenguaje de Programación de Cuarta Generación), lo que significa que los programadores sólo declaran el aspecto del resultado, en lugar de cómo debe calcularlo la base de datos. Históricamente, este paradigma de programación declarativa ha sido una característica clave para las consultas ad-hoc ejecutadas para la introspección de datos por usuarios humanos directamente con SQL (en lugar de con una interfaz de usuario). En la actualidad, SQL también se integra en otros lenguajes de programación de propósito más general, como Java, para acceder a los datos de las bases de datos centrales.

2. ¿Qué es importante que el reclutador de IT sepa sobre SQL?

Hay ciertos consejos que pueden ser valiosos para los reclutadores de TI cuando se trata de SQL.

What are the skills required for an SQL developer? The declarative programming paradigm is very different from object-orientation, procedural programming, or even functional programming. It takes a special mindset and experience for a developer to become a SQL expert. While basic tasks can be implemented very easily by everyone (including non-programmers, such as business analysts, requirements engineers, project managers, etc), complex SQL is rather hard to get right.

Estas son las cosas sobre el SQL que debe tener en cuenta:

  • Un conocimiento profundo de la teoría de conjuntos (o al menos alguna intuición sobre ella) es muy importante para los desarrolladores que trabajan con SQL con frecuencia. Si no se dispone de esos antecedentes, los desarrolladores tienden a buscar los elementos de datos individuales uno por uno, procesándolos en el cliente mediante un lenguaje de uso general como Java, en lugar de realizar operaciones en masa con conjuntos de datos completos directamente en la base de datos. Esto tiene repercusiones drásticas en el rendimiento.
  • La mayoría de las universidades, por desgracia, no van mucho más allá del álgebra relacional y algunas características básicas de SQL-92. SQL ha evolucionado mucho durante las últimas décadas, tanto en la forma estándar de SQL, como en los dialectos específicos de los proveedores. Hay una variedad de características como funciones de ventana, expresiones de tablas comunes (CTE) y mucho más, que ayudan a los desarrolladores a ejecutar informes complejos con relativa facilidad. Normalmente, los conocimientos sobre las funciones de ventana y CTE ayudan a distinguir entre los principiantes y los desarrolladores avanzados de SQL. Esto es importante en ETL, informes, BI, casos de uso de análisis.
  • Tal vez el 90% de todos los problemas relacionados con el rendimiento de SQL puedan resolverse con una indexación adecuada. Por lo tanto, es esencial ser capaz de identificar las situaciones en las que un índice será beneficioso (o en casos raros: perjudicial). Los otros 10% suelen ser competencia de los equipos de DBA y de operaciones, y suelen estar fuera del alcance de los desarrolladores, a menos que trabajen en configuraciones especializadas.
  • En teoría, una sentencia SQL declarativa será optimizada al máximo por la base de datos. En la práctica, muchas bases de datos siguen necesitando la ayuda del desarrollador de SQL. Muchas sentencias SQL son formalmente equivalentes, pero algunas producirán mejores planes de ejecución que otras. Estas cosas difieren de una base de datos a otra. En los trabajos cotidianos de SQL, suele ser suficiente con que los desarrolladores conozcan los planes de ejecución y el hecho de que el SQL necesita ser ajustado. Los conocimientos necesarios para la base de datos en particular pueden seguir obteniéndose en el trabajo. En situaciones más específicas (Big Data, alta escalabilidad), el desarrollador debe aportar conocimientos de ajuste sobre la base de datos particular en uso.
  • SQL parece "arcano" para los desarrolladores "modernos". Esto se debe, sobre todo, a la sintaxis del lenguaje, que proviene de la época en la que todavía se utilizaban mucho el COBOL y el FORTRAN. Aparte de la sintaxis, no hay nada arcano en la tecnología. Este tema subjetivo ayuda a separar a los desarrolladores que tienen curiosidad por encontrar la herramienta adecuada para el trabajo de los que siguen el dogma (y, por tanto, probablemente tomarán decisiones equivocadas más adelante). En particular, los reclutadores técnicos deberían ser capaces de distinguir entre los desarrolladores que quieren ocultar SQL detrás de un ORM (eso es malo) y los que entienden que los ORM sólo resuelven un subconjunto de problemas de almacenamiento de datos, mientras que SQL sigue siendo una tecnología importante. Todos los proveedores de ORM están de acuerdo en esta distinción, mientras que, por desgracia, muchos desarrolladores prefieren no tocar SQL.

3. ¿Cómo verificar los conocimientos de programación SQL en la fase de selección?

Los reclutadores de TI recurren a varios métodos de selección, desde la evaluación de los conocimientos de programación SQL basados en el currículum, pasando por entrevistas de vídeo o telefónicas, hasta pruebas de codificación en línea.

A continuación encontrará algunos consejos útiles y prácticos para la contratación de personal sobre cómo verificar los conocimientos de SQL mediante cada método.

3.1. Examen técnico de los conocimientos de programación SQL basado en el currículum vitae

¿Cómo se debe leer el currículum de un desarrollador de SQL? Como reclutador de TI, puedes encontrar información realmente valiosa en el currículum que recibes de un desarrollador de SQL, pero tienes que saber cómo leerlo y qué buscar. Esto te permitirá hablar el mismo idioma con tus candidatos (o, al menos, entender los aspectos básicos de los que habla el candidato).

Por eso preparamos este glosario básico de SQL, sólo echa un vistazo.

Glosario SQL para reclutadores técnicos

Programación declarativa, 4GL SQL es un lenguaje de programación fundamentalmente diferente (véase también la introducción). El hecho de que siga el paradigma de programación declarativa es importante para un reclutador.
DDL Lenguaje de Definición de Datos, el subconjunto del lenguaje SQL que se utiliza para definir la base de datos
DML Lenguaje de manipulación de datos, el subconjunto del lenguaje SQL que se utiliza para manipular los datos de la base de datos. La mayoría de las consultas son DML
Plan de ejecución El algoritmo elegido por el optimizador para una declaración SQL dada.
Optimista El motor que traduce una sentencia SQL en un plan de ejecución. Incluso las sentencias simples tienen docenas de posibles planes de ejecución válidos. Una base de datos puede mantener varios planes por sentencia.
Optimizador de costos (CBO) La mayoría de las bases de datos modernas se envían con un CBO, que toma decisiones basadas en estadísticas, histogramas y heurística sobre los datos de producción. Es bastante difícil superar la decisión tomada por un CBO en una base de datos moderna y comercial.
Optimizador basado en reglas Las bases de datos más antiguas implementan motores de reglas simples para tomar decisiones de planes de ejecución. Estas reglas suelen ser erróneas en situaciones del mundo real, por lo que las consultas en estas situaciones necesitan un ajuste mucho mayor, por ejemplo, mediante el uso de pistas.
Únete a Una de las operaciones más fundamentales en el álgebra relacional que ayuda a "unir" / "conectar" dos tablas de la base de datos, por ejemplo libros y autores para producir resultados.
PL/SQL, T-SQL, pgplsql, etc. Se trata de extensiones de procedimiento del lenguaje SQL, es decir, lenguajes de uso general que integran el SQL. Si bien estos conocimientos son muy útiles en algunos proyectos, no son necesariamente un indicador importante de los conocimientos de SQL.
Normalización La práctica de reducir la redundancia en una base de datos relacional separando los datos conceptualmente distintos (por ejemplo, libros, autores) en diferentes relaciones (tablas). Existen varios niveles de normalización.
Base de datos relacional (modelo relacional, álgebra relacional, etc.) Si bien el SQL funciona principalmente con bases de datos relacionales, también puede funcionar con otros sistemas de almacenamiento de datos. Las bases de datos relacionales implementan el modelo relacional
E.F. Codd Conocimientos de fondo opcionales: Codd fue el mayor contribuyente al álgebra relacional y mucho más.

Ahora que está familiarizado con los fundamentos del SQL, podemos entrar en más detalles. Si no eres una persona técnica, es fácil confundirse con los diferentes nombres y abreviaturas de la tecnología. Si el candidato dice "secuela", ¿significa "ess-queue-el"? ¿O es SQL algo similar a MySQL? Sólo sigue leyendo y obtendrás una respuesta.

Los términos más comunes de SQL que se usan indistintamente:

  • Declaración, comando, consulta
  • MSSQL, SQL Server (no confundir con MySQL)
  • Oracle (la empresa), Oracle Database
  • La pronunciación es "ess-queue-el" o "secuela". En las últimas décadas, la comunidad nunca pudo conformarse con ninguna de las dos pronunciaciones.
  • Expresiones comunes de tablas, factorización de subconsultas, CON cláusula

Relaciones entre las respectivas versiones de la tecnología SQL:

  • SQL-92 es la primera norma ampliamente adoptada (aunque ya había habido normas anteriormente)
  • SQL-1999 hizo a SQL "turing completo", lo que significa que cualquier programa puede ser implementado con expresiones de tablas comunes. En palabras más simples: Hizo a SQL realmente poderoso
  • SQL-2003 añadió funciones de ventana, que son extremadamente útiles para el análisis
  • En general, SQL evoluciona un poco más lentamente y es más retrocompatible que otros ecosistemas. Además, por lo general, las características específicas del proveedor pueden ser muy importantes para proyectos específicos que se integran estrechamente con SQL, pero están fuera del alcance de este listado.

Conocimientos esenciales de SQL que hay que buscar en un currículum

  • Ajuste del rendimiento de SQL
  • Conocimientos de diseño SQL
  • Comprensión de la teoría relacional
  • Habilidades de refactorización SQL
  • Experiencia con XSLT, programación funcional, tecnologías NoSQL
  • Teoría de conjuntos
  • Conocimiento de las funciones de las ventanas y del CTE

Si ves en el currículum de los desarrolladores de SQL que tienen un par de años de experiencia, profundiza un poco más y busca las siguientes cosas en el currículum:

  • Uno de los conocimientos más valiosos de SQL es el ajuste del rendimiento de SQL, tanto desde la perspectiva del desarrollador (lectura de planes de ejecución, mantenimiento de índices, etc.) como desde la perspectiva del DBA/operaciones (resolución de problemas de contención, ajuste del almacenamiento, etc.). Esto último es un poco más específico de las operaciones, pero aún así puede ser una ventaja si un desarrollador de SQL tiene que trabajar estrechamente con las operaciones.
  • Los conocimientos de diseño de SQL y un profundo conocimiento de la teoría relacional son importantes cuando se inician nuevos proyectos. Es muy importante acertar con el diseño de la base de datos en las primeras fases, ya que más adelante es muy difícil migrar bases de datos mal diseñadas. En los sistemas heredados, la mayoría de los desarrolladores pueden limitarse a seguir las reglas establecidas, donde las habilidades de diseño son menos cruciales (aunque siguen siendo útiles).
  • Las habilidades de refactorización del SQL pueden ser muy útiles en equipos grandes donde el SQL empieza a ser bastante complejo. A diferencia de la refactorización de Java, que es bastante fácil hoy en día (gracias a las herramientas del IDE), la refactorización de SQL sigue siendo muy difícil porque el código SQL es difícil de probar.

¿Qué más en el CV puede ser valioso para evaluar las habilidades de programación SQL?

Como reclutador de TI, también puedes sacar las siguientes conclusiones del currículum de desarrollador de SQL:

  • El SQL es una excelente tecnología para el procesamiento de datos en flujo sin estado. Un desarrollador con experiencia en cualquiera de estas tecnologías también será bueno con SQL:
    • XSLT
    • Programación funcional (Lisp, Clojure, Ocaml, Haskell, Scala)
    • Varias tecnologías NoSQL, incluyendo MongoDB, CouchBase, Neo4j y muchas más, que se envían con lenguajes de consulta inspirados en SQL
  • La mayoría de los puestos de trabajo de SQL no son sólo de SQL, es decir, el desarrollador tendrá que ser capaz de trabajar tanto con lenguajes de propósito general (como Java, C#, etc.), como con SQL. Una buena señal de que un desarrollador es capaz de hacer esto es buscar el interés y la experiencia en muchos lenguajes de programación diferentes.

3.2. La revisión técnica de las habilidades SQL durante una entrevista telefónica/video

El currículo por sí solo no es suficiente para sacar conclusiones fiables sobre las habilidades de programación SQL del candidato. Por ello, los reclutadores de TI suelen realizar una entrevista telefónica o en vídeo. Esta entrevista ofrece la oportunidad de profundizar en las habilidades y la experiencia del candidato. A menudo esta entrevista técnica por teléfono o vídeo sirve de base para tomar la decisión de invitar al candidato a una entrevista técnica in situ con el equipo de TI o no, por lo que vale la pena elegir y hacer las preguntas adecuadas.

Por supuesto, las preguntas varían en gran medida debido al puesto para el que está reclutando y a las habilidades específicas que desea verificar. A continuación encontrarás algunas preguntas generales para conocer mejor las habilidades SQL del candidato.

1. Pregunta de la entrevista SQL relativa a la experiencia del desarrollador

  • P1: ¿Con qué tecnologías de las que figuran en su currículum tiene experiencia comercial en los últimos 2 años? ¿Cuáles eran sus responsabilidades? ¿Cuál fue su mayor logro?
  • Por qué hacer la Q1: Al hacer esta pregunta, puedes averiguar más sobre la experiencia, las responsabilidades y los logros actualizados de SQL del candidato. De este modo, podrá conocer mejor a su candidato.

2. Pregunta de la entrevista SQL relativa a la toma de decisiones del desarrollador en relación con la tecnología SQL

  • P2: ¿En qué fase se incorporó a los proyectos recientes? ¿Participó en la elección de la tecnología o en la configuración del proyecto? En caso afirmativo, ¿qué tecnología/sistema de gestión de bases de datos relacionales eligió o recomendó para el proyecto y por qué?
  • Por qué preguntar la Q2: Esta pregunta muestra no sólo cómo un candidato toma decisiones con respecto a la tecnología, sino también si fue incluido en la toma de decisiones. Es especialmente importante si se busca a alguien con experiencia.

3. Pregunta de comportamiento para el desarrollador de SQL

  • P3: Piensa en una decisión de proyecto de programación que hayas tomado y que haya sido un fracaso. ¿Por qué crees que fue un error? ¿Por qué se produjo? ¿Podría hacerse algo diferente para convertirlo en un éxito? ¿Qué medidas tomaste para mejorar la situación? ¿Qué aprendiste de esta experiencia?
  • Por qué hacer la Q3: Este tipo de pregunta le ayudará a averiguar cómo percibe el candidato sus decisiones, saca conclusiones y cuánto aprende de su experiencia previa.

3.3. Examen técnico de los conocimientos de SQL con una prueba de codificación en línea

Los tests de codificación en línea pueden ser una buena forma de evaluar las habilidades de SQL. A continuación encontrarás información sobre cómo puedes utilizar los tests de programación y cuáles elegir.

Pruebas de codificación SQL en línea - el método principal o adicional para la selección

Las pruebas de programación pueden utilizarse de dos maneras. Algunas empresas invitan a los candidatos a realizar una prueba de programación si superan el proceso de selección, por ejemplo, una vez que el responsable de la contratación de TI examina su CV o los entrevista por teléfono o vídeo. Sin embargo, es más habitual invitar a todos los candidatos que solicitan determinados puestos de programación SQL a realizar una prueba. Esto les proporciona un par de ventajas. Los responsables de la selección de personal de TI no tienen que dedicar tiempo a todas las solicitudes, sino sólo a los candidatos que tienen el potencial de encajar en un puesto de trabajo en lo que respecta a sus habilidades de programación. Además, los candidatos que se someten a una evaluación de codificación muestran cierto compromiso y voluntad de participar en su proceso de contratación de personal informático. Puede ser una señal de que es más probable que quieran encontrar un trabajo.

Prueba de codificación en línea SQL - ¿cuál elegir?

Para que el cribado sea preciso, las pruebas de codificación tienen que ser las correctas.

En el mercado hay algunos tests online de SQL, pero a menudo verifican los conocimientos académicos del candidato en lugar de sus habilidades de programación y su capacidad para resolver problemas de la vida real. Esto es lo que realmente molesta a los programadores experimentados y por eso no les gusta ese tipo de evaluación de codificación. Si la prueba de codificación verifica los conocimientos de los libros, no pueden mostrar sus habilidades en acción y demostrar que son capaces de resolver retos de programación de la vida real.

Por eso debes elegir cuidadosamente las pruebas de codificación en tu proceso de reclutamiento de IT. A continuación encontrarás mis 5 características principales de pruebas SQL que deberías buscar:

  1. Las pruebas de codificación SQL deben constar de un par de tareas, no sólo de opción múltiple, sino sobre todo de tareas de programación cuya dificultad debe corresponder a las responsabilidades que tendrán los candidatos si consiguen el trabajo (las pruebas no deben basarse en tareas algorítmicas, ya que así no se puede verificar si un candidato puede resolver retos de codificación de la vida real).
  2. No tiene sentido prohibir al programador el uso de fuentes externas, lo mejor es crearle un entorno como el que tiene en el trabajo, por lo que el examen a libro abierto es mucho más apropiado. Además, el candidato debería poder utilizar su IDE preferido, tal y como lo hace a diario.
  3. Las pruebas de programación SQL deben verificar no sólo los conocimientos de SQL en lo que respecta a la tecnología, en general, sino también los conocimientos específicos para motores de bases de datos concretos
  4. La prueba de codificación también puede incluir tareas con retos de revisión de código para poner a prueba las habilidades de SQL. Proporciona información muy precisa sobre la experiencia del candidato, su enfoque de la calidad del código y la eficacia para depurar y encontrar trampas. Una evaluación de este tipo debería ser obligatoria a la hora de contratar desarrolladores senior de SQL.

4. DevSkiller listo para usar pruebas de evaluación de codificación SQL en línea

DevSkiller ayuda a las empresas en el proceso de selección de personal de TI proporcionándoles una infraestructura que les permite probar las habilidades de programación de los candidatos en un entorno que imita la experiencia del primer día de trabajo. Permitimos a las empresas utilizar su propia base de código, proyectos enteros de TI utilizando marcos y bibliotecas, para probar a los programadores en línea. Sin embargo, también tenemos algunas pruebas de codificación SQL listas para usar que puede utilizar en su campaña de contratación técnica.

Java
JUNIOR
Habilidades probadas
Duración
120 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Tarea de programación de Front End - Nivel: Fácil

JavaScript | TypeScript | Aplicación de facturas - frontend - Implementa la parte del frontend para fusionar y agregar los datos de la factura con los tipos de cambio de la moneda.

Tarea de programación del Back End - Nivel: Fácil

Java | Aplicación de facturación - backend - Implementa la parte del backend para buscar y agregar los datos de la factura con el servicio y los métodos DAO.

Ciencia de los datos
JUNIOR
Habilidades probadas
Duración
45 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Tarea - Nivel: Fácil

SQL | Catálogo de sellos | Los tres precios más altos - Seleccione tres sellos (precio y nombre) con el precio más alto.

Tarea de programación - Nivel: Fácil

Python | Pandas | Analizador de tablas HTML - Implementa una función para convertir una tabla HTML en un archivo con formato CSV.

Python
MIDDLE
Habilidades probadas
Duración
120 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de Python

Tarea de programación - Nivel: Medio

Python | Informe de ventas de vehículos - Implementar una aplicación para crear informes basados en el almacén de datos de ventas de vehículos.

DevOps
SENIOR
Habilidades probadas
Duración
66 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de DevOps, Docker

Tarea de DevOps - Nivel: Duro

DevOps | Master of Disaster Recovery (CentOS) - Recuperar datos de la base de datos rota de MariaDB/MySQL.

DevOps
SENIOR
Habilidades probadas
Duración
66 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de DevOps, Docker

Tarea de DevOps - Nivel: Duro

DevOps | Master of Disaster Recovery (Ubuntu) - Recuperar datos de la base de datos rota de MariaDB/MySQL.

PostgreSQL
MIDDLE
Habilidades probadas
Duración
44 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de SQL

Lagunas en el código

evaluando el conocimiento de SQL

Tarea - Nivel: Medio

SQL | PostgreSQL | Optimización de la página de hoteles - Mejorar el rendimiento de la página de listado de hoteles que actualmente utiliza ORM.

MongoDB
MIDDLE
Habilidades probadas
Duración
51 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de SQL, MongoDB, NoSQL

Lagunas en el código

evaluando el conocimiento de MongoDB

Tarea - Nivel: Medio

SQL | Datos de los clientes - Encuentre todos los clientes cuyos nombres y apellidos no son únicos en esta base de datos, así como el número de veces que cada par de nombres y apellidos aparece en la base de datos.

PHP
MIDDLE
Habilidades probadas
Duración
60 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Lagunas en el código

evaluando el conocimiento de SQL

Preguntas de elección

evaluando el conocimiento de ES6, JavaScript, CSS, HTML, WCAG 2.0, Accesibilidad en la Web

Tarea de programación - Nivel: Medio

PHP | Repositorio de Categorías - Implementa consultas PDO que devolverán resultados válidos sobre las películas a los usuarios.

PHP
SENIOR
Habilidades probadas
Duración
88 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de SQL, ES6, JavaScript, AJAX, Desarrollo de la web

Tarea de programación - Nivel: Duro

PHP | Conversor XML-CSV - Implementa métodos de filtrado y transformación de datos para pasar todas las pruebas.

PHP
JUNIOR
Habilidades probadas
Duración
41 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Lagunas en el código

evaluando el conocimiento de SQL, CSS, HTML

Preguntas de elección

evaluando el conocimiento de JavaScript

Tarea de programación - Nivel: Fácil

PHP | Faker | Manipulación básica de datos - Implementa todos los métodos de la clase app/Faker.

Compartir correo

Más información sobre la contratación de tecnología

Suscríbase a nuestro Learning Hub para recibir información útil directamente en su bandeja de entrada.

Verificar y desarrollar las habilidades de codificación sin problemas.

Vea los productos DevSkiller en acción.

Certificaciones de seguridad y cumplimiento. Nos aseguramos de que sus datos estén seguros y protegidos.