Skip to content

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 যোগ করার ধাপ

  1. ঠিক করো এটা কোন folder-এ। Math problem হলে 01-math-based-programming-fundamentals/<level>/problems/; data-structure problem হলে সেই topic-এর problems/ folder।
  2. Template copy করো।
  3. Math problem → templates/math-problem-note-template.md (২০টা section)।
  4. Data-structure problem → templates/ds-problem-note-template.md (২৪টা section)।
  5. File নাম দাও NNN-kebab-case-title.md ছাঁচে — যেমন 042-ncr-pascal-triangle.md। নম্বরটা সেই folder-এর problems/README.md tracker-এর # কলামের সাথে মিলবে।
  6. প্রতিটা section পূরণ করো — কোনো section ফাঁকা বা "TODO" রেখো না। ভাবনাটা যেন প্রতিটা ধাপে দেখা যায়।
  7. Python code চালিয়ে দেখো — code block-এর সমাধান আসলেই চলে কিনা, অন্তত ২-৩টা test/assert দিয়ে নিশ্চিত করো।
  8. Tracker update করো — সেই folder-এর problems/README.md-তে row-এর Status planneddone (বা নতুন problem হলে নতুন row যোগ করো)।
  9. 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-এ, ```python fence-এ, beginner-friendly ও heavily-commented।
  • Markdown পরিচ্ছন্ন রাখো: প্রতিটা list-এর আগে আর header-এর পরে একটা ফাঁকা লাইন।
  • প্রতিটা note-এ একটা thinking tweak থাকবেই — সেই ছোট্ট মানসিক shift যেটা problem-টা খুলে দেয়।

বিস্তারিত নীতি: 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.md update হয়েছে
  • [ ] Markdown পরিচ্ছন্ন (list/header-এর চারপাশে ফাঁকা লাইন)