💻 Data Structures & Algorithms Journey using Java ☕ , my favorite Programming Language 💕 : The Comeback Kid's Log 🏆
Welcome! This repository chronicles my journey to master Data Structures and Algorithms (DSA) using Java.
Starting DSA from scratch feels a lot like learning to walk again—challenging, often frustrating, but absolutely essential for building a strong foundation. This log is where I document my progress, solidify concepts, and practice problem-solving. It's a testament to the belief that you can always learn and rebuild, no matter how daunting the challenge.
| Area | Status | Notes |
|---|---|---|
| Language | Java | Focusing on Java 17+ features. |
| Data Structures | In Progress | Arrays, Linked Lists, Stacks, Queues, Trees, Graphs, Hash Maps. |
| Algorithms | In Progress | Sorting, Searching, Recursion, Dynamic Programming, Greedy Algorithms. |
| Primary Platform | Undecided yet |
Here's a high-level view of the topics I'm currently focusing on and what's next.
- Basics, Conditionals, Loops
- Arrays and Strings
- Linked Lists (Singly, Doubly, Circular)
- Basic Sorting Algorithms (Bubble, Selection, Insertion)
- Trees (Binary Search Trees, Heaps)
- Hashing and Hash Maps
- Advanced Sorting (Merge Sort, Quick Sort)
- Graphs (Traversal, Shortest Path, MST)
- Dynamic Programming
- Backtracking
You'll find folders organized by topic, with each file containing a problem's solution, a brief explanation, and complexity analysis (Time/Space).
For me, this journey into DSA is more than just learning code; it's a continuation of a different kind of fight—one that involved a small bowel (intestine) transplant.
The most profound lesson I've taken from that experience is the power of iteration and recovery.
There were countless days post-transplant where the progress was non-linear. I'd take two steps forward, feel a setback, and land three steps back. The body would reject, the pain would flare, the exhaustion was absolute. In those moments, it would've been easy to give up.
But you don't stop. You iterate.
- Falling down is just a temporary bug in the system. You analyze the error (what went wrong), adjust the parameters (medication, rest, diet), and try the next iteration.
- The intestine transplant gave me a new lease on life, a perfect example of a successful system overhaul. My body was given a second chance, a completely new structure to work with. Now, I'm building a new structure for my career—my DSA skills.
When I face a tough DP problem or a complex graph traversal, and I hit a wall, I remember those days. An algorithm isn't meant to be solved on the first run; it's meant to be refined through repeated, dedicated attempts.
This repository, filled with attempts, errors, and eventual successes, is a tribute to that fight. It’s proof that perseverance is the ultimate algorithm for success.
I am always open to feedback, collaboration, and learning! If you see an area for optimization in my code, or have a better approach to a problem, please open an issue or a pull request.
Keep coding, keep fighting. 💪