Python Mastery Guide
A step-by-step guide to becoming fluent in Python with detailed tutorials. From basics to advanced topics, this guide helps you achieve Python mastery and enhance your programming skills.
# π Your Journey to Fluent Python
π Welcome to the thrilling journey to Python fluency!
[!NOTE] Initially this repository was supposed to be a Senior Developer Roadmap and had to include not only Python but DB, AWS, Linux and BE Frameworks. That was not the best approach to do and cover everything at once, so I decided to focus only on Python and during the process this book has been created! I worked on it alone, almost 1.5 years, and hope that you will like it. In the future I have plans to colaborate with a major UK publisher to create the second version of this book. If you could provide any feedback, this would be extremely valuable. Attaching PDF version for free to improve your learning experience!
π€ Introduction
My name is Yehor, and I'm the CTO and co-founder of Swetrix, a privacy-focused analytics platform. Additionally, I hold a Software Engineer position at a company based in Oxford, United Kingdom π¬π§.
After years of studying programming, I've reached a solid level of proficiency, mainly through reading books and exploring different courses.
I've found that many books in the programming world lack practical relevance and donβt give the knowledge to actually build real software. They're informative but donβt have interactivity and engagement with a learner at all.
That's why I am excited to introduce a revolutionary approach to education and interaction with books.
This isn't just another book to read. It's a comprehensive guide that will walk you through every step of your learning journey, providing interactive experiences and personalised support along the way.
In order to interact with me, you have 2 options:
- Open a PR and submit your homework/questions, and I will review it on Github directly.
- Join the Discord server where you can submit your H/W for my personal review through tickets instead, ask general questions about the topic you are struggling with, and integrate into our Python society to excel your knowledge and skills together.
In case you have any questions or would like to contact me directly, just do it!
Email: yehor.dremliuha@gmail.com
π¬ Support
Options | Link |
---|---|
Buy a book on Amazon | Amazon |
Donate for businesses in Britain | Coffee |
Buy a subscription on Swetrix (best option) | Swetrix |
Put a star on this repo to show your support! | β |
Share this book to your friends and colleagues! | π’ |
π Content
1.Introduction To Programming
- 1. What is programming?
- 2. Overview of Python
- 3. Python installation
- 4. IDE Installation (VSCode)
- 5.
print()
- 6.
input()
- 7. Quiz: Introduction to Programming
- 8. Homework
2.Data Types Convertion And Basic Operations
- 1. (
int
andfloat
) - 2. Math operations
- 3. (
str
andbool
) - 4. Converting data types
- 5. Quiz
- 6. Homework
3.Conditionals And Strings
- 1. Relational Operators
- 2. Logical Operators (
if/elif/else
) - 3. Nested Logical Operators
- 4. Strings
- 5. Quiz
- 6. Homework
4.Strings And Loops
- 1. Strings in the PC memory (encodings, ascii/unicode),
ord()
,chr()
- 3. Slicing
- 4. Methods of Strings
- 5. Introduction to loops
- 6. Quiz
- 7. Homework
5.Loops
6.Lists
- 1 Mutable and Immutable data types
- 2. Introduction to
list
- 3. Functions (
len()
,sum()
,min()
,max()
,sorted()
) - 4. Methods of Lists
- 5. General methods of Iterations
- 6. Copying lists
- 8.
join()
andsplit()
- 9. Quiz
- 10. Homework
- Example
7.Tuple
8.Set
- 1. Introduction to Sets
- 2. Methods of
sets
- 3.
Set
Comprehensions - 4.
frozenset()
Overview - 5. Quiz
- 6. Homework
- Example
9.Dict
10.Functions
- 1. Introduction to Functions
- 2. Parameters and Arguments
- 3. Positional vs Key Arguments
- 4. Scopes
- 5. Return
- 6. Optional Parameters
- 7.
Args
andKwargs
- 8. Argument Ordering
- 9. Quiz
- 10. Homework
11.Exceptions
- 1 Introduction
- 2 The
try
&except
Block - 3 The
else
Block - 4 The
finally
Block - 5 Raising Exceptions
- 6 Exception Chaining
- 7. Quiz
- 8. Homework
12.Imports
- 1. Introduction
- 2. Creating a Module
- 3.
import
,from
, andas
- 4.
if __name__ == "__main__"
- 5. Packages
- 6.
venv
- 7.
requests
- 8.
Pillow
- 9. Choose your direction
- 10. Homework
13.Files
- 1 What is a File?
- 2. Working with Files
- 3. Exception Handling
- 4 Full/Relative Paths
- 5. Context Manager
with
- 6 Working with Files of Different Formats
- 7. Quiz
- 8. Homework
Intermediate
14.Functional Programming
- 1. Revision of Functions
- 2. Programming Principles(KIS, DRY, YAGNI)
- 3. Function pointers
- 4. Higher Order Functions
- 5. Closures
- 6. Decorators
- 7. Lambda Functions
- 8. Function Composition
- 9. Currying
- 10. Recursion
- 11. Function Memoization
- 12. Quiz
- 13. Homework
15.Introduction To OOP
- 1. Intro to OOP
- 2. Class VS Instance Attributes and Methods
- 3. Class vs Instance methods + @staticmethod
- 4. Key Paradigms of OOP
- 5. Examples of good OOP designs
- 6. Quiz
- 7. Homework
16.Intermediate OOP
- 1. Composition and Aggregation
- 2. Advanced Inheritance
- 3. Dunder (Magic) Methods in
Python
- 4. Enums
- 5. Quiz
- 6. Homework
17.SOLID
- 0. Definition
- 1. Single Responsibility Principle (SRP)
- 2. Open/Closed Principle (OCP)
- 3. Liskov Substitution Principle (LSP)
- 4. Interface Segregation Principle (ISP)
- 5. Dependency Inversion Principle (
DIP
) - 6. Summarise
- 7. Let's Refactor!
- 8. Quiz
- 9. Homework
18.Logging
- 1. What is logging?
- 2. Python's Built-in Logging Module
- 3. Configuring Logging:
Handlers
,Formatters
, andConfig Files
- 4. Logging Best Practices
- 5. Homework
19.Testing
- 1. Why do we need testing?
- 2. Types of Testing
- 3. Introduction to
unittest
- 4. Introduction to
pytest
- 5. Mocking and Patching
- 6. Advanced Techniques
- 7. Coverage Analysis
- 8. Applying Testing
- 9. Homework
20.Iterators And Generators
- 1. Iterators
- 2. Building Your Own Iterators
- 3. Performance overview
- 4. Generators
- 5. Generators VS Lists
- 6. Best practices
- 7. Quiz
- 8. Homework
21.Refactoring And Code Review
- 1. The Importance of Refactoring and Code Review
- 2. Principles of Good Refactoring
- 3. Code reviews
- 4. Application Development Life Cycle
- 5. Homework
22.Documenting Python Code
- 1. Introduction
- 2. Code Comments and Docstrings
- 3. Annotations
- 4. External Documentation
- Introduction
- Installation
- Usage
- Contributing
- License
- Credits
- 5. Homework
23.Regular Expressions
- 1. Regular Expressions
- 2. Basic Patterns
- 3. Character Classes
- 4. Quantifiers
- 5. Anchors and Boundaries
- 6. Grouping and Capturing
- 7. Practice
- 8. Homework
24.Algorithms
- 1. What are Algorithms?
- 2. Algorithmic Complexity (Big O Notation)
- 3. Sorting Algorithms
- 4. Searching Algorithms
- 5. Dynamic Algorithms