Saltar al contenido principal

¿Qué significa programar?

Cuando escuchas la palabra programar, quizá pienses en personas escribiendo muchas líneas de código complejas delante de un ordenador.

Pero programar es algo mucho más sencillo de entender.

Programar consiste en darle a un ordenador una serie de instrucciones claras y ordenadas para conseguir un resultado. Es hablar con el ordenador o máquina para indicarle que haga una tarea.

Y, aunque todavía no lo parezca, hacemos algo parecido constantemente en nuestra vida cotidiana.


Instrucciones

Las instrucciones son una parte fundamental en la programación.

Imagina que quieres preparar una tortilla francesa.

Podrías explicárselo a otra persona así:

  1. Coge dos huevos.
  2. Rompe los huevos.
  3. Ponlos en un recipiente.
  4. Bate los huevos.
  5. Calienta una sartén.
  6. Echa los huevos en la sartén.
  7. Cocina la tortilla.

Acabamos de dar una serie de instrucciones, donde en cada paso le dices a alguien qué tiene que hacer.

Y hay algo importante:

El orden de las instrucciones importa.

No tendría mucho sentido intentar cocinar los huevos antes de ponerlos en la sartén. Ni tendría sentido batirlos después de haber terminado la tortilla.

Por eso, cuando más adelante demos instrucciones al ordenador para conseguir algo, necesitamos pensar no solo qué hay que hacer, sino también en qué orden hay que hacerlo.


La importancia del detalle

Imagina ahora que, en lugar de explicarle la receta a una persona, tenemos que explicársela a un robot.

Una persona puede completar información que no hemos dicho por contexto.

Si decimos:

"Cocina los huevos."

probablemente una persona entenderá que debe ponerlos en una sartén con aceite, encender el fuego, darle la vuelta a la tortilla para que se cueza por ambos lados, apagar el fuego pasados X minutos, etc.

Pero un robot, y por ende un ordenador, no tiene por qué saberlo.

Al programar necesitaremos darle a nuestro ordenador instrucciones mucho más claras.

Por ejemplo, no es lo mismo decirle:

  1. Bate los huevos.
  2. Cocina los huevos.

Que unas instrucciones bien claras:

  1. Coge dos huevos.
  2. Rompe los huevos dentro de un recipiente.
  3. Bate los huevos con un batidor.
  4. Echa una pizca de sal por cada huevo.
  5. Coloca una sartén sobre el fuego.
  6. Enciende el fuego a potencia 9.
  7. Espera hasta que la sartén esté caliente.
  8. Vierte los huevos en la sartén.
  9. Remueve los huevos con la espátula durante 2 minutos.
  10. Apaga el fuego.

El ordenador funciona de una forma parecida.

No podemos simplemente decirle lo que queremos conseguir. Tenemos que indicarle qué tiene que hacer para conseguirlo PASO A PASO.


El ordenador no adivina

Esta es una de las primeras ideas importantes que debemos aprender:

💡 El ordenador hace lo que le indicamos, no lo que creemos que le estamos indicando.

Cuando una persona recibe una instrucción, utiliza el contexto y su experiencia para interpretarla.

Un ordenador no funciona así.

Por ejemplo, imagina que le dices a un robot:

"Hazme un café."

¿Qué café?

¿Con leche o solo?

¿Cuánta cantidad?

¿Dónde está el café?

¿Dónde está el agua?

¿Tiene que calentar el agua?

¿En qué taza debe ponerlo?

Para una persona, muchas de estas cosas pueden resultar obvias.

Para un ordenador, no.

Por eso, cuando programamos, tenemos que aprender a convertir lo que queremos conseguir en instrucciones suficientemente claras. Cuanto menos sabe quien recibe las instrucciones, más importante es explicar correctamente cada paso.


Algoritmo

Hasta ahora hemos hablado de instrucciones.

En programación aparece una palabra que utilizaremos mucho:

Algoritmo

Un algoritmo es, explicado de forma sencilla, una serie de pasos ordenados que seguimos para resolver un problema o conseguir un objetivo.

Antes hemos visto un conjunto de instrucciones ordenadas para hacer una tortilla:

  1. Coge dos huevos.
  2. Rompe los huevos dentro de un recipiente.
  3. Bate los huevos con un batidor.
  4. Echa una pizca de sal por cada huevo.
  5. Coloca una sartén sobre el fuego.
  6. Enciende el fuego a potencia 9.
  7. Espera hasta que la sartén esté caliente.
  8. Vierte los huevos en la sartén.
  9. Remueve los huevos con la espátula durante 2 minutos.
  10. Apaga el fuego.

Pues todas estas instrucciones forman en su conjunto un algoritmo cuyo objetivo es preparar una tortilla. Simplemente estamos pensando:

¿Qué tengo que hacer y en qué orden tengo que hacerlo?

Eso es construir un algoritmo.


Algoritmos en nuestra vida cotidiana

Los algoritmos no existen únicamente en los ordenadores.

Cuando seguimos una receta, también seguimos un algoritmo.

Cuando montamos un mueble siguiendo unas instrucciones, también.

Incluso cuando hacemos algo tan sencillo como preparar un vaso de agua podemos pensar en una serie de pasos.

La programación utiliza esta misma idea, simplemente que el algoritmo estará escrito en un lenguaje que la máquina pueda procesar.


Código

Ahora tenemos nuestro algoritmo: sabemos qué queremos conseguir y hemos pensado los pasos necesarios.

Pero todavía tenemos un problema:

El ordenador no procesa las instrucciones escritas como las escribiríamos nosotros.

Necesitamos utilizar un lenguaje de programación.

Un lenguaje de programación es una forma de escribir instrucciones siguiendo unas reglas precisas. Por ejemplo, más adelante aprenderemos Python. Pero existen decenas de lenguajes de programación diferentes. Al igual que en el mundo se habla español, inglés, francés, chino, japonés, alemán..., cada uno con su gramática y su sintaxis. En el mundo de la programación también existen numerosos lenguajes, cada uno con sus peculiaridades y sus usos, pero todos pensados para poder comunicarnos con una máquina.

En Python podemos escribir:

print("Hola")

Esto es código.

Todavía no necesitas saber qué significa print() ni por qué está escrito de esa manera.

Simplemente quédate con esta idea:

El código es la forma en la que escribimos nuestras instrucciones utilizando un lenguaje de programación.


Algoritmo y código no son lo mismo

Es importante distinguir estos dos conceptos:

  • El algoritmo describe los pasos que necesitamos seguir.

  • El código es la forma en la que escribimos esos pasos utilizando un lenguaje de programación.

Por ejemplo, imagina que queremos conseguir que un ordenador muestre un saludo.

Nuestro algoritmo podría ser:

1. Mostrar un saludo

Y podríamos escribirlo en Python como:

print("Hola")

El objetivo es el mismo.

Lo que cambia es la forma de expresar la instrucción.


Programa

Cuando juntamos instrucciones escritas en un lenguaje de programación para conseguir un objetivo, tenemos un programa.

Por ejemplo, una aplicación de calculadora es un programa.

Un videojuego es un programa.

Un reproductor de música es un programa.

Una aplicación del móvil también puede ser un programa.

Todos ellos están construidos a partir de código que contiene instrucciones que el ordenador puede ejecutar.

Podemos imaginarlo así:

ALGORITMO + CÓDIGO = PROGRAMA

Un programa es un conjunto de instrucciones que el ordenador puede ejecutar para conseguir determinados resultados.


Del problema al resultado

Podemos resumir todo lo que hemos visto en un pequeño esquema:

┌──────────────────┐
│ PROBLEMA │
│ │
│ ¿Qué queremos │
│ conseguir? │
└────────┬─────────┘

┌──────────────────┐
│ ALGORITMO │
│ │
│ ¿Qué pasos │
│ necesitamos? │
└────────┬─────────┘

┌──────────────────┐
│ CÓDIGO │
│ │
│ ¿Cómo escribimos │
│ esos pasos? │
└────────┬─────────┘

┌──────────────────┐
│ PROGRAMA │
│ │
│ Instrucciones │
│ que puede │
│ ejecutar el │
│ ordenador │
└────────┬─────────┘

┌──────────────────┐
│ RESULTADO │
│ │
│ El ordenador │
│ hace algo │
└──────────────────┘

Este proceso es la base de todo lo que aprenderemos a partir de ahora.


Programar es aprender a dar instrucciones

Ahora podemos volver a la pregunta inicial:

¿Qué significa programar?

Programar significa crear instrucciones que indiquen a un ordenador qué debe hacer para conseguir un determinado resultado.

Para hacerlo, normalmente necesitamos:

  • pensar qué queremos conseguir
  • dividir el problema en pasos
  • ordenar esos pasos (algoritmo)
  • escribirlos utilizando un lenguaje de programación (código)
  • y conseguir que el ordenador ejecute esas instrucciones.

Por eso programar no consiste simplemente en escribir código.

Antes de escribir código tenemos que pensar qué queremos que haga nuestro programa y ya luego lo trasladaremos a código usando un lenguaje de programación para que el ordenador haga lo que nosotros queremos.


💡 Curiosidad

Simplemente a modo de curiosidad, los primeros programas no se escribían como los programas que conocemos actualmente.

Los seres humanos han ido desarrollando diferentes formas de comunicarse con los ordenadores, desde instrucciones muy cercanas a cómo funciona internamente una máquina (ceros y unos) hasta lenguajes mucho más fáciles de leer para las personas.

Python es uno de esos lenguajes.

En las siguientes unidades veremos qué es exactamente Python y por qué podemos utilizarlo para comunicarnos con un ordenador.


Mini reto: programa a un robot

Imagina que tienes un robot delante.

El robot sabe seguir instrucciones, pero no puede adivinar lo que quieres decirle.

Tu objetivo es conseguir que el robot prepare un vaso de agua.

Escribe las instrucciones que tendría que seguir, paso a paso.

Por ejemplo:

1. ...
2. ...
3. ...
4. ...

Intenta ser lo más claro posible.

Ahora piensa...

Una vez hayas escrito tus instrucciones, responde:

1. ¿Importa el orden de los pasos?

¿Qué ocurriría si el robot intentase llenar el vaso antes de cogerlo?

2. ¿Hay alguna instrucción ambigua?

Por ejemplo:

"Coge agua."

¿De dónde tiene que cogerla?

3. ¿Qué ocurriría si eliminamos uno de los pasos?

¿El robot podría completar igualmente la tarea?


Qué debes recordar

Si tuvieras que quedarte solamente con unas pocas ideas de esta unidad, serían estas:

Programar es dar instrucciones a un ordenador para conseguir un resultado.

Un algoritmo es una serie de pasos ordenados para resolver un problema o conseguir un objetivo.

El código es la forma de escribir esas instrucciones utilizando un lenguaje de programación.

Un programa está formado por instrucciones que el ordenador puede ejecutar.

Y, sobre todo:

El ordenador no adivina. Tenemos que aprender a darle instrucciones claras y ordenadas.

En la siguiente unidad veremos cómo consigue un ordenador entender y ejecutar esas instrucciones.