# Milestone: 1 year of leetcode

### 1 Year on LeetCode: Lessons, Struggles, and Growth

Exactly one year ago, I made a commitment — to open LeetCode *daily*, without excuses, and start solving problems that once made me uncomfortable. What started as a casual attempt to improve my DSA skills has become one of the most consistent habits I’ve developed.

Today marks **365 days of learning, struggling, failing, debugging, and growing**. Here's what the journey has looked like, what I learned, and what I wish I knew when I started.

---

## Why I Started

Like many developers, I was familiar with the basics of data structures and algorithms — arrays, trees, hash maps, dynamic programming. But interviews at top companies are a different game. I needed consistency, confidence, and clarity.

LeetCode offered a structured and measurable way to build those skills. It felt like the gym for my brain — and I wanted to show up *every day*.

---

## Lessons Learned

### 1\. **Consistency Beats Intensity**

You don't need to solve 5 problems a day. Solve *one* — but understand it deeply. The compound effect of daily effort is real.

### 2\. **Hard Problems Are Teachers in Disguise**

Some problems took me hours. But those were the ones that taught me *why* an approach worked (or failed). If you’re struggling, it means you’re learning.

### 3\. **Patterns Are Everything**

After 100+ problems, patterns start to emerge:

* Sliding window for subarrays
    
* Two pointers for sorted arrays
    
* Recursion with memoization for DP
    
* Hashing for fast lookups
    

Once you recognize the pattern, the problem becomes familiar, not frightening.

### 4\. **Editorials and Discussions Are Gold**

Reading others' approaches changed my thinking. It made me write cleaner, more optimized code — and sometimes, taught me simpler solutions I overlooked.

### 5\. **Debugging is a Superpower**

LeetCode helped me *trust* my code. I became faster at finding bugs and understanding edge cases. It’s an underrated benefit of daily practice.

---

## What I Wish I Knew Earlier

* **You don’t have to do everything in order**. Jump around. Try new tags. Challenge yourself.
    
* **Read problem statements carefully**. Most WA (wrong answers) come from misreading the constraints.
    
* **Don’t avoid hard problems**. Attempt them — even if it means failing. That failure is part of the growth curve.
    
* **Use a notebook or Obsidian/Notion** to record insights. Rewriting the logic in your own words helps retention immensely.
    

---

## My Toolkit

* **Language:** Java
    
* Visualization/Dry run: Physical notebook, Excalidraw
    
* **Platform:** LeetCode + some occasional practice on Codeforces & GeeksforGeeks
    
* **Tracking:** Google Sheets + LeetCode Stats + Obsidian Notes
    

---

## Final Thoughts

One year on LeetCode didn’t just make me better at solving problems. It:

* Sharpened my thinking
    
* Improved my coding speed
    
* Boosted my confidence in interviews
    
* Made me a more thoughtful developer
    

To anyone thinking of starting — start today. You don’t need to go fast. Just don’t stop.

Here’s to another year of curiosity, code, and continuous learning.
