🐍 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: [email protected]
💬 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. (
intandfloat) - 2. Math operations
- 3. (
strandbool) - 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.
SetComprehensions - 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.
ArgsandKwargs - 8. Argument Ordering
- 9. Quiz
- 10. Homework
11.Exceptions
- 1 Introduction
- 2 The
try&exceptBlock - 3 The
elseBlock - 4 The
finallyBlock - 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
Advanced
25.Advanced OOP
26.Context Managers
27.Concurrent And Parallel Programming
28.Threading
- 1. Introduction to Threads
- 2. Threading
- 3. Global Interpreter Lock (GIL)
- 4. Thread Communication
- 5. Daemon Threads
- 6. Thread Pooling
- 7. More Practice
- 8. Quiz
- 9. Homework
29.Multiprocessing
- Topics
- 1. Multiprocessing vs Multithreading
- 2.
multiprocessing - 3. Inter-process Communication (IPC)
- 4. Synchronisation
- 5. Process Pooling
- 6. Production Approaches
- 7. Practice
- 9. Quiz
- 10. Homework