Test de Python: cómo evaluar nivel real de código
Pedirle a un candidato que resuelva un acertijo de algoritmos abstracto dice poco sobre si va a escribir buen código Python en el trabajo real. Un test de Python que distingue nivel de verdad se parece más a lo que la persona haría en su primera semana en el puesto: leer datos, transformarlos, manejar errores y dejar algo que otro desarrollador pueda entender después.
Qué evaluar en un test de Python por nivel
Un nivel junior debería poder escribir funciones claras, manejar estructuras de datos básicas como listas y diccionarios con soltura, y entender el manejo básico de excepciones para no dejar que un error rompa todo el programa sin explicación.
Un nivel semi senior debería, además, escribir código modular con buenas prácticas de organización, usar las estructuras de datos correctas según el problema en vez de la primera que se le ocurra, y escribir pruebas básicas para su propio código.
Un nivel senior debería poder diseñar la estructura de un módulo completo, tomar decisiones de rendimiento con criterio, como cuándo usar generadores en vez de listas completas en memoria, y anticipar casos límite que el enunciado del ejercicio ni siquiera menciona explícitamente.
Ejercicios por seniority
Ejercicio junior. Dado un archivo con datos de ventas en formato CSV, pide procesar el archivo y devolver un resumen con el total vendido por categoría, manejando el caso de que el archivo tenga filas con datos faltantes o mal formateados sin que el programa se detenga.
Ejercicio semi senior. Pide construir una pequeña función que reciba una lista de transacciones y detecte duplicados según reglas de negocio específicas, como misma fecha, mismo monto y mismo cliente, optimizando para que funcione razonablemente bien incluso con una lista grande.
Ejercicio senior. Entrega un módulo de código funcional pero con problemas de diseño, como funciones que hacen demasiadas cosas a la vez o manejo de errores inconsistente, y pide que lo refactorice explicando cada decisión de rediseño.
Criterios de corrección
Revisa cuatro cosas en cada ejercicio: si el código resuelve correctamente el problema planteado, incluyendo casos límite razonables; si el manejo de errores es apropiado y no solo silencia excepciones sin criterio; si el código está organizado de forma legible, con nombres de variables y funciones que comunican su propósito; y si la persona puede explicar por qué tomó cada decisión de diseño cuando se le pregunta directamente.
Los mismos cuatro criterios sirven para cualquier lenguaje: en evaluación de código están desarrollados con rúbrica, y en test de SQL aplicados a la capa de datos, que en un rol de Python casi siempre se evalúa junto.
Presta especial atención a cómo maneja datos imperfectos. En el trabajo real, los datos casi nunca llegan limpios, y la forma en que alguien maneja esa realidad dice mucho más sobre su nivel que si conoce de memoria un método poco usado de una librería. Por la misma razón conviene medir con cuidado el peso que le das a un test de algoritmos dentro del proceso.
Cuánto tiempo dar
Para un ejercicio junior, entre 45 y 60 minutos suele ser suficiente. Para un ejercicio semi senior, entre 60 y 90 minutos. Para un ejercicio senior que incluye refactorización y justificación de decisiones, hasta 90 minutos, idealmente con una conversación posterior donde la persona explique su enfoque en vivo.
Dar demasiado tiempo diluye la señal, porque cualquiera puede llegar a una solución razonable con horas ilimitadas. Dar muy poco tiempo mide velocidad bajo presión más que calidad de razonamiento, que rara vez es lo que el rol realmente requiere en el día a día.
Para ver cómo evaluar específicamente el diseño de la capa de datos y APIs en un rol backend con Python, en prueba de backend está la guía completa con ejercicio tipo y rúbrica.
Un test de Python bien diseñado te dice cómo trabaja la persona, no cuánto memorizó. Si quieres aplicar ejercicios por seniority con rúbrica y corrección consistente, puedes agendar una demo y lo vemos con las vacantes que tienes abiertas.
Preguntas frecuentes
¿Se debe permitir consultar documentación durante el test de Python?
Sí, es recomendable. Nadie programa en el trabajo real sin consultar nada, y prohibirlo mide memoria en vez de capacidad real de resolver problemas con las herramientas disponibles.
¿Qué tan importante es evaluar el manejo de librerías específicas como pandas?
Depende del rol. Si el trabajo diario implica análisis de datos, vale la pena incluirlo. Si el rol es de desarrollo de backend general, dominar las estructuras de datos nativas de Python suele ser más relevante que el manejo de una librería específica.
¿Un buen resultado en este test garantiza buen desempeño en el trabajo?
No por sí solo. Es una señal fuerte de capacidad técnica, pero conviene combinarla con una conversación sobre experiencia previa y, si es posible, con una muestra de código real que la persona haya escrito en un proyecto anterior.
¿Debo evaluar la eficiencia del código o solo si funciona?
Ambas cosas, pero con proporción distinta según el nivel. Para un rol junior, que el código funcione correctamente ya es suficiente señal. Para un rol senior, la eficiencia y las decisiones de diseño pesan tanto como la corrección del resultado.
¿Quieres ver Self-AI en acción?
Agenda una demo y descubre cómo tomar mejores decisiones de talento con ciencia e IA.
Artículos relacionados
Evaluación de código: criterios objetivos de revisión
Cinco criterios que hacen que dos evaluadores lleguen al mismo resultado sobre el mismo entregable, y el sesgo que más distorsiona la nota final.
Test de React: qué evaluar y ejercicios de ejemplo
Qué pedir a un junior, a un semi senior y a un senior, con ejercicios concretos y los criterios que separan dominio real de trivia sobre hooks.
Prueba de backend: qué mide una buena evaluación
Un ejercicio de reservas que fuerza a resolver la doble reserva del mismo horario, y la rúbrica para puntuarlo sin premiar el estilo de código propio.