Recursos Python

Recursos libres para aprender a programar en español

View the Project on GitHub flbulgarelli/recursos-python

Basado en https://github.com/mumukiproject/mumuki-guia-python3-que-es-la-programacion

¿Qué es la programación?

Te damos la bienvenida al mundo de la programación 😁. En esta lección vamos a dar respuesta a ¿Qué es la programación? y otras preguntas que quizás no sabías que tenías. 👐

¡Comencemos! 💪

1. Vamos programando

Aunque la programación parece una ciencia exacta, programar es el arte de hacer que una computadora resuelva nuestros problemas.

Momento… ¿arte? 😱 ¡Sí! Hay muchas formas de resolver un problema y encontrarlas es un proceso creativo 💡. El resultado de este proceso es un programa: una descripción de la solución al problema que puede ser ejecutada por una computadora.

Saber programar nos da un gran poder: en lugar de hacer tareas repetitivas y tediosas, usaremos nuestros conocimientos e imaginación para automatizarlas (por suerte, la computadora no se aburre 😉).

¿Cuáles de estos problemas crees que se pueden resolver con programación?

  1. 🔲 La contabilidad de una empresa.
  2. 🔲 La reserva de un turno.
  3. 🔲 Corregir un examen.
  4. 🔲 La creación de un videojuego.
  5. 🔲 Realizar videollamadas.
  6. 🔲 Reconocer imágenes
  7. 🔲 Conducir un robot en Marte.

Respuesta

👀 Ver 1. ☑️ La contabilidad de una empresa. 1. ☑️ La reserva de un turno. 1. ☑️ Corregir un examen. 1. ☑️ La creación de un videojuego. 1. ☑️ Realizar videollamadas. 1. ☑️ Reconocer imágenes 1. ☑️ Conducir un robot en Marte.

Para pensar

¡Sí! Todos estos problemas se pueden resolver programando. También agendar una reunión, conocer nuestro pasado a través de nuestros genes, escuchar nuestra banda favorita y muchísimos más. 🤯

2. No está todo programado

Entonces todo se puede resolver con programación, ¿no? 🧐

Mmm, en realidad no… 😞

¿Cuáles de estos problemas crees que se pueden resolver con programación?

  1. 🔲 Resolver una discusión.
  2. 🔲 Determinar si un cuadro es bello.
  3. 🔲 Empatizar con otras personas.
  4. 🔲 Ninguno de los anteriores

Respuesta

👀 Ver 1. ❎ Resolver una discusión. 1. ❎ Determinar si un cuadro es bello. 1. ❎ Empatizar con otras personas. 1. ☑️ Ninguno de los anteriores

Para pensar

¡Exacto! Ninguno de estos se puede resolver utilizando programación. Diremos que la programación nos puede ayudar con aquellos problemas que pueden representarse en términos de una secuencia conocida y ordenada de pasos. 📋

3. ¿Esto también es una computadora?

Una computadora no es sólo el aparato con una pantalla y un teclado 💻, sino cualquier máquina capaz de almacenar y procesar información, que nos ayuda a resolver problemas.

Un montón de objetos son computadoras aunque no lo creas. Los teléfonos inteligentes (smartphones), televisores smart y tablets 📱 son computadoras que cumplen funciones más específicas.

¿Cuáles de los siguientes dispositivos se pueden programar?

  1. 🔲 Licuadora antigua.
  2. 🔲 Consola de videojuegos.
  3. 🔲 Navegador GPS.
  4. 🔲 Teléfono celular.
  5. 🔲 Una mesa de madera.
  6. 🔲 Cajero automático.

Respuesta

👀 Ver 1. ❎ Licuadora antigua. 1. ☑️ Consola de videojuegos. 1. ☑️ Navegador GPS. 1. ☑️ Teléfono celular. 1. ❎ Una mesa de madera. 1. ☑️ Cajero automático.

Para pensar

¡Perfecto! 👌 Aunque todos estos dispositivos son computadoras no tienen los mismos objetivos ni sirven para resolver los mismos problemas.

4. Aplicaciones vs. Sistemas

¿Aplicaciones vs. Sistemas? No, no estamos hablando de una nueva superproducción de Hollywood 🎥

Si bien muchas veces utilizamos el término aplicación para hablar tanto de una calculadora ➗ como de una red social 👥, no estamos hablando de lo mismo:

¿Cuáles de los siguientes crees que son sistemas? Si no conocés alguno de estos nombres, podés darles click.

  1. 🔲 Bloc de notas
  2. 🔲 AFIP
  3. 🔲 Instagram
  4. 🔲 Mercado Libre
  5. 🔲 Despegar
  6. 🔲 Buscaminas
  7. 🔲 Fortnite
  8. 🔲 Minecraft
  9. 🔲 Solitario
  10. 🔲 Mumuki

Respuesta

👀 Ver 1. ❎ [Bloc de notas](https://es.wikipedia.org/wiki/Bloc_de_notas) 1. ☑️ [AFIP](https://www.afip.gob.ar/sitio/externos/default.asp) 1. ☑️ [Instagram](https://www.instagram.com) 1. ☑️ [Mercado Libre](https://www.mercadolibre.com.ar) 1. ☑️ [Despegar](https://www.despegar.com.ar) 1. ❎ [Buscaminas](https://es.wikipedia.org/wiki/Buscaminas) 1. ☑️ [Fortnite](https://www.epicgames.com/fortnite/es-ES/home) 1. ☑️ [Minecraft](https://www.minecraft.net/es-es) 1. ❎ [Solitario](https://es.wikipedia.org/wiki/Solitario_Microsoft) 1. ☑️ [Mumuki](https://mumuki.io/home)

Para pensar

Quizás la diferencia entre Mercado Libre y Notepad sea obvia, pero, ¿por qué decimos que unos juegos son sistemas y otros no?

¡Por la complejidad de los mismos! Juegos online ☁️, como Fortnite y Minecraft, deben permitir jugar al mismo tiempo a miles de personas en diferentes lugares del mundo 🌎. Sin embargo, no es el caso del solitario 🃏 o el buscaminas 🚩 . Pero cuidado, aunque no son sistemas sí son programas.

5. Algo con ritmo

Un algoritmo es una secuencia de pasos ordenados para la resolución de un problema. Dicho esto…

¿Cuáles de estos crees que son algoritmos? 🤔

  1. 🔲 Una receta de cocina.
  2. 🔲 Las instrucciones para hacer un origami.
  3. 🔲 Los pasos para resolver un cubo Rubik.
  4. 🔲 La lógica que siguen las redes sociales para sugerirte contactos.
  5. 🔲 Todas las anteriores.

Respuesta

👀 Ver 1. ❎ Una receta de cocina. 1. ❎ Las instrucciones para hacer un origami. 1. ❎ Los pasos para resolver un cubo Rubik. 1. ❎ La lógica que siguen las redes sociales para sugerirte contactos. 1. ☑️ Todas las anteriores.

Para pensar

¡Exacto!🙌 Aunque sea un término que en el último tiempo asociamos a la programación, los algoritmos no son exclusivos de ella. 👀

6. Flor de algoritmo

Ahora que ya sabemos bien lo que es un algoritmo…

Ordena los siguientes pasos para poder dibujar una flor 🌸:

  • Dibujá el tallo pegado a uno de los pétalos.
  • Empezá con un círculo. Este será el centro de la flor.
  • Alrededor del centro dibujá círculos que tengan igual tamaño pegados entre ellos. Estos serán los pétalos.

Respuesta

👀 Ver El orden debería ser el siguiente: 1. Empezá con un círculo. Este será el centro de la flor. 1. Alrededor del centro dibujá círculos que tengan igual tamaño pegados entre ellos. Estos serán los pétalos. 1. Dibujá el tallo pegado a uno de los pétalos.

7. ¿Qué decís?

Al comunicarnos los seres humanos debemos seguir una serie de lineamientos pero probablemente entendamos un texto que tenga faltas de ortografía o una frase con verbos mal conjugados. 🙃

Si bien todas estas frases tienen la misma intención, ¿cuál está correctamente escrita?

  1. 🔲 ola k asé?
  2. 🔲 hola, ¿qué haces?
  3. 🔲 ?hola qué hacés¿
  4. 🔲 hola, que? haces
  5. 🔲 hoal, ¿qéu haecs?

Respuesta

👀 Ver 1. ❎ ola k asé? 1. ☑️ hola, ¿qué haces? 1. ❎ ?hola qué hacés¿ 1. ❎ hola, que? haces 1. ❎ hoal, ¿qéu haecs?

Para pensar

¡Perfecto! solo la segunda frase cumplía las reglas del lenguaje español pero probablemente pudiste comprender todas a pesar de que en algunas:

8. No te entiendo nada

Para comunicarnos con una computadora y darle instrucciones también vamos a necesitar escribirle de alguna forma. Pero en lugar de hacerlo en un lenguaje natural (es decir, uno que las personas usamos cotidianamente, como por ejemplo el español), lo haremos usando un lenguaje formal: uno inventado, con reglas precisas y que está diseñado para que una máquina lo pueda entender.

Por ejemplo, así se podría ver uno de estos textos, que de ahora en más llamaremos código:

def hola_mundo():
    print('hola mundo')

Recién vimos que las oraciones, frases o párrafos escritos en un lenguaje natural deberían cumplir ciertas reglas sintácticas. ¿Pero qué pasa cuando escribimos código? 🤔 ¡También tendremos que cumplir sus reglas! Siguiendo con el ejemplo anterior, ninguno de éstos códigos son equivalentes:

Def Hola_mundo():
    Print('hola mundo')
def hola_mundo[]:
    print('hola mundo')
def hola_mundo():
print('hola mundo')

Si no cumplimos con estos principios, a los cuales llamaremos sintaxis, la computadora no podrá interpretar nuestra intención y esto llevará a que nuestros programas no funcionen como lo teníamos planeado. 👎

Seleccioná qué porción de código es idéntica a:

def doble(numero):
   return numero * 2

🔲

def doble(número):
  return número * 2

🔲

def doble(numero):
  return numero + numero

🔲

def doble(numero):
  return numero * 2

🔲

def doble(numero)
  return numero * 2

Respuesta

👀 Ver ❎ ```python def doble(número): return número * 2 ``` ❎ ```python def doble(numero): return numero + numero ``` ☑️ ```python def doble(numero): return numero * 2 ``` ❎ ```python def doble(numero) return numero * 2 ```

Para pensar

Si bien solo la tercera opción era idéntica al código dado, la segunda opción tiene una particularidad; es notorio que sintácticamente no es lo mismo:

def doble(numero):
    return numero * 2

que:

def doble(numero):
   return numero + numero

Peeeero… desde el punto de vista semántico, es decir, desde su significado, hacen lo mismo. 🤓

9. Hablándole a la computadora

Para formalizar un poco lo que venimos viendo, diremos que para darle órdenes a una computadora tenemos que hacerlo escribiendo en un lenguaje de programación ⌨️. Y las computadoras, al igual que los seres humanos, pueden entender más de un lenguaje.

¿Cuáles de los siguientes crees que son lenguajes de programación?

  1. 🔲 Español.
  2. 🔲 Ruby.
  3. 🔲 Mozilla Firefox.
  4. 🔲 Python.
  5. 🔲 Inglés.
  6. 🔲 Javascript.

Respuesta

👀 Ver 1. ❎ Español 1. ☑️ Ruby: es un lenguaje de programación inventado en los 90. 1. ❎ Mozilla Firefox: es un programa para navegar en internet 1. ☑️ Python: es un lenguaje de programación creado a fines de los 80 1. ❎ Inglés 1. ☑️ Javascript: es un lenguaje de programación, también creado en los 90

Para pensar

¡Muy bien! 🎉 Si bien cuando programamos podemos encontrar palabras en inglés u otros idiomas, los lenguajes de programación siguen reglas totalmente diferentes de las de aquellos. De hecho, no necesitamos saber hablar en inglés para poder programar. 🙌

10. La computadora políglota

OK, pero ¿por qué hay diferentes lenguajes si todos sirven para dar órdenes a una computadora? 🤔 De la misma forma que por motivos culturales e históricos existen muchos idiomas (y todos sirven para comunicarnos entre personas, claro 😛), a lo largo del mundo y la historia de la computación han surgido formas distintas de decir lo mismo. 🗣️

Además, mientras algunos lenguajes sirven para cualquier tipo de problema (lenguajes de propósito general), otros sirven para hacer cosas específicas. Y por si esto fuera poco, cada uno cosecha fans 🎸 y tiene su propia comunidad. 📢

Veamos ejemplos de código que hacen lo mismo en 3 lenguajes de programación distintos.

Python:

def doble(numero):
    return numero * 2

JavaScript:

function doble(numero){
    return numero * 2;
}

Ruby:

def doble(numero)
   numero * 2
end

¿Cuál de los siguientes códigos crees que está escrito en Python?

🔲

def saludar(nombre)
  "Hola " + nombre
end

🔲

function saludar(nombre) {
  return "Hola " + nombre;
}

🔲

def saludar(nombre):
  return "Hola " + nombre

Respuesta

👀 Ver ❎ ```ruby def saludar(nombre) "Hola " + nombre end ``` ❎ ```javascript function saludar(nombre) { return "Hola " + nombre; } ``` ☑️ ```python def saludar(nombre): return "Hola " + nombre ```

Para pensar

¡Excelente! 👏

A pesar de que estos códigos estaban escritos en distintos lenguajes de programación, hacían lo mismo.

11. Thor, Eddie Thor

Para escribir código cómodamente vamos a necesitar una herramienta llamada editor de código, que se parece bastante a un editor de texto, pero no sirve para escribir poemas, currículums, o trabajos prácticos de la escuela (donde nos va a importar que nos corrija la ortografía, subrayar, poner negritas o cambiar colores), sino para crear programas. 🤩

Muchos de estos editores de código (o editores a secas, de ahora en más) se pueden instalar en tu propia computadora. Algunos de ellos son:

Además, para desarrollar aplicaciones y sistemas más complejos, existen herramientas aún más completas (¡y complejas! 😓) que se conocen como Entornos Integrados de Desarrollo (IDEs por sus siglas en inglés). Uno de los más populares es PyCharm. También existen IDEs en línea como Colaboratory y Jupyter que no requieren que los descarguemos en nuestra computadora. 💪

Para pensar

A lo largo de esta lección formalizamos algunos conceptos que escuchamos habitualmente: programación, aplicación, sistema, computadora, entre otros ☺️. Al mismo tiempo conocimos algunas herramientas que nos ayudarán a la hora de programar. 👍

¡Sigamos con la siguiente lección para sumergirnos en estas aguas! 🤿