Como muchos otros niños nacidos en Canadá, estudié en el Conservatorio Real. Este no es solo un edificio físico donde puedes estudiar y realizar, sino también un plan de estudios estandarizado, así como maestros certificados, disponibles en casi cualquier ciudad. Estos últimos realizan exámenes regularmente en todo el país para que los estudiantes puedan avanzar al siguiente nivel de su educación musical.
El ejercicio es necesario para entrenar.
Cada examen tiene un componente técnico y un rendimiento de demostración. Hablemos de la parte técnica. Para obtener una evaluación, debe poder realizar varios ejercicios con su instrumento. En mi caso, en el piano, eran escalas, arpegios, etc. Ni siquiera los recuerdo a todos.
A medida que aprende, los ejercicios se vuelven más complejos, y debe realizarlos en una clave más alta, hasta que en el último examen se le solicite completar cualquier ejercicio en cualquier clave.
Después de 14 años de estudiar el piano, haber aprobado con éxito el examen final, podía realizar cualquier ejercicio en cualquier tecla. Pero después de otros 14 años, ni siquiera puedo recordar los nombres de todos estos ejercicios. ¿Puedo memorizar un pasaje de una obra y jugarlo a un nivel alto? Si, no hay problema!
El ejercicio no es necesario en la práctica
Apuesto a que de todos los que estudiaron en el conservatorio y se convirtieron en músicos profesionales, muy pocos podrán realizar un ejercicio arbitrario. Sí, algunos de estos ejercicios son necesarios para la preparación de la actuación, pero solo parcialmente, y se recuerdan solo cuando realmente se necesitan.
Esta semana, cuando estaba en la tarea de programación Hackerrank, tuve que obtener un tutorial polvoriento sobre estructuras de datos y algoritmos para escribir un tipo de fusión .
Al principio me sentí extremadamente incómodo, pero luego surgió una idea: esta es la misma historia que con los ejercicios de piano en el Conservatorio Real. Sí, una vez que fueron importantes, y agrupamos diferentes tipos de clasificaciones en informática. Pero el crecimiento de la experiencia profesional radica en comprender cuándo y dónde aplicar algoritmos específicos, recordando la implementación solo si es necesario. Sabía para qué era la clasificación por fusión, sabía cómo encontrar su código. Simplemente no podía recordarlo.
Alguien argumentará que el Desarrollador Senior debería poder escribir la clasificación sin recurrir a materiales de referencia, porque estos son los conceptos básicos. Pero simplemente no lo creo. ¿Una persona hace que un mejor músico tenga la capacidad de tocar gamma perfectamente en un momento dado? Por supuesto que no! Además, afirmo que al perfeccionar sus habilidades en un ejercicio de entrenamiento, pierde tiempo que podría dedicar a resolver problemas aplicados.
Los ejercicios no deben usarse al contratar
¿Te imaginas que a un músico profesional, que actuó brillantemente en el escenario más de una vez, se le pediría que tocara escalas en una entrevista? Y después de eso, sin ir al pasaje del pasaje, dirían: "Te volveremos a llamar", porque él no hizo frente a lo básico a la perfección.
Tales pensamientos me dan náuseas. Pero vivimos en 2019, cuando esto sucede todo el tiempo en entrevistas en el campo de la programación.
Las empresas utilizan servicios de terceros como HackerRank como filtro para evaluar a los solicitantes. Muchos grandes desarrolladores abandonan porque no practican escribir clasificaciones regularmente. Las empresas se quejan de la falta de personal calificado en el mercado laboral. Y se repite una y otra vez.
Por cierto, ni siquiera estoy hablando de una entrevista en la oficina. Me refiero a la etapa inicial de la contratación, cuando a menudo Recursos Humanos envía un enlace a varias tareas de tiempo limitado en HackerRank. Y, después de recibir el resultado después de 10-15 minutos, decide si continuará la comunicación. Este enfoque para contratar programadores es un problema en nuestra industria.
Entonces, ¿cómo evalúa las calificaciones de Desarrollador Senior?
Mi experiencia de entrevistar candidatos sugiere que no hay nada mejor que una sesión de programación en pareja. Pase una hora y media desarrollando con una pantalla común. Trabajen juntos en su entorno, con sus herramientas, en su proyecto. Cambie y trabaje alrededor del solicitante, con sus herramientas, en algunos de sus códigos. Comprenderá rápidamente el nivel de la persona en las preguntas que hace.
Y las verificaciones de memoria para algoritmos son completamente innecesarias.