From f0e2ba6ade535187992b751831c353c7aafc8917 Mon Sep 17 00:00:00 2001 From: Rustam Zokirov <59933997+Rustam-Z@users.noreply.github.com> Date: Mon, 6 Mar 2023 14:17:12 +0500 Subject: [PATCH 1/8] Update README.md --- solid/README.md | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/solid/README.md b/solid/README.md index 3a90f90..4e79fb9 100644 --- a/solid/README.md +++ b/solid/README.md @@ -9,23 +9,27 @@ - Not substitutable ### S.O.L.I.D - Order doesn't matter -1. Interface segregation - 1. Helps design good classes - 2. Helps write unit test cases +1. Interface segregation + 1. Helps design good classes + 2. Helps write unit test cases + 3. Asks you to create a different interface for different responsibilities, in other words, don't group unrelated behavior in one interface, You break ISP if You have already an interface with many responsibilities, and the implementor doesn't need all this stuff. + 4. [https://stackoverflow.com/questions/54480725/the-difference-between-liskov-substitution-principle-and-interface-segregation-p](https://stackoverflow.com/questions/54480725/the-difference-between-liskov-substitution-principle-and-interface-segregation-p) 2. Liskov substitution - how subclasses extend superclasses - 1. Object of superclass S can be replaced with objects of any subclass of S - 2. Helps design good polymorphism + 1. This principle asks you to make sure that all child classes have the same behavior as the parent class. Object of superclass S can be replaced with objects of any subclass of S. + 2. Helps design good polymorphism + 3. Ex: Square-Rectangle Problem 3. Open/closed - tuning the design - 1. Open to extension means adding subclasses a needed - 2. Closed to modification avoids "tweaking" the code to handle new situations -4. Dependency inversion - based on packaging the code - 1. A direct dependency on a concrete class needs to be "inverted" - 2. Depend on abstraction classes - 3. Avoid concrete class name dependencies + 1. Open to extension means adding subclasses a needed + 2. Closed to modification avoids "tweaking" the code to handle new situations + 3. A**llow its behavior to be extended without modifying its source code. Factory → we need to update the objects list only, method names are the same.** +4. Dependency inversion - based on packaging the code. Decrease the dependency on another concrete class. + 1. A direct dependency on a concrete class needs to be "inverted" + 2. Depend on abstraction classes + 3. Avoid concrete class name dependencies 5. Single responsibility - summary of other 4 principles - 1. One responsibility per class - 2. "A class should have one reason to change" - 3. Note!! "Single" at what level of abstraction? How are the responsibilities counter? + 1. One responsibility per class. + 2. "A class should have one reason to change" + 3. Note!! "Single" at what level of abstraction? How are the responsibilities counter? ### Other OO Principle - Don't repeat yourself (DRY) From 24146aa2f4c9026acca154f99f5fd57cac2a9601 Mon Sep 17 00:00:00 2001 From: Rustam Zokirov <59933997+Rustam-Z@users.noreply.github.com> Date: Fri, 24 Nov 2023 00:00:05 +0500 Subject: [PATCH 2/8] Update README.md --- README.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 3a94f62..7a635dd 100644 --- a/README.md +++ b/README.md @@ -27,9 +27,7 @@ Take small steps, but every day, consistency is very important. - `Optional` [Crash Course Computer Science](https://www.youtube.com/playlist?list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo) ## Start Learning Python -Learn the basics, watch a couple of tutorials, read articles, then build projects using Python. -You don't need a web app, create a console app, or desktop apps. -I will provide some project ideas below. +Learn the basics, watch a couple of tutorials, read articles, and then build projects using Python. Learn by building. Start from building console applications, then learn how to build desktop apps, then web apps. - [11 Beginner Tips for Learning Python Programming](https://realpython.com/python-beginner-tips/) - [freeCodeCamp.org - Python beginning](https://youtu.be/rfscVS0vtbw) @@ -54,7 +52,10 @@ I will provide some project ideas below. - Books: - [Python Basics: A Practical Introduction to Python 3](https://t.me/progbook/5781) - *[Python Tricks: A Buffet of Awesome Python Features](https://t.me/progbook/5882) -- [Problem solving](https://github.com/darkprinx/break-the-ice-with-python) + +## Problem solving +- https://github.com/Rustam-Z/cpp-programming +- https://github.com/darkprinx/break-the-ice-with-python ## Discover some Python libraries - File handling: txt, `json`, `csv`, `yaml` @@ -75,7 +76,7 @@ I will provide some project ideas below. - _Data normalization_ ## Web Development -- Understand how Internet works, OSI & TCP/IP models, DNS, HTTP, REST API. +- Understand how the Internet works, OSI & TCP/IP models, DNS, HTTP, REST API. - HTML, CSS, JavaScript - [Web design in 4 minutes](https://jgthms.com/web-design-in-4-minutes/) - [CS50: Web Programming Course](https://www.youtube.com/playlist?list=PLhQjrBD2T380xvFSUmToMMzERZ3qB5Ueu) @@ -84,7 +85,7 @@ I will provide some project ideas below. - [Django girls](https://tutorial.djangogirls.org/en/) - "Flask Web Development" Miguel Grinberg - "Building REST APIs with Flask" Kunal Relan -- See how others build projects using django, then build your own app. +- See how others build projects using Django, then build your own app. - [Corey Schafer](https://www.youtube.com/playlist?list=PL-osiE80TeTtoQCKZ03TU5fNfx2UY6U4p) - [Dennis Ivy](https://www.youtube.com/playlist?list=PL-51WBLyFTg2vW-_6XBoUpE7vpmoR3ztO) - [Building REST API](https://wsvincent.com/django-rest-framework-tutorial/) @@ -94,6 +95,9 @@ I will provide some project ideas below. - "Django 3 by Examples" ## Advanced Python +Check https://github.com/Rustam-Z/senior-python-developer. + +On a high level: - Clean code: - [PEP 8 - Style Guide for Python Code](https://peps.python.org/pep-0008/) - [clean-code-python](https://github.com/zedr/clean-code-python) @@ -113,7 +117,6 @@ I will provide some project ideas below. - Testing: - `unittest`, `pytest` - "Python testing with PyTest" book - - *"TDD in Python" book - Advanced topics: - [python-course.eu](https://python-course.eu/advanced-python/) - [book.pythontips.com/](https://book.pythontips.com/en/latest/) From 6a56953a39a12432d4eeb11653e4e6e69a26842d Mon Sep 17 00:00:00 2001 From: Rustam Zokirov <59933997+Rustam-Z@users.noreply.github.com> Date: Sun, 26 Nov 2023 17:02:04 +0500 Subject: [PATCH 3/8] Update README.md --- README.md | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 7a635dd..ee95e7b 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ``` Learn and code every day! Take notes. -Learn asking GOOD questions. +Learn to ask GOOD questions. Learn to prioritize tasks. Focus on 1 thing! Build something, anything. Build projects that bring some benefit to you or the people around you. Take small steps, but every day, consistency is very important. @@ -32,9 +32,9 @@ Learn the basics, watch a couple of tutorials, read articles, and then build pro - [11 Beginner Tips for Learning Python Programming](https://realpython.com/python-beginner-tips/) - [freeCodeCamp.org - Python beginning](https://youtu.be/rfscVS0vtbw) - [freeCodeCamp.org - Python intermediate](https://youtu.be/HGOBQPFzWKo) -- [Программирование на Python](https://www.youtube.com/playlist?list=PLlb7e2G7aSpQhNphPSpcO4daaRPeVstku) -- [Learn TKinter](https://www.youtube.com/playlist?list=PLCC34OHNcOtoC6GglhF3ncJ5rLwQrLGnV) - [30-Days-Of-Python](https://github.com/Asabeneh/30-Days-Of-Python) +- [Программирование на Python](https://www.youtube.com/playlist?n=PLlb7e2G7aSpQhNphPSpcO4daaRPeVstku) +- [Corey Schafer](https://www.youtube.com/playlist?list=PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU), focus **MORE** on this! - Readings: - [Easy practical Python](https://dabeaz-course.github.io/practical-python/Notes/Contents.html) - [w3schools.com](https://www.w3schools.com/python/) @@ -42,8 +42,6 @@ Learn the basics, watch a couple of tutorials, read articles, and then build pro - *[pythontutorial.net](https://www.pythontutorial.net/) - _Python Basics_ and _Python Advanced_ sections - **[python-course.eu](https://python-course.eu/python-tutorial/) - only _Python Tutorial_ section - **[realpython.com](https://realpython.com/python-basics/) -- Videos: - - [Corey Schafer](https://www.youtube.com/playlist?list=PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU), focus **MORE** on this! - OOP in Python: - [by Caleb Curry](https://youtu.be/MikphENIrOo) - [by Corey Schafer](https://www.youtube.com/playlist?list=PL-osiE80TeTsqhIuOqKhwlXsIBIdSeYtc) @@ -53,17 +51,18 @@ Learn the basics, watch a couple of tutorials, read articles, and then build pro - [Python Basics: A Practical Introduction to Python 3](https://t.me/progbook/5781) - *[Python Tricks: A Buffet of Awesome Python Features](https://t.me/progbook/5882) -## Problem solving +## Problem solving & Practical tasks - https://github.com/Rustam-Z/cpp-programming - https://github.com/darkprinx/break-the-ice-with-python ## Discover some Python libraries +- [Learn TKinter](https://www.youtube.com/playlist?list=PLCC34OHNcOtoC6GglhF3ncJ5rLwQrLGnV) +- Learn web scraping using [beautiful-soup](https://beautiful-soup-4.readthedocs.io/en/latest/) or *Selenium - File handling: txt, `json`, `csv`, `yaml` - Working with paths with `pathlib` and OS with `os` -- Sending HTTP request and receiving HTTP response with `requests` +- Sending HTTP requests and receiving HTTP responses with `requests` - Building CLI with `argparse` - Working with data `collections`, `itertools` -- Learn scrapping using [beautiful-soup](https://beautiful-soup-4.readthedocs.io/en/latest/) or *Selenium ## Databases: SQL, NoSQL - SQL @@ -133,6 +132,5 @@ On a high level: - "Advanced Guide to Python 3" - "Mastering Object-Oriented Python" - "Expert Python Programming" 2021 - - "High performance Python" + - "High-performance Python" - "Practices of the Python Pro", "The Python workshop", "Python Workout" - - and more From e38a2305df555768a5ab0fa5383f77b73544c4bd Mon Sep 17 00:00:00 2001 From: Rustam Zokirov <59933997+Rustam-Z@users.noreply.github.com> Date: Sat, 2 Mar 2024 15:34:52 +0500 Subject: [PATCH 4/8] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ee95e7b..06ec9db 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ Learn the basics, watch a couple of tutorials, read articles, and then build pro - [freeCodeCamp.org - Python beginning](https://youtu.be/rfscVS0vtbw) - [freeCodeCamp.org - Python intermediate](https://youtu.be/HGOBQPFzWKo) - [30-Days-Of-Python](https://github.com/Asabeneh/30-Days-Of-Python) -- [Программирование на Python](https://www.youtube.com/playlist?n=PLlb7e2G7aSpQhNphPSpcO4daaRPeVstku) +- [Программирование на Python](https://www.youtube.com/playlist?list=PLlb7e2G7aSpQhNphPSpcO4daaRPeVstku) - [Corey Schafer](https://www.youtube.com/playlist?list=PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU), focus **MORE** on this! - Readings: - [Easy practical Python](https://dabeaz-course.github.io/practical-python/Notes/Contents.html) From 251e3db1e320ec2987bdb61c99a7195fef9d1bca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=40Rustam-Z=20=F0=9F=9A=80?= <59933997+Rustam-Z@users.noreply.github.com> Date: Thu, 18 Sep 2025 19:08:11 +0200 Subject: [PATCH 5/8] Update README.md --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 06ec9db..9e69ce5 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Take small steps, but every day, consistency is very important. ## Computer Science Basics - [Harvard CS50](https://youtube.com/playlist?list=PLhQjrBD2T383f9scHRNYJkior2VvYjpSL) - Scratch, C, Arrays, Algorithms, Memory, Data structures, Python, SQL, HTML, CSS, JavaScript, Flask -- `Optional` [Crash Course Computer Science](https://www.youtube.com/playlist?list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo) +- [Crash Course Computer Science](https://www.youtube.com/playlist?list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo) ## Start Learning Python Learn the basics, watch a couple of tutorials, read articles, and then build projects using Python. Learn by building. Start from building console applications, then learn how to build desktop apps, then web apps. @@ -56,13 +56,12 @@ Learn the basics, watch a couple of tutorials, read articles, and then build pro - https://github.com/darkprinx/break-the-ice-with-python ## Discover some Python libraries -- [Learn TKinter](https://www.youtube.com/playlist?list=PLCC34OHNcOtoC6GglhF3ncJ5rLwQrLGnV) -- Learn web scraping using [beautiful-soup](https://beautiful-soup-4.readthedocs.io/en/latest/) or *Selenium - File handling: txt, `json`, `csv`, `yaml` - Working with paths with `pathlib` and OS with `os` - Sending HTTP requests and receiving HTTP responses with `requests` - Building CLI with `argparse` - Working with data `collections`, `itertools` +- Learn web scraping using [beautiful-soup](https://beautiful-soup-4.readthedocs.io/en/latest/) and Selenium ## Databases: SQL, NoSQL - SQL From 70f259ad8db65f9fb5913dbcd18d55c1a081992a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=40Rustam-Z=20=F0=9F=9A=80?= <59933997+Rustam-Z@users.noreply.github.com> Date: Mon, 27 Oct 2025 11:29:59 +0100 Subject: [PATCH 6/8] Delete .DS_Store --- .DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 1340cc7691da1246f16fe594fb3c6038bc84ed3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKO>5gg5S?|Lctt4q&_Z)t=+zLbPC}s<)pc$;l&Um`q_~o05~Z@%SaN+Z2Hn$Z z|3dyl?}7Y-{+_=5aA~juA%{@H4$QvQ>^v>|R^Igx5$jG9pQuSh9ImkDp;=>UT=|OC zY@`8X`W+EXD5W74@oXjA1^!0`)ZTe?gk6iVcmM2PF^)4CWAs-%&eEc6w|}$RMtyUu z!5e&=e+kd!EG(mPT6CkyiF*1ZWfm{{QT#a_&ic*g?`2*_X+E52LYfSba(bNRiJW!i zG*1f64b1@exYuv)%;%lGgO+&R=`31e?)&XGEwO*#FBTqu@oM+&$Nsl$l*>z_C&QSq!N$=FBPJ6mSYWPyu^z^6dxm9nC4=6nMG{sPjR<6$Tb7 zgZk(|qe}o_9bs+gt6D;FgvG#OWe_7UW~e|zWwyj%hK{(fd4a{sprI49#Rs!9Gh3lB zJv-hnbULxXplh81PJ!DBY?#NUy8jRFuK#b7+>=wlDe$BeVD(tadvZe3ZNx@!ge sD_oh%s|^07prfy1 Date: Mon, 27 Oct 2025 11:32:24 +0100 Subject: [PATCH 7/8] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9e69ce5..65c59a6 100644 --- a/README.md +++ b/README.md @@ -117,7 +117,7 @@ On a high level: - "Python testing with PyTest" book - Advanced topics: - [python-course.eu](https://python-course.eu/advanced-python/) - - [book.pythontips.com/](https://book.pythontips.com/en/latest/) + - [book.pythontips.com](https://book.pythontips.com/en/latest/) - [Python topics for Senior developers](https://github.com/matacoder/senior) - [Python best practices - realpython.com](https://realpython.com/tutorials/best-practices/) - [Medium blog](https://medium.com/techtofreedom/python/home) From bdcdc7bf1e8373c6e2e03a8b41e8bd2a2ae0dbe5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=40Rustam-Z=20=F0=9F=9A=80?= <59933997+Rustam-Z@users.noreply.github.com> Date: Mon, 2 Feb 2026 18:23:42 +0100 Subject: [PATCH 8/8] Update README.md --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 65c59a6..2a4cf83 100644 --- a/README.md +++ b/README.md @@ -115,6 +115,9 @@ On a high level: - Testing: - `unittest`, `pytest` - "Python testing with PyTest" book + - “Python testing with Selenium” + - “TDD in Python” + - “Python Unit Test Automation“ - Advanced topics: - [python-course.eu](https://python-course.eu/advanced-python/) - [book.pythontips.com](https://book.pythontips.com/en/latest/) @@ -132,4 +135,8 @@ On a high level: - "Mastering Object-Oriented Python" - "Expert Python Programming" 2021 - "High-performance Python" - - "Practices of the Python Pro", "The Python workshop", "Python Workout" + - "Practices of the Python Pro" + - "The Python workshop" + - "Python Workout" + - "Clean Python" + - “Python Automation Cookbook” 2nd edition, Jaime Buelta