Por Qué Te Resulta Difícil Programar
Por Qué Te Resulta Difícil Programar
Por Qué Te Resulta Difícil Programar
Muchas personas que comienzan a programar lo encuentran muy difícil. Tal vez lo que ocurre es que están tan concentrados en el lenguaje de
programación que se olvidan de lo importante…
Hay mucha literatura sobre las fases de la programación, pero a efectos prácticos, cuando te pones a hacer tus primeros programas, necesitas
ser consciente de estos cuatro pasos fundamentales:
Esta sencilla idea de los 4 pasos puede asustar. Puede parecer que tanta fase significa un proceso largo y costoso. Tal vez por eso muchos
estudiantes intentan saltarse el paso 1 y 2 para acabar antes
. Pero el efecto acaba siendo el contrario… ¿no te lo crees? sigue leyendo…
Repasa la lista de los 4 pasos y observa cómo cada paso depende del anterior.
Como cada paso depende del anterior, los errores en los primeros se arrastran a los siguientes, y la situación empeora:
-Si no dedicas suficiente esfuerzo a entender bien el problema (paso 1), es probable que el programa no haga lo que tiene que hacer, y
todo esfuerzo posterior será inútil.
-Una vez tengas claro el problema (paso 1), si no dedicas el tiempo necesario a buscar un buen algoritmo (paso 2), te complicarás la
vida. Tal vez el programa compile, pero no funcionará a la primera, ni a la segunda, ni a la tercera… y entrarás en un largo proceso de
depuración y pruebas. En el caso mejor, si consigues hacerlo funcionar, habrás perdido más tiempo del que supuestamente “ahorraste”
al principio.
-Puede que el programa acabe funcionando “a martillazos”, a base de prueba y error, pero eso se nota… será un programa complicado,
poco eficiente, y difícil de entender y defender. Ni siquiera estarás muy seguro de que el programa funcione con según qué datos de
entrada. Lo peor es que con tanto tiempo ocupado en la desagradable tarea de “probar y probar”, el proceso de programación te
parecerá difícil, pesado y engorroso. En resumen, odiarás programar…
Si odias programar es porque el problema te domina a ti. ¿Cómo puedes cambiar la situación?
Este cuadro está pensado para ayudarte. Échale un vistazo, te puede servir para ser consciente de cómo programas, a qué le dedicas más
tiempo y cómo te organizas. Tal vez te facilite el trabajo:
2) Diseñar un Tener una idea clara de Pseudocódigo, Ser capaz de descubrir el Tú sabes resolver problemas, lo
método para cómo va a hacer diagrama de flujo. método más sencillo y haces continuamente. La única
resolver el nuestro programa lo que eficiente posible que diferencia cuando programas es que
problema tiene que hacer. resuelva el problema. tienes que dividir el método de
(algoritmo) resolución en pasos pequeños, en
Es decir, obtener un Conocer las piezas del instrucciones simples que pueda
método algoritmo
( ) “puzzle” con las que entender un ordenador.
que haga lo que hay que contamos para componer
hacer, de la forma más un algoritmo (variables, Preguntas a hacerte: ¿cómo se
sencilla y eficiente condiciones, bucles,…) y soluciona? ¿Qué pasos hay que dar?
posible. saber componer una ¿Cuál es la forma más sencilla y
solución con ellas. eficiente?
4) Depuración y Asegurar el buen Herramientas y Buena selección de Intenta poner a prueba tu programa
pruebas funcionamiento del métodos de juegos de prueba. con valores normales y también con
programa depuración del valores que creas que puedan dar
entorno de desarrollo Si se encuentran errores, problemas.
habilidad deductiva para
enfocar la búsqueda hacia Aprende a usar el depurador.
la causa.
Intenta como reto que en esta fase
todo funcione a la primera. Pasa el
esfuerzo a la fase 1 y 2.
Lo que en realidad ocurre es que el experto ha adquirido destrezas que aplica muy rápidamente y de forma casi inconsciente. Es capaz de
entender el problema y pensar en un algoritmo que lo resuelve de forma muy rápida y sin ayuda de papel, lo que le permite lanzarse a
implementar ese algoritmo que está en su cabeza, directamente en un programa fuente con un lenguaje de programación que domina. Este
proceso es tan veloz, que algunos programadores ni siquiera se dan cuenta del proceso y pueden confundirte cuando te dicen que ellos “no
diseñan el algoritmo”. Es como cuando aprendes a conducir: A ellos ya no les hace falta fijarse en detalles como el cambio de marchas o los
intermitentes porque no piensan en ello, lo han automatizado. ¿Sabes lo que hacen cuando se les presentan nuevos problemas especialmente
difíciles? Cogen papel y lápiz y se hacen un esquema.
Sobre todo al principio, es muy importante entrenarte en las fases 1 y 2. Quizá incluso más que conocer la sintaxis del lenguaje de
programación con el que aprendas.
Las fases 1 y 2 son las que te van a permitir programar bien en CUALQUIER LENGUAJE. Esas son las destrezas que te permitirán ser un buen
programador en cualquier circunstancia. Lo demás está en los libros de referencia de cada lenguaje y en las normas de estilo de cada
organización. Este breve texto está orientado a que cambies el enfoque y te fijes en lo que importa.
En cualquier asignatura de programación, te encontrarás con bastante información sobre la sintaxis de un lenguaje concreto (como C), por eso
a veces puede parecer que la sintaxis lo es todo, pero sólo es algo que usas en una parte del proceso de programar, al final.
Te lo aseguro, aunque no te lo creas, las fases 1 y 2 son las más bonitas. Si crees que programar es un proceso aburrido de prueba y error
hasta que la cosa funciona, tal vez lo que ocurre es que pierdes demasiado tiempo arreglando lo que tenía que funcionar desde el principio.
Si por el contrario cambias el enfoque e intentas partir de una idea clara y detallada de lo que ha de hacer tu programa, dedicarás un poco más
de tiempo a pensar pero el proceso de escribirlo será muy rápido, y cuando funcione la sensación será mucho más agradable, porque no será el
producto de un proceso aburrido de prueba y error (tras numerosos disgustos tipo “esto no funciona”), sino que será el producto de tu
inteligencia y creatividad, lo que te producirá mucha más satisfacción.
Resumiendo
Este texto no ha pretendido ser teórico o formalista. Sólo intenta ayudarte a cambiar el enfoque y que te fijes en cosas importantes. No te
pierdas en la sintaxis.
Para acabar, recuerda que muchas de las habilidades que estás adquiriendo sólo se consiguen con la práctica.
O como dice una frase conocida del mundillo: La única forma de aprender a programar es programando.
Autor: Vicente Muñoz Pijuán
Fecha: Diciembre de 2007
Cualquier opinión sobre este texto (buena o mala) será bienvenida: vimupi (arroba) uv.es