Skip to content
article

DSA is not useless for real jobs. Grinding 800 questions without revision is.

Where algorithms actually showed up in my work, where they never did, and why the way most people prepare is the real problem.

Nikhil Sharan@nikhil_twopointers

August 13, 2026 · 3 min read

Every few weeks the same fight starts in my comments. One side says DSA is useless because "real jobs are CRUD". The other side says you are not an engineer if you cannot invert a binary tree on a whiteboard. Both sides are a little right and mostly loud. Let me give the boring answer with examples.

Where DSA showed up in real work

  • A nightly job deduplicating 2 million customer records with List.contains() inside a loop. 40 minutes. Switched to a HashSet: under a minute. That is O(n²) vs O(n), not "premature optimisation".
  • A job scheduler where low priority jobs starved forever. The fix was understanding how the priority queue ordered ties and adding an age factor.
  • Searching sorted log timestamps for an incident window. Binary search over a 30 GB file using byte offsets instead of reading it line by line.
  • A build tool that needed module order from dependencies. Topological sort, plus cycle detection to give a useful error instead of hanging.

Rare? Yes. Maybe a dozen times in my whole career. But each time, the person who knew the basics fixed it in an hour and the person who did not lost a week.

Where it never showed up

Segment trees with lazy propagation. Hard DP on bitmasks. I have never used these at work and I will not pretend otherwise. If your company asks those for a frontend role, the company has a problem, not you.

Why interviews use it anyway

Because it is cheap to evaluate. One interviewer, 45 minutes, a shared editor. Is it a perfect proxy for job performance? No. It is a lossy proxy that companies use because the alternatives are expensive. You can be angry about that, and you should still prepare for it, because at mass hiring scale the online assessment is DSA and you cannot talk your way past an automated test.

Tech With Tim makes the opposite case well in this video: projects and communication matter more than grinding. I agree with about 70% of it. Watch it, it is a good counterweight to people like me.

The real problem: 800 questions, zero retention

I meet students with 800 solved questions who cannot solve a small variation of a question they "did" last month. They did not learn 800 questions. They watched 800 solutions.

What actually works:

  1. Revise on a schedule. Solve on day 1, again on day 3, day 7, day 21. If you cannot do it on day 7 without looking, it goes back to day 1.
  2. Three lines of notes per question. The pattern, the key observation, the bug you made. Not the whole code.
  3. Tag by pattern, not by difficulty. "Sliding window, variable size" is useful. "Medium" is not.
  4. Stop at around 200 done properly and spend the rest of the time on mocks and one real project.

So no, DSA is not useless. Treating it like a number to grow on your profile is.

If you disagree, good, tell me where. But share the dry run, not the opinion.

Written by

Nikhil Sharan

I teach DSA and system design on YouTube (Two Pointers, 1.2M). Ex-SDE at two product companies, now teaching full time. Dry run everything. No paid course here, only free stuff and honest opinions.

Get the best of #desi_devs weekly

One email each Monday with the most useful posts. No spam; unsubscribe in one click.

Comments

19

Sign in to join the conversation.

Sign in to comment
Ankit Khurana@faang_or_bust#2 in Desi Devs
lol a youtuber saying DSA matters. shocking. this is content, not engineering
4 net votes
Kunal Bhatia@kunal_dsa#4 in Desi Devs
He literally wrote where it does NOT matter in the same post. Did you read past the title?
2 net votes
Ankit Khurana@faang_or_bust#2 in Desi Devs
read it. still content. real engineers dont need a 2000 word essay to justify a hashmap
5 net votes
Nikhil Sharan@nikhil_twopointers#3 in Desi Devs
Fair, the hashmap part is obvious to you. It was not obvious to the team that ran a 40 minute nightly job on List.contains(). Share the dry run, not the opinion 🙂
1 net votes
Ryan Goh@ai_maxi_ryan3 rep in Desi Devs
respectfully this whole debate is so 2023. cursor writes the BFS. your job is to prompt and review. leetcode is dead, learn prompting 🚀🤖
2 net votes
Danny Cho@danny_cho_la3 rep in Desi Devs
Reviewing a BFS you can't write is how you approve the one that never marks nodes as visited. I've watched an AI-generated retry loop take down a payments path. Knowing the basics is what makes review possible.
6 net votes
Ryan Goh@ai_maxi_ryan3 rep in Desi Devs
so dramatic for what. just add a test lah
2 net votes
Danny Cho@danny_cho_la3 rep in Desi Devs
The test was also generated. It asserted that the function returned. 🙃
5 net votes
Omkar Joshi@omkar_java#8 in Desi Devs
Service company dev here (yes faang bhai, a "resource"). Last year I replaced a nested loop reconciliation between two 1.5M row files with sort + two pointer merge. 3 hours down to 4 minutes. Client renewed the contract. DSA is not useless, it is just invisible when it works.
2 net votes
Ankit Khurana@faang_or_bust#2 in Desi Devs
two pointer merge on a sorted file is a first year lab exercise. congrats on the renewal i guess. must be a big day at the body shop
-5 net votes
Rohit Verma@rohit_codes#1 in Desi Devs
faang bhai, "first year lab exercise" jo 3 ghante bachaye, woh production mein kisi ne nahi kiya tha. that is the point. omkar ne kiya. respect karo 🙏
6 net votes
Kenji Tanabe@kenjitanabe3 rep in Desi Devs
Nine years at a large company. I needed real algorithm knowledge maybe a dozen times, and each time it mattered a lot: a consistent hashing bug, a priority queue starving low-priority jobs, an O(n^2) diff in a config tool. Rare but high stakes. That's a reasonable thing to test for, even if we test for it badly.
4 net votes
Dana Kowalski@dana_ml1 rep in Desi Devs
The interview is a lossy proxy. Everyone in this thread is arguing about how lossy. That's the actual disagreement, and nobody has data.
4 net votes
Sam Whitaker@segfault_sam3 rep in Desi Devs
DSA is useful. I use binary search every time I git bisect which commit broke prod. which is weekly.
4 net votes
Nikhil Sharan@nikhil_twopointers#3 in Desi Devs
git bisect is the most practical binary search in the industry. Fully agree 😄
3 net votes
Harmanpreet Singh@harman_devops4 rep in Desi Devs
Late to this but the revision schedule (1, 3, 7, 21) is what fixed it for me. Did 500 questions and cleared zero OAs. Then did 220 with revision and cleared 3. Same brain.
1 net votes
박지우@jiwoo_front2 rep in Desi Devs
in Korea also same debate. my company test was algorithm, my daily job is fixing re-renders... both are true I think
1 net votes
Sneha Kulkarni@laidoff_not_out#5 in Desi Devs
reading this 5 days after getting laid off, starting DSA again after 6 yrs of react. the 1-3-7-21 thing is going on my wall. also faang_or_bust, you are being weirdly mean in this thread for someone who answered my DM so nicely yesterday
-1 net votes
Ankit Khurana@faang_or_bust#2 in Desi Devs
that was different. you asked a real question. ok fine the revision schedule part is correct
8 net votes