Cada vez más empresas utilizan el reto HackerRank para procesar a sus candidatos a ingenieros. Si no estás familiarizado con HackerRank, ofrece retos de programación competitivos en los que los desarrolladores compiten tratando de programar de acuerdo con las especificaciones proporcionadas. La presentación de los participantes se califica de acuerdo a la precisión de su salida.
Dada su naturaleza, hay muchos problemas inherentes si la empresa confía demasiado en HackerRank para la selección. HackerRank es como tu examen estandarizado – te pone a prueba más en tus «habilidades de examen» que en tus conocimientos sustantivos.
Me encontré con un artículo de Linkedin que había puesto elocuentemente (uno de) los principales inconvenientes de HackerRack:
Mi conclusión de todo esto es que HackerRank es un pobre indicador de las capacidades de resolución de problemas de un desarrollador, y como muchas de estas cosas sólo es realmente bueno en la evaluación de una cosa, a saber, lo bueno que el candidato es en completar las pruebas de HackerRank. – Ten cuidado con HackerRank, Richard Linnell
Lo mismo ocurre con Kaggle. Acabo de hablar con un candidato sobre cómo hizo un reto muy por encima de la media sin entender realmente la ciencia de datos en absoluto.
Hay muchos otros artículos que cubren los inconvenientes en el uso de HackerRank (incluyendo uno sobre cómo el uso de HackerRank (y otra plataforma similar) puede arruinar su oportunidad de contratar a un buen desarrollador senior).
Dicho esto, es comprensible que por qué las empresas adoptarían eso para las pruebas iniciales: es rápido, menos costoso y puede filtrar la gente que ni siquiera se molestaría en hacerlo.
Dado que seguirá siendo y probablemente continuará creciendo como una forma de que las empresas seleccionen talentos, nuestro equipo ha elaborado una lista de cosas que puedes hacer para prepararte para el desafío de HackerRank:
- Los desafíos son cronometrados, asegúrate de no estar perturbado y concentrado.
- El 20-30% de tu éxito proviene de la familiaridad con el sistema. Antes de comenzar el desafío de codificación real, pruebe otros, por ejemplo, el calentamiento de algoritmos. Asegúrese de que sabe cómo ejecutar y enviar su código.
- Comprenda los lenguajes de programación permitidos para la prueba. Si el lenguaje de su elección no está disponible, practique otro.
- Por lo general, hay múltiples problemas para resolver en cada desafío y es un error comenzar con el más difícil. Un buen enfoque es resolver los problemas en orden ascendente de dificultad/tiempo. Léalos brevemente primero y decida el orden de implementación.
- Intente minimizar el tiempo de cambio entre problemas después de la implementación. Podrías dedicar un tiempo extra para asegurarte de que es una implementación «definitiva» y no volver a ella de nuevo.
- Cada problema tiene casos de prueba públicos y privados. Su puntuación se basa en ambos. Si la implementación del código pasó todos los casos de prueba públicos, no carne que pasaría todos los casos de prueba privados. Piense en situaciones de borde, por ejemplo, entrada vacía, entrada de un elemento, dos elementos, muchos elementos, etc. El entorno HackeRank le permite ejecutar el código en sus pruebas personalizadas.
- Someta al menos algo para cada problema. Es fácil de capturar algunos puntos, incluso si usted no sabe cómo resolver el problema. Sin embargo, si no sabe cómo resolver todos los problemas, intente resolver al menos uno.
- La preparación en casa marca la diferencia: algunas plantillas podrían ayudar, ya que podría copiarlas y pegarlas durante el desafío. Por ejemplo, BFS/DFS/Búsqueda binaria.
- Practique primero todo lo que pueda. Podrías intentar resolver al menos un problema de cada subdominio algorítmico.
- Un buen resultado no es una magia, es práctica y sudor.
¡Que la fuerza te acompañe! 💪
Bonus:
- Cómo conseguir la máxima insignia de aprendizaje automático en HackerRank (¡por nuestro propio Kirill Pavlov!)
- Cómo descifrar el test de HackerRank: 100% de puntuación de forma fácil – el chico HFT.