Uno de los lenguajes más lógicos y simples en cuanto a sintaxis estructural es Python. Por supuesto que puede llegar a un nivel de complejidad tipo “ninja”, pero lo que viene a continuación les va a gustar.

¡Python hace el trabajo!

Python

Detrás del montón de líneas de código que “a veces” copias sin dolor, estuvo otra persona invirtiendo su tiempo y esfuerzo, como dice un buen amigo: “No me gusta que me digan Ingeniero, me gusta que me llamen sensato”.

Aquí algunos consejos para ser más productivo con Python.

1. Domina las formas naturales del lenguaje

  • Listas por comprensión. Son la forma más concisa de crear y transformar las listas, para ello utiliza las cláusulas for-if.
  • ppl = ['Alice', 'Bob', 'Carol', 'Doug']
    excited_ppl = [e + '!!' for e in ppl]
    ppl_len = [len(x) for x in ppl]
  • Generadores. Utilizados para definir iteradores que casi siempre ocasionan menos sobrecarga de la memoria.
  • # Use generator to generate a stream of primes
    def gen_primes():
        n = 2
        while True:
            for x in range(2, n):
                if n % x == 0:
                    break
            else:
                yield n
            n += 1
    
    for p in gen_primes():
        print(p)
  • Decoradores. Geniales para la limpieza y “setup” del código como las autenticaciones, almacenamiento en caché, y velocidad en el escaneo del código.
  • def make_bold(fn):
        return lambda : "" + fn() + ""
    
    def make_italic(fn):
        return lambda : "" + fn() + ""
    
    @make_bold
    @make_italic
    def hello():
      return "hello world"
      
    helloHTML = hello()
  • Administradores de contexto. Proveen una forma conveniente de implementar protocolos de sincronización entre el cierre rápido de archivos y otros objetos.
  • from contextlib import contextmanager
    
    @contextmanager
    def tag(name):
        print "" % name
        yield
        print "" % name
    
    >>> with tag("h1"):
    ...    print "foo"
    ...
    

    foo

2. Listas, diccionarios, “sets”

Familiarizarse con todos los métodos de estructura de datos. Python es genial con este tipo de estructuras sintácticas para dividir listas y operaciones matemáticas.

3. iPython

Ipython

Con esta API prueba todos tus fragmentos de código, inspecciona objetos, funciones, tiempos, etc. todo de forma interactiva y ágil.

4. Analiza

Engancha herramientas como PyLint, PyFlakes o PyChecker a tu editor para revisar tu código mientras avanzas.

5. Saca ventaja de la librería

Python incluye por defecto una extensa librería, acostúmbrate a ella (urllib2, time, daytime, random, intertools, functools, re, collections, etc.).

6. Trabaja con los módulos print / pdb

En especial print es bastante efectivo en Python porque no es necesario compilar el código de nuevo para iniciar el comando, pdb es un código fuente interactivo depurador de los programas de Python

7. Elige convenciones “fuertes” de nomenclatura

De esta manera logras que tu código sea más auto-documentado. Por ejemplo, si en el código base tienes “user ids”“user objects” utiliza siempre:

*_user_id para el principal y *_user para el último.

En serio, reflexiona

¿Cómo te aproximas a los problemas, buscas soluciones rápidas o respuestas para entender las dificultades?

No está demás que visites PythonTutor (MIT), en este sitio puedes entender lo que pasa mientras el computador ejecuta cada línea de código y Project Euler, para que pongas a prueba tus conocimientos a la hora de resolver problemas matemáticos y de programación.

Ejercita la lógica matemática, es de los aspectos que personalmente me atrae de lenguajes como Python.

¿Y tú cómo optimizas tu productividad con Python?