Coding သင်ရတာဘာလို့ တအားခက်တာလဲ?

Disclaimer : လွန်ခဲ့တဲ့ တစ်နှစ်လောက်က သူငယ်ချင်းတစ်ယောက်က blog post တစ်ခုကို ကျွန်တော့်ဆီ ဖတ်ကြည့်ဆိုပြီး ပို့ပေးခဲ့တယ်။ ဖတ်ပြီးတဲ့နောက်မှာ တော်တော်လေး ကြိုက်မိသွားတယ်။ Bookmark လုပ်ထားလိုက်ပြီး နောက်လိုအပ်ရင် သူများတွေကိုလည်း ကြုံရင် ကြုံသလို ပြန် share တယ်။ ကိုယ်တိုင်လည်းခဏခဏပြန်ဖတ်ဖြစ်တော့ ဘာသာပြန်ဖို့ စိတ်ကူးရတာနဲ့ ဒီ blog post လေးကိုရေးဖြစ်သွားတာပါ။


အဆင့် (၁) လက်တွဲခေါ် အပျော်ခရီး

Coding သင်တော့မယ်ဆိုရင် တော်တော်များများက မျှော်လင့်ချက်အများကြီးထားကြတာဟာ အပြစ်တင်စရာတော့မရှိပါဘူး။

တစ်ဖက်ကကြည့်မယ်ဆိုရင် ငယ်ငယ်ကတည်းက ကွန်ပျူတာအလုပ်တွေက ခက်သယောင်ယောင် အပြောအဆိုတွေကြားမှာ ကြီးပြင်းလာတယ်။ နောက်တစ်ဖက်ကကြည့်မယ်ဆိုရင် “Learn to Code” လိုမျိုး လှုပ်ရှားမှုတွေဟာ လူတွေနဲ့ coding အကြား အထင်အမြင်တွေကို ပိုပြီး နီးစပ်လာအောင် လုပ်ပေးနေပြီး Codecademy, Treehouse နဲ့ Code School အစရှိသဖြင့် website တွေဟာ မည်သူမဆို အလွယ်တကူ coding လေ့လာလို့ရအောင် စီစဉ်ပေးထားတယ်။

ဆိုတော့ ပြဿနာက အကြောက်တရားမဟုတ်တော့ပဲ​ မျှော်လင့်ချက်ကြီးမှု တွေဖြစ်လာတယ်။

အပေါ်ကပြောခဲ့တဲ့ မိတ်ဆက်လိုမျိုးသင်ပေးတဲ့ website တွေက ကလေးတစ်ယောက် လမ်းဖြတ်ကူးတဲ့အခါ မိဘတွေက လက်တွဲပြီး ကားတွေကို မကြောက်အောင်ကူးခိုင်းသလိုမျိုး သင့်ကို သင်ပေးတယ်။​ ဒီအချိန်မှာ သင်ဟာ တစ်ဖြည်းဖြည်း ယုံကြည်မှုတွေတက်လာမယ်။ “သြော် Coding ဆိုတာ​ ဒါပါလား၊ မဆိုးပါဘူး လွယ်သားပဲ” ဆိုပြီး အတွေးတွေဝင်လာမယ်။ သင်ဟာ Developer ဖြစ်နေပြီပဲ! ဘယ်လောက်ခက်မှာမလို့တုန်း?

လက်တွဲခေါ် အပျော်ခရီး

ကျွန်တော်ကတော့ ဒီအဆင့်ကို လက်တွဲခေါ် အပျော်ခရီးလို့ခေါ်ချင်တယ်။ သင့်ဟာ​ ဒီအဆင့်မှာ အရာအားလုံး သိသလိုလိုဖြစ်နေပေမဲ့ တကယ်တော့ အခုမှ ခရီးကစတာပါ။

ခရီးစဉ် လမ်းကြောင်း

ကျွန်တော် အဆင့်​ (၂) ကြောင်းဆက်မပြောခင်မှာ Coding တက်ကျွမ်းဖို့ ဖြတ်သမ်းရမဲ့ခရီးစဉ်ရယ်၊ ဒီခရီး အဆင့်ဆင့်ကို ဘယ်လိုဖြတ်သန်းရမယ်ဆိုတာကို အရင်ပြောပြပါမယ်။

အလုပ်ရနိုင်တဲ့အဆင့်ထိ ရောက်အောင် သွားရမဲ့ ခရီးစဉ်ကို အောက်ပါအတိုင်း ဖော်ပြနိုင်ပါတယ်။

Code တတ်ကျွမ်းမှု ခရီး

သင့်ရဲ့ ယုံကြည်မှုတွေနည်းလာတာနဲ့ အမျှ သင့်ရဲ့ ပျော်ရွှင်မှုတွေလည်း နည်းလာမယ်။ နောက်ဆုံး သင့်ယုံကြည်မှုနဲ့ သင်လုပ်နိုင်တဲ့ စွမ်းရည် တစ်ထပ်ထည်းကျသွားပြီဆိုရင်တော့ သင် အလုပ်ရဖို့ အဆင်သင့်ဖြစ်ပြီလို့ပြောနိုင်ပါတယ်။

ခရီးစဉ်မှာ ဘယ်အဆင့်တွေပါလဲဆိုတော့

(၁) လက်တွဲခေါ် အပျော်ခရီး မှာတော့ နာမည်အတိုင်း သင်ဟာ သေချာပြင်ဆင်ထားတဲ့ အရင်းအမြစ်တွေတစ်ခု လေ့လာပြီးတိုင်းမှာ သင်ဟာ ပျော်ရွှင်နေမည်။ အဓိကအားဖြင့်တော့ အခြေခံ syntax တွေလေ့လာရမယ်၊ သင့်ဟာ အောင်မြင်မှုတွေမှာ ရစ်မူးပျော်ရွှင်နေမယ်။

(၂) ရှုပ်ထွေးမှု တောင်စောက် ကတော့ လက်တွဲခေါ်လို့အပြီးမှာ သင်ဟာ ဒီခရီးက တော်တော်ခက်ခဲတာပါလား၊ လက်တွဲမခေါ်ရင် ငါဘာမှမလုပ်နိုင်ပါလား ဆိုပြီး သိသွားတဲ့ အဆင့်ဖြစ်တယ်။ ဒီအဆင့်မှာ သင့်ရဲ့ အဓိက အခက်အခဲဟာ အချိန်တိုင်း error ထိုင်ရှင်းနေရမယ်၊ ဘယ်လိုမျိုးမေးခွန်းကိုမေးရင်တော့ သင်လိုချင်တဲ့ အဖြေရမယ်ဆိုတာ သေချာမသိတဲ့အဆင့်ဖြစ်မယ်။

(၃) စိတ်ပျက်ခြင်း ကန္တာရ ကတော့ ရှည်လျားထွေးပြားပြီး အထီးကျန်ဆန်တဲ့ ခရီးလမ်းဖြစ်တယ်။ သင်ဟာ လမ်းမှန်ရောက်သယောင်ယောင်နဲ့ ဒီနားမှာပဲ ပတ်ချာလည်နေမယ်။ လမ်းတလျှောက်မှာ သင်ဟာ အရင်းအမြစ်တွေကို ငတ်မွတ်ဆာလောင်နေမယ်။ ဒီအဆင့်မှာ လမ်းမှားပို့မဲ့ ပုံရိပ်ယောင်တွေကို သတိထားဖို့တော့လိုမယ်။

(၄) ခပ်လန်းလန်း တက်လမ်း ကတော့ သင်ကန္တာရကြီးကို စမ်းတစ်ဝါးဝါးနဲ့ ဖြတ်သန်းပြီးတဲ့နောက် Application တစ်ခုကို ဘယ်လိုဖန်တီးရတယ်ဆိုတာ သိသွားတဲ့ အဆင့်ဖြစ်တယ်။ ဒါပေမဲ့ သင့်ရဲ့ code တွေကတော့ လှပသပ်ရပ်နေဉီးမှာ မဟုတ်ဘူး။ သင့်ရဲ့ software လေးက မှန်မှန်ကန်ကန် အလုပ်လုပ်နေမယ်၊ သင့်ဟာ design pattern အချို့ကိုနားလည်လာမယ်၊​ သင့်သူငယ်ချင်းတွေကလည်း သင့်ရဲ့ software လေးက မိုက်တယ်ဘာညာ ပြောကြမယ်၊​ သင့်ရဲ့ ယုံကြည်မှုတွေလည်း မြင့်တက်လာမယ်။ ဒါပေမဲ့ သင်ဟာ သင့်ရဲ့ Code structure ကိုမကြည့်ရဲလောက် အောင် ရှုပ်ပွနေမယ်၊​​ သင့်ရဲ့ code တွေကလည်း “production-ready” မဖြစ်သေးတာကိုတွေ့ရမယ်။

ကျွန်တော် developer အယောက်တစ်ရာလောက်ကို မေးမြန်းကြည့်တဲ့အခါမှာ အဖြေတွေက တော်တော်ထပ်တူကြနေတာတွေ့ရမယ်။ ဒီ blog post ရဲ့ ရည်ရွယ်ချက်က သင့်ခရီးစဉ်တစ်လျှောက်မှာ ကြုံတွေ့ရမဲ့ အခက်အခဲတွေကို ကြိုတင်ခန့်မှန်းပြီး ပြင်ဆင်ထားဖို့အတွက် ရေးသားရခြင်းဖြစ်တယ်။ ကဲ အဆင့်(၂) ကိုဆက်သွားရအောင်။

အဆင့် (၂) ရှုပ်ထွေးမှု တောင်စောက်

ဆိုတော့ လက်တွဲခေါ် ခရီးပြီးတဲ့နောက်မှာ သင်ဟာ code challenges လေးတွေ ပြီးနေမယ်၊ badges လေးတွေရမယ်။ သင့်ရဲ့ စွမ်းဆောင်ရည်နဲ့ ယုံကြည်မှုကလည်း တက်လာတယ်။ သတိတော့ထားဖို့လိုမယ်။ ဘာလို့လဲဆိုတော့ သင်ဟာ “မတရား ပျော်ရွှင်ဝမ်းမြောက်မှု တောင်စွန်း” ကိုရောက်နေတယ်။

ဒီနေရာမှာတော်တော်များများက ခြေချော်ပြီးတဲ့နောက် “Coding ဆိုတာခက်ပါတယ်ကွာ” ဆိုတဲ့ နေရာကို ရောက်သွားကြတာများတယ်။ ဒီအဆင့် ကို ဘယ်အချိန်မှာ ကျော်လွှားရလဲဆိုတာကတော့ သင့်ဟာ ကွန်ပျူတာရှေ့စထိုင်မယ်၊ သင့် text editor လေးကိုဖွင့်လိုက်မယ်၊ website တွေက fancy လုပ်ထားတဲ့ editor တွေ၊ hint လေးတွေမပါပဲ project တစ်ခုကို အစကနေ စလုပ်တဲ့အချိန်ပဲဖြစ်တယ်။

စစမှာတော့ tutorial လေးဖတ်လိုက်၊ Stackoverflow လေး ပြေးကြည့်လိုက်နဲ့ အဆင်ပြေနေမယ်။ တစ်ချိန်ချိန်မှာတော့ သင်ဟာ text file ဗလာကနေ မှော်ဆန်ဆန် ဖန်တီးရမယ်။ ဒီအချိန်မှာတော့ သင့်ရဲ့ ယုံကြည်မှုတွေဟာ တစ်ဟုန်ထိုး ကျသွားလိမ့်မယ်။

ရှုပ်ထွေးမှု တောင်စောက်

ဆိုတော့ သင်ဟာ စဖန်တီးတယ်။ မနည်းအလုပ်လုပ်အောင် လုပ်ထားတဲ့ code တွေနဲ့ ပတ်ချာလည် ရမ်းနေမယ်။ Bugs တွေဆိုတာလည်း တစ်သီတစ်တန်းကြီးတက်နေမယ်။ အောင်မြင်မှုဆိုတာလည်း Google မှာ keyword လေး မှန်သွားတဲ့ အချိန်လောက်ပဲရှိမယ်။

ဒါက ဆရာ၊ ဆရာမတွေအနေနဲ့ရော ကျောင်းသားတွေအတွက်ပါ စိတ်ရှုပ်ဖို့ကောင်းလောက်တဲ့ အချိန်ကာလဖြစ်တယ်။ Programming ဆိုတာ လူတိုင်းအတွက်မဟုတ်ပေမဲ့ ကျောင်းသားတွေကို တက်စေတော်စေချင်တယ်၊ တစ်ခါတစ်ရံမှာ အခက်အခဲတွေကြားထဲကနေပြီးတော့မှ ဆရာ့ဆရာ့ဖြစ်သွားတဲ့သူတွေလည်းရှိတယ်။

လက်တွဲခေါ်ပြီးတဲ့အနောက်မှာ ကျောင်းသားတွေက တောင်စောက်ကနေ တွန်းချခံလိုက်ရပြီး ပျံသန်းဖို့ ကြိုးစားကြရတယ်။ တော်တော်များများက အတောင်တွေကို မဖြန့်ရဲကြပဲ ကျောက်ဆောင်တွေကြားမှာ လုံးလည်ချာလည် လိုက်သွားတာများတယ်။

ကြောက်စရာအကောင်းဆုံးက သင်ဟာ အခက်အဲတွေရဲ့ အစပဲရှိသေးတယ်။ Egypt ရဲ့ အဌမမြောက် ကပ်ဘေးကျရောက်သလိုမျိုး bug တွေရှင်းပြီးပြီ၊ Project တစ်ခုနှစ်ခုလောက်ပြီးပြီဆိုရင်တော့ ရှုပ်ထွေးမှု တောင်စောက်ကို ကျော်ဖြတ်ပြီးပြီလို့ ဆိုလို့ရပါတယ်။

ရှုပ်ထွေးမှု တောင်စောက်ကို ဖြတ်ပြီးတဲ့သူတိုင်းက သူတို့ ဘဝခရီးမှာ Programming ကိုလုပ်တော့မယ်ဆိုပြီး ဆုံးဖြတ်ချက်ချပြီးတဲ့သူတွေဖြစ်ကြတယ်။​ တော်တော်များများကတော့ တောင်စွန်ကို မကျော်ရဲပဲ ကျန်ခဲ့ကြတယ်။

အဓိက အချက်နှစ်ချက်

ဘာလို့ ပထမအဆင့်နဲ့ ဒုတိယအဆင့် တော်တော်ကွာရတာလဲ။ ဒါကိုနားလည်သွားမယ်ဆိုရင် သင်အခက်တွေ့နေတာက သင်ကြောင့်မဟုတ်ပဲ သူ့သဘောသဘာဝအရကို ခရီးက ဒီလိုဖြစ်နေတယ်ဆိုတာသိသွားလိမ့်မယ်။

အဓိကအချက်နှစ်ချက်ရှိတယ်။ အရင်းအမြစ်သိပ်သည်းစ နဲ့ တတ်ကြွမ်းနားလည်မှုနယ်ပယ် ပဲဖြစ်တယ်။

အရင်းအမြစ်သိပ်သည်းစ

ကျွန်တော်အပေါ်မှာ ပြောခဲ့သလိုပဲ သင် စစလေ့လာတဲ့အချိန်မှာ အရင်းအမြစ်တွေက မအများကြီးက လက်တွဲခေါ်သွားလိမ့်မယ်။

“Learn to Code” ဆိုပြီးရှာလိုက်တာနဲ့ Google မှာကျလာတဲ့ result ကမနည်းမနောပဲ။ Video တွေကော၊​ tool တွေကော ဆုံဆုံလင်လင်ရှိနေတာက တကယ်ကောင်းပါတယ်။

ဒါပေမဲ့ တစ်ဖြည်းဖြည်း အဆင့်တက်လာတာနဲ့အမျှ အရင်းအမြစ်သိပ်သည်းစက နည်းသထက်နည်းလာတယ်။ တတ်ပြီးသားသူတိုင်းကို မေးလိုက်တာနဲ့ သူတို့က သင့်ကို ဒီအချက်က မှန်ကန်ကြောင်း၊​ အစပထမအရင်းအမြစ်နဲ့ နောက်ပိုင်းအရင်းအမြစ် ကွာခြားမှုရှိကြောင်း ပြောလိမ့်မယ်။

တတိယအဆင့်ရောက်ပြီး သင့်ရဲ့ တတ်ကြွမ်းနားလည်မှုနယ်ပယ် တစ်ဟုန်တိုး မြင့်တက်လာတာနဲ့ ဒီ ပြဿနာကပိုဆိုးလာတယ်။ အဲဒါကြောင့်လည်း တတိယအဆင့်ကို စိတ်ပျက်ခြင်း ကန္တာရ လို့တင်စားတာဖြစ်တယ်။ ဒါကို ကျော်လွှားသွားတဲ့လူတိုင်းက ဘယ်လိုဖြစ်ရင် အဖြေကို ဘယ်လိုရှာရမယ်၊ ရလာတဲ့ အရင်းအမြစ်ကို ဘယ်လိုသုံးရမယ်ဆိုတာလည်း ကျွမ်းကျင်သွားကြတဲ့သူတွေဖြစ်တယ်။

အဆင့်တိုင်းမှာ အရင်းအမြစ်သိပ်သည်းစဘယ်လိုရှိတယ်ဆိုတာ တစ်ချက်ကြည့်ရအောင်။ (မျဉ်ကြောင်းများလေ သိပ်သည်းစများလေ ဖြစ်တယ်)

အရင်းအမြစ် သိပ်သည်းစ

တတ်ကြွမ်းနားလည်မှု နယ်ပယ်

နောက်တစ်ချက်ကတော့ တတ်ကြွမ်းနားလည်နယ်ပယ် ပဲဖြစ်တယ်။ ဒါကဘာလဲဆိုတော့ အဆင့်တစ်ဆင့်ပြီးမြောက်ဖို့ သင်ဟာ ဘယ်လောက်ထိ တတ်ကြွမ်း နားလည်နေရမလဲဆိုတာကို ဖော်ပြပေးတယ်။

တတ်ကြွမ်းနားလည်မှုစွမ်းရည်

စလေ့လာတဲ့အချိန်မှာ သင်သိထားရမဲ့ အချက်တွေက နည်းတယ်။ ဘယ် language မှာမဆိုသိထားသင့်တဲ့ looping ဘယ်လိုပတ်တယ်၊ Condition ဘယ်လိုစစ်တယ်၊ အစရှိသဖြင့် အခြေခံ syntax လောက်ရရင် အဆင်ပြေတယ်။ အခြေခံ အချက်တွေလောက်ပဲ ဖြစ်တဲ့အတွက်ကြောင့် နယ်ပယ်က အဲလောက် ကျယ်ပြန့်မှု မရှိဘူး။

အခြေခံပြီးတာနဲ့ သင်ဟာ အများကြီး တတ်ကြွမ်းဖို့ လိုလာတယ်။ Error တွေကို ဖြေရှင်းတတ်ရမယ်။ Code တစ်ခုကို ဘယ်အချိန်မှာ ဘယ်လိုသုံးရတယ်ဆိုတာ နားလည်နေရမယ်။ အဖြေမှန်ဆိုတာမရှိတဲ့အတွက် ရှုပ်ထွေးမှုတွေဖြစ်လာတယ်။

တတိယအဆင့်ရောက်သွားပြီဆိုရင်တော့ သိရမဲ့အရာတွေ ပိုပြီး များလာတယ်။ ဘယ် tools တွေကို သုံးရမလဲ၊​ ဘယ် language ကို သေချာလုပ်ရမလဲ၊ CS အခြေခံတွေ၊ code တွေ ဖတ်ရ ပြင်ရအဆင်ပြေအောင် ဘယ်လိုရေးရမလဲ၊ Object-oriented အခြေခံတွေ၊​ code style တွေ၊ ဘယ်လို မေးခွန်းမျိုးမေးရင် ထိရောက်သလဲ အစရှိသဖြင့် များပြားလာတယ်။ Google တစ်ခါခေါက်လိုက်တိုင်း သင်ဟာ ဝင်္ကပါတစ်ခုထဲရောက်သွားသလို ဖြစ်နေမယ်၊ သင်နားမလည်တဲ့အရာတွေ အများကြီး ကျလာမယ်။

သင်မသိတဲ့အရာကို မသိနိုင်ဘူး

သင်ဟာ အရှိန်လေးနည်းနည်းရလာပြီး ကန္တာရကို ထွက်ခါနီးကျတော့မှာ သင်နားလည်ရမဲ့ နယ်ပယ်တွေက နည်းလာတယ်။ ဒီအချိန်မှာတော့ သင်ဟာ technology တစ်ခုကို ရွေးချယ်ပြီးသွားပဲပြီ၊ Ecosystem တစ်ခုမှာ သင့် language က ဘယ်ကနေတော့ ပါဝင်နေတယ်ဆိုတာလဲ သိသွားပြီ၊ သင်မသိတဲ့အရာတွေကိုလဲ သင်သိသွားပြီ။ သင့် ခရီးစဉ်ကို ဘယ်လမ်းက ဆက်သွားရမလဲဆိုတာလဲ သိသွားပြီ။

အဆင့်(၃) စိတ်ပျက်ခြင်း ကန္တာရ

ခုနကပြောခဲ့တဲ့ အချက်နှစ်ချက်ကို သိသွားပြီဆိုရင်တော့ ရှုပ်ထွေးမှု တောင်စောက်ဆိုတာ အပြောင်းအလဲကာလဆိုတာ သင်သိသွားလိမ့်မယ်။ နောက်တစ်ဆင့်မှာတော့ အရင်းအမြစ်တွေ နည်းလာပြီး နားလည်ရမှာတွေများလာတယ်။ ဒီတော့ သင့်အတွက် အခက်အခဲတွေအများကြီး တွေ့ရလိမ့်မယ်။​ ဒီအခြေအနေကို စိတ်ပျက်ခြင်း ကန္တာရလို့ ခေါ်ပါတယ်။

အတိုချုပ်ရမယ်ဆိုရင် ကန္တာရဆိုတာ သင့်အဖို့ အဆုံးရှိတယ်ဆိုတာ သိနေပေမဲ့ အဆုံးကို ဘယ်လိုသွားရမလဲ ဖြစ်နေတဲ့ ခရီးပဲဖြစ်တယ်။

စိတ်ပျက်ခြင်း ကန္တာရ

ကန္တာရကြီးက အန္တရာယ်တွေနဲ့ ပြည့်နှက်နေတယ်။ လမ်းမှန်သယောင်ယောင် ပုံရိပ်ယောင်တွေကို သင်အများကြီးတွေ့လိမ့်မယ်။ သင်လိုချင်တဲ့ အဖြေလိုမျိုး ဖြစ်နေတဲ့ အရင်းအမြစ်တွေနောက်ကို သင်လိုက်လိုက်မိရင် တစ်ချိန်ချိန်မှာတော့ သင်က အရင်နေရာကိုပဲ တစ်ဝဲလယ်လယ်နဲ့ ပြန်ရောက်လာလိမ့်မ်ယ်။

Coursera က MOOC course တွေ၊ Udacity နဲ့ edX တို့က course တွေသင်တက်မိလိမ့်မယ်။ ဒါမှမဟုတ်လဲ tutorial တွေလိုက်လုပ်မယ်။ သင့်ရဲ့ ကန္တာရထဲက မြန်မြန် လွတ်မြောက်ချင်တဲ့စိတ်ကြောင့် လက်တွဲခေါ် အပျော်ခရီး တုန်းက ဘယ်ဟာမှ လွယ်လွယ်နဲ့မရဘူးဆိုတဲ့ သင်ခန်းစာကို သင်မေ့သွားမယ်။ ဒီတော့ course တွေက ကတိတွေပေးတိုင်း ယုံလွယ်ပြီး မျောက်သစ်ကိုင်းလွတ်သလို တစ်ခုပြီးတစ်ခု လျှောက်လုပ်နေမယ်။

ဘယ်သူကဘာတွေပဲ ပြောပြော Coding ဆိုတာကို တစ်ပတ်၊ တစ်လ ဒါမှမဟုတ် သင်တန်းတစ်ခုတည်းနဲ့ ဘယ်လိုမှ မတတ်နိုင်ဘူး။

သင် တတ်ကျွမ်းရမဲ့အရာတွေက သင်ထင်ထားတာထက်ကို အစမတန်များနေတာကို တွေ့ရမယ်။ သင်ဟာ apps အချို့ကိုတော့ အဆင်ပြေပြေ ဖန်တီးနိုင်နေပြီဆိုရင်တောင် တကယ့် professional အဆင့်ထိရောက်အောင် ဘယ်လိုလုပ်ရမလဲဆိုပြီး အမြဲမေးခွန်းထုတ်နေလိမ့်မယ်။ သင့်ရဲ့ ခရီးရဲ့ ဘယ်နေရာရောက်နေပြီဆိုတာကို တိုင်းတာရခက်တယ်။ သင် လေ့လာနေတာတွေက မှန်ကန်ရဲ့လား? ဘာတွေကို ဆက်လေ့လာရမလဲ? အစရှိသဖြင့် မေးခွန်းတွေ အမြဲထုတ်နေမိလိမ့်မယ်။

သင်ဟာ လမ်းမှန်ကို ရောက်နေတယ်ဆိုရင်တောင် ဘယ်လောက်ဆက်လျှောက်ရဉီးမလဲ သိဖို့ခက်တယ်။ သင့်လိုချင်တဲ့ အရာတစ်ခုကို မှန်မှန်ကန်ကန်နဲ့ အစအဆုံး ဖန်တီးနိုင်ပြီဆိုတဲ့အချိန်ကျမှ သင်ဟာလမ်းမှန်ကိုရောက်နေမှန်းသိနိုင်တယ်။ မစိုးရိမ်ပါနဲ့။ ကြံ့ခိုင်တဲ့ စိတ်ဓာတ်ရယ်၊ သံလိုက်အိမ်မြှောင်ကောင်းကောင်းရယ်နဲ့ဆိုရင် သင့်ရဲ့ ပထမဆုံး project အချို့ကို ချပြနိုင်တဲ့ အဆင့်ထိရောက်လာမှာပါ။

လမ်းခရီးက ခက်ခဲကြမ်းတမ်းတယ်ဆိုပေမဲ့ ဒီလိုဆိုတော့လည်း မဆိုးပါဘူးလေ။

အဆင့် (၄) ခပ်လန်းလန်း တက်လမ်း

သင်ဟာ ကန္တာရကြီးကို ဖြတ်သန်းပြီးတဲ့နောက်မှာတော့ သင့်ရဲ့ ယုံကြည်မှုတွေဟာ တိုးတက်လာတာကိုတွေ့ရမယ်။ သင့်ရဲ့ Google-fu က ကျွမ်းကျင်လာမယ်၊ blog posts အရှည်ကြီးတွေကိုလည်း ဖတ်တတ်လာမယ်။​ Framework တစ်ခု​(သို့) Language တစ်ခုကို အသုံးချပြီး အလုပ်လုပ်တဲ့ application တစ်ခုဖြစ်လာအောင် ကျွမ်းကျွမ်းကျင်ကျင် ဖန်းတီးတတ်လာမယ်။

ဒါကတော့ ခပ်လန်းလန်း တက်လမ်းပဲဖြစ်တယ်။

ခပ်လန်းလန်း တက်လမ်း

အပြင်ပိုင်းကြည့်ရင်တော့ အဆင်ပြေနေမဲ့ အတွင်းပိုင်းမှာ စုတ်ပြတ်နေတာကို သင်ကိုယ့်သင် သတိထားမိမယ်။

Application က တော့ အလုပ်လုပ်ပေမဲ့ နောက်ကွယ်မှာ သင့်ကိုယ်သင် အဲလောက် မတော်သေးမှန်းသိနေတယ်။ သင့်ရဲ့ code တွေက ဖာထားတဲ့ အရာတွေ ထပ်နေတယ်၊ အဆိုးဆုံးက သင့်ကိုယ်သင် ဘယ်အပိုင်းကတော့ အဆင်ပြေပြီး ဘယ်အပိုင်းက လိုနေသေးတယ်ဆို မသိတာပါပဲ။ သင့်ကိုသင် အမှားတစ်ခုလုပ်မိတဲ့အခါတိုင်းမှာ “ဒါလေးက လွယ်လွယ်လေးကို ငါဘာလို့ မရတာပါလိမ့်” ဆိုပြီး သံသယတွေဝင်နေတယ်။

ဒါက နှစ်ဖက်ချွန်အဆင့်လို့ပြောလို့ရတယ်။ တစ်ဖက်မှာတော့ သင်ဟာ ဘာလာလာ တောင့်ခံနိုင်တဲ့ ဗလတောင့်တောင့် လူသန်ကြီးလိုဖြစ်နေပြီး နောက်တစ်ဖက်မှာတော့ စမ်းတဝါးဝါးဖြစ်နေတဲ့ လူငယ်လေးတစ်ယောက်လို ဖြစ်နေတယ်။ သင်တိုးတက်လာလေ တစ်ယောက်ယောက်ကများ ငါယောင်ဆောင်နေတာ သိသွားမလားဆိုတဲ့ သင့်ရဲ့ကြောက်စိတ်က တိုးလာလေလေဖြစ်နေတယ်။

သင့်ကိုသင် developer တစ်ယောက်ဖြစ်နေပြီဆိုတာသိပေမဲ့ သင်ရေးတဲ့ code နဲ့ တကယ့် professional တစ်ယောက်ရေးတဲ့ code တွေက ကွာဟမှုရှိနေတာကို သင်သတိပြုမိမှာပါ။

တစ်ဖြည်းဖြည်းနဲ့တော့ သင်ဟာ ဒါကို ကျော်လွှားနိုင်မှာပါ။ စိတ်ပျက်ခြင်း ကန္တာရကိုကော၊ ရှုပ်ထွေးမှု တောင်စောက်ကိုကော ဖြတ်သန်းခဲ့ပြီးပြီပဲ။ မလုပ်နိုင်စမရာမရှိပါဘူး။​သင်ဟာ အရင်ကထက်လျှင်မြန်စွာ၊ ထက်မြတ်စွာနဲ့ ပညာအသစ်တွေကို လေ့လာနိုင်တဲ့ အဆင့်ကိုရောက်နေပြီး ဘာမဆို တက်လမ်းတွေနဲ့ပဲ ပြည့်နေမှာပါ။ မကြာခင်မှာပဲ သင်ဟာ chess ပွဲတစ်ခုမှာ ဘယ်နည်းနဲ့အနိုင်တိုက်ရမလဲဆိုတာ ဆုံးဖြတ်တတ်သလို နည်းလမ်းတွေ တော်တော်များများကို ကျွမ်းကျင်သွားတဲ့ အဆင့်ကိုရောက်လာမှာပါ။

ဒီတက်လမ်းက သင်ထင်ထားတာထက်ကို ရှည်လျားတဲ့ ခရီးတစ်ခုဖြစ်တယ်။ တစ်ခါတစ်ယံမှာ မပြီးနိုင်သယောင်ရှိပေမဲ့ သင်ဟာ ဒီခရီးကိုပဲ တစ်စိုက်မတ်မတ် ဆက်လျှောက်မယ်ဆိုရင် သင်ဟာ အလုပ်ရတဲ့အဆင့်ကိုရောက်ရှိမှာပဲဖြစ်တယ်။

ခရီးပုံစံ ဘယ်လိုရှိလဲ

အထက်ကပြောခဲ့တဲ့ အဆင့်တွေကို ခြုံငုံပြီးကြည့်မယ်ဆိုရင် အောက်ပါအတိုင်းတွေ့ရမှာဖြစ်တယ်။

Coding ခရီးစဉ်

ခရီးလမ်းကြောင်းကို သိပြီဆိုရင် ဘယ်လိုစလျှောက်ရမလဲဆိုတာ တစ်ချက်ကြည့်ရအောင်။

အဆုံးထိရောက်အောင် ဘယ်လိုလုပ်

လမ်းခရီးက ခက်ခဲတယ်လို့ထင်ရတယ်၊ ပွင့်ပွင့်လင်းလင်းပြောရရင် တကယ်လည်း ခက်တယ်။ သင်ဘာကို ကြုံတွေ့ရမလဲဆိုတာသိထားဖို့လိုမယ်၊ တစ်ယောက်ထည်း လျှောက်မယ်ဆိုရင် ပိုလို့တောင် သိဖို့လိုမယ်။ Coding ဆိုတာ လူတွေပြောသလို မလွယ်ပါဘူး၊ ဒါပေမဲ့ သင်ထင်သလောက်လဲ မခက်ပါဘူး။ အဆင့်တစ်ဆင့်ချင်းစီကိုဘယ်လို ဖြတ်သန်းရမလဲကျွန်တော်ဆက်ပြောပြပါမယ်။

သင့်ရဲ့ ခရီးစဉ်လမ်းကြောင်း

အဆင့်(၁) လက်တွဲခေါ် အပျော်ခရီး ကိုဖြတ်သန်းခြင်း

လက်တွဲခေါ် အပျော်ခရီးမှာ အရင်းအမြစ်တွေ ပေါပေါလောလောရှိတာကြောင့် အရာတိုင်းက ပျော်စရာတွေ ဖြစ်နေမှာပါ။ အချက်ကျကျစဉ်းစားတတ်အောင် ဒီအရာတွေက သင့်ကို သေချာသင်ပေးပါလိမ့်မယ်။ Coding လေ့လာရတာ ပျော်ဖို့ကောင်းတဲ့အချိန်မှာ ပေါ့ပေါ့ပါးပါးလေ့လာရင်း ဒီနှစ်ချက်ကို ခေါင်းထဲထည့်ထားပါ။

၁။ အရင်းအမြစ်မျိုးစုံလျှောက်စမ်းကြည့်ပါ။ တစ်ခုပြီးတစ်ခု စမ်းကြည့်ရင်း သင်နဲ့ အဆင်ပြေတာ၊​ သင်စိတ်ဝင်စားတဲ့ project မျိုးကိုရှာပါ။ ဉပမာ Khan Academy ရဲ့ quick challenges တွေပဲဖြစ်ဖြစ်၊ Codecademy ရဲ့ exercise တွေပဲဖြစ်ဖြစ်၊​ Chris Pine ရဲ့ Learn to Program စာအုပ်ပဲဖြစ်ဖြစ်၊ Code School ရဲ့ try Ruby ကိုပဲဖြစ်ဖြစ် စမ်းကြည့်ပါ။ ဒီအဆင့်မှာ အရာအားလုံးကို လက်ခံထားပါ၊ သင်လေ့လာသင့်တာတွေ အကုန်လေ့လာပါ၊ ဘာလို့လဲဆိုတော့ ဒီအဆင့်မှာ code တွေအားလုံးက တူတူပါပဲ။

၂။ ပြီးရင် တစ်ခုကို ရွေးချယ်လိုက်ပါ။ ရွေးချယ်ထားတဲ့အရာမှာပဲ စွဲစွဲမြဲမြဲနေပါ။ Course တစ်ခုပြီးတဲ့ အထိ တစ်စိုက်မတ်မတ်လုပ်သွားပါ။​ ပြီးပြီဆိုရင် ကိုယ်တိုင်ကိုယ်ကျ project တစ်ခုကို အစကနေ စလုပ်ဖို့ ပြင်ထားပါ။

အဆင့်(၂) ရှုပ်ထွေးမှု တောင်စောက် ကိုဖြတ်သန်းခြင်း

တော်တော်များများက ဒီအဆင့်ကို ဖြတ်ကိုဖြတ်ရပါတယ်။ Developer ဖြစ်လာဖို့က develop လုပ်မှပဲရမှာပါ။ သင့်ကိုသင် တစ်ခုခု ဖန်တီးနေသယောင်ယောင် tutorial တွေလျှောက်လုပ်နေလို့ရတယ်။​ ဒါပေမဲ့ တစ်ချိန်ချိန်မှာတော့ သင်ဟာ project တစ်ခုလုံးကို အစအဆုံး လုပ်ရမှာပါပဲ။ ဒီအဆင့်ကိုဖြတ်မယ်ဆိုရင်

၁။ တစ်ယောက်ယောက်နဲ့ တွဲလုပ်ပါ။ တွဲလုပ်မဲ့သူက ကိုယ့်လို ဖြစ်နေရင်တောင် တွဲလုပ်ဖြစ်အောင် လုပ်ပါ။ error တစ်ခုကို လူနှစ်ယောက်ဝိုင်းဖြေရှင်းတာက ဘယ်လောက်ပို မြန်တယ်ဆိုတာသင် သတိထားမိလမ့်မယ်။

၂။ တစ်ခြားသူရေးထားတဲ့ code ကိုလေ့လာပါ။ Patterns တွေနဲ့ အကျွမ်းတဝင်ဖြစ်ဖို့ ကောင်းဆုံးနည်းလမ်း တစ်ခုပါပဲ။ ရေးထားတဲ့သူက ဘာလို့ဒီနေရမှာ​ ဒီလိုရေးထားတယ်ဆိုတာ သိအောင်လုပ်ပါ။ တစ်ခြားသူရေးထားတဲ့ ကုဒ်အပိုင်းအစလေးတွေကို မျက်စိယှဉ်ယှဉ်နဲ့ လိုက်ဖတ်ပါ။

၃။ သေးသေးလေးတွေ ဆက်တိုက်ဖန်တီးပါ။ သင့်ခေါင်းထဲမှာတော့ လုပ်ချင်တာ ကြီးကြီးမားမားတစ်ခုရှိလိမ့်မယ်။ အဲဒါအတွက် အဆင့်သင့်ဖြစ်ဖို့​​ ဒီအဆင့်မှာ သင်ဟာ error ဖြေရှင်းတတ်အောင်၊ အရင်းအမြစ်တွေ ရှာတတ်အောင် လေ့ကျင့်ဖို့က သေးသေးလေးတွေကို မရပ်မနားဖန်တီးတာအကောင်းဆုံးဖြစ်လိမ့်မယ်။

အဆင့်(၃) စိတ်ပျက်ခြင်း ကန္တာရ ကိုဖြတ်သန်းခြင်း

သင်ဟာ error ဖြေရှင်းတဲ့နေရာမှာ ကျွမ်းကျင်ပြီဆိုရင်တော့ နောက်ပြဿနာက တတ်ကျွမ်းနားလည်မှုလိုအပ်ချက်နဲ့ အဲဒီ လိုအပ်ချက်ကို ဘယ်လိုရအောင် လုပ်ရမလဲဆိုတဲ့ အချက်ပဲဖြစ်တယ်​။​ ဒီ အဆင့်မှာ အလိုအပ်ဆုံးက ကောင်းမွန်တဲ့ လမ်းကြောင်းတစ်ခုပဲ။ လမ်းမှားတွေက သင့်အချိန်ကို မလိုအပ်ပဲ ကုန်ဆုံးစေမှာဖြစ်တယ်။ ဒီအဆင့်ကိုဖြတ်မယ်ဆိုရင်

၁။ ပန်းတိုင်တစ်ခု ထားပါ။ သင်ပြီးမြောက်ချင်တာ ဘာလဲ ဆိုတာကို သင်သိမှရမယ်။ မဟုတ်ရင်တော့ စိတ်ဝင်စားဖို့ကောင်းတဲ့အရာ တွေနောက်လျှောက်လိုက်ရင်း ဘာမှသေချာတတ်မြောက်မှုမရှိပဲ အချိန်တွေကုန်သွားလိမ့်မယ်။

၂။ ကောင်းမွန်တဲ့လမ်းကြောင်းသတ်မှတ်ပါ။ သင့်ရဲ့ ပန်းတိုင်ကို တစ်သမတ်တည်းရောက်စေမဲ့၊ ပြီးရင် တစ်ကယ်ရောက်မရောက်လည်း စစ်စေးလို့ရမဲ့ လမ်းကြောင်းတစ်ခုသတ်မှတ်ပါ။ Marketing အလိမ်အညာတွေကို ကျော်လွှားပြီး ဒီ course ကတကယ်ကော လမ်းမှန်လားဆိုတာ ဝေခွဲတတ်ဖို့ လိုပါတယ်။

၃။ တစ်သမတ်တည်းလုပ်ပါ။ လမ်းကြောင်းရွေးပြီးပြီဆိုရင် ဒီလမ်းကြောင်းကို ဆုံးအောင်လျှောက်ပါ။ သင်ဟာ code ရေးရတာ ဝါသနာပါတယ်ဆိုရင် သင်ဟာ ခပ်လန်းလန်း အရာတွေအကုန်လုံးကို လေ့လာဆိုစိတ် ပြင်းထန်တဲ့လူလည်းဖြစ်ပါလိမ့်မယ်။ Coding တစ်ခုက ခက်လာတဲ့အခါမှာ သင်ဟာ နောက်တစ်ခုကို ခုန်မကူးပဲ အဆုံးတိုင်ရောက်အောင် လုပ်ပါ။

သင်ဟာ လမ်းကြောင်းမှန်သွားပြီဆိုရင်တော့ ကန္တာရထဲမှာ လပေါင်းများစွာ ပိတ်မိနေမှာ မဟုတ်တော့ပါဘူး။

အဆင့်(၄) ခပ်လန်းလန်း တက်လမ်း ကိုဖြတ်သန်းခြင်း

ဒီအဆင့်မှာတော့ သင်ဟာ application တွေတော့ ဖန်တီးတတ်နေပြီ၊​​ ဒါပေမဲ့ developer တစ်ယောက်ဖြစ်ချင်နေမယ်။ ဒီအဆင့်ကိုဖြတ်သန်းမယ်ဆိုရင်

၁။ အကောင်းဆုံးလမ်းစဉ်တွေကို ရှာဖွေလေ့လာပါ။ သင်ဟာ အဖြေ နဲ့ အကောင်းဆုံး အဖြေ ကို ခွဲတတ်ရမယ်။ ဒီလို အကောင်းဆုံးလမ်းစဉ်တွေဟာ သင့်ရဲ့ project နဲ့ production-ready project တစ်ခုကို ခွဲခြားပေးနိုင်တဲ့အရာတွေဖြစ်တယ်။

၂။ သင့်ယူဆချက်ကို ဆန်းစစ်ပါ။ သင့်ရဲ့ အသိပညာတွေထဲမှာ လိုနေတဲ့ နေရာလေးတွေရှိလိမ့်မယ်။ ဒါတွေကို ရှာပြီး ဖြေရှင်းဖို့တော့လိုမယ်။

၃။ မလန်းတဲ့အရာတွေကို လုပ်ပါ။ ဒီအချက်က professional တစ်ယောက်နဲ့ သင်နဲ့ကြားက ကွဲပြားချက်တစ်ခုပါပဲ။​ မလန်းတဲ့အရာဆိုတာ coding မဟုတ်တဲ့ testing, data modelling, architecture နဲ့ deployment တို့လိုမျိုးအရာတွေကိုပြောတာပါ။ ဒီအရာတွေက development တစ်ခုမှာ အရမ်းအရေးပါတဲ့ အရာတွေပါ။

ဒီအဆင့်ရဲ့ အဓိက သော့ချက်ကဘာလဲဆိုတော့ feedback တောင်းဖို့ပါပဲ။ ကိုယ့်အားကိုယ်ကိုးပြီး လေ့လာတဲ့ ကျောင်းသာတော်တော်များများက လုပ်တတ်ကိုင်တတ်ပေမဲ့ code ကို လှအောင်ရေးတဲ့ နေရာတွေ၊ modulation တွေမှာ လိုအပ်ချက်တွေရှိတတ်တယ်။ ကိုယ့်ကို မရမက မလှလှအောင် ပြင်ခိုင်းမဲ့၊ မထင်မှတ်ထားတဲ့ မေးခွန်းမျိုးမေးမဲ့၊ လက်တွဲခေါ်မဲ့ သူတစ်ယောက်နဲ့ တွဲလုပ်ခြင်းက အကောင်းဆုံးပါပဲ။

ဆိုတော့ အဆုံးထိလျှောက်နိုင်ပါ့မလား…

ဒါက သင့်အတွက် ခက်ခဲမယ်လို့ထင်ရပေမဲ့ မကြောက်ပါနဲ့။ သင့်လိုလူတွေအများကြီး ဒီခရီးကို အဆုံးထိ လျှောက်ခဲ့ဖူးပါတယ်။ သင့်လျှောက်ရမဲ့ လမ်းကိုသိပြီဆိုရင်ပဲ သင့်အတွက် ပြင်ဆင်လို့ရပြီ လို့ပြောလို့ရပါတယ်။ လမ်းခရီးမှာကံကောင်းပါစေလို့ ဆုတောင်းပေးလိုက်ပါတယ်။

Read more

Platform Engineering: Developers for Developers

Platform Engineering: Developers for Developers

Software Development Team တွေကို ချဲ့ထွင်တဲ့အခါမှာ အတားအဆီးမရှိအောင် Process တွေ၊​ စံနှုန်းတွေ၊ Automation အစရှိတွေကို တာဝန်ယူတဲ့ အဖွဲ့တစ်ဖွဲ့ သီးသန့်ထားလေ့ရှိတယ်။ ဒီ Team ကို Platform Engineering လိုခေါ်တွင်တယ်။

lock-1 By Aung Kyaw Paing
Spikes: Making Unknowns Known

Spikes: Making Unknowns Known

ဒီထက်ပိုပြဿနာရှိတာက သေချာမသိပဲလုပ်မယ်ဆိုရင် တစ်ဝက်လောက်ရောက်မှ ဆက်လုပ်ဖို့ အဆင်မပြေတာသော်လည်းကောင်း၊ သွားချင်တဲ့လမ်းကြောင်း မမှန်တာသော်လည်းကောင်းဆိုရင် လုပ်ထားသမျှ သဲထဲရေသွန်ဖြစ်မယ်။ ဒီတော့မသိသေးတဲ့အကြောင်းအရာ တစ်ခုကို နည်းနည်းပါးပါးလောက် နားလည်ဖို့လိုအပ်လာတဲ့အခါမှာ...

By Aung Kyaw Paing
Tips & Tricks for Distributed Remote Collaboration

Tips & Tricks for Distributed Remote Collaboration

အပေါ်ယံလောက်ကြည့်ရင်တော့ ဒါဟာ Co-located team တွေလောက် အလုပ်မတွင်ဘူးထင်ရပေမဲ့ တကယ်ထိရောက်အောင်အလုပ်လုပ်တတ်ရင် Distributed Team ကလည်း သူ့ဟာနဲ့သူ သာတဲ့အချက်တွေရှိတယ်။ ဒီတော့...

By Aung Kyaw Paing
ссс