Las 10 Cosas que Necesitas para Aprender Python

10 Cosas que Necesitas para Aprender Python

Otra cosa no sé, pero aprender a programar en múltiples lenguajes es algo que los ingenieros e ingenieras informáticos (y profesionales de muchos otros ámbitos) hemos hecho, hacemos y seguiremos haciendo mucho tiempo.

De mi propia experiencia personal, tras más de 25 años aprendiendo y programando, extraigo para ti esta lista de las 10 cosas que necesitas para aprender a programar en Python. Ya sepas programar en algún otro lenguaje o no hayas escrito una línea de código en tu vida, pienso que te vendrá muy bien revisar este listado y que tengas en cuenta estos aspectos. Allá vamos.

1. Un equipo adecuado con pantalla panorámica

Puede caer de cajón, pero es importante matizar esto. Hoy en día mucha gente utiliza en exclusiva el móvil y/o la tablet, sobre todo para el acceso a internet, dejando de lado la utilización del ordenador.

Aunque es posible programar Python en dichos dispositivos pues hay sistemas que así lo permiten, la verdad es que no resultan todo lo cómodos o flexibles para poder hacerlo de manera adecuada. Sí, puedes conectar un teclado estándar para poder escribir como si de un computador de sobremesa se tratara, pero las limitaciones de los sistemas operativos como Android o iOS en general, y en particular temas como la gestión de ficheros, por ejemplo, o el uso de herramientas complementarias, nos dificultan un poco la tarea. Eso sin considerar además el tamaño de la pantalla. De todas maneras, si quieres investigar un poco y probar, aquí te dejo un enlace a un sistema para programar en Python para Android: QPython.

Aclarado esto, mi recomendación es la utilización de un portátil o un equipo de sobremesa. Ten en cuenta que, para empezar, tal vez no te haga falta un equipo muy potente, pero a medida que avances y crees programas de mayor complejidad o utilices herramientas más completas vas a necesitar un ordenador con más recursos. No se puede establecer a priori qué es lo que vas a necesitar, pero de manera general puedo decirte que no te conformes con un equipo de gama baja, que si bien suelen tener precios muy asequibles, su rendimiento general deja mucho que desear.

Para que te hagas una idea, mi equipo principal (en el que estoy escribiendo este artículo en este preciso momento) es ahora un Lenovo T580 con procesador i7-8650u y 16 Gb de memoria RAM, que evidentemente no es el último grito. No obstante, puedes empezar con algo más modesto.

Otro punto muy importante a tener en cuenta es la pantalla. Mi recomendación es que, como mínimo, te hagas con una pantalla panorámica de, al menos, 15 pulgadas.

¿Por qué panorámica? Normalmente vamos a querer mostrar en pantalla al menos dos ventanas con un contenido considerable. Yo suelo tener abiertas dos ventanas, una que ocupa la mitad izquierda de la pantalla y otra que ocupa la mitad derecha. Pueden ser aplicaciones diferentes como un editor de texto donde se escribe el código y el navegador de internet con documentación técnica de referencia, pero muchas veces sucede que lo que necesito es tener abiertos dos ficheros de código a la vez. Si la pantalla no es panorámica, cada una de las dos mitades va a contar con poco contenido.

Por supuesto se admiten tamaños mayores de pantalla o, incluso, múltiples pantallas (con dos suele ser suficiente). También recomiendo una resolución mínima full HD o, incluso, 4K, que permite que las letras estén muy definidas y en general se lea el código de manera más confortable.

Mi recomendación final en este punto es la utilización de los sistemas operativos de Mac o Linux, que proporcionan entornos más cómodos para el desarrollo de software. No obstante, una máquina con Windows es una opción perfectamente válida. Yo, actualmente, estoy utilizando una distribución de Linux Manjaro.

2. Una instalación de Python y un gestor de módulos

En la actualidad coexisten dos versiones distintas de Python: Python2 y Python 3. Oficialmente, y desde el 1 de enero de 2020, Python 2 ha llegado al final de su vida y sus desarrolladores ya no lo mantienen. Puedes consultar el anuncio oficial en la web de Python. Y a pesar de que queda mucho software desarrollado en la versión 2, lo más recomendable es empezar y aprender directamente con Python 3.

Muchos de los sistemas operativos compatibles con Unix ya incluyen una instalación de Python. Por ejemplo, lo podremos encontrar en la mayoría de distribuciones de Linux y Mac OS X. Incluso en algunas máquinas de Windows, en particular de HP y Compaq. Esta instalación por defecto es debido a que algunas de las herramientas del sistema están desarrolladas en Python o, tal vez, algún software de terceros incluido. Si tu sistema operativo no lo tiene instalado, o tiene la versión 2, debes instalar una versión actualizada.

La instalación de Python trae las herramientas necesarias para comenzar a aprender (y a utilizarlo en general), que son:

  • El interprete de Python, que es el componente principal que se encarga de ejecutar los programas.
  • Las librerías estándar, que son un un conjunto de módulos y paquetes con utilidades básicas que suelen ser necesarias en diferentes proyectos Python.
  • El instalador de paquetes pip (por sus siglas en inglés, package installer for Python), que nos ayuda a instalar otros módulos y librerías no incluidas en el conjunto de librerías estándar. El instalador pip se incluye con Python desde la versión 3.4 de forma que si instalas una anterior tendrás que instalar pip de manera separada.
  • El entorno de desarrollo IDLE, del que te hablo más adelante en este artículo.
  • El módulo estándar para la realización de pruebas de código unittest. Nos ayuda a probar el código que realizamos para comprobar que está libre de errores.
  • El módulo estándar pdb para la depuración de nuestro código, que nos ayuda a localizar errores y a optimizarlo.

Además de estos componentes básicos, hay infinidad de paquetes y módulos desarrollados para Python que te pueden servir de mucha ayuda. Es bastante normal encontrar un módulo o librería que haga lo que necesitas con solo buscar un poco. Después basta con que utilices la herramienta pip para instalarlos. Además, hay una serie de librerías muy interesantes y populares que se han ganado el respeto de la comunidad de desarrolladores por su gran utilidad y calidad. Se pueden destacar las siguientes (aunque no son los únicos):

  • NumPy. Es una librería fundamental para computación científica y una de las más usadas. Con gran cantidad de operaciones matemáticas, listas, matrices y objetos multidimensionales y con operadores especiales para manipular datos complejos.
  • SciPy. Otra librería ampliamente usada. Contiene módulos para optimización, álgebra lineal, estadística, interpolación, etc.
  • requests. Permite el envío de peticiones HTTP/1.1 de manera sencilla.
  • BeautifulSoup. Muy utilizada junto a requests, permite el análisis y la obtención de datos de documentos de HTML Y XML.
  • Selenium. Permite la automatización de navegadores web de forma que tu programa Python puede manejar un navegador como si fuera un humano.
  • TensorFlow. Es una de las principales librerías para la ciencia de datos y el aprendizaje máquina (machine learning). Desarrollada por Google.
  • Keras. Librería de alto nivel para trabajar con redes de neuronas artificiales sobre TensorFlow (u otras librerías similares, como Theano) con la ventaja de simplificar el código.
  • NLTK. Es una de las principales librerías para trabajar con el lenguaje natural humano.
  • matplotlib. Librería para la creación de gráficas y visualización de datos.
  • PyGame. Es un conjunto de módulos para el desarrollo de videojuegos.
Advertencia. Tengo que insistir, pero estas son solo algunas de las librerías más utilizadas, pero hay muchísimas más igualmente importantes, por lo que esta lista podría crecer indefinidamente.

Finalmente, es interesante mencionar dos de los frameworks de desarrollo web más utilizados para Python: Flask y Django.

3. Un escritorio con espacio y despejado

Aunque puntualmente puede estar bien trabajar sentado en el sofá con el portátil en las rodillas y la tele de fondo, lo más aconsejable es que te vayas a una habitación tranquila con una buena mesa o escritorio.

Mi recomendación para el escritorio es el minimalismo: cuantas menos cosas haya sobre la mesa, mejor. Te estarás preguntando el porqué. Pues muy sencillo, es para evitar distracciones. Yo tiendo a perder la atención y a distraerme en cuanto veo algún objeto cerca que puedo agarrar y manipular (nunca me pude estar quieto con las manos). Así que la manera de contener esto es manteniendo el escritorio libre de objetos innecesarios. Basta con el teclado, el ratón y el portátil o la pantalla, según sea el caso. Y alguna cosa más que te explico más adelante en el artículo, así que sigue leyendo.

Otro motivo para tener un escritorio despejado es la limpieza visual. Si lo que tenemos en el campo de visión es un entorno limpio y nítido nos costará menos mantener nuestro foco en lo que nos interesa. Por el contrario, una mesa llena de objetos y desordenada nos generará una cierta sensación de intranquilidad que no beneficia en nada al proceso de aprendizaje.

Tener pocos elementos en la mesa nos ayudará a tener más espacio disponible para material extra como, por ejemplo, un libro de Python o, incluso, para poder apoyar la cabeza en nuestros brazos sobre su superficie y llorar desconsoladamente porque no nos salen las cosas. ¡Es broma! Bueno, pasa a veces.

Y no olvides el accesorio por excelencia de cualquier escritorio, una buena silla. Piensa que vas a pasar en esa silla unas cuantas horas.

4. Editor de texto o entorno integrado de desarrollo

Cuando toca ponerse manos a la obra, y dado que el acto de programar se materializa en escribir texto, lo que necesitamos es un editor de texto.

Aquí nos encontramos con dos opciones principales, que son el uso de un editor de texto sencillo para la escritura del programa, o el uso de un IDE, o entorno integrado de desarrollo (por sus siglas en inglés, Integrated Development Environment), que no solo nos permite editar el texto de nuestro programa, si no que nos facilita la escritura con diversas herramientas, nos permite ejecutarlo, optimizarlo, depurarlo, etc.

El único requisito que diría que tiene que proporcionar el editor que utilices es que tenga coloreado de sintaxis y control de la indentación, que en Python es sumamente importante. Aunque hay infinidad de alternativas te propongo aquí tres que sin duda son una muy buena opción, todas disponibles para Windows, Linux o Mac.

La primera de ellas es el editor de código abierto Atom. Es un editor fantástico, muy configurable y con un sistema de plugins bastante grande y potente. Puedes usarlo como editor de texto básico o, mejor aún, instalar los paquetes atom-ide-ui, ide-python y script para convertirlo en un editor más inteligente con el que puedas ejecutar tus programas sin salir del editor y tener ayuda en la programación.

La segunda opción es un IDE sencillo que se proporciona con la distribución de Python llamado IDLE. Al venir empaquetado con el propio Python no necesitas instalar nada a mayores y puedes empezar a trabajar directamente con él. IDLE está desarrollado completamente en Python, colorea tanto el código de tu programa con las salidas y los errores y permite depurar tus programas.

Y como tercera opción, si buscas algo más profesional, que haga los de las dos alternativas anteriores y muchas cosas más, te recomiendo el IDE Pycharm de JetBrains, que posee una versión gratuita con muchas características interesantes. Si en el futuro se te quedara corto, siempre puedes optar por la versión completa de pago.

Con ninguna de estas tres opciones te vas a equivocar, así que tampoco lo pienses mucho ni pierdas horas decidiendo. Lo importante aquí es empezar a programar y según vayas avanzando, ya encontrarás la herramienta que mejor se te adapte.

5. Buena música

Para mí la música es el equivalente auditivo de un escritorio limpio y despejado. La música ayuda a huir del mundanal ruido (como decía Fray Luis de León). Es decir, nos permite aislarnos un poco sonoramente para evitar distracciones.

Para esto es importante elegir una música que sea suave y nos ayude a centrarnos. Aquí a cada uno le funcionará una cosa. Por ejemplo, yo desarrollé gran parte de mi Proyecto de Fin de Carrera de Ingeniería Informática escuchando jazz. Aquí te recomiendo una música suave y relajada que sirva para potenciar nuestra atención. También es interesante que sea música no vocal, ya que estamos preparados para prestar atención a la voz humana. Pero si el heavy metal te ayuda a centrarte, ¡adelante!

Aprovecho para recomendarte, por ejemplo, y para presentártelo si no lo conoces a Robert Rich. Puedes probar con su disco Nest, que sirve perfectamente, además, para meditar o para escuchar mientras te das un relajante baño.

Hay quien preferirá el silencio más absoluto. En ese caso búscate una habitación tranquila o, si lo deseas, puedes hacerte con unos auriculares de cancelación de ruido que te permitan sumergirte más en tu tarea.

En cualquier caso, te aconsejo evitar la radio, donde el locutor puede interrumpirte a cada momento. Lo idea es utilizar alguna suscripción a servicios como Spotify o Deezer, eso sí, de pago, que no queremos que la publicidad nos fastidie cada pocos minutos.

6. Acceso a documentación técnica de Python

He visto a mucha gente aprendiendo a programar, o intentándolo, e ignorando las principales fuentes de información que hay que tener presentes y accesibles en todo momento. Espero que no cometas el mismo error.

Las principales fuentes de información con las que debes contar son las siguientes:

  • La documentación oficial de Python. Este es un recurso obligatorio, pues es como el manual de instrucciones de cualquier aparato. Te explica cómo funciona, cómo y cuándo debes usarlo y con qué problemas puedes encontrarte. Mi recomendación es que la tengas siempre abierta en tus sesiones de estudio, porque hay que volver a ella una y otra vez. En el siguiente enlace puedes encontrar la documentación oficial de Python. El principal problema es que solo está disponible en Inglés, Francés, Japonés, Koreano, Portugués Brasileño y Chino Simplificado. Dentro de esta documentación hay varios elementos, entre los que destaca un tutorial, la referencia del lenguaje, la referencia de las librerías estándar distribuidas con Python, documentos de configuración y uso y diversos howtos.
  • Tutoriales. Siempre es interesante tener un tutorial a mano. Los hay muy buenos, tanto, que basta con uno de estos para adquirir unos conocimientos notables del lenguaje. Nuevamente te recomendamos el tutorial oficial. No obstante, aquí te dejamos una traducción en Español de dicho tutorial de la comunidad Python Argentina, que aunque no es de la última versión es de una de las más recientes y se va actualizando de vez en cuando.
  • Libros. Los libros son otra gran fuente de información, y aunque tienen la desventaja de que pueden quedar rápidamente obsoletos, nunca está de más tener a manos dos o tres. Además, hay cerca de infinitos y de diferentes niveles y aspectos, así que seguro que vas a encontrar algunos que se adapten perfectamente.
  • Blogs y foros. Y para todo aquello que no está recogido en los manuales oficiales, tutoriales o libros, existen multitud de blogs acerca de Python y foros de desarrolladores donde enterarse de cómo solucionar muchos problemas o hacer preguntas. Hay comunidades realmente interesantes ahí fuera dispuestas a ayudar. Eso sí, ten precaución en los foros, a veces responde alguien con menos idea de la deseada y las soluciones aportadas no son las mejores (o son, incluso, erróneas).
  • Este blog. Por supuesto, esta es otra de nuestras recomendaciones, pues nuestro principal objetivo es ser una fuente de mucha utilidad. Puedes ver cómo nos las gastamos en Código Pitón echando un vistazo a este par de artículos, donde te explico con todo lujo de detalles cómo obtener una columna de una matriz o cómo hacer un substring y diversas operaciones con subcadenas.

7. Sistema de copias de seguridad

Aprender un lenguaje de programación es una tarea que requiere mucho esfuerzo y trabajo. Como resultado de dicho trabajo obtenemos decenas, sino centenas, de ficheros de código y programas con todos nuestros intentos y ejercicios. Y con Python te sucederá lo mismo, acabarás con muchos ficheros de código.

Este es otro gran motivo, que no el único, para tener a punto nuestro sistema de copias de seguridad. Pocas cosas hay más frustrantes que perder un trabajo que probablemente nos sirva de referencia en el futuro.

Si no quieres configurar un sistema automático de copias de seguridad en tu equipo, mi recomendación es que, al menos, cada semana realices una copia con todos tus avances en algún servicio de almacenamiento en la nube como pueden ser Google Drive, Dropbox o pCloud.

8. Sistema de control de versiones

Un sistema de control de versiones o CVS (por sus siglas en inglés, Control Version System) es un mecanismo que nos permite guardar las diferentes versiones por las que pasa un producto digital, normalmente basado en texto, aunque no exclusivamente.

Aunque esta tarea puede llevarse a cabo de manera manual, lo aconsejable es tener una herramienta que nos ayude a realizarla y poder contar así con todas sus ventajas. De esta manera, cada vez que se realiza un cambio del producto, se graba una nueva versión y se registra el cambio realizado etiquetándolo convenientemente. Así, se puede consultar toda la evolución del producto y volver a cualquier versión anterior si fuese necesario.

¿Por qué es importante un sistema de control de versiones para aprender a programar? Porque el software o código es un producto altamente volátil y que cambia y evoluciona constantemente y, cuando estamos aprendiendo, esto no es menos cierto. Al revés, nuestro código Python pasará por diversas fases, con muchos errores incluidos, y es muy interesante registrar esas fases pues son una parte fundamental de nuestro proceso de aprendizaje.

Además, te va a suceder, porque a todos nos ha pasado y nos sigue pasando, y yo me incluyo, que meterás la pata y te cargues algún código en el que estabas trabajando, bien porque borras lo que no debes o porque haces una serie de modificaciones que hace que algo que antes funcionaba relativamente bien ahora sea una desastre. ¡Pues no hay problema! Basta con decirle a nuestro sistema de control de versiones que nos devuelva alguna de las versiones anteriores, las buenas, y continuar el trabajo desde ella.

Aunque existen varias soluciones para el control de versiones, como pueden ser Mercurial o Subversion, te voy a recomendar Git por su eficiencia y su auge actual. Para su aplicación un buen comienzo es utilizar la plataforma GitHub que cuenta con un plan personal gratuito y que, normalmente está integrado en los principales IDEs, como puede ser PyCharm, recomendado también en este artículo.

Otra ventaja interesante de utilizar plataformas en la nube como GitHub es que nuestro código estará más seguro pues te sirve también de copia de seguridad, además de ser accesible desde cualquier lugar.

9. Papel y lápiz

Es increíble la cantidad de gente que he visto aprender a programar (ya sea en Python o cualquier otro lenguaje) totalmente atascada, mirando la pantalla, intentando descifrar el motivo por el cual un fragmento de código no funciona, esperando la inspiración divina o una revelación mágica.

¡Vaya error! ¡Vaya pérdida de tiempo! En estas situaciones tus mejores amigos son el papel y el lápiz. Son fundamentales en muchos casos, pudiendo destacar algunos:

  • Errores en tu programa. Lo mejor que puedes hacer en estos casos es hacer un seguimiento en papel del funcionamiento de tu programa que sin duda te ayudará a darte cuenta de cuáles son los problemas.
  • Diseños de estructuras de datos. Sucede que a veces necesitamos desarrollar estructuras de datos con cierta complejidad. Puedes, si quieres, imaginarte una lista donde en cada elemento de la lista tenemos otras dos listas con diversa información. O incluso una estructura con forma de árbol. Las cosas se vuelven más complicadas en general si solo tratamos de imaginar estas estructuras en nuestra cabeza en lugar de dibujarlas.
  • Esquemas. Cuando vayas avanzando en tu camino para dominar Python irás haciendo programas cada vez más complejos y con múltiples componentes. Es de mucha ayuda en estos casos hacer esquemas donde quede clara la estructura de nuestro programa, cómo se comunican los componentes entre sí y cómo es el flujo de datos y las entradas y salidas de información de cada uno de esos componentes.

Otra utilidad fantástica de una libreta es la aplicación de algún método de productividad como ayuda a la planificación para el aprendizaje de Python. Mi recomendación es usar un método sencillo basado en listas llamado Autofocus-4.

Así que ya sabes, hazte con una buena libreta y algunos bolígrafos, rotuladores o lápices de colores. Precisamente estos son otros de los objetos que deben estar sí o sí en tu escritorio (y que antes te anticipaba con un poco de misterio). Y si bien parecen elementos no muy tecnológicos, ¡obrarán maravillas en tu aprendizaje!

10. Software de hojas de cálculo

Resulta de mucha utilidad, casi fundamental diría yo, el uso de un software de hojas de cálculo, como puede ser Google Sheets o LibreOffice Calc. No solo las podemos utilizar para realizar el seguimiento de la evolución de nuestro aprendizaje, que también, sino que muchas veces las utilizaremos para preparar ficheros con datos de entrada para nuestros programas. Por ejemplo, imagina que queremos trabajar con datos estadísticos sobre pasajeros de vuelos, pues podemos tratar estos datos con una hoja de cálculo y dejarlos con el formato adecuado para que nuestro programa en Python pueda leerlos.

También pueden resultar de utilidad para lo contrario, es decir, para tomar datos proporcionados por nuestros programas y después abrirlos en una hoja de cálculo para poder examinarlos con calma, hacer operaciones con ellos o dibujar algunas gráficas.

En mi trayectoria como programador, tanto en mi vida profesional como en mis asuntos particulares, me he encontrado infinidad de veces utilizando este tipo de software como apoyo a la programación. Sin él, muchas de las tareas resultarían más tediosas, complicadas o, incluso, inabordables.

Palabras finales

¡Ojo! No todas las cosas que te propongo en este artículo son obligatorias o estrictamente necesarias. Algunas sí, evidentemente, pero otras son mi recomendación basada en mi experiencia personal.

Podría hacer esta lista mucho más grande, pues hay más cosas y factores a tener en cuenta, pero pienso que estas son las más necesarias. Además, me parecen un conjunto bastante completo como para no necesitar nada más, al menos en los primeros meses de aprendizaje. Es posible que, al principio, algunas de ellas no tengan sentido para ti, pero con el tiempo verás su utilidad.

Si has llegado hasta aquí te voy a regalar una cosa extra, pero esta vez, es todo lo contrario. Te voy a contar la cosa número 1 que NO necesitas para aprender Python (o cualquier otro lenguaje).

Lo que no necesitas: tú móvil o celular cerca

Sí, lo has «oído» bien. El móvil es la principal causa de que perdamos el foco y la concentración. Tiene la gran capacidad de interrumpir con trivialidades en cualquier momento y de robar bastante tiempo que se resta directamente de nuestra productividad. De forma que, hazte un favor y apaga el móvil cuando estés aprendiendo a programar o, quién sabe, desarrollando ya algún software importante.

Ahora sí, ya lo tienes, ¿te lo imaginas? Todas las cosas que necesitas para aprender Python. Tu equipo preparado en tu flamante y despejado escritorio. Tu arsenal de herramientas listo y la música sonando. Toda la tarde por delante. Tú y Python. Python y tú. ¡Buena velada!

La Hoja de Referencia de Python – ¡Gratis!

La Hoja de Referencia de Python - Código Pitón
Consigue trucos, consejos y actualizaciones y, por supuesto, la Hoja de Referencia de Python gratis.



Antes de suscribirte consulta aquí la Información Básica sobre Protección de Datos. Responsable de los datos: Laura Otero Moreira. Finalidad de la recogida y tratamiento de los datos personales: enviarte boletín informativo de Python y comunicaciones comerciales. Legitimación: tu consentimiento. Destinatarios: no se ceden a terceros. Los datos se almacenan en los servidores de marketing (MailRelay). Derechos: podrás ejercer tus derechos de acceso, rectificación, limitación y supresión de datos en info @ codigopiton.com así como presentar una reclamación ante una autoridad de control. Más información en nuestra política de privacidad, encontrarás información adicional sobre la recopilación y el uso de tu información personal, incluida información sobre acceso, conservación, rectificación, eliminación, seguridad y otros temas.