# မိတ်ဆက် 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 ကြည့်လိုက်နဲ့ လေ့လာရတာ တော်တော် အဆင်ပြေပါတယ်။