Summary

Ashish Pratap Singh’s guide to efficiently learning DSA for technical interviews (Amazon, Google, Microsoft). Key approach: focus on core topics in order of difficulty, learn one topic at a time, implement from scratch with pen-and-paper visualization, then practice problems systematically with a spaced-repetition revision strategy.

Ashish Pratap Singh 關於高效學習 DSA 以應對技術面試的指南。核心方法:按難度順序聚焦核心主題、一次學一個主題、從頭實現並用紙筆可視化,再系統地練習題目,配合間隔重複複習策略。

Key Points

  • Start with linear data structures (arrays, linked lists, stacks, queues) before trees, heaps, graphs
  • For each topic: learn representation + operations + complexities → real-world applications → pen/paper visualization → implement from scratch → solve problems
  • Learn one topic at a time to avoid overwhelm and confusion
  • Avoid advanced-but-rarely-asked topics early (Segment Trees, Fenwick Trees)
  • Revision strategy needed to prevent forgetting solved problems

Insights

The “implement from scratch” principle is what separates understanding from familiarity. Most LeetCode grinders can recognize patterns but fail to implement a hash map or AVL tree under pressure because they’ve only used library implementations. The “pen and paper” practice is separately important: drawing pointer diagrams for linked list operations builds intuition that code-only practice doesn’t. The meta-point about having spent “thousands of hours on things that didn’t really help” is valuable: breadth-first problem-solving (jumping between topics) is far less effective than deep, topic-by-topic mastery.

Connections

Raw Excerpt

I tried everything from books, courses (both free and paid ones), and spent thousands of hours solving LeetCode problems. Looking back, I realized I spent a lot of time on things that didn’t really help me get better at DSA.