The Best Resources For Learning Python (And Why Every Developer Should)

Python is considered one of the best languages for fledgling coders to learn as an introduction to programming. On top of that, according to Stack Overflow’s 2017 Developer Survey, Python is the “most wanted” language by developers this year—meaning it’s the language developers most want to use in 2017. It also made the list of best-paying technologies in the US and worldwide.

Whether you’re already fluent in a programming language (or five), or are dipping a toe into the coding pool for the first time, Python will enrich your relationship with technology and understanding of the theory of programming, as well as exponentially increase prospects for a career in programming. Here are a few tools for getting started.

1. Learn Python

This site is accessible to both new and experienced programmers. It’s funded by DataCamp and free to use. The lessons are broken out into categories: Learn The Basics, Data Science Tutorials, and Advanced Tutorials. Their DataCamp partnership means Learn Python also provides access to DC’s interactive Python tutorials that cover data manipulation, data visualization, statistics, machine learning, and more advanced Python skills. Community interaction and peer feedback are considered important learning tools, especially in the tech community, so Learn Python has a Facebook group dedicated to answering questions for and building relationships between coders pursuing Python.

2. Codecademy

Users can learn a variety of languages through Codecademy’s free online courses, as well as basic tutorials in things like how to make and deploy a website. The courses vary in length, but the Python course is estimated to run about 13 hours. The course covers everything from Python syntax to bitwise operators, so graduates of the course will come away with a solid understanding of Python’s principles, as well as confidence in their ability to apply their knowledge practically. Quizzes and tests along the way, plus a final project in which students build, test, and run an application using Python ensures they feel ready to use Python when it matters. For more resources, upgrade to Codecademy PRO. For $19.99, users get personalized learning paths, additional quizzes and projects, and access to help from advisors every day.

3. Learn Python The Hard Way

(It’s not really the hard way.) LPTHW is actually designed for total beginners and is thought to be one of the most effective systems for learning the basics of computer programming. The Python course, Learn Python The Hard Way, isn’t free, but there’s a free sample online with 8 exercises and an appendix users can review before committing to purchase. If you buy the $29.99 book for the course from the author, you’ll get a PDF and videos covering every exercise for Windows, Linux, and macOS which you can download and view anywhere.

The course can take anywhere from one week to six months to complete—it all depends on how much time the student wants to devote to it every day. The course starts with the setup and goes all the way through building a website. By the end of this course, students will have a facility with both the theory and the application of Python that will be an asset to any programming endeavor.

Editor’s Note:

Our goal with Code for a Living is to provide a wide range of options and opinions about developers’ career paths and learning best practices. While we had heard from a few developers that Learn Python the Hard Way was a great resource, after the publication of this post, a few members of our Python community reached out and expressed concern. Specifically, they pointed to their community’s recommendations on how to learn Python… and the fact that they strongly recommended against LPTHW. We should have done more due diligence on this post with our community, and we apologize for not having both sides when we published.

If you see posts in the future with content that concerns you, please reach out to us either on Meta (as the Python community folks did) or directly to We love feedback!

When you’re ready to flex that newly-honed Python muscle, find great companies looking for developers like you at Stack Overflow Jobs.


Alyssa Mazzina

Alyssa was a Content Writer at Stack Overflow where she wrote for the Code for a Living blog, helping developers make the most of their careers. She lives in California, in a house filled with kids and dogs.

Related Articles


  • veganaiZe

    Codecademy is janky, based on Python 2.x, and doesn’t even show the course as 100% complete in my profile (anymore) but it is still listed in the course catalog (and my catalog states that I’ve completed 100% of it — the outside world can’t see that though). As a matter of fact they have removed several other completions from my profile, as well. I guess that I’m supposed to send people digging through my 112 badges instead… Anyway, if someone wants to create a competing site, look me up.

    • veganaiZe

      I have to admit that Codecademy corrected the long-standing problem with
      Python completion showing on my profile, overnight, after I’d posted
      this. Thanks Codecademy! (What about PHP? =)

  • Please, please, please don’t recommend LPTHW. The book is the single largest source of confusion for new Python users; it teaches an old version of the language and has many other issues. See The Stack Overflow Python room keeps a list of better recommendations at instead.

    • davidism

      For some recent material about why the book and author are not good for the community, see Unfortunately, the LPTHW author has done a very good job marketing their work, and being a “polarizing” personality online is part of that success, but that does not actually make it a good resource.

    • David Antonini

      CodeAcademy isn’t much better.

  • Khalil Al Hooti

    I think this site is one of the best to learn python. I mostly learned from it even being new to programming.

  • Blackwood

    Is this an expert evaluation of ways to learn Python, or a list of ways that appear to be popular, or an advert?