Pasos para desarrollar/crear un algoritmo

Para desarrollar un algoritmo es necesario tener en cuenta unos pasos indispensables para dar con la solución del problema.

Me pasaba que leía y leía sobre algoritmos, bueno no era que leyera mucho la verdad pero todos los libros que leía siempre comenzaban hablando de como crear un algoritmo y realmente a si mismo es en la universidad, el primer semestre todo fue a punta de diagramas de flujo y pruebas de escritorio.

Uno como novato piensa que eso no es necesario para programar que todo está es en el código, pero que pasa cuando uno realmente programa, pues se estrella ya que lo fácil de ser programador es escribir el código, lo realmente complicado es crear el algoritmo que solucione el problema o satisfaga la necesidad.  Aunque esto es más un reflexión la dejaré mejor para la sección de filosófando.

Al grano. :)


Pasó 1.Entender el problema:

El más importante, ya que tenemos que conocer todo de nuestro 'enemigo' para explotar sus debilidades metafóricamente hablando, poniéndolo en el contexto sería saber todo del problema, consecuencias, que lo origina, que puede pasar si, como funciona. Si yo conozco toda esa información será mucho más fácil ver/encontrar la solución.


2:Especificar la solución: 

En este punto se debe ir escribiendo que hace que se solucione el problema,  es necesario conocer cuáles son las entradas y salidas que debe tener el programa para dar solución. Se debe encontrar la solución que es lo que va a dar la solución al problema. Estos pasos difíciles pero si se realizó bien el pasó anterior es más fácil encontrar que es lo que el programa debe hacer para solucionar ese problema.

3:Diseñar la solución.

Realmente en este pasó ya se sabe cuál es la solución, pero se torna algo enredado ya que puede que pase que ya tenga la solución en mi cabeza pero no se como representar esa solución en un algoritmo.
 
Por eso es necesario recurrir a la frase divide y venceras. Es una frase que he visto en varias páginas de programación; aplicando esta frase sería algo como de analizar la solución que ya encontré y ver como la puedo desglosar dividir en partes, encontrar todas las posibles variables que voy a necesitar y realmente si es necesario escribir lo que voy haciendo para que después pueda revisar esos apuntes y no me pierda.

Esto último lo veo como lo aria un científico, ya que esté tiene que ir Documentando todo lo que hace por si hace falta en el futuro devolverse un poco.

Pero también se debe ya tener con claridad cuáles son las estructuras que más se acomodan al algoritmo, ya nos empezamos a meter por encima a algo del código, por que tengo que tener en cuenta si voy a utilizar arraylist, listas colas, etc. En resumidas cuentas es un como el software va a dar solución.

4: Implementar el diseño.


Bueno ahora es donde se hace la magia. Como le dije a un amigo en estos días que esta comenzando a programar; programar es algo realmente inspirador es convertir algo que esta en tu mente en realidad.
Pero dejando la nostalgia, es este punto se convierte ya el algoritmo que tenemos preparado en código, en el lenguaje que se este programando.

5:Realizar pruebas.

Esté pasó pues ya el software debe estar levantado funcionando, acá vamos a darle duro al software jajaja tenemos que hacerle pruebas para encontrar fallos, ahora lo bueno sería primero teniendo en cuenta las funcionalidades del software hacer un listado de posibles cosas que podrían pasar. Me explico.

Sabemos que el software tiene unas funcionalidades una o varias, por cada funcionalidad implementamos varios posibles casos que se presenten y documentar los resultados obtenidos, con el fin de consultarlos en un futuro y dar solución a estos fallos.
Para estar en contexto dejaré por acá un Excel con un ejemplo, el ejemplo consiste en un software que aparte camas.
Aunque el último pasó pues no parece que fuera del tema de algoritmos es si bueno tenerlo en cuenta,  Realmente lo importante es diseñar el algoritmo además de tener un buen conocimiento en el lenguaje que se va a utilizar para conocer que librerías se van a utilizar.

Basado en el libro. Algoritmos y Programación
Con lenguaje Python De  Margarita Manterola

0 Comentarios