¿Por qué algunos empleadores tecnológicos intentan evaluar las habilidades de codificación de los candidatos pidiéndoles que codifiquen sin ayuda?

Me gusta el artículo de Spolsky que citó Ivan Appel, que se alinea en gran medida con lo que Google intenta hacer. Lo principal que se prueba es su capacidad para resolver problemas. Spolsky lo expresa en dos puntos: inteligente y hace las cosas. Como tal, ni siquiera necesita resolver ningún problema correctamente, y mucho menos memorizar cualquier cosa. Solo necesita convencerme de que puede hacerlo, con el tiempo y las herramientas adecuadas. La memorización no aparece, excepto cuando afirma que tiene 10 años de experiencia en C ++ / STL, y no puede recordar si es vector :: size () o vector :: length (), simplemente va a la credibilidad. Si no puede escribir ningún código correctamente, sugiere que si bien puede ser inteligente, no está codificando mucho y, por lo tanto, probablemente no está haciendo las cosas. Algunas personas dicen: “Siempre busco esto en la práctica”, pero confía en mí, si buscas vector :: size () cada vez, probablemente podamos contratar a alguien que pueda codificar 2 veces más rápido, y eso hace la diferencia.

Aún así, lo principal es simplemente explicar cómo resolvería el problema de una manera que pueda entender, y luego producir un fragmento que haga algo o todo lo que usted describió. Realmente no deberías necesitar ninguna ayuda para esto si eres un programador competente.

Este clásico escrito es imposible de superar.

En cuanto a mí personalmente, encuentro dos tipos de preguntas de codificación útiles en la entrevista.

Las preguntas que son intencionalmente muy simples y directas, como el famoso FizzBuzz, son útiles para eliminar a los candidatos que ciertamente están subcalificados. Es decir, si sus habilidades de razonamiento son tan débiles que solo puede resolver FizzBuzz lanzándolo al depurador hasta que se pegue, no quiero que escriba código en mi equipo.

Las preguntas que son bastante difíciles y abiertas son útiles para hacer una pequeña simulación de cómo pensaría y actuaría un candidato cuando se enfrenta a un problema que no sabe cómo resolver por adelantado. Con estas preguntas no miro tanto el código, miro al candidato, si entiendes lo que quiero decir.

La experiencia personal, Google, Microsoft, Amazon o cualquier otra empresa de alta tecnología nunca le pide que escriba código sintácticamente correcto. Lo que quieren es la capacidad de encontrar una solución a un problema algorítmico y, en su mayoría, pide escribir el código en papel blanco o pizarra.

Entonces, si escribe print (“string”) en lugar de printf (“% s”, string), está perfectamente bien.