အားလုံးပဲ မင်္ဂလာပါ။ ကျွန်တော် Min Sithu ပါ။
ဒီနေ့ကစပြီး ၁၅ ရက်ဆက်တိုက် ကျွန်တော့်ရဲ့ programming journey အကြောင်းကို တစ်နေ့တစ်ပုဒ် ရေးသွားမှာပါ။ ဒါ စာအုပ်ထဲက သင်ခန်းစာ မဟုတ်ဘူး — ကျွန်တော် ကိုယ်တိုင် လျှောက်ခဲ့တဲ့ လမ်း၊ တွေ့ခဲ့တဲ့ အရာ၊ ရခဲ့တဲ့ သင်ခန်းစာတွေအကြောင်း အမှန်အတိုင်း ပြောပြမှာပါ။ Beginner တစ်ယောက်အနေနဲ့ စခဲ့တဲ့နေ့ကနေ အခု developer တစ်ယောက်အဖြစ် အသက်မွေးနေတဲ့အထိ — ၁၅ ပုဒ်နဲ့ တစ်ဆင့်ချင်း ပြောပြမယ်။
Code ကို စိတ်ဝင်စားတဲ့ လူငယ်တွေ၊ “ငါလည်း စမ်းကြည့်ချင်တယ်” လို့ တွေးနေတဲ့လူတွေ — ဒီ series က မင်းတို့အတွက်ပါ။
Day 1: အစ
ကျွန်တော် code စရေးတုန်းက အသက် ၁၄ နှစ်ပဲ ရှိသေးတယ်။
ဘာနဲ့ စခဲ့လဲဆိုတော့ Java နဲ့ B4A နဲ့။
B4A ဆိုတာ Basic4Android ရဲ့ အတိုကောက် — Android app တွေကို BASIC လို ရိုးရှင်းတဲ့ language နဲ့ ဆောက်လို့ရတဲ့ development tool တစ်ခု။ နာမည်မှာ “Basic” ပါတယ်ဆိုပေမဲ့ အထင်မသေးနဲ့ — ဒါက တကယ့် native Android app တွေကို ထုတ်ပေးတဲ့ serious tool ပါ။ Visual designer ပါတော့ button တွေ၊ text box တွေ၊ screen တွေကို ဆွဲချပြီး app ရဲ့ ရုပ်ထွက်ကို မျက်မြင်ကိုယ်တွေ့ ပုံဖော်လို့ရတယ်။ ပြီးတော့ compile လုပ်လိုက်ရင် တကယ့် APK တစ်ခု ထွက်လာတယ် — ကိုယ့်ဖုန်းပေါ်မှာ install လုပ်ပြီး တကယ်သုံးလို့ရတဲ့ အစစ်အမှန်ပဲ။
B4A ရဲ့ အကြီးမားဆုံး အားသာချက်က “အတားအဆီး နိမ့်ခြင်း” ပဲ။ Programming ကို ပထမဆုံးထိတွေ့တဲ့ လူတစ်ယောက်အတွက် အခက်ဆုံးအရာက syntax မဟုတ်ဘူး — “ငါ လုပ်နေတာ အလုပ်ဖြစ်ရဲ့လား” ဆိုတဲ့ မသေချာမှုပဲ။ B4A က ဒီမသေချာမှုကို နာရီပိုင်းအတွင်း ဖြေရှင်းပေးတယ်။ Code နည်းနည်းရေးလိုက်၊ Run နှိပ်လိုက်၊ ကိုယ့်ဖုန်းပေါ်မှာ ကိုယ့် app ပေါ်လာတယ်။ ဒီလို မြန်မြန် feedback ရတာဟာ beginner ရဲ့ အသက်သွေးကြောပဲ။
ဒါကို “tight feedback loop” လို့ ခေါ်တယ် — လုပ်လိုက်၊ ရလဒ်မြင်လိုက်၊ ပြင်လိုက်။ Loop မြန်လေ သင်ယူမှု မြန်လေပဲ။ B4A က ဒီ loop ကို မိနစ်ပိုင်းအထိ ကျုံ့ပေးတယ်။ စာအုပ်ဖတ်တဲ့ loop က ရက်သတ္တပတ်နဲ့ ချီတယ် — “ဒီအခန်း နားလည်ပြီလား” ဆိုတာ ဘယ်သူမှ ချက်ချင်း မပြောပြနိုင်ဘူး။ ဒါကြောင့် beginner အတွက် tool ရွေးတဲ့အခါ နာမည်ကြီးမှုထက် feedback မြန်နှုန်းကို ကြည့်ရမယ်။
၂၀၁၅ လောက်က မြန်မာပြည်မှာ smartphone တွေ လူတိုင်းလက်ထဲ ရောက်ခါစ အချိန်ပဲ။ ၂၀၁၄ မှာ operator အသစ်တွေ ဝင်လာပြီး internet ဈေးတွေ ထိုးကျသွားတော့ လူငယ်တိုင်း Android ဖုန်း ကိုင်နိုင်တဲ့ ခေတ် စခဲ့တယ်။ ဒါကြောင့် “ဖုန်းအတွက် app ဆောက်မယ်” ဆိုတာ အဲဒီတုန်းက အလားအလာအရှိဆုံး ရွေးချယ်မှုပဲ — ကိုယ်ဆောက်တဲ့အရာကို ကိုယ့်ပတ်ဝန်းကျင်က လူတိုင်း သုံးနိုင်တဲ့ ခေတ်ပေါ့။
Java ကတော့ တစ်ဖက်မှာ လုံးဝ ခြားနားတဲ့ ကမ္ဘာပါ။ အဲဒီတုန်းက Android ရဲ့ ပင်မ language — Google ကိုယ်တိုင် ထောက်ခံထားတဲ့ “အစစ်အမှန်” လမ်း။ Verbose ဖြစ်တယ် — “Hello” လို့ ပြဖို့တောင် class တစ်ခု၊ method တစ်ခု၊ စာကြောင်း ၅-၆ ကြောင်း ရေးရတယ်။ Type တွေ တင်းကျပ်တယ် — variable တစ်ခုကြေညာရင် ဒါ ဘာအမျိုးအစားလဲဆိုတာ အတိအကျ ပြောရတယ်။ ၁၄ နှစ်သားတစ်ယောက်အတွက် ဒါဟာ တောင်တက်ရသလို ခံစားရတဲ့ လမ်းပဲ။
ဒါပေမဲ့ ဒီခက်ခဲမှုမှာ တန်ဖိုးရှိတယ်။ Java က B4A က လွယ်ကူအောင် ဖုံးကွယ်ပေးထားတဲ့ အရာမှန်သမျှကို မျက်နှာချင်းဆိုင် ပြတယ်။ Type ဆိုတာ ဘာလဲ — ဘာလို့ “၅” နဲ့ “ငါး” က ကွန်ပျူတာအတွက် မတူတာလဲ။ Object ဆိုတာ ဘာလဲ — ဘာလို့ code ကို လောကကြီးက အရာဝတ္ထုတွေလို ဖွဲ့စည်းရတာလဲ။ ဒီမေးခွန်းတွေကို Java က မဖြေမချင်း လွှတ်မပေးဘူး။ ခက်တယ်၊ တစ်ခါတစ်လေ စိတ်ပျက်စရာကောင်းတယ်။ ဒါပေမဲ့ ဒီခက်ခဲမှုကပဲ နောက်ပိုင်း ဘယ် language ကို ကိုင်ကိုင် အခြေခံကို နားလည်စေခဲ့တယ်။ Foundation ခိုင်ရင် language အသစ်တစ်ခုကို သင်ရတာ ရက်ပိုင်းပဲ ကြာတယ်။
အခု ပြန်တွေးကြည့်တော့ ဒီနှစ်ခုကို တွဲရွေးခဲ့တာ ကျွန်တော့်ရဲ့ မှန်ကန်တဲ့ ဆုံးဖြတ်ချက်တွေထဲက တစ်ခု ဖြစ်နေတယ်။ B4A က “အမြန်” ကို ပေးတယ်၊ Java က “အနက်” ကို ပေးတယ်။
အခု beginner တွေကို ကျွန်တော် အမြဲပြောတဲ့ စကားတစ်ခွန်း ရှိတယ် — “မြန်မြန်ဆောက်နိုင်တဲ့ tool တစ်ခုနဲ့ စပါ၊ ပြီးတော့ နက်နက်လေ့လာပါ။”
ဘာလို့လဲဆိုတော့ လူ့စိတ်ဟာ ဒီလို အလုပ်လုပ်တယ် — မြန်မြန် result မြင်ရမှ ဆက်လုပ်ချင်စိတ် ရှိတယ်။ B4A လို tool က Day 1 မှာ result ပြတယ်။ ဒါပေမဲ့ result ပဲ ရှိပြီး နားလည်မှု မရှိရင် toy ပဲ ဆောက်တတ်မယ် — နည်းနည်းခက်တဲ့ ပြဿနာနဲ့ တွေ့တာနဲ့ ရပ်သွားမယ်။ Java လို language က Year 1 မှာ foundation ချပေးတယ်။ ဒါပေမဲ့ foundation ပဲ ရှိပြီး result မရှိရင် လမ်းတစ်ဝက်မှာ လက်လျှော့သွားမယ် — “ငါ ဘာလို့ ဒါကို သင်နေရတာလဲ” ဆိုပြီး။ နှစ်ခုလုံး လိုတယ်။ အမြန်က မင်းကို ရှေ့ဆက်စေတယ်၊ အနက်က မင်းကို ရပ်တန့်မသွားစေဘူး။
၁၄ နှစ်မှာ စခဲ့တာကို နောင်တရလားဆိုတော့ လုံးဝ မရဘူး။ ငယ်ငယ်က စရတဲ့ အကောင်းဆုံးအချက်က ကြောက်စိတ် နည်းတာပဲ။ “ငါ နားမလည်ဘူး” ဆိုတာ ရှက်စရာ မဟုတ်ဘူး၊ “ငါ လုပ်ကြည့်မယ်” ဆိုတာပဲ ရှိတယ်။ Error တက်ရင် ထိုင်ငိုမနေဘူး — ဖျက်ပြီး ပြန်ရေးတယ်။ အသက်ကြီးလာလေ “ငါ့မှာ အချိန်မရှိဘူး”၊ “ငါ မှားမှာ ကြောက်တယ်” ဆိုတဲ့ အသံတွေ ကျယ်လာလေပဲ။ ၁၄ နှစ်တုန်းက အဲဒီအသံတွေ မရှိသေးဘူး။ ဒါကြောင့် ငယ်ငယ်က စခဲ့တာ ကံကောင်းခြင်းတစ်မျိုးပဲ။
ဒီနေ့ စမယ့် လူငယ်တစ်ယောက်ကို ကျွန်တော် ဘာပြောမလဲ? သုံးခုပဲ။
ပထမ — “ဒါနဲ့ ငါ ဘာဆောက်လို့ရမလဲ” လို့ မေးပါ။ “ဒါကို လူဘယ်လောက် သုံးနေလဲ”၊ “ဒါက အလုပ်ရနိုင်လား” လို့ မမေးပါနဲ့။ အဲဒီမေးခွန်းတွေက တစ်နှစ်ကြာမှ မေးရမယ့် မေးခွန်းတွေ။ Day 1 ရဲ့ မေးခွန်းက တစ်ခုတည်း — “ဒါနဲ့ ငါ ဒီနေ့ ဘာလုပ်လို့ရမလဲ။”
ဒုတိယ — နားလည်တာနဲ့ ကိုယ့်ဟာကိုယ် စမ်းပါ။ ဖျက်ပါ၊ မှားပါ၊ ပြန်ရေးပါ။ အမှားဟာ သင်ခန်းစာရဲ့ အမြန်ဆုံးလမ်းပဲ။
တတိယ — ရလဒ်ကို မြန်မြန်မြင်ရတဲ့ tool ကို ရွေးပါ။ ၂၀၁၅ တုန်းက ကျွန်တော့်အတွက် B4A ဖြစ်ခဲ့သလို၊ အခုခေတ်မှာ ရွေးစရာတွေ အများကြီးရှိတယ်။ အရေးကြီးတာ tool နာမည်မဟုတ်ဘူး — “ဒီနေ့ ငါ တစ်ခုခု ဆောက်ပြီးပြီ” လို့ ညအိပ်ယာဝင်ခါနီး ပြောနိုင်ဖို့ပဲ။
ဒီနေ့ရဲ့ သင်ခန်းစာ အချုပ်ကတော့ ဒါပါပဲ — စတဲ့အခါ theory ကနေ မစပါနဲ့၊ ဆောက်လုပ်ခြင်းကနေ စပါ။ ကိုယ့်ဖုန်းပေါ်မှာ ပေါ်လာတဲ့ ကိုယ့် app ပထမဆုံးတစ်ခု — ဒါဟာ Day 2, Day 3 ကို ဆက်သွားဖို့ အကောင်းဆုံး အကြောင်းပြချက်ပဲ။
မနက်ဖြန် Day 2 မှာ Java နဲ့ B4A ကို မျက်နှာချင်းဆိုင် ယှဉ်ပြမယ် — ဘယ်ဟာက ဘာသင်ပေးခဲ့လဲ၊ အခုမှ ပြန်စရမယ်ဆိုရင် ဘာကို ရွေးမလဲ၊ ဘာလို့လဲ။
အားလုံးကို ကျေးဇူးတင်ပါတယ်။ မနက်ဖြန် ပြန်ဆုံကြမယ် 🙂