Cómo evaluar las habilidades de los desarrolladores de Python

Por 28 de febrero de 2017 #!30Jue, 11 Jun 2020 17:22:20 +0200p2030#30Jue, 11 Jun 2020 17:22:20 +0200p-5Europa/Varsovia3030Europa/Varsoviax30 11pm30pm-30Jue, 11 Jun 2020 17:22:20 +0200p5Europa/Varsovia3030Europa/Varsoviax302020Jue, 11 Jun 2020 17:22:20 +0200225226pmjueves=269#!30Jue, 11 Jun 2020 17:22:20 +0200pEuropa/Varsovia6#junio 11th, 2020#!30Jue, 11 Jun 2020 17:22:20 +0200p2030#/30Jue, 11 Jun 2020 17:22:20 +0200p-5Europa/Varsovia3030Europa/Varsoviax30#!30Jue, 11 Jun 2020 17:22:20 +0200pEuropa/Varsovia6# Prueba de codificación, Reclutamiento de IT, Entrevista técnica
Python: preguntas de entrevista a un ingeniero de software

Si estás buscando una persona con habilidades de desarrollo de Python, debes saber que encontrarla es sólo la mitad del viaje. Así que incluso si puedes encontrarlos, puede que te cueste un esfuerzo extra entender qué son realmente las habilidades de Python. El verdadero conjunto de habilidades de Python es algo complejo de entender, pero aquí presentamos a un experto en el campo, Wojtek Erbetowski para sacar el tema a la luz.

1. ¿Qué es Python?

Python es uno de los lenguajes de programación más populares (ocupa el tercer lugar según el Índice TIOBE a partir de diciembre de 2018). Fue lanzado por primera vez en 1991 y ganó su popularidad por ser simple para aprender, pero poderoso en la resolución de problemas. La sintaxis es similar a la de la familia C++, pero está equipada con una variedad de soluciones modernas.

Las principales ventajas de Python son:

  • Curva de aprendizaje plana. Trae a usuarios con poca experiencia técnica, como académicos para la investigación, o empresas para la automatización.
  • Es propiedad de una fundación independiente de software de Python (PSF) y guiada por la comunidad.
  • Poderosas herramientas científicas (por ejemplo, SciPy).
  • Buena documentación y apoyo de la comunidad. Esto incluye muchos grupos de usuarios locales y conferencias.

2. ¿Qué es importante que un reclutador de IT sepa sobre Python?

Ya que Python tiene una variedad de usos. A menudo es difícil distinguir los candidatos de los académicos, desde la programación de redes y aplicaciones web hasta la simple escritura. Sin embargo, a menudo es más fácil para un desarrollador aprender un nuevo Python que cambiar su dominio (por ejemplo, de ciencia de datos a aplicaciones web).

En 2007, se lanzó Python 3.0. Fue rechazado por la comunidad debido a la incompatibilidad inversa. Esto desafía a la comunidad hasta el día de hoy, ya que la cuota de Python 2 y 3 ha sido casi igual hasta el día de hoy.

Python se escribe dinámicamente, lo que facilita la escritura y el desarrollo de pequeñas aplicaciones. A menudo se dice que trae dificultades para construir aplicaciones grandes y duraderas.

3. ¿Cómo verificar las habilidades del desarrollador de Python en la fase de selección?

La exploración es agotadora, ardua y lleva mucho tiempo. Normalmente, la IT reclutadores a su vez para reanudar la selección, la selección técnica (pruebas de codificación) y las entrevistas para evaluar las habilidades de la pitón.

A continuación encontrará algunos útiles y prácticos reclutamiento consejos para verificar las habilidades de la pitón usando cada método.

3.1. Examen técnico de las habilidades de la pitón basado en el currículum vitae

Afortunadamente (para el reclutamiento), Python tiene menos bibliotecas y tecnologías para investigar, que por ejemplo Java. Sin embargo, una serie de cosas pueden ser confusas.

Lengua pythonVersión popular 2.6, 2.7, 3.4, 3.5
Marcos web en PythonDjango, Frasco, Botella, Tornado, web2py
ORMSQLAlchemy, Django ORM
Construir herramientasHerramientas de configuración, pip, tox
Los marcos de pruebaUnitTest, py.test, nariz
AsyncioPitón 3.5, Tornado, Retorcido
Herramientas de análisis de datosNumPy, SciPy, Pandas

Lo más destacado:

  • Python 2 y 3 son muy diferentes. Python 2.7 es la última versión de Python 2. La versión de Python 3 está evolucionando y la última versión es la 3.6.
  • Asyncio sólo se encuentra en Python 3.
  • Tornado, Twisted, Gevent son todas librerías para programación asíncrona.
  • Django es, de lejos, el marco de trabajo más popular de la web.
  • La biblioteca de pruebas unitarias está incorporada en el idioma, por lo que rara vez se menciona por separado.

Certificación

La Comunidad Python no ofrece ningún programa de certificación. Por lo tanto, es raro encontrar algún certificado (independiente) para el lenguaje o las bibliotecas de Python.

Los desarrolladores de la pila completa

Fullstack a menudo significa que un desarrollador de Python también puede crear páginas HTML con CSS y JavaScript. Las habilidades del frontend son bienvenidas y la mayoría de Conocimientos de exploración de JavaScript se aplica aquí.

3.2. Proyección técnica de habilidades en Python durante una entrevista telefónica/video

Como es bastante difícil sacar conclusiones fiables sobre las habilidades de programación del candidato a partir del propio currículum, los reclutadores de TI a menudo realizan una entrevista telefónica o en vídeo. Tal entrevista da la oportunidad de hacer preguntas sobre sus habilidades en Python. En muchas empresas esta entrevista técnica por teléfono o vídeo es la base para tomar la decisión de invitar a alguien a una entrevista técnica in situ con el equipo de TI o no, por lo que vale la pena elegir y hacer las preguntas técnicas adecuadas.

Como las preguntas en sí mismas pueden variar según el puesto para el que se esté reclutando y las habilidades específicas que se quieran verificar, en base a mi experiencia recomendaría lo siguiente general preguntas para saber más sobre las habilidades del candidato en pitón:

A. Pregunta de la entrevista de Python sobre la experiencia del desarrollador

  • Q1: ¿Con qué tecnologías de las que figuran en su currículum tiene experiencia comercial en los últimos 2 años? ¿Cuáles eran sus responsabilidades? ¿Cuál fue su mayor logro?
  • Por qué preguntar a Q1: Haciendo esta pregunta, puede averiguar más sobre la experiencia actualizada del candidato en Python, sus responsabilidades y logros. De esta manera, usted llega a conocer mejor a su candidato.

B. Pregunta de la entrevista de Python sobre los conocimientos y opiniones del desarrollador

  • Q2: ¿Qué bibliotecas de código abierto de Python considera que son valiosas y por qué?
  • Por qué preguntar a Q2: Esta pregunta le permite al candidato demostrar su conocimiento del ecosistema de la Pitón. Además, el candidato puede señalar lo que tiene en cuenta al elegir una determinada tecnología. Como preguntas de seguimiento, también puede preguntar qué ventajas, en su opinión, tienen las soluciones comerciales sobre el código abierto y viceversa. Esto muestra cómo piensa el candidato.
  • Q3: Me he dado cuenta de que has incluido el marco X en tu currículum. ¿Qué opina al respecto? ¿Es una buena elección?
  • ¿Por qué preguntarle a Q3: Una pregunta tan abierta permite a un candidato demostrar sus conocimientos si los tiene. También puede jugar al abogado del diablo basado en sus respuestas "Pero ¿por qué no usar el marco Y para eso?". Así puedes ver cómo los candidatos eligen una tecnología, justifican sus elecciones y si sus opiniones coinciden con las de tus equipos informáticos.

C. Pregunta de la entrevista de Python sobre la toma de decisiones del desarrollador en relación con la tecnología Python

  • Q4: ¿En qué etapa se unió a los proyectos recientes? ¿Participó en la elección de la tecnología o en la configuración del proyecto? En caso afirmativo, ¿qué tecnología eligió o recomendó para el proyecto y por qué?
  • Por qué preguntar a Q4: Estas preguntas muestran no sólo cómo un candidato toma decisiones en relación con la tecnología, sino también si se le incluyó en la toma de decisiones. Especialmente importante si estás buscando a alguien con experiencia.

D. Pregunta de comportamiento para el desarrollador de la pitón

  • Q5: Piensa en la decisión del proyecto de programación que tomaste y que fue un fracaso. ¿Por qué crees que fue un error? ¿Por qué sucedió? ¿Podría hacerse algo diferente para convertirlo en un éxito? ¿Qué medidas tomaste para mejorar la situación? ¿Qué aprendiste de esta experiencia?
  • ¿Por qué preguntarle a Q5: Este tipo de preguntas le ayudará a averiguar cómo percibe el candidato sus decisiones, saca conclusiones y cuánto aprende de su experiencia anterior.

3.3. La proyección técnica de las habilidades de Python con en línea prueba de codificación

Las pruebas de codificación en línea pueden ser una gran manera de evaluar las habilidades de los pitones. A continuación encontrarás información sobre cómo puedes usar las pruebas de programación y cuáles elegir.

Pruebas de codificación de Python en línea - el método principal o adicional para la detección

Algunas empresas utilizan la prueba de programación como complemento de la selección de candidatos después de que se analiza el currículum y se realiza una entrevista por teléfono o vídeo. Pero cada vez más compañías recurren a las pruebas de codificación como primer método de selección de programadores. Las compañías hoy en día tienden a invitar a todos los candidatos que solicitan un determinado puesto a hacer una prueba. De esta manera, los reclutadores sólo dedican su tiempo a los candidatos que aprobaron el examen, demostrando que tienen habilidades de programación en Python. Por otro lado, no se pide a los candidatos que dediquen demasiado tiempo al proceso de reclutamiento desde el principio, sino que completen rápidamente el test (normalmente en una hora) cuando les convenga tanto en términos de tiempo como de lugar.

Prueba de codificación online de Python, ¿cuál elegir?

Hay muchas pruebas de codificación en línea de Python en el mercado, pero normalmente verifican los conocimientos del candidato en lugar de las habilidades de programación y las capacidades para resolver problemas de codificación de la vida real. Por eso a muchos programadores experimentados no les gusta ese tipo de evaluación y, lo que es más, no son capaces de obtener una buena puntuación ya que no pueden mostrar su experiencia y habilidades en la resolución de problemas de programación de la vida real.

Entonces, ¿qué características debería tener una buena prueba de codificación? Abajo encontrarás mis 5 características más importantes que deberías buscar:

  1. Las pruebas de programación en Python deben verificar no sólo los conocimientos de Python en cuanto a la tecnología en general, sino también los marcos y las bibliotecas;
  2. Las pruebas de codificación de Python deberían consistir en un par de tareas, no sólo pruebas de elección múltiple, pero sobre todo, tareas de programación cuya dificultad debe corresponder a las responsabilidades que tendrán los candidatos si consiguen el trabajo (las pruebas no deben basarse en tareas algorítmicas ya que así no se puede verificar si un candidato puede resolver los desafíos de codificación de la vida real);
  3. Preferiblemente, las tareas de programación en Python deben ser preparadas en el código base de la empresa, ya que es la mejor manera de imitar los retos que el candidato tendrá una vez que consiga el trabajo;
  4. No tiene sentido prohibir la programador para utilizar fuentes externas. La mejor manera es crear un ambiente similar al que tendrían en el trabajo, por lo que un examen a libro abierto es mucho más apropiado. Además, el candidato debe ser capaz de utilizar su IDE preferido, al igual que lo hace a diario.
  5. Las pruebas de codificación también pueden incluir una tarea con desafíos de revisión de código para probar las habilidades de Python. Esto da una información muy precisa sobre la experiencia del candidato, su enfoque de la calidad del código y la eficiencia de la depuración y la búsqueda de trampas. Tal evaluación debería ser obligatoria al reclutar a Python senior desarrolladores.

Nota del editor: Este post fue publicado originalmente el 28 de febrero de 2016. Ha sido ampliamente actualizado para representar la última información técnica y las mejores prácticas.

Autor - Wojtek Erbetowski

Wojtek_Erbetowski Pyhton habilidades de desarrollo

Wojtek es un líder práctico con ~10 años de experiencia en APIs / aplicaciones web en Python y Java. Trabajó como Jefe de Ingeniería @ Polidea, CTO @ GrowBots y participa activamente como Líder de la Comunidad @ Warsaw Java User Group y Móvil Varsovia y organizador del MCE Conferencia. Colaborador de la biblioteca de código abierto, desarrollador de software, defensor ágil. Trabajó en varias áreas de negocios, por ejemplo, ventas, publicidad en medios antiguos y nuevos, mercadeo por correo electrónico, corporación farmacéutica, portales financiados por la Unión Europea, librería al por mayor y más) y convirtiendo las necesidades del negocio en aplicaciones especializadas.

DevSkiller listo para usar las pruebas de evaluación de codificación Python en línea

DevSkiller ayuda a las empresas en el proceso de contratación de TI proporcionándoles una infraestructura que les permite probar las habilidades de programación de los candidatos en el entorno que imita el primer día de experiencia laboral. Permitimos a las empresas utilizar su propia base de código, proyectos completos de TI utilizando marcos y bibliotecas, para probar a los programadores en línea. Sin embargo, también tenemos algunas pruebas de codificación en Python listas para usar, que pueden ser utilizadas en su campaña de reclutamiento técnico.

Python
JUNIOR
Habilidades probadas
Duración
65 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de Python

Tarea de programación - Nivel: Fácil

Python | PySpark | ML Logs Transformer - Completa la implementación de la tubería de transformación de los registros.

PySpark
JUNIOR
Habilidades probadas
Duración
60 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Tarea de programación - Nivel: Fácil

Python | PySpark | ML Logs Transformer - Completa la implementación de la tubería de transformación de los registros.

Ubuntu
SENIOR
Habilidades probadas
Duración
60 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Tarea de DevOps - Nivel: Duro

DevOps | Ubuntu | Ansible Dynamic Inventory plugin - El propósito de esta tarea es comprobar las habilidades de escritura del plugin Ansible (habilidad avanzada de Ansible). Para completar esta tarea, el candidato debe conocer algún lenguaje de programación.

CentOs
SENIOR
Habilidades probadas
Duración
60 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Tarea de DevOps - Nivel: Duro

DevOps | CentOs | Ansible Dynamic Inventory plugin - El propósito de esta tarea es comprobar las habilidades de escritura del plugin Ansible (habilidad avanzada de Ansible). Para completar esta tarea, el candidato debe conocer algún lenguaje de programación.

Ciencia de los datos
JUNIOR
Habilidades probadas
Duración
45 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Tarea - Nivel: Fácil

SQL | Catálogo de sellos | Los tres precios más altos - Seleccione tres sellos (precio y nombre) con el precio más alto.

Tarea de programación - Nivel: Fácil

Python | Pandas | Analizador de tablas HTML - Implementa una función para convertir una tabla HTML en un archivo con formato CSV.

Python
JUNIOR
Habilidades probadas
Duración
35 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de Python

Tarea de programación - Nivel: Fácil

Python | Pandas | Analizador de tablas HTML - Implementa una función para convertir una tabla HTML en un archivo con formato CSV.

Python
JUNIOR
Habilidades probadas
Duración
63 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de Aprendizaje automático, PyTorch

Tarea de programación - Nivel: Fácil

Python | PyTorch, Computer Vision | Model Builder - Completa la implementación de un modelo de entrenamiento.

Django
SENIOR
Habilidades probadas
Duración
90 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Tarea de programación - Nivel: Duro

Python | Django | Aplicación de Eventos Deportivos - Implementa una aplicación que agrega resultados deportivos.

Python
MIDDLE
Habilidades probadas
Duración
70 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de Python

Tarea de programación - Nivel: Medio

Python | Django 2.2.x | Aplicación de Inventario de la Librería - Termina la implementación de la funcionalidad CRUD usando CBV.

Python
MIDDLE
Habilidades probadas
Duración
120 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de Python

Tarea de programación - Nivel: Medio

Python | Informe de ventas de vehículos - Implementar una aplicación para crear informes basados en el almacén de datos de ventas de vehículos.