Requisitos de habilidades clave para el desarrollador de SQL de pantalla

Por 25 de mayo de 2016 #!31Jue, 16 Jul 2020 10:08:14 +0200p1431#31Jue, 16 Jul 2020 10:08:14 +0200p-10Europe/Warsaw3131Europe/Warsawx31 16am31am-31Jue, 16 Jul 2020 10:08:14 +0200p10Europe/Warsaw3131Europe/Warsawx312020Jue, 16 Jul 2020 10:08:14 +02000810087amjueves=269#!31Jue, 16 Jul 2020 10:08:14 +0200pEurope/Warsaw7#julio 16th, 2020#!31Jue, 16 Jul 2020 10:08:14 +0200p1431#/31Jue, 16 Jul 2020 10:08:14 +0200p-10Europe/Warsaw3131Europe/Warsawx31#!31Jue, 16 Jul 2020 10:08:14 +0200pEurope/Warsaw7# Prueba de codificación, Reclutamiento de IT, Consejos de reclutamiento
SQL: preguntas de entrevista a los ingenieros de software

You want to hire SQL developer and start your IT recruitment campaign. You receive many resumes and cover letters – now it’s time to begin the screening process. Looking through applications and talking over the phone with candidates you start wondering whether a certain SQL programador is good enough to become a part of your IT team and are they worth inviting for an on-site technical interview. On the one hand, you don’t want to turn down SQL developer with potential that could be valuable for your company. On the other hand, you don’t want to invite a weak candidate for an interview with your IT team and hear them complaining that the candidate programming skills are poor and they knew it after 5-minute talk.

Por eso es tan importante planear el proceso de selección de habilidades de programación SQL y elegir los métodos que apoyarán a la IT reclutadores in doing it as accurately as possible. So we thought we will give you a hand. Below you will find all the crucial information on how to screen candidates fast and effectively. Let’s start.

1. ¿Qué es SQL?

SQL is the most popular 4GL (Fourth Generation Programming Language), which means that programmers only declare what the result looks like, rather than how the result should be calculated by the 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 ejecutadas por usuarios humanos directamente con SQL (en lugar de con una interfaz de usuario). En la actualidad, SQL también está integrado en otras, más general-purpose programming languages like Java in order to access data from central databases.

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

There are certain tips that can be valuable for IT recruiters when it comes to SQL.

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.
  • Perhaps 90% of all SQL performance-related issues can be solved with proper indexing. Being able to identify situations where an index will be beneficial (or in rare cases: detrimental) is thus essential. The other 10% usually works for DBA and operations teams, and are often out of scope for developers, unless working in specialized setups.
  • In theory, a declarative SQL statement will be optimized as much as possible by the database. In practice, many databases still need help from the SQL developer. Many SQL statements are formally equivalent, but some will produce better execution plans than others. These things differ from database to database. In everyday SQL jobs, it is usually sufficient if developers know about execution plans and the fact that SQL needs to be tuned. The necessary skills for the particular database can still be obtained on the job. In more specific situations (Big Data, high scalability), the developer should bring tuning knowledge about the particular database in use.
  • SQL feels “arcane” for “modern” developers. This is mostly due to the language syntax, which stems from times when COBOL and FORTRAN were still widely used. Apart from syntax, there is nothing arcane about the technology. This subjective topic helps to separate developers who are curious about finding the right tool for the job from those who follow dogma (and will thus probably make wrong choices later on). In particular, technical recruiters should be able to distinguish between developers who want to hide SQL behind an ORM (that’s bad) and those who understand that ORMs only solve a subset of data storage problems, while SQL is still an important technology. All ORM vendors agree on this distinction, while unfortunately, many developers prefer not to touch SQL.

3. How to verify SQL programming skills in the screening phase?

Los reclutadores de IT llegan a varios métodos de selección, desde la evaluación de las habilidades de programación SQL basadas en el currículum vitae a través de entrevistas de vídeo o telefónicas hasta en línea pruebas de codificación.

A continuación encontrará algunos útiles y prácticos reclutamiento tips on how to verify SQL skills using each method.  

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

How should you read SQL developer resume? As an IT recruiter, you can find some really valuable information in the resume you get from SQL developer, but you have to know how to read it and what to look for. This will enable you to speak the same language with your candidates (or at least understand the basics the candidate is talking about).

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

Glosario SQL para reclutadores técnicos

Programación declarativa, 4GLSQL 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.
DDLLenguaje de Definición de Datos, el subconjunto del lenguaje SQL que se utiliza para definir la base de datos
DMLLenguaje 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ónEl algoritmo elegido por el optimizador para una declaración SQL dada.
OptimistaEl motor que traduce una declaración SQL en un plan de ejecución. Incluso simple las declaraciones tienen docenas de posibles planes de ejecución válidos. Una base de datos puede mantener varios planes por declaración.
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 reglasLas 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 aUna 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ónThe practice of reducing redundancy in a relational database by separating conceptually distinct data (e.g. books, authors) into different relations (tables). There are several different levels of normalization.
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. CoddConocimientos 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), Base de datos Oracle
  • 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
  • In general, SQL evolves a bit more slowly and more backward-compatible than other ecosystems. Also, usually, vendor-specific features can be very important for specific projects that integrate tightly with SQL but are out of scope for this listing.

Essential SQL skills to look for on a resume

  • SQL performance tuning
  • SQL design skills
  • An understanding of relational theory
  • SQL refactoring skills
  • Experience with XSLT, Functional programming, NoSQL technologies
  • Set theory
  • Knowledge about window functions and 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:

  • One of the most valuable SQL skills is SQL performance tuning both from a developer perspective (reading execution plans, maintaining indexes, etc.) as well as from a DBA/operations perspective (resolving contention issues, tuning storage, etc.). The latter is a bit more specific to operations, but it can still be a plus if a SQL developer has to work closely with operations.
  • SQL design skills and a profound knowledge of relational theory is important when new projects are started. It is very important to get database design right in the early stages, as it is very hard to migrate badly designed databases later on. In legacy systems, most developers can simply follow the established rules, where design skills are less crucial (although still helpful).
  • 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?

As an IT recruiter you can also draw the following conclusions from SQL developer resume:

  • 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
  • Most SQL jobs are not SQL-only jobs, i.e. the developer will need to be able to work both with general-purpose languages (like Java, C#, etc.), and SQL. A good sign that a developer is able to do this is to look for interest and experience in a lot of different programming languages.

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

Resume itself is not enough to draw reliable conclusions about the candidate’s SQL programming skills. Therefore, IT recruiters often conduct a phone or video interview. Such an interview gives an opportunity to dig deeper into the candidate’s skills and experience. Often such a technical phone or video interview serves as a basis for making a decision whether to invite the candidate for an on-site technical interview with IT team or not, so it’s worth it to choose and ask the right questions.

Of course, questions vary greatly due to the position you are recruiting for and the specific skills you want to verify. Below you will find some general questions to find out more about candidate’s SQL skills.

1. SQL interview question concerning the developer’s experience

  • 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?
  • Why ask Q1: By asking this question, you can find out more about the candidate’s SQL up-to-date experience, responsibilities, and achievements. Thus you get to know your candidate better.

2. SQL interview question concerning the developer’s decision making regarding SQL technology

  • Q2: On what stage did you join recent projects? Were you involved in the choice of technology or project setup? If yes, which technology/ relational database management system did you choose or recommend for the project, and why?
  • Why ask Q2: This questions shows not only how a candidate makes choices regarding technology but also whether they were included into making decisions. Especially important if you are looking for someone with experience.

3. Pregunta de comportamiento para el desarrollador de SQL

  • Q3: Think about the programming project decision you made that was a failure. Why do you think it was a mistake? Why did it happen? Could there be anything done differently in order to turn it into success? What steps did you take to improve the situation? What did you learn from this experience?
  • Why ask Q3: That type of question will help you find out how the candidate perceives their decisions, draws conclusions and how much they learn from their previous experience.

3.3. Technical screening of SQL skills with an online coding test

Online coding tests can be a great way to screen SQL skills. Below you will find information on how you can use programming tests and which ones to choose.

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

Coding tests can be used in two ways. Some companies invite candidates for programming test if they pass the screening process e.g. once IT recruiter looks through their CV or interviews them over the phone or video. However, it is more common to invite all candidates that apply for certain SQL programming positions to take a test. This gives them a couple of benefits. IT recruiters don’t have to spend time on all applications, but only on candidates that have the potential to fit a job as far as their programming skills are concerned. Moreover, candidate that takes a coding assessment shows some engagement and willingness to participate in your IT recruitment process. It can be a sign that they are more likely to want to find a job.

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

In order to screen accurately, coding tests have to be the right ones.

There are some SQL online tests on the market but often they verify candidate’s academic knowledge rather than programming skills and abilities to solve real-life problems. This is what really annoys experienced programmers and that’s why they don’t like that kind of coding assessment. If the coding test verifies book knowledge they cannot show their skills in action and prove that they are capable of solving real-life programming challenges.

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. SQL coding tests should consist of a couple of tasks, not only multiple-choice tests but above all, programming tasks which difficulty should match the responsibilities the candidates will have if they get the job (tests shouldn’t be based on algorithmic tasks as thus you cannot verify whether a candidate can solve real-life coding challenges).
  2. There is no point in forbidding the programmer to use external sources, the best way is to create them such an environment as they have at work, so open book exam is much more appropriate. Moreover, the candidate should be able to use their preferred IDE, just as he does on a daily basis.
  3. SQL programming tests should verify not only SQL skills as far as technology, in general, is concerned but also knowledge specific for particular database engines
  4. The coding test can also include tasks with code review challenges to test SQL skills. It gives very accurate information about the experience of the candidate, their approach to code quality, and the efficiency of debugging and finding traps. Such an assessment should be obligatory when recruiting senior Desarrolladores de SQL.

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

DevSkiller helps companies in IT recruitment process by providing them with an infrastructure that lets them test the programming skills of candidates in the environment which imitates 1st day at work experience. We allow companies to use their own code base, whole IT projects using frameworks and libraries, to test programmers online. However, we also have some ready-to-use SQL coding tests which you can use in your technical recruitment campaign.

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.