¿Estás interesado en integrar un poco de programación en tu rutina cotidiana?, ¿Necesitas aprovechar de la versatilidad y eficiencia que te otorga manejar con fluidez codigo?, ¿O simplemente quieres aprovechar de la utilidad de poder realizar análisis computacional?. Sea cual sea la razón, te podrías estar preguntando por donde empezar. Habiendo tantos lenguajes de programación disponibles, con una cantidad prácticamente infinita de usos, puede serte difícil decidir con cuál empezar a aprender o cuál aportará más a tu trabajo.
Probablemente hayas escuchado de Python en algún momento, debido a que es un lenguaje con mucha difusión, que goza de una gran comunidad y patrocinio de grandes compañías (principalmente Facebook, Google, Amazon y Capital One). Se trata de un lenguaje interpretativo (no requiere ser compilado) y de alto nivel, lo cual lo hace perfecto para principiantes y cualquier tipo de persona que quiera entrar en el mundo de la programación. Si aún no te hemos convencido, aqui te damos mas excusas para aprender a usar Python en tu próóximo proyecto de investigación!
Lenguaje estándar para ciencia reproducible #
No importa cual sea la rama en la que te desenvuelvas, Python es una de las principales herramientas en la creación de investigaciones reproducible. Siendo un lenguaje que se presta muy bien a la creación de 'scripts' pequeños y modulares, ademas de ser bastante ligero y poseer su propio manejador de paquetes (pip), hace que la creación de un entorno virtual para investigación colaborativa y reproducible sea sencilla e indolora. Dejar disponible cóódigo libre usado en tu investigación hará mucho para garantizar su reproducibilidad, sobre todo si utilizas un programa de control de versiones como git, y esto no es algo que puedas hacer usando programas pre-compilados de código cerrado.
Gran cantidad de recursos y apoyo disponibles #
Siendo Python un lenguaje que cuenta con una gran comunidad internacional, hay un sinfín de libros y guías dispuestas a ayudarte en tu ruta de aprendizaje, en todo tipo de plataformas. Si tienes algún problema o duda, es cuestión de buscar o preguntar por algun sitio de consulta (como StackOverflow), y si lo que quieres es aprender a escribir código, hay un sinfín de posibilidades a tu alcance, desde cursos directos en sitios como Codeacademy, hasta libros como Python Crash Course o Learn Python 3 the Hard Way. Además, su uso común en ambientes académicos hace sencillo encontrar con quien colaborar.
Librerías dedicadas a análisis científico #
Hay una multitud de librerías de Python que reciben mantenimiento y apoyo regular por parte de desarrolladores y usuarios, y que son utilizadas muy comúnmente en ámbitos no solo de estadística o ciencia de datos, sino también en experimentos, dependiendo de la circunstancias. Librerías como matplotlib, Pandas, SciKit learn son usadas regularmente en una variedad de análisis, ya que proporcionan herramientas para manipulación y interpretación de datos de alto nivel en una gran cantidad de formatos, cuyos resultados pueden ser luego fácilmente mostrados de una forma visual e intuitiva sin sacrificar reproducibilidad.
Interpretado y sencillo de aprender #
Ya que Python es un lenguaje de alto nivel (más parecido a nuestros 'lenguajes naturales', abstrayendo mucha de la lógica interna de la computadora), está diseñado específicamente para que el código escrito en este sea fácil de leer y entender, con uso significativo de espacios en blanco y constructos del lenguaje; se hace mucho mas intuitivo para aquellos que no esten acostumbrados a leer y escribir código. Además, que sea interpretado significa que no te tienes que preocupar por compiladores y demás tecnicismos.
Automatización de tareas manuales y tediosas #
Sin escribir mucho código, Python permite que muchas tareas de manejo e interpretación de datos o archivos (tales como comparación de dos tablas de datos, conversión de tipos de archivos, etcetera) se puedan automatizar de una forma rápida y sencilla. Sin mencionar que hay una cantidad enorme de apoyo para todo tipo de formatos de imágenes, películas, música, texto, etcetera. De hecho, este es el foco del libro Automate the Boring Stuff with Python un libro de acceso abierto para la lectura desde su sitio web.
Creación de tu propio entorno de trabajo #
Con la continua creación de scripts y uso de librerías adaptadas a tu flujo y area de trabajo, eventualmente puedes automatizar y hacer mas eficiente gran parte de tu investigación, teniendo un conjunto de herramientas de código abierto y acceso libre a tu disposición, para que las puedas modificar y mejorar como desees. Si aprendes a integrar elementos de interfaz gráfica (GUI) en tu código, te sera aún mas fácil integrar de forma fluida scripts de Python en tus proyectos de investigación colaborativa, haciéndolos accesibles y sencillos de usar.
Visualización y demostración de análisis #
Existen una gran cantidad de opciones en relación a librerías de Python usadas muy comúnmente en escritura de artículos de análisis computacional. Ya sea el anteriormente mencionado Matplotlib, librerías que enlazan R a Python, o 'cuadernos' como los de Jupyter. Existe una variedad de herramientas que permiten a cualquiera no solamente ver gráficos sino también fácilmente entender como fueron generados y experimentar con las variables y modelos usados.
Multiplataforma y soporte en varias IDEs #
Python, al ser un lenguaje abierto, es inherentemente multiplataforma. Pero lo mas importante es la gran cantidad de entornos de desarrollo integrado (IDEs, por sus siglas en inglés) que soportan nativamente, sin necesidad de plugins, la sintaxis de Python, haciendo posible el uso de completación de código y el aprovechamiento de otras capacidades de la IDE que estés utilizando (como integración con git, programación visual y otras añadidas mediante plugins).
Scripting con librerías de multiples lenguajes de programación #
Debido a la facilidad y rapidez de escribir muchos scripts pequeños en Python, se han creado distintas utilidades que se apoyan a su vez en código anteriormente escrito con otros lenguajes (tales como C++) para interactuar con controladores de hardware, leer archivos con datos crudos, ejecutar operaciones que son mas eficientes a bajo nivel, etc. En pocas palabras, puedes usar a Python como si fuese una especie de "gestor" de una multitud de programas ya hechos, dándote aún mas flexibilidad sin complicar demasiado las cosas.
Computación interactiva #
Python posee un terminal interactivo que te permite ejecutar y evaluar comandos de una forma directa, y 'recordar' comandos previamente utilizados al instante, además de importar librerías sin necesidad de correr archivos con código previamente escrito (en formato .py), definir variables, correr y grabar funciones, etcetera. Ciertas herramientas, como Jupyter, permiten integrar la shell dentro de una interfaz web, lo cual facilita a cualquiera a cualquier usuario interactuar con tus modelos y funciones libremente.