Dies Irae

A ver si no sabemos programar…

Traduzco libremente, hasta donde llega mi inglés, este comentario de la bitácora Coding Horror sobre el problema que parece ser tienen en Estados Unidos las empresas para contratar a programadores. Se han respetado los enlaces originales.

[…] ¿Porque no saben programar… los programadores?
Me quedé de piedra cuando leí esta observación de Reginald Braithwaite:

Al igual que yo, el autor se encuentra con que 199 de entre 200 aspirantes a cada puesto de programador no saben escribir nada de código. Repito: no saben escribir ninguna clase de código.

El autor al que se refiere es Imran, que está rechazando a montañas de programadores que no saben escribir un simple programa.

Después de unas cuantas pruebas y errores descubrí que a las personas que se pelean con el código no sólo les pasa con grandes problemas, o con problemas medios (como la implementación de una lista enlazada). También se pelean con problemas minúsculos.
Por eso pense en desarrollar un método para identificar a este tipo de desarrolladores al que llamé «FizzBuzz Questions» inspirado en un un juego infantil de los niños del Reino Unido. Un ejemplo de test Fizz-Buzz sería el siguiente:

Escribe un programa que imprima los números del 1 al 100. Para múltiplos de 3 imprime «Fizz» en lugar del número y para múltiplos de 5 imprime «Buzz». Para números que sean múltiplos de 3 y 5 a la vez imprime «FizzBuzz»

La mayoría de programadores deben ser capaces de escribir sobre papel un programa que resuelva el ejercicio en pocos minutos. ¿Quieren saber algo alarmante? La mayoría de graduados en informática no pueden. También he visto a auto-proclamados programadores seniors tardar entre 10 y 15 minutos para escribir la solución.

Dan Kegel tiene experiencias similares al emplear a programadores:

Un sorprendentemente alto número de aspirantes, incluso con masters en ciencias de la computación, fallan durante la entrevista al intentar resolver tareas básicas de programación. Por ejemplo, personalmente entrevisté a graduados que no sabían responder a preguntas del estilo «Escribe un bucle que cuente de 1 a 10» o «¿Qué número sigue a F en hexadecimal?» Algo más complejo pero importante, algunos candidatos no sabían usar la recursión para resolver problemas. Eso son puntos básicos, cualquiera que los ignore no tiene mucho que hacer programando.
Hablando como ingeniero que tiene que entrevistar a los aspirantes, puedo asegurar que estoy aburrido de hablar con candidatos que no sabrían programar la forma de abrir una bolsa de papel. Si tu sabes escribir un bucle que itera de 1 a 10 en cualquier lenguaje que conozcas, puedes hacer cálculos simples sin calculadora y sabes usar la recursión para resolver problemas, entonces estas fuera del paquete.

Entre Reginald, Dan e Imran empiezo a estar algo preocupado. […] Todos tenemos que empezar en algún lugar. Pero me siento alarmado y sorprendido de que cualquier auto-nombrado programador se presente a un trabajo sin ser capaz de escribir un simple programa. Eso representa una bofetada para todos los que escriben software para vivir.
La línea divisoria entre los que saben programar y los que no es bien conocida. Yo creía que cualquiera que buscara trabajo de programador debía ser programador, aunque parece que estaba equivocado. Parece ser que se necesitan métodos del estilo de FizzBuzz para impedir que los candidatos hagan perder el tiempo a los entrevistadores.
Quizás pienses que el test FizzBuzz es muy facil – y lo es, intencionadamente -. Un comentario en el post de Imran comenta su eficacia:

Se de entrevistadores que rechazan el test FizzBuzz por su facilidad. En mi experiencia he comprobado asombrado como algunos candidatos son incapaces de resolver las preguntas mas simples.

Es de locos entrevistar a un candidato sin echar antes un vistazo a su código. En Vertigo requerimos un ejemplo antes de pasar a la entrevista telefónica. En nuestra página también solicitamos un pequeño ejercicio. Nada complicado, sólo un problema básico que puede tardarse una hora en resolver. Aunque hemos caído en un par de errores la estrategia ha funcionado bastante bien. Esto nos permite centrarnos en el desarrollo de software actual sin recurrir a aburridos métodos como el mencionado.
Es una verguenza que haya que hacer mucha preselección para asegurarse que estar entrevistando a un programador que sabe programar. Es para reirse por no llorar. No soy un fan de las certificaciones, pero no me sorprendería que se hiciera necesario crear la profesión de ingeniero de software. […]

El 20/02/2007 saltó a la prensa la noticia de un programa para gestionar las bibliotecas municipales de Madrid, Estela, que después de tres años de desarrollo, ocho meses de rodaje y un presupuesto de 300.000€ ha debido retirarse por su mal funcionamiento.
¿Nos pasa aquí lo mismo?

28 febrero 2007 - Posted by | Informática

2 comentarios »

  1. muy interesane

    Comentarios por Alexis Baules | 29 agosto 2008 | Responder

  2. dsfsdfs67877 test test

    Comentarios por rxjz92 | 11 junio 2009 | Responder


Deja un comentario