DSA শেখা, ধাপে ধাপে¶
ছোট উদাহরণ, স্পষ্ট ছবি আর নিজের হাতে code লিখে Data Structures ও Algorithms শিখুন। ব্যাখ্যা বাংলায়; technical term ও code English-এ।
বাঁ পাশের sidebar-এ অধ্যায় ও পড়ার ক্রম সাজানো আছে। ফোনে ওপরের menu খুললে একই তালিকা পাবেন।
প্রতিটি অধ্যায়ের অনুশীলন তালিকায় বাংলা সমাধানের নোট ও official problem আলাদা link হিসেবে দেওয়া আছে।
ওপরের search-এ বাংলা বা English topic লিখে খুঁজতে পারেন। প্রতিটি পৃষ্ঠার শুরুতে সেই নোটের .md download আছে।
একটি বিষয় শেখার চার ধাপ¶
| ধাপ | কী করবেন | কখন পরের ধাপে যাবেন |
|---|---|---|
| ১. ধারণা | অধ্যায়ের পরিচয় ও ব্যবহার পড়ুন | কোন সমস্যার জন্য structure-টি দরকার বলতে পারলে |
| ২. ছবি | ছোট input নিয়ে প্রতিটি state নিজে আঁকুন | পরের ধাপে কোন মান বা pointer বদলাবে অনুমান করতে পারলে |
| ৩. অনুশীলন | তালিকা থেকে প্রথম problem খুলে নিজে চেষ্টা করুন | example ও edge case দিয়ে code যাচাই করলে |
| ৪. পুনরাবৃত্তি | নোট বন্ধ করে আবার ব্যাখ্যা ও code লিখুন | কোথায় এই কৌশল ব্যবহার করবেন বলতে পারলে |
Graph-এর তীর সম্পর্ক বা চলার দিক বোঝায়; code-এর পাশে দেওয়া table প্রতিটি ধাপের মান দেখায়। বড় diagram ও table ফোনে পাশে scroll করা যায়। শুধু final output মেলালেই শেষ নয়—কেন কাজ করে সেটিও বলুন।
কোথা থেকে শুরু¶
একদম নতুন বা rusty হলে এখান থেকে:
- Math fundamentals — Level 0: Absolute Basics
- প্রথম সম্পূর্ণ lesson: 001 — Even or Odd → 002 — Sum of Digits → 003 — Count Digits
সব chapter (basic → advanced)¶
| # | Chapter | কী শিখবে | Interview-গুরুত্ব |
|---|---|---|---|
| 01 | Math fundamentals | ১৫০ problem-এ math-based programming (১২ level) | Level 0–8 জরুরি |
| 02 | Arrays & Strings | two pointers, sliding window, prefix sum | ⭐ সবচেয়ে জরুরি |
| 03 | Linked List | slow/fast pointer, reversal | ⭐ জরুরি |
| 04 | Stack & Queue | monotonic stack/deque | ⭐ জরুরি |
| 05 | Hashing | frequency, complement (Two Sum) | ⭐ সবচেয়ে জরুরি |
| 06 | Recursion & Backtracking | subsets, permutations, N-Queens | ⭐ জরুরি |
| 07 | Trees | traversal, BST, LCA, diameter | ⭐ জরুরি |
| 08 | Heap / Priority Queue | top-K, two heaps | ⭐ জরুরি |
| 09 | Graphs | BFS, DFS, Dijkstra, topo sort | ⭐ জরুরি |
| 10 | Disjoint Set Union | union-find, cycle, MST | মাঝারি |
| 11 | Segment & Fenwick Tree | range query, point update | CP-বেশি, পরে |
| 12 | Dynamic Programming | state, transition, memo/tabulation | ⭐⭐ #1 filter |
| 13 | Interview Master Problems | cross-topic, mock format | ⭐ শেষ ধাপ |
সহায়ক: note লেখার templates · কীভাবে contribute করবে · এই site কীভাবে চালাবে।
রোজ কীভাবে পড়বে (2–3 ঘণ্টা)¶
- ~40 min theory — একটা topic-এর
concept+visual-explanation। - ~80–110 min solving — আগে নিজে চেষ্টা (২০–৩০ min), তারপর note মেলাও।
- আটকে গেলে ৩০–৩৫ min পর note/editorial → আবার scratch থেকে লেখো → revision list।
- রবিবার = সপ্তাহের ২–৩টা ভুল-করা problem আবার solve।
- নিজের অগ্রগতি আলাদা করে লিখে রাখুন: চেষ্টা করেছি → সমাধান করেছি → সাহায্য ছাড়া আবার পেরেছি। নোট লেখা আছে মানেই আপনি problem solve করেছেন, এমন নয়।
শুরু করুন পড়ার পরিকল্পনা থেকে। সময়ের চেয়ে বোঝার মানকে গুরুত্ব দিন; দরকার হলে একই topic-এ আরও একদিন অনুশীলন করুন।