Contribution Guide — কীভাবে এই repo-তে note যোগ করবে¶
এই repo মূলত একটা personal learning repository, কিন্তু GitHub-এ publish করার মতো করে সাজানো। তুমি নিজে নতুন note যোগ করবে (বা কেউ contribute করতে চাইলে) — এই guide সেই নিয়মগুলো এক জায়গায় রাখে, যাতে সব note একই রকম মানসম্পন্ন আর legally পরিষ্কার থাকে।
সোনালি নিয়ম¶
প্রতিটা note-এর একটাই লক্ষ্য: কীভাবে ভাবতে হয় শেখানো — শুধু উত্তর দেওয়া নয়। শুধু সংজ্ঞা বা শুধু code যথেষ্ট নয়। ভাবনার পথটা (brute force → কেন slow → optimized intuition → thinking tweak) দেখাতেই হবে।
একটা নতুন problem note যোগ করার ধাপ¶
- ঠিক করো এটা কোন folder-এ। Math problem হলে
01-math-based-programming-fundamentals/<level>/problems/; data-structure problem হলে সেই topic-এরproblems/folder। - Template copy করো।
- Math problem → templates/math-problem-note-template.md (২০টা section)।
- Data-structure problem → templates/ds-problem-note-template.md (২৪টা section)।
- File নাম দাও
NNN-kebab-case-title.mdছাঁচে — যেমন042-ncr-pascal-triangle.md। নম্বরটা সেই folder-এরproblems/README.mdtracker-এর#কলামের সাথে মিলবে। - প্রতিটা section পূরণ করো — কোনো section ফাঁকা বা "TODO" রেখো না। ভাবনাটা যেন প্রতিটা ধাপে দেখা যায়।
- Python code চালিয়ে দেখো — code block-এর সমাধান আসলেই চলে কিনা, অন্তত ২-৩টা test/assert দিয়ে নিশ্চিত করো।
- Tracker update করো — সেই folder-এর
problems/README.md-তে row-এরStatusplanned→done(বা নতুন problem হলে নতুন row যোগ করো)। - Source map update করো — folder-এর
source-map.md-তে কোথা থেকে ধারণা/link নিয়েছ তা যোগ করো (নিচে দেখো)।
লেখার ভাষা ও style¶
- ব্যাখ্যা বাংলায় (বন্ধুসুলভ, তুমি-form), কিন্তু technical term, problem name, platform name, URL, code identifier, table-এর column header English-এ — যেভাবে আসল কাজেও থাকে। যেমন: "এই problem-এ একটা
hash mapলাগবে, কারণ আমরা O(1)-এ lookup চাই।" - সংখ্যা Arabic numeral-এ (1, 2, 3)।
- ছবি দিয়ে বোঝাও — text/ASCII diagram code fence-এর ভেতরে (
```), যাতে alignment ঠিক থাকে। - Code সব Python-এ,
```pythonfence-এ, beginner-friendly ও heavily-commented। - Markdown পরিচ্ছন্ন রাখো: প্রতিটা list-এর আগে আর header-এর পরে একটা ফাঁকা লাইন।
- প্রতিটা note-এ একটা thinking tweak থাকবেই — সেই ছোট্ট মানসিক shift যেটা problem-টা খুলে দেয়।
Legal ও sourcing নিয়ম (বাধ্যতামূলক)¶
বিস্তারিত নীতি: 00-books-and-learning-sources/legal-resource-policy.md। সংক্ষেপে:
- কখনো pirated বই ব্যবহার বা download কোরো না।
- কোনো problem statement বা editorial হুবহু copy কোরো না — সবসময় নিজের ভাষায় নতুন করে লেখো, শুধু attribution-এর জন্য official link রাখো।
- বই copyright-এ থাকলে শুধু recommended reading হিসেবে নাম + কী কাজে লাগে বলো; content paste কোরো না।
- কখনো দাবি কোরো না কোনো problem "Google/Amazon/Microsoft-এ জিজ্ঞেস করা হয়েছিল।** নিরাপদ শব্দ ব্যবহার করো: "common interview pattern", "Google-style pattern", "frequently seen interview pattern"।
- শুধু সেই link দাও যেটার অস্তিত্ব নিয়ে নিশ্চিত (official problem/doc page)। নিশ্চিত না হলে platform-এর নাম + problem নাম + platform-এর root link দাও — কখনো URL বা problem ID বানিয়ে লিখো না।
source-map.md-এর ছাঁচ¶
প্রতিটা folder-এ একটা source-map.md থাকে এই কলামগুলো নিয়ে:
| Concept / Problem | Source Type | Source Name | Link | How it is used | Copying status |
|---|---|---|---|---|---|
Copying status কলামে শুধু এই মানগুলোর একটা বসবে:
original explanation— সম্পূর্ণ নিজের ব্যাখ্যাinspired by source— ধারণা কোনো source থেকে, কিন্তু নিজের ভাষায়rewritten problem— problem নিজের ভাষায় নতুন করে লেখাofficial link only— শুধু attribution-এর link, content নেওয়া হয়নিuser-provided resource— ব্যবহারকারীর দেওয়া material
পূর্ণ ব্যাখ্যা ও উদাহরণ: 00-books-and-learning-sources/source-map-template.md।
Folder-এর গঠন (consistency)¶
Data-structure topic folder-এর সাধারণ গঠন: README.md, concept.md, visual-explanation.md, operations.md/patterns.md, implementation.py, source-map.md, problems/। নতুন topic README লিখতে templates/topic-readme-template.md ব্যবহার করো।
Math level folder-এর গঠন: README.md, concept-notes.md, visualization-ideas.md, source-map.md, problems/।
একটা ছোট checklist (commit করার আগে)¶
- [ ] সঠিক template-এর সব section পূরণ হয়েছে
- [ ] একটা স্পষ্ট thinking tweak আছে
- [ ] Python code চলে, test/assert pass করে
- [ ] কোনো copy-করা statement/editorial নেই, সব নিজের ভাষায়
- [ ] Link গুলো আসল ও official; কোনো বানানো URL নেই
- [ ] "asked by Google/Amazon" দাবি নেই
- [ ] tracker (
problems/README.md) আরsource-map.mdupdate হয়েছে - [ ] Markdown পরিচ্ছন্ন (list/header-এর চারপাশে ফাঁকা লাইন)