Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pro1code1hack/your-journey-to-fluent-python

Your Journey To Fluent Python
https://github.com/pro1code1hack/your-journey-to-fluent-python

advanced-programming asyncio beginner-programming coding data-science education exercises functions learning learning-python oop oop-principles projects python python-3 python3 roadmap senior software-engineering tutorials

Last synced: about 1 month ago
JSON representation

Your Journey To Fluent Python

Awesome Lists containing this project

README

        

# 🐍 Your Journey to Fluent Python
πŸ‘‹ Welcome to the thrilling journey to Python fluency!

![alt text](prj-3.png)

> [!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:

1. Open a PR and submit your homework/questions, and I will review it on Github directly.
2. Join the [Discord server](https://discord.com/invite/s8MwCkMjDg) 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](https://www.amazon.co.uk/dp/B0D7HRPCFH) |
| Donate for businesses in Britain | [Coffee](https://ko-fi.com/pro1code1hack) |
| Buy a subscription on Swetrix ***(best option)*** | [Swetrix](https://swetrix.com/?ref=python-book) |
| 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?](01.Introduction-to-programming.md#1-what-is-programming)
- [2. Overview of Python](01.Introduction-to-programming.md#2-overview-of-python)
- [3. Python installation](01.Introduction-to-programming.md#3-python-installation)
- [4. IDE Installation (VSCode)](01.Introduction-to-programming.md#4-ide-installation-vscode)
- [5. `print()`](01.Introduction-to-programming.md#5-print)
- [6. `input()`](01.Introduction-to-programming.md#6-input)
- [7. Quiz: Introduction to Programming](01.Introduction-to-programming.md#7-quiz-introduction-to-programming)
- [8. Homework](01.Introduction-to-programming.md#8-homework)

### 2.Data Types Convertion And Basic Operations
- [1. (`int` and `float`)](02.Data-types-convertion-basic-operations.md#1-int-and-float)
- [2. Math operations](02.Data-types-convertion-basic-operations.md#2-math-operations)
- [3. (`str` and `bool`)](02.Data-types-convertion-basic-operations.md#3-str-and-bool)
- [4. Converting data types](02.Data-types-convertion-basic-operations.md#4-converting-data-types)
- [5. Quiz](02.Data-types-convertion-basic-operations.md#5-quiz)
- [6. Homework](02.Data-types-convertion-basic-operations.md#6-homework)

### 3.Conditionals And Strings
- [1. Relational Operators](03.Conditionals-and-strings.md#1-relational-operators)
- [2. Logical Operators (`if/elif/else`)](03.Conditionals-and-strings.md#2-logical-operators-if-elif-else)
- [3. Nested Logical Operators](03.Conditionals-and-strings.md#3-nested-logical-operators)
- [4. Strings](03.Conditionals-and-strings.md#4-strings)
- [5. Quiz](03.Conditionals-and-strings.md#5-quiz)
- [6. Homework](03.Conditionals-and-strings.md#6-homework)

### 4.Strings And Loops
- [1. Strings in the PC memory (encodings, ascii/unicode), `ord()`, `chr()`](04.Strings-and-loops-introduction.md#1-strings-in-the-pc-memory-encodings-ascii-unicode-ord-chr)
- [3. Slicing](04.Strings-and-loops-introduction.md#3-slicing)
- [4. Methods of Strings](04.Strings-and-loops-introduction.md#4-methods-of-strings)
- [5. Introduction to loops](04.Strings-and-loops-introduction.md#5-introduction-to-loops)
- [6. Quiz](04.Strings-and-loops-introduction.md#6-quiz)
- [7. Homework](04.Strings-and-loops-introduction.md#7-homework)

### 5.Loops
- [1. Introduction to loops](05.Loops.md#1-introduction-to-loops)
- [2. `break`, `continue`, and `else` in Loops](05.Loops.md#2-break-continue-and-else-in-loops)
- [3. Nested Loops](05.Loops.md#3-nested-loops)
- [4. Quiz](05.Loops.md#4-quiz)
- [5. Homework](05.Loops.md#5-homework)

### 6.Lists
- [1 Mutable and Immutable data types](06.Lists.md#1-mutable-and-immutable-data-types)
- [2. Introduction to `list`](06.Lists.md#2-introduction-to-list)
- [3. Functions (`len()`, `sum()`, `min()`, `max()`, `sorted()`)](06.Lists.md#3-functions-len-sum-min-max-sorted)
- [4. Methods of Lists](06.Lists.md#4-methods-of-lists)
- [5. General methods of Iterations](06.Lists.md#5-general-methods-of-iterations)
- [6. Copying lists](06.Lists.md#6-copying-lists)
- [8. `join()` and `split()`](06.Lists.md#8-join-and-split)
- [9. Quiz](06.Lists.md#9-quiz)
- [10. Homework](06.Lists.md#10-homework)
- [Example](06.Lists.md#example)

### 7.Tuple
- [1. Overview of Tuples](07.Tuple.md#1-overview-of-tuples)
- [2. Features Overview](07.Tuple.md#2-features-overview)
- [3. Iterations](07.Tuple.md#3-iterations)
- [4. Quiz](07.Tuple.md#4-quiz)
- [5. Homework](07.Tuple.md#5-homework)

### 8.Set
- [1. Introduction to Sets](08.Set.md#1-introduction-to-sets)
- [2. Methods of `sets`](08.Set.md#2-methods-of-sets)
- [3. `Set` Comprehensions](08.Set.md#3-set-comprehensions)
- [4. `frozenset()` Overview](08.Set.md#4-frozenset-overview)
- [5. Quiz](08.Set.md#5-quiz)
- [6. Homework](08.Set.md#6-homework)
- [Example](08.Set.md#example)

### 9.Dict
- [1. Introduction to `dict`](09.Dict.md#1-introduction-to-dict)
- [2. Functions and Methods of `dict`](09.Dict.md#2-functions-and-methods-of-dict)
- [3. Iterations](09.Dict.md#3-iterations)
- [7. Quiz](09.Dict.md#7-quiz)
- [8. Homework](09.Dict.md#8-homework)

### 10.Functions
- [1. Introduction to Functions](10.Functions.md#1-introduction-to-functions)
- [2. Parameters and Arguments](10.Functions.md#2-parameters-and-arguments)
- [3. Positional vs Key Arguments](10.Functions.md#3-positional-vs-key-arguments)
- [4. Scopes](10.Functions.md#4-scopes)
- [5. Return](10.Functions.md#5-return)
- [6. Optional Parameters](10.Functions.md#6-optional-parameters)
- [7. `Args` and `Kwargs`](10.Functions.md#7-args-and-kwargs)
- [8. Argument Ordering](10.Functions.md#8-argument-ordering)
- [9. Quiz](10.Functions.md#9-quiz)
- [10. Homework](10.Functions.md#10-homework)

### 11.Exceptions
- [1 Introduction](11.Exceptions.md#1-introduction)
- [2 The `try` & `except` Block](11.Exceptions.md#2-the-try-except-block)
- [3 The `else` Block](11.Exceptions.md#3-the-else-block)
- [4 The `finally` Block](11.Exceptions.md#4-the-finally-block)
- [5 Raising Exceptions](11.Exceptions.md#5-raising-exceptions)
- [6 Exception Chaining](11.Exceptions.md#6-exception-chaining)
- [7. Quiz](11.Exceptions.md#7-quiz)
- [8. Homework](11.Exceptions.md#8-homework)

### 12.Imports
- [1. Introduction](12.Imports.md#1-introduction)
- [2. Creating a Module](12.Imports.md#2-creating-a-module)
- [3. `import`, `from`, and `as`](12.Imports.md#3-import-from-and-as)
- [4. `if __name__ == "__main__"`](12.Imports.md#4-if-__name__-__main__)
- [5. Packages](12.Imports.md#5-packages)
- [6. `venv`](12.Imports.md#6-venv)
- [7. `requests`](12.Imports.md#7-requests)
- [8. `Pillow`](12.Imports.md#8-pillow)
- [9. Choose your direction](12.Imports.md#9-choose-your-direction)
- [10. Homework](12.Imports.md#10-homework)

### 13.Files
- [1 What is a File?](13.Files.md#1-what-is-a-file)
- [2. Working with Files](13.Files.md#2-working-with-files)
- [3. Exception Handling](13.Files.md#3-exception-handling)
- [4 Full/Relative Paths](13.Files.md#4-full-relative-paths)
- [5. Context Manager `with`](13.Files.md#5-context-manager-with)
- [6 Working with Files of Different Formats](13.Files.md#6-working-with-files-of-different-formats)
- [7. Quiz](13.Files.md#7-quiz)
- [8. Homework](13.Files.md#8-homework)

## Intermediate

### 14.Functional Programming
- [1. Revision of Functions](14.Functional-programming.md#1-revision-of-functions)
- [2. Programming Principles(KIS, DRY, YAGNI)](14.Functional-programming.md#2-programming-principles-kis-dry-yagni)
- [3. Function pointers](14.Functional-programming.md#3-function-pointers)
- [4. Higher Order Functions](14.Functional-programming.md#4-higher-order-functions)
- [5. Closures](14.Functional-programming.md#5-closures)
- [6. Decorators](14.Functional-programming.md#6-decorators)
- [7. Lambda Functions](14.Functional-programming.md#7-lambda-functions)
- [8. Function Composition](14.Functional-programming.md#8-function-composition)
- [9. Currying](14.Functional-programming.md#9-currying)
- [10. Recursion](14.Functional-programming.md#10-recursion)
- [11. Function Memoization](14.Functional-programming.md#11-function-memoization)
- [12. Quiz](14.Functional-programming.md#12-quiz)
- [13. Homework](14.Functional-programming.md#13-homework)

### 15.Introduction To OOP
- [1. Intro to OOP](15.Introduction-to-OOP.md#1-intro-to-oop)
- [2. Class VS Instance Attributes and Methods](15.Introduction-to-OOP.md#2-class-vs-instance-attributes-and-methods)
- [3. Class vs Instance methods + @staticmethod](15.Introduction-to-OOP.md#3-class-vs-instance-methods-staticmethod)
- [4. Key Paradigms of OOP](15.Introduction-to-OOP.md#4-key-paradigms-of-oop)
- [5. Examples of good OOP designs](15.Introduction-to-OOP.md#5-examples-of-good-oop-designs)
- [6. Quiz](15.Introduction-to-OOP.md#6-quiz)
- [7. Homework](15.Introduction-to-OOP.md#7-homework)

### 16.Intermediate OOP
- [1. Composition and Aggregation](16.Intermediate-OOP.md#1-composition-and-aggregation)
- [2. Advanced Inheritance](16.Intermediate-OOP.md#2-advanced-inheritance)
- [3. Dunder (Magic) Methods in `Python`](16.Intermediate-OOP.md#3-dunder-magic-methods-in-python)
- [4. Enums](16.Intermediate-OOP.md#4-enums)
- [5. Quiz](16.Intermediate-OOP.md#5-quiz)
- [6. Homework](16.Intermediate-OOP.md#6-homework)

### 17.SOLID
- [0. Definition](17.SOLID.md#0-definition)
- [1. Single Responsibility Principle (SRP)](17.SOLID.md#1-single-responsibility-principle-srp)
- [2. Open/Closed Principle (OCP)](17.SOLID.md#2-open-closed-principle-ocp)
- [3. Liskov Substitution Principle (LSP)](17.SOLID.md#3-liskov-substitution-principle-lsp)
- [4. Interface Segregation Principle (ISP)](17.SOLID.md#4-interface-segregation-principle-isp)
- [5. Dependency Inversion Principle (`DIP`)](17.SOLID.md#5-dependency-inversion-principle-dip)
- [6. Summarise](17.SOLID.md#6-summarise)
- [7. Let's Refactor!](17.SOLID.md#7-let-s-refactor)
- [8. Quiz](17.SOLID.md#8-quiz)
- [9. Homework](17.SOLID.md#9-homework)

### 18.Logging
- [1. What is logging?](18.Logging.md#1-what-is-logging)
- [2. Python's Built-in Logging Module](18.Logging.md#2-python-s-built-in-logging-module)
- [3. Configuring Logging: `Handlers`, `Formatters`, and `Config Files`](18.Logging.md#3-configuring-logging-handlers-formatters-and-config-files)
- [4. Logging Best Practices](18.Logging.md#4-logging-best-practices)
- [5. Homework](18.Logging.md#5-homework)

### 19.Testing
- [1. Why do we need testing?](19.Testing.md#1-why-do-we-need-testing)
- [2. Types of Testing](19.Testing.md#2-types-of-testing)
- [3. Introduction to `unittest`](19.Testing.md#3-introduction-to-unittest)
- [4. Introduction to `pytest`](19.Testing.md#4-introduction-to-pytest)
- [5. Mocking and Patching](19.Testing.md#5-mocking-and-patching)
- [6. Advanced Techniques](19.Testing.md#6-advanced-techniques)
- [7. Coverage Analysis](19.Testing.md#7-coverage-analysis)
- [8. Applying Testing](19.Testing.md#8-applying-testing)
- [9. Homework](19.Testing.md#9-homework)

### 20.Iterators And Generators
- [1. Iterators](20.Iterators-and-generators.md#1-iterators)
- [2. Building Your Own Iterators](20.Iterators-and-generators.md#2-building-your-own-iterators)
- [3. Performance overview](20.Iterators-and-generators.md#3-performance-overview)
- [4. Generators](20.Iterators-and-generators.md#4-generators)
- [5. Generators VS Lists](20.Iterators-and-generators.md#5-generators-vs-lists)
- [6. Best practices](20.Iterators-and-generators.md#6-best-practices)
- [7. Quiz](20.Iterators-and-generators.md#7-quiz)
- [8. Homework](20.Iterators-and-generators.md#8-homework)

### 21.Refactoring And Code Review
- [1. The Importance of Refactoring and Code Review](21.Refactoring-and-code-review.md#1-the-importance-of-refactoring-and-code-review)
- [2. Principles of Good Refactoring](21.Refactoring-and-code-review.md#2-principles-of-good-refactoring)
- [3. Code reviews](21.Refactoring-and-code-review.md#3-code-reviews)
- [4. Application Development Life Cycle](21.Refactoring-and-code-review.md#4-application-development-life-cycle)
- [5. Homework](21.Refactoring-and-code-review.md#5-homework)

### 22.Documenting Python Code
- [1. Introduction](22.Documenting-python-code.md#1-introduction)
- [2. Code Comments and Docstrings](22.Documenting-python-code.md#2-code-comments-and-docstrings)
- [3. Annotations](22.Documenting-python-code.md#3-annotations)
- [4. External Documentation](22.Documenting-python-code.md#4-external-documentation)
- [Introduction](22.Documenting-python-code.md#introduction)
- [Installation](22.Documenting-python-code.md#installation)
- [Usage](22.Documenting-python-code.md#usage)
- [Contributing](22.Documenting-python-code.md#contributing)
- [License](22.Documenting-python-code.md#license)
- [Credits](22.Documenting-python-code.md#credits)
- [5. Homework](22.Documenting-python-code.md#5-homework)

### 23.Regular Expressions
- [1. Regular Expressions](23.Regular-expressions.md#1-regular-expressions)
- [2. Basic Patterns](23.Regular-expressions.md#2-basic-patterns)
- [3. Character Classes](23.Regular-expressions.md#3-character-classes)
- [4. Quantifiers](23.Regular-expressions.md#4-quantifiers)
- [5. Anchors and Boundaries](23.Regular-expressions.md#5-anchors-and-boundaries)
- [6. Grouping and Capturing](23.Regular-expressions.md#6-grouping-and-capturing)
- [7. Practice](23.Regular-expressions.md#7-practice)
- [8. Homework](23.Regular-expressions.md#8-homework)

### 24.Algorithms
- [1. What are Algorithms?](24.Algorithms.md#1-what-are-algorithms)
- [2. Algorithmic Complexity (Big O Notation)](24.Algorithms.md#2-algorithmic-complexity-big-o-notation)
- [3. Sorting Algorithms](24.Algorithms.md#3-sorting-algorithms)
- [4. Searching Algorithms](24.Algorithms.md#4-searching-algorithms)
- [5. Dynamic Algorithms](24.Algorithms.md#5-dynamic-algorithms)

## Advanced

### 25.Advanced OOP
- [1. Mixins](25.Advanced-OOP.md#1-mixins)
- [2. Metaclasses](25.Advanced-OOP.md#2-metaclasses)
- [3. Type checking](25.Advanced-OOP.md#3-type-checking)
- [4. Duck Typing](25.Advanced-OOP.md#4-duck-typing)
- [5. Quiz](25.Advanced-OOP.md#5-quiz)
- [6. Homework](25.Advanced-OOP.md#6-homework)

### 26.Context Managers
- [1. Introduction](26.Context-Managers.md#1-introduction)
- [2. `contextlib`](26.Context-Managers.md#2-contextlib)
- [3. Nested context managers](26.Context-Managers.md#3-nested-context-managers)
- [3.2 Best Practices](26.Context-Managers.md#3-2-best-practices)
- [4. Quiz](26.Context-Managers.md#4-quiz)
- [5. Homework](26.Context-Managers.md#5-homework)

### 27.Concurrent And Parallel Programming
- [1. Concurrent Programming](27.Introduction-to-Concurrent-and-Parallel-Programming.md#1-concurrent-programming)
- [2. Parallel Programming](27.Introduction-to-Concurrent-and-Parallel-Programming.md#2-parallel-programming)
- [3 Key Differences](27.Introduction-to-Concurrent-and-Parallel-Programming.md#3-key-differences)
- [4. Homework](27.Introduction-to-Concurrent-and-Parallel-Programming.md#4-homework)

### 28.Threading
- [1. Introduction to Threads](28.Threading.md#1-introduction-to-threads)
- [2. Threading](28.Threading.md#2-threading)
- [3. Global Interpreter Lock (GIL)](28.Threading.md#3-global-interpreter-lock-gil)
- [4. Thread Communication](28.Threading.md#4-thread-communication)
- [5. Daemon Threads](28.Threading.md#5-daemon-threads)
- [6. Thread Pooling](28.Threading.md#6-thread-pooling)
- [7. More Practice](28.Threading.md#7-more-practice)
- [8. Quiz](28.Threading.md#8-quiz)
- [9. Homework](28.Threading.md#9-homework)

### 29.Multiprocessing
- [Topics](29.Multiprocessing.md#topics)
- [1. Multiprocessing vs Multithreading](29.Multiprocessing.md#1-multiprocessing-vs-multithreading)
- [2. `multiprocessing`](29.Multiprocessing.md#2-multiprocessing)
- [3. Inter-process Communication (IPC)](29.Multiprocessing.md#3-inter-process-communication-ipc)
- [4. Synchronisation](29.Multiprocessing.md#4-synchronisation)
- [5. Process Pooling](29.Multiprocessing.md#5-process-pooling)
- [6. Production Approaches](29.Multiprocessing.md#6-production-approaches)
- [7. Practice](29.Multiprocessing.md#7-practice)
- [9. Quiz](29.Multiprocessing.md#9-quiz)
- [10. Homework](29.Multiprocessing.md#10-homework)

### 30.Asyncio
- [1. Introduction](30.Asyncio.md#1-introduction)
- [2. Coroutines](30.Asyncio.md#2-coroutines)
- [3. Event Loop](30.Asyncio.md#3-event-loop)
- [4. Practice](30.Asyncio.md#4-practice)
- [5. Scheduling Tasks](30.Asyncio.md#5-scheduling-tasks)
- [6. Project and Debugging](30.Asyncio.md#6-project-and-debugging)
- [7. Quiz](30.Asyncio.md#7-quiz)
- [8. Homework](30.Asyncio.md#8-homework)