Best way to learn Python online (free or cheap)?
September 24, 2024 4:54 PM   Subscribe

I am looking to learn Python! What are the best (ideally free or cheap) online resources for this? My schedule is not very flexible but I do best with structure and hands-on learning so self-paced but easy to access courses with lots of exercises and chances to try things would be much appreciated.

The context for this is that I would like to have the ability to get a job that requires knowledge of Python and want to learn both quickly and thoroughly (my current job is basically all SQL all the time and I really enjoy SQL but am ready for a new challenge). I've done some Googling but the options are a little overwhelming and I don't know which of the many choices would be the best use of my time. I learn very quickly and enjoy puzzles and problem solving but am coming at this from basically zero (like, I don't even have a ton of experience using the command line, I have a technical job but a non-technical background so there are lots of big gaps in my knowledge). Happy to answer any questions people might have. Thank you so much for any help you can provide!
posted by an octopus IRL to Computers & Internet (16 answers total) 32 users marked this as a favorite
 
I really liked "Python for Everybody": https://www.py4e.com
posted by icebergs at 5:08 PM on September 24


Have you found the Python org page of resources for beginning programmers? I agree with them that a good book is a great way to learn — you might, depending, switch between Automate the Boring Stuff and Think Like a Computer Scientist, which are at opposite ends temperamentally. (You can be coding in an online interpreter while reading the book online, even.)
posted by clew at 5:09 PM on September 24


i am currently taking harvard's CS50x through edx for free (which is a broad beginner's guide to computer science) and really enjoying it for the most part. they also offer a python course (CS50p i believe), the first lecture of which i watched and found similarly good.
posted by koroshiya at 5:35 PM on September 24 [2 favorites]


If you use an IDE, see if it has a Python extension. (For example, Microsoft Visual Studio has a Python module.) If you need an editor, consider VIM.

Since you are familiar with SQL, consider looking into the Python SQL libraries. (There are Python libraries for almost everything!)
posted by SPrintF at 5:47 PM on September 24


My 12 year old is going through this course at the moment, and it seems to be good.

https://replit.com/learn/100-days-of-python?ref=dailydev
posted by WizKid at 6:24 PM on September 24


The *problem* with your question is there are a lot of sub-specialties with Python, that just "learning Python" may not cover.

There's Python (or "core Python" if you prefer...)

There's webdev Python that features the usage of Django, Flask, or other webdev libraries that specializes in building servers and microservices in Python that links to databases (Reddit is written in Python, really).

Then there's data science Python that makes you use sci-kit, pandas, numpy, and so on for analyzing matrices, ingesting and transforming datasets, perform regression analysis, and so on.

So, any specific genre of Python you want to learn?
posted by kschang at 10:04 PM on September 24 [1 favorite]


A few years ago I took a couple of semesters of the EDx course in Python at MIT and really learned a lot. There's a free version or you can pay $149 to have graded tests, unlimited access to course materials, and a certificate, which I found to be worth it for the tests alone.

I had dabbled with working on my own with some books, but this provided a lot more structure. Another good thing was the online forums you could turn to if you ran into technical problems with setting up the software and IME and so on.

I had also tried out the Harvard course, but MIT was much better organized in terms of helping you set things up and get up to speed and start coding.
posted by Umami Dearest at 12:36 AM on September 25 [1 favorite]


I wholeheartedly recommend this course on Udemy: 100 Days of Code

It's usually around $10 for the whole course. The instructor has a kind and soothing voice and has structured this for complete beginners, so much so that I fast-forwarded a number of sections. This course is great especially for those who don't come into Python knowing terms like 'libraries' and 'sci-kit' etc.

This course was so enjoyable that it became my 'procrastination' task for the day - listen to the comforting voice, do a small exercise, get into flow, dopamine high from completing said task. Having said that, I did give up at about 50 days or so. But it's a great primer to start.
posted by moiraine at 1:16 AM on September 25 [3 favorites]


I wrote a book on Python for total beginners that is free: Automate the Boring Stuff with Python

It's programming for office workers who don't need to learn computer science, they just need to learn how to write little programs that do useful practical stuff like update spreadsheets, scrape info off websites, read PDFs, send notification emails, etc.

It's sold a million copies despite being free under a Creative Commons license, so it's probably good.
posted by AlSweigart at 8:24 AM on September 25 [14 favorites]


I used Udemy for my basic Python knowledge (and DataCamp to brush up on data science stuff)

A key thing I liked about Udemy is that I could jump around between instructors to sample how they built knowledge in different ways and introduced concepts in different orders. I primarily swapped between the really popular 100 days of Python course and Colt Steel’s bootcamp. The former was a little more clickbaity, and the latter did more to get into the fundamental “what” and “why” of it.
posted by itesser at 8:45 AM on September 25


I loved going through the CodingBat exercises for Python to practice my skill at basic syntax and growing my comfort with writing increasingly complicated functions.
posted by brainwane at 10:31 AM on September 25


The Carpentries' intro-to-Python lessons are well-designed and well-tested. They have two different ones, one appropriate for learners with no previous programming experience, and one for audiences with some experience with Python or other programming languages. So if one doesn't feel great, try the other.

I've also benefited from "Google's Python online tutorial. It is based on the introductory Python course offered internally" (that is, offered to developers who work at Google).

All of those (and CodingBat) are free to read/use.
posted by brainwane at 10:35 AM on September 25 [1 favorite]


Oh, one more free resource: the visual debugger at PythonTutor.com. I haven't used it myself but a lot of people like it.
posted by brainwane at 10:39 AM on September 25


I enjoyed the free Python course at Codecademy. It's not very deep, more of a basic overview, but makes for a good starting point.
posted by xedrik at 12:40 PM on September 25


The free content on RealPython.com has been very pleasant for me to use when I need to remember how to use some part of the language I'm not as used to. The content is well laid out and explained in a way that makes sense to me. That said I've never used it from the ground up and I'm not sure how much is free vs requires a subscription. They have content that includes setting up your development environment on your computer, and they have various "bundles" of tutorials that take you through a bigger piece of competency.
posted by rivenwanderer at 4:17 PM on September 25 [1 favorite]


Learn Python The Hard Way.
posted by k3ninho at 5:30 AM on September 26


« Older Power Outage 5 1/2 hours - Can I eat it question 1...   |   How to determine if a book ordered from Amazon is... Newer »

You are not logged in, either login or create an account to post comments