{"id":30039272,"url":"https://github.com/ehab-elshimi-developer/java-problem-solving-sheets","last_synced_at":"2025-08-07T01:40:02.031Z","repository":{"id":303766365,"uuid":"1016586294","full_name":"ehab-elshimi-developer/java-problem-solving-sheets","owner":"ehab-elshimi-developer","description":"Scalable Java problem-solving sheets — modular, backend-ready, clean-coded, and mindset-driven. Designed to simulate real-world engineering challenges.","archived":false,"fork":false,"pushed_at":"2025-08-06T17:18:07.000Z","size":25,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-06T19:19:53.592Z","etag":null,"topics":["algorithms","backend-development","clean-code","data-structures","design-patterns","engineering-mindset","exception-handling","java","modularization","multithreading","oop","oop-in-java","problem-solving","solid-principles"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ehab-elshimi-developer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-09T08:24:03.000Z","updated_at":"2025-08-06T17:18:10.000Z","dependencies_parsed_at":"2025-07-09T10:29:34.392Z","dependency_job_id":"07596589-e0b8-4f9d-8e7d-2d6c0fe7b625","html_url":"https://github.com/ehab-elshimi-developer/java-problem-solving-sheets","commit_stats":null,"previous_names":["ehab-elshimi-developer/java-problem-solving-sheets"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ehab-elshimi-developer/java-problem-solving-sheets","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehab-elshimi-developer%2Fjava-problem-solving-sheets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehab-elshimi-developer%2Fjava-problem-solving-sheets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehab-elshimi-developer%2Fjava-problem-solving-sheets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehab-elshimi-developer%2Fjava-problem-solving-sheets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ehab-elshimi-developer","download_url":"https://codeload.github.com/ehab-elshimi-developer/java-problem-solving-sheets/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehab-elshimi-developer%2Fjava-problem-solving-sheets/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269185716,"owners_count":24374626,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-06T02:00:09.910Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithms","backend-development","clean-code","data-structures","design-patterns","engineering-mindset","exception-handling","java","modularization","multithreading","oop","oop-in-java","problem-solving","solid-principles"],"created_at":"2025-08-07T01:39:57.685Z","updated_at":"2025-08-07T01:40:02.015Z","avatar_url":"https://github.com/ehab-elshimi-developer.png","language":"Java","readme":"![Java](https://img.shields.io/badge/Java-17-blue?logo=java)\n![Progress](https://img.shields.io/badge/Progress-Sheets%201--Infinity-blueviolet)\n![License](https://img.shields.io/badge/License-MIT-green)\n\n# 🧠 Java Training Hub – Problem Solving Sheets (1 to ∞)\n\n🚀 A comprehensive and ever-growing repository for mastering Java programming through structured **problem-solving sheets** and backend-focused exercises.  \nThis is part of my continuous journey to become a highly capable **Backend Java Developer**, building strong mental foundations in:\n\n- Java Syntax \u0026 Core Principles  \n- OOP \u0026 Design Patterns  \n- Data Structures \u0026 Algorithms  \n- Multithreading \u0026 Concurrency  \n- Clean Code, SOLID, and Software Craftsmanship  \n\n---\n\n## 📘 Overview\n\nThis repository is structured into a series of progressive **Java Problem Solving Sheets**, starting from basic syntax and gradually advancing toward complex backend logic and real-world systems.\n\nEach problem is solved using **clean, modular, testable Java code**, written in a way that promotes **deep understanding, reusability**, and **engineering discipline**.\n\n\u003e 🧠 Think of each sheet as a level in your mental gym – and the gym never closes.\n\n---\n\n## 🚀 Topics \u0026 Skills Covered\n\n- ✅ **Basic Syntax \u0026 Variables** – Java fundamentals, data types, operators  \n- ✅ **Control Flow** – `if/else`, loops, switch-case  \n- ✅ **Functions \u0026 Recursion** – Modular programming and recursive strategies  \n- ✅ **Arrays \u0026 Data Structures** – Arrays, Lists, Stacks, Queues, HashMaps, Sets  \n- ✅ **Object-Oriented Programming (OOP)** – Encapsulation, Inheritance, Polymorphism, Abstraction  \n- ✅ **Design Patterns** – Singleton, Factory, Strategy, and more  \n- ✅ **Exception Handling** – Robust error management \u0026 custom exceptions  \n- ✅ **Algorithms** – Searching, Sorting, Problem Solving  \n- ✅ **Multithreading** – Concurrency models and real-world thread use  \n- ✅ **Clean Code \u0026 SOLID Principles** – Write for humans, not just machines  \n- ✅ **Modularization** – Reusable components with separation of concerns\n\n---\n\n## 📁 Folder Structure\n\nThe structure is open-ended and infinitely extensible:\n\nsrc/\n├─ sheet1/\n│ ├─ Sh1Pr1.java\n│ ├─ Sh1Pr2.java\n│ └─ ...\n├─ sheet2/\n│ └─ ...\n└─ sheetN/\n\nEach sheet includes:\n\n- 📄 **Well-named Java classes** (e.g., `Sh5Pr2.java`)  \n- 🧠 **Inline problem descriptions** where applicable  \n- 🧪 **Testable \u0026 clean implementations** with modular design  \n- 🧱 Built to reflect **real backend workflows** and encourage scalability\n\n\u003e ♾️ The sheet count keeps growing as learning continues.\n\n---\n\n## 🧩 Sample Problems\n\n### 🔸 Basic Syntax \u0026 Logic\n\n- Hello World  \n- Swap Without Temp  \n- Even or Odd  \n- Find Largest of 3  \n- Sum of Digits\n\n### 🔸 Control Flow\n\n- Factorial with Loops  \n- Prime Number Detection  \n- Reverse Digits  \n- Fibonacci Sequence  \n- Armstrong Number Check\n\n---\n\n## 📊 Infinite Progress Tracker\n\n| Sheet     | Status        | Focus Area                             |\n|-----------|---------------|----------------------------------------|\n| Sheet 1   | ✅ Completed   | Java basics \u0026 intro problems           |\n| Sheet 2   | ✅ Completed   | Arrays \u0026 simple data structure use     |\n| Sheet 3   | ✅ Completed   | Strings \u0026 char manipulation            |\n| Sheet 4   | ✅ Completed   | Patterns, nested loops                 |\n| Sheet 5   | ✅ Completed   | 2D Arrays, matrices                    |\n| Sheet 6   | 🟡 In Progress | Matrix logic \u0026 deeper conditions       |\n| Sheet 7   | ⏳ Upcoming    | Intermediate structures \u0026 sorting      |\n| Sheet 8   | ⏳ Upcoming    | Recursion \u0026 OOP combinations           |\n| Sheet 9   | ⏳ Upcoming    | Dynamic programming \u0026 analysis         |\n| Sheet 10+ | ♾️ Endless     | Real-world backend \u0026 architecture      |\n\n\u003e 🔁 The tracker reflects continuous improvement — not a final destination.\n\n---\n\n## 🔮 What's Next?\n\nThis hub will keep expanding with:\n\n- ✨ **Recursive Problem Solving \u0026 Memoization**  \n- ✨ **Data Structures from Scratch** – Linked Lists, Trees, HashMaps  \n- ✨ **Multithreading Challenges** – Runnable, Threads, Sync  \n- ✨ **File Handling \u0026 Stream APIs**  \n- ✨ **JUnit \u0026 Integration Testing**  \n- ✨ **Mini Backend Systems** – CLI projects, service layers, modular logic  \n- ✨ **Controller-based Architecture** – Preparing for scalable backend design\n\n\u003e 🎯 **Goal:** Build the mindset and codebase of a real software engineer — not just a student.\n\n---\n\n## 🛠 Getting Started\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/ehab-elshimi-developer/java-problem-solving-sheets.git\n```\n### 2. Open in Your Preferred Java IDE  \n💡 **Recommended**: [IntelliJ IDEA](https://www.jetbrains.com/idea/) or [VS Code](https://code.visualstudio.com/) with **Java Extension Pack**\n\n---\n\n### 3. Explore \u0026 Run  \nThis repository follows a **modular, auto-scalable structure** powered by `Generator.java`.\n\nEach set of problems is organized into folders:\n\n```\nsrc/\n ├─ sheet1/\n │   ├─ Sh1Pr1.java\n │   ├─ Sh1Pr2.java\n │   └─ ...\n ├─ sheet2/\n │   └─ ...\n └─ ...\n```\n\n✅ **Naming Convention**  \n`ShXPrY.java` → where `X = sheet number`, `Y = problem number`\n\n---\n\n### 🔁 Run a Specific Problem  \nUpdate `Main.java`:\n\n```java\nrunProblem(6, 4); // Executes sheet6.Sh6Pr4\n```\n\n---\n\n### 🔄 Run a Full Sheet  \n\n```java\ntestGeneratedSheet(6); // Executes Sh6Pr1 to Sh6Pr10\n```\n\n🧪 **Reflection** is used to dynamically load and invoke the `.run()` method of each class.\n\n---\n\n### ⚙️ Use the Generator  \nRun `Generator.java` to:\n\n- 🔍 Detect the latest existing sheet  \n- 🆕 Create the next sheet automatically (e.g., `sheet7/`)  \n- 🧱 Generate files like `Sh7Pr1.java` to `Sh7Pr6.java`  \n- 🛠️ Update `Main.java` for immediate execution  \n\n🧭 Whether you're starting with syntax or diving into algorithms — just generate and go.\n\n---\n\n## 🏷️ Tags  \n`Java` `Problem Solving` `Backend Development` `OOP`  \n`Data Structures` `Algorithms` `Multithreading` `Design Patterns`  \n`SOLID Principles` `Clean Code` `Modularization` `Exception Handling` `Reflection`\n\n---\n\n## 🤝 Contributing  \nThis repo is part of a **personal learning journey** — but open to evolution.\n\nIf you’d like to:  \n- 💡 Suggest a new challenge  \n- 🛠 Improve an existing solution  \n- 🐞 Fix a bug  \n- ✨ Refactor structure or readability  \n\nFeel free to:  \n- 📥 [Open an Issue](https://github.com/ehab-elshimi-developer/java-problem-solving-sheets/issues)  \n- 🔁 [Submit a Pull Request](https://github.com/ehab-elshimi-developer/java-problem-solving-sheets/pulls)  \n\n🙌 **All contributions are welcome!**\n\n---\n\n## 👨‍💻 Author  \n**Ehab Elshimi**  \n🎯 *Aspiring Backend Java Developer*  \n📍 *Egypt – Preparing for European opportunities*  \n💡 *Passionate about clean architecture \u0026 scalable systems*  \n📬 [ehabelshimi.dev@gmail.com](mailto:ehabelshimi.dev@gmail.com)  \n🌐 [@ehab-elshimi-developer](https://github.com/ehab-elshimi-developer)\n\n---\n\n\u003e 🧠 *\"Train your mind to solve problems like an engineer. Write code like you’re building a system, not just passing a test.\"*  \n\u003e — **Ehab Elshimi** 🚀  \n\n![Mindset](https://img.shields.io/badge/Mindset-Engineer_First-orange)\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fehab-elshimi-developer%2Fjava-problem-solving-sheets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fehab-elshimi-developer%2Fjava-problem-solving-sheets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fehab-elshimi-developer%2Fjava-problem-solving-sheets/lists"}