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

https://github.com/ehab-elshimi-developer/java-problem-solving-sheets

Scalable Java problem-solving sheets โ€” modular, backend-ready, clean-coded, and mindset-driven. Designed to simulate real-world engineering challenges.
https://github.com/ehab-elshimi-developer/java-problem-solving-sheets

algorithms backend-development clean-code data-structures design-patterns engineering-mindset exception-handling java modularization multithreading oop oop-in-java problem-solving solid-principles

Last synced: 2 months ago
JSON representation

Scalable Java problem-solving sheets โ€” modular, backend-ready, clean-coded, and mindset-driven. Designed to simulate real-world engineering challenges.

Awesome Lists containing this project

README

          

![Java](https://img.shields.io/badge/Java-17-blue?logo=java)
![Progress](https://img.shields.io/badge/Progress-Sheets%201--Infinity-blueviolet)
![License](https://img.shields.io/badge/License-MIT-green)

# ๐Ÿง  Java Training Hub โ€“ Problem Solving Sheets (1 to โˆž)

๐Ÿš€ A comprehensive and ever-growing repository for mastering Java programming through structured **problem-solving sheets** and backend-focused exercises.
This is part of my continuous journey to become a highly capable **Backend Java Developer**, building strong mental foundations in:

- Java Syntax & Core Principles
- OOP & Design Patterns
- Data Structures & Algorithms
- Multithreading & Concurrency
- Clean Code, SOLID, and Software Craftsmanship

---

## ๐Ÿ“˜ Overview

This 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.

Each problem is solved using **clean, modular, testable Java code**, written in a way that promotes **deep understanding, reusability**, and **engineering discipline**.

> ๐Ÿง  Think of each sheet as a level in your mental gym โ€“ and the gym never closes.

---

## ๐Ÿš€ Topics & Skills Covered

- โœ… **Basic Syntax & Variables** โ€“ Java fundamentals, data types, operators
- โœ… **Control Flow** โ€“ `if/else`, loops, switch-case
- โœ… **Functions & Recursion** โ€“ Modular programming and recursive strategies
- โœ… **Arrays & Data Structures** โ€“ Arrays, Lists, Stacks, Queues, HashMaps, Sets
- โœ… **Object-Oriented Programming (OOP)** โ€“ Encapsulation, Inheritance, Polymorphism, Abstraction
- โœ… **Design Patterns** โ€“ Singleton, Factory, Strategy, and more
- โœ… **Exception Handling** โ€“ Robust error management & custom exceptions
- โœ… **Algorithms** โ€“ Searching, Sorting, Problem Solving
- โœ… **Multithreading** โ€“ Concurrency models and real-world thread use
- โœ… **Clean Code & SOLID Principles** โ€“ Write for humans, not just machines
- โœ… **Modularization** โ€“ Reusable components with separation of concerns

---

## ๐Ÿ“ Folder Structure

The structure is open-ended and infinitely extensible:

src/
โ”œโ”€ sheet1/
โ”‚ โ”œโ”€ Sh1Pr1.java
โ”‚ โ”œโ”€ Sh1Pr2.java
โ”‚ โ””โ”€ ...
โ”œโ”€ sheet2/
โ”‚ โ””โ”€ ...
โ””โ”€ sheetN/

Each sheet includes:

- ๐Ÿ“„ **Well-named Java classes** (e.g., `Sh5Pr2.java`)
- ๐Ÿง  **Inline problem descriptions** where applicable
- ๐Ÿงช **Testable & clean implementations** with modular design
- ๐Ÿงฑ Built to reflect **real backend workflows** and encourage scalability

> โ™พ๏ธ The sheet count keeps growing as learning continues.

---

## ๐Ÿงฉ Sample Problems

### ๐Ÿ”ธ Basic Syntax & Logic

- Hello World
- Swap Without Temp
- Even or Odd
- Find Largest of 3
- Sum of Digits

### ๐Ÿ”ธ Control Flow

- Factorial with Loops
- Prime Number Detection
- Reverse Digits
- Fibonacci Sequence
- Armstrong Number Check

---

## ๐Ÿ“Š Infinite Progress Tracker

| Sheet | Status | Focus Area |
|-----------|---------------|----------------------------------------|
| Sheet 1 | โœ… Completed | Java basics & intro problems |
| Sheet 2 | โœ… Completed | Arrays & simple data structure use |
| Sheet 3 | โœ… Completed | Strings & char manipulation |
| Sheet 4 | โœ… Completed | Patterns, nested loops |
| Sheet 5 | โœ… Completed | 2D Arrays, matrices |
| Sheet 6 | ๐ŸŸก In Progress | Matrix logic & deeper conditions |
| Sheet 7 | โณ Upcoming | Intermediate structures & sorting |
| Sheet 8 | โณ Upcoming | Recursion & OOP combinations |
| Sheet 9 | โณ Upcoming | Dynamic programming & analysis |
| Sheet 10+ | โ™พ๏ธ Endless | Real-world backend & architecture |

> ๐Ÿ” The tracker reflects continuous improvement โ€” not a final destination.

---

## ๐Ÿ”ฎ What's Next?

This hub will keep expanding with:

- โœจ **Recursive Problem Solving & Memoization**
- โœจ **Data Structures from Scratch** โ€“ Linked Lists, Trees, HashMaps
- โœจ **Multithreading Challenges** โ€“ Runnable, Threads, Sync
- โœจ **File Handling & Stream APIs**
- โœจ **JUnit & Integration Testing**
- โœจ **Mini Backend Systems** โ€“ CLI projects, service layers, modular logic
- โœจ **Controller-based Architecture** โ€“ Preparing for scalable backend design

> ๐ŸŽฏ **Goal:** Build the mindset and codebase of a real software engineer โ€” not just a student.

---

## ๐Ÿ›  Getting Started

### 1. Clone the Repository

```bash
git clone https://github.com/ehab-elshimi-developer/java-problem-solving-sheets.git
```
### 2. Open in Your Preferred Java IDE
๐Ÿ’ก **Recommended**: [IntelliJ IDEA](https://www.jetbrains.com/idea/) or [VS Code](https://code.visualstudio.com/) with **Java Extension Pack**

---

### 3. Explore & Run
This repository follows a **modular, auto-scalable structure** powered by `Generator.java`.

Each set of problems is organized into folders:

```
src/
โ”œโ”€ sheet1/
โ”‚ โ”œโ”€ Sh1Pr1.java
โ”‚ โ”œโ”€ Sh1Pr2.java
โ”‚ โ””โ”€ ...
โ”œโ”€ sheet2/
โ”‚ โ””โ”€ ...
โ””โ”€ ...
```

โœ… **Naming Convention**
`ShXPrY.java` โ†’ where `X = sheet number`, `Y = problem number`

---

### ๐Ÿ” Run a Specific Problem
Update `Main.java`:

```java
runProblem(6, 4); // Executes sheet6.Sh6Pr4
```

---

### ๐Ÿ”„ Run a Full Sheet

```java
testGeneratedSheet(6); // Executes Sh6Pr1 to Sh6Pr10
```

๐Ÿงช **Reflection** is used to dynamically load and invoke the `.run()` method of each class.

---

### โš™๏ธ Use the Generator
Run `Generator.java` to:

- ๐Ÿ” Detect the latest existing sheet
- ๐Ÿ†• Create the next sheet automatically (e.g., `sheet7/`)
- ๐Ÿงฑ Generate files like `Sh7Pr1.java` to `Sh7Pr6.java`
- ๐Ÿ› ๏ธ Update `Main.java` for immediate execution

๐Ÿงญ Whether you're starting with syntax or diving into algorithms โ€” just generate and go.

---

## ๐Ÿท๏ธ Tags
`Java` `Problem Solving` `Backend Development` `OOP`
`Data Structures` `Algorithms` `Multithreading` `Design Patterns`
`SOLID Principles` `Clean Code` `Modularization` `Exception Handling` `Reflection`

---

## ๐Ÿค Contributing
This repo is part of a **personal learning journey** โ€” but open to evolution.

If youโ€™d like to:
- ๐Ÿ’ก Suggest a new challenge
- ๐Ÿ›  Improve an existing solution
- ๐Ÿž Fix a bug
- โœจ Refactor structure or readability

Feel free to:
- ๐Ÿ“ฅ [Open an Issue](https://github.com/ehab-elshimi-developer/java-problem-solving-sheets/issues)
- ๐Ÿ” [Submit a Pull Request](https://github.com/ehab-elshimi-developer/java-problem-solving-sheets/pulls)

๐Ÿ™Œ **All contributions are welcome!**

---

## ๐Ÿ‘จโ€๐Ÿ’ป Author
**Ehab Elshimi**
๐ŸŽฏ *Aspiring Backend Java Developer*
๐Ÿ“ *Egypt โ€“ Preparing for European opportunities*
๐Ÿ’ก *Passionate about clean architecture & scalable systems*
๐Ÿ“ฌ [ehabelshimi.dev@gmail.com](mailto:ehabelshimi.dev@gmail.com)
๐ŸŒ [@ehab-elshimi-developer](https://github.com/ehab-elshimi-developer)

---

> ๐Ÿง  *"Train your mind to solve problems like an engineer. Write code like youโ€™re building a system, not just passing a test."*
> โ€” **Ehab Elshimi** ๐Ÿš€

![Mindset](https://img.shields.io/badge/Mindset-Engineer_First-orange)