Como selecionar as habilidades do desenvolvedor JavaScript para encontrar o melhor - guia para recrutamento de TI

Publicado: Última actualização:
JavaScript: perguntas de engenheiro de software para entrevista

1. O que é JavaScript?

O JavaScript (também conhecido como JS) é uma linguagem dinâmica de alto nível, baseada em protótipos, não codificada e dinâmica. Dependendo do ambiente, o JavaScript pode ser interpretado ou compilado. É uma linguagem de programação multi-paradigma, que suporta estilos de programação orientados a objetos, imperativos e funcionais.

O JavaScript começou como uma linguagem apenas de navegador, adicionando muitas possibilidades para melhorar sites já escritos com HTML e CSS. Em 2009 tudo mudou. Agora, o JavaScript pode ser usado em qualquer lugar (literalmente em qualquer lugar, mesmo em trajes espaciais) por causa do Node.js - que é um ambiente de execução JavaScript baseado no motor JavaScript V8 do Google. Aplicações escritas em JavaScript podem ser muito rápidas se forem feitas por desenvolvedores habilidosos. Por causa do nível de entrada muito baixo no mundo JavaScript, agora é um dos línguas mais faladas em uso.

Lembre-se: Java e JavaScript não são a mesma linguagem de programação. Os desenvolvedores são sensíveis às suas linguagens favoritas, por isso é muito importante não confundir nomes.

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

A demanda por desenvolvedores de JavaScript está aumentando muito rapidamente. Há algumas coisas que você deve saber quando estiver procurando por desenvolvedores JS.

- Como mencionei anteriormente, o JavaScript é muito fácil de aprender. Com poucas linhas de código você pode mudar o comportamento do site ou fazer um simples servidor HTTP com o Node.js. E esta também é a armadilha do JavaScript - muitos desenvolvedores estão aprendendo apenas pequenas partes da linguagem só para fazer as coisas. Para escrever aplicações rápidas e de alta qualidade você precisa ter um conhecimento muito bom do próprio JavaScript.

- Há um ditado no mundo JavaScript - "Um dia sem uma nova estrutura JavaScript é um dia perdido". Novas ferramentas estão surgindo como cogumelos em tempo chuvoso. Eu não condeno isto - é bem o oposto - eu encorajo-o. Este fenómeno mostra-nos como é criativa e apaixonante a comunidade JavaScript. Mas tal estado de coisas tem um grande inconveniente - nós exigimos dos desenvolvedores conhecimento sobre frameworks que acabaram de ser criados. Muito bom conhecimento de frameworks populares é importante para escrever aplicativos JavaScript eficientes rapidamente, mas é melhor ter um desenvolvedor com enorme experiência com puro JavaScript e frameworks ou bibliotecas mais antigas para aprender novas ferramentas do que ter um desenvolvedor que segue cegamente o que é novo sem um profundo entendimento da linguagem.

- Por outro lado, por vezes, o JavaScript puro não é suficiente. Você pode fazer tudo do zero, mas é demorado e como todos nós sabemos - tempo é dinheiro. Um bom desenvolvedor de JavaScript deve conhecer pelo menos uma estrutura ou biblioteca popular e testada em batalha. E como o ecossistema está em constante mudança, o conhecimento sobre ferramentas que foram usadas há 2-3 anos atrás pode estar ultrapassado.

- Você precisa saber que tipo de desenvolvedor JavaScript você está procurando - é alguém que vai se juntar à equipe Front-end? Ou é alguém que vai trabalhar com aplicações do lado do servidor?

Ou talvez seja alguém que irá trabalhar em aplicações móveis híbridas ou em dispositivos de Internet das Coisas? O entendimento central da linguagem nestes casos é o mesmo. No entanto, cada um desses desenvolvedores deve ter diferentes conhecimentos relacionados ao seu campo de trabalho.

- Para posições de alto nível, experiência comercial é necessária, mas para desenvolvedores de nível júnior ou até mesmo de nível médio, um portfólio interessante com um código bem escrito em um dos serviços populares de hospedagem de repositório (como o GitHub) pode ser igualmente bom. Pontos de bônus se um candidato é um contribuinte de projetos Open Source.

3. Como verificar as habilidades de JavaScript na fase de triagem?

A triagem é difícil quando você não conhece as tecnologias usadas pelos desenvolvedores. É ainda mais difícil quando tudo está mudando tão rápido como no ecossistema JavaScript. Então, vamos passar para algumas dicas práticas de recrutamento de como verificar as habilidades dos desenvolvedores de JavaScript.

3.1 Triagem técnica das habilidades de JavaScript com base no CV

Tecnologia JavaScript - glossário básico de termos JavaScript para recrutadores de TI

O CV do candidato pode nos dizer muitas informações úteis, mas você precisa saber como escolher o que é mais importante. Há muitas frases técnicas diferentes em cada currículo e é muito importante não ficar confuso com elas. Como Recrutador Técnico que procura o JavaScript Developer, você precisa estar familiarizado com toda a terminologia utilizada pelos candidatos.

Você encontrará informações úteis abaixo - isso o ajudará a manter a sanidade durante a triagem.

Glossário JavaScript para recrutadores técnicos

versões em JavaScript EcmaScript 5 (ES5 - disponível em qualquer lugar), EcmaScript 6 (ES6 - disponível nos navegadores mais recentes), EcmaScript 2016 (ES7 )
Estruturas e bibliotecas JavaScript Angular.js, jQuery, Reage, Backbone, Ember, Vue.js, Polímero, Aurelia, Knockout, Rx.js
Estruturas JavaScript para Node.js Express.js, Hapi.js, Koa, Velas, Meteoro
Gestores de pacotes Node.js NPM, Bower, JSPM
Executadores de tarefas e ferramentas de construção baseados no Node.js GulpGrunt, Brócolos, Webpack
Estruturas de teste JavaScript Casper, Mocha, Jasmine, Jest, Karma
transpilers JavaScript Traceur, Babel
Aplicações Móveis Híbridas Sencha Touch, Ionic, Apache Cordova, IntelXDK
Supersets ou linguagens JavaScript que compilam para JavaScript TypeScript, CoffeScript, Elm, Dart

Estas são as noções básicas. Agora podemos ir mais fundo. Há uma variedade de ferramentas, estruturas e bibliotecas e cada uma delas é diferente. Para tornar as coisas mais especificas, pode haver grandes diferenças nas versões das ferramentas. Se um candidato afirma que conhece AngularJS, é uma versão de framework que nosso cliente está procurando? Continue lendo e tudo ficará claro.

A maioria dos nomes JavaScript comuns que são usados de forma intercambiável:

- JS, JavaScript, EcmaScript

- Nó.js, Nó, ambiente de execução JavaScript do lado do servidor

- Aplicação híbrida, Aplicação móvel híbrida, aplicação híbrida

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

- EcmaScript 6 estende o EcmaScript 5 (JavaScripts precisa ser compatível com versões anteriores, caso contrário, novas versões quebrariam a Web)

- jQuery 1.x , 2.x e 3.x são similares

- O Angular 1.x é totalmente diferente do Angular 2.x

- O conceito central é o mesmo, mas há diferenças entre cada versão principal do React

- A Vue 1.x é totalmente diferente da Vue 2.x

- As aplicações escritas com Ember.js 1.x ainda funcionam com 2.x

- O conceito central é o mesmo mas há diferenças entre cada versão principal do Node.js

- NPM 3.x é a versão mais rica do NPM 2.x

É também valioso estar atento às relações seguintes:

- MV* Frameworks - Se alguém conhece um de Ember, Knockout ou Angular 1.x então será capaz de lidar com o descanso

- Aplicações móveis híbridas - Se alguém conhece Angular ou Reagir, então será capaz de fazer aplicações móveis híbridas

- Aplicações do lado do servidor - Se alguém conhece o Express, Hapi, Koa ou Meteoros, então será capaz de lidar com o descanso

Outras informações sobre o currículo que podem mostrar as habilidades de JavaScript do desenvolvedor:

Devido à constante mudança do mundo do JavaScript, não há certificados que possam comprovar as habilidades do candidato. Bem, há um. E é a conta do GitHub. Bons desenvolvedores de JavaScript freqüentemente participam de projetos Open Source como contribuidores ou estão fazendo software por conta própria para o bem maior. Em tal ambiente, eles são expostos a outros desenvolvedores que estão constantemente verificando sua qualidade de código. Compartilhar seu código com outros é a melhor maneira de ser um desenvolvedor melhor.

Outro aspecto é a participação como orador em conferências JavaScript. Muitas vezes os desenvolvedores com habilidades muito elevadas em uma determinada área são convidados a vários lugares para falar sobre suas experiências com essas tecnologias.

3.2 Triagem técnica das habilidades de JavaScript durante entrevista técnica por telefone/vídeo

O currículo pode nos dizer algo sobre as habilidades do desenvolvedor, mas não vai dizer nada sobre o desenvolvedor em si. É por isso que entrevistas por telefone ou videoconferência são tão populares - habilidades são importantes, mas precisamos saber com que tipo de pessoa estamos lidando - e ainda mais importante - com que tipo de pessoa a equipe do nosso cliente pode trabalhar. É por isso que é necessária uma preparação adequada antes de uma entrevista.

Abaixo você encontrará alguns exemplos de perguntas que lhe dirão mais sobre o candidato. Espero que eles facilitem a procura do candidato certo.

  1. Pergunta de entrevista em JavaScript sobre a experiência do desenvolvedor

Q1: Com que tecnologias listadas no seu CV, você teve experiência comercial nos últimos 2 anos? Quais eram as suas responsabilidades?

Porque perguntar Q1: Ao fazer esta pergunta, você pode saber mais sobre a experiência, responsabilidades e realizações do candidato em Java. Assim, você poderá conhecer melhor o seu candidato.

  1. Perguntas de entrevista em JavaScript sobre conhecimentos e opiniões dos desenvolvedores

Q2: Quais bibliotecas de JavaScript você considera valiosas e por quê?

Porque perguntar Q2: Esta pergunta mostra-nos o conhecimento do candidato sobre o ecossistema JavaScript. Podemos ver tudo sobre a escolha da tecnologia.

Q3: Reparei que listaste o quadro X no teu CV. Qual é a sua opinião sobre isso? É uma boa escolha?

Porque perguntar Q3: Estas perguntas mostram-nos conhecimentos sobre tecnologia específica. Respostas incertas e trêmulas podem nos ajudar a encontrar mentiras em um currículo. Você também pode se fazer de advogado do diabo com base nas suas respostas "Mas por que não usar a estrutura Y para isso?". Assim, você pode ver como os candidatos escolhem uma tecnologia, justificar suas escolhas e se suas opiniões estão de acordo com suas equipes de TI.

Q4: Se você gostaria de aprender novas tecnologias ligadas ao JavaScript, o que seria?

Porquê perguntar ao Q4: A resposta a esta pergunta demonstra a abordagem dos candidatos à aprendizagem e pode nos ajudar a encontrar desenvolvedores que ainda estão usando conhecimentos ultrapassados adquiridos no passado.

  1. Pergunta de entrevista em Java sobre a tomada de decisão do desenvolvedor em relação à tecnologia JavaScript

Q5: Em que estágio você se juntou a projetos recentes? Você esteve envolvido na escolha da tecnologia ou na configuração do projeto? Se sim, que tecnologia você escolheu ou recomendou para o projeto e por quê?

Porque perguntar Q5: Tais perguntas mostram não só como um candidato faz escolhas em relação à tecnologia, mas também se eles foram incluídos na tomada de decisões. Especialmente importante se você está procurando por alguém com experiência.

  1. Pergunta comportamental para desenvolvedor de JavaScript

Q6: Pense na decisão de programar o projeto que você tomou que foi um fracasso. Porque achas que foi um erro? Porque é que aconteceu? Poderia haver algo diferente a fim de transformá-lo em sucesso? Que passos você tomou para melhorar a situação? O que você aprendeu com essa experiência?

Porquê perguntar ao Q6: 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.

Q7: Você está contribuindo para qualquer projeto de código aberto ou talvez você esteja mantendo seu próprio projeto de código aberto? Você está participando de alguma conferência JavaScript?

Porque perguntar Q7: Perguntas como estas mostram-nos se um candidato quer partilhar os seus conhecimentos e quer ser uma parte significativa do ecossistema JavaScript. Pessoas com uma forte vontade de partilhar a sua experiência são muitas vezes bons jogadores de equipa.

Confira nosso completo JavaScript salário do desenvolvedor guia.

Autor - Mateusz Rojecki Front-end Developer @ Laboratório de codificadores

Laboratório de codificadoresCoders Lab (www.coderslab.pl) é a maior escola de codificação da Polónia, que está activa em Varsóvia, Crakow, Katowice, Wrocław, Poznań e Łódź. Durante seis semanas os alunos do bootcamp aprendem tecnologias de desenvolvimento web: front-end ou back-end. Nossos métodos de ensino se concentram em 4 áreas: prática, trabalho com mentor, construção do portfólio do aluno e apoio à carreira. Ajustamos o programa às necessidades tecnológicas atuais do mercado, a fim de apoiar a educação baseada no conhecimento. Mais de 300 alunos formados em bootcamps.

DevSkiller pronto para usar testes de avaliação de codificação JavaScript 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 JavaScript prontos a usar que você pode usar em sua campanha de recrutamento técnico.

Nó.JS
JUNIOR
Competências testadas
Duração
41 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de JavaScript, Nó.JS

Lacunas de código

avaliação do conhecimento de JavaScript, Nó.JS

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

JavaScript | Node.JS | Sistema de arquivos - Use o NodeJS para ler/escrever arquivos de forma sincronizada e assimétrica, listar diretórios recursivamente.

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

Perguntas de escolha

avaliação do conhecimento de Angular, JavaScript

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

JavaScript | Angular, NgRx | Estação de Serviço - Implemente uma gestão estatal baseada no NgRx com efeitos secundários e entidades.

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

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

HTML/CSS | Home Page - Definições de propriedades CSS completas para que a página exiba a tela do carregador de splash apropriado antes de exibir a página inicial.

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

JavaScript | Memorização funcional - Escreva as duas versões do mecanismo genérico de memorização.

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

Perguntas de escolha

avaliação do conhecimento de Angular, JavaScript

Lacunas de código

avaliação do conhecimento de Angular, JavaScript

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

JavaScript | Angular | Formulários Reativos - Prepare um formulário de registro usando os formulários Reativos

Angular 2+
SENIOR
Competências testadas
Duração
53 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Lacunas de código

avaliação do conhecimento de Angular2+, JavaScript

Perguntas de escolha

avaliação do conhecimento de HTML

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

JavaScript | Angular 2+ | Router Role Based Access Control - Prepare um RBAC simples para rotas e componentes.

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

Perguntas de escolha

avaliação do conhecimento de JavaScript, Vue.js

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

JavaScript | Vue.js | Bloco de Notas - Aplicação completa de notas simples utilizando o NotesService fornecido para guardar e ler notas.

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

Perguntas de escolha

avaliação do conhecimento de JavaScript, Vue.js

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

JavaScript | Vue.js | Formulário de contato - Termine o formulário para que ele tenha todas as seguintes características: o usuário pode fazer o login, então o nome e o e-mail são preenchidos após o envio do formulário uma mensagem de 'Obrigado' deve aparecer.

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

Perguntas de escolha

avaliação do conhecimento de Datilografia

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

TypeScript | Redux Selectors | Departamento de RH - Implementar os Selectores Redux que irão processar os dados de RH. A implementação será testada contra testes de snapshot.

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

Perguntas de escolha

avaliação do conhecimento de JavaScript, HTML, CSS

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

JavaScript | Vue.js | Calendar Notes - Implemente uma aplicação com a qual o utilizador pode adicionar uma nota para uma data escolhida a partir de um calendário.

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

Perguntas de escolha

avaliação do conhecimento de Angular2+, JavaScript, rxjs

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

JavaScript | Angular 2+ | Porta-cartões de visita virtual - Conecte componentes do porta-cartões virtual usando um serviço, RxJS, e Angulars @Input.

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