Como una opinión de alguien que solicita muestras de código cuando evalúa candidatos, hay algunas características de alto nivel (contenido del código) y algunas características de bajo nivel (estructura del código). Características de alto nivel:
- Identidad : el sabor del código. Si se está facturando como un codificador de UI / HCI, quiero ver un buen aspecto para algo visual cuando lo ejecuto. Si eres un constructor de bases de datos, quiero ver algo interesante con la representación o el análisis de datos. La muestra debe ser algo de lo que estés orgulloso . Si no tiene al menos uno de esos, no tiene identidad.
- Madurez : ¿Cambias las estrategias para diferentes problemas? ¿Estás resolviendo problemas interesantes? ¿El código o enfoque sería fácil de extender a un problema similar? Por el contrario, ¿siento que estoy mirando a un miembro de una comuna de culto de carga?
- Comunicación : ¿El código explica fácilmente lo que está haciendo y por qué? Esto no significa que el código deba ser simple. De hecho, es una ventaja hacer que el código complejo sea fácil de entender.
Los aspectos de bajo nivel son más simples:
- Estilo : el código debe ser limpio, coherente (sigue algunas pautas establecidas) y bien documentado.
- Empaquetado : debe haber como mínimo un archivo Léame breve, una versión ejecutable y pruebas ejecutables. El archivo Léame debería decirme cómo ejecutar los dos últimos, así como por qué está demostrando este ejemplo de código en particular.
- Idioma (s) : por lo general, le pido a alguien una muestra en el idioma para el puesto, así como en el que se sienten más fuertes. Da una buena idea de los límites máximos actuales de una persona.
Para un buen candidato, espero que una muestra sea: A) Una pequeña muestra a prueba de balas o B) Una buena parte de un proyecto interesante más grande (por ejemplo, un módulo de un repositorio personal de Github). Espero que sean proyectos personales o proyectos académicos. Si envían uno de un proyecto pago, espero una nota de que se les dio permiso para usarlo. Si no recibo esa nota, los cortaré de los candidatos (candidato débil) o les preguntaré al respecto durante la entrevista (candidato fuerte). No tener permiso sería una gran bandera roja (probablemente insuperable). Para un candidato avanzado, espero un descargo de responsabilidad que indique que algunas de sus mejores muestras de origen no se pueden mostrar porque se hicieron como parte de su trabajo. Sin embargo, entonces espero un testimonio efusivo de por qué están orgullosos de ese diseño que no se puede mostrar y de cómo lo aman como a un niño.
Finalmente, por mucho que algunas personas repitan que "Oh, alguien podría obtener una muestra de código de Internet", el contraargumento es que la mayoría de las personas que no entienden el código de buena calidad de producción tampoco lo entienden cuando lo ven. . Además, siempre se puede buscar en Google una línea distintiva para verificar el código. Además, en el mejor de los casos, robar código llevará a un candidato a una entrevista donde se avergüencen ("Entonces, ¿por qué lo hiciste de esta manera ...?").
Como última nota sobre el código del empleo anterior: simplemente no lo hagas. Desde el punto de vista de RR. HH., Pedir un código de un empleo anterior es inapropiado y una señal de alerta sobre la empresa. Ambos tendrían responsabilidad legal (es decir, ambos podrían ser demandados) y esto demuestra que no tienen idea de lo que están haciendo. El código hecho para un empleador anterior nunca debe darse a menos que el código ya esté disponible públicamente o tenga permiso explícito de ese empleador. Peor aún, en una gran empresa, su jefe directo puede no tener el poder de otorgarle permiso, ¿se divierte con el departamento legal en ese caso? Estoy seguro de que estarán encantados de exponer su IP para un empleado existente.