Hace días recordaba un buen documento que leí de Cesar Cepeda ( Líder de la Olimpiada Mexicana de Informática), acerca de lo difícil que es resolver un problema, el titulaba el documento “El problema de resolver un problema”, este documento sirve como uno de los apuntes básicos para todos los que se adentran en los concursos de programación como la OMI(Olimpiada Mexicana de Informática), la realidad es que este documento fue uno de los que mas me sirvió a la hora de empezar a programar algoritmos.

Me he topado en mi andar por la vida, con que muchas de las personas que creen programar, a la hora de que uno le enseña un problema que un Olímpico de Secundaria puede resolver, lo ven como imposible, y siempre me he preguntado a que es que se debe esto, después de mucho tiempo de irle dando vueltas en mi cabeza al porque de esto, llegue a la conclusión de que en la escuela no nos enseñan hasta cierto nivel de algo que ellos en ese momento llaman “Programación”, muchas personas que se dicen programadores no pueden resolver problemas con algoritmos que no sean los clásicos (QuickSort, Burbuja, etc), y a veces hasta esos los desconocen, ahora no hablemos de un Dijkstra o de un Heuristico.

Que pasa cuando hay empresas muy importantes vienen a México y a la hora de que muchos de esos “Programadores” aplican por quedar, muchas veces los rechazan, u otras veces los aceptan sin saber probablemente lo que la empresa estaba buscando, pero bueno eso es parte del sistema escolar, algo que debe de cambiar desde las raíces, el problema es como resolver esos problemas (algoritmos), yo lo primero que hago a la hora de tratar de resolver un problema es detenerme a analizarlo desde lo mas simple a lo mas complejo, tomo la hoja y empiezo a dividirlo(lo clásico) después de dividirlo en múltiples problemas empiezo a generar pseudocódigo, analizo posibles algoritmos de los que conozco y muy probablemente eh usado, para ver cual es el mas adecuado para aplicar, una vez que mi cerebro comprende lo que el pseudocódigo trato de hacer con el, el problema en el lenguaje de programación de mi elección, ya después compilo pruebo varias veces, etc, para mi la clave esta en la comprensión del problema, y aparte de conocer varios algoritmos, saber diferenciar cuando aplicar uno del otro.

Espero esta entrada le sirva a alguien que se empiece adentrar en el arte de resolver problemas (para mi es un arte) , y a mi como guía de referencia en un futuro.

  • Noel

    Como tú dices amigo la resolución de problemas complejos a través de la programación es un arte, se debe de analizar a fondo, planear y programar, si hacemos las cosas al revés estamos fritos

    Como siempre… buen aporte !

    • Javier

      Grasias tratare de hacerlo asi 🙂

      • luisaca

        ¿Te fue de ayuda?