Cuál es la mejor manera de que un principiante con poca o ninguna experiencia en programación aprenda algo como Python y contribuya a la industria del software?

Inicialmente escribí esto como un correo electrónico a mi hermana, que no tiene experiencia en programación pero quiere aprender Python para usarlo en su investigación en biología. Lo estoy publicando aquí con la esperanza de que otros lo encuentren útil. Está dirigido a personas que quieran iniciarse rápidamente en Python sin empantanarse en los detalles.

Cuando dije que Python es fácil de aprender, quizá exageré un poco. Si ya sabes programar, Python es fácil de aprender. Sin embargo, aprender a programar tiende a ser algo difícil. Aún así, es mucho más fácil aprender Python sin ninguna experiencia previa en programación que aprender la mayoría de los otros lenguajes, por lo que empezar con Python es una buena idea.

El mayor obstáculo para empezar con Python es simplemente averiguar cómo conseguir escribir y ejecutar su código. Una vez que seas capaz de escribir código y ejecutarlo, todo será mucho más fácil y gratificante, pero es difícil superar ese primer obstáculo. Voy a guiarte a través de la configuración de lo que creo que es el entorno de desarrollo más amigable para los novatos, y luego te señalaré un tutorial cuya metodología me gusta.

Antes de configurar una forma de escribir tu código, hay algunas cosas que debes saber. Hay dos formas básicas en las que escribirás y ejecutarás código Python...

Los scripts de Python

Un programa básico de Python se llama "script". Es realmente un archivo de texto que típicamente se nombra con la extensión .py. Puedes escribirlos en cualquier editor de texto, y algunas personas utilizan editores de texto muy básicos para escribir código. Una vez que hayas escrito tu código, lo ejecutarás ejecutando un "intérprete" de Python en el script. El intérprete es un programa que repasa tu código Python y lo ejecuta línea por línea.

Interpretación interactiva de Python

A veces, sólo querrás probar una o dos líneas de código Python para ver si hace lo que quieres. En este caso, hacer un nuevo archivo de texto y ejecutarlo a través del intérprete es un poco de un dolor. El intérprete interactivo (también conocido como el "shell" de Python) te permite escribir una línea de Python y ver el resultado inmediatamente. Por ejemplo, mira este copiar y pegar. (Las líneas que empiezan por >>> son entradas del usuario):

[código python]

>>> print "¡Hola, mundo!"

¡Hola, mundo!

>>> 1 + 2 * 3

7

[/código]

Inmediatamente debajo de la línea de entrada, se ve la salida de la ejecución de esa línea. Esto es muy útil para probar líneas individuales de código.

Configuración del ordenador

Mac OSX viene con algunos editores de texto básicos y un intérprete de Python preinstalado. Así que, en teoría, tienes todo lo que necesitas para empezar a escribir código. Sin embargo, los editores de texto en OSX son realmente básicos y no muy fáciles de usar, y el intérprete de Python tiene que ser ejecutado desde la línea de comandos. Para los programadores experimentados que utilizan la línea de comandos con frecuencia, esto no es un problema, pero creo que no es la forma más fácil de empezar si eres nuevo en la programación. Sin embargo, existe una alternativa: Un "Entorno de Desarrollo Integrado", o IDE.

Un IDE es esencialmente un elegante editor de texto con herramientas para ejecutar su código y el intérprete interactivo incorporado. Los programadores tienen guerras santas sobre si los editores de texto o los IDEs son mejores para la productividad, pero yo estoy a favor de tener un IDE. También creo que es más fácil aprender a programar con uno. El IDE de Python más fácil de usar que he encontrado es Komodo IDE, que desafortunadamente no es gratuito. Hay una prueba gratuita, y hay maneras de obtener un archivo de licencia cuando la prueba se agota.

Komodo IDE

Descargue e instale la prueba gratuita desde aquí: http://www.activestate.com/komodo-ide/downloads

Inicie el IDE y eche un vistazo. Hay un montón de paneles y botones diferentes, la mayoría de los cuales no vas a utilizar. Las partes importantes son estas:

  • El editor de texto. Esta es la vista principal de la aplicación, y es donde escribirás tu código. Hay pestañas para cada archivo que tiene abierto, como en un navegador web.
  • El shell interactivo. Esto no es visible por defecto, así que vaya al menú principal > Herramientas > Shell Interactivo > Iniciar/Encontrar/Ocultar Shell Interactivo por Defecto (Python). Al seleccionarla debería aparecer en el panel inferior de la aplicación. Intenta escribir un comando como print "Hello, World!" y mira lo que hace cuando pulsas enter. Si tiene problemas para encontrar esta opción en el menú principal, recuerde que el menú "Ayuda" de cualquier aplicación de OSX le mostrará la ubicación de cualquier opción del menú si la escribe en el cuadro de búsqueda.
  • La salida de depuración. Esto merece una explicación.

Cuando ejecutas un script de Python que has escrito, a menudo no funcionará correctamente en el primer intento. Puede ser útil pausar la ejecución del script a medio camino, recorrerlo línea a línea, examinar el contenido de las variables, etc. Para poder diseccionar un script de Python en ejecución de esta manera, se utiliza un modo especial en el intérprete llamado modo "depuración". Dado que este modo es tan comúnmente deseado, es la forma predeterminada de ejecutar scripts de Python en Komodo IDE.

Para sus propósitos, "depurar" un script y "ejecutar" un script significan lo mismo. Usted no va a utilizar las características geniales del depurador, pero todavía va a golpear el botón de "depuración" para ejecutar sus scripts. Sólo pensé en aclarar preventivamente esa cuestión de terminología. Cuando se pulsa el botón "Start or continue debugging" (que se parece a un botón de reproducción en un mando a distancia), se ejecutará el archivo de Python que tiene abierto y se abrirá un panel llamado "Debug Output" en la parte inferior de la aplicación que mostrará la salida de su programa.

Una última cosa antes de continuar - en la barra de menú principal, vaya a Komodo > Preferencias y seleccione "Debugger" en el panel de la izquierda. Esto presentará varias preferencias para el depurador. Marque la casilla que dice "Omitir el diálogo de opciones de depuración (use la tecla Ctrl para anular)". Esto evitará que aparezca un molesto cuadro de diálogo cada vez que ejecutes tus scripts.

Tu primer script

Es hora de escribir tu primer script de Python. Si puedes hacer esto y todo funciona, has superado el mayor obstáculo para los nuevos programadores.

En Finder, crea una carpeta en "Documentos" llamada "Python" donde guardarás tus scripts. Una vez que hayas hecho eso, es hora de hacer tu primer script. En Komodo, ve a "File > New File from Template...". Elige la plantilla "Python", y haz clic en "Local..." y navega hasta la carpeta que creaste para tus scripts. Nombra el archivo con algo como "helloworld.py".

Esto debería abrir una nueva pestaña en el editor de texto a un archivo recién creado llamado "helloworld.py" que estará vacío excepto por una única línea comentada en la parte superior. Puedes dejar esa línea o borrarla, no importa. Añade la siguiente línea a tu script:

[código python]

print "¡Hola, mundo!"

[/código]

Ahora veamos si funciona. La parte superior de la ventana de Komodo tendrá un montón de botones -- busca el que parece un botón de "Play" en un mando a distancia. Este es el botón "Iniciar o continuar la depuración". Haz clic en él para ejecutar tu script. Si todo va bien, debería abrirse el panel de "Salida de depuración" que mencioné antes. La sección de salida de este panel debería mostrar el texto "¡Hola, mundo!".

Aprendiendo Python

Bien, la parte difícil ha terminado. De verdad. Conseguir que tu código se ejecute es un gran obstáculo para empezar como programador, y si has llegado hasta aquí, la cosa se pone más fácil a partir de ahora. Ahora todo lo que tienes que hacer es aprender el lenguaje.

Tu elección del tutorial dependerá en gran medida de lo profundo que quieras aprender Python. Es un lenguaje increíblemente poderoso y flexible, y necesitarás años de experiencia en programación para entender todos sus puntos más finos. Muchos de los recursos que existen están dirigidos a personas que quieren estudiar Ciencias de la Computación con la intención de convertirse en programadores profesionales algún día. Eso es probablemente más profundo de lo que te interesa.

Desgraciadamente, no he encontrado ningún tutorial que me parezca perfecto para un principiante. Para empezar rápidamente sin empantanarse en los detalles, creo que "Instant Hacking" es un tutorial bastante bueno: http://hetland.org/writing/instant-hacking.html

Para cuando termines con este tutorial, deberías ser capaz de escribir funciones básicas que tomen algún tipo de entrada, realicen operaciones básicas (como aritmética) en la entrada, y devuelvan un resultado. Este es un buen punto de partida. Una vez que hayas superado eso, el siguiente tema a estudiar son las "clases" y la "programación orientada a objetos", para lo cual hay muchos tutoriales que puedes encontrar en línea.