20 KiB
ডেটা সায়েন্স ফর বিগিনার্স-এ অবদান রাখুন
ডেটা সায়েন্স ফর বিগিনার্স কারিকুলামে অবদান রাখার প্রতি আপনার আগ্রহের জন্য ধন্যবাদ! আমরা কমিউনিটির কাছ থেকে অবদানকে স্বাগত জানাই।
বিষয়সূচি
- কোড অফ কন্ডাক্ট
- কিভাবে অবদান রাখতে পারেন?
- শুরু করার ধাপ
- অবদান রাখার নির্দেশিকা
- পুল রিকোয়েস্ট প্রক্রিয়া
- স্টাইল নির্দেশিকা
- কন্ট্রিবিউটর লাইসেন্স এগ্রিমেন্ট
কোড অফ কন্ডাক্ট
এই প্রকল্পটি Microsoft Open Source Code of Conduct গ্রহণ করেছে।
আরও তথ্যের জন্য Code of Conduct FAQ দেখুন অথবা opencode@microsoft.com-এ অতিরিক্ত প্রশ্ন বা মন্তব্য পাঠান।
কিভাবে অবদান রাখতে পারেন?
বাগ রিপোর্ট করা
বাগ রিপোর্ট তৈরি করার আগে, বিদ্যমান ইস্যুগুলি পরীক্ষা করুন যাতে ডুপ্লিকেট এড়ানো যায়। বাগ রিপোর্ট তৈরি করার সময়, যতটা সম্ভব বিস্তারিত তথ্য অন্তর্ভুক্ত করুন:
- স্পষ্ট এবং বর্ণনামূলক শিরোনাম ব্যবহার করুন
- সমস্যাটি পুনরায় তৈরি করার সঠিক ধাপগুলি বর্ণনা করুন
- নির্দিষ্ট উদাহরণ দিন (কোড স্নিপেট, স্ক্রিনশট)
- আপনার পর্যবেক্ষণকৃত আচরণ এবং প্রত্যাশিত আচরণ বর্ণনা করুন
- আপনার পরিবেশের বিবরণ অন্তর্ভুক্ত করুন (OS, Python সংস্করণ, ব্রাউজার)
উন্নয়নের প্রস্তাবনা
উন্নয়নের প্রস্তাবনা স্বাগত! উন্নয়নের প্রস্তাবনা দেওয়ার সময়:
- স্পষ্ট এবং বর্ণনামূলক শিরোনাম ব্যবহার করুন
- প্রস্তাবিত উন্নয়নের বিস্তারিত বিবরণ দিন
- এই উন্নয়নটি কেন দরকারী হবে তা ব্যাখ্যা করুন
- অন্যান্য প্রকল্পে অনুরূপ বৈশিষ্ট্যগুলির তালিকা দিন, যদি প্রযোজ্য হয়
ডকুমেন্টেশনে অবদান রাখা
ডকুমেন্টেশন উন্নয়ন সবসময় প্রশংসিত হয়:
- টাইপো এবং ব্যাকরণগত ত্রুটি সংশোধন করুন
- ব্যাখ্যার স্পষ্টতা উন্নত করুন
- অনুপস্থিত ডকুমেন্টেশন যোগ করুন
- পুরানো তথ্য আপডেট করুন
- উদাহরণ বা ব্যবহার কেস যোগ করুন
কোডে অবদান রাখা
আমরা কোড অবদানকে স্বাগত জানাই, যার মধ্যে রয়েছে:
- নতুন পাঠ বা অনুশীলন
- বাগ সংশোধন
- বিদ্যমান নোটবুকের উন্নতি
- নতুন ডেটাসেট বা উদাহরণ
- কুইজ অ্যাপ্লিকেশনের উন্নয়ন
শুরু করার ধাপ
প্রয়োজনীয়তা
অবদান রাখার আগে নিশ্চিত করুন যে আপনার কাছে রয়েছে:
- একটি GitHub অ্যাকাউন্ট
- আপনার সিস্টেমে Git ইনস্টল করা
- Python 3.7+ এবং Jupyter ইনস্টল করা
- Node.js এবং npm (কুইজ অ্যাপ অবদানের জন্য)
- কারিকুলামের কাঠামোর সাথে পরিচিতি
বিস্তারিত সেটআপ নির্দেশনার জন্য INSTALLATION.md দেখুন।
ফর্ক এবং ক্লোন
- GitHub-এ রিপোজিটরি ফর্ক করুন
- আপনার ফর্ক লোকাল ক্লোন করুন:
git clone https://github.com/YOUR-USERNAME/Data-Science-For-Beginners.git cd Data-Science-For-Beginners - আপস্ট্রিম রিমোট যোগ করুন:
git remote add upstream https://github.com/microsoft/Data-Science-For-Beginners.git
একটি ব্রাঞ্চ তৈরি করুন
আপনার কাজের জন্য একটি নতুন ব্রাঞ্চ তৈরি করুন:
git checkout -b feature/your-feature-name
# or
git checkout -b fix/your-bug-fix
ব্রাঞ্চ নামকরণের নিয়ম:
feature/- নতুন বৈশিষ্ট্য বা পাঠfix/- বাগ সংশোধনdocs/- ডকুমেন্টেশন পরিবর্তনrefactor/- কোড পুনর্গঠন
অবদান রাখার নির্দেশিকা
পাঠের বিষয়বস্তু জন্য
পাঠ যোগ করার সময় বা বিদ্যমান পাঠ সংশোধন করার সময়:
-
বিদ্যমান কাঠামো অনুসরণ করুন:
- README.md পাঠের বিষয়বস্তু সহ
- Jupyter নোটবুক অনুশীলন সহ
- অ্যাসাইনমেন্ট (যদি প্রযোজ্য হয়)
- প্রি এবং পোস্ট কুইজের লিঙ্ক
-
এই উপাদানগুলি অন্তর্ভুক্ত করুন:
- স্পষ্ট শিক্ষার উদ্দেশ্য
- ধাপে ধাপে ব্যাখ্যা
- মন্তব্য সহ কোড উদাহরণ
- অনুশীলনের জন্য অনুশীলন
- অতিরিক্ত সম্পদের লিঙ্ক
-
অ্যাক্সেসিবিলিটি নিশ্চিত করুন:
- স্পষ্ট, সহজ ভাষা ব্যবহার করুন
- ছবির জন্য alt টেক্সট প্রদান করুন
- কোড মন্তব্য অন্তর্ভুক্ত করুন
- বিভিন্ন শিক্ষার শৈলী বিবেচনা করুন
Jupyter নোটবুকের জন্য
-
কমিট করার আগে সমস্ত আউটপুট পরিষ্কার করুন:
jupyter nbconvert --clear-output --inplace notebook.ipynb -
ব্যাখ্যা সহ markdown সেল অন্তর্ভুক্ত করুন
-
সঙ্গতিপূর্ণ ফরম্যাটিং ব্যবহার করুন:
# Import libraries at the top import pandas as pd import numpy as np import matplotlib.pyplot as plt # Use meaningful variable names # Add comments for complex operations # Follow PEP 8 style guidelines -
আপনার নোটবুক সম্পূর্ণভাবে পরীক্ষা করুন জমা দেওয়ার আগে
Python কোডের জন্য
PEP 8 স্টাইল নির্দেশিকা অনুসরণ করুন:
# Good practices
import pandas as pd
def calculate_mean(data):
"""Calculate the mean of a dataset.
Args:
data (list): List of numerical values
Returns:
float: Mean of the dataset
"""
return sum(data) / len(data)
কুইজ অ্যাপ অবদানের জন্য
কুইজ অ্যাপ্লিকেশন সংশোধন করার সময়:
-
লোকালভাবে পরীক্ষা করুন:
cd quiz-app npm install npm run serve -
লিন্টার চালান:
npm run lint -
সফলভাবে বিল্ড করুন:
npm run build -
Vue.js স্টাইল গাইড এবং বিদ্যমান প্যাটার্ন অনুসরণ করুন
অনুবাদের জন্য
অনুবাদ যোগ করার সময় বা আপডেট করার সময়:
translations/ফোল্ডারের কাঠামো অনুসরণ করুন- ভাষার কোড ফোল্ডারের নাম হিসাবে ব্যবহার করুন (যেমন, ফরাসি জন্য
fr) - ইংরেজি সংস্করণের মতো একই ফাইল কাঠামো বজায় রাখুন
- কুইজ লিঙ্ক আপডেট করুন যাতে ভাষার প্যারামিটার অন্তর্ভুক্ত থাকে:
?loc=fr - সমস্ত লিঙ্ক এবং ফরম্যাটিং পরীক্ষা করুন
পুল রিকোয়েস্ট প্রক্রিয়া
জমা দেওয়ার আগে
-
আপনার ব্রাঞ্চ আপডেট করুন সর্বশেষ পরিবর্তন সহ:
git fetch upstream git rebase upstream/main -
আপনার পরিবর্তন পরীক্ষা করুন:
- সমস্ত সংশোধিত নোটবুক চালান
- কুইজ অ্যাপ পরীক্ষা করুন যদি সংশোধন করা হয়
- সমস্ত লিঙ্ক কাজ করছে কিনা যাচাই করুন
- বানান এবং ব্যাকরণ ত্রুটি পরীক্ষা করুন
-
আপনার পরিবর্তন কমিট করুন:
git add . git commit -m "Brief description of changes"স্পষ্ট কমিট বার্তা লিখুন:
- বর্তমান কাল ব্যবহার করুন ("Add feature" নয় "Added feature")
- আদেশমূলক মেজাজ ব্যবহার করুন ("Move cursor to..." নয় "Moves cursor to...")
- প্রথম লাইন 72 অক্ষরে সীমাবদ্ধ রাখুন
- প্রাসঙ্গিক ইস্যু এবং পুল রিকোয়েস্ট উল্লেখ করুন
-
আপনার ফর্কে পুশ করুন:
git push origin feature/your-feature-name
পুল রিকোয়েস্ট তৈরি করা
- রিপোজিটরি-তে যান
- "Pull requests" → "New pull request" ক্লিক করুন
- "compare across forks" ক্লিক করুন
- আপনার ফর্ক এবং ব্রাঞ্চ নির্বাচন করুন
- "Create pull request" ক্লিক করুন
PR শিরোনামের ফরম্যাট
স্পষ্ট, বর্ণনামূলক শিরোনাম ব্যবহার করুন নিম্নলিখিত ফরম্যাট অনুসরণ করে:
[Component] Brief description
উদাহরণ:
[Lesson 7] Fix Python notebook import error[Quiz App] Add German translation[Docs] Update README with new prerequisites[Fix] Correct data path in visualization lesson
PR বিবরণ
আপনার PR বিবরণে অন্তর্ভুক্ত করুন:
- কি: আপনি কি পরিবর্তন করেছেন?
- কেন: এই পরিবর্তনগুলি কেন প্রয়োজনীয়?
- কিভাবে: আপনি কিভাবে পরিবর্তনগুলি বাস্তবায়ন করেছেন?
- পরীক্ষা: আপনি কিভাবে পরিবর্তনগুলি পরীক্ষা করেছেন?
- স্ক্রিনশট: ভিজ্যুয়াল পরিবর্তনের জন্য স্ক্রিনশট অন্তর্ভুক্ত করুন
- সম্পর্কিত ইস্যু: সম্পর্কিত ইস্যু লিঙ্ক করুন (যেমন, "Fixes #123")
পর্যালোচনা প্রক্রিয়া
- স্বয়ংক্রিয় চেক আপনার PR-এ চালানো হবে
- মেইনটেইনাররা আপনার অবদান পর্যালোচনা করবেন
- ফিডব্যাক ঠিক করুন অতিরিক্ত কমিট করে
- অনুমোদিত হলে, একটি মেইনটেইনার আপনার PR মার্জ করবেন
আপনার PR মার্জ হওয়ার পরে
-
আপনার ব্রাঞ্চ মুছুন:
git branch -d feature/your-feature-name git push origin --delete feature/your-feature-name -
আপনার ফর্ক আপডেট করুন:
git checkout main git pull upstream main git push origin main
স্টাইল নির্দেশিকা
Markdown
- সঙ্গতিপূর্ণ শিরোনাম স্তর ব্যবহার করুন
- সেকশনগুলির মধ্যে ফাঁকা লাইন অন্তর্ভুক্ত করুন
- ভাষা নির্দিষ্টকারী সহ কোড ব্লক ব্যবহার করুন:
```python import pandas as pd ``` - ছবিতে alt টেক্সট যোগ করুন:
 - লাইন দৈর্ঘ্য যুক্তিসঙ্গত রাখুন (প্রায় 80-100 অক্ষর)
Python
- PEP 8 স্টাইল গাইড অনুসরণ করুন
- অর্থপূর্ণ ভেরিয়েবল নাম ব্যবহার করুন
- ফাংশনে ডকস্ট্রিং যোগ করুন
- প্রয়োজনীয় স্থানে টাইপ হিন্ট অন্তর্ভুক্ত করুন:
def process_data(df: pd.DataFrame) -> pd.DataFrame: """Process the input dataframe.""" return df
JavaScript/Vue.js
- Vue.js 2 স্টাইল গাইড অনুসরণ করুন
- প্রদত্ত ESLint কনফিগারেশন ব্যবহার করুন
- মডুলার, পুনঃব্যবহারযোগ্য কম্পোনেন্ট লিখুন
- জটিল লজিকের জন্য মন্তব্য যোগ করুন
ফাইল সংগঠন
- সম্পর্কিত ফাইল একসাথে রাখুন
- বর্ণনামূলক ফাইল নাম ব্যবহার করুন
- বিদ্যমান ডিরেক্টরি কাঠামো অনুসরণ করুন
- অপ্রয়োজনীয় ফাইল কমিট করবেন না (.DS_Store, .pyc, node_modules, ইত্যাদি)
কন্ট্রিবিউটর লাইসেন্স এগ্রিমেন্ট
এই প্রকল্প অবদান এবং প্রস্তাবনাকে স্বাগত জানায়। বেশিরভাগ অবদান আপনাকে একটি Contributor License Agreement (CLA) সম্মতিতে সম্মতি জানাতে প্রয়োজন, যা ঘোষণা করে যে আপনার অবদান ব্যবহারের অধিকার আমাদের রয়েছে এবং আপনি তা প্রদান করেন। বিস্তারিত জানার জন্য, https://cla.microsoft.com দেখুন।
যখন আপনি একটি পুল রিকোয়েস্ট জমা দেন, একটি CLA-বট স্বয়ংক্রিয়ভাবে নির্ধারণ করবে যে আপনাকে CLA প্রদান করতে হবে কিনা এবং PR যথাযথভাবে সাজাবে (যেমন, লেবেল, মন্তব্য)। বট দ্বারা প্রদত্ত নির্দেশনা অনুসরণ করুন। আপনাকে এটি শুধুমাত্র একবার করতে হবে সমস্ত রিপোজিটরির জন্য যা আমাদের CLA ব্যবহার করে।
প্রশ্ন?
- আমাদের Discord Channel #data-science-for-beginners দেখুন
- আমাদের Discord কমিউনিটিতে যোগ দিন
- বিদ্যমান ইস্যু এবং পুল রিকোয়েস্ট পর্যালোচনা করুন
ধন্যবাদ!
আপনার অবদান এই কারিকুলামকে সবার জন্য আরও ভালো করে তোলে। অবদান রাখার জন্য সময় দেওয়ার জন্য ধন্যবাদ!
অস্বীকৃতি:
এই নথিটি AI অনুবাদ পরিষেবা Co-op Translator ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। মূল ভাষায় থাকা নথিটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যা হলে আমরা দায়বদ্ধ থাকব না।