Recommended Python learning resources ✅

For people who have learned Python in the last few years, please edit this wiki topic to add information about what resources you found most useful. Please only include things that you personally have used and liked, and also mention what you liked about it. Once we have a list, I’ll do a poll to see what’s most popular. If you’ve got more to add about something already listed (good or bad) please mention it in a reply. Thanks!

Note that this is a forum wiki thread, so you all can edit this post to add/change/organize info to help make it better! To edit, click on the little pencil icon at the bottom of this post. Here’s a pic of what to look for:

discourse_edit_btn

Beginners to programming

Intermediate programmers

  • The Hitchhiker’s Guide to Python: a book on Python from Kenneth Reitz, the author of requests library. A comprehensive introduction into Python’s eco-system and best practices.
  • Peter Norvig’s Pytudes: a github repo that contains well-made jupyter notebooks, ranging in topics from Gesture Typing to A Concrete Introduction to Probability (using Python). These notebooks make for some great reads and the coding style is a good resource to learn from, especially in ways of breaking down problems in clear, readable code.
  • Design of Computer Programs also by Peter Norvig on Udacity is a great programming course in general, and has good introductions to comprehensions and generators.
  • Fluent Python: introduces the internals of python, helps you write more pythonic code.
  • Derek Banas - Python in one video : Ideal for people that have experience in some other programming language and want a quick tour of python
  • Trey Hunner: Trey has done a lot of webcasts as well as written a lot of good article focusing on intermediate python developer.
  • Python tricks by Dan bader: This book contains a lot of tricks which will make you a great Pythonista, you can also follow dan’s personal website https://dbader.org/ to learn more about the python tips and tricks.
  • Google’s Python Class:Google’s Python Class is a short but great introduction to python for people who already know programming but are new to python. It is available both as video lectures and articles.

Advanced programmers (but maybe new to python)

Python numeric programming (for people that know python already)

  • Stanford numpy tutorial: great little intro to key python libs and concepts for numeric programming
  • Python Data Science Handbook (by Jake VanderPlas) - An introduction to the major scientific Python/“PyData” packages and best practices. (Being two years old it may be slightly dated (only slightly) at a few places in terms of the API used, but it’s still a great intro and reference.) [The author has generously made available the entire book as freely available notebooks; however the book can also be purchased in print and electronic formats.]
  • Python for data science by wes mckinney(author of pandas): The author of pandas himself starts from basics and goes to advance features of pandas. In short great material to start learning pandas.
  • Scipy Lecture Notes: One document to learn numerics, science, and data with Python. Tutorials on the scientific Python ecosystem: a quick introduction to central tools and techniques. The different chapters each correspond to a 1 to 2 hours course with increasing level of expertise, from beginner to expert. (Online, HTML, PDF) with Source code (github)
  • Migrating MATLAB® to Python: Written by Enthought, Inc. This Guide helps
    Long-time MATLAB® users who want to migrate to Python, either partially or entirely.

Python challenges

Python podcast

Python Newsletters

If you want to keep updated with the python articles, videos and more then subscribe to these channels

127 Likes

https://www.udacity.com/: Has a number of free courses including;

  • Intro to computer science (Python 101).
  • Design of computer programs (python 202)
    and a bunch of data science/analysis stuff

https://www.dataquest.io: Paid but good content, aimed more at the data science/analyst market but good python content

+1 for learn python the hard way.
+1 for automate the boring stuff.
+5 for sentdex

5 Likes

All the tutorials mentioned above are good, but for beginners sometimes it’s tough to pick one. Here is the list I would suggest, choose according to your need

Please complete one tutorial and then move on to another

Tutorials:

Choose one from these three

-Data Camp
-Code academy
-Coursera

Youtube:

Books:

App

  • Solo learn: must install this app on your phone **

Podcast

Note: ** is compulsory

If you have any doubt feel free to post here, we are happy to help at any point :slight_smile:

2 Likes

Python For Data Science by Wes Mckinney is absolute gem of a book.

I have done many books/courses, but found solace in this book, because of the approach it takes to explain the concepts and gradual increments in order to engage and introduce the complexity.

Absolute delight to work through this book.

Sandeep

9 Likes

I agree! Do you have a moment add it (with a link) to the top wiki post so everyone can see your suggestion?

2 Likes

To help those of us who run Jupyter notebooks on GPU servers that are behind firewalls, I wrote this guide: How to Port-Forward Jupyter Notebooks.

(Not sure if there’s a better thread for this. Feel free to delete this post if you find it too obvious, unhelpful or inappropriate. Just passing on what I’ve learned.)

4 Likes

Done :slight_smile:

1 Like

Hi all,

I wonder if anyone has a link to an online advanced Python course, the sort that might be taken by a developer? I’m doing quite a few projects that are pushing me but would like a little ‘structured’ learning as a complement - ideally focused on doing (i.e. assignments) rather than books or lectures. In particular I’m interested in things like thinking more strategically about programming and help dealing with lots of abstraction.

Thanks in advance.

1 Like

Probably best not limiting yourself to Python books if you’re interested in those topics. Try Martin Fowler’s books.

5 Likes

Just a couple of suggestions: https://training.talkpython.fm/

And of course you can’t talk about advanced Python training without mentioning David Beazley: https://www.dabeaz.com/

Disclaimer: I have neither tried them out myself nor do I have any affiliation with Talk Python (apart from being a fan of Michael’s podcasts :slight_smile:).

1 Like

This is python specific and maybe not quite what you are looking for, but I found these courses (2 parts) full of interesting stuff. I have not done them from beginning till end but rather like a reference. So if I get stuck on something really strange, I watch the relevant chapters. It is definitely not just a shallow intro to python like many other courses, also goes into memory management and stranger parts of the language etc. (note, this is commercial content, but these are not afiliate links and I don’t profit in any way from this, just think it’s useful for some):
https://www.udemy.com/python-3-deep-dive-part-1/
https://www.udemy.com/python-3-deep-dive-part-2/
*Always wait for “sale” period on udemy, which comes like every other week. Don’t pay sticker price.

2 Likes

Thanks all, I will take a look at the suggestions - much appreciated. :smile:

A little context: I’ve done quite a bit of what is probably more akin to scientific programming (i.e. similar to data science in the interactive nature) but definitely find my programming a bit of a bottleneck for more advanced things like designing frameworks, batch jobs, dealing with huge code bases etc… i.e. the stuff that is usually bread and butter to someone who’s a developer by trade. As such I find delving under the hood of fastai simultaneously thrilling and bewildering :persevere: though would love to get to the level to contribute by the end of the year.

Thanks again!

Mark

5 Likes

Another good course, suggested by a lot of folks from the Python Reddit community:

1 Like

I “knew” Python, but what really set me on the path a few years ago was Peter Norvig’s Design of Computer Programs course on Udacity.

It’s a great programming course in its own right, and covers Python comprehensions, generators etc., really well. It will cure you of for loop addiction :D.

I would add to wiki but I don’t see a “Edit” button.

2 Likes

It’s definitely there. Bottom right of top post.

1 Like

I see it now. I was looking in wrong place. Thanks!

I quite like the book: The Hitchhiker’s Guide to Python: Best Practices for Development . I think I am lack of knowledge in software development rather than the programming language (how to structure the project, organize the class, …). However, I think this book missing examples or practicing part. Do someone know where I can practice more about these concepts ? Thank you in advance

Hi @marcmuc - just to update you and others for interest. I bought these courses and am really enjoying them at the moment - thanks!

Oh, and yes, I paid £11.99 per course from a much higher sticker price. For anyone cautious about them (I’ve never taken a course from Udemy before) the material is very well presented and so far seems to be of a high standard with lots of code examples.

2 Likes

I’ve heard good reviews about exercism https://exercism.io/tracks/python

1 Like

Thank you @miwojc . I’ve just tried exercism as you suggested and quite like it. The idea of practicing, getting feedbacks and see others’s codes are great. The limitation there now is the community is not very active (unfortunately it is the core concept make it works).

I will stay with it and recommend for someone need hand-on problems to work on and getting help from the pro :smiley: