└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Programming Basics Learning Path 2 | ![final V 4 basics](https://github.com/user-attachments/assets/f423c290-6b2d-408a-a9cd-3583a484b54f) 3 | 4 | ## Original Post 5 | For the full details in Arabic, please check the original post: 6 | - [Facebook](https://www.facebook.com/share/p/A8wRLtfNjzosAADH/) 7 | - [LinkedIn](https://www.linkedin.com/feed/update/urn:li:activity:7234183030267944960/) 8 | - [Twitter (X)](https://x.com/MrXroboT/status/1828404613814366663) 9 | 10 | ## Table of Contents 11 | 1. [Introduction](#introduction) 12 | 2. [Learning Path](#learning-path) 13 | 3. [Resources](#resources) 14 | 4. [Practice Projects](#practice-projects) 15 | 5. [Additional Tips](#additional-tips) 16 | 6. [Next Steps](#next-steps) 17 | 7. [Author](#author) 18 | 8. [Author Contact](#author-contact) 19 | 20 | ## Introduction 21 | This repository outlines a comprehensive learning path for programming basics. Whether you're a beginner or looking to solidify your foundation, this guide will help you navigate through key programming concepts. 22 | 23 | ## Learning Path 24 | 1. Programming Fundamentals 25 | 2. Object-Oriented Programming (OOP) 26 | 3. Data Structures 27 | 4. Algorithms 28 | 5. Databases 29 | 6. Networking 30 | 7. Operating Systems 31 | 32 | ## Resources 33 | 34 | ### 1. Programming Fundamentals 35 | Start your journey with C++, an excellent language for learning core programming concepts. 36 | - C++ Course by Osama Elzero: [YouTube Playlist](https://www.youtube.com/playlist?list=PLDoPjvoNmBAwy-rS6WKudwVeb_x63EzgS) 37 | 38 | ### 2. Object-Oriented Programming (OOP) 39 | OOP is crucial for designing clear, flexible, and maintainable code. Learn it with C#, known for its strong OOP support. 40 | 41 | - **C# Tutorial:** [W3Schools](https://www.w3schools.com/cs/index.php) 42 | - **OOP with C# Course:** [Google Drive](https://drive.google.com/drive/folders/1WbY2Doyapd6FJmM1-vU7A-0VutZMluS-?usp=sharing) 43 | 44 | #### Practice Projects on OOP 45 | Apply your OOP skills with these hands-on projects: 46 | - **CRUD Project:** [YouTube Playlist](https://www.youtube.com/playlist?list=PLoRh0POuk1Rw-LATGAjLWQTnS2jknpjZu) 47 | Develop a basic CRUD (Create, Read, Update, Delete) application to understand how OOP principles like encapsulation, inheritance, and polymorphism are applied in real-world scenarios. 48 | 49 | - **Educational Management System:** [GitHub Repo](https://github.com/Mostafay65/Educational-Management-System-OOP-project-) 50 | Build an educational management system to implement more complex OOP concepts, including advanced class hierarchies, interfaces, and design patterns. 51 | 52 | - **Additional OOP Projects:** [Google Drive](https://drive.google.com/drive/u/0/folders/1G523fKsRp6bNCzt_005c7vBHe7Ni5Mt1) 53 | Explore a variety of additional OOP projects to further practice and refine your understanding of object-oriented design and implementation. 54 | 55 | ### 3. Data Structures 56 | Understanding data structures is key to writing efficient code. Learn them using C++ to also grasp concepts like pointers. 57 | - Data Structures in C++ by mega code "only linear DSA" very recommended: [YouTube Playlist](https://www.youtube.com/playlist?list=PLsGJzJ8SQXTcsXRVviurGei0lf_t_I4D8) 58 | - Linear Data Structures by Adel Nasim: [YouTube Playlist](https://www.youtube.com/playlist?list=PLCInYL3l2AajqOUW_2SwjWeMwf4vL4RSp) 59 | 60 | ### 4. Algorithms 61 | Algorithms are the problem-solving strategies of programming. These courses will help you think like a programmer. 62 | - Algorithms by Adel Nasim: [YouTube Playlist](https://www.youtube.com/playlist?list=PLCInYL3l2AajqOUW_2SwjWeMwf4vL4RSp) 63 | - Abdul Bari's Algorithm Course: [YouTube Playlist](https://www.youtube.com/playlist?list=PLDN4rrl48XKpZkf03iYFl-O29szjTrs_O) 64 | 65 | ### 5. Databases 66 | Learn both SQL and NoSQL databases to handle various data storage needs. 67 | - SQL Server Database: [YouTube Playlist](https://www.youtube.com/playlist?list=PLoRh0POuk1Rw-BZU-DPI6cA_c5W9_2uF_) 68 | - NoSQL - MongoDB: [YouTube Playlist](https://www.youtube.com/playlist?list=PLesfn4TAj57XGGSmVzzpxY69-lha1EWEI) 69 | 70 | ### 6. Networking 71 | Understanding networking is crucial in our interconnected world of software. 72 | - Networking Course by Mohab Alaa: [YouTube Playlist](https://www.youtube.com/playlist?list=PLQXgDrsmqpLwULiDPr_4iWHMmKhzbQamj) 73 | 74 | ### 7. Operating Systems 75 | Grasp how software interacts with hardware through operating systems. 76 | - Operating Systems Course: [YouTube Playlist](https://www.youtube.com/playlist?list=PLSGEGD0dbMKoigQWgVJ_UoUJUGQPCHXKV) 77 | 78 | ## Additional Tips 79 | - Consistency is key. Try to code a little every day to build and maintain your skills. 80 | - Don't ِjust watch videos - code along and experiment with the concepts you learn. 81 | - Join coding communities or find a study buddy to share your learning journey. 82 | - Work on personal projects to apply your knowledge in real-world scenarios. 83 | - Remember, debugging is a crucial skill. Embrace errors as learning opportunities. 84 | 85 | ## Next Steps 86 | After mastering these basics, consider exploring: 87 | - Web development (Frontend or backend or both) 88 | - Mobile app development 89 | - Cloud computing 90 | - Machine Learning and AI 91 | - etc... 92 | 93 | Remember, the field of programming is vast and ever-evolving. Stay curious and keep learning! 94 | 95 | Happy coding! 96 | 97 | ## Author 98 | **Abdelaziz Elbessa** 99 | Software Engineer - Full Stack 100 | 101 | ## Author Contact 102 | - GitHub: [mrXrobot26](https://github.com/mrXrobot26) 103 | - LinkedIn: [Bess Gates](https://www.linkedin.com/in/bess-gates/) 104 | - Twitter: [@MrXroboT](https://x.com/MrXroboT) 105 | - YouTube: [Bess_Gates](https://www.youtube.com/@Bess_Gates) 106 | - Facebook: [Abdo Elbessa](https://www.facebook.com/abdo.elbessa10/) 107 | 108 | ## License 109 | MIT License 110 | 111 | Copyright (c) 2024 Abdelaziz Elbessa 112 | 113 | Permission is hereby granted, free of charge, to any person obtaining a copy 114 | of this software and associated documentation files (the "Software"), to deal 115 | in the Software without restriction, including without limitation the rights 116 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 117 | copies of the Software, and to permit persons to whom the Software is 118 | furnished to do so, subject to the following conditions: 119 | 120 | The above copyright notice and this permission notice shall be included in all 121 | copies or substantial portions of the Software. 122 | 123 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 124 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 125 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 126 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 127 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 128 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 129 | SOFTWARE. 130 | --------------------------------------------------------------------------------