Python

Best place to learn python

Best sources for python learning & training. Seven great ways to level up your python programming skills

Start with free resources

This is a meta recommendation. Start with the free stuff then start buying things. You’d be amazed at the amount of free resources that you can find online that are as good, if not better than an expensive college course.

Udemy

Level: Beginner

Wait? did you just say not to spend money? Yes, except if you're an absolute beginner you should probably go check out a python udemy course. They're crazy cheap, often less than $30 and you typically get access to the course for a year+.

Cheap courses on python from udemy: Complete Python Bootcamp: Go from zero to hero in Python 3

Koans

Level: Intermediate

Never underestimate the power of re-enforced learning especially for scripting languages like python.

"Practice makes perfect" The idea behind koans is basically to practice using the language a lot. They're generally given as a set of test cases that are initial broken and you have to fill in a small amount of code to make the test pass

Here's one that I've used often. Just follow the instructions in the README.md : Python Koans

Example: about lambdas What goes in the ”__” below?

class AboutLambdas(Koan):
    def test_accessing_lambda_via_assignment(self):
        sausages = self.make_order('sausage')
        eggs = self.make_order('egg')
    
        self.assertEqual(__, sausages(3))
        self.assertEqual(__, eggs(2))

If you guessed "3 sausages" and "2 eggs" then you're right, if you're confused checkout the README.md in the koan github for instructions on how to download and run them.

Youtube.com

Level: Intermediate

Great expert on python talking about some interesting common mistakes James Powell: So you want to be a Python expert? | PyData Seattle 2017

Effective Python by Bret Slatkin

Effective Python by Bret Slatkin (Buy here) Level: Intermediate

All languages have "best practices" and this seems to be one of the best places to learn these for Python that I've found. The author lays out the book as a series of "items" which are each notes on some best practice or recommendation. These run the gambit from "use virtual envs" (duh) to "Item 37: Use threads for blocking I/O avoid for parallelism."

Example:

Item 37: Use threads for blocking I/O, avoid for parallelism. TL;DR - the GIL makes threading non optimal for tasks involving lots of CPU. Instead, you should use threading for tasks that involve a lot of blocking I/O, such as writing to disk, network IO etc...

dev.to has a bunch of really great blogs and tutorials

I cant recommend dev.to enough. It's a completely free "reddit" for developers. They have a bunch of great blogs, articles, and tutorials. Plus the community resources on the site are a great way to meet folks and get your foothold on that first job.

PEP8 Style guide

A style guide... really?

This site is awesome. One, if you reference PEP8 style guide it during an interview question you'll totally get bonus points. Two, there are hundreds of resources on the site other than the style guide itself.

Check it out here: PEP 8

podcast.init

An awesome pod cast with great interviews of influential people from around python.

Podcat.init