# မိတ်ဆက်
Python ရေးရတာ ကြာလာတော့ အလှည့်အပြောင်းအနေနဲ့ Go Programming Language ကို လေ့လာကြည့်မလို့ပါ။ လေ့လာသမျှကို Study Notes အနေနဲ့ မျှဝေသွားပါမယ်။
Go က Compiled Programming Language တစ်ခု ဖြစ်တယ်။
- Compile လုပ်တယ် ဆိုတာက လက်ရှိ ရေးထားတဲ့ code ကို lower level language (machine code) အဖြစ် ပြောင်းလဲတဲ့ process ကို ဆိုလိုတာပါ။ Go အတွက်ဆိုရင် Assembly code အဖြစ် ပြောင်းပါတယ်။
- ရလဒ်အားဖြင့် Compiled Languages တွေက Interpreted Languages (ဥပမာ - Python, PHP) တွေထက် execute လုပ်ရာမှာ ပိုမြန်ပြီး စွမ်းဆောင်ရည်အားကောင်းပါတယ်။
Go က Static Typed Programming Language တစ်ခု ဖြစ်ပါတယ်။
- Programmer က variable တစ်ခုချင်းဆီရဲ့ data type ကို မဖြစ်မနေ (explicitly state) ကြေညာပေးဖို့ လိုပါတယ်။
- ကြေညာထားတဲ့ Type တွေ မှန်/မမှန် စစ်ဆေးတဲ့ အလုပ်ကိုလဲ Compile လုပ်နေစဥ်အတွင်းမှာပဲ လုပ်ဆောင်ပါတယ်။ ဒါကြောင့် execute time ရောက်တဲ့အချိန်ကျ ပိုပြီး စွမ်းဆောင်ရည် ကောင်းတာ ဖြစ်ပါတယ်။ သူနဲ့ ဆန့်ကျင်ဘက် Dynamic Typed Programming Language (ဥပမာ - Python, PHP, Ruby, Javascript) တွေကကျတော့ execution time ကို ရောက်မှာ type check လုပ်ပါတယ်။
# Go Learning Resources
- တွေ့သမျှ အသုံးဝင်နိုင်မယ့် Go Learning Resources (blog, tutorials, videos) တွေကို ဒီမှာ စုပေးထားပါမယ်။
1. [Go by Example](https://gobyexample.com/) - ကိုယ် မသိတဲ့ Code Syntax ပိုင်းကို ပြန်ကြည့်ချင်တဲ့အခါ အသုံးဝင်။
- မြန်မာလို ဘာသာပြန်ထားတာကို ဖတ်မယ်ဆိုရင် ဒီ [website](https://setkyar.github.io/gobyexample/) မှာ ဖတ်လို့ ရပါတယ်။
2. [Simple Go Book](https://www.openmymind.net/assets/go/go.pdf) (< 100 pages) - date တော့ အောက်နေပြီ ထင်တယ်။ ဒါပေမယ့် ဖတ်ပြီး လိုက်လုပ်ကြရတာ အဆင်ပြေတယ်။ အခြေခံတွေက ဘာမှမပြောင်းလဲဘူးဆိုတော့ ဒီစာအုပ်ကို အရင် ဖတ်ကြည့်တာ ပိုကောင်းမယ်။
3. [Programming for Lovers](https://programmingforlovers.com) - Free Online Course - Carnegie Mallon က [Professor Phillip Compeau](https://compeau.cbd.cmu.edu/) ရဲ့ အခမဲ့ course ပါ။ Algorithms အကြောင်းတွေနဲ့ တွဲပြီး ဖတ်လိုက် ၊ code ရေးလိုက် ၊ video ကြည့်လိုက်နဲ့ လေ့လာရတာ တော်တော် အဆင်ပြေပါတယ်။