¿Quieres empezar con Python?

Voy a intentar hacer una  pequeña guía para iniciarse en Python que, más allá de ser una compilación de enlaces a muchos sitios, pretende ser útil dentro de la abrumadora cantidad de información disponible ahí fuera.

¿No sabes lo que es un sistema de control de versiones, ni el desarrollo por pruebas, ni la programación orientada a objetos? No te preocupes ahora ni te vuelvas loco a ponerte a buscarlo por internet, muchas de las cosas y conceptos que pongo en esta mini guía se adquieren con el tiempo y la experiencia.

Paso 0. Python 2 o Python 3.

Esta es una duda importante que tienen muchos recien llegados al lenguaje. En Python existen dos versiones oficiales en mantenimiento, la versión 2 se seguirá manteniendo durante unos cuantos años y se usa bastante debido a que hay mucho código que depende de esta versión, la versión 3 salió hace unos cuantos años y es la actual rama de desarrollo y la que va evolucionando por lo que es el presente y futuro de Python. Rompe la compatibilidad con la versión 2 en algunas cosas pero hay formas de hacer código que sea compatible tanto con Python 2 como con Python 3 sin excesivos problemas.

Si partes de cero en el lenguaje te recomiendo encarecidamente que empieces por Python 3 y no mires nunca más para atrás. Si dependes de código que no funciona en Python 3 te recomiendo que lo hagas funcionar en Python 3 porque Python 2, más pronto que tarde, el tiempo pasa volando, se dejará de mantener y estarás listo para ese momento. No es tan difícil y nos puedes preguntar para que te ayudemos.

Paso 1. El tutorial oficial.

El tutorial oficial lo tenéis disponible en español traducido por la gente de Python Argentina.

Aquí te explicarán como instalar Python (si tienes dudas pregúntanos) y el tutorial será donde empezarás a ver la sintaxis de Python, como hacer bucles, condicionales, asignar valores, crear funciones,...

En este paso no pierdas el tiempo buscando herramientas y cosas así, de hecho, es contraproducente. Cualquier editor de texto simple es más que suficiente y recomendable para empezar: vim, emacs, el bloc de notas de tu windows, Geany, TextPad,... ¡¡No necesitas nama más!!

Paso 2. Ponte a programar.

Una vez leído el tutorial no mires más información ni busques en google e imponte un proyecto sencillo para empezar. Te pongo algunos ejemplos:

  • Un algoritmo para ordenar palabras.
  • Un conversor de grados celsius a Farenheit o viceversa (o Julios a calorias, o km/h a m/s,...).
  • Abrir un fichero de texto, por ejemplo un csv, leerlo y a una columna de números sumarle 1000 a cada uno de los valores.
  • Cualquier problema sencillo del proyecto Euler.
  • ...

Si no eres capaz de resolverlo solo con el tutorial oficial ve al paso 3.

Paso 3. Internet.

Es un pozo infinito de información. Por suerte hay varios sitios disponibles para poder preguntar de forma más acotada.

En español:

En inglés:

Recomendaciones de uso:

En todos los sitios que he enlazado en este paso podéis hacer preguntas. Las preguntas las responden personas que tienen ganas de ayudarte pero que también son gente ocupada que tienen cosas importantes que hacer.

  1. Primero deberías de buscar si tu pregunta ya ha sido hecha (lo más seguro) y ver si las respuestas que dieron te resuelven el problema. Si ya tienes la solución, perfecto, no has hecho perder el tiempo de nadie y tú ya puedes continuar.
  2. Si no has encontrado una respuesta, formula la pregunta en un único sitio (todos son buenas opciones) y procura dar el mayor número de detalles posibles para que la gente entienda tu problema. Si tienes código, enséñalo para que los demás puedan ver qué has intentado hacer o en qué punto te encuentras. Un ejemplo de pregunta mal formulada y que no será bienvenida la puedes encontrar aquí.
  3. Algunos han respondido tu pregunta. Te solucionen o no la vida, por favor, sé agradecido, la comunidad se convierte en más amena e inclusiva si todos somos educados y agradecidos. Esas personas han perdido su tiempo y han usado conocimientos que les ha costado un tiempo adquirir para intentar ayudarte de forma desinteresada.
  4. Alguien se muestra soberbio y/o maleducado. DON'T FEED THE TROLL.

Paso 4. Ya eres capaz de resolver pequeños problemas.

Empieza a profundizar en temas más avanzados: Programación orientada a objetos, organización del código para hacerlo más mantenible/legible, desarrollo dirigido por pruebas,...

Algunos libros libres y gratis para ver cosas un poco más avanzadas:

  • Dive into Python. Empieza por lo básico pero poco a poco va profundizando en cosas un poco más avanzadas. como orientación a objetos,  testing,... (EN INGLÉS).
  • Think Python. Este libro está escrito por un profesor y basado en su experiencia enseñando Python. (EN INGLÉS).

Paso 5. De Padawan a Jedi.

Crea pequeños proyectos, métete a colaborar en algún proyecto de código libre, comparte código, ayuda a jóvenes padawanes a convertirse en Jedis, da pequeñas charlas,... Todo ello te permite salir de tu zona de confort y te obliga a aprender.

Existen varios sitios para compartir proyectos y código. Entre los más conocidos tenéis:

  • BitBucket. Permite tener repositorios de código privados o públicos, funciona con varios sistemas de control de versiones (Mercurial y Git).
  • Github. Es el más famoso, el facebook del código. No te permite tener repositiorios privados si no es pagando o solo te permite interactuar con los repositorios usando Git.

Lee código. En muchas ocasiones no hay más remedio que leer código de otros, a ratos puede ser poco agradable pero te permite conocer cómo otros son capaces de resolver sus problemas, cómo aplican determinados patrones, cómo organizan su código, que librerías usan que tú desconocías,...

Acércate a tu grupo local. Estamos hablando de Python pero hay grupos locales de muchas cosas. Algunos relacionados con Python en España los puedes encontrar en:

Sé curioso para seguir aprendiendo.

¿Has llegado al último paso?

Espero que hayas disfrutado este viaje que, seguramente, te haya ocupado días (no vaciles), semanas (te quiero conocer), meses (eres muy aplicado) o años (tú eres de los mios). Poco más se puede decir que no sepas ya resolver por ti mismo.

P.D.: En ningún momento menciono cursos MOOC porque, en mi modesta opinión, muchas veces no se ajustan a las necesidades reales del alumno, tienen saltos importantes de conocimiento, a veces el guión a seguir no está claro, son excesivamente básicos o complejos,... Todo esto, en algunas ocasiones provoca pérdidas de tiempo y frustración. Puedo estar equivocado y no te costará encontrar cursos MOOC para aprender a programar.

P.D.2: Si quieres incluir algo más o crees que algo es incorrecto, lo podemos discutir en los comentarios y llegado el caso, actualizo esta mini guía.

Kiko Correoso

Licenciado y PhD en Ciencias Físicas, especializado en temas de física, meteorología, climatología, energías renovables, estadística, aprendizaje automático, análisis y visualización de datos. Apasionado de Python y su comunidad. Fundador de pybonacci y editor del sitio en el que se divulga Python, Ciencia y el conocimiento libre en español.

More Posts

Follow Me:
TwitterLinkedIn

18 thoughts on “¿Quieres empezar con Python?

    1. Hay muchos recursos muy buenos pero el mejor de todos es proponerse resolver un problema picando código. En el camino se aprende mucho, mucho,… 🙂

  1. En cuanto a proyectos en los que colaborar se os ocurre alguno? Llevo tiempo panteándome algo así pero no encuentro ningún proyecto en el que pueda ayudar. ¿Cómo lo veis?

    1. Pues depende mucho de tus conocimientos, de tus intereses, de lo que te quieras esforzar para superar el nivel de entrada inicial a una gran biblioteca como numpy,… En numpy, scipy, matplotlib,…, tienen etiquetas especiales para parches sencillos para así ayudar a la gente a iniciarse y a aportar. Busca en las etiquetas de las issues por ‘easy fix’, ‘low hanging fruit’,…

  2. Muchas gracias!

    Después de hacer psicología y un módulo de electrónica he decidido aprender a programar seriamente y, tras cinco semanas aprendiendo en la web “codecademy” varios lenguajes al final me he decantado por python porque parece el más sencillo (dentro de lo complejo que es el mundo de la programación)

    Lo cierto es que ya estoy relativamente cansado de los cursos mooc y quiero lanzarme un poco a la piscina a hacer algún proyecto.

    Por ello me han gustado mucho tus consejos orientativos

    Un saludo!

  3. ¡Muchas gracias por el artículo! Estoy seguro de que me será de gran ayuda aprendiendo Python.

    Este año acabé mi última asignatura de Computación de la universidad y realmente sólo sé lo básico para realizar cálculos numéricos y mostrar gráficas (sin tener muy en cuenta la eficiencia, la limpieza del código o qué más puede hacer el ordenador por mí). Así que me he decidido a dar el salto a la POO y a aprender programación DE VERDAD. En el tutorial hay muchos conceptos que ya manejo y he usado en Matlab (arrays, bucles, funciones), pero algunas cosas sueltas no llego a entenderlas del todo (p. ej, la sys.argv). ¿Debería pararme a entender esos puntos a fondo y tomar nota de todo o debería tomarme el tutorial como una manera de familiarizarme con Python y ya ponerme a fondo cuando llegue al Paso 4?

    1. Lo mejor es intentar entender todo lo que haces pero tampoco es necesario entenderlo todo de primeras. Depende mucho de lo que quieras profundizar, el tiempo que te dejen para hacerlo y de los intereses que tengas. Por poner un ejemplo tonto, si haces cálculo numérico no es necesario que te pares a leer lo que hace la biblioteca http.server porque el uso que le darás será muy básico o inexistente en tu día a día, a no ser que tengas interés especial.

      1. Muchas gracias, llevo desde el día que me respondiste dándole a Python y, si bien aún me queda mucho camino por delante, ya entiendo varios de los conceptos básicos que me tenían confundido cuando hice esta pregunta.
        Me gustaría recomendar por aquí el libro Python para Informáticos, de Charles Severance y Codders Apprentice, de Pietr Spronck (este último está en la documentación de Python). No sé si un experto de Python los recomendaría, pero a mí me están ayudando mucho a entender los puntos que el tutorial trata de manera más superficial y me ofrece otro enfoque de las explicaciones, para cuando me quedo atascado con algo; aparte de aportarme más ejemplos y ejercicios.

  4. Saludos amigos,

    En este sitio he encontrado muy buena información , llevo unos meses aprendiendo este lenguaje, y bueno como todo en la vida para llegar a ser bueno en algo se necesita practica, mucha practica.

    Como internet es un mar de conocimientos, que si uno no esta bien orientado a buscar lo que se desea, se puede pasar horas y horas vagando.

    Que les quería proponer algo, que tal si los que somos nuevos, nos proponemos algún PROYECTO como para ir trabajando en ello y ayudárnos mutuamente, hoy en día el conocimiento colectivo es lo mejor para poder seguir adelante,

    Espero sus respuestas para ponernos de acuerdo y en contacto :).

Leave a Reply

Your email address will not be published. Required fields are marked *