Si quieres aprender a programar sé creativo

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. 🙂

Anuncios

8 Responses to “Si quieres aprender a programar sé creativo”


  1. 1 Gasmo septiembre 17, 2010 en 12:36 pm

    En el primer ejemplo: “if n != 0 and n > 0:”, podría simplemente ser “if n > 0:”, puesto que al ser mayor que 0, ya se elimina la posibilidad de que sea igual a 0.

    En el segundo ejemplo hace una cuenta progresiva, no regresiva. Para que la haga regresiva simplemente cambia “print i” por “print 10-i”

    Muy divertido. Pienso poner esto en práctica. A partir de ahora haré ejemplos resolviendolos de varias formas distintas. Pero más difícil: no de 3 formas distintas, sinó de 5 formas distintas.

    Por lo que veo aún te queda algo por aprender. Buena suerte. Y practica mucho.

  2. 2 mirivagu septiembre 17, 2010 en 4:12 pm

    otro ejemplo (jajaja que divertido):

    import math

    numbers=range(-10,0)

    for n in numbers: print abs(n)

    Ok. como tu dices, leer mucho y practicar mucho es la clave. Un libro que me sirvio mucho, de echo fue el unico que leei, fue Python para todos escrito por Raúl González Duque (http://mundogeek.net/tutorial-python/).
    Python es un excelente lenguaje para aprender, de hecho ahora que se python vuelvo a intentar con c/c++ y se me ha hecho facilisimo (antes de saber python lo intente, pero abandone porque me frustre con los punteros y arrays.)

    • 3 mirivagu septiembre 17, 2010 en 5:44 pm

      sorry, el import math sale sobrando

  3. 4 xaelkaz septiembre 18, 2010 en 6:33 am

    Ahora que estoy full Java me ha dado un poco de nostalgia ver esto 😛 de verdad uno comienza a extrañar la simplicidad de python y C/C++.

    Metodo? practicar como loco :).
    Bueno mi metodo es que cuando estoy en el autobus o en un lugar que no tengo nada que hacer, me pongo a pensar y como se puede hacer un programa para esto?, y comienzo a fabricar mi algoritmo y las cosas que no tengo ni idea como hacerlas, cuando llego a la casa me pongo a investigar y ya esta 🙂 .

  4. 5 Carlos septiembre 19, 2010 en 7:16 am

    Hey, Excelente.
    Te Felicito, yo soy desarrollador de aplicaciones moviles (Android/blackberry/iphone/) y es muy cool saber que hay gente interesada en aprender a programar, buena esa.

    Como recomendación, a mi me funciona es que cuando tengo problemas para terminar algo, me alejo del problema por un momento, una taza de cafe, esparcimiento (fb/twitter..xD) y cuando vuelves ya el problema parece mejor.

    La creatividad esta ligada al nivel de conocimiento del lenguaje que estas usando, me explico, si en algun momento el problema te exige crear 100 variables y no conoces el concepto de arreglo/array/vector como lo quieras llamar, puede que tu solucion sea validad pero no sera la mejor, ni la mas eficiente, Desarrollar es algo que exige tecnica y Creatividad.

    Sigue asi, y es posible que termines diseñando tu propia distribucion de Linux. xD

  5. 6 malf car insurance septiembre 25, 2010 en 9:13 am

    Great blog post, I’ve been waiting for that..


  1. 1 Bitacoras.com Trackback en septiembre 16, 2010 en 10:35 pm
  2. 2 BlogESfera.com Trackback en septiembre 19, 2010 en 7:45 pm

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




Fedora 14

Visitas al blog

  • 701,570 visitas

Bienvenido!!

Estimado lector, en primer lugar, gracias por seguir mi blog y ayudar a mejorarlo. En esta bitácora encontrarás noticias, tutoriales y muchas cosas más sobre GNU/Linux y el Software Libre, sobre todo de dos distribuciones, Fedora y Arch Linux. No dudes en preguntar tus dudas, comentar las entradas o proponerme ideas para el blog. Más información en Acerca de
Creative Commons License
Esta obra está bajo una licencia de Creative Commons.

Introduce tu correo para suscribirte a este blog y recibir las entradas en tu correo.

Únete a otros 72 seguidores

Comentarios recientes

Marcos en Post-Instalación de Arch …
Dasn en NTP en ArchLinux
Maria en Borrón y cuenta nueva
iyan gonzalez en Borrón y cuenta nueva
Spanish Red en Fedora o Archlinux

Guia de Usuario Fedora 14

Post-instalación de Arch Linux

Categorías

Fedora Blogger Network


A %d blogueros les gusta esto: