The Internet is full of cool free Python resources! In this repository, I'll be learning algorithms, recording my solutions to some free practice problems, and taking notes on some free Python articles and books.
In this repository, I am using uv
for dependency and environment management. Just install uv and run uv install -r pyproject.toml
from the project root. When running a Jupyter notebook, you should use the environment created by uv
as your kernel.
Practice problems come from the following sources:
- Project Euler - Interesting practice problem set that scales in difficulty; quite mathy, not very gamified
- The Python Challenge - Highly gamified and a lot of fun, but pretty difficult and maybe better suited to intermediate programmers than beginners
- CodeWars - Moderatly gamified practice problems, mostly string/array manipulation at the lower levels, with some more advanced algorithmic optimization problems at the higher levels
Book notes come from the following resources:
- Dive into Python3, by Mark Pilgrim
- Think Python, by Allen B. Downey
Algorithms practice is based on tutorials from various sources, including:
This repository also includes notes on documentation for Python libraries and frameworks, including:
Many thanks to the authors who have generously made these resources available online.
You can also find me on CodeWars, where I practice Python along with several other languages:
https://www.codewars.com/users/chriscarrollsmith/badges/large