└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Python Zero to Hero 2 | 3 | # πŸ”₯ Introduction 4 | 5 | > Python is one of the most widely used programming languages in the world. It has gained a lot of popularity over the years due to its simplicity, readability, and ease of use. Python's syntax is clear and concise, making it easy to learn and write code quickly. This feature makes it an ideal language for beginners and experienced programmers alike. 6 | 7 | Python has a vast and supportive community that contributes to its extensive library of modules and frameworks. These modules and frameworks make it a versatile language that can be used for a wide range of applications, including backend and frontend **web development**, **data analysis** and **visualization**, scientific computing, **artificial intelligence**, and more. 8 | 9 | Lastly, Python has a bright future in the world of technology. It is constantly evolving, with new features and updates being added regularly. Its popularity is increasing day by day, and it is being used in more and more industries. 10 | 11 | **Python is undoubtedly one of the best programming languages to learn and use in today's world!** 12 | 13 | --- 14 | 15 | ## πŸ’Ώ Installation 16 | 17 | To become a Python programmer, the first step is to install Python. Depending on your device and operating system, the installation procedure may vary slightly. Here is a handy guide to help you through the process. 18 | 19 | ## First Concepts 20 | 21 | 1. **Inputs** 22 | 2. **Outputs** 23 | 3. **Variables** 24 | 4. **Strings** 25 | 5. **Comments** 26 | 27 | Writing comments is crucial, especially if someone else will read your code in the future. Let's see how to add comments to your code. 28 | 29 | Python Comments πŸ‘‰πŸ» https://www.w3schools.com/python/python_comments.asp 30 | 31 | --- 32 | 33 | ### Decision Structures 34 | 35 | - If, elif, else 36 | - switch case 37 | - String comparison 38 | 39 | ### Boolean Logic 40 | 41 | ### Loops 42 | 43 | - While Loops 44 | - For Loops 45 | 46 | ### Functions 47 | 48 | ### Files 49 | 50 | ### Exceptions 51 | 52 | ### Data Structures 53 | 54 | - Lists 55 | - Tuples 56 | - Dictionaries 57 | - Sets 58 | 59 | --- 60 | 61 | ## Introduction to Object Oriented Programming (OOP) 62 | 63 | πŸ‘‰πŸ» https://www.youtube.com/watch?v=JeznW_7DlB0 64 | 65 | ### Recursion 66 | 67 | Recursive Functions | Advanced πŸ‘‰πŸ» https://python-course.eu/advanced-python/recursive-functions.php 68 | 69 | ### Projects (Basics) 70 | 71 | --- 72 | 73 | # πŸ’₯ Python Intermediate 74 | 75 | ### Python IDEs 76 | 77 | Once you've learned the basics of Python, you might find it useful to use an IDE to speed up your coding process! 78 | 79 | An Integrated Development Environment (IDE) is a software application that provides a comprehensive environment for developing, testing, and debugging code. Python has several popular IDEs, including Pycharm, Visual Studio Code, and Spyder. Let’s have a closer look! 80 | 81 | ### Pycharm 82 | 83 | Pycharm is a cross-platform, Python-specific IDE that is available in both free and paid versions. It offers a wealth of features and tools to streamline Python development, including code completion, debugging, and testing. 84 | 85 | Step 1: Create and run your first Python project | PyCharm πŸ‘‰πŸ» https://www.jetbrains.com/help/pycharm/creating-and-running-your-first-python-project.html#edit-file) 86 | 87 | ### Visual Studio Code 88 | 89 | Visual Studio Code is a lightweight, open-source code editor that is highly customizable and extensible. It has a large and active community, and there are many extensions available to enhance its functionality for Python development. 90 | 91 | πŸ‘‰πŸ» https://code.visualstudio.com/docs/python/python-tutorial 92 | 93 | ### Spyder 94 | 95 | Spyder is an open-source IDE that is specifically designed for scientific computing and data analysis. It provides a variety of data analysis tools, including a variable explorer, data viewer, and IPython console. 96 | 97 | Welcome to Spyder’s Documentation β€” Spyder 5 documentation πŸ‘‰πŸ» https://docs.spyder-ide.org/current/index.html 98 | 99 | Here are a couple of introductory videos: 100 | 101 | πŸ‘‰πŸ» https://www.youtube.com/watch?v=eXinDi55iOk](https://www.youtube.com/watch?v=eXinDi55iOk 102 | 103 | πŸ‘‰πŸ» https://www.youtube.com/watch?v=7mQgJzionaU](https://www.youtube.com/watch?v=7mQgJzionaU 104 | 105 | Another couple of interesting options are: 106 | 107 | ### Jupyter 108 | 109 | Jupyter is a web-based notebook environment that is commonly used for data analysis, scientific computing, and machine learning. It allows you to combine code, text, and visualizations in a single document, making it easy to share and collaborate on projects. 110 | 111 | How to Use Jupyter Notebook: A Beginner’s Tutorial πŸ‘‰πŸ» https://www.dataquest.io/blog/jupyter-notebook-tutorial/ 112 | 113 | ### Google Colab 114 | 115 | Google Colab is a cloud-based notebook environment that allows you to write and run Python code in a web browser. It provides access to powerful hardware resources, including GPUs and TPUs, making it ideal for machine learning and other computationally intensive tasks. 116 | 117 | Google Colab - Quick Guide πŸ‘‰πŸ» https://www.tutorialspoint.com/google_colab/google_colab_quick_guide.htm 118 | 119 | ### Packages and Environments 120 | 121 | - PIP 122 | - Anaconda/Miniconda 123 | - Environments 124 | 125 | ### Explore Github 126 | 127 | --- 128 | 129 | ## Intermediate Programming 130 | 131 | Lambda Functions & Map 132 | 133 | 4. Lambda Operator, filter, reduce and map | Advanced πŸ‘‰πŸ» https://python-course.eu/advanced-python/lambda-filter-reduce-map.php 134 | 135 | - Itertools 136 | - Linked List 137 | - Collections 138 | 139 | ### Advanced concepts in Object Oriented Programming 140 | 141 | ### Statistics & Numerical Analysis 142 | 143 | - Numpy 144 | 145 | https://www.youtube.com/watch?v=QUT1VHiLmmI](https://www.youtube.com/watch?v=QUT1VHiLmmI 146 | 147 | ### Databases in Python 148 | 149 | Python is a popular language for working with databases. There are several libraries available that make it easy to connect to databases, execute SQL queries, and work with the data returned by those queries. 150 | 151 | ### SQLite 152 | 153 | SQLite is a lightweight, file-based database that is often used for small applications or for testing purposes. Python comes with built-in support for SQLite, so you can start using it right away without installing any additional libraries. 154 | 155 | ### MySQL 156 | 157 | MySQL is a popular open-source database that is commonly used in web applications. There are several Python libraries available for working with MySQL, including `mysql-connector-python` and `PyMySQL`. 158 | 159 | ### PostgreSQL 160 | 161 | PostgreSQL is another popular open-source database that is known for its reliability and advanced features. There are several Python libraries available for working with PostgreSQL, including `psycopg2` and `PyGreSQL`. 162 | 163 | ### MongoDB 164 | 165 | MongoDB is a popular NoSQL document-oriented database that is often used for web applications and big data projects. There are several Python libraries available for working with MongoDB, including `pymongo` and `mongoengine`. 166 | 167 | To get started with working with databases in Python, you will need to install the appropriate library for the database you are using. From there, you can connect to the database, execute queries, and work with the data returned by those queries. 168 | 169 | Here are a couple of tutorials to get you started: 170 | 171 | - Python Database Tutorial - GeeksforGeeks πŸ‘‰πŸ» https://www.geeksforgeeks.org/python-database-tutorial/ 172 | - How to Create and Manipulate SQL Databases with Python πŸ‘‰πŸ» https://www.freecodecamp.org/news/connect-python-with-sql/ 173 | 174 | Python Database Tutorial - GeeksforGeeks πŸ‘‰πŸ» https://www.geeksforgeeks.org/python-database-tutorial/ 175 | 176 | How to Create and Manipulate SQL Databases with Python πŸ‘‰πŸ» https://www.freecodecamp.org/news/connect-python-with-sql/ 177 | 178 | ### Pandas 179 | 180 | Pandas is a popular Python library used for data manipulation and analysis. It provides data structures for efficiently storing and manipulating large datasets, as well as tools for cleaning, transforming, and visualizing data. Some of the key features of Pandas include: 181 | 182 | - Data frames and series for storing and manipulating tabular data 183 | - Tools for importing and exporting data from various formats (e.g., CSV, Excel, SQL) 184 | - Built-in functions for data cleaning and transformation (e.g., handling missing values, merging and joining datasets) 185 | - Flexible and powerful data aggregation and grouping capabilities 186 | - Support for time series data and associated functionality (e.g., time-based indexing and resampling) 187 | 188 | Here is an introductory video to Pandas: 189 | 190 | πŸ‘‰πŸ» https://www.youtube.com/watch?v=vmEHCJofslg 191 | 192 | ### Data Visualization in Python 193 | 194 | - Matplotlib 195 | - Plotly 196 | - ggplot 197 | 198 | ### GUI Programming 199 | 200 | ### Handle JSON, YAML 201 | 202 | ### APIs 203 | 204 | ### Projects (Intermediate) 205 | 206 | --- 207 | 208 | # βš™οΈ Python Advanced 209 | 210 | ### Magic Methods 211 | 212 | Magic Methods | OOP πŸ‘‰πŸ» https://python-course.eu/oop/magic-methods.php 213 | 214 | ### List Comprehension 215 | 216 | List Comprehension | Advance πŸ‘‰πŸ» https://python-course.eu/advanced-python/list-comprehension.php 217 | 218 | ### Serialization 219 | 220 | ### Partial Functions 221 | 222 | ### Closures 223 | 224 | ### Software Testing 225 | 226 | Testing with Pytest | Advanced πŸ‘‰πŸ» https://python-course.eu/advanced-python/pytest.php 227 | 228 | ### Regular Expressions 229 | 230 | Regular Expressions | Advanced πŸ‘‰πŸ» https://python-course.eu/advanced-python/regular-expressions.php 231 | 232 | Advanced Regular Expressions | Advanced πŸ‘‰πŸ» https://python-course.eu/advanced-python/advanced-regular-expressions.php 233 | 234 | ### Decorators & Memoization 235 | 236 | Decorators and Decoration | Advanced πŸ‘‰πŸ» https://python-course.eu/advanced-python/decorators-decoration.php 237 | 238 | Memoization and Decorators | Advanced πŸ‘‰πŸ» https://python-course.eu/advanced-python/memoization-decorators.php 239 | 240 | ### Generators 241 | 242 | Generators and Iterators | Advanced πŸ‘‰πŸ» https://python-course.eu/advanced-python/generators-and-iterators.php 243 | 244 | ### Logging 245 | 246 | ### Multithreading & Multiprocessing 247 | 248 | Multithreading and multiprocessing are powerful tools for improving the performance of Python programs. Multithreading allows you to run multiple threads of execution simultaneously within a single process, while multiprocessing allows you to run multiple processes simultaneously. 249 | 250 | Both of these techniques are particularly useful for tasks that can be broken down into smaller, independent tasks that can be executed in parallel. For example, image processing and machine learning tasks can benefit greatly from multithreading and multiprocessing. 251 | 252 | To get started with multithreading and multiprocessing in Python, you can use the built-in `threading` and `multiprocessing` modules. These modules provide a simple and intuitive interface for creating and managing threads and processes. 253 | 254 | Remember that multithreading and multiprocessing can be complex, so be sure to thoroughly test your code and ensure that it is thread-safe and process-safe before deploying it in a production environment. 255 | 256 | Here are a few resources to help you get started: 257 | 258 | - Python Multithreading Tutorial: Concurrency and Parallelism πŸ‘‰πŸ» https://realpython.com/intro-to-python-threading/ 259 | - Python Multiprocessing: The Pool and Process Classes πŸ‘‰πŸ» https://www.youtube.com/watch?v=fKl2JW_qrso 260 | - Python Multithreading and Multiprocessing πŸ‘‰πŸ» https://towardsdatascience.com/multithreading-multiprocessing-python-180d0975ab29 261 | 262 | This video might be very useful: 263 | 264 | πŸ‘‰πŸ» https://www.youtube.com/watch?v=AZnGRKFUU0c](https://www.youtube.com/watch?v=AZnGRKFUU0c) 265 | 266 | This video series can help you take a further leap! 267 | 268 | πŸ“ https://www.youtube.com/watch?v=PJ4t2U15ACo 269 | 270 | πŸ“ https://www.youtube.com/watch?v=Lu5LrKh1Zno 271 | 272 | πŸ“ https://www.youtube.com/watch?v=uWbSc84he2Q 273 | 274 | πŸ“ https://www.youtube.com/watch?v=sp7EhjLkFY4 275 | 276 | πŸ“ https://www.youtube.com/watch?v=POL7n754JTc 277 | 278 | πŸ“ https://www.youtube.com/watch?v=_1ZwkCY9wxk 279 | 280 | ### Shallow & Deep Copying 281 | 282 | ### Context Manager 283 | 284 | ### Machine Learning with Python 285 | 286 | Intro to Machine Learning with Python | Machine Learning πŸ‘‰πŸ» https://python-course.eu/machine-learning/ 287 | 288 | ### Computer Vision & Image Processing 289 | 290 | ### (*) operator 291 | 292 | ### Projects (Advanced) 293 | 294 | ### Tkinter 295 | --------------------------------------------------------------------------------