I want to write this for the people who open LeetCode, stare at an Easy problem for 20 minutes, solve nothing, and close the tab feeling stupid. That was me a few weeks ago.
I'm a Software Engineering student, still early in my degree, and I'm not from some elite CS pedigree — I'm just trying to actually become a developer instead of collecting a degree that means nothing without skills behind it. So I started grinding LeetCode the way most of us do: opened the website, sorted by Easy, and picked the first thing that looked "beginner friendly."
That first thing was Valid Parentheses.
I genuinely thought it would take me 5 minutes. It took me almost an hour, and I only got it working after I stopped trying to be clever and just asked myself "what data structure literally exists for matching things in reverse order." Stack. That's it. That's the whole problem once you see it. But nobody tells you that the hard part of Easy problems isn't the code, it's recognizing the pattern hiding inside a boring-sounding question.
Then I hit Best Time to Buy and Sell Stock and made every beginner mistake possible — nested loops, checking every pair like an idiot, getting a "Time Limit Exceeded" on a problem labeled Easy. That TLE actually taught me more than solving it would have. It forced me to understand that you don't need to compare everything to everything, you just need to track the lowest price you've seen so far and the best profit so far. One pass. That "wait, that's it?" moment is when LeetCode actually started clicking for me instead of feeling like punishment.
Longest Substring Without Repeating Characters is where I got humbled properly. I failed this one for real — multiple wrong submissions, brute force timing out, and me sitting there not understanding why a sliding window even works until I drew it out on paper like a 10 year old. Once I saw it as "two pointers and a set, shrink from the left when you see a duplicate," it stopped being scary. But I want to be honest: I did not get this in one sitting. I came back to it the next day.
And then Search in Rotated Sorted Array, which felt like a betrayal after finally getting comfortable with normal binary search. Rotated array binary search broke my brain for a bit because the array isn't sorted the way binary search "expects," and I kept defaulting back to linear search out of frustration. The breakthrough was realizing you don't need the whole array sorted — you just need to figure out which half is sorted, and binary search that half. That's the actual skill: noticing which property you can still exploit even when the obvious one is gone.
If you're a beginner reading this: you are not behind, and you are not bad at this. Everyone's first 10–15 problems are ugly, slow, and full of failed submissions. The only difference between people who quit and people who get good is whether they treat a wrong submission as information or as proof they're not "smart enough." It's information. Use it.
Still early in this myself. Just sharing the actual process, not a highlight reel.