Is It Normal to Feel Stuck in DSA for Weeks or Months?
Feeling stuck in DSA for a long time and wondering if something is wrong with you? Here's what's actually happening and what to do about it.
Is It Normal to Feel Stuck in DSA for Weeks or Months?
Yes. And if nobody around you is admitting it, that's because people only talk about their progress, not their plateaus.
Feeling stuck in DSA for extended periods is not a sign that you're bad at programming or that this career path isn't for you. It's a sign that you're attempting something genuinely difficult. The people who eventually get good at DSA are not the ones who found it easy. They're the ones who stayed consistent when it stopped feeling like progress.
That said, there's a difference between the kind of stuck that's part of normal learning and the kind that means your approach needs to change. Understanding which one you're in is what actually helps.
Why DSA Feels Like a Wall for So Long
Most subjects you study in college or online give you a relatively smooth progression. You learn a concept, you practice it, you move on. DSA doesn't work like that. It has a brutal difficulty curve that stays flat for a long time and then suddenly jumps.
Easy problems feel manageable. Then medium problems show up and it feels like someone changed the rules entirely. The gap between easy and medium is where most people get stuck, and it has nothing to do with intelligence. It's because medium problems require you to combine multiple concepts, recognize non-obvious patterns, and make decisions the problem statement doesn't spell out for you. That's a fundamentally different skill and it takes time to develop.
Graphs and dynamic programming create their own walls. A lot of people sail through arrays and trees and then completely stall on DP. This is normal. DP requires a shift in how you think about problems, from procedural thinking to thinking in terms of states and transitions. That shift doesn't happen in a week.
The Progress You're Making That Doesn't Feel Like Progress
When you're stuck, it feels like nothing is happening. But underneath the surface, things are changing even when your solve rate isn't.
You're getting faster at reading and understanding problems. You're getting better at eliminating approaches that won't work. You're building pattern recognition slowly, even if it hasn't clicked into place yet. You're becoming more comfortable with ambiguity and uncertainty, which is actually one of the hardest things to develop.
None of this shows up on a scoreboard, which is why it's invisible. But it's real, and it's cumulative. The week where everything suddenly starts clicking is not magic. It's the payoff from weeks of work that felt like nothing.
When Stuck Means Your Approach Needs to Change
Staying consistent through a plateau matters, but grinding harder with a broken approach just means failing more efficiently. There are specific signs that the problem is method, not just time.
If you've been studying for months but you're still spending most of your time watching solutions rather than attempting problems, that's a method problem. Passive consumption doesn't build problem-solving ability no matter how long you do it.
If you solve problems from a topic immediately after studying it but can't solve similar problems a week later, you're not doing spaced repetition. You're restudying the same things repeatedly without retention.
If you always look up hints within the first 10 minutes of a problem, your struggle tolerance is too low. The discomfort of being stuck is not a signal to get help. It's the signal that learning is happening. Cutting it short every time means you never build the instinct for working through hard problems independently.
If you've been doing only easy problems for months because medium problems feel too hard, you're staying in a comfort zone that isn't preparing you for actual interviews.
What "Stuck" Looks Like at Different Stages
Getting stuck means different things depending on where you are.
In the first month, stuck usually means the foundations aren't solid enough. Recursion, time complexity analysis, and basic data structure operations need to feel automatic before harder topics make sense. If you're struggling here, slow down and reinforce the basics rather than pushing forward.
In months two and three, stuck usually means you're hitting the pattern recognition gap. You understand individual concepts but can't figure out which one to apply to an unfamiliar problem. This is solved through volume and reflection, not more theory.
In months four and beyond, stuck usually means you know the patterns but the implementations are still shaky, or you're freezing under timed pressure. These are separate problems with separate fixes.
Knowing which version of stuck you're in saves you from applying the wrong solution.
Things That Keep People Stuck Longer Than They Need to Be
Jumping between resources constantly is one of the biggest ones. Every time you feel stuck, switching to a new course or a new YouTube channel feels like a solution but it's usually avoidance. Finish what you started. The grass always looks greener on a different platform.
Solving problems in topic-specific batches means you always know what technique to use before you've even read the question. It feels like practice but it's not preparing you for the randomness of a real interview. Mix your topics.
Not revisiting problems you've already studied. You feel like you've done it so there's no point going back. But solving a problem again after two weeks is completely different from solving it the first time, and that second attempt tells you whether you actually learned it or just followed along.
Comparing your pace to others is a fast way to demoralize yourself for no reason. Someone in your peer group who seems to be moving faster might be better at appearing confident, might have prior experience you don't know about, or might be taking shortcuts that will catch up to them later. Your timeline is your own.
How to Actually Get Unstuck
Change your practice ratio before anything else. If you're spending more time watching and reading than attempting, flip it. Attempt first, always, even if you fail. Especially if you fail.
Set a timer for your attempts. 25 to 30 minutes of focused effort on a problem before looking at anything. This forces you to actually think rather than reach for help at the first sign of difficulty.
When you study a solution, don't just read it and move on. Close it, open a blank file, and write it from scratch. If you can't do that, you didn't understand it as well as you thought.
Pick one weak area and stay with it. Not three weak areas, one. Go deep on it for a full week, mix in problems from that topic with problems from other topics, and don't move on until you feel some genuine traction.
Track what you're actually doing, not just how many problems you've solved. Are you attempting before looking? Are you revisiting? Are you mixing topics? The habit quality matters more than the volume.
The Honest Truth About Timelines
There is no universal timeline for DSA. Someone with a strong math background might pick up DP faster. Someone with prior competitive programming experience starts ahead. Someone working a full-time job while preparing will move slower than someone studying full time. These are all valid, different situations.
What is consistent across everyone who gets good at DSA is that they went through a period of feeling stuck and they didn't quit. The plateau is part of the path, not a detour from it.
If you've been at it for weeks and feel like nothing is working, that feeling is almost certainly wrong. Something is working. You just can't see it yet.
Yes, and it's more common than people let on. Most learners go through extended plateaus, especially around medium-difficulty problems and topics like dynamic programming and graphs. The people around you who seem to be progressing smoothly are either not telling you about their stuck periods or are further along a journey that looked exactly like yours earlier. Months of struggle followed by a period where things start clicking is a very typical DSA learning arc.
Look at what you're actually doing during your study sessions. If you're spending most of your time watching solutions rather than attempting problems, that's an approach problem. If you always look for hints within the first few minutes, that's an approach problem. If you can solve problems right after studying a topic but forget them a week later, that's an approach problem. If you're genuinely attempting problems, struggling through them, revisiting old ones, and mixing topics, but progress still feels slow, that's just the normal difficulty of DSA and you need to stay patient.
Because it requires a different way of thinking about problems. Most of DSA is about choosing the right data structure or traversal strategy. Dynamic programming asks you to think in terms of states, subproblems, and transitions, which is a mental model most people haven't built before. The difficulty isn't just the concept, it's the shift in how you approach problems entirely. DP takes longer to click than almost any other topic, and hitting a wall there is one of the most universal DSA experiences there is.
It depends on why you're stuck. If you're stuck because the foundations of the current topic aren't solid, moving on will make things harder, not easier. Stay and reinforce. If you've spent a reasonable amount of time on a topic, you understand the concept, but you're struggling to apply it to harder variations, it's okay to move forward and come back later. Sometimes a different topic gives you perspective that makes the earlier one click. The mistake is moving on reflexively every time something gets difficult.
Rarely. Switching resources when stuck feels productive but is usually avoidance. Every resource will hit the same difficult topics eventually. The issue is almost never that you need a better explanation, it's that you need more practice attempts on hard problems. Finish the resource you started. If you've genuinely exhausted it and still feel like something wasn't explained well, then looking at one supplementary resource for that specific topic is fine. But platform hopping as a response to difficulty just resets your progress repeatedly.
For service-based company placements, consistent preparation over 4 to 6 weeks is usually enough. For mid-tier product companies, 2 to 3 months is realistic. For FAANG-level preparation, 4 to 6 months of serious daily practice is the honest answer. These timelines assume you're spending your time well, attempting problems before looking at solutions, revisiting old problems, and mixing topics. If your study habits are passive, the same time will produce much weaker results.
Interview pressure changes how your brain works. The stress of being evaluated activates a different mental state than solo practice, and if you've only ever practiced alone with no time pressure, you haven't trained for that condition. The fix is deliberate exposure. Do timed practice sessions where you treat the problem like an actual interview. Do mock interviews, even uncomfortable ones. Talk through your thinking out loud while you solve problems, even when practicing alone. The more you simulate interview conditions in practice, the less foreign they feel when it counts.
Quality matters far more, but people track quantity because it's easier to measure. Solving 500 problems by peeking at hints early and never revisiting them will leave you less prepared than solving 200 problems with genuine attempts, full implementations from scratch, and regular revision. The number gives you a sense of progress but it's the quality of each session that actually builds skill. Track both, but when they conflict, always prioritize quality.
Ready to master DSA completely?
Want to upskill yourself, crack your next interview, and get your dream job? Join our comprehensive course to dive deeper with high-quality video tutorials, solve interview questions, and a premium community.
Master DSA
Want to upskill yourself, crack your next interview, and get your dream job? Join our comprehensive course.

