Iniciación a la programación

Las personas que se acercan por primera vez a la programación a veces se sienten saturadas al tiempo que maravilladas con el mundo de posibilidades que se abre ante sus ojos. Programar, en el fondo, no es otra cosa que crear: concebir algo y realizarlo computacionalmente mediante una herramienta poderosísima que llamamos lenguaje de programación. Con ella, podemos implementar cualquier algoritmo.

Foto realizada por Marcos Gabarda Inat

Foto realizada por Marcos Gabarda Inat

La saturación del que se inicia en estas lides suele estar provocada por la inmensidad que parece otearse en el horizonte. Aprender la sintaxis de un lenguaje de programación por primera vez puede llevar a confusiones, incertidumbres y dolores de cabeza, y no es extraño que algunos se desanimen. Pero esto tiene fácil solución. La clave para iniciarse en la programación y disfrutar con ello reside precisamente en perder el miedo a probar una y otra vez con espíritu curioso.

Antes de nada debemos tener clara una distinción. Cuando usamos un lenguaje de programación normalmente queremos programar algoritmos, pero un algoritmo no es un programa en un lenguaje de programación en particular, sino una especie de programa en abstracto. Es decir, un algoritmo puede implementarse en cualquier lenguaje de programación computacionalmente universal, pero no es ninguna de esas redacciones concretas que realizamos en ellos. De esta forma, podemos entender que un algoritmo o computación es una sucesión finita de instrucciones que, aplicadas mecánicamente desde el principio sobre unos datos de entrada, produce unos datos de salida. Una buena analogía sería una receta de cocina: no importa en qué lengua esté escrita mientras diga exactamente lo mismo.

Una vez tenemos claro que los algoritmos y los programas son cosas distintas aunque relacionadas (un programa implementa un algoritmo), ya podemos lanzarnos a la aventura. En primer lugar, debemos elegir el lenguaje de programación en que queremos implementar nuestras ideas, estén ya en forma de algoritmo o no. La elección del lenguaje suele ser importante según el propósito de nuestro programa, la naturaleza de las ideas que va a desarrollar y la magnitud del mismo, entre otras cosas. Por ejemplo, si queremos escribir un programa que utiliza mucha estadística, probablemente el mejor lenguaje que podríamos elegir actualmente es R, que está especialmente orientado a estos fines. Si estamos aprendiendo, normalmente el lenguaje nos vendrá determinado por el profesor, el plan de estudios, un libro que ha caído en nuestras manos, etc.

En segundo lugar, sabiendo ya qué lenguaje vamos a utilizar, lo que debemos hacer es decidir qué entorno de desarrollo (IDE: Integrated Development Environment) se adecúa más a nuestras necesidades. Si vamos a trabajar en Java, probablemente Eclipse o NetBeans serán buenas opciones por su versatilidad y sus numerosas funcionalidades de ayuda al desarrollo. Aprender a usarlos a nivel básico no lleva mucho tiempo y nos permitirá tener nuestro proyecto organizado.

Finalmente, ya nos encontramos en condiciones de empezar a concebir nuestro programa. Lo ideal, cuando el proyecto es complejo, sería diseñarlo con anterioridad, empleando para ello diagramas de clases (si vamos a usar programación orientada a objetos) y diagramas de secuencia y de colaboración. Sin embargo, nosotros solo pretendemos iniciarnos en la programación, así que podemos ponernos directamente a escribir código. La mejor forma de aprender a programar, como decía, es lanzarse sin miedo y probar. Es así como uno aprende de forma natural la sintaxis y las funciones y estructuras de datos básicas. Se suele decir que a programar se aprende programando, y es verdad, pero tampoco debemos obviar la necesaria documentación y lectura que todo buen programador necesita para progresar en la utilización diestra de un lenguaje de programación. De todos modos eso lo dejamos para más adelante, cuando ya estemos iniciados.

Veamos un ejemplo. Imaginemos que queremos obtener la lista de los 20 primeros números positivos divisibles entre 7. ¿Por dónde empezamos? Si no lo tienes claro, he aquí una guía que te servirá para casi cualquier problema:

  1. Piensa en un nombre –preferiblemente corto– para tu función.
  2. Piensa en qué datos recibe como entrada.
  3. Piensa en qué datos debe devolver como salida.
  4. Establece una variable para almacenar los resultados e inicialízala a un valor que puedas tener bajo control.
  5. Escribe las instrucciones propiamente dichas y añade nuevas variables conforme las vayas necesitando. Intenta hacerlo siempre lo más eficiente posible, pero tampoco te obsesiones ahora con esto.
  6. Haz unas primeras pruebas tan pronto creas que lo que has escrito es correcto o se acerca a ello. Las pruebas deben cubrir los casos normales, pero también los singulares, como los números que se encuentran en los extremos de un intervalo, etc.
  7. Revisa tu código según los resultados obtenidos y, si es preciso, usa el depurador para encontrar los errores.
  8. Continúa haciendo pruebas y revisando el código hasta que creas justificadamente que lo escrito resuelve exactamente tu problema. Si funciona y no sabes por qué, relee el código y plantea nuevas pruebas hasta que lo entiendas.

Y ahora… tómate unos minutos y esboza en el lenguaje que estés aprendiendo (o con tus propias palabras) un programa/algoritmo que resuelva el problema. ¿Quieres una pista? Espero que no… pero si es así, ahí va: ¡usa un bucle!

¿Lo tienes? Bien, ahora modifica el código para que, en lugar de devolver los múltiplos de 7, devuelva los primeros 20 múltiplos de un parámetro A recibido como entrada y los 20 primeros múltiplos de otro parámetro de entrada B. ¿Ya está? Ahora haz que se muestren intercaladamente: primero un múltiplo de A, luego uno de B, luego otro de A, y así sucesivamente. Piensa también en otra forma de hacer esto último.

Ahora implementa una función que devuelva los divisores de un número recibido como entrada. ¿Quieres una pista? Recuerda que la mayoría de lenguajes ofrecen un operador o una función para obtener el resto de una división entera. Cuando lo tengas, prueba nuevas modificaciones hasta que te canses.

Mañana ponte un problema más complicado e intenta solucionarlo. Sigue así varios días y, al final, sin darte cuenta, tendrás más soltura con el lenguaje y confiarás más en ti mismo. Ahí está la clave. Mejorar tu nivel vendrá solo, pues ya serás autosuficiente y podrás ingeniártelas por ti mismo sin grandes problemas.

Post realizado por Juan F. Correcher

Anuncios