Nuestra forma de pensar esta condicionada por nuestras vivencias, conocimientos y estudios. La forma de plantear resoluciones a problemas no es la misma según la profesión que tengamos cada uno, no piensa de igual forma un biólogo, un carpintero o un lingüista en según que situación.
¿A que viene todo lo anterior? Pues por lo siguiente: Imaginémonos que un día estamos en el curro y viene un cardenal a pedirnos ayuda porque los Iluminati, secta chunga donde las haya y unos malos muy socorridos para algunos argumentos, han robado cuarto y mitad de materia oscura del CERN y amenazan con volar todo el Vaticano.
Llegado a este punto de la película algunos dirían que pasan porque es la hora del café y otros llamarían a los Iluminati para que pulsaran ya el botón pero nosotros que somos buenrrolleros le decimos al señor cardenal que vale, que nos apuntamos, no vaya a ser que vuelen tanta obra de arte bonita.
Llegamos a Roma, que si señor taxista pase por el Coliseo, que si pare aquí que quiero una pizza que tengo hambre del jetlag… Y por fin entramos en el Vaticano y un montón de guardias suizos (esos que tienen el uniforme con mas colores que la bandera del orgullo gay) nos llevan a una sala llena de ordenadores y jefazos para enseñarnos el problema.El problema aparece en una pantalla de ordenador y se llama bomba con reloj de cuenta atrás que aparece iluminada con un foco.
Menudo marrón, estamos en Roma, no podemos ir a ver un partido de fútbol con los tifosi, ni a ver museos, ni a cenar por ahí porque una secta chunga quiere volar el Vaticano y nos toca a nosotros salvar el día.
Pues bien, este es el argumento del libro Ángeles y Demonios de Dan Brown, el mismo que escribió el Codigo DaVinci y cuyo protagonista es Robert Langdon, un profesor de Iconologia que no tiene ni puta idea de programación.
¿Por que hablo de programación Pues por lo mismo que un programador no tiene ni idea de Iconologia, porque como dice una amiga mía que es bióloga «No es mi rama». Es aquí donde entra el asunto de que nuestra forma de pensar esta condicionada por nuestras vivencias/estudios/profesión.
En el libro de Ángeles y Demonios Robert Langdon propone que como la cámara tiene un foco encima que por que no apagan las luces del Vaticano para saber donde esta situada. El enterao de turno le dice que tardarían mucho en apagarlas una a una y entonces nuestro protagonista le cree y se va por ahí a la carrera para resolver misterios de iconología y adivinar por otros medios donde esta la bomba. Eso es porque no sabe programar.
Alguien del gremio de los picateclas o cualquiera que se hubiera leído un libro de Metodología de la Programación hubiera cogido al «enterao» que decía que no se podía apagar las luces, le hubiera dado un guantazo y se hubiera ido a una pizarra a explicar la resolución del problema de la bomba y pondría este trozo de pseudocodigo, que explicar en una pizarra y poner código siempre farda un montón.
AlgoritmoDyV (p: TipoProblema): TipoSolucion
if esCasoBase(p)
return resuelve(p)
else
subproblemas: array of TipoProblema
subproblemas = divideEnSubproblemas(p)
soluciones_parciales: array of TipoSolucion
for each sp in subproblemas
soluciones_parciales.push_back(AlgoritmoDYV(sp))
endFor
return mezcla(soluciones_parciales)
endIf
finAlgoritmoDyV
¿Por que el programador lo resolvería antes? Pues porque el asunto de la bomba y la luz es un ejercicio estándar en los libros de programación en el que se usa el algoritmo Divide y Vencerás.
Imaginemos que hay 1000 sectores en el Vaticano, en vez de ir apagando todas las luces de una en una cogemos 500 sectores y los apagamos todos. Si la luz de la bomba se apaga sabemos que ese sector esta dentro de los 500 que hemos apagado. Si no se apaga esta entre los 500 que no hemos tocado.
Con ese simple movimiento hemos descartado la mitad del Vaticano de golpe, y eso antes de la hora del pincho.
Cogemos los 500 sectores en los que sabemos que esta la bomba, apagamos 250 y comprobamos si la luz de la bomba se apaga. Si la luz de la bomba se apaga sabemos que ese sector esta dentro de los 250 que hemos apagado. Si no se apaga esta entre los 250 que no hemos tocado.
Repitiendo esta operación hasta que nos queden 2 sectores sabremos donde esta la bomba sin tener que ir uno por uno.
Una vez descubrimos el sector donde esta la bomba enviamos a la guardia suiza a desactivarla, pedimos un café al becario de turno y le vamos preparando la facturita al cardenal ¿Con iva o sin iva monseñor?.
Y es que nuestra forma de resolver problemas viene condicionada por nuestros estudios/vivencias/profesión por eso el informático se hubiera liquidado el problema de un tirón y la película de Ángeles y Demonios tendría que haber sido un cortometraje.
Eso si, si en vez de Angeles y Demonios ponemos al programador en El Codigo DaVinci le hubiera dado igual todo el rollo de Maria Magdalena y el Opus Dei y se hubiera ido a casa a esperar a que saliera la película o el videojuego.