Ir al contenido principal

100 días de código: Día 2

100 días de código

Input y Variables

Día 2

Leyendo la entrada del usuario

Vamos a ver cómo funciona el comando input. Se utiliza cuando el usuario debe ingresar información en la computadora. Es muy parecido al print, excepto que muestra un mensaje en la consola y luego espera al usuario hasta que escriba algo en el teclado y aprete Enter.

Copia el siguiente código en el editor y apretá run:

input("¿Cuál es tu nombre?: ")

Variables

Bien, input solicita algo al usuario, lo toma pero no tiene dónde ponerlo. Podemos cambiar eso con una variable, que es un valor que podemos usar para ponerle nombre y guardar datos.

nombreDeVariable = input("Nombre: ")

Aquí, nombreDeVariable es el nombre que le damos a nuestra variable, el cual crea un espacio en la memoria y donde podemos asignarle valores usando el símbolo =.

Nombrando variables

  • Las variable pueden tener cualquier nombre que desees, pero no se pueden usar espacios. Puedes usar:
  • guiones_bajos_entre_palabras
  • camelCaseParaFacilLectura

👉 Borrá todo el código de tu editor y copiá esto en el archivo main.py:

miNombre = input("¿Cuál es tu nombre?: ")
miEdad = input("¿Cuántos años tienes?: ")
print("Uh, ¡sos muy viejo!")
replit = input("¿Te gusta Replit? ")
print("¡Claro que te gusta!")

¡Bien! Ahora tenemos 3 variables: - miNombre tiene el nombre del usuario guardado. - miEdad guarda su edad. - replit guarda qué siente el usuario sobre este sitio.

Mostrando variables

Podemos ver el contenido de una variable imprimiendo su valor por la consola. Para eso, debemos usar la instrucción print y el nombre de la variable que usamos al otro lado del = en el comando input.
En el código, ahora podemos conocer el nombre usando print(miNombre) o la edad usando print(miEdad).

👉 Vamos a probarlo! Agrega este código al final y apretarun:

print()
print("Entonces, tu eres")
print(miNombre)
print("y con la asombrosa edad de")
print(miEdad)
print("y Replit para ti claramente es")
print(replit)

¿Pudiste ver lo que hizo print()? * Si hay texto literal (con comillas dobles " " o simples ' ') dentro de los ( ), el texto es mostrado. * Si hay un nombre de variable dentro de los ( ), entonces se muetra el contenido de esa variable. * Si no hay nada, entonces se muestra una línea en blanco.

Esta código se ve un poco raro, pero en breve ya lo vamos a mejorar.

Posibles errores

Primero, borra el código que haya en tu main.py. Luego, copia el bloque de código de ejemplo, aprieta run y mira qué errores aparecen. Arregla los errores y corre run de nuevo hasta que todo funcione. Al final podrás encontrar las soluciones.

Syntax Error

👉 Prueba el siguiente código en el editor. Luego, arreglalo hasta que funcione:

mi variable = input("¿Quién está ahí?")
print(mi variable)

¿Encontraste este error? ¿Qué podés arreglar?

  File "main.py", line 1
    mi variable = input("¿Quién está ahí?")
       ^
SyntaxError: invalid syntax
Name Error

👉 Prueba y arregla el siguiente trozo de código:

laAbuela = input("¿Cómo está la abuela? 😘")
print(laabuela)
¿Cómo está la abuela? 😘 bien
Traceback (most recent call last):
  File "main.py", line 2, in <module>
    print(laabuela)
NameError: name 'laabuela' is not defined
Respuestas
  • Syntax Error: Hay un espacio en el nombre de la variable, lo viste? No usamos espacios en los nombres de variables.

  • Name Error: La variable que intentamos mostrar no es la misma que creamos en primer lugar. La capitalización no es la misma. También sucederá lo mismo cuando queramos mostrar una variable que no creamos aun. Siempre hay que crear la variable antes de mostrarla.

Este sólo será raro...

👉 Prueba este código para ver qué pasa:

miAlmuerzo = input("¿Qué querés para almorzar? ")
print("Tu orden es la siguiente: ")
print("miAlmuerzo")
print("Lo antes posible!!")
¿Qué querés para almorzar? Sándwich
Tu orden es la siguiente: 
miAlmuerzo
Lo antes posible!!
  • Respuesta:
  • Quisimos mostrar una variable, pero quedó entre comillas!
  • Recuerda: Las comillas imprimen literalmente lo que hay dentro.
  • Si deseas mostrar el contenido de una variable, no hay que usar comillas.

Desafío del Día 2

  1. Pregunta por el nombre del usuario, su comida favorita, música favorita y dónde vive. Puedes inventar algunas otras preguntas.
  2. Guarda todas las respuestas en diferentes variables.
  3. Imprime una oración completa que incluya todas las respuestas del usuario.
  4. Agrega una línea al final con una afirmación positiva. Dile que es muy bueno en alguna de esas cosas!.


Si pudiste resolverlo o necesitás ayuda:

¡Escribilo en los comentarios!
Tu aporte, tanto sea de la solución como de cualquier pregunta, es bienvenido y le sirve a todos los que lean esto.
También, podés leer esta guía de ayuda sobre cómo encontrar la información necesaria para resolverlo.


## ¿Qué aprendiste?

Tomate un minuto para pensar qué aprendiste con este ejercicio.

  • ¿Alguna nueva instrucción?
  • ¿Por qué Python nos da funciones ya listas para usar?
  • ¿Qué es el código fuente y qué es la ejecución de un programa?


¡Muy bien!
En breve, aparecerá publicado el día 3. ¡Nos vemos!


100 días de código: Día 1

100 días de código

¡Hola, programador!

Vamos a comenzar nuestro propio desafío para aprender a programar. Y lo haremos utilizando un método que probó ser muy efectivo. 100 días de código surgió con un chico de secundaria que quería aprender a programar. Acá podés leer toda su historia -> link. Otros desafío muy conocido es La Hora del código, te invito a explorar el sitio y participar de alguna actividad.

Nosotros iremos transitando cada día de actividades de los 100 días de código en el sitio Replit. Si aun no tienes cuenta, adelántate y crea una! Luego de loguearte en el sitio, entra a la sección Learn y podrás encontrar los 100 días de código con Python.

Día 1

El espacio de trabajo

Sobre la izquierda de la pantalla, encontraremos la consigna a desarrollar. Al pie de cada explicación, tenemos flechas para avanzar a la siguiente lección, o volver a repetir o releer alguna pasada. La parte central es donde escribiremos el código, que se guarda en el archivo llamado main.py como se ve en la parte superior. Hacia la derecha, está la consola, que es donde el código se ejecuta e interactúa con el usuario. Abajo, tenemos el video con la explicación de David, quien habla un perfecto inglés. Les recomiendo activar los subtítulos: en inglés si les ayuda a entender mejor, y también se puede configurar la traducción automática a Español.

Cómo vamos a trabajar: Leemos la consigna, escuchamos el video, y lo pausamos cada vez que sea necesario. Una vez que entendimos la consigna, pausamos el video y escribimos el código. Lo bueno del video es que podemos volver a verlo todas las veces que sea necesario. Si aun no entendemos algo, también podremos guiarnos con este mismo texto: tendremos todas las consignas de cada día traducidas y explicadas.

Manos a la obra

Vamos a empezar con la primer lección que todo programador debe hacer: saludar al mundo. En la pantalla central, donde escribimos código en el archivo main.py, escribimos la siguiente línea y clickeamos Run:

print("Hello Replit")

Cuando veas líneas de código como las anteriores, podés copiar y pegarlas en el editor, o escribirlas directamente. Si todo funcionó bien, deberías ver en la ventana de la consola, tu hermoso mensaje!!

La primer instrucción

Acabamos de aprender el primer comando: print. Lo que hace es mostrar en la consola lo que sea que haya entre paréntesis. Es la forma en que nuestros programas muestran texto al usuario.
* Las comillas "" se usan para indicar que se desea mostrar exactamente esa cadena de texto, es decir, todo lo que esté dentro de las comillas. * El conjunto de texto, o lo que sea que haya entre las comillas, es llamado string o cadena.

Más código para probar:

print("Bueno,")
print("vamos a mostrar")
print("más líneas de código.")
print("""Cualquier cosa que
comience con triple comillas
y termine también con triple
comillas puede ocupas varias líneas e
incluso contener " comillas sin
que nada se rompa.""")

Posibles errores

A veces podemos tener errores de sintaxis al escribir código. ¿Qué es la sintaxis?. Estos son los más comunes:

Name Error

Este error lo encontraremos cuando: - Escribimos mal el nombre de una función. - Deletreamos mal algún nombre. - Agregamos o sacamos alguna máyúscula donde no debemos.

Probá el siguiente código en el editor. Luego, arreglalo hasta que funcione:

Print("¿Seguro que está mal?")

Siempre es importante leer los mensajes, que nos brindan ayuda para encontrar nuestro error.

Syntax Error

Este mensaje lo encontramos cuando: - El orden de los símbolos es incorrecto. - Olvidamos algún paréntesis ( ) o comillas " ".

Prueben y arreglen los siguientes trozos de código:

print "Por favor funcioná!!!"
print(Ahora  tiene que andar)

Desafío del Día 1

  1. Escribir tu nombre completo y la fecha del día de hoy por consola, en líneas de código separadas.
  2. Mostrar por consola el texto de abajo. Intentá hacerlo con sólo 1 instrucción print: I am signing up for Replit's 100 days of Python challenge! I will make sure to spend some time every day coding along, for a minimum of 10 minutes a day. I'll be using Replit, an amazing online IDE so I can do this from my phone wherever I happend to be. No excuses for not coding from the middle of a field!
  3. En la línea siguiente, muestra Hoy me siento más un emoji que demuestre cómo te estás sintiendo al respecto de este desafío.
  4. Agrega una línea más con Podés seguir mi progreso en replit.com/@ y tu nombre de usuario de replit. Esta es una buena manera de incentivar tu progreso cada día!.
  5. Dale Run a tu programa.


Si pudiste resolverlo o necesitás ayuda:

¡Escribilo en los comentarios!
Tu aporte, tanto sea de la solución como de cualquier pregunta, es bienvenido y le sirve a todos los que lean esto.
También, podés leer esta guía de ayuda sobre cómo encontrar la información necesaria para resolverlo.


## ¿Qué aprendiste?

Tomate un minuto para pensar qué aprendiste con este ejercicio.

  • ¿Alguna nueva instrucción?
  • ¿Por qué Python nos da funciones ya listas para usar?
  • ¿Qué es el código fuente y qué es la ejecución de un programa?


¡Muy bien!
Avancemos con el siguiente: Día 2.


Cómo encontrar ayuda en Internet

¡Hola, programador!

¿Estás trabado con un problema o ejercicio? ¿Necesitás ayuda?

En el camino de aprender a programar, muchas veces vamos a necesitar una respuesta que no tenemos. Todos los programadores nos encontramos continuamente con cosas que no sabemos resolver. Pero la gran mayoría de las veces, lo mismo ya le pasó a otra persona que generosamente compartie su solución en línea.
¿Cómo hacemos para encontrarlo entonces?

Diferentes tipos de ayuda

En Internet encontramos información en un sinfín de formas:

  • Manuales de referencia sobre el tema
  • Videos explicativos
  • Sitios de preguntas y respuestas
  • Libros digitales
  • Cursos online
  • Foros y comunidades de ayuda

Primer paso: Buscar tu necesidad

Google (o inserte aquí su buscador) es muy bueno encontrando lo que le pidamos. Haz una búsqueda de lo que necesitas resolver, el error que da tu programa o el dato que intentas averiguar.

Por ejemplo:

como sumar dos números ingresados por el usuario en python

python convertir texto en número

python crear una lista desde una cadena de texto

python abrir y editar un archivo

python TypeError: Can't convert int to str

Cuanto más específicos seamos en la búsqueda, mejor. Siempre intento poner primero el lenguaje o tema principal de lo que busco, y luego una buena descripción de mi problema.
Estas búsquedas la mayoría de las veces nos devuelven la respuesta en los primeros resultados (ojo con los anuncios). Muchas de las soluciones incluyen ejemplos de código.

Segunda opción: Manual de referencia

Si la búsqueda online no resultó, lo mejor es ir a la fuente. El sitio web oficial de la herramienta que estamos usando que nos da el problema, suele tener una guía de uso, ejemplos de código, tutoriales, etc. A veces no es tan sencillo, pero seguro que la información que buscamos en algún lado del sitio estará. En caso que la herramienta no tenga sitio web o documentación sobre su uso, entonces es mejor cambiar de herramienta: si no tiene un buen mantenimiento, no nos servirá en el largo plazo.

Tercera chance: Cursos online

Si disponemos de un poco más de tiempo, una buena alternativa es hacer un curso. Puede ser en video, en forma de tutorial, o como mejor nos guste. Los cursos suelen comenzar con temas básicos y agregan complejidad a medida que avanzan. Seguramente nos ayudará con nuestro problema y además tendremos un mejor contexto de la herramienta y su forma de uso.

Cuarta posibilidad: Hacer la pregunta

Si todo lo anterior no nos dio la respuesta, aun tenemos forma de encontrarla: dejar nuestra consulta y esperar que alguien nos responda. Hay muchos sitios dedicados a ser foro de consultas y respuestas, pero el más conocido es stackoverflow.com. Hay preguntas de prácticamente todos los temas, y a esta altura seguramente ya te apareció en los resultados de tu búsqueda. También, una buena alternativa es acceder al sitio de la herramienta y buscar allí si existe algún foro o comunidad online. Encontraremos personas con conocimiento del tema que seguramente podrán ayudarnos.


La API de tu currículum vitae

La API de tu currículum vitae

Cómo crear una API para que sea tu currículum

En este post vamos a escribir nuestra propia API mediante Flask, usando como datos nuestro currículum vitae. Luego vamos a publicar el código en GitHub y finalmente usando Heroku la implementaremos online. Al final tendrás tu propia API funcionando.

1- Instalar Python.

En la página oficial de Python podrás encontrar la versión de Python para tu sistema operativo.

2- Crear un Virtual Environment.

En Python, la mejor forma de aislar un proyecto y sus dependencias es con un entorno virtual. Es una carpeta especial donde se instalará todo lo que tu proyecto necesita.
Creamos una nueva carpeta donde guardar nuestro proyecto mkdir cv-nahuel-api, y cambiamos a esta cd cv-nahuel-api. Creamos un entorno virtual con el comando: python -m venv virtenv.

3- Instalamos lo necesario.

Primero que nada, debemos activar nuestro entorno virtual, para que el sistema sepa que queremos usar esos programas de esta carpeta en particular.
Ejecutamos source virtenv/Scripts/activate. Ahora, los comandos python y pip que ejecutemos serán los de la carpeta virtenv. Instalamos Flask, que por el momento será nuestra única dependencia y herramienta que utilizaremos para construir nuestra API: pip install flask. Junto con él, se instalan sus propias dependencias: Jinja2, Werkzeug y otros.

4- Creamos nuestra API.

En la carpeta principal de nuestro proyecto, creamos el archivo api.py con el siguiente esqueleto:

#!flask/bin/python
# -*- coding: UTF-8 -*-

from flask import Flask, request

app = Flask(__name__)


if __name__ == '__main__':
    app.run(debug=True)

Bien, nuestra api ya la podemos ejecutar con python api.py, pero aun no hace nada. Vamos a agregar la ruta básica, '/', para que muestre algo de información cuando la ejecutamos. Este código debe ir debajo de la definición de la variable app, pero antes del if del final.

@app.route('/')
def index():
    info = {
        "mensaje" : "Bienvenido a la API del curriculum vitae de Nahuel Tori.",
        "acciones" : [
            "GET /curriculum",
            "POST /mensajes"
        ]
    }
    return jsonify(info)

También debemos agregar jsonify al import inicial. ¿Qué hace esta función? Crea un objeto de tipo diccionario, con la información que queremos que nuestro servicio retorne. En la última línea, nos ayudamos del método jsonify de Flask para transformar ese objeto en un texto JSON válido.
Podemos ver agregamos una anotación al inicio @app.route, que usamos para indicarle a Flask cuál es la ruta que debe resolver con esta función.

Ahora si, cuando ejecutamos nuestra API y accedemos en nuestro navegador a http://127.0.0.1:5000/, podremos ver el mensaje.

Si no habías detenido previamente la ejecución, podrás ver cómo Flask detecta el cambio en el archivo al ser guardado, y vuelve a recargar la API.

5- Agregamos más recursos y acciones

Como buena API, en la nuestra los nombres de los endpoints describen los recursos usando sustantivos, y los verbos del protocolo HTTP describen las acciones que se pueden realizar.
Vamos a crear un recurso curriculum, que nos permita devolver la información de nuestro perfil personal mediante el verbo GET. También vamos a crear un recurso mensajes, donde usando el verbo POST nuestra API pueda recibir mensajes de quienes quieran ponerse en contacto con nosotros.

@app.route('/curriculum', methods=['GET'])
def cv():
    url_imagen = request.host_url + "static/FotoNahuel.jpg"
    cv = {
        "nombre" : "Nahuel",
        "apellido" : "Tori",
        "residencia" : "Argentina",
        "experiencia" : [{
            "posicion" : "< describe tu posición>",
            "empresa" : "< nombre de tu empresa >",
            "desde" : "< cuándo empezaste a trabajar >",
            "hasta" : "< si ya no trabajas más, cuándo >",
            "descripcion" : "< detalles >"
        }],
        "educación" : {
            "nivel" : "< nivel de tus estudios >",
            "titulo" : "< nombre de tu carrera >",
            "institucion" : "< dónde estudiaste >",
            "facultad" : "< más detalles >"
        },
        "intereses" : ["python", "apis", "enseñar"],
        "redes" : {
            "github" : "https://github.com/nahueltori",
            "twitter" : "https://twitter.com/nahueltori",
            "linkedin" : "https://www.linkedin.com/in/nahueltori"
        },
        "foto" : url_imagen
    }
    return jsonify(cv)

En esta función, estamos generando un gran objeto diccionario con toda nuestra información. Estos son algunos campos propuestos; vos podés incluir los que te parezcan mejor, como en tu CV.
En la primera línea describimos el endpoint dentro de la anotación, y también aclaramos que específicamente se responderá sólo al verbo GET.
Dentro de la función, lo primero que hacemos es armar la URL completa para proporcionar también una imagen nuestra: la imagen debemos guardarla dentro de una nueva carpeta llamada static dentro de nuestro proyecto. Recuerden agregar request al import de Flask en la primera línea.

Luego de probar su nuevo endpoint, probablemente varios caracteres no se lean correctamente. En realidad, es el formato estándar Unicode en los archivos JSON, y las computadoras pueden leerlo sin problemas. Para que nosotros también podamos, hay que agregar esta línea luego de definir la variable app:
app.config['JSON_AS_ASCII'] = False

Agregamos el otro endpoint:

@app.route('/mensajes', methods=['POST'])
def contacto():
    mensaje = request.get_data()
    if not mensaje:
        abort(400, description="Debe enviar su mensaje en el body del POST.")
    print("MENSAJE DE CONTACTO: " + str(mensaje))
    return "Gracias por su mensaje."

En esta función, definimos nuestro endpoint mensajes aceptando solamente llamadas mediante el verbo POST.
Lo que hacemos es buscar el mensaje en el cuerpo del llamado HTTP: si no hay nada, entonces respondemos con un error de código 400, que significa que el request recibido no tiene el formato correcto. También indicamos en la descripción qué es lo que está mal: de esta forma, quien nos invoque sabrá cómo hacerlo correctamente la próxima vez. También necesitaremos agregar abort entre los imports de Flask.
Si había algún contenido en el cuerpo del llamado, entonces ese es el texto que nos interesa: nuestro mensaje. En este ejemplo, por simplicidad solamente hacemos un print de su contenido, pero podría agregarse el código para mandar este mensaje por email, por ejemplo. Finalmente, devolvemos un mensaje de respuesta ante una llamada correcta.

Muy bien, en este punto, nuestra API está conceptualmente terminada. Pueden extenderla todo lo que gusten, agregar más endpoints, validaciones, información, links o lo que gusten.

6- Preparamos para subir nuestra API a un servicio de Host

En primer lugar, debemos agregar esta línea de código:

app.config['JSONIFY_PRETTYPRINT_REGULAR'] = True

Y cambiar esta:

if __name__ == '__main__':
    app.run()

Verán que al no estar utilizando más el modo debug, no funciona más el hot-reloading. Tampoco se formatea el mensaje JSON para verse mejor, por eso la primera configuración.

Luego, debemos crear tres archivos de configuración necesarios para el repositorio online y para subir y ejecutar correctamente el proyecto en nuestro Host.

.gitignore

En la carpeta principal, creamos un archivo llamado .gitignore. se utiliza para excluír determinados elementos de que sean guardados en nuestro repositorio de código en GitHub, que haremos en el siguiente paso. El archivo debe contener las siguientes líneas:

__pycache__/
.env
virtenv/

Principalmente, nos servirá para que toda la carpeta de nuestro entorno virtual local no sea sincronizada, ya que no es necesario.

requirements.txt

También lo creamos en la carpeta principal, y debe tener el siguiente contenido:

Flask
gunicorn

Este archivo indica qué dependencias tiene nuestro proyecto, y que serán instaladas cuando se quiera ejecutar. Pueden ver que hay una nueva que no nombramos antes, gunicorn. Esta la utilizaremos para correr nuestro servidor web de manera productiva, ya que el que Flask provee solamente sirve para hacerlo de forma local o en ambientes de desarrollo.

Procfile

En la carpeta principal creamos un archivo llamado Procfile, con el siguiente contenido:

web: gunicorn api:app

Este archivo será utilizado por Heroku, nuestro Host online, para ejecutar la api.

7- Sincronizamos nuestro código en GitHub

GitHub es el repositorio online más popular donde subir nuestro código, y es muy utilizado por reclutadores para conocernos más a través de cómo programamos.
Para poder subir nuestro código a GitHub, antes debemos tener instalado algún cliente Git. Para eso, lo podemos descargar acá.
Acá hay una guía rápida sobre cómo configurar la herramienta para usarla por primera vez.

Vamos ahora a GitHub, y si aun no tienen una cuenta les recomiendo crearla: la pueden poner en la información de su currículum en la API :). Luego de crear la cuenta, vamos a new a crear el repositorio para guardar nuestro proyecto.
Completar con un nombre relacionado al proyecto, como cv-nahuel-api por ejemplo. Muy importante: no tildar ninguna de las opciones de inicialización del repositorio en Initialize this repository with. Eso nos permitirá subir todo el código de nuestra carpeta local sin problemas.

Una vez creado el repositorio, podemos subir el código siguiendo las mismas instrucciones que vemos en pantalla:

  • Parados en la carpeta de nuestro proyecto, ejecutamos git init.
  • Luego git add . para incluir todos los archivos del directorio.
  • Con git commit -m "Primera versión de nuestro CV en una API" generamos el paquete de código trabajado.
  • Creamos un nombre para la línea por defecto donde subir el código: git branch -M main.
  • Configuramos nuestra carpeta con el repositorio online creado: git remote add origin https://github.com/nahueltori/cv-nahuel-api.git
  • Finalmente, con este comando nuestro código quedará guardado en la nube: git push -u origin main.

En adelante, cada vez que hagamos un cambio, sólo tendremos que ejecutar lo siguiente:

  • Luego git add . para incluir todos los archivos del directorio.
  • Con git commit -m "Comentario descriptivo de lo que hicimos" generamos el paquete de código trabajado.
  • Finalmente, con este comando nuestro código quedará guardado en la nube: git push -u origin main.

8- Heroku: hosting de proyectos para desarrolladores

Heroku es una plataforma cloud que nos permite crear aplicaciones muy rápidamente, sólo ponemos el código y la plataforma se encarga de toda la infraestructura para que esté funcionando.

  • Si aun no tienen una cuenta, vamos a crear una nueva.
  • En el dashboard, hacemos click en "New" -> "App".
  • En Deployment method, seleccionamos "GitHub". Si nunca habían conectado su cuenta previamente, los redirigirá al sitio de GitHub donde deberán ingresar su usuario y contraseña para autorizar a Heroku poder buscar su código.
  • Una vez conectadas las cuentas, podrán buscar el repositorio por su nombre: cv-nahuel-api y apretan "Search".
  • En el listado les muestra los repositorios encontrados, simplemente clickeamos "Connect" en el correcto.
  • Es una muy buena idea activar los Deploys automáticos: cada vez que hagan push en su repositorio, Heroku se dará cuenta e instalará la nueva versión de su aplicación. Importante: si lo activamos, recordar sólo hacer push del código luego de haber probado que nuestra aplicación funciona correctamente.
  • Finalmente, debemos hacer el primer deploy de nuestra aplicación. Para eso, clickeamos el botón "Deploy Branch" en la sección "Manual deploy".

Si todo funcionó bien, Heroku se tomará un tiempo para hacer todo lo necesario y entregarles una aplicación instalada. Pueden verla con el botón "Open app". Si algo funcionó mal, en el botón "More" pueden ir a "View logs" y chequear qué funcionó mal.

En este momento, pueden probar agregar algo a su proyecto (por ejemplo el README.md, o algún nuevo endpoint), hacer el push en el repositorio de GitHub y ver cómo Heroku instala automáticamente la nueva versión de su aplicación.

Espero que te haya servido, y si te quedó alguna pregunta o algo no te funciona, no dudes en escribirme.

Instalando lo necesario

Para poder trabajar cómodamente, lo mejor es tener acceso a una computadora personal en la cual escribir tus programas, guardarlos, probarlos y reutilizarlos. Para eso, necesitamos que tenga instalado cierto software que repasaremos a continuación.

Leer más…

Bienvenidos

¡Bienvenidos a Aprende Programando!

Si estás leyendo estas líneas, entonces quiere decir que vas a aprender a programar, utilizando un lenguaje simple y fácil de aprender.

¿A quiénes está dirigido?

Todos pueden aprender a programar, por lo que si tenés ganas y la motivación suficiente, podrás aprender a decirle a la computadora que haga todo lo que desees.

Qué necesitás para empezar:

  • Una computadora, cualquiera sirve, mientras tenga conexión a internet.

  • Instalar el software necesario, acá lo tenés bien explicado.

  • Practicar y estudiar regularmente. Ya sea un rato todos los días o 2-3 horas todas las semanas, hacerte una rutina te ayudará a ir ganando conocimiento y cimentarlo con la práctica.

¡Suerte!