Por Qué Te Resulta Difícil Programar

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 3

¿Por qué parece tan 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:

PASO 1) Entender bien el problema


PASO 2) Diseñar un método para resolverlo (algoritmo)
PASO 3) Escribir el programa en un lenguaje concreto
PASO 4) Depuración y pruebas

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…

¿Te sientes identificado? Sigue leyendo

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:

Fase Objetivo Herramientas Habilidades a Adquirir Consejos


útiles
1) Analizar el Tener una idea clara de Lectura / escucha Lectura/escucha Cuando leas el enunciado no
problema qué hay que hacer atenta. Petición de comprensiva. presupongas nada.
aclaraciones si es
necesario. Relájate y concéntrate en leer y
entender lo que significa
exactamente .

Normalmente no basta con leer por


encima y tener una idea aproximada
de lo que te piden. Lee el detalle.
Entiéndelo completamente.
División del problema
en un esquema Preguntas a hacerte: ¿Cuál es la
simple: entradas, entrada? ¿qué hay que sacar? ¿qué
proceso y resultados. hay que hacer? ¿Cómo paso de las
entradas a los resultados?

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?

Mejora y simplifica tu algoritmo y te


ahorrarás trabajo después.

Si no te sale “de cabeza”, dibújalo. El


diagrama de flujo y el pseudocódigo
se inventaron para ayudar al
programador.

3) Escribir el Traducir el algoritmo a Entornos de Conocimiento de un Intenta que el algoritmo (paso 2)


problema en un un lenguaje de desarrollo, lenguaje de esté completamente claro y
lenguaje de programación Compiladores. programación, simplificado antes de comenzar a
programación escribir código.
El programa tiene que Guías de estilo. Conocimiento de las
ser lo más sencillo y reglas que hacen más Cuando conozcas las instrucciones
legible posible. legible un programa. del lenguaje, este paso tiene que ser
breve y limitarse a ser una traducción
En programación de tu algoritmo. El trabajo debe
“avanzada”, conocimiento centrarse más en los pasos 1 y 2.
profundo de las
particularidades del El algoritmo es lo importante, es “la
lenguaje para hacer un idea que quieres expresar”. El
uso eficiente. lenguaje de programación que uses
es sólo un vehículo más de expresión
de tu algoritmo, como lo son los
diagramas de flujo o el
pseudocódigo.

Conoce el lenguaje: Sintaxis,


estructuras de datos, instrucciones …

Domina las instrucciones


condicionales.

Estudia y aplica la guía de estilo.

Haz tu programa agradable de leer y


entender, con un uso adecuado del
estilo y de los comentarios.

Usa las estructuras y las instrucciones


más adecuadas. Normalmente la
forma más sencilla y legible de
hacerlo será la mejor.

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.

Importante: La depuración y pruebas


no debe de ser “una forma de
programar” –por prueba y error-,
sino la forma de comprobar que va
bien.

Que no te engañen, todo programador diseña algoritmos:


Cuando un principiante ve a un programador experto, piensa que no es necesario realizar los pasos 1 y 2, porque ve a menudo cómo el
programador experto se lanza a programar directamente.

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.

No te aburras con las pruebas

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

No intentes “ahorrar tiempo” en los pasos 1 y 2, porque:


-Puede que ni siquiera consigas hacer lo que en realidad se te pide
-El tiempo total que dediques a programar aumentará
-El programa que consigas será probablemente más complicado, menos eficiente, y más difícil de leer y por lo tanto de depurar.
-Dedicarás más tiempo a la parte más desagradable (probar y depurar)
-No adquirirás las habilidades útiles para cualquier lenguaje
-Te saltarás la parte más bonita

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

También podría gustarte