Tela SQL Developer Key Skills Requirements

Publicado: Última actualização:
SQL: perguntas do engenheiro de software para entrevistas

Você quer contratar um desenvolvedor SQL e iniciar sua campanha de recrutamento de TI. Você recebe muitos currículos e cartas de apresentação - agora é hora de começar o processo de triagem. Olhando através de aplicativos e conversando por telefone com candidatos você começa a se perguntar se um certo programador SQL é bom o suficiente para se tornar parte da sua equipe de TI e se vale a pena convidá-los para uma entrevista técnica no local. Por um lado, você não quer recusar um programador SQL com potencial que possa ser valioso para a sua empresa. Por outro lado, você não quer convidar um candidato fraco para uma entrevista com sua equipe de TI e ouvi-los reclamando que as habilidades de programação do candidato são fracas e que eles sabiam disso após 5 minutos de conversa.

É por isso que é tão importante planejar seu processo de triagem de habilidades de programação SQL e escolher tais métodos que darão suporte aos recrutadores de TI para fazer isso da forma mais precisa possível. Por isso, pensamos que lhe daremos uma ajuda. Abaixo você encontrará todas as informações cruciais sobre como selecionar os candidatos de forma rápida e eficaz. Vamos começar.

1. O que é SQL?

SQL é a mais popular 4GL (Fourth Generation Programming Language), o que significa que os programadores só declaram como o resultado é, e não como o resultado deve ser calculado pela base de dados. Historicamente, este paradigma de programação declarativo tem sido uma característica chave para consultas ad-hoc executadas para introspecção de dados executados por usuários humanos diretamente com SQL (ao invés de com uma IU). Nos tempos modernos, SQL também está incorporado em outras linguagens de programação mais gerais, como Java, a fim de acessar dados de bancos de dados centrais.

2. O que é importante para o IT Recruiter saber sobre SQL?

Existem certas dicas que podem ser valiosas para os recrutadores de TI quando se trata de SQL.

Quais são as habilidades necessárias para um desenvolvedor SQL? O paradigma da programação declarativa é muito diferente da orientação a objetos, programação procedural ou mesmo programação funcional. É necessária uma mentalidade e experiência especial para que um desenvolvedor se torne um especialista em SQL. Enquanto tarefas básicas podem ser implementadas muito facilmente por todos (incluindo não programadores, tais como analistas de negócios, engenheiros de requisitos, gerentes de projeto, etc.), SQL complexo é bastante difícil de acertar.

Estas são as coisas sobre SQL que você deve ter em mente:

  • Um fundo profundo sobre (ou pelo menos alguma intuição sobre) teoria de conjuntos é muito importante para desenvolvedores que trabalham com SQL frequentemente. Se tal fundo estiver ausente, os desenvolvedores tendem a buscar itens de dados individuais um por um, processando-os no cliente usando uma linguagem de propósito geral como Java, ao invés de executar operações em massa em conjuntos de dados inteiros diretamente no banco de dados. Isto tem um impacto drástico no desempenho.
  • A maioria das universidades, infelizmente, não vai muito além da álgebra relacional e de algumas características SQL-92 básicas. SQL evoluiu muito durante as últimas décadas, tanto na forma padrão SQL, como em dialetos específicos do fornecedor. Há uma variedade de características como funções de janela, expressões comuns de tabela (CTE), e muito mais, que ajudam os desenvolvedores a executar relatórios complexos com relativa facilidade. Tipicamente, o conhecimento sobre funções de janela e CTE ajudam a distinguir entre desenvolvedores SQL iniciantes e desenvolvedores SQL avançados. Isto é importante em ETL, relatórios, BI, casos de uso analítico.
  • Talvez o 90% de todos os problemas relacionados com o desempenho do SQL possa ser resolvido com uma indexação adequada. Ser capaz de identificar situações em que um índice será benéfico (ou em casos raros: prejudicial) é, portanto, essencial. O outro 10% normalmente funciona para DBA e equipes de operações, e muitas vezes estão fora do escopo dos desenvolvedores, a menos que trabalhem em configurações especializadas.
  • Em teoria, uma instrução SQL declarativa será optimizada tanto quanto possível pela base de dados. Na prática, muitos bancos de dados ainda precisam da ajuda do desenvolvedor do SQL. Muitas instruções SQL são formalmente equivalentes, mas algumas irão produzir melhores planos de execução do que outras. Estas coisas diferem de banco de dados para banco de dados. Em trabalhos SQL cotidianos, normalmente é suficiente se os desenvolvedores sabem sobre os planos de execução e o fato de que a SQL precisa ser sintonizada. As habilidades necessárias para o banco de dados em particular ainda podem ser obtidas no trabalho. Em situações mais específicas (Grandes Dados, alta escalabilidade), o desenvolvedor deve trazer conhecimento de ajuste sobre o banco de dados em uso em particular.
  • SQL parece "arcano" para desenvolvedores "modernos". Isso se deve principalmente à sintaxe da linguagem, que deriva de tempos em que COBOL e FORTRAN ainda eram amplamente utilizados. Além da sintaxe, não há nada de arcano na tecnologia. Este tópico subjetivo ajuda a separar os desenvolvedores curiosos em encontrar a ferramenta certa para o trabalho daqueles que seguem o dogma (e assim provavelmente farão escolhas erradas mais tarde). Em particular, os recrutadores técnicos devem ser capazes de distinguir entre desenvolvedores que querem esconder SQL atrás de um ORM (que é ruim) e aqueles que entendem que ORMs só resolvem um subconjunto de problemas de armazenamento de dados, enquanto SQL ainda é uma tecnologia importante. Todos os fornecedores de ORMs concordam com esta distinção, enquanto infelizmente, muitos desenvolvedores preferem não tocar em SQL.

3. Como verificar as habilidades de programação SQL na fase de triagem?

Os recrutadores de TI recorrem a vários métodos de rastreio, desde a avaliação das competências de programação SQL com base no currículo, através de entrevistas por vídeo ou telefone, até aos testes de codificação online.

Abaixo você encontra algumas dicas úteis e práticas de recrutamento sobre como verificar as habilidades SQL usando cada método.

3.1. Triagem técnica das competências de programação SQL com base no CV

Como você deve ler o currículo do desenvolvedor SQL? Como um recrutador de TI, você pode encontrar algumas informações realmente valiosas no currículo que você obtém do desenvolvedor SQL, mas você tem que saber como lê-lo e o que procurar. Isso permitirá que você fale a mesma linguagem com seus candidatos (ou pelo menos entenda as noções básicas que o candidato está falando).

É por isso que preparamos este glossário SQL básico, basta dar uma olhada.

Glossário SQL para recrutadores técnicos

Programação declarativa, 4GL SQL é uma linguagem de programação fundamentalmente diferente (ver também a introdução). O facto de seguir o paradigma da programação declarativa é importante para um recrutador.
DDL Data Definition Language, o subconjunto da linguagem SQL que é usado para definir a base de dados
DML Data Manipulation Language, o subconjunto da linguagem SQL que é usado para manipular os dados na base de dados. A maioria das consultas são DML
Plano de Execução O algoritmo escolhido pelo otimizador para uma determinada instrução SQL.
Otimizador O motor que traduz uma instrução SQL em um plano de execução. Mesmo instruções simples têm dezenas de possíveis planos de execução válidos. Uma base de dados pode manter vários planos por instrução.
Otimizador baseado em custos (CBO) A maioria das bases de dados modernas são enviadas com um CBO, que toma decisões baseadas em estatísticas, histogramas e heurísticas sobre dados de produção. É muito difícil bater a decisão tomada por um CBO em uma base de dados comercial moderna.
Otimista baseado em regras Bases de dados mais antigas implementam motores de regras simples a fim de tomar decisões sobre planos de execução. Estas regras são muitas vezes erradas em situações do mundo real, e é por isso que as consultas nestas situações precisam de muito mais afinação, por exemplo, usando dicas.
Junte-se a Uma das operações mais fundamentais em álgebra relacional que ajuda a "unir" / "conectar" duas tabelas de banco de dados, por exemplo, livros e autores para produzir resultados.
PL/SQL, T-SQL, pgplsql, etc. Estas são extensões processuais da linguagem SQL, ou seja, linguagens de propósito geral que integram SQL. Embora estas habilidades sejam muito úteis em alguns projetos, elas não são necessariamente um indicador importante para as habilidades SQL.
Normalização A prática de reduzir a redundância numa base de dados relacional, separando dados conceptualmente distintos (por exemplo, livros, autores) em diferentes relações (tabelas). Existem vários níveis diferentes de normalização.
Base de dados relacional (modelo relacional, álgebra relacional, etc.) Embora o SQL funcione principalmente com bases de dados relacionais, também pode funcionar em outros sistemas de armazenamento de dados. As bases de dados relacionais implementam o modelo relacional
Bacalhau E.F. Conhecimentos de base opcionais: O Codd foi o maior contribuinte para a álgebra relacional e muito mais.

Agora que você está familiarizado com o básico de SQL, podemos entrar em mais detalhes. Se você não é uma pessoa técnica, então é fácil ficar confuso com todos os nomes e abreviaturas de tecnologia diferentes. Se o candidato diz "sequel", significa "ess-queue-el"? Ou o SQL é algo semelhante ao MySQL? Basta continuar lendo e você terá uma resposta.

Os termos SQL mais comuns que são utilizados de forma intercambiável:

  • Declaração, comando, consulta
  • MSSQL, SQL Server (não confundir com MySQL)
  • Oracle (a empresa), Banco de Dados Oracle
  • A pronúncia ou é "ess-queue-el" ou "sequel". Nas últimas décadas, a comunidade nunca conseguiu se conformar com nenhuma das pronúncias.
  • Expressões comuns de tabela, factoring de subconsciência, cláusula WITH

Relações entre as respectivas versões da tecnologia SQL:

  • SQL-92 é o primeiro padrão amplamente adotado (embora já existissem padrões antes)
  • SQL-1999 fez SQL "turing complete", o que significa que qualquer programa pode ser implementado com expressões de tabela comuns. Em palavras mais simples: Tornou o SQL realmente poderoso
  • SQL-2003 adicionou funções de janela, que são extremamente úteis para a análise
  • Em geral, o SQL evolui um pouco mais lentamente e mais retrocompatível do que outros ecossistemas. Além disso, normalmente, as características específicas do fornecedor podem ser muito importantes para projetos específicos que se integram fortemente com o SQL, mas estão fora do escopo para esta listagem.

Habilidades SQL essenciais para procurar em um currículo

  • Afinação do desempenho SQL
  • habilidades de design SQL
  • Uma compreensão da teoria relacional
  • habilidades de refatoração SQL
  • Experiência com XSLT, programação funcional, tecnologias NoSQL
  • Teoria dos conjuntos
  • Conhecimento sobre funções de janela e CTE

Se você vê no currículo do desenvolvedor SQL que eles tiveram um par de anos de experiência, vá um pouco mais fundo e procure por seguir as coisas no currículo:

  • Uma das competências SQL mais valiosas é o ajuste do desempenho SQL tanto do ponto de vista do desenvolvedor (leitura de planos de execução, manutenção de índices, etc.) como do ponto de vista do DBA/operação (resolução de problemas de contenção, ajuste de armazenamento, etc.). Esta última é um pouco mais específica para as operações, mas ainda pode ser uma vantagem se um desenvolvedor SQL tiver que trabalhar de perto com operações.
  • As habilidades de design SQL e um profundo conhecimento da teoria relacional são importantes quando novos projetos são iniciados. É muito importante obter o design de bases de dados logo nos estágios iniciais, pois é muito difícil migrar bases de dados mal desenhadas mais tarde. Em sistemas antigos, a maioria dos desenvolvedores pode simplesmente seguir as regras estabelecidas, onde as habilidades de design são menos cruciais (embora ainda úteis).
  • As habilidades de refatoração SQL podem ser bastante úteis em equipes maiores, onde o SQL começa a ficar bastante complexo. Ao contrário da refatoração Java que é bastante fácil hoje em dia (graças às ferramentas do IDE), a refatoração SQL ainda é muito difícil porque o código SQL é difícil de testar.

O que mais no CV pode ser valioso para avaliar as habilidades de programação SQL?

Como um recrutador de TI você também pode tirar as seguintes conclusões do currículo do desenvolvedor SQL:

  • SQL é uma excelente tecnologia para processamento de dados sem estado, streaming. Um desenvolvedor experiente com qualquer uma destas tecnologias também será bom com SQL:
    • XSLT
    • Programação funcional (Lisp, Clojure, Ocaml, Haskell, Scala)
    • Várias tecnologias NoSQL, incluindo MongoDB, CouchBase, Neo4j e muitas outras, todas com linguagens de consulta inspiradas em SQL
  • A maioria dos trabalhos SQL não são trabalhos somente SQL, ou seja, o desenvolvedor precisará ser capaz de trabalhar tanto com linguagens de propósito geral (como Java, C#, etc.), quanto com SQL. Um bom sinal de que um desenvolvedor é capaz de fazer isso é procurar interesse e experiência em muitas linguagens de programação diferentes.

3.2. Triagem técnica de habilidades SQL durante uma entrevista por telefone/vídeo

O currículo em si não é suficiente para tirar conclusões confiáveis sobre as habilidades de programação SQL do candidato. Portanto, os recrutadores de TI costumam conduzir uma entrevista por telefone ou vídeo. Tal entrevista dá uma oportunidade de se aprofundar nas habilidades e experiência do candidato. Muitas vezes, tal entrevista técnica por telefone ou vídeo serve como base para tomar a decisão de convidar ou não o candidato para uma entrevista técnica no local com a equipe de TI, então vale a pena escolher e fazer as perguntas certas.

Naturalmente, as perguntas variam muito devido à posição para a qual você está recrutando e às habilidades específicas que você quer verificar. Abaixo você encontrará algumas perguntas gerais para saber mais sobre as habilidades SQL do candidato.

1. Pergunta da entrevista SQL sobre a experiência do desenvolvedor

  • P1: Com quais tecnologias listadas em seu CV, você teve experiência comercial nos últimos 2 anos? Quais foram as suas responsabilidades? Qual foi a sua maior conquista?
  • Por que fazer esta pergunta, você pode saber mais sobre a experiência, responsabilidades e realizações do candidato SQL atualizado. Assim, você conhecerá melhor o seu candidato.

2. Pergunta da entrevista SQL sobre a tomada de decisão do desenvolvedor em relação à tecnologia SQL

  • P2: Em que estágio você entrou em projetos recentes? Você esteve envolvido na escolha da tecnologia ou na configuração do projeto? Se sim, que tecnologia/ sistema de gerenciamento de banco de dados relacional você escolheu ou recomendou para o projeto, e por quê?
  • Por que perguntar P2: Esta pergunta mostra não só como um candidato faz escolhas em relação à tecnologia, mas também se ele foi incluído na tomada de decisões. Especialmente importante se você está procurando por alguém com experiência.

3. Pergunta comportamental para o desenvolvedor de SQL

  • P3: Pense na decisão do projeto de programação que você tomou que foi um fracasso. Por que você acha que foi um erro? Por que isso aconteceu? Poderia haver algo diferente a fim de transformá-lo em sucesso? Que medidas você tomou para melhorar a situação? O que você aprendeu com essa experiência?
  • Por que fazer P3: Esse tipo de pergunta o ajudará a descobrir como o candidato percebe suas decisões, tira conclusões e o quanto aprende de sua experiência anterior.

3.3. Triagem técnica das habilidades de SQL com um teste de codificação online

Os testes de codificação online podem ser uma óptima forma de analisar as competências SQL. Abaixo você encontrará informações sobre como você pode usar os testes de programação e quais testes escolher.

Testes de codificação SQL online - o método primário ou adicional para triagem

Os testes de codificação podem ser usados de duas maneiras. Algumas empresas convidam candidatos para o teste de programação se eles passarem no processo de seleção, por exemplo, uma vez que o recrutador de TI olhe seu currículo ou os entrevista por telefone ou vídeo. No entanto, é mais comum convidar todos os candidatos que se candidatam a determinadas posições de programação SQL para fazer um teste. Isto dá-lhes um par de benefícios. Os recrutadores de TI não têm que gastar tempo com todas as candidaturas, mas apenas com candidatos que tenham potencial para se adequar a um trabalho, no que diz respeito às suas capacidades de programação. Além disso, o candidato que faz uma avaliação de codificação mostra algum envolvimento e vontade de participar do seu processo de recrutamento de TI. Pode ser um sinal de que eles estão mais propensos a querer encontrar um emprego.

Teste de codificação SQL online - qual escolher?

Para que os testes de codificação sejam precisos, os testes de codificação têm de ser os correctos.

Existem alguns testes SQL online no mercado, mas muitas vezes eles verificam os conhecimentos académicos do candidato em vez de programar habilidades e habilidades para resolver problemas da vida real. Isto é o que realmente irrita os programadores experientes e é por isso que eles não gostam desse tipo de avaliação de codificação. Se o teste de codificação verifica o conhecimento dos livros, eles não podem mostrar suas habilidades em ação e provar que são capazes de resolver os desafios da programação da vida real.

É por isso que você deve escolher cuidadosamente os testes de codificação no seu processo de recrutamento de TI. Abaixo você encontrará minhas 5 principais características dos testes SQL que você deve estar procurando:

  1. Os testes de codificação SQL devem consistir em um par de tarefas, não apenas testes de múltipla escolha, mas acima de tudo, programar tarefas cuja dificuldade deve corresponder às responsabilidades que os candidatos terão se conseguirem o trabalho (os testes não devem ser baseados em tarefas algorítmicas, pois assim não se pode verificar se um candidato pode resolver desafios de codificação da vida real).
  2. Não adianta proibir o programador de utilizar fontes externas, a melhor maneira é criar-lhes um ambiente como o que têm no trabalho, por isso o exame de livro aberto é muito mais apropriado. Além disso, o candidato deve ser capaz de usar a sua IDE preferida, tal como faz no dia-a-dia.
  3. Os testes de programação SQL devem verificar não só as competências SQL no que diz respeito à tecnologia, em geral, mas também os conhecimentos específicos para determinados motores de base de dados
  4. O teste de codificação também pode incluir tarefas com desafios de revisão de código para testar as habilidades SQL. Ele dá informações muito precisas sobre a experiência do candidato, sua abordagem à qualidade do código, e a eficiência da depuração e da busca de armadilhas. Tal avaliação deve ser obrigatória no recrutamento de desenvolvedores SQL seniores.

4. DevSkiller pronto para usar testes de avaliação de codificação SQL online

DevSkiller ajuda as empresas no processo de recrutamento de TI, fornecendo-lhes uma infra-estrutura que lhes permite testar as competências de programação dos candidatos no ambiente que imita o 1º dia de experiência profissional. Permitimos que as empresas utilizem a sua própria base de código, projetos inteiros de TI utilizando frameworks e bibliotecas, para testar programadores online. No entanto, também temos alguns testes de codificação SQL prontos para uso que você pode usar em sua campanha de recrutamento técnico.

SQL
MÉDIO
Competências testadas
Duração
65 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Tarefa da base de dados - Nível: Médio

SQL | MSSQL | Finding nulls - Escreva uma consulta que retorna os nomes de todos os itens que não estão disponíveis

Tarefa da base de dados - Nível: Médio

SQL | MSSQL | Finding date ranges - Escreva uma consulta que retorna os nomes de todos os itens adicionados nos últimos 7 dias.

Tarefa da base de dados - Nível: Médio

SQL | MSSQL | Usando agregados - Escreva uma consulta que retorna os nomes de todos os itens de uma determinada categoria

Tarefa da base de dados - Nível: Médio

SQL | MSSQL | Finding duplicates - Escreva uma consulta que retorna os nomes de todos os itens que estão duplicados

Python
SENIOR
Competências testadas
Duração
82 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Grandes Dados, PySpark, Python

Lacunas de código

avaliação do conhecimento de SQL

Tarefa de programação - Nível: Difícil

Python | PySpark | Fleet management corporation - Detectar eventos de velocidade e verificar a exatidão de um preditor existente.

Java
JUNIOR
Competências testadas
Duração
120 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Tarefa de programação Front End - Nível: Fácil

JavaScript | TypeScript | Aplicação de facturação - frontend - Implementar a parte front-end para fusão e agregação dos dados da facturação com as taxas de câmbio da moeda.

Tarefa de programação Back End - Nível: Fácil

Java | Aplicação de facturação - backend - Implementar a parte backend para pesquisa e agregação de dados de facturação com o serviço e os métodos DAO.

Ciência dos Dados
JUNIOR
Competências testadas
Duração
45 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Tarefa - Nível: Fácil

SQL | Catálogo de selos | Os três preços mais elevados - Seleccione três selos (preço e nome) com o preço mais elevado.

Tarefa de programação - Nível: Fácil

Python | Pandas | Analisador de tabelas HTML - Implemente uma função para converter tabelas HTML em um arquivo de formato CSV.

Python
MÉDIO
Competências testadas
Duração
120 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Python

Tarefa de programação - Nível: Médio

Python | Relatório de vendas de veículos - Implemente uma aplicação para criar relatórios com base no armazém de dados de vendas de veículos.

DevOps
SENIOR
Competências testadas
Duração
66 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de DevOps, Docker

Tarefa DevOps - Nível: Difícil

DevOps | Master of Disaster Recovery (CentOS) - Recupera dados da base de dados MariaDB/MySQL avariada.

DevOps
SENIOR
Competências testadas
Duração
66 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de DevOps, Docker

Tarefa DevOps - Nível: Difícil

DevOps | Master of Disaster Recovery (Ubuntu) - Recupera dados de uma base de dados MariaDB/MySQL avariada.

PostgreSQL
MÉDIO
Competências testadas
Duração
44 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de SQL

Lacunas de código

avaliação do conhecimento de SQL

Tarefa - Nível: Médio

SQL | PostgreSQL | Hotéis - otimização da página de hotéis - Melhorar o desempenho da página de listagem dos hotéis que atualmente utilizam ORM.

MongoDB
MÉDIO
Competências testadas
Duração
51 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de SQL, MongoDB, NoSQL

Lacunas de código

avaliação do conhecimento de MongoDB

Tarefa - Nível: Médio

SQL | Dados do Cliente - Encontre todos os clientes cujo primeiro e último nome não são únicos nesta base de dados, assim como o número de vezes que cada par de primeiro e último nome aparece na base de dados.

PHP
MÉDIO
Competências testadas
Duração
60 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Lacunas de código

avaliação do conhecimento de SQL

Perguntas de escolha

avaliação do conhecimento de ES6, JavaScript, CSS, HTML, WCAG 2.0, Acessibilidade na Web

Tarefa de programação - Nível: Médio

PHP | Repositório de Categorias - Implemente consultas DOP que retornarão resultados válidos sobre filmes aos usuários.

Partilhar correio

Saiba mais sobre a contratação de tecnologia

Subscreva o nosso Centro de Aprendizagem para obter informações úteis directamente na sua caixa de entrada.

Verificar e desenvolver as habilidades de codificação sem problemas.

Veja os produtos DevSkiller em ação.

Certificações de segurança e conformidade. Certificamo-nos de que os seus dados estão seguros e protegidos.

Logotipo DevSkiller Logotipo TalentBoost Logotipo TalentScore