DSA Tracker

DSA Tracker

A beginner path

Updated 2026-10-21

Learn DSA from scratch

Pick the language you want to use, learn only the language basics DSA needs, then follow a real topic order with runnable examples and practice links.

Step 1: pick a language

The same tools in each language

StructurePythonJavaC++JavaScript
Dynamic arraylistArrayListvectorArray
String buildinglist + str.joinStringBuilderstring / ostringstreamArray + join
Hash mapdictHashMapunordered_mapMap
Hash setsetHashSetunordered_setSet
StacklistArrayDequestackArray
Queuecollections.dequeArrayDequequeueArray + head index
Dequecollections.dequeArrayDequedequeArray
Priority queueheapqPriorityQueuepriority_queueNone built in
Ordered mapNo built-in ordered mapTreeMapmapNone built in
Sortinglist.sort / sortedArrays.sort / List.sortsort / stable_sortArray.sort

Step 2: What to know before starting DSA

These 11 concepts are the language foundation behind the topic path. Open any language page to see real code for each one.

  1. 01Variables and types
  2. 02Conditionals and loops
  3. 03Functions
  4. 04Recursion
  5. 05Arrays and lists
  6. 06Strings
  7. 07Hash maps and sets
  8. 08References and copying
  9. 09Classes or structs
  10. 10Sorting with a custom comparator
  11. 11Reading input

Step 3: the topic order

The same SDE roadmap order appears on every language page.

Step 4: practise and revise

Questions, answered

Which language should I learn DSA in?

Choose a language you can read and write comfortably. Python is concise, JavaScript is practical for web developers, Java gives explicit types and collections, and C++ gives direct control with a large STL. The algorithm matters more than the label.

Do I need to know a language before DSA?

Yes. Learn the language basics used in this page first: values and control flow, functions, collections, copying, simple classes or structs, sorting and input. Then start DSA while continuing to practise the language.

How long before I start DSA?

Start once you can write small programs with loops, functions, arrays or lists, maps and sets. You do not need to finish every language feature before learning your first search, sort or linked list.

Can I switch languages later?

Yes. Keep the same topic order and reimplement a few solved problems in the new language. Compare collection operations and numeric behavior instead of memorising a new roadmap.