Este artículo pretende guiarte en el aprendizaje autodidacta de un lenguaje de programación que me fascina, Python. Listaré libros que recomiendo leer, dónde encontrarlos, referencias en Internet para profundizar y consejos sobre que IDE utilizar, en qué librerías desarrollar tu interfaz…
Las palabras más importantes están remarcadas para ayudar la lectura. Es muy recomendable visitar los enlaces que se han añadido para profundizar.

Resulta que cuando acabé el curso empecé a aprender Python, un lenguaje multisistema al que le tenía ganas desde hace tiempo. Resultó que el lenguaje era sencillo, extremadamente rápido a la hora de programar y potente, no como Perl del que tanto estoy cansado de que me vendan.

Si no sabes programar y quieres empezar a aprender, en mi opinión este es un buen primer lenguaje para hacerlo siempre que no tengas pretensiones de hacerte tu propio sistema operativo o un módulo de Linux. Si ya programas algún lenguaje como fue mi caso, no tendrás ningún problema en aprenderlo. A mí personalmente me sorprendió su orientación a objetos en comparación con la del C++ a la que estoy acostumbrado.

DOS BUENOS LIBROS QUE HE LEÍDO Y RECOMIENDO

Beginning Python

Podéis bajarlo de blueportal gratis. Allí podréis encontrar …

… la información referente al libro: editorial, autores… por si queréis comprarlo para tenerlo siempre como referencia y leerlo en papel, algo que no tiene precio.
Este libro empieza por lo más básico de la programación en sí y después pasa a explicar la sintaxis de Python con montones de ejemplos. Es el libro idóneo para aquel que no sabe programar ningún lenguaje y quiere empezar con Python. El programador experto necesitará ojearlo por encima e ir mirando los ejemplos para ir viendo como se estructura y cuál es la sintáxis de Python.



Programming Python

También puedes bajartelo en formato .chm en blueportal. Este es ya un libro más técnico, que es para muchos la biblia del Python y que no puede faltarte si está aprendiendo este lenguaje.
Por supuesto, como siempre, podéis encontrar más información y buenos precios para comprarlos online en amazon.


TUTORIALES DE PYTHON EN LA RED

  • Learn Python in 10 minutes Ideal para el que ya programa otro lenguaje. Un repaso en 10 minutos a la estructura y sintáxis de Python (en inglés).
  • Más de 300 tutoriales de Python ordenados por categorías Viene muy bien para documentarse sobre un tema concreto a la hora de desarrollar una aplicación concreta
  • Videotutoriales de Python de showmedo (en inglés) Explican interfaces, trucos, dónde encontrar documentación, cómo usar librerías gráficas… y no te pierdas su blog en el que se tratan otros temas de programación de actualidad.
  • Dive into Python No podía faltar esta referencia! Este genial libro de Mark Pilgrim está online para su consulta y explica desde cero como convertirse en un experto en Python.
  • Documentación oficial de Python Tiene completa información sobre las novedades que incorporan las nuevas versiones, las librerías estándar del lenguaje…

LIBRERÍAS GRÁFICAS Y PROGRAMANDO UNA INTERFAZ

Este es uno de los apartados complicados y confusos de la programación en GNU/Linux. La ingente cantidad de librerías gráficas desconcierta al usuario en su elección. En Python existen 4 posibilidades fuertes y nuestra elección se debe basar un poco en para qué entorno gráfico vamos a desarrollar y nuestros conocimientos en programación gráfica.
Todas estas librerías se pueden programar a pelo (es decir escribimos la interfaz a mano) y también se puede usar un editor visual de interfaces (lo que facilita el trabajo de forma importante, pero no son tan personalizables).
Además hay que tener en cuenta que en Linux se tiende a separar la interfaz de su implementación, por tener una serie de ventajas en proyectos de cierta envergadura. Hay que separar el diseño de la programación. Este concepto suele chocar con el usuario acostumbrado a usar completos todoterrenos IDEs en Windows.

  • Gnome: Las librerías gráficas de Gnome son las GTK+. Para diseñar una interfaz de manera visual de la versión GTK+ 2 se puede usar Glade. Para manejar una interfaz hecha en esta librerías en Python se usa PyGTK, podéis leer un extenso manual en español sobre su uso.

    sudo apt-get install glade glade-2 python-gtk2 python-glade2

  • KDE: Las librerías gráficas son las QT. En la actualidad se va por la versión 4 de estas librerías. Esta es la primera versión con una licencia de código abierto para uso comercial. Para diseñar una interfaz con estas librerías se usa QTDesigner. Los bindings a la interfaz se manejan con PyQT4.
  • Multisistema: Aquí podríamos meter a Tcl/Tk por ser las librerías que vienen por defecto con el propio Python. Su más conocido diseñador de GUIs (Graphical User Interfaces) es TKinter.Sin embargo este lugar está siendo exigido por WxWidgets (Anteriormente WxWindows). Está es la librería que yo estoy usando por el momento. Esta librería es realmente multisistema porque toma la apariencia gráfica del sistema operativo sobre el que se ejecuta. Para ello utiliza los controler nativos de cada sistema en vez de emularlos. De este modo al desarrollar nuestra aplicación en el mundo del software libre evitaremos los tan exigidos ports, que consisten en portar una aplicación como GIMP hecha en GTK+ a QT.El binding de WxWidgets para Python se llama WxPython y es, en mi opinión, muy sencillo de utilizar. Para diseñar las interfaces podemos usar WxGlade, cuyo nombre se debe a la similitud con el diseñador ya nombrado Glade. Podemos bajarnos la versión 0.5 (Última versión en la actualidad, mejor que la empaquetada con Ubuntu) de SourceForge y se ejecuta con un sencillo:
    python /ruta/wxglade.py
    Si quieres aprender a usar WxGlade este es el mejor tutorial que he leído hasta la fecha.

REFERENCIAS QUE NO PUEDEN FALTAR

A la hora de programar hay webs que se deben tener abiertas:

  • Global module index Contiene un listado de todos los módulos estándar de Python y en cada uno de ellos podemos encontrar sus funciones detalladas. Muy necesario para tener claro que código podemos reutilizar.
  • Lista de clases de WxPython Fundamental para consultar los métodos de un widget o controlador que hayamos usado en nuestra interfaz, siempre y cuando estemos usando las librerías gráficas WxWidgets.

¿QUÉ IDE UTILIZAR EN LINUX?

Pufff! La pregunta del millón de dolares. No voy a entrar en detalle, simplemente comentar que la página oficial de Python tiene un completísimo listado de IDEs que podéis probar hasta encontrar ese que más os convenza. Aprovecho para comentar que en la página oficial de Python podéis encontrar FAQs de lo más útiles y cuyos índices deberíais ojear antes de preguntar en cualquier otro sitio.

En mi caso al estar acostumbrado a programar en C en Linux, he estado usando VIM + ctags sobre las librerías de Python, lo que me permite moverme por el código más rápido que en cualquier otra aplicación y autocompletar, entre otras cosas. Esta combinación no es apta para el usuario novel de Linux o de la programación.

Si vienes de programar Python en Windows quizás te interese el SPE (Stani’s Python Editor), por tener un editor de interfaces (GTK) incorporado y ser muy del estilo diseñar y programar el evento.

sudo apt-get install spe

Si quieres desarrollar en QT entonces deberías usar:

sudo apt-get install kdevelop

En Linux sin embargo se suele separar la implementación de la interfaz, de la programación de los handlers. Así que otra buena combinación es usar Eclipse con Pydev Extensions bien configuradas para que autocomplete y mucho más. Este es el IDE que estoy usando en la actualidad y por el momento me parece muy completo y eficaz.

sudo apt-get install eclipse-pydev

Si quieres empezar a aprender a usarlo puedes leer el getting started with Eclipse and Pydev. El cual explica cómo configurar Pydev, usar Eclipse, debuggear…

AYUDA EN LA RED

Si a la hora de aprender Python, algo se te atasca o necesitas consejo en algún tema en Internet no te faltarán sitios donde poder preguntar, sin embargo yo recomiendo esta lista de Python en español de la que soy miembro y que me ha venido muy bien en un par de ocasiones para aclararme. Es una lista activa con gente dispuesta a ayudarte en esta empresa de aprender Python de manera altruista.

menefante.gif meneame ico_delicious.gif del.icio

Technorati Tags:

About these ads