Como examinar as habilidades dos desenvolvedores Python

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

Se você está procurando por uma pessoa com habilidades de desenvolvedor Python, saiba que encontrá-los é apenas metade da jornada. Então, mesmo que você possa encontrá-los, pode ser necessário algum esforço extra para realmente entender o que as habilidades Python realmente são. O verdadeiro conjunto de habilidades Python é uma coisa complexa de entender, mas aqui apresentamos um especialista na área, Wojtek Erbetowski, para trazer o tópico à luz.

1. O que é Python?

Python é uma das linguagens de programação mais populares (terceira no ranking de acordo com a Índice TIOBE a partir de Dezembro de 2018). Foi lançado pela primeira vez em 1991 e ganhou sua popularidade por ser simples de aprender, mas poderoso na resolução de problemas. A sintaxe é semelhante à da família C++, mas está equipada com uma variedade de soluções modernas.

As principais vantagens do Python são:

  • Curva de aprendizagem plana. Traz usuários com pouca experiência técnica, como acadêmicos para pesquisa, ou negócios para automação.
  • É de propriedade de uma Python Software Foundation (PSF) independente e guiada pela comunidade.
  • Poderosas ferramentas científicas (por exemplo, SciPy).
  • Boa documentação e apoio comunitário. Isto inclui muitos grupos de utilizadores locais e conferências.

2. O que é importante para um recrutador de TI saber sobre Python?

Uma vez que Python tem uma variedade de usos. Muitas vezes é difícil distinguir candidatos de académicos, através de programação de rede e aplicações web a simples scripting. No entanto, muitas vezes é mais fácil para um desenvolvedor aprender um novo Python do que mudar seu domínio (por exemplo, Data Science para Aplicações Web).

Em 2007, o Python 3.0 foi lançado. Ele foi rejeitado pela comunidade devido a incompatibilidade retroativa. Isso desafia a comunidade até hoje, já que a Python 2 e 3 compartilham marcou quase igualmente até hoje.

Python é datilografado dinamicamente, o que facilita a escrita de scripts e pequenas aplicações. Diz-se frequentemente que traz dificuldades na construção de aplicações grandes e duradouras.

3. Como verificar as habilidades do desenvolvedor Python na fase de triagem?

A triagem é cansativa, árdua e demorada. Normalmente os recrutadores de TI voltam-se para retomar a triagem, a triagem técnica (testes de codificação) e as entrevistas para avaliar as habilidades Python.

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

3.1. Triagem técnica das habilidades do desenvolvedor Python com base no CV

Felizmente (para o recrutamento), Python tem menos bibliotecas e tecnologias para examinar do que, por exemplo, Java. No entanto, uma série de coisas podem ser confusas.

linguagem Python Versão popular 2.6, 2.7, 3.4, 3.5
Estruturas web Python Django, Frasco, Garrafa, Tornado, web2py
ORM SQLAlchemy, Django ORM
Construir ferramentas Setup-tools, pip, tox
Estruturas de teste UnitTest, py.test, nariz
Asyncio Python 3.5, Tornado, Twisted
Ferramentas de análise de dados NumPy, SciPy, Pandas

Destaques:

  • Python 2 e 3 são muito diferentes. Python 2.7 é a última (e última) versão de Python 2. A versão Python 3 está evoluindo e a última versão é a 3.6.
  • Asyncio só é encontrado em Python 3.
  • Tornado, Twisted, Gevent são todas bibliotecas para programação assimétrica.
  • Django é de longe a estrutura mais popular da web.
  • A biblioteca de testes unitários está integrada no idioma, portanto raramente mencionada separadamente.

Certificação

A Python Community não oferece nenhum programa de certificação. Portanto, é raro encontrar quaisquer certificados (independentes) para a linguagem ou bibliotecas Python.

Desenvolvedores de pilha cheia

Fullstack muitas vezes significa que um desenvolvedor Python também pode criar páginas HTML com CSS e JavaScript. Habilidades de Frontend são bem-vindas e a maior parte de Conhecimento de rastreio JavaScript aplica-se aqui.

3.2. Triagem técnica das habilidades técnicas Python durante uma entrevista por telefone/vídeo

Como é bastante difícil tirar conclusões confiáveis sobre as habilidades de programação dos candidatos a partir do próprio currículo, os recrutadores de TI geralmente conduzem uma entrevista por telefone ou vídeo. Tal entrevista dá uma oportunidade de fazer perguntas sobre suas habilidades em Python. Em muitas empresas, tal entrevista técnica por telefone ou vídeo é uma base para tomar a decisão de convidar ou não alguém para uma entrevista técnica no local com a equipe de TI, então vale a pena escolher e 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 perguntas gerais para saber mais sobre as habilidades Python do candidato:

A. Pergunta da entrevista Python 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? 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 Python. Assim, você poderá conhecer melhor o seu candidato.

B. Pergunta da entrevista Python sobre os conhecimentos e opiniões dos desenvolvedores

  • Q2: Quais bibliotecas de código aberto Python você considera valiosas e por quê?
  • Porquê perguntar ao Q2: Esta pergunta permite ao candidato demonstrar o seu conhecimento do ecossistema Python. Além disso, o candidato pode apontar o que ele leva em conta na escolha de uma determinada tecnologia. Como perguntas complementares, 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 CV. 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 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 Python sobre a tomada de decisão do desenvolvedor em relação à tecnologia Python

  • 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 python

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

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

Os testes de codificação online podem ser uma ótima maneira de examinar as habilidades Python. Abaixo você encontrará informações de como você pode usar os testes de programação e quais testes escolher.

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

Algumas empresas utilizam o teste de programação como um acréscimo à triagem dos candidatos depois que o currículo é analisado e é realizada uma entrevista por telefone ou vídeo. Mas cada vez mais empresas recorrem aos testes de codificação como o primeiro método de triagem de programadores. Atualmente, as empresas tendem a convidar todos os candidatos que se candidatam a um determinado cargo para fazer um teste. Desta forma, os recrutadores só passam seu tempo em candidatos que passaram no exame, provando que eles têm habilidades de programação Python. Por outro lado, os candidatos não são solicitados a dedicar muito do seu tempo ao processo de recrutamento logo no início - em vez disso, eles rapidamente completam o teste (geralmente dentro de uma hora), conforme sua conveniência, tanto em termos de tempo quanto de local.

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

Existem muitos testes de codificação Python 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, eles 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.

Então, que características deve ter um bom teste de codificação? Abaixo você encontrará as minhas 5 principais características que você deveria estar procurando:

  1. Os testes de programação Python devem verificar não só as habilidades Python no que diz respeito à tecnologia em geral, mas também frameworks e bibliotecas;
  2. Os testes de codificação Python 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);
  3. De preferência, as tarefas de programação Python devem ser preparadas na própria base de código da empresa, pois esta é a melhor maneira de imitar os desafios que o candidato terá assim que conseguir o emprego;
  4. Não faz sentido proibir o programador de utilizar fontes externas. A melhor maneira é criar um ambiente semelhante ao que eles teriam no trabalho, portanto um 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. Os testes de codificação também podem incluir uma tarefa com desafios de revisão de código para testar as habilidades Python. Isto 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 Python.

Nota do editor: Este post foi publicado originalmente em 28 de fevereiro de 2016. Ele foi amplamente atualizado para representar as últimas informações técnicas e as melhores práticas.

Autor - Wojtek Erbetowski

Wojtek_Erbetowski Pyhton desenvolvedor habilidades técnicas

Wojtek é um líder prático com ~10 anos de experiência em APIs / aplicações web em Python e Java. Trabalhou como Chefe de Engenharia @ Polidea, CTO @ GrowBots e participa ativamente como Líder Comunitário @ Warsaw Java User Group e Mobile Warsaw e Organizador da Conferência MCE. Colaborador de biblioteca de código aberto, desenvolvedor de software, defensor da agilidade. Ele estava trabalhando em diversas áreas de negócios, por exemplo, vendas, publicidade antiquada e nova mídia, e-mail marketing, corpo farmacêutico, portais financiados pela UE, livraria atacadista e muito mais) e transformando as necessidades de negócios em aplicativos especializados.

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

Python
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 Python, Centelha

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

Python | PySpark | Modelo de Preferências do Cliente - Implementar uma aplicação de Engenharia de Dados para o pré-processamento de dados de marketing.

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

Perguntas de escolha

avaliação do conhecimento de Keras, Aprendizagem de Máquina, Python

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

Python | NLP, Keras | Sentiment analysis of customer reviews - Realize uma análise de sentimentos e marcação de críticas de clientes de filmes e companhias aéreas, usando um modelo de rede neural multi-output.

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

Perguntas de escolha

avaliação do conhecimento de Aprendizagem de Máquina, Reforço da aprendizagem

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

Python | PyTorch | Aprendizagem do Reforço | Deep Q-Network - Completar a implementação do algoritmo DQN.

Python
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 Python

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

Python | NumPy | Over/Under sampling - Dada a sequência A, criar sequência B de tal forma que B tenha elementos de A e uma dada distribuição através de caixas de igual tamanho.

Python
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 Python

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

Python | PySpark | ML Logs Transformer - Completar a implementação do gasoduto de transformação de logs.

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

Tarefa DevOps - Nível: Difícil

DevOps | Ubuntu | Ansible Dynamic Inventory plugin - O objetivo desta tarefa é verificar as habilidades de escrita Ansible plugin (habilidade avançada Ansible). Para completar esta tarefa, o candidato deve conhecer alguma linguagem de programação.

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

Tarefa DevOps - Nível: Difícil

DevOps | CentOs | Ansible Dynamic Inventory plugin - O objetivo desta tarefa é verificar as habilidades de escrita Ansible plugin (habilidade Ansible avançada). Para completar esta tarefa, o candidato deve conhecer alguma linguagem de programação.

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
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 Python

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
JUNIOR
Competências testadas
Duração
63 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Aprendizagem de Máquina, PyTorch

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

Python | PyTorch, Computer Vision | Model Builder - Complete a implementação de um pipeline de treinamento de modelos.

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.

[Ebook]
[Ebook]
Logotipo DevSkiller Logotipo TalentBoost Logotipo TalentScore