Llevo ya varias semanas leyendo y escribiendo programas en Python y si he aprendido algo en este tiempo es que una de las virtudes de todo buen programador es la creatividad. A la hora de crear un programa de cero te planteas un problema. Al nivel en el que estoy suele ser algo muy sencillo, por ejemplo, insertar un número y que el ordenador devuelva un número aleatorio con las cifras iguales al número que hayamos insertado. Luego buscas una solución y a partir de ahí empiezas a pensar las distintas posibles formas de realizarlo. ¿Cuál es mejor y por qué? Estas son las preguntas que debes responderte para escoger una u otra opción. Por supuesto la cosa se complica mucho en un programa de “verdad” donde no es un problema, sino cientos y son miles las posibles soluciones.
Entre tantos problemas y opciones sólo existe una solución, la creatividad. Ser creativo te permite crear programas nuevos y originales, mejor existentes haciéndolos más eficientes, etc. Pero la pregunta es: ¿cómo se práctica la creatividad? Aprender a programar la verdad es que no requiere mucha creatividad, simplemente es leer y entender cómo funciona el lenguaje y a partir de ahí, practicar y practicar. Sin embargo la creatividad también se puede practicar. ¿Cómo lo estoy haciendo? Pues rescribiendo cada ejemplo que leo en la guía de Python de una o dos formas distintas. Al principio cuesta bastante pero luego empiezas a pensar de forma más rápida otras posibilidades.
Para que entendáis a que me refiero os dejo un ejemplo práctico. En la guía Aprenda a pensar como un programador con Python se plantea un ejemplo de cómo crear una cuenta atrás. Pues bien, ahora programemos tres nuevos programas que hagan exactamente lo mismo pero de forma distinta:
#!/usr/bin/env python # coding: UTF-8 # Modificación 1 utilizando una función: def cuentaAtras(n): if n != 0 and n > 0: print n cuentaAtras(n-1) else: print "Despegando!" print cuentaAtras(10)
#!/usr/bin/env python # coding: UTF-8 # Modificación 2 utilizando while: i=0 while i < 10: print i i=i+1 print "Despegando!"
#!/usr/bin/env python # coding: UTF-8 # Modificación 3 utilizando for: for i in range(10,-1,-1): if i != 0: print i else: print "Despegando!"
Si vosotros también estáis aprendiendo a programar probad a hacer esto, ya veréis como mejoráis mucho de forma rápida. Si algún programador lee esta entrada que me comente otras técnicas o trucos que haya utilizado para aprender.
Filed under: GNU/Linux, Programación, Python, Software libre