Code challenges en las entrevistas, ¿buenos o malos?.

Los code challenges son exámenes prácticos con un nivel alto de dificultad y un corto tiempo para resolverlos. Estos son una herramienta que es usada por las compañías para filtrar a los candidatos.

Estos pueden ser distintos dependiendo de la empresa o equipo que los aplique. Puedes hacer un challenge con una herramienta en línea como HackerRank, un pizarrón en blanco, un IDE, un editor de texto o en una hoja de papel. También, la dificultad puede variar; puedes estar ante un problema que se resuelve con unas cuantas líneas de código, como encontrar ciertos números primos, divisores, o cualquier problema que solo le permita averiguar a tu entrevistador si  eres competente. No creo que tengas problemas con estos últimos.

Los code challenges de los que te voy a hablar son los que se emplean en las empresas de alto nivel, como las FAANG. Hablamos de pruebas difíciles, aun para los programadores más experimentados, que requiere conocimientos teóricos avanzados, resolución de problemas complejos, optimización, y límite de tiempo.  Si te aplican uno de estos exámenes, vas a sufrir.

Los code challenges no son escenarios reales.

Llevo casi 14 años en este mundo, y solamente en un puñado de ocasiones me he sentado a hacer código en un pizarrón. Tampoco he tenido que resolver un problema complejo con la mejor solución posible y límite de tiempo. Los problemas reales en el mundo de desarrollo necesitan un tiempo para ser analizados, entendidos y solucionados. Cuando aplicas una solución compleja para un problema de negocios, lo harás en una serie de iteraciones, tu primer intento fallara, obtendrás feedback, mejoraras tu diseño y lógica; y después de una serie de iteraciones, llegaras a una solución óptima.

¿Cuál es el proposito de los code challenges?.

El proposito de estos es filtrar gente, buenos y malos. Ellos saben perfectamente que es un test de este tipo, es un escenario artificial y pueden perder recursos valiosos en el camino. No todos solucionamos los problemas del mismo modo. No todos lo buenos devs tienen una lógica impecable. Es posible que seas un programador o programadora muy buena, hagas una prueba de estas y falles miserablemente.

Este tipo de pruebas busca evaluar tu conocimiento de algoritmos y resolución de problemas que son una parte importante de tu formación profesional, pero no las habilidades más importantes que debes tener.

Si fallas, está bien.

Si tomaste una entrevista y no pudiste pasar esta etapa, está bien. ¿Quieres repetir y tienes interés?, puedes estudiar los tópicos que te fallaron e intentarlo la próxima vez. La mayoría de empresas que tienen esta puerta de entrada te dejan hacer el examen pasando determinado tiempo, desde unos meses hasta un año.

Los challenges no son para todo mundo.

En el caso de que estudies, practiques, vuelvas a hacer los tests y sigas fallando. Bueno, no seas cruel contigo. El valor del trabajo va más allá de tener lógica y capacidad para resolver problemas. Si este tipo de pruebas es tu punto débil, no trabajes en tus debilidades, mejor, trabaja en tus fortalezas.

¿Dónde está tu valor como profesional?.

Tu trabajo debe solucionar problemas, aportar valor a los usuarios y a los clientes. Un programa eficiente y óptimo no sirve de nada si no soluciona las problemáticas del mundo real. Para esto hay que conocer y analizar el negocio, adquirir conocimiento de este y crear requerimientos que soluciones que aporten valor. Para esto, se necesita hablar, entender a personas, negociar, planear, tomar decisiones. Todo esto, no lo va a evaluar el code challenge. Como profesional, eres más que una máquina de producción de algoritmos.

Te invito a que hagas un proceso de evaluación de ti. Elige tus puntos fuertes y trabájalos. Busca empresas que le den valor a esto.

Por ejemplo: en mi actual proyecto. Las habilidades de análisis y comunicación ponderan más que la excelencia a la hora de construir un algoritmo. Las historias de usuario requieren de un profundo análisis, que puede llevar días, incluso todo el sprint; he trabajado historias largas, que su resultado es solo un par de líneas de código y unos cuantos tests unitarios. No se necesita de un super programador que logre invertir un árbol binario en 10 minutos. Se necesita de un dev que entienda del problema y lo resuelva bien, a la primera.

No todas las empresas se van a ajustar a tu perfil, muchas si lo harán. Incluso muchas deben estar buscando tu perfil. ¿Sabes cuáles son tus fortalezas?, ¿sabes cómo vender tus fortalezas profesionales?

Conclusiones.

Todos odiamos los code challenges, son injustos, irreales, y no sirven para demostrar que tan bueno o malo es un dev. Si los fallas, no te gustan, está bien. Si quieres entrar a una empresa, y esta te pone code challenge como parte su filtro. Únicamente te quedará estudiar.

He escuchado de devs, que activamente rechazan cualquier oferta de trabajo que implique un challenge. Es una posición válida, el challenge agrega frustración, estrés, y hasta culpa a la persona que lo resuelve. Si no quieres pasar por esto, se vale decir que no a las empresas. En este momento, hay demasiadas ofertas de trabajo, puedes darte el lujo de decir que no.

Autor imagen: Caique Gomes

Gustavo Sánchez
Últimas entradas de Gustavo Sánchez (ver todo)

Soy especialista en escribir software de calidad. Mediante el uso de marcos de trabajo, técnicas y automatización de procesos he podido reducir los costes operativos de los sistemas de la empresa. Sistemas confiables y adaptables producen clientes felices.