Como analisar as habilidades dos desenvolvedores Java para encontrar o melhor - guia para recrutamento de TI

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

Pode ser um problema sério se você quiser contratar um desenvolvedor Java, mas não tem a menor idéia do que procurar. Você pode pesquisar através do perfil LinkedIn de um candidato ou um currículo o quanto quiser. Se você não conseguir distinguir seu JPA do seu Gradel, você não poderá dizer se o candidato é um bom candidato para o cargo que você quer preencher. Eu escrevi este artigo para reunir todas as informações que você precisa se você é um recrutador de TI em busca de programadores com habilidades em Java.

O que é Java?

Java é uma linguagem de programação compilada, orientada a objetos, similar em sintaxe ao C++. O objetivo é deixar os desenvolvedores de aplicativos "escrever uma vez, rodar em qualquer lugar", o que significa que o código Java compilado pode rodar em todas as plataformas que suportam Java sem a necessidade de recompilação. Uma aplicação escrita em Java tem muito boa performance graças ao uso de um compilador Just-In-Time que analisa continuamente a velocidade do programa e otimiza os pontos freqüentemente executados. Outra vantagem chave do Java é uma gestão automática da memória que permite aos desenvolvedores escrever aplicações sem se preocupar explicitamente com a alocação e desalocação de memória. A partir de 2020, era a linguagem de programação mais popular testado pelos empregadores. Java não é considerada uma linguagem fácil de usar para não-programadores.

Java é para Javascript como carro é para carpete, por isso não confunda estas duas linguagens de programação.

O que é importante para o IT Recruiter saber sobre Java e habilidades Java?

Antes de entrar em detalhes sobre como selecionar as habilidades Java primeiro, deixe-me compartilhar algumas noções básicas que permitirão que você se familiarize mais com esta tecnologia.

Em primeiro lugar, o mundo Java muda frequentemente, por isso a experiência com a estrutura adquirida há 5 anos já não é válida. Tenha isto em mente quando avaliar as habilidades do desenvolvedor Java com base no emprego até agora.

Em segundo lugar, no ambiente Java, o conhecimento de ferramentas e bibliotecas é mais valioso do que o conhecimento da própria linguagem. Sem ele, um programador escreverá tudo sozinho a partir do zero e só perderá tempo. Se um desenvolvedor está familiarizado com bibliotecas e frameworks Java então ele pode usá-lo como lego para fazer o que eles precisam e escrever código somente onde for necessário. Ao fazê-lo desta forma, o trabalho deles é muito mais eficiente.

Por último, mas não menos importante, a experiência comercial é importante. O conhecimento de Java de uma universidade quase nunca é útil para a codificação de negócios. Portanto, a menos que você recrute para uma posição de nível básico ou júnior, você pode pular a avaliação das habilidades em Java com base apenas no ensino universitário e na graduação. Nesse caso, o que é mais importante são os projetos de codificação da vida real do candidato, não precisa ser um projeto comercial - pode ser um hobby ou um projeto de programação de código aberto.

Habilidades básicas para desenvolvedores Java

  1.  linguagem Java
    - Colecções
    - Correntes e expressões lambda
    - Concorrência: Piscinas de fios
    - Fechaduras
    - Características linguísticas modernas: registos, interruptor melhorado
  2. Estruturas
    - Bota da Primavera 2
    - Spring MVC/WebFlux para APIs REST
    - Hibernar e SQL
    - JUnit
    - Spock (requer linguagem Groovy))
  3. Ferramentas
    - Maven e Gradle
    - IDE, por exemplo, IntelliJ IDEA
    - Git
    - Docker
  4. Próximos passos (selecione alguns): (Kotlin, Groovy (para Spock), Programação reativa (Reactor), Kubernetes, React ou Angular 2+ para front-end, desenvolvimento Android)

Como verificar as habilidades em Java na fase de triagem?

O que procurar ao contratar um desenvolvedor Java? A triagem é cansativa, árdua e leva muito do seu tempo. Normalmente os recrutadores de TI recorrem às seguintes técnicas de triagem, desde avaliar as habilidades java com base no currículo, através de uma entrevista ou chamadas de vídeo, até testes de codificação on-line.

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

Triagem técnica das habilidades em Java com base no currículo dos candidatos

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

Claro que toda a informação que você precisa está no currículo - você só precisa encontrar as informações certas. Parece fácil, certo? No entanto, quando você começa a triagem do currículo, você se depara com termos como Hibernate ou JMX, e muito rapidamente você fica confuso se este é o candidato que você está procurando. Se você está recrutando Tech Recruiter para a posição java, então você deve pelo menos estar familiarizado com todas as suas estruturas, ferramentas de construção, etc., a fim de saber o que você está procurando e ser capaz de falar a mesma língua com seus candidatos (ou pelo menos entender o básico de que o candidato está falando).

É por isso que preparámos este glossário básico de Java, basta dar uma vista de olhos.

Glossário Java para recrutadores técnicos
componentes Java EEJava Server Pages (JSP), Servlets, Enterprise Java Beans (EJB), JAX-RS, JAX-WS, Java Message Service (JMS)
frameworks Java WebFaces de servidor Java (JSF), Spring MVC, Vaadin/GWT, Wicket, Play
ORMHibernate, Java Persistence API (JPA), EclipseLink, OpenJPA
ferramentas de construção JavaMaven, Gradle, Formiga
Contentores de aplicações JavaTomcat, JBoss/Wildfly, Undertow, Jetty, WebLogic, WebSphere
ferramentas de teste JavaJUnit, TestNG, Spock, Mockito, Cucumber
estruturas de IoCSpring Framework, Guice, CDI

Agora que sabe o básico, podemos entrar em detalhes. Se você não é um técnico, então é fácil ficar confuso com todos os nomes e abreviaturas de tecnologia diferentes. Se o candidato afirma que conhece EJB, significa que está familiarizado com Java EE? Ou se o candidato conhece a Maven 1, significa que também pode lidar com a Maven 2? Fique calmo, nós o ajudaremos. Continue lendo.

Os nomes mais comuns da tecnologia Java que são utilizados de forma intercambiável:

- JPA, Hibernate, Java Persistence, Java Persistence API,

- Java EE, EJB, Enterprise Java Beans, Enterprise Java,

- JBoss, Wildfly.

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

- O EJB 2.0 é totalmente diferente do EJB 3.0,

- O Java EE 1.4 é totalmente diferente do Java EE 5,

- Java EE 7 é uma versão melhorada de Java EE 6 que é uma versão melhorada de Java EE 5,

- Primavera 2.0 ou Primavera 3.0 semelhante à Primavera 4.0,

- Acegi mudou o seu nome para Spring Security,

- A Maven 1 é totalmente diferente da Maven 2,

- Maven 2 é muito parecido com Maven 3,

- Hibernate 4.x é muito semelhante a Hibernate 5.x,

- GWT 1.x é diferente de GWT 2.x,

- O Struts 1 é totalmente diferente do Struts 2,

- O JPA 2.x é uma versão mais rica do JPA 1.0.

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

- Busca por texto completo: Se alguém conhece um de Lucene, Solr ou ElasticSearch será capaz de lidar com o resto.

- Mapeamento Relacional a Objetos: Se alguém conhece um de Hibernate, EclipseLink, OpenJPA, então será capaz de lidar com o resto.

- Serviços RESTful: Se alguém conhece um dos MVC da Primavera, JaxRS, Jersey, então será capaz de lidar com o resto.

O significado de um certificado Java para avaliar as habilidades Java do desenvolvedor

Os certificados Java são geralmente apreciados pelos empregadores. No entanto, a certificação raramente é um requisito para um candidato. Como recrutador técnico, você tem que ser cauteloso ao avaliar as habilidades de programação Java com base em certificados, porque nenhum deles serve como garantia para as capacidades do desenvolvedor.

Acontece com muita frequência que um programador muito experiente mal passa no exame de certificação e um programador fraco obtém boas notas em tal exame. Porque é que isso acontece? Tais certificados dificilmente verificam as habilidades práticas. Eles normalmente exigem aprendizagem de cor que um desenvolvedor mais experiente encontraria rapidamente na documentação ou seria capaz de verificá-la. Por rapidamente quero dizer, dentro de alguns segundos, usando a sua IDE favorita (software que um programador usa para trabalhar em aplicações), que não está disponível durante o exame. BTW, não poder usar IDE não faz sentido porque diariamente, o programador usa muitas fontes externas, como o IDE, para realizar seu trabalho.

Abaixo você encontrará uma lista de certificação Java dividida em 3 grupos

A. Certificados práticos Java, exigindo experiência prática, garantia de conhecimento profundo do assunto

Certificados de Primavera:

- Spring Professional,

- Spring Web Application Developer,

- Especialista em Integração Empresarial.

B. Certificados Java úteis podem servir como uma prova confiável de conhecimento

- Oracle Certified Master, Java SE 6 - requer habilidades Java de nível bastante bom, mas apenas Java 1.6, que foi lançado há 10 anos (2006),

- Oracle Certified Expert, Java EE 6 Web Services Developer - requer sólidos conhecimentos mas não verifica experiência comercial, portanto, não pode servir como garantia para o sucesso do projeto,

- Oracle Certified Expert, Java EE 6 Java Persistence API Developer - requer conhecimento sólido mas não verifica experiência comercial, portanto, não pode servir como garantia para o sucesso do projeto,

- Oracle Certified Master, Java EE 6 Enterprise Architect - um candidato entende e pode aplicar Java em um nível de arquitetura,

- IBM WebSphere - requer bons conhecimentos do produto mas não verifica a experiência comercial, portanto, não pode servir como garantia para o sucesso do projeto.

C. Certificados Java - conhecimento teórico, pouco uso do ponto de vista empresarial

- Oracle Certified Associate, Java SE,

- Oracle Certified Professional, Java SE,

- Oracle Certified Expert, Java EE 6 JavaServer Faces Developer,

- Oracle Certified Expert, Java EE 6 Web Component Developer,

- Oracle Certified Expert, Java EE 6 Enterprise JavaBeans Developer.

Outras informações sobre um currículo que podem mostrar as habilidades Java de um desenvolvedor

A participação em projetos de código aberto é a informação que vale a pena levar em conta. Se o candidato é um contribuinte em projetos conhecidos e de grande porte, então pode ser de grande valor. Também é importante se um programador tiver experiência em projetos similares de TI que estamos procurando por um funcionário. Criar coisas novas requer um conjunto diferente de habilidades e atributos do que mantê-las.

Triagem técnica de habilidades em Java durante uma entrevista técnica por telefone/vídeo

Como é bastante difícil tirar conclusões confiáveis sobre as habilidades de programação de um candidato a partir do próprio currículo, os recrutadores de TI geralmente conduzem uma entrevista por telefone ou vídeo. Estes tipos de entrevistas oferecem uma oportunidade de fazer perguntas sobre suas habilidades em Java. Em muitas empresas, tal entrevista técnica por telefone ou vídeo é a base para tomar a decisão de convidar ou não alguém para uma entrevista técnica no local com uma equipe de TI, por isso vale a pena fazer as perguntas técnicas certas.

Como as perguntas em si podem variar com base na posição para a qual você está recrutando e nas habilidades específicas que você deseja verificar, com base na minha experiência eu recomendaria seguir as perguntas gerais para saber mais sobre as habilidades Java do candidato:

A. Pergunta da entrevista Java sobre a experiência do desenvolvedor

  • Q1: Com quais tecnologias listadas em seu currículo, você teve experiência comercial nos últimos 2 anos? Quais foram as suas responsabilidades? Qual foi a sua maior conquista?
  • Porquê 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.

B.pergunta da entrevista Javasobre os conhecimentos e opiniões do desenvolvedor

  • Q2: Quais bibliotecas Java de código aberto você considera valiosas e por quê?
  • Porque perguntar Q2: Esta pergunta permite ao candidato demonstrar o seu conhecimento do ecossistema Java. Além disso, o candidato pode indicar o que leva em conta na escolha de uma determinada tecnologia. Como perguntas de acompanhamento, você também pode perguntar quais são, na sua opinião, as vantagens das soluções comerciais em relação ao código aberto e vice-versa. Isto mostra como o candidato pensa.
  • Q3: Reparei que listaste o quadro X no teu currículo. Qual é a sua opinião sobre isso? É uma boa escolha?
  • Porquê perguntar ao Q3: Uma questão tão aberta permite a um candidato demonstrar o seu conhecimento, se o tiver. 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.

C.pergunta da entrevista Javasobre a tomada de decisão do desenvolvedor em relação à tecnologia Java

  • Q4: 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ê?
  • Porquê perguntar ao Q4: 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.

D. Pergunta comportamental para o desenvolvedor java

  • Q5: 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 Q5: 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.

Triagem técnica de habilidades de desenvolvedores Java com testes de codificação online

Os testes de codificação on-line podem ser uma ótima maneira de examinar as habilidades do desenvolvedor Java. Abaixo você encontrará informações sobre como você pode usar os testes de programação e quais testes escolher.

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

Em algumas empresas, os testes de programação são utilizados como um método adicional para triagem dos candidatos, após análise do currículo e entrevista por telefone ou vídeo. No entanto, cada vez mais empresas recorrem aos testes de codificação como o primeiro método de triagem de habilidades de programação. O que eu quero dizer é que a empresa convida todos os candidatos que se candidatam a um determinado cargo a fazer um teste. Dessa forma, por um lado, o recrutador de TI gasta tempo apenas com os candidatos que passaram no exame para que eles provem que têm habilidades de programação Java e, por outro lado, esse candidato mostra mais engajamento, pois já gastou seu tempo no processo de recrutamento e, portanto, é mais provável que participe de todas as suas etapas.

Teste de codificação on-line Java - qual escolher?

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

Existem muitos testes de codificação Java online no mercado, mas normalmente eles verificam o conhecimento do candidato em vez de programar habilidades e habilidades para resolver problemas de codificação da vida real. É por isso que muitos programadores experientes não gostam desse tipo de avaliação e, além disso, não são capazes de obter uma boa pontuação, pois não conseguem mostrar sua experiência e habilidades para resolver problemas de programação da vida real.

Que características deveriam ter tais testes de codificação? Abaixo você encontrará minhas 5 principais características que você deveria estar procurando:

  1. Os testes de programação Java devem verificar não só as habilidades do desenvolvedor Java no que diz respeito à tecnologia em geral, mas também as estruturas e bibliotecas
  2. Os testes de codificação Java devem consistir em um par de tarefas, não apenas testes de múltipla escolha, mas acima de tudo, tarefas de programação, 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 os desafios de codificação da vida real).
  3. De preferência, a tarefa de programação Java deve ser preparada na base de código de uma empresa, pois esta é a melhor maneira de imitar os desafios que o candidato terá assim que conseguir o emprego.
  4. Não adianta proibir o programador de usar fontes externas, a melhor maneira é criar um ambiente como o que eles têm no trabalho, então 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.
  5. O teste de codificação também pode incluir tarefas com desafios de revisão de código para testar as habilidades Java. Ele dá informações muito precisas sobre a experiência do candidato, sua abordagem à qualidade do código e eficiência da depuração e encontrar armadilhas. Tal avaliação deve ser obrigatória ao recrutar desenvolvedores seniores Java.

Perguntas da entrevista Java para 5, 10 e 15 anos de experiência

Ao criar perguntas de entrevista Java para 5, 10 e 15 anos de experiência é importante ter uma variedade de perguntas que não só verificam os conhecimentos académicos do candidato, mas também testam as suas capacidades de programação. Nossos testes de triagem são capazes de fazer isso usando problemas do mundo real ao invés de quebra-cabeças e testes algorítmicos. Isso permite que você verifique as habilidades do desenvolvedor, bem como o conhecimento de frameworks e bibliotecas. Se você está contratando para uma posição júnior, média ou sênior, cada teste Java deve corresponder à posição e incluir perguntas de entrevista Java para 5, 10 e 15 anos de experiência. Isso pode ser feito usando a base de código da sua empresa para que ela possa corresponder ao trabalho diário do cargo.

Perguntas de entrevista para desenvolvedores Java

Pode ser difícil obter uma compreensão completa das habilidades de um candidato a partir de um teste algorítmico. Isto porque pode não incluir perguntas de entrevistas a desenvolvedores Java que permitam aos candidatos demonstrar suas habilidades e conhecimentos atuais. Os testes algorítmicos dependem principalmente da formação universitária do candidato. Como o ambiente Java está sempre mudando, isso não permitirá que o desenvolvedor mostre todas as suas habilidades e não fornece uma visão objetiva de suas habilidades. Devido a isso, os candidatos podem desistir do processo de recrutamento, pois sentem que não foram testados de forma justa. É vital ter perguntas do desenvolvedor Java para entrevistas baseadas em tarefas do mundo real que estejam relacionadas com a posição para a qual você estará contratando. Os testes Devskiller incluem perguntas de entrevista para desenvolvedores Java que simulam situações do mundo real usando nossa metodologia RealLifeTesting.

DevSkiller testes de avaliação de codificação Java online prontos para uso

Na DevSkiller damos às empresas uma infra-estrutura que lhes permite utilizar a sua própria base de código, projectos inteiros de TI utilizando frameworks e bibliotecas, para testar programadores online. No entanto, também temos alguns testes de codificação Java prontos a usar que você pode usar na sua campanha de recrutamento.

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

Perguntas de escolha

avaliação do conhecimento de Java, Primavera, Hibernate

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

Java | Primavera, Hibernate | Aplicação da pimenta mais quente - Implemente métodos dentro da classe PepperDao usando Primavera e Hibernate.

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

Perguntas de escolha

avaliação do conhecimento de Java, Primavera

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

Java | Primavera | Serviço de Câmbio de Moedas - Crie um serviço de câmbio de moedas. Ele deve permitir aos usuários buscar informações sobre taxas de câmbio de moedas e calcular a quantidade de dinheiro que eles irão receber após a troca.

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

Perguntas de escolha

avaliação do conhecimento de Java, Primavera

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

Java | Kafka | Reservas de bilhetes de avião - Implementar o serviço de validação de qualidade de dados que é recebido das agências de viagens.

Bota da Primavera
JUNIOR
Competências testadas
Duração
54 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Java, Bota da Primavera

Lacunas de código

avaliação do conhecimento de Java

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

Java | Spring Boot | Estação de Bicicletas HATEOAS - Terminar a implementação da HATEOAS para a API REST.

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.

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

Perguntas de escolha

avaliação do conhecimento de Java

Lacunas de código

avaliação do conhecimento de Java

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

Java | GetWordFromText and Reverse - Implemente dois métodos que irão retornar as palavras do texto e revertê-las.

Java
JUNIOR
Competências testadas
Duração
35 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 | Simple CRUD using HttpClient - Implementar еasу operações básicas de CRUD, usando Java 11 HttpClient.

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

Perguntas de escolha

avaliação do conhecimento de GQ, Unidade de teste, Testes Manuais, Testes

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

QA | Java, Selenium | Automatização do teste de autenticação multi-factor - Automatize o mecanismo de autenticação em Selenium.

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

Lacunas de código

avaliação do conhecimento de Java, GQ, Selénio

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

QA | Java, Selenium | Extracção de texto e links - O objectivo desta tarefa é testar as capacidades do candidato na recuperação de texto da página. As tarefas incluem esperar que um elemento com texto seja visível, bem como elementos invisíveis.

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

Perguntas de escolha

avaliação do conhecimento de Java, Bota da Primavera

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

Java | Spring Boot, Kotlin | Encomendar microserviço - Implementar uma espinha dorsal do serviço RESTful miscroservice.

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