Ejercicio para aprender a programar 01 - Excel desde Airbnb
Tags: aprenderaprogramar, español, principiante
Published: 2019-05-19 19:10:34

---
title: Ejercicio para aprender a programar 01 - Excel desde Airbnb
published: true
description: Ejercicio para aprender a programar. Post de la serie "en que pienso cuando pienso acerca de programar".
series: En que pienso cuando pienso acerca de programar
tags: aprenderaprogramar, español, principiante
---


###Problema:
####Un youtuber nos pide que le demos una pantalla donde escribas una ciudad y le descargue un archivo excel con el nombre de los host de departamentos de airbnb. Quiere usar la lista para ponerse en contacto con ellos y negociar con cada uno sobre hospedaje gratis si los anuncia en su canal.


###¿Cómo hacer el programa? 

####Paso 1: Entender el problema

Necesitamos crear un archivo de excel con datos de airbnb. Esta etapa es muy importante porque si entendemos otra cosa que no sea lo que nos pidieron vamos a ser padres de un proyecto fracasado - y nadie quiere eso-

####Paso 2: Resolver el problema de forma manual/ personal

Podemos entrar a airbnb y buscar hospedaje en una ciudad en particular. Podemos ver el nombre del anfitrión y un link para contactarlo. Lo que haremos es “copiar esa información” y crear un archivo de excel con 3 columnas propiedad, nombre del host y link de contacto. A grandes rasgos esto es lo que se necesitamos.

####Paso 3: Definir las etapas de cómo resolvemos el problema

En esto radica la expertis de un programador: diseñar pasos / procesos. Crear una máquina que "hará las cosas por tí".

Nuestro programa recibirá el nombre de una ciudad, con esa ciudad se conectará de cierta forma a airbnb, sacará los datos de los hospedajes disponibles y después el programa creará un archivo de excel y al finalizar nos lo enviará.

Cuando comienza uno a programar esta es la etapa que puede ser más confusa porque pasamos de pensar en cómo hacemos las cosas a como le decimos a una computadora que haga lo mismo, y aquí consideramos obvias cosas que no son.

Cuando pensamos en que manualmente hacemos un archivo de excel, pensamos: listo ya esta el archivo de excel y ya termine.

En realidad estamos pensando que “hacer el archivo de excel”, “enviar el archivo de excel” y “notificar que se envió el archivo de excel”.  Un paso que para nosotros es muy obvio se transformó en 3 pasos que debemos indicarle a la computadora que debe hacer.

Definimos la secuencia de pasos siguiente:
Recibir el nombre de ciudad
Conectarse airbnb con el nombre de la ciudad y “sacar los datos de hospedaje”
Con la lista de datos de hospedaje crear un archivo de excel
Enviar / descargar  el archivo de excel


![image](http://productividadti.com.mx/blog/2019/bpm_02_memorama1.png)

####Paso 4 .- Decidir que paso vamos a resolver

¿Como saber cual es el paso más difícil de realizar? 
Como principiante puede parecer todo abrumador y todo se debe a la falta de conocimiento y práctica, así que tienes que investigar todos los pasos -sin meterse a hacerlos- para determinar de cual paso encuentras menos información o no encuentras. - solución buscar en internet-

####Ejemplo de búsqueda
Paso 1: cómo obtener el valor de un campo de texto
Paso 2: cómo descargar datos de airbnb
Paso 3 cómo crear archivo de excel:
Paso 4 cómo descargar archivo

Ya después de que investigamos vemos que el paso más difícil es el El Paso 2: Conectarse a airbnb.

Ya tenemos identificado un punto de inicio.

Solo hasta este momento pensamos en escribir código. Hasta este momento tenemos un objetivo claro : vamos a resolver el paso 2

Cada paso está formado acciones que se ejecutan en secuencia, pero las acciones no se ejecutan solas. Llamemos actores/objetos a quienes ejecutan estas acciones.

Vamos a escribir una parte de del programa, la llamamos Paso 2. Será una función o un método de clase que tomará un texto, se conectará a airbnb y devolverá una lista de datos (con datos de nombre y teléfono).

El actor podria llamarse ConexionAirbnb y la función “getDatosHostFromCiudad”

Funcion getDatosHostFromCiudad(ciudad){
   /*se concecta a airbnb*/
   Return  textoConDatosAirbnb
}


De forma paralela a nuestro programa construiremos un “programa  de pruebas” donde estaremos ejecutando el paso que estamos desarrollando. ¿porqué? - porque todavía no tenemos los pasos iniciales , no tenemos la pantalla donde el usuario pone el nombre de la ciudad.

¿Ya que resolvimos la conexión con airbnb con que paso continuamos?

De nuevo… buscamos la parte más difícil, en este caso puede ser crear el archivo de excel.

La acción podría llamarse crearArchivoExcel y la clase/objeto al que pertenezca se podría llamar FactoryExcel

Funcion crearArchivoExcel (textoConDatosAirbnb){
     /* crea archivo de excel */
   Return rutaDeAccesoDelArchivoDeExcelCreado
}

De nuevo remarcamos el punto, el programa ya creó el archivo de excel. Al crearlo lo guarda en algún lado “ubicación temporal y el siguiente paso es descargar/enviar un archivo de excel. Para hacer eso solo necesitamos saber dónde está el archivo que vamos a enviar.


De igual forma, trabajamos en nuestro programa de pruebas, usamos unos datos predeterminados para el paso3 ( ¿que datos? Copiamos los datos de respuesta que nos dio el paso 2 y los usamos todo el tiempo) - no ejecutamos el paso 2, solo trabajamos con el paso 3-


Resolvemos el Paso 1 y 2. En este momento creamos un paso final… un paso 5. Que tomará cada paso del 1 al 4 para devolver la solución del problema.


En este punto podemos decir que ya resolvimos el problema. Si y no… para una persona que no es programador ya está resuelvo el problema pero pensando como programador estamos a la mitad del camino.