Blog gratis
Reportar
Editar
¡Crea tu blog!
Compartir
¡Sorpréndeme!
Programación 1
¡Bienvenidos a nuestro Blog! Espero puedan disfrutarlo y aprender. Este será un contacto que podrá superar los límites de tiempo de las horas de clase: aprovéchenlo para construir algo nuevo.
05 de Abril, 2015    TEORIA

¿Por qué parece tan difícil programar?

¿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 útiles

Habilidades a Adquirir

Consejos

1) Analizar el problema

Tener una idea clara de qué hay que hacer

Lectura / escucha atenta. Petición de aclaraciones si es necesario.

 

 

 

 

 

 

 

División del problema en un esquema simple: entradas, proceso y resultados.

 

Lectura/escucha comprensiva.

 

Cuando leas el enunciado no presupongas nada.

 

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.

 

Preguntas a hacerte: ¿Cuál es la entrada? ¿qué hay que sacar? ¿qué hay que hacer? ¿Cómo paso de las entradas a los resultados?

 

2) Diseñar un método para resolver el problema (algoritmo)

Tener una idea clara de cómo va a hacer nuestro programa lo que tiene que hacer.

 

Es decir, obtener un método (algoritmo) que haga lo que hay que hacer, de la forma más sencilla y eficiente posible.

 

Pseudocódigo, diagrama de flujo.

Ser capaz de descubrir el método más sencillo y eficiente posible que resuelva el problema.

 

Conocer las piezas del “puzzle” con las que contamos para componer un algoritmo (variables, condiciones, bucles,…) y saber componer una solución con ellas.

 

Tú sabes resolver problemas, lo haces continuamente. La única diferencia cuando programas es que tienes que dividir el método de resolución en pasos pequeños, en instrucciones simples que pueda entender un ordenador.

 

Preguntas a hacerte: ¿cómo se soluciona? ¿Qué pasos hay que dar? ¿Cuál es la forma más sencilla y 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 problema en un lenguaje de programación

Traducir el algoritmo a un lenguaje de programación

 

El programa tiene que ser lo más sencillo y legible posible.

Entornos de desarrollo,  Compiladores.

 

Guías de estilo.

Conocimiento de un lenguaje de programación,

 

Conocimiento de las reglas que hacen más legible un programa.

 

En programación “avanzada”, conocimiento profundo de las particularidades del lenguaje para hacer un uso eficiente.

Intenta que el algoritmo (paso 2) esté completamente claro y simplificado antes de comenzar a escribir código.

 

Cuando conozcas las instrucciones del lenguaje, este paso tiene que ser breve y limitarse a ser una traducción de tu algoritmo. El trabajo debe centrarse más en los pasos 1 y 2.

 

El algoritmo es lo importante, es “la idea que quieres expresar”. El 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 pruebas

Asegurar el buen funcionamiento del programa

Herramientas y métodos de depuración del entorno de desarrollo

Buena selección de juegos de prueba.

 

Si se encuentran errores, habilidad deductiva para enfocar la búsqueda hacia la causa.

Intenta poner a prueba tu programa con valores normales y también con valores que creas que puedan dar problemas.

 

Aprende a usar el depurador.

 

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
Palabras claves , , , , ,
publicado por mariof2005 a las 23:15 · Sin comentarios  ·  Recomendar
 
Más sobre este tema ·  Participar
Comentarios (0) ·  Enviar comentario
Esta entrada no admite comentarios.
SOBRE MÍ
FOTO

Héctor Mario Freschinaldi

Mail: backupenviotrabajos@gmail.com
En AS.: 2021JVG PROG1 LUNES TT (su nombre y apellido)

En un mundo donde los cambios se suceden vertiginosamente, incluso los tecnológicos, es menester asimilar las nuevas tecnologías para su aplicación inmediata y su proyección a futuro.

» Ver perfil

CALENDARIO
Ver mes anterior Abril 2024 Ver mes siguiente
DOLUMAMIJUVISA
123456
78910111213
14151617181920
21222324252627
282930
TÓPICOS
» COMUNICADOS (4)
» EVALUACIONES (3)
» Información Tecnológica (86)
» LENGUAJE C (23)
» PROGRAMA (2)
» TEORIA (11)
» Trabajos de entrenamiento (8)
» TRABAJOS PR ÁCTICOS (5)
SECCIONES
» Inicio
ENLACES
» ¿Hay seguridad en lo que ponés en la WEB?
» ¡Te estoy espìando! (y colaborás conmigo)
» Los peligros de la WEB
» Otra de Facebook
» Historias del CHAT
» 1984/George Orwell
» Revistas de Informática, Tecnica y Nuevas Tecnolog
MÁS LEÍDOS
» 07 Elementos léxicos del lenguaje de programación C
» 1. Algoritmos.
» 10 aplicaciones útiles para llevar a todos lados 10 en un pendrive
» CODE BLOCKS no compila Posibles causas
» Ejemplo de lenguaje C - Menú de opciones
» METODOS DE ORDENAMIENTO
» Pseudocódigo
» 2021RESPUESTA A LOS DISTINTOS TEMAS DE LAS PREGUNTAS AL PARCIAL VIRTUAL DOMICILIARIO Y RECUPERATORIOS
» Seguridad en el aire
» TEORIA EN PDF
NUBE DE TAGS  [?]
AL MARGEN
¡Bienvenidos!
Este será un canal de comunicación entre nosotros.
Tendrá diferentes instancias dinamizadoras, y utilidades para trabajar los diferentes trabajos prácticos en diversas modalidades.
BUSCADOR
Blog   Web
SE COMENTA...
» Seguridad en el aire
2 Comentarios: uk vpn, uk vpn
FULLServices Network | Crear blog | Privacidad