Milestone: 1 year of leetcode

Senior Backend Engineer
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.


