Los programadores somos personas obsesionadas con el aprendizaje y yo no me libro. He estado varias semanas reflexionando sobre como podía avanzar profesionalmente y finalmente he llegado a la conclusión de que necesito tapar algunos agujeros en mi curriculum. Para que eso no fuese muy aburrido he elegido hacerlo con un lenguaje nuevo para mi: Python 3.6

Es decir que voy a reforzar mi puesto de Full stack developer en dos aspectos principalmente:

  • En back-end con python
  • En front-end con react

Por el camino tengo que reconstruir mi portfolio personal y poner en valor correctamente toda la experiencia ganada en la etapa junior. Una vez todo puesto en orden…

Cuando esta primera etapa termine, hay varios caminos que se presentan y que me motivan:

  • Data analysis / Machine learning
  • VR / AR
  • Mas front-end y aplicaciones moviles (PWA, react native)

Pero eso llegara mas tarde y aun lo veo borroso. Solo se puede hacer una cosa a la vez, asi que hoy he comenzado a ver algunos básicos de Python que me ayudan a arrancar haciendo algunos scripts:

1. Abre una url en el navegador cada dos segundos

import webbrowser
import time


print("This program started on "+time.ctime())
breaks = 3

while breaks > 0:
    time.sleep(2)
    webbrowser.open("https://www.youtube.com/watch?v=IkOLYvOvH2w")
    breaks = breaks - 1

2. Cambia el nombre a una lista de ficheros

import os


def rename_files():
    photos_path = "/home/defnx/PycharmProjects/learn/photos"
    os.chdir(photos_path)
    file_list = os.listdir(photos_path)
    table = str.maketrans(dict.fromkeys("0123456789"))

    for file_name in file_list:
        os.rename(file_name, file_name.translate(table))


rename_files()

3. Dibuja en una ventana

import turtle


def main():
    window = turtle.Screen()
    window.bgcolor("black")
    drawer = turtle.Turtle()
    drawer.color("red")
    drawer.speed(20)
    drawer.shape("turtle")

    for i in range(1, 37):
        draw_square(drawer)
        drawer.right(10)

    window.exitonclick()


def draw_square(drawer):
    for i in range(1, 5):
        drawer.forward(200)
        drawer.right(90)


main()

4. Envía sms usando twilio

from twilio.rest import Client

account_sid = "XXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token  = "XXXXXXXXXXXXXXXXXXXXXXXXXXX"
client = Client(account_sid, auth_token)

message = client.messages.create(
    to="+34456789123",
    from_="+34456789123",
    body="Hello from Python!")

print(message.sid)

5. Verifica si en un texto hay tacos

import urllib.request
import urllib.parse


def read_text():
    quotes = open("/home/defnx/PycharmProjects/learn/text")
    contents_of_file = quotes.read()
    quotes.close()
    check_profanity(contents_of_file)


def check_profanity(text_to_check):
    query = urllib.parse.urlencode({'q': text_to_check})
    url = "http://www.wdylike.appspot.com/?"+query
    connection = urllib.request.urlopen(url)
    output = connection.read()
    connection.close()

    if b"true" in output:
        print("Profanity Alert!!")
    elif b"false" in output:
        print("This document has no curse words!")
    else:
        print("Could not scan the document properly.")


read_text()