title: Best Python Resources
category: page
slug: best-python-resources
sort-order: 1101
choice1url: /web-frameworks.html
choice1icon: fa-code fa-inverse
choice1text: I'm ready to learn how to code an application with a web framework.
choice2url: /deployment.html
choice2icon: fa-share
choice2text: I already built a web application. I need to know how to deploy it.
choice3url: /introduction.html
choice3icon: fa-fast-backward fa-inverse
choice3text: Let me start over from the Full Stack Python introduction.
choice4url: /development-environments.html
choice4icon: fa-desktop
choice4text: What should I use to code my Python application?


# Best Python Resources
The Python community is amazing at sharing detailed resources and helping
beginners learn to program with the language. There are so many resources
out there though that it can be difficult to know how to find them. 

This page aggregates the best Python resources with a brief description of
how it fits one's learning purpose. 

Looking for information on Python development environments? There's a 
[whole other page for editors and IDEs](/development-environments.html).


## New to programming
If you're learning your first programming language these books were written
with you in mind. Developers learning Python as a second or later language
should skip down to the next section for "experienced developers".

* If you've never programmed before check out the 
  [Getting Started](http://learntocodewith.me/getting-started/) page on 
  [Learn To Code with Me](http://learntocodewith.me/)
  by [Laurence Bradford](https://twitter.com/lebdev). She's done an 
  incredible job of breaking down the steps beginners should take when 
  they're uncertain about where to begin.

* To get an introduction to both Python and Django at the same time, purchase
  [Real Python](http://www.realpython.com/) by Fletcher, Michael, and Jeremy.

* [Learn Python the Hard Way](http://learnpythonthehardway.org/book/) is a
  free book by Zed Shaw.

* [Dive into Python 3](http://www.diveinto.org/python3/) is an open source
  book provided under the Creative Commons license and available in HTML or
  PDF form.

* [Python for You and Me](http://pymbook.readthedocs.org/en/latest/) (pym) is
  an online book for people completely unfamiliar with the Python programming
  language.

* [A Byte of Python](http://www.swaroopch.com/notes/python/) is a beginner's
  tutorial for the Python language. 

* Code Academy has a [Python track](http://www.codecademy.com/tracks/python)
  for people completely new to programming.

* [Introduction to Programming with Python](http://opentechschool.github.io/python-beginners/en/index.html)
  goes over the basic syntax and control structures in Python. The free book 
  has numerous code examples to go along with each topic.

* The O'Reilly book 
  [Think Python: How to Think Like a Computer Scientist](http://greenteapress.com/thinkpython/html/index.html)
  is available in HTML form for free on the web.

* [Python Practice Book](http://anandology.com/python-practice-book/index.html)
  is a book of Python exercises to help you learn the basic language syntax.

* Looking for ideas about what projects to use to learn to code? Check out 
  [this list of 5 programming project for Python beginners](https://medium.com/learning-journalism-tech/five-mini-programming-projects-for-the-python-beginner-21492f6ce0f3).

* I wrote a quick blog post on
  [learning Python](http://www.mattmakai.com/learning-python-for-non-developers.html)
  that non-technical folks trying to learn to program may find useful.


## Experienced developers new to Python
* [Learn Python in y minutes](http://learnxinyminutes.com/docs/python/)
  provides a whirlwind tour of the Python language. The guide is especially
  useful if you're coming in with previous software development experience
  and want to quickly grasp how the language is structured.

* [Python for you and me](http://pymbook.readthedocs.org/en/latest/) is an
  approachable book with sections for Python syntax and the major language 
  constructs. The book also contains a short guide at the end to get
  programmers to write their first Flask web application.

* Kenneth Reitz's 
  [The Hitchhiker’s Guide to Python](http://docs.python-guide.org/en/latest/)
  contains a wealth of information both on the Python programming language and the community.

* [How to Develop Quality Python Code](https://districtdatalabs.silvrback.com/how-to-develop-quality-python-code)
  is a good read to begin learning about development environments, 
  application dependencies and project structure.

* [Google's Python Class](https://developers.google.com/edu/python/) contains
  lecture videos and exercises for learning Python.

* Check out the [Real Python! Blog](http://www.realpython.com/blog/) for a great
  set of relevant posts about Python web development topics.


## Beyond the basics
* [The Python Ecosystem: An Introduction](http://mirnazim.org/writings/python-ecosystem-introduction/)
  provides context for virtual machines, Python packaging, pip, virutalenv
  and many other topics after learning the basic Python syntax. 

* The [Python Subreddit](http://www.reddit.com/r/python) rolls up great
  Python links and has an active community ready to answer questions from
  beginners and advanced Python developers alike.

* [Good to Great Python Reads](http://jessenoller.com/good-to-great-python-reads/)
  is a collection of intermediate and advanced Python articles around the web
  focused on nuances and details of the Python language itself.

* The blog [Free Python Tips](http://freepythontips.wordpress.com/) provides
  posts on Python topics as well as news for the Python ecosystem.

* [Python Books](http://pythonbooks.revolunet.com/) is a collection of freely
  available books on Python, Django, and data analysis.


## Videos, screencasts and presentations
* [Kate Heddleston](https://twitter.com/heddle317) gave a talk at PyCon 2014 
  called 
  "[Full-stack Python Web Applications](http://pyvideo.org/video/2591/so-you-want-to-be-a-full-stack-developer-how-to)"
  with clear visuals for how numerous layers of the Python web
  stack fit together. There are also [slides available from the talk](https://speakerdeck.com/pycon2014/so-you-want-to-be-a-full-stack-developer-how-to-build-a-full-stack-python-web-application-by-kate-heddleston)
  with all the diagrams.

* My [EuroPython 2014 "Full Stack Python"](https://www.youtube.com/watch?v=s6NaOKD40rY)
  talk goes over each topic from this guide and provides context for how the
  pieces fit together. 
  The [talk slides](http://www.mattmakai.com/presentations/2014-full-stack-python-berlin.html) are also available.

* [Neckbeard Republic](https://www.neckbeardrepublic.com/) provides free 
  screencasts for learning intermediate topics. I typically prefer to learn
  by reading. However, these videos are helpful in seeing the code on the 
  screen instead of just looking at static code snippets.

* [PyVideo](http://www.pyvideo.org/) organizes and indexes thousands of Python
  videos from both major conferences and meetups.


## Curated Python packages lists
* [awesome-python](https://github.com/vinta/awesome-python) is an incredible
  list of Python frameworks, libraries and software. I wish I had this
  page when I was just getting started. 

* [easy-python](http://easy-python.readthedocs.org/en/latest/) is like
  awesome-python although instead of just a Git repository this site is
  in the Read the Docs format.


## Newsletters
* [Python Weekly](http://www.pythonweekly.com/) is a free weekly roundup
  of the latest Python articles, videos, projects, and upcoming events.

* [PyCoder's Weekly](http://pycoders.com/) is another great free weekly
  email newsletter similar to Python Weekly. The best resources are generally
  covered in both newsletters but they often cover different articles
  and projects from around the web.

* [Import Python](http://importpython.com/newsletter/) is a newer newsletter
  thank Python Weekly and PyCoder's Weekly. So far I've found this newsletter
  covers different sources from other newsletters. It's well worth subscribing
  to all three so you don't miss anything.


### Those resources should help get you started. What's next?
