Ultimate Python study guide for newcomers and professionals alike. ๐ ๐ ๐
print("Ultimate Python study guide")
I created a GitHub repo to share what I've learned about core Python over the past 5+ years of using it as a college graduate, an employee at large-scale companies and an open-source contributor of repositories like Celery and Full Stack Python. I look forward to seeing more people learn Python and pursue their passions through it. ๐
Here are the primary goals of creating this guide:
๐ Serve as a resource for Python newcomers who prefer to learn hands-on.
This repository has a collection of standalone modules which can be run in an IDE
like PyCharm and in the browser like
Repl.it. Even a plain old terminal will work
with the examples. Most lines have carefully crafted comments which guide a reader
through what the programs are doing step-by-step. Users are encouraged to modify
source code anywhere as long as the main
routines are not deleted and
run successfully after each change.
๐ Serve as a pure guide for those who want to revisit core Python concepts.
Only builtin libraries are leveraged so that
these concepts can be conveyed without the overhead of domain-specific concepts. As
such, popular open-source libraries and frameworks (i.e. sqlalchemy
, requests
,
pandas
) are not installed. However, reading the source code in these frameworks is
inspiring and highly encouraged if your goal is to become a true
Pythonista.
๐ = External resource, ๐ฐ = Beginner topic, ๐คฏ = Advanced topic
- About Python
- Overview: What is Python (:books:, :cake:)
- Design philosophy: The Zen of Python (:books:)
- Style guide: Style Guide for Python Code (:books:, :exploding_head:)
- Data model: Data model (:books:, :exploding_head:)
- Syntax
- Variable: Built-in literals (:cake:)
- Expression: Numeric operations (:cake:)
- Conditional: if | if-else | if-elif-else (:cake:)
- Loop: for-loop | while-loop (:cake:)
- Function: def | lambda (:cake:)
- Data Structures
- List: List operations (:cake:)
- Tuple: Tuple operations
- Set: Set operations
- Dict: Dictionary operations (:cake:)
- Comprehension: list | tuple | set | dict
- String: String operations (:cake:)
- Time complexity: cPython operations (:books:, :exploding_head:)
- Classes
- Basic class: Basic definition (:cake:)
- Abstract class: Abstract definition
- Exception class: Exception definition
- Iterator class: Iterator definition | yield (:exploding_head:)
- Advanced
- Decorator: Decorator definition | wraps (:exploding_head:)
- Metaclass: Metaclass definition (:exploding_head:)
- Method resolution order: mro (:exploding_head:)
- Asyncio: async | await (:exploding_head:)
- Weak reference: weakref (:exploding_head:)
- Benchmark: cProfile | pstats (:exploding_head:)
- Context manager: Context managers (:exploding_head:)
- Mocking: MagicMock | PropertyMock | patch (:exploding_head:)
- Regular expression: search | findall | match | fullmatch (:exploding_head:)
๐ = Interview resource, ๐งช = Code samples, ๐ง = Project ideas
Keep learning by reading from other well-regarded resources.
- TheAlgorithms/Python (:necktie:, :test_tube:)
- faif/python-patterns (:necktie:, :test_tube:)
- geekcomputers/Python (:test_tube:)
- trekhleb/homemade-machine-learning (:test_tube:)
- karan/Projects (:brain:)
- MunGell/awesome-for-beginners (:brain:)
- vinta/awesome-python
- academic/awesome-datascience
- josephmisiti/awesome-machine-learning
- ZuzooVn/machine-learning-for-software-engineers
Keep practicing so that your coding skills don't get rusty.
- leetcode.com (:necktie:)
- hackerrank.com (:necktie:)
- kaggle.com (:brain:)
- exercism.io
- projecteuler.net