Contenido
¡Felicitaciones! No todos los días se toma el coraje de adentrarse en un mundo desconocido para muchos y tan divertido para otros. Me pone muy contento que te haya surgido la inquietud de ver "¿de qué se trata esto de Python?" y hayas llegado a este sitio web.
Aquí podrás encontrar unos pequeños lineamientos que te pueden ser de gran ayuda a la hora de aprender a programar en Python. Incluso, si no tienes conocimiento alguno de programación.
Antes que nada, algunos consejos para que no te desanimes en el camino del aprendizaje y te resulte más sencillo:
- Programar es muy divertido, pero como cualquier otra disciplina: lleva tiempo.
- A diferencia de otros lenguajes de programación, Python tiene una curva de aprendizaje mucho más rápida, lo cual te permitirá obtener resultados casi de inmediato.
- Al fin y al cabo, era mucho más fácil aprender a programar (y mantenerse actualizado) si se dominaba, al menos, un nivel básico de Inglés.
- Cualquiera puede aprender a programar. ¡Sí, cualquiera! No hay que ser un genio ni un maestro en nada. Yo pude, ;)
- En el camino, aprenderás a investigar y a resolver problemas por tu propia cuenta. Simplemente, con una conexión a Internet y leyendo varios foros/listas de correo o preguntando en diferentes canales de chat.
- ¡Sí, eso! Suscríbete a la lista de correo de tu región para así poder hacerle preguntas a otras personas que tienen más experiencia en el tema y siempre tienen ganas de ayudar.
¡Ahora sí, vamos a lo importante y centrémonos en aprender!
La teoría es cuando creés saber algo pero no anda. La práctica es cuando algo funciona pero no sabés porqué. El programador combina ambas: nada anda y no sabe porqué.
—Einstein + Anónimo
No sé nada de Python, ni de programación, y quiero empezar desde lo más básico:
¡No te desepciones!
Antes de empezar a leer fuertemente los libros o tutoriales que te recomendamos aquí, me parece muy bueno pegarle una primera ojeada a algunos de ellos (los que más te llamen la atención) y en base a eso, determinar cuál puede ser más divertido y entusiasmante empezar a leer. Incluso, ¡hay algunos que son interactivos y están buenísimos!
Tengo algún conocimiento en programación, o incluso en Python, y quiero leer algo un poquito más avanzado:
Tengo un dominio básico de lectura en inglés.
- How to Think Like a Computer Scientist (Interactive edition)
- Learn Python: The hard way
- Dive into Python 3 (PDF)
- The Hitchhiker’s Guide to Python (PDF)
- Automate the Boring Stuff with Python
- Learn Python 3 (curso interactivo en Code Academy)
Pertenezco al mundo de las ciencias de alguna manera: biología, química, genética, matemática, física, <coloque aquí su ciencia preferida> y quiero aprender a utilizar Python, por ejemplo, para analizar un enorme conjunto de datos de una forma automatizada. Además, ¡hay toda una comunidad (SciPy LA) esperando a que te sumes!
- Introducción a Python para científicos e ingenieros (curso en línea)
- Curso de AeroPython (notebooks sobre cálculo científico)
- Curso de python cientifico (elaborado por @mgaitan)
Y si te manejas con el inglés:
- Software Carpentry (Python, git y más)
- Python Data Science Handbook (notebooks sobre Data Science)
- SciPy Lecture Notes
- Courses from George Washington University
- CFD Python: 12 steps to Navier-Stokes
Estas son algunas herramientas/librerías/módulos/bibliotecas que te pueden interesar a la hora de hacer tus primeros programas o bien como guía sobre qué usar para resolver un problema determinado. Aquí se listan los links al sitio web oficial, por lo que es muy probable que estén en inglés.
Hacé click en cada una de las secciones para descubrir que hay en cada una de ellas:
.. collapse:: IDE (Entorno de Desarrollo Integrado) Un `entorno de desarrollo integrado <https://es.wikipedia.org/wiki/Ambiente_de_desarrollo_integrado>`_ es un programa que te facilita la gestión de los archivos Python de tus proyectos y también *te ayuda* coloreando la sintaxis, dándote sugerencias de autocompletado con las funciones disponibles y un sin fin de herramientas más. * `Spyder <https://github.com/spyder-ide/spyder>`_ * `Ninja-IDE <http://ninja-ide.org/>`_ * `PyCharm <https://www.jetbrains.com/pycharm/>`_
.. collapse:: Entornos virtuales Los entornos virtuales (*virtualenv*) son muy útiles para aislar diferentes instalaciones de Python en una misma computadora. Es muy común que necesitemos instalar dos versiones diferentes de un mismo módulo en una computadora, es ahí donde *virtualenv* juega un buen papel. * `virtualenv <https://virtualenv.pypa.io/en/latest/>`_ * `virtualenvwrapper <http://virtualenvwrapper.readthedocs.org/en/latest/>`_ * `fades <https://github.com/PyAr/fades>`_
.. collapse:: Interfaces gráficas Las `interfaces gráficas de usuario <https://es.wikipedia.org/wiki/Interfaz_gr%C3%A1fica_de_usuario>`_ (*GUI* -por su sigla en inglés) sirven para programas gráficos con ventanas y se vean lindos (como los que estamos acostumbrados a utilizar ;) ) * `Gtk <https://wiki.gnome.org/action/show/Projects/PyGObject>`_ * `PyQt <http://www.riverbankcomputing.com/software/pyqt/intro>`_
.. collapse:: Web scraping `Web scraping <https://es.wikipedia.org/wiki/Web_scraping>`_ es una técnica para obtener datos de diferentes sitios de internet. Por ejemplo, vemos mediante el navegador web una lista de productos con sus precios y queremos crear una base de datos local con todos esos productos: nombre, precio, imágen, etc. para luego hacer análisis posteriores. * `requests <http://docs.python-requests.org/en/latest/>`_ * `BeautifulSoup <http://www.crummy.com/software/BeautifulSoup/>`_ * `pyquery <http://pyquery.readthedocs.org/en/latest/>`_ * `Scrappy <http://scrapy.org/>`_ * `mechanize <https://pypi.python.org/pypi/mechanize/>`_
.. collapse:: Desarrollo web La `web <https://es.wikipedia.org/wiki/Desarrollo_web>`_ es *el hoy*. Muchísimas aplicaciones, herramientas y utilidades están basadas en Internet hoy en día. Además, con Python es muchísimo más fácil crear sitios que con otros lenguajes. Entonces, ¿porqué no aprender a crear nuestros propios sitios? * `Django <https://www.djangoproject.com/>`_ * `Flask <http://flask.pocoo.org/>`_
.. collapse:: Video juegos ¿Quién no quiso crear su propio `video juego <https://es.wikipedia.org/wiki/Videojuego>`_ cuando era chico? Aprovechá que estás leyendo esto y empieza con algunos de las siguientes librerías que te ayudarán en el desarrollo. * `pilas-engine <http://pilas-engine.com.ar/>`_ * `pygame <http://www.pygame.org/news.html>`_
Siempre es bueno aprender en comunidad. Sí, esto te permite aprender de otros que hace más tiempo que vienen estudiando o trabajando con Python y también, te ayuda a compartir lo que vos vas aprendiendo con otros que recién están empezando. De esta forma, todos ganamos y vamos creciendo juntos.
Pertenecer a una comunidad de Software Libre o de un lenguaje de programación, como Python, te va a permitir no estar solo a la hora de tener una duda o estar bloqueado con algo que no funciona como uno espera.
Queremos inspirar a las mujeres a enamorarse de la programación.
Te recomiendo que te contactes con la comunidad local o regional de tu zona para así poder estar en contacto con ellos, enterarte de los eventos que se están organizando y pedir ayuda cuando lo necesites. Para esto último, podés utilizar los diferentes canales que tienen: email, chat, foro, etc.
¡No dejes de sumarte a la comunidad de tu región! Vas a ver que es de gran ayuda y, además, ¡está buenísimo!
¿Conocés un buen tutorial?
Si sabés de algún libro, documento, biblioteca o algo que te gustaría agregar a este sitio web, enviame un email (o dejá un comentario en esta página) y lo revisaré.
También podes dejar un comentario aquí mismo explicando porqué un tutorial te ha gustado, te parece mejor que otro o lo que quieras.
Esta sección está en construcción. Sin embargo, no dejes de hacer tu sugerencia sobre un módulo, libro o documentación que te haya ayudado a aprender a programar en Python así lo revisamos y luego lo incluímos.
¡Me re copé con Python, leí un montón de cosas y ahora quiero rockearla!
Aquí listamos todo el material excedente que consideramos muy útil para seguir con el estudio de Python y la programación, pero que quizás desorienta un poco al principio. En esta sección podés encontrar otras guías similares a esta, más herramientas y módulos, documentación que se encuentra en progreso y diferentes tutoriales orientados a públicos distintos, además de utilidades que nos han sugerido los lectos.
.. collapse:: Guías de aprendizaje
Algunas otras guías similares a esta que te pueden ayudar a
empezar, son un poco más avanzadas o bien cubren otros temas.
* `Quiero empezar con Python
<http://pybonacci.org/2014/11/11/quieres-empezar-con-python/>`_ (Pybonacci)
* `Tutorial de Django Girls
<http://tutorial.djangogirls.org/es/index.html>`_ (Django Girls)
.. collapse:: Blogs de Python Diferentes blogs que hablan de Python en muchas direcciones y son muy útiles para mantenerse actualizado. * `Pybonacci <http://pybonacci.org/>`_ (España) * `Pythonízame <http://pythoniza.me/>`_ (México) Y si te manejas con el inglés: * `Planet python <https://planetpython.org/>`_ * `Inside the head of PyDanny <https://www.pydanny.com/tag/python.html>`_
.. collapse:: Python para niños
Libros dedicados a los niños para aprender a programar (todos en Español)
* `Inventa tus propios juegos de computadora con Python
<inventa-tus-propios-juegos-de-computadora-con-python.zip>`_
* `Code Combat (Interactivo) <https://codecombat.com/>`_
* `Lightbot (Interactivo) <http://lightbot.com/>`_
* `La confusion de la Tortuga <la-confusion-de-la-tortuga.pdf>`_
* Doma de serpientes para niños (`versión Linux
<doma-de-serpientes-para-ninos_swfk-es-linux-0.0.4.pdf>`_)
(`versión Windows
<doma-de-serpientes-para-ninos_swfk-es-win-0.0.4.pdf>`_)
.. collapse:: Artículos * `PyFormat: Using % and .format() for great good! <https://pyformat.info/>`_





