# Programming Languages and their use cases
Programming languages တွေကို သက်ဆိုင်ရာ Development ကိုလိုက်ပြီး အုပ်စုခွဲလို့ရပါတယ်။ ဥပမာ အနေနဲ့ Japan မှာသွားအလုပ်လုပ်ရမယ်ဆိုရင် japan ဘာသာစကားကို လေ့လာထားမှသာ အဆင်ပြေနိုင်တယ်။ ထို့အတူ သက်ဆိုင်ရာနိုင်ငံအလိုက် အသုံးပြုတဲ့ language ကိုသိမှသာ အဲ့နိုင်ငံနဲ့ပတ်သတ်တဲ့အရာတွေလုပ်ရတာအဆင်ပြေမှာပါ။ Programming language တွေမှာလည်း ထိုနည်းတူပါပဲ။
# Web Development
- သူက website တွေ web applications တွေ တည်ဆောက်တာပါ။ အကြမ်းပြောရရင် browser မှာ ရှာလို့ရတဲ့ဟာမျိုးပေါ့။ web ပိုင်းကိုလုပ်ချင်ရင် JavaScript, TypeScript, PHP, Ruby, Python, Java စတဲ့ language တွေကိုလေ့လာရပါတယ်။
# Mobile Application Development
- mobile application ကတော့ အားလုံးနဲ့ရင်းနှီးပြီးသားဖြစ်တဲ့ ဖုန်းမှာသုံးနေတဲ့ applicationတွေ ကိုရေးသားတာပါ။ သူ့မှာတော့ OS ( Operating System ) ကိုလိုက်ပြီး နှစ်မျိုးကွဲပါတယ်။ Android နဲ့ IOS ပါ။ OS တစ်ခုကိုအတွက်ပဲရေးသားနိုင်တဲ့ primary langauge ကို native လို့ခေါ်ပြီး OS နှစ်ခုလုံးအတွက်ရေးသားနိုင်ရင်တော့ hybrid လို့ခေါ်ပါတယ်။ Native အနေနဲ့ Android အတွက်ဆိုရင် Java, Kotlin တို့ရှိပြီး IOS မှာတော့ Swift, Objective-C ကိုလေ့လာရပါတယ်။ hybrid အနေနဲ့အခုနောက်ပိုင်းခေတ်စားလာတာက flutter ပါ။ သူက Dart ဆိုတဲ့ language ပေါ်မှာအခြေခံထားပါတယ်။ JavaScript ကနေလည်း ReactNativeကို လေ့လာပြီးရေးလို့ရနေပါပြီ။
# Desktop Application Development
- သူကတော့ laptop တွေ desktop တွေမှာပဲသုံးလို့ရတဲ့ applicationတွေကို ရေးသားတာပါ။ ဥပမာ photoshop လိုဟာမျိုးပေါ့။ သူ့ကိုရေးသားချင်ရင် C, C++,Java, C# စသည်ဖြင့်လေ့လာရတဲ့ language တွေလေ့လာလို့ရပါတယ်။
# Game Development
- သူကလည်း အားလုံးနဲ့ ရင်းနှီးပြီးသားပါပဲ။ mobile games, pc games, console games တွေကိုပြောတာပါ။ သူ့အတွက်ဆိုရင်တော့ Unity, C, C#, C++, Python, Lua စတဲ့ language တွေရှိပါတယ်။
# Artificial Intelligence ( AI )
- AI ကတော့ machine တွေမှာ learning တွေ problem solving တွေလုပ်နိုင်အောင် အသိဉာဏ်တုရေးတာပါ။ သူ့အတွက်ကတော့ python အသုံးများကြပါတယ်။
# Data Science
- data science ကတော့ raw data ကနေ useful information တွေရအောင် လုပ်တဲ့ လုပ်ငန်းစဉ်ဖြစ်ပါတယ်။ language တွေအနေနဲ့ python, javascript, scala, R တို့ကို သုံးကြပါတယ်။
# Internet of things ( IoT )
- သူကတော့ electronic device တွေကို smart ဖြစ်လာအောင်လုပ်တာဖြစ်ပါတယ်။ မြင်သာအောင်ပြောရရင် coffee ဖျော်စက်လိုဟာမျိုးကို manually လုပ်မနေတော့ပဲ device တစ်ခုခုနဲ့ထိန်းချုပ်ပြီး automatic ဖြစ်အောင်လုပ်တာပါ။ သူ့ကို ရေးချင်ရင် C,**C++**နဲ့ arduinoလေ့လာလို့ရသလို Python အသုံပြုပြီး raspberry pi နဲ့လုပ်လို့ရပါတယ်။
# Robotics
သူကတော့ စက်ရုပ်(Robot)တွေကို တည်ဆောက်ထိန်းချုပ်ဖို့ပေါ့။ သုံးတဲ့ programming language တွေကတော့ C, C++ နဲ့ Python တို့အပြင် Matlab လည်းပါဝင်ပါတယ်။ အခုနောက်ပိုင်းမှာ ROS ( Robot Operation System) ဆိုတာကိုအသုံးပြုလာကြတယ်။ ROS ကို robot softwareတွေရေးဖို့နဲ့ simulationတွေလုပ်ဖို့အတွက် အဓိကထားသုံးကြတယ်။ ROS ကို Linux Os မှာအခြေခံရေးထားပြီး အများဆုံးသုံးတဲ့ programming language တွေကတော့ C++ နဲ့ Python တို့ပါပဲ။
အခြား language တွေအနေနဲ့ Go Lang, Rust တို့လို system programming language တွေရှိပါတယ်။
နောက်တစ်ခုက သက်ဆိုင်ရာ development ကိုလေ့လာတဲ့အခါ programming တစ်ခုတင် မဟုတ်ဘဲ development လုပ်ဖို့အတွက် လိုအပ်တဲ့ အခြား technologies တွေကိုလည်းလေ့လာရတာပါပဲ။
popular languages တွေအနေနဲ့ python ဖြစ် ေနပြီး, မိမိစိတ်ဝင်စားတဲ့ language နဲ့ field ကို ရွေးချယ်လေ့လာတာခြင်းသာလျှင် မိမိအတွက်အကောင်းဆုံးဖြစ်ပါလိမ့်မည်။