El día 8 de abril de 2010 01:49, Angel Giovanni Cortes Solorzano <giovanni....@gmail.com> escribió:
> Quisiera saber cuál es la mejor forma de aprender a programar ya que me > gusta y además soy autodidacta. Llevo con el lenguaje python apenas un mes > aprendiéndolo pero ya se lo que es programar, su sintaxis y algo más como > son las listas, tuplas, etc. > Lo que quisiera es saber cómo aprendieron ustedes a hacer programas porque > yo solo he hecho programas sencillos de esos que piden en la escuela como > números de Fibonacci, encontrar números primos y lo más que he hecho es la > simulación de un juego llamado craps, que es sencillo de hacer. Como iniciación, pueden ser interesantes webs como PyEuler donde se resuelven algunos problemas matemáticos simples: http://pyeuler.wikidot.com/ Python básico: http://pythonstarter.blogspot.com/ De igual modo que un buen pintor adquiere técnica con la práctica y no sólo conociendo los pigmentos, la técnica de la programación sólo se adquiere programando mucho y cometiendo muchos errores. De la experiencia se llegan a descubrir ciertos "patrones" que mejor funcionan y que se repiten, y cuyo conocimiento te pueden servir de orientación. En otros lenguajes se les llaman "Patrones de diseño" o similar, aunque en la ortodoxia de python preferimos llamarlos simplemente "modismos" (idioms) del lenguaje: http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html http://docs.python.org/howto/doanddont.html http://mundogeek.net/traducciones/modismos-python.htm En cuanto a ir más allá, en internet existen blogs de lo más variado donde se publica código python de lo más interesante. En python.org existe un "planeta" con varios blogs asociados que te pueden dar idea de lo que se hace por el mundo. Con el auge de las redes sociales también se empiezan a ver webs colaborativas donde envíar pequeños pedazos de código (llamados "snippets" en el argot). Te pongo un pequeño listado de urls: Planeta Python: http://planet.python.org/ Libro de recetas ActiveState: http://code.activestate.com/recipes/langs/python/ Ejemplos de python: http://www.java2s.com/Code/Python/CatalogPython.htm Módulo python de la semana: http://www.doughellmann.com/projects/PyMOTW/ Snippets: http://snippets.dzone.com/tag/python http://www.smipple.net/lang/python http://snipplr.com/all/language/python http://www.smipple.net/lang/python En las redes sociales, navega por los enlaces hasta dar con algún proyecto en concreto que te pueda interesar y céntrate en él. > Quisiera saber de un proyecto que no sea difícil, pero que sea para > aprender, aunque algunas cosas no sepa puedo investigar, más que nada quiero > aprender a desarrollar el plan de un programa y a resolver un problema para > hacer un programa completo. > Si tienen aglún proyecto que me puedan aconsejar o algunos ejercicios estaré > agradecido o algunos consejos sobre como programar. Espero no estar > rompiendo alguna regla. Es importante que, además de programar, también dediques tiempo a conocer mejor las herramientas de desarrollo. Y no sólo me refiero a manejar bien el editor, si no también a conocer cómo funciona un sistema de control de versiones, cómo se hace una refactorización, o cómo crear tests y documentación. En el libro "Dive into python" te explican algunas de estas técnicas: Dive into python: http://diveintopython.org http://diveintopython3.org En control de versiones te recomiendo mercurial: http://devnull.li/libromercurial/index.es.html Una vez que tengas soltura con mercurial, pásate por bitbucket y busca proyectos tu interés. Clónalo y empieza su estudio y mejora. Sin darte casi cuenta, te encontrarás con alguna contribución para hacer. Particípalo en el foro del proyecto y quedarás incorporado al equipo de desarrollo. http://bitbucket.org/ Cuando te consideres un experto, puedes ir más allá participando en los Google Summer of Code. Cada año se eligen varios proyectos cortos que son subvencionados por google, de los cuales hay varios prioritarios para python: http://wiki.python.org/moin/SummerOfCode/2010 Si todo ésto te parece demasiado estricto y consideras que tu acercamiento a python es más lúdico que otra cosa, siempre puedes probar con pygame y pasártelo bomba creando juegos: http://razonartificial.com/tutoriales-pygame/ PD: no te puedo recomendar mi blog porque todavía lo tengo sin montar :-( _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/