# Data Science for Beginners အတွက် အထောက်အပံ့ Data Science for Beginners သင်ခန်းစာများအတွက် အထောက်အပံ့ပေးလိုက်တဲ့အတွက် ကျေးဇူးတင်ပါတယ်! ကျွန်ုပ်တို့သည် အသိုင်းအဝိုင်းမှ အထောက်အပံ့များကို ကြိုဆိုပါသည်။ ## အကြောင်းအရာများ - [Code of Conduct](../..) - [ဘယ်လို အထောက်အပံ့ပေးနိုင်မလဲ?](../..) - [စတင်ရန်](../..) - [အထောက်အပံ့ပေးရန် လမ်းညွှန်ချက်များ](../..) - [Pull Request လုပ်ငန်းစဉ်](../..) - [စတိုင် လမ်းညွှန်ချက်များ](../..) - [Contributor License Agreement](../..) ## Code of Conduct ဒီပရောဂျက်သည် [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) ကို လက်ခံထားပါသည်။ ပိုမိုသိရှိရန် [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) ကို ကြည့်ပါ။ သို့မဟုတ် [opencode@microsoft.com](mailto:opencode@microsoft.com) သို့ မေးခွန်းများ သို့မဟုတ် မှတ်ချက်များ ပေးပို့ပါ။ ## ဘယ်လို အထောက်အပံ့ပေးနိုင်မလဲ? ### အမှားများကို တင်ပြခြင်း Bug report တင်မီမှာ ရှိပြီးသား issues များကို စစ်ဆေးပြီး ထပ်တူဖြစ်မှုကို ရှောင်ရှားပါ။ Bug report တင်တဲ့အခါမှာ အောက်ပါအချက်များကို များစွာ ထည့်သွင်းပါ: - **ရှင်းလင်းပြီး ဖော်ပြချက်ကောင်းသော ခေါင်းစဉ်ကို အသုံးပြုပါ** - **ပြဿနာကို ထပ်မံဖြစ်ပေါ်စေတဲ့ အတိအကျ လုပ်ဆောင်မှုများကို ဖော်ပြပါ** - **တိကျတဲ့ ဥပမာများ** (code snippets, screenshots) ထည့်ပါ - **သင်တွေ့ရှိခဲ့တဲ့ အပြုအမူနှင့် မျှော်လင့်ထားတဲ့ အပြုအမူကို ဖော်ပြပါ** - **သင့်ပတ်ဝန်းကျင်အသေးစိတ်** (OS, Python version, browser) ထည့်ပါ ### တိုးတက်မှုများကို အကြံပြုခြင်း တိုးတက်မှုအကြံပြုချက်များကို ကြိုဆိုပါသည်! အကြံပြုတဲ့အခါ: - **ရှင်းလင်းပြီး ဖော်ပြချက်ကောင်းသော ခေါင်းစဉ်ကို အသုံးပြုပါ** - **အကြံပြုထားတဲ့ တိုးတက်မှုကို အသေးစိတ် ဖော်ပြပါ** - **ဒီတိုးတက်မှုက ဘယ်လို အသုံးဝင်မလဲဆိုတာ ရှင်းပြပါ** - **အခြားပရောဂျက်များမှာ ရှိတဲ့ ဆင်တူသော လုပ်ဆောင်ချက်များကို ဖော်ပြပါ (လိုအပ်ပါက)** ### Documentation အထောက်အပံ့ပေးခြင်း Documentation တိုးတက်မှုများကို အမြဲလက်ခံပါသည်: - **စာလုံးပေါင်းနှင့် သဒ္ဒါအမှားများကို ပြင်ဆင်ပါ** - **ရှင်းလင်းမှုကို တိုးတက်စေပါ** - **ပျောက်နေတဲ့ Documentation ကို ထည့်ပါ** - **ရှေးဟောင်းသတင်းအချက်အလက်များကို အပ်ဒိတ်လုပ်ပါ** - **ဥပမာများ သို့မဟုတ် အသုံးပြုမှုများကို ထည့်ပါ** ### Code အထောက်အပံ့ပေးခြင်း Code အထောက်အပံ့များကို ကြိုဆိုပါသည်: - **သင်ခန်းစာအသစ်များ သို့မဟုတ် လေ့ကျင့်ခန်းများ** - **Bug ပြင်ဆင်မှုများ** - **ရှိပြီးသား notebooks များကို တိုးတက်စေခြင်း** - **ဒေတာအစုအဝေးအသစ်များ သို့မဟုတ် ဥပမာများ** - **Quiz application တိုးတက်မှုများ** ## စတင်ရန် ### လိုအပ်ချက်များ အထောက်အပံ့ပေးမည်ဆိုပါက အောက်ပါအချက်များရှိရန် သေချာပါ: 1. GitHub အကောင့်တစ်ခု 2. Git ကို သင့်စနစ်မှာ ထည့်သွင်းထား 3. Python 3.7+ နှင့် Jupyter ထည့်သွင်းထား 4. Node.js နှင့် npm (quiz app အထောက်အပံ့ပေးရန်) 5. သင်ခန်းစာဖွဲ့စည်းမှုကို နားလည်မှုရှိ အသေးစိတ် setup လမ်းညွှန်ချက်များအတွက် [INSTALLATION.md](INSTALLATION.md) ကို ကြည့်ပါ။ ### Fork နှင့် Clone 1. GitHub မှာ **repository ကို fork လုပ်ပါ** 2. **သင့် fork ကို locally clone လုပ်ပါ**: ```bash git clone https://github.com/YOUR-USERNAME/Data-Science-For-Beginners.git cd Data-Science-For-Beginners ``` 3. **upstream remote ကို ထည့်ပါ**: ```bash git remote add upstream https://github.com/microsoft/Data-Science-For-Beginners.git ``` ### Branch တစ်ခု ဖန်တီးပါ သင့်အလုပ်အတွက် branch အသစ်တစ်ခု ဖန်တီးပါ: ```bash git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix ``` Branch အမည်ပုံစံများ: - `feature/` - လုပ်ဆောင်ချက်အသစ်များ သို့မဟုတ် သင်ခန်းစာအသစ်များ - `fix/` - Bug ပြင်ဆင်မှုများ - `docs/` - Documentation ပြောင်းလဲမှုများ - `refactor/` - Code ပြန်လည်ဖွဲ့စည်းမှု ## အထောက်အပံ့ပေးရန် လမ်းညွှန်ချက်များ ### သင်ခန်းစာအကြောင်းအရာအတွက် သင်ခန်းစာများကို အထောက်အပံ့ပေးခြင်း သို့မဟုတ် ပြောင်းလဲခြင်း: 1. **ရှိပြီးသား ဖွဲ့စည်းမှုကို လိုက်နာပါ**: - README.md သင်ခန်းစာအကြောင်းအရာ - Jupyter notebook လေ့ကျင့်ခန်းများ - Assignment (လိုအပ်ပါက) - Pre နှင့် Post quizzes link 2. **အောက်ပါအချက်များကို ထည့်ပါ**: - ရှင်းလင်းသော သင်ယူရမည့် ရည်ရွယ်ချက်များ - အဆင့်ဆင့် ရှင်းလင်းချက်များ - မှတ်ချက်များပါရှိသော Code ဥပမာများ - လေ့ကျင့်ခန်းများ - အပိုအရင်းအမြစ်များ link 3. **လွယ်ကူမှုရှိစေပါ**: - ရှင်းလင်းပြီး လွယ်ကူသော ဘာသာစကားကို အသုံးပြုပါ - ပုံများအတွက် alt text ထည့်ပါ - Code မှတ်ချက်များ ထည့်ပါ - သင်ယူမှုစတိုင်များကို စဉ်းစားပါ ### Jupyter Notebooks အတွက် 1. **outputs အားလုံးကို commit မလုပ်မီ clear လုပ်ပါ**: ```bash jupyter nbconvert --clear-output --inplace notebook.ipynb ``` 2. **ရှင်းလင်းချက်များပါရှိသော markdown cells ထည့်ပါ** 3. **အဆင့်တန်းစီထားသော ဖော်ပြချက်ကို အသုံးပြုပါ**: ```python # 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 ``` 4. **သင့် notebook ကို submit မလုပ်မီ အပြည့်အစုံ စမ်းသပ်ပါ** ### Python Code အတွက် [PEP 8](https://www.python.org/dev/peps/pep-0008/) စတိုင် လမ်းညွှန်ချက်များကို လိုက်နာပါ: ```python # 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) ``` ### Quiz App အထောက်အပံ့ပေးခြင်း Quiz application ကို ပြောင်းလဲတဲ့အခါ: 1. **local မှာ စမ်းသပ်ပါ**: ```bash cd quiz-app npm install npm run serve ``` 2. **linter ကို run လုပ်ပါ**: ```bash npm run lint ``` 3. **အောင်မြင်စွာ build လုပ်ပါ**: ```bash npm run build ``` 4. **Vue.js စတိုင် လမ်းညွှန်ချက်နှင့် ရှိပြီးသား pattern များကို လိုက်နာပါ** ### ဘာသာပြန်ခြင်း ဘာသာပြန်မှုများကို ထည့်သွင်း သို့မဟုတ် အပ်ဒိတ်လုပ်တဲ့အခါ: 1. `translations/` folder ထဲမှာ ဖွဲ့စည်းမှုကို လိုက်နာပါ 2. ဘာသာစကား code ကို folder အမည်အဖြစ် အသုံးပြုပါ (ဥပမာ `fr` သည် French) 3. English version နှင့် တူညီသော ဖိုင်ဖွဲ့စည်းမှုကို ထိန်းသိမ်းပါ 4. Quiz links ကို ဘာသာစကား parameter ထည့်ပါ: `?loc=fr` 5. Links နှင့် ဖော်ပြချက်များကို စမ်းသပ်ပါ ## Pull Request လုပ်ငန်းစဉ် ### Submit မလုပ်မီ 1. **သင့် branch ကို နောက်ဆုံးပြောင်းလဲမှုများနှင့် အပ်ဒိတ်လုပ်ပါ**: ```bash git fetch upstream git rebase upstream/main ``` 2. **သင့်ပြောင်းလဲမှုများကို စမ်းသပ်ပါ**: - ပြောင်းလဲထားသော notebooks အားလုံးကို run လုပ်ပါ - Quiz app ကို စမ်းသပ်ပါ (ပြောင်းလဲထားပါက) - Links အားလုံးအလုပ်လုပ်မှုကို စစ်ဆေးပါ - စာလုံးပေါင်းနှင့် သဒ္ဒါအမှားများကို စစ်ဆေးပါ 3. **သင့်ပြောင်းလဲမှုများကို commit လုပ်ပါ**: ```bash git add . git commit -m "Brief description of changes" ``` ရှင်းလင်းသော commit messages ရေးပါ: - Present tense ကို အသုံးပြုပါ ("Add feature" မဟုတ် "Added feature") - Imperative mood ကို အသုံးပြုပါ ("Move cursor to..." မဟုတ် "Moves cursor to...") - ပထမဆုံးလိုင်းကို 72 characters အတွင်း ထိန်းသိမ်းပါ - Issues နှင့် pull requests ကို ရည်ညွှန်းပါ (လိုအပ်ပါက) 4. **သင့် fork ကို push လုပ်ပါ**: ```bash git push origin feature/your-feature-name ``` ### Pull Request ဖန်တီးခြင်း 1. [repository](https://github.com/microsoft/Data-Science-For-Beginners) သို့ သွားပါ 2. "Pull requests" → "New pull request" ကို click လုပ်ပါ 3. "compare across forks" ကို click လုပ်ပါ 4. သင့် fork နှင့် branch ကို ရွေးပါ 5. "Create pull request" ကို click လုပ်ပါ ### PR Title Format ရှင်းလင်းပြီး ဖော်ပြချက်ကောင်းသော ခေါင်းစဉ်များကို အသုံးပြုပါ: ``` [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 Description သင့် PR description ထဲမှာ အောက်ပါအချက်များကို ထည့်ပါ: - **ဘာလဲ**: ဘာတွေ ပြောင်းလဲခဲ့သလဲ? - **ဘာကြောင့်**: ဒီပြောင်းလဲမှုတွေ ဘာကြောင့် လိုအပ်သလဲ? - **ဘယ်လို**: ဒီပြောင်းလဲမှုတွေကို ဘယ်လို အကောင်အထည်ဖော်ခဲ့သလဲ? - **စမ်းသပ်မှု**: ပြောင်းလဲမှုတွေကို ဘယ်လို စမ်းသပ်ခဲ့သလဲ? - **Screenshots**: Visual ပြောင်းလဲမှုများအတွက် Screenshots ထည့်ပါ - **ဆက်စပ် Issues**: ဆက်စပ် Issues ကို link လုပ်ပါ (ဥပမာ "Fixes #123") ### Review လုပ်ငန်းစဉ် 1. **Automated checks** သင့် PR မှာ run လုပ်ပါမည် 2. **Maintainers သင့်အထောက်အပံ့ကို ပြန်လည်သုံးသပ်ပါမည်** 3. **Feedback ကို ဖြေရှင်းပါ** (အပို commit များလုပ်ပါ) 4. အတည်ပြုပြီးနောက် **maintainer သင့် PR ကို merge လုပ်ပါမည်** ### သင့် PR Merge ပြီးနောက် 1. သင့် branch ကို delete လုပ်ပါ: ```bash git branch -d feature/your-feature-name git push origin --delete feature/your-feature-name ``` 2. သင့် fork ကို အပ်ဒိတ်လုပ်ပါ: ```bash git checkout main git pull upstream main git push origin main ``` ## စတိုင် လမ်းညွှန်ချက်များ ### Markdown - Heading အဆင့်များကို တိကျစွာ အသုံးပြုပါ - အပိုင်းများအကြား blank lines ထည့်ပါ - Language specifiers ပါရှိသော code blocks ကို အသုံးပြုပါ: ````markdown ```python import pandas as pd ``` ```` - ပုံများအတွက် alt text ထည့်ပါ: `![Alt text](../../translated_images/my/image.4ee84a82b5e4c9e6651b13fd27dcf615e427ec584929f2cef7167aa99151a77a.png)` - Line အရှည်ကို သင့်တော်စွာ ထိန်းသိမ်းပါ (80-100 characters အနီး) ### Python - PEP 8 စတိုင် လမ်းညွှန်ချက်ကို လိုက်နာပါ - အဓိပ္ပာယ်ရှိသော variable အမည်များကို အသုံးပြုပါ - Function များအတွက် docstrings ထည့်ပါ - လိုအပ်သောနေရာများမှာ type hints ထည့်ပါ: ```python def process_data(df: pd.DataFrame) -> pd.DataFrame: """Process the input dataframe.""" return df ``` ### JavaScript/Vue.js - Vue.js 2 စတိုင် လမ်းညွှန်ချက်ကို လိုက်နာပါ - ပေးထားသော ESLint configuration ကို အသုံးပြုပါ - Modular, reusable components ရေးပါ - ရှုပ်ထွေးသော logic အတွက် မှတ်ချက်များ ထည့်ပါ ### ဖိုင်ဖွဲ့စည်းမှု - ဆက်စပ်သော ဖိုင်များကို အတူတူထားပါ - ဖော်ပြချက်ကောင်းသော ဖိုင်အမည်များကို အသုံးပြုပါ - ရှိပြီးသား directory ဖွဲ့စည်းမှုကို လိုက်နာပါ - မလိုအပ်သော ဖိုင်များကို commit မလုပ်ပါ (.DS_Store, .pyc, node_modules, စသည်) ## Contributor License Agreement ဒီပရောဂျက်သည် အထောက်အပံ့များနှင့် အကြံပြုချက်များကို ကြိုဆိုပါသည်။ အများစုသော အထောက်အပံ့များသည် Contributor License Agreement (CLA) ကို သဘောတူရန် လိုအပ်ပါသည်။ သင့်အထောက်အပံ့ကို အသုံးပြုရန် ကျွန်ုပ်တို့ကို အခွင့်အရေးပေးရမည်ဖြစ်သည်။ အသေးစိတ်အချက်အလက်များအတွက် https://cla.microsoft.com ကို ကြည့်ပါ။ သင့် pull request ကို တင်သွင်းတဲ့အခါ CLA-bot က သင့် CLA ပေးရန် လိုအပ်မလားဆိုတာ အလိုအလျောက် စစ်ဆေးပြီး PR ကို သင့်တော်အတိုင်း အမှတ်အသား သို့မဟုတ် မှတ်ချက်များ ထည့်သွင်းပါမည်။ Bot ပေးထားသော လမ်းညွှန်ချက်များကို လိုက်နာပါ။ CLA ကို တစ်ကြိမ်သာ လိုအပ်ပါမည်။ ## မေးခွန်းများ? - [Discord Channel #data-science-for-beginners](https://aka.ms/ds4beginners/discord) ကို စစ်ဆေးပါ - ကျွန်ုပ်တို့၏ [Discord community](https://aka.ms/ds4beginners/discord) ကို ဝင်ပါ - ရှိပြီးသား [issues](https://github.com/microsoft/Data-Science-For-Beginners/issues) နှင့် [pull requests](https://github.com/microsoft/Data-Science-For-Beginners/pulls) ကို ပြန်လည်သုံးသပ်ပါ ## ကျေးဇူးတင်ပါတယ်! သင့်အထောက်အပံ့များသည် ဒီသင်ခန်းစာကို အားလုံးအတွက် ပိုမိုကောင်းမွန်စေပါသည်။ အထောက်အပံ့ပေးရန် အချိန်ယူတဲ့အတွက် ကျေးဇူးတင်ပါတယ်! --- **အကြောင်းကြားချက်**: ဤစာရွက်စာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု [Co-op Translator](https://github.com/Azure/co-op-translator) ကို အသုံးပြု၍ ဘာသာပြန်ထားပါသည်။ ကျွန်ုပ်တို့သည် တိကျမှုအတွက် ကြိုးစားနေသော်လည်း အလိုအလျောက် ဘာသာပြန်ခြင်းတွင် အမှားများ သို့မဟုတ် မမှန်ကန်မှုများ ပါဝင်နိုင်သည်ကို သတိပြုပါ။ မူရင်းဘာသာစကားဖြင့် ရေးသားထားသော စာရွက်စာတမ်းကို အာဏာတရားရှိသော ရင်းမြစ်အဖြစ် သတ်မှတ်သင့်ပါသည်။ အရေးကြီးသော အချက်အလက်များအတွက် လူက ဘာသာပြန်ခြင်းကို အကြံပြုပါသည်။ ဤဘာသာပြန်ကို အသုံးပြုခြင်းမှ ဖြစ်ပေါ်လာသော အလွဲအမှားများ သို့မဟုတ် အနားယူမှုမှားများအတွက် ကျွန်ုပ်တို့သည် တာဝန်မယူပါ။