
ultimate-python
Python LINKUltimate Python study guide
Ultimate Python study guide for newcomers and professionals alike. :snake: :snake: :snake:
print("Ultimate Python study guide")
Motivation
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. :mortar_board:
Goals
- Here are the primary goals of creating this guide:
-
trophy: 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. -
trophy: 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.
Table of contents
- :books: = External resource,
- cake: = Beginner topic,
- exploding_head: = 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:)
- Classes
- Basic class: Basic definition (:cake:)
- Abstract class: Abstract definition
- Exception class: Exception definition
- Iterator class: Iterator definition | yield (:exploding_head:)
- Advanced
- Decorator: contextlib | 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:)
Additional resources
- :necktie: = Interview resource,
- test_tube: = Code samples,
- brain: = Project ideas
GitHub repositories
Keep learning by reading from other well-regarded resources.
- TheAlgorithms/Python (:necktie:, :test_tube:)
- faif/python-patterns (:necktie:, :test_tube:)
- geekcomputers/Python (:test_tube:)
- karan/Projects (:brain:)
- vinta/awesome-python (:brain:)
- MunGell/awesome-for-beginners (:brain:)
Interactive practice
Keep practicing so that your coding skills don't get rusty.
- leetcode.com (:necktie:)
- hackerrank.com (:necktie:)
- codesignal.com (:necktie:)
- exercism.io
- projecteuler.net