# 00 — Books and Learning Sources (সব শেখার legal উৎস এক জায়গায়)

এই folder পুরো repo-র "কোথা থেকে শিখব" map। DSA শিখতে গিয়ে প্রায় সবাই একটা সমস্যায় পড়ে — "এত বই, এত website, এত YouTube, শুরু করব কোনটা দিয়ে?" এই folder সেই প্রশ্নের একটা curated, legal উত্তর। এখানে প্রতিটা resource হয় open-access, নাহয় official platform; কোনো pirated PDF বা চুরি করা link এখানে নেই।

## এই section-টা আসলে কী

এটা তিনটা জিনিস একসাথে:

- একটা **সাজানো তালিকা** — কোন free বই, কোন online judge, কোন university course আর কোন interview resource ঠিক কোন কাজে লাগে।
- একটা **legal boundary** — কী ব্যবহার করা যাবে আর কীভাবে credit দিতে হবে, তার পুরো নিয়ম [legal-resource-policy.md](./legal-resource-policy.md)-তে।
- তোমার **decision-saver** — "এখন কী পড়ব" প্রতিবার ভাবতে হবে না; phase ধরে আগেই বলে দেওয়া আছে।

**জরুরি:** যেকোনো resource পড়া বা ব্যবহার করার আগে একবার [legal-resource-policy.md](./legal-resource-policy.md) পড়ে নাও। ওটাই এই repo-র copyright আর sourcing-এর মূল নিয়ম, আর বাকি সব file ওটার উপর দাঁড়িয়ে আছে।

## তুমি কীভাবে resource বাছবে (ডুবে না গিয়ে)

তোমার profile মাথায় রেখে: basics একটু rusty, দিনে 2-3 ঘন্টা, লক্ষ্য ~4 মাসে Amazon/Google-style interview-ready হওয়া, ভাষা Python। এই profile-এ নিয়মগুলো সোজা:

- একসাথে **একটার বেশি "main" বই ধরবে না।** একটা topic = একটাই primary source; বাকিগুলো শুধু আটকে গেলে উঁকি দেওয়ার জন্য।
- **Interview-first ভাবো।** সময় কম, তাই pattern আর problem-solving আগে; CP depth (segment tree, flows, string algorithms) পরে — offer পাওয়ার পরে।
- প্রতিটা resource-এর পাশে নিচের file-গুলোতে লেখা আছে **কতটুকু পড়বে আর কী skip করবে।** সেই skip-list মেনে চললেই অকারণে ডুববে না।
- হাতে যেটা আছে সেটা **শেষ করো,** নতুন "better" resource খোঁজা বন্ধ করো — resource hopping-ই সবচেয়ে বড় সময় নষ্ট।

## দিনের 2-3 ঘন্টা মোটামুটি যেভাবে ভাগ হবে

- ~40 মিনিট theory — একটা topic, এই folder-এর recommend করা primary source থেকে।
- ~80-110 মিনিট solving — বেশিরভাগ দিন LeetCode/CSES, সপ্তাহে একটা Codeforces Div 3/4 শুধু speed-এর জন্য।
- পুরো 17-সপ্তাহের sequence চাইলে দেখো [STUDY-PLAN.md](../STUDY-PLAN.md) আর এই folder-এর [book-reading-order.md](./book-reading-order.md)।

## তোমার জন্য top 5 free resource

পুরো তালিকায় ডোবার আগে — এই 5টা ধরলেই কাজের 80% হয়ে যায়:

1. **Competitive Programmer's Handbook (Antti Laaksonen)** — <https://cses.fi/book/book.pdf> — একটাই free বইয়ে algorithm আর দরকারি math, পরিষ্কার ভাষায়; license CC BY-NC-SA।
2. **NeetCode** — <https://neetcode.io/roadmap> — interview pattern শেখার সবচেয়ে সাজানো free roadmap + video; এটাই তোমার দৈনিক practice-এর মেরুদণ্ড।
3. **USACO Guide** — <https://usaco.guide/> — Bronze → Platinum structured path; কোন topic কোন order-এ আসবে সেটা পরিষ্কার করে দেয়।
4. **CP-Algorithms** — <https://cp-algorithms.com/> — algorithm-এর free encyclopedia; কোনো technique-এর exact form দরকার হলে এখানে আসবে।
5. **Algorithms (Jeff Erickson)** — <https://jeffe.cs.illinois.edu/teaching/algorithms/> — recursion, DP আর graph-এর গভীর, intuition-গড়া free বই।

## পুরো verified free তালিকা (reference)

Top 5-এর বাইরেও এই repo যেগুলো ব্যবহার করে, সবই free / legal:

- **Open Data Structures (Pat Morin)** — <https://opendatastructures.org/> — data structure, implementation সহ।
- **MIT 6.006 Introduction to Algorithms (2020)** — <https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/> — core algorithm lecture + note।
- **Mathematics for Computer Science (MIT 6.042J)** — <https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-science-spring-2015/> — DSA-র math ভিত।
- **Discrete Mathematics: An Open Introduction (Levin)** — <https://discrete.openmathbooks.org/> — gentle discrete math।
- **Runestone pythonds3** — <https://runestone.academy/ns/books/published/pythonds3/index.html> — interactive Python DS / algo।
- **Hello Algo (English)** — <https://www.hello-algo.com/en/> — animated illustration।
- **VisuAlgo** — <https://visualgo.net/en> — algorithm visualization।
- **Tech Interview Handbook** — <https://www.techinterviewhandbook.org/> — interview + behavioral prep।
- **Python official docs** — <https://docs.python.org/3/> — ভাষার reference।

প্রতিটার পুরো ব্যবহার-নির্দেশ (কতটুকু পড়বে, কী skip করবে) পরের file-গুলোতে আছে।

## এই folder-এর বাকি file-গুলো

- [legal-resource-policy.md](./legal-resource-policy.md) — copyright আর sourcing-এর নিয়ম। **সবার আগে এটা।**
- [book-reading-order.md](./book-reading-order.md) — beginner → advanced, phase ধরে কোন বই কখন।
- [online-judge-sources.md](./online-judge-sources.md) — Codeforces, LeetCode, CSES ইত্যাদি কোনটা কীসের জন্য, আর সাপ্তাহিক practice mix।
- [interview-problem-sources.md](./interview-problem-sources.md) — NeetCode, Tech Interview Handbook আর pattern → repo chapter map।
- [university-course-sources.md](./university-course-sources.md) — MIT, UIUC-র free course material।
- [source-map-template.md](./source-map-template.md) — প্রতিটা folder-এর source-map.md যে template মেনে চলবে।

## এই source-গুলো repo-তে কীভাবে ব্যবহার হয়

এই repo-র সব লেখা নিজের ভাষায়, scratch থেকে তৈরি। বাইরের কোনো source থেকে idea নিলে সেটার official link প্রতিটা folder-এর `source-map.md`-তে লেখা থাকে, সাথে কীভাবে ব্যবহার হয়েছে তাও। মানে — তুমি নিশ্চিন্তে শিখতে পারো, কারণ এখানে copyright-এর কোনো গোলমাল নেই, আর প্রতিটা দাবি যাচাই করার মতো link দেওয়া আছে।

## যে ভুলগুলো এড়াবে

- **Resource hopping** — তিন দিন পরপর নতুন course ধরা। একটা শেষ করো, তারপর পরেরটা।
- **শুধু পড়া, solve না করা** — video দেখা সহজ, কিন্তু শেখা হয় হাতে problem solve করলে; 70% সময় solving-এ।
- **সব একসাথে শেখা** — segment tree আর string hashing এখন তোমার দরকার নেই; 4-মাসের skip-list মানো।
- **Pirated PDF খোঁজা** — দরকার নেই; উপরের সব free resource-ই যথেষ্ট, আর legal।

## শুরুটা ঠিক এভাবে করো

1. [legal-resource-policy.md](./legal-resource-policy.md) একবার পড়ে নাও — 5 মিনিট লাগবে।
2. [book-reading-order.md](./book-reading-order.md) খুলে দেখো তুমি এখন কোন phase-এ।
3. উপরের top 5 থেকে তোমার phase-এর primary resource-টা ঠিক করো।
4. একটা online judge-এ account খোলো ([online-judge-sources.md](./online-judge-sources.md) দেখে), আর আজই প্রথম problem-টা solve করো।

## এক লাইনে মনে রাখার কথা

Free resource-এর অভাব নেই — অভাব হলো নিয়ম করে শেষ করার। কম resource, বেশি practice, আর সব কিছু নিজের ভাষায় লিখে রাখা — এটাই এই repo-র পুরো দর্শন।
