Como selecionar as habilidades de desenvolvedor do Node.js

Publicado: Última actualização:
Habilidades do desenvolvedor do Node.js

No clima tecnológico actual, o Node.js é um dos tecnologias backend mais populares usado pelos desenvolvedores. É crucial que você verifique as habilidades de desenvolvedor do Node.js do seu candidato, a fim de fazer uma contratação de alta qualidade.

Há muitas razões pelas quais o Node.js é popular entre aqueles do setor. Às vezes referido como apenas 'Node', este ambiente de tempo de execução promove o desenvolvimento de software rápido e escalável. Ele também usa JavaScript, a lingua franca da World Wide Web, para potencializar suas amplas características. Não é surpresa porque tantas empresas estão fazendo o seu melhor para buscar habilidades de desenvolvedor de alto nível no Node.js.

Relatórios do Indeed indicam que o número de buscas de emprego para o Node.js subiu em 57% do ano anterior, demonstrando a sua crescente procura. Esta peça especial de tecnologia é usada por toda uma série de tech-giants e empresas multinacionais incluindo Netflix, Uber, LinkedIn, NASA, PayPal, Microsoft e Walmart.

No artigo de hoje, DevSkiller irá cobrir as entradas e saídas do Node.js, as coisas mais importantes que um recrutador de TI deve estar ciente e as nossas melhores estratégias para contratar um desenvolvedor de qualidade Node.js.

O que é Node.js?

Tecnicamente falando, Nó.js é um ambiente open-source, multi-plataforma, JavaScript runtime que executa o código JavaScript fora de um navegador web.

Dividindo um pouco, o Node.js permite que os desenvolvedores usem JavaScript para escrever comandos para scripts do lado do servidor (back-end scripting). Essencialmente, isto significa que o Node.js ajuda a executar scripts do lado do servidor para produzir conteúdo dinâmico da página web antes que a página seja enviada para o navegador web do usuário.

A primeira versão estável do Node.js (0.10.0, a primeira usada nos negócios) foi lançada em 2013, embora o projeto tenha começado alguns anos antes. O objetivo de Ryan Dahl, o criador do Node.js, era criar sites em tempo real com capacidade de push, "inspirado em aplicativos como o Gmail". No Node.js, ele deu aos desenvolvedores uma ferramenta para trabalhar no paradigma de I/O não-bloqueio, orientado por eventos.

1.1. Para que é usado o Node.js e que problemas resolve?

Como a maioria das aplicações do lado do cliente, incluindo páginas web e aplicações web utilizam código escrito em JavaScript, a vantagem de também escrever scripts do lado do servidor em Javascript é enorme. E é aí que o Node.js entra em jogo.

O Node.js é popular principalmente devido ao fato de que representa um "JavaScript em toda parte" paradigma, unificando o desenvolvimento de aplicações web em torno de uma única linguagem de programação, ao invés de diferentes linguagens para scripts do lado do servidor e do lado do cliente.

Esta unificação através da pilha que incorpora o idioma e o formato de dados (JSON), permite às empresas reutilizar de forma optimizada os recursos do desenvolvedor.

O uso do Node.js permite que um desenvolvedor full-stack faça a transição com facilidade; e como resultado, está em competição direta com outras linguagens e frameworks populares de script como Java, .NET, Python, PHP, Ruby, e C#.

A plataforma facilita as aplicações web com conexões bidirecionais, para que tanto o cliente como o servidor possam iniciar a comunicação, permitindo-lhes trocar dados livremente. Esta vantagem está em claro contraste com a típica paradigma de pedido/resposta webpelo qual o cliente inicia sempre a comunicação.

Node.js é uma plataforma que preenche uma necessidade particular. É muito leve, o que significa que sistemas escaláveis e de alto desempenho podem ser escritos com pouco código. O Node.js, no entanto, não é ideal para operações com uso intensivo de CPU devido à sua implementação com uma única rosca.

Onde o Node se destaca do pacote é na construção de aplicações de rede rápidas e escaláveis, pois é capaz de lidar com um enorme número de conexões simultâneas com alto rendimento, o que equivale a uma alta escalabilidade.

1.2. É semelhante a qualquer outra língua ou estrutura?

O Node.js estará sempre muito ligado à linguagem JavaScript devido a ser a sua plataforma de tempo de execução do lado do servidor. Como o Node.js implementa a especificação ECMAScript, um padrão JavaScript global destinado a assegurar a interoperabilidade das páginas web através de diferentes navegadores; podemos dizer informalmente que Node.js é efetivamente Javascript.

De certa forma, podemos dizer que o Node é similar ao PHP, Python e Ruby (sendo uma linguagem de script dinâmica), embora seja muito mais avançado em termos de capacidades de programação funcional.

Existem vários outros produtos no mercado que funcionam como boas alternativas ao Node.js. Estes incluem Elixir, Perl, ASP.NET, Ceilão, e Rebol.

1.3. Quais são as suas principais vantagens ou características?

  • Permite aos desenvolvedores escalar aplicações em direções horizontal e vertical.
  • É fácil de aprender para desenvolvedores familiarizados com JavaScript.
  • A ‘JavaScript em pilha cheia" - ajuda a escrever aplicações do lado do servidor em JavaScript.
  • Torna a utilização do código mais fácil, rápida e eficaz, interpretando JavaScript através do motor JavaScript V8 do Google.
  • Oferece a opção de sistemas de E/S sem bloqueio que ajuda os desenvolvedores a processar vários pedidos ao mesmo tempo.
  • É o lar de uma base de utilizadores vibrante, orientada para a comunidade, que contribui continuamente para a sua melhoria.

O que é importante para um recrutador de TI saber sobre o Node.js?

O que é importante procurar ao contratar desenvolvedores com experiência no Node.js? Além das habilidades usuais de design de arquitetura, lógica, colaboração e comunicação que você exigiria ao contratar qualquer desenvolvedor, há algumas coisas que são exclusivos para os desenvolvedores de Nodos.

2.1. Com que frequência a pilha de tecnologia muda?

Como o Node.js é executado em Javascript, você muitas vezes ouvirá as pessoas dizerem isso, "há uma nova estrutura JavaScript a cada semana"mas isso está principalmente relacionado com a arquitectura de front-end. O back-end é geralmente muito mais estável. Naturalmente, novas ferramentas são adicionadas o tempo todo; no entanto, pertencentes aos add-ons mais populares usados no Node.JS - incluindo Express, Meteor, Hapi, NestJS, koa etc - é mais uma evolução do que uma revolução.

Além disso, a própria linguagem JavaScript tem melhorado constantemente desde 2015, quando o ES6 (também conhecido como ES2015) foi lançado. A razão é que, antes de 2015, cada versão do JS era introduzido com extrema frequência (como a cada 3-5 anos), mas desde 2015, uma nova versão é lançada a cada ano. Em geral, a pilha de tecnologia tem sofrido uma evolução bastante suave.

2.2. Existem muitos recursos/ferramentas/tecnologias disponíveis?

O que é realmente ótimo no Node.js são os milhares de módulos disponíveis para qualquer propósito, bem como a vibrante comunidade por trás da plataforma. Existem pontuações de blogs, tutoriais, vídeos, conferências e livros sobre o tema, desenhados para tornar a vida dos desenvolvedores mais fácil.

Ferramentas como WebpackO Node.js é um útil bundler de módulo JavaScript usado para simplificar o desenvolvimento de front-end realmente ajuda a simplificar o Node.js. Ou Mocha.js, que permite aos desenvolvedores do Node testar tanto na consola como no browser.

Mais informações sobre ferramentas e recursos para o Nó podem ser encontradas em sites tais como Smashing e Brainhub.

2.3. Com que ferramentas e técnicas um desenvolvedor Node.js deve estar familiarizado?

Há duas coisas que devem ser distinguidas aqui: o conhecimento do próprio Node.js e as questões gerais relacionadas com a programação back-end. O Node.js, sendo o JavaScript do lado do servidor, compreende de:

  • A linguagem de scripting, e
  • Módulos Node.js embutidos, que gerenciam sistemas de arquivos, processos, eventos, HTTP, etc.

Esta amplitude de conhecimento não é uma grande barreira para desenvolvedores front-end, que desejam migrar do trabalho do navegador para o servidor.

No entanto, existem também conceitos relacionados com back-end, que são mais ou menos os mesmos para todas as tecnologias backend, incluindo Java, .Net, PHP, Python, Ruby, Golang, e, claro, Node.js. Tais tópicos incluem:

  • Bases de dados, persistência
  • Gestão da sessão
  • Arquitetura: monólitos, microserviços
  • Escala (consumo de recursos RAM/CPU)
  • APIs REST
  • Nuvem e infra-estrutura
  • e muitos, muitos mais, muitas vezes dependendo da especificidade do projeto.

Tudo-em-tudo, estes são os conceitos que os desenvolvedores do node.js deveria ser familiarizado com.

As especificidades das habilidades de desenvolvedor do Node.js são claramente não negociáveis. Mas sem conhecimento back-end, os desenvolvedores poderiam escrever sistemas que não sejam resilientes, instáveis, ou não tolerantes a falhas (o que poderia resultar em sistemas que funcionam bem para ~50 usuários, mas quebram para ~5000 ou ~50000 usuários).

2.4. Que tipo de experiência é importante procurar em um desenvolvedor Node.js?

Sem dúvida, a experiência comercial com o Node.js é o fator mais importante a ser considerado aqui. Trabalhar em projetos relacionados a negócios e entregar software estável são os pontos de referência para a plataforma. A experiência científica e acadêmica da React é quase irrelevante.

A experiência de código aberto também deve ser discernida como um benefício adicional, uma vez que o Node.js é uma das plataformas mais amigáveis de código aberto que existem.

Como verificar as habilidades do desenvolvedor do Node.js na fase de triagem?

Se você está contratando para o Node.js developer skills, há mais de uma maneira de esfolar um gato, por assim dizer. Adam Polak, Chefe do Node.js da The Software House, argumenta que a transição de uma tecnologia diferente pode ostensivamente ser uma opção viável.

"O Node.js é uma tecnologia relativamente nova, por isso não há muitos dispositivos experientes que a utilizem. É por isso que não devemos nos limitar apenas aos usuários atuais do Node.js, mas também dar uma olhada em dispositivos habilidosos que podem transitar rapidamente. Os desenvolvedores de PHP, Java e .NET estão frequentemente dispostos a aprender novas tecnologias".

3.1. O que levar em conta na triagem de um currículo?

  • Os desenvolvedores devem estar familiarizados com questões de programação back-end, padrões, problemas e soluções.
  • Experiência no desenvolvimento e envio de aplicações baseadas no Node.js.
  • Projeto da base de dados e análise de desempenho.
  • Competências relacionadas com GQ (isto é, desenhar cenários de testes e implementar esses testes).
  • Experiência com a infra-estrutura na nuvem, por exemplo, como permitir a implementação na infra-estrutura na nuvem AWS/Azure/GCP.
  • Qualquer coisa que não prove o conhecimento sobre a pilha de tecnologia, mas forneça valor comercial, tais como: manutenção da aplicação, correção de bugs, ajuste de desempenho, etc.
  • Um equilíbrio de conhecimento entre a sintaxe (como escrever código) e questões relacionadas com o back-end (o que escrever).
  • Desenvolvedores que demonstrem compreensão da especificidade da plataforma (que problemas podem surgir, e as formas certas de resolvê-los).
  • Não espere que os candidatos conheçam a sua pilha de tecnologia de trás para a frente. Assuma que se um desenvolvedor tiver sucesso comprovado em uma pilha, ele pode ter um desempenho de alto padrão em outra pilha de tecnologia.

3.2. Que termos do glossário são importantes de se saber no Node.js (incluindo estruturas, bibliotecas e versões linguísticas)?

AbriviaçõesNó = Nó.js JS = JavaScript. ES = ECMAScript (ECMAScript é o nome da norma, JavaScript é a sua implementação - formalmente. Mas na prática, as pessoas o chamam de JavaScript quando deveriam chamá-lo de ECMAScript (a especificação), no entanto, a maioria dos desenvolvedores não se importa).
JavaScript / ECMAScriptProgramação assíncrona: eventos, promessas, async/await, rxjs Object-Oriented Programming: Estruturas de dados JS, herança de protótipos, classes ES6 Programação funcional: funções de ordem superior, fechamentos Mecanismos transversais: coerção (tipecasting)
WebServicesHTTP protocol, WebSocket protocol HTTP: Fetch, Axios, Request, WebSockets: Socket.IO
Ferramenta Node.jsEstruturas: Express, Koa, Nest.js, Fastify Transpilers: Babel, TypeScript, Flow Bundlers: Webpack, Parcel, Snowpack Pacotes populares: NVM, Chokidar
TestesTipos: testes unitários, testes funcionais, testes de integração, testes E2E Ferramentas (frameworks & bibliotecas): Karma, Jasmine, Selenium, Jest, Mocha, Sinon, Chai (e muitos outros) Diversos: pirâmide de testes (muito mais testes unitários que o e2e), testes de instantâneos, testes de regressão, zombaria
Bases de dadosSQL, MySQL, MSSQL NoSQL: MongoDB, CouchDB e muitos outros ORMs (mapeadores objeto-relacionais)
DesenhoMonólitos, microserviços, CQRS Design Patterns: fachada, fábrica, construtor, composto, mediador, máquina de estado, estado, cadeia de responsabilidade... e muitas, muitas mais preocupações: escalabilidade, monitoramento, registro, implantações, integração/ implantação contínua, infra-estrutura de nuvem

3.3. Que versões são completamente diferentes? Que versões são semelhantes umas às outras?

ES6 é ECMAScript v6 (lançado em 2015), foi um grande avanço com o qual as pessoas se relacionam, ou seja, o novo JavaScript (antes que as pessoas considerem o antigo JS).

As versões Node.js são enviadas principalmente com melhor suporte para versões ECMAScript (JavaScript) recentes, elas são melhoradas incrementalmente, mas não revolucionárias.

Triagem técnica das habilidades do desenvolvedor Node.js durante uma entrevista por telefone/vídeo

4.1. Perguntas que você deve fazer sobre um desenvolvedor do Node.js experiência. Por que você deveria fazer cada uma dessas perguntas?

  • Você já esteve envolvido em testes automáticos de suas aplicações anteriores? O que você acha que fez bem e o que você mudaria hoje?
    • Os testes são um elemento essencial do desenvolvimento de software. Os desenvolvedores recebem as ferramentas para inovar e cabe a eles se as utilizam eficientemente. Em relação aos testes, é importante que assim seja:
      • Os testes são pequenos e funcionam rapidamente. Os desenvolvedores estão menos ansiosos para realizar testes continuamente, o que leva muito tempo.
      • Cada teste deve verificar explicitamente uma variável (a menos que seja o E2E que testa, como o nome sugere, é de ponta a ponta). Se uma característica estiver quebrada, é melhor ter um teste falhando ao invés de centenas de testes falhando.
      • Os testes não devem cobrir elementos que são verificados por outras ferramentas, etc. As estruturas de dados podem ser validadas por validadores de esquemas JSON, verificadores de tipo (TypeScript, Flow, ...), etc.
      • Uma cobertura adequada através de testes deve dar aos desenvolvedores confiança no código que eles criam (isto é, se os testes passarem, o código está funcionando corretamente). Um desenvolvedor que não tenha mantido testes pode não sentir a necessidade de criá-los e não perceber como os testes apropriados ajudam no longo prazo.
  • Você tem trabalhado com microserviços e/ou sistemas distribuídos?
    • Se os produtos de sua empresa lidam com uma escala maciça (de usuários, pedidos, etc.) e requerem alta disponibilidade, então muitas vezes isso leva a sistemas distribuídos, onde apenas uma parte do sistema está sendo escalada. Tudo-em-tudo, um sistema distribuído tem seus próprios padrões e anti-padrões que levam um longo tempo para aprender. Se você precisa enviar sua aplicação para a nuvem (AWS/Azure/GCP, ...) então um desenvolvedor Node.js com sistemas distribuídos seria extremamente valioso.
  • Você tem trabalhado em aplicações em tempo real? Se sim, que processos de negócio o sistema implementou? Qual foi a dificuldade no sistema, em termos de tecnologia?
    • Uma das preocupações mais importantes a lidar em sistemas de grandes empresas é a dos dados em tempo real. Implementar aplicações onde as mudanças de dados a cada segundo trazem consigo as suas próprias peculiaridades, problemas, erros comuns, soluções, padrões e arquitetura, etc. Se o seu sistema lida com dados que mudam frequentemente (por exemplo, rastreamento de serviços postais ou processamento de dados financeiros, que, devido à natureza das finanças, também é extremamente dinâmico) você deve definitivamente fazer esta pergunta para ver se o candidato entende o contexto.

4.2. Perguntas que você deve fazer sobre um desenvolvedor do Node.js conhecimentos e opiniões. Por que você deveria fazer cada uma dessas perguntas?

  • O que são fluxos Node.js, o que significa transmitir dados - e por que isso é importante?
    • O fluxo de dados é uma certa forma de trocar os dados entre o servidor e o cliente. Na maioria dos sistemas, uma solicitação completa é enviada; e uma resposta correspondente, uma resposta completa é recebida, mas esse não é o caso dos fluxos. Em fluxos, a resposta é devolvida em vários pedaços (streamed em tempo real, peça por peça). É extremamente importante porque afeta o desempenho de baixo nível do sistema. Muitas vezes, um cliente pode começar a processar pedaços (pedaços) da resposta sem ter a resposta completa. Isto é mais difícil, mas reduz o tempo de espera desnecessária. Um desenvolvedor experiente do node.js deve ter experiência com o uso de fluxos de nós.
  • Por que o package-lock.json deve ser comprometido com o repositório e o que ele contém?
    • Praticamente todo desenvolvedor sabe que um arquivo package.json, o arquivo principal de um projeto de nó, deve ser comprometido e rastreado por um sistema de versionamento (por exemplo, git). Mas nem todos sabem sobre o package-lock.json e ele é colocado no npm. Enquanto package.json lista explicitamente todas as dependências que nós diretamente uso, package-lock.json inclui a árvore inteira de dependências. As versões de todos os pacotes são explicitamente listadas e, quando a aplicação é construída em uma máquina de construção, essas versões exatas seriam levadas em conta. Por quê? Porque se obtivermos um erro em uma máquina de compilação, precisamos saber as versões exatas para reproduzir o erro em máquinas locais. Graças a submeter o package-lock.json ao repo, é fácil.
  • Há um ditado comum na programação, que diz que "há 2 coisas difíceis na programação: 1. Cache invalidação". Por favor, explique o que é invalidação de cache e porque é considerado difícil.
    • Caching é lembrar os cálculos para mais tarde, para que sempre que a mesma pergunta for feita novamente, já tenhamos a resposta certa. Cache invalidação é quando sabemos que a base para o cálculo mudou e por isso o resultado lembrado está errado. Uma vez que está relacionado com a base antiga, sabemos que esta peça de informação em cache deve ser limpa (invalidada). Em sistemas grandes, onde o preço de uma ordem pode depender de múltiplos fatores, alguns deles mudam e outros não. É difícil não perder um certo caminho (uma mudança deve ser seguida por uma invalidação da cache) ou não o fazer com demasiada avidez. Na maioria dos sistemas, a invalidação do cache tem de ser programada explicitamente.

4.3. Questões comportamentais que você deve perguntar a um desenvolvedor do Node.js. Por que você deve fazer cada uma dessas perguntas?

  • Imagine que você se junta a uma equipe de desenvolvedores que mantém um produto estável, mas que está bastante mal escrito. A entrega de novas funções e a melhoria do valor do negócio leva mais tempo do que o esperado. Como você tentaria ajudar a equipe quando você se juntasse a eles?
    • O que é importante aqui é como o candidato tenta ajudar. Se o candidato se esforçaria para explicar como algo deve ser feito corretamente (por exemplo, como um professor, e o que já foi feito estava errado) ou se tentaria ouvir os colegas de equipe sobre o porquê de terem atuado de tal forma e encontrá-los onde estão. Basicamente, um perito técnico que força decisões alegando os seus próprios conhecimentos não é um bom jogador de equipa.
  • Alguma vez você já se viu em uma situação em que sabia que tinha introduzido um bug que mais tarde fez o sistema de produção falhar (ou toda a plataforma ou uma única funcionalidade)? Se sim, o que você aprendeu com ele?
    • Até certo ponto, esta pergunta verifica a honestidade. Desenvolvedores juniores podem não ter tido a chance de lançar um bug severo, mas os desenvolvedores seniores definitivamente tiveram. O programador perfeito não existe, ou seja, alguém que cometeu zero erros. Então a pergunta acena se as consequências de um erro foram dolorosas para o candidato. Além disso, aprender com os erros é extremamente importante a longo prazo, pois os desenvolvedores precisam construir hábitos que eliminem as possibilidades de introduzir bugs. Especialmente quando se trata de aplicações back-end. Afinal de contas, não podemos ser melhores da próxima vez se não analisarmos porque nos encontramos numa situação crítica agora.
  • O que você considera a sua maior conquista?
    • Esta questão é deliberadamente deixada em aberto porque permite ao desenvolvedor escolher entre áreas distintas, como fornecer valor ao negócio, exemplificar o trabalho em equipe e a cooperação, bem como conhecimentos técnicos especializados. Portanto, é interessante observar o que o candidato considera importante para eles. Na verdade, um equilíbrio entre todos os 3 seria mais apreciado. Você pode ser muito céptico em relação a um candidato se ele valoriza apenas a perícia técnica, uma vez que é isso que você deve esperar mais tarde quando trabalhar para a sua empresa.

Triagem técnica das habilidades do desenvolvedor do Node.js usando um teste de codificação online

Contratar um grande desenvolvedor do Node.js pode representar um desafio significativo, especialmente se você mesmo estiver fazendo todo o trabalho sujo. Para projetos que requerem um compromisso e orçamento a longo prazo, você precisa de uma empresa de desenvolvimento de software com um sólido processo de recrutamento.

5.1. Que teste online para as habilidades de desenvolvedor do Node.js você deve escolher?

Ao procurar o direito Teste de habilidades de desenvolvedor do Node.js você deve certificar-se de que corresponde aos seguintes critérios:

  • O teste reflete a qualidade do trabalho profissional que está sendo realizado
  • A duração não é muito longa, uma a duas horas no máximo.
  • O teste pode ser enviado automaticamente e é simples por natureza.
  • O nível de dificuldade corresponde às capacidades do candidato.
  • O teste vai além de verificar se a solução funciona - ele verifica a qualidade do código e como ele funciona em casos de bordas
  • É o mais próximo possível do ambiente natural de programação e permite que o candidato tenha acesso a recursos relevantes
  • Proporciona ao candidato a oportunidade de utilizar todas as bibliotecas, estruturas e outras ferramentas com as quais se depara regularmente.

5.2. DevSkiller pronto para usar Node.js testes de habilidades de desenvolvedores online

Os testes de codificação DevSkiller usam nossa metodologia RealLifeTesting™ para espelhar o ambiente de codificação real em que seu candidato trabalha. Ao invés de usar algoritmos obscuros, os testes DevSkiller exigem que os candidatos construam aplicações ou recursos. Eles são classificados de forma completamente automática e podem ser levados para qualquer parte do mundo. Ao mesmo tempo, o candidato tem acesso a todos os recursos que normalmente utilizaria, incluindo bibliotecas, frameworks, StackOverflow e até mesmo o Google.

As empresas usam o DevSkiller para testar candidatos usando sua própria base de código de qualquer parte do mundo. Para facilitar, o DevSkiller também oferece uma série de testes pré-fabricados de habilidades em ciências de dados como os que estão aqui:

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

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

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

JavaScript | React, Redux | Livro de Endereços - Implementar funcionalidades em falta de uma pequena aplicação web React construída em cima do Redux.

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

JavaScript | Node.js | Livro de endereços - Implementar pontos finais para buscar a lista de contatos (com uma correspondência de fase e limitação de resultados), buscar detalhes de um único contato e apagar o contato dado.

Lacunas de código

avaliação do conhecimento de MongoDB

TypeScript
MÉDIO
Competências testadas
Duração
126 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 | NestJS | Coffee Recommendation API for My Barista app - Implementar o serviço NestJS REST para avaliação e recomendação de tipos de café.

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

Tarefa de programação Front End - Nível: Sênior

JavaScript | React, Redux | Livro de Endereços - Implementar funcionalidades em falta de uma pequena aplicação web React construída em cima do Redux.

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

JavaScript | Node.js | Livro de Endereços - Implementar pontos finais para ir buscar a lista de contatos (com uma correspondência de fase e limitação de resultados), buscar detalhes de um único contato e apagar o contato dado.

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

Perguntas de escolha

avaliação do conhecimento de Java

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

Java | Find duplicates - Implemente o método findDuplicates que retorna uma nova lista contendo duplicatas que ocorreram N-times.

Perguntas de escolha

avaliação do conhecimento de ES6, JavaScript, Datilografia

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

JavaScript | Node.JS | Websocket server - Complete o arquivo server.js para terminar o servidor WebSocket.

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

Perguntas de escolha

avaliação do conhecimento de CSS, HTML

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

Python | Django | Aplicação de pedido de férias | CRUD Básico - Completar uma aplicação para gerir pedidos de férias de funcionários usando o framework Django.

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

JavaScript | Consultas nas Redes Sociais | Encontrar potenciais gostos - Implementar uma função para encontrar livros que são considerados como potenciais gostos.

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

Perguntas de escolha

avaliação do conhecimento de JavaScript, Desenvolvimento Web, Nó.JS, Ember, Ember 2.x

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

JavaScript | Analisador de Pedidos | Encontre uma quantidade total encomendada de um produto para cada dia da semana - Implementar PedidosAnalyzer#averageDailySales método que irá retornar um mapa com um nome de um dia da semana como chave e uma soma da quantidade encomendada para um determinado produto id como um valor.

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

Perguntas de escolha

avaliação do conhecimento de ExpressJS

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

Angular 2+ Aplicação de Bloco de Notas

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

Nó.JS - Mongo - Relatório do curso

Lacunas de código

avaliação do conhecimento de MongoDB

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

Perguntas de escolha

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

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

JavaScript | Node.js | Server Side Step Tracker - Finalizar a implementação de Nó.js aplicação de fitness exposta API REST e Websocket-API para acompanhamento de passos

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