মূল কনটেন্টে যান
🧩
লোকাল DSA

নিয়ম — লোকাল কোম্পানির DSA

৪০ দিন · টপিক ১–৫ · ৩০টা প্রবলেম · তারপর থামা

লক্ষ্য

৪০ দিনে dsa_prep workbook-এর টপিক ১–৫ থেকে ৩০টা প্রবলেম নিজে হাতে, প্রতিটা ঝালাইসহ — তারপর নতুন প্রবলেম নয়।

বাংলাদেশি কোম্পানিতে DSA দিয়ে জেতা যায় না, শুধু বাদ পড়া এড়ানো যায়। একটা রাউন্ড, প্রায়ই সহজ, আর সেটা পার হলেই আসল আলোচনা শুরু হয় প্রজেক্ট, framework আর কাজের অভিজ্ঞতা নিয়ে। তাই মাপকাঠি ৯১টা নয়, ৩০টা। ৩০টা শেষ মানে এই পথ ১০০% শেষ, বাকিগুলো বাকি থাকা নয়। 🧠 (Pareto · Goals)

সত্যের উৎস

এই plan নতুন কোনো লক্ষ্য বা সংখ্যা যোগ করে না। তথ্য বদলালে এই ক্রমে:

  1. legacy_and_wisdom/docs/ASSUMPTIONS.md
  2. brainstorming/dsa-prep-how-many-paths.md, dsa-prep-what-works-for-local.md, dsa-prep-what-to-ignore-for-local.md, how-to-prepare-for-dsa.md
  3. switch_local_company_in_6_month/ — ঐ plan-এর দিন ০০৮–০৪৭-এর ৩০′ DSA-র ঘর এই সাইটের দিন ০০১–০৪০
  4. এই ফোল্ডার — docs/ (দিন) আর patterns/ (dsa_prep workbook-এর টপিক ১–৫, হুবহু)

রিমোট আর গ্লোবালের পথ আলাদা সাইটে: dsa_prep_remote_company, dsa_prep_global_company। এখন ওদিকে তাকাবেন না।

কীভাবে পড়বেন

  • ৪০ দিন, ৩টা ব্লক। প্রতিটা দিনে কয়েকটা - [ ] কাজ, আর শেষে দিন শেষে প্রশ্ন — হ্যাঁ/না।
  • ৩০′ = মিনিট।
  • (LC 1 · ১.৪ Hashing) = LeetCode-এর নম্বর আর প্যাটার্ন। কাজের নিচে LeetCode আর প্যাটার্নের পাতার লিংক, আর দুই ঘরের নোট।
  • ব্লক ৩-এ (LC 49) — প্যাটার্ন লেখা নেই, ইচ্ছাকৃত। আগে নিজে নাম বলুন; প্যাটার্নের লিংক টিক দেওয়ার পরে দেখায়। 🧠 (Interleaving)
  • 🧠 (নাম) = কাজটা learning_to_learn-এর কোন নীতি থেকে; chip চাপলে এক লাইনে কেন।
  • 🔁 = এই কাজ শেষ করার দিন থেকে ১, ৩, ৭, ২১ দিন পরে না দেখে আবার। তারিখ সাইট নিজে হিসাব করে।
  • ⚑ = মাইলফলক। নির্ধারিত দিনে না হলে শেষ না হওয়া পর্যন্ত হোমে থাকে।

"আজ" মানে ক্যালেন্ডারের আজ

ফাইলে তারিখ নেই, শুধু দিনের নম্বর। প্রথমবার সাইট খুললে শুরুর তারিখ জিজ্ঞেস করে — প্রস্তাব ২০২৬-০৯-২১, যাতে ৬ মাসের plan-এর দিন ০০৮-এর সাথে মেলে। তারপর থেকে দিন = শুরু থেকে কত দিন।

  • plan পেছায় না। কাল বাদ পড়লে আজ আজকের প্রবলেম, দুটো নয়।
  • বাদ পড়া প্রবলেম ফেরে না, কিন্তু ব্লক ৩-এর পরে ঝালাইয়ের ফাঁকা দিনে একটা ধরতে পারেন।
  • ঘুম কেটে পূরণ নয়। 🧠 (Sleep)
  • যেদিন interview, সেদিন interview-ই কাজ। রাতে ৫ লাইনের নোট।

সপ্তাহের ছন্দ

৬ মাসের plan-এর সপ্তাহে ৭ ঘণ্টার মধ্যেই — এই সাইট তার ৩০′ DSA-র ঘর আর রোজকার ১৫′ ইংরেজি-র DSA অংশটুকু।

দিনএই সাইটের কাজসময়
সোম–শুক্রনতুন প্রবলেম ১টা · ইংরেজিতে approach৩০′ + (১৫′ ইংরেজির ভেতরে)
শনিসপ্তাহের ৫টা না দেখে — শুধু pattern আর এক লাইন · জমে থাকা ঝালাই১৫′
রবি"যে সমস্যা হয়েছিল" ঘরগুলো পাশাপাশি — পরের সপ্তাহের দুর্বলতা১০′ (সপ্তাহের হিসাবের ভেতরে)

প্রতিদিনের 🔁 ঝালাই আলাদা — হোমে আসে, প্রতিটা ১৫′-এর বেশি নয়। অনেক জমলে কঠিনগুলো আগে। 🧠 (System vs goal · It pays to be not busy)

কখন বসবেন

৬ মাসের plan-এর 00-rules.md-এ "কখন বসবেন ⏳" — যে সময়ে মাথা সবচেয়ে ভালো চলে, নতুন প্রবলেম তখন; সংকেত ইচ্ছাশক্তির উপর নয়। 🧠 (Productivity time · Habits revisited · Energy saving with habits)


DSA-র বসা — ৩০′

  1. বসার আগে এক লাইন: আজ কোন দুর্বলতায় কাজ — আগের রবিবারের নোট থেকে। 🧠 (Deliberate practice revisited)
  2. টাইমার ৩০′, ফোন অন্য ঘরে। 🧠 (Have an endpoint · Deep work)
  3. প্রবলেম পড়ে আগে pattern-এর নাম বলুন, জোরে — তারপর প্যাটার্নের পাতার "চিনবেন কীভাবে"-র সাথে মেলান। demo খুলবেন না। 🧠 (Test yourself)
  4. প্রথমে সহজ সমাধান আর তার complexity মুখে, তারপর ভালোটা। কোড JavaScript-এ — interview-তেও ঐ ভাষা। 🧠 (Everything is a game)
  5. ১০ মিনিট আটকালে উঠে হাঁটুন, ফোন ছাড়া। ২০ মিনিটে না হলে demo খুলুন — পড়ে বন্ধ করে নিজে আবার লিখুন। 🧠 (Focus vs Diffuse · Efficiency trumps grit)
  6. সমাধানের পরে এক মিনিট: আরেকভাবে হয়? 🧠 (Einstellung)
  7. নোটের দুই ঘর — "আমার সমাধান" মূল আইডিয়া ২–৩ লাইনে, ইংরেজিতে; "যে সমস্যা হয়েছিল" কোন trap-এ। পুরো কোড নয়। 🧠 (Feedback · Concepts vs Facts)
  8. টিক দিন — ঝালাই নিজে থেকে আসবে।

demo দেখে লিখেছেন? লজ্জার কিছু নেই। কিন্তু পরের দিনের ঝালাইয়ে ফাঁকা পাতায় নিজে লিখতে হবে। দেখা ঠিক আছে; আবার না করাটা ঠিক নয়। 🧠 (Failures don't count · Active learning)

ঝালাই

  • 🔁 কাজে টিক দিলে ঐ আসল তারিখ থেকে ১ → ৩ → ৭ → ২১ দিন। 🧠 (Spaced repetition revisited)
  • ঝালাইয়ের বসা: প্রবলেমের নাম দেখে ফাঁকা পাতায় — আগে pattern, তারপর কোড। নোট বন্ধ, ১৫′-এর বেশি নয়।
  • দুটো উত্তর: মনে ছিল (পরের ধাপে) বা আটকে গেছি (আবার ১ দিনে)। আটকে যাওয়া শাস্তি নয়, তথ্য।
  • ২১ দিনের ধাপ পার হলে ঝালাই শেষ — ওটা এখন স্থির।

প্যাটার্নের পাতা

প্রতিটা প্যাটার্নে তিনটা অংশ, এই ক্রমে:

  1. চিনবেন কীভাবে — ক্লু। এটাই workbook-এর সবচেয়ে দামি জিনিস, আগে এটা।
  2. Demo — ভাঁজ করা। আটকালে তবে খুলুন।
  3. প্রবলেম — plan-এ যেগুলো আছে তার পাশে দিনের লিংক। বাকিগুলো এই পথের জন্য দরকার নেই।

প্যাটার্নের পাতা রেফারেন্স — রোজ শুরু "আজ" থেকে। 🧠 (Trunk based knowledge · Chunking)


learning_to_learn — কোনটা কোথায়

পাঁচটা ডকের প্রতিটা বিষয় এই plan-এর কোথাও বসানো আছে; কাজের নিচের 🧠 chip দেখায় কোনটা।

ডকএই plan-এ যেভাবে
PrinciplePareto — ৩০টায় থামা। Learning vs Winning — সীমার একটু বাইরের প্রবলেম। The obstacle, Failures don't count — "যে সমস্যা হয়েছিল" ঘর। It's all in the frame, Choice vs Chore — রবিবারের হিসাবের ভাষা। Compound learning — দিনে একটা। The dip — সপ্তাহ ৪–৫। Productivity time — কখন বসবেন। Skill stacking — ইংরেজিতে approach। What is success?, Happiness factors, Self learning paradigm — থামার দিনে।
Lies10,000 hours rule — সংখ্যা নয়, deliberate practice। Follow your passion — ভালো লাগার অপেক্ষা নয়। You can avoid risk — "প্রস্তুত হয়ে interview" নয়। Trust this one person — একটা তালিকার অন্ধ অনুসরণ নয়, Must-do ট্যাগও নয়।
PillarsFeynman — ৩ লাইনে ইংরেজিতে। Trunk based knowledge — প্রবলেম নয়, প্যাটার্ন। Efficiency trumps grit — ২০ মিনিটে demo। Everything is a game — interview-এর নিয়ম।
ScienceFocus vs Diffuse, Be bored — আটকালে হাঁটা। Sleep। Feedback — সাথে সাথে নোট। Procrastination, Motivation — শুধু প্রথম লাইন। Long and short memory — পাতায় শুধু আজ। Active learning — পড়া নয়, লেখা। Goals। It pays to be not busy — শনি-রবি হালকা। Chunking — শনিবারের এক পাতা। Deliberate practice। Spaced repetition। Energy saving with habits — plan আগে থেকে লেখা। Be adventurous — ব্লক ৩-এ অচেনা ধরনে। Have an endpoint — টাইমার। Brain training — puzzle অ্যাপ নয়।
TechniquesPomodoro, Deep work, Parkinson's law — ৩০′। Chunk the subject — দিনে একটা। Spaced repetition revisited — ঝালাই। Deliberate practice revisited — বসার আগের লাইন। Create a roadmap — এই সাইট। Interleaving — ব্লক ৩। Einstellung — "আরেকভাবে হয়?"। Community, Stakes & Rewards — একজনকে তারিখ বলা। Habits revisited — সংকেত। System vs goal — সোম–শুক্র একটা। The power of senses — কাগজে আঁকা, জোরে বলা। Method of loci — ব্লক ২-এর শেষে প্যাটার্নের ঘর। Pareto principle revisited। Concepts vs Facts — নোটে concept। Test yourself — demo বন্ধ। The first 20 hours — প্রথম সপ্তাহের বিচ্ছিরি লাগা।

যা উপেক্ষা করবেন

  • 🔥 Must-do ট্যাগ — FAANG-এর frequency থেকে; লোকালের জন্য ভুল ছাঁকনি। এই সাইটে দেখায়ই না। 🧠 (Trust this one person)
  • ⚪ Bonus আর plan-এর বাইরের প্রবলেম — coverage এখন শত্রু।
  • Simulation — এই সাইটে নেই। animation দেখে "বুঝেছি" লাগে, হাত চলে না।
  • Constraint-reading টেবিল — লোকাল interview-তে প্রায় আসে না।
  • টপিক ৬–১০ — Heaps, Backtracking, Graphs, DP, Greedy/Trie। ঋণ নয়, মজুদ।

যা করবেন না

  • ৩০টার পরে নতুন প্রবলেম নয়। "আর একটু" — ঐ একটুতেই আবেদনের সময় যায়। 🧠 (10,000 hours rule)
  • চেষ্টার আগে demo নয়।
  • দুই পথ একসাথে নয়। রিমোটের প্রস্তুতি প্রথম চাকরি বদলের পরে।
  • DSA শেষের অপেক্ষায় আবেদন আটকে রাখা নয়। দুটো সমান্তরাল। 🧠 (You can avoid risk)
  • এই সাইটে নতুন ফিচার নয়। ইচ্ছে হলে এক লাইনে লিখে রাখুন, বানাবেন না।

দিন ৪০-এর পরে

  • ৬ মাসের plan-এর সোম–শুক্রের ৩০′ = এই সাইটের আজকের ঝালাই। ঝালাই ফাঁকা থাকলে ৩০টার একটা এলোমেলো প্রবলেম ফাঁকা পাতায়।
  • live coding রাউন্ডের অনুশীলন (৬ মাসের plan-এর ব্লক ৫) — এই ৩০টাই, জোরে, ইংরেজিতে।
  • চাকরি বদলের পরে — dsa_prep_remote_company। ঐ পথের ব্লক ১ এই ৩০টা দিয়েই শুরু, ঘড়ি ধরে।