ဟိုတစ်ရက်က programming လေ့လာတဲ့အချိန်မှာ မှားတတ်တဲ့ အမှားတွေနဲ့ ပတ်သတ်ပြီးရေးထားတဲ့ ဆောင်းပါးက တော်တော်များများအတွက် အသုံးဝင်တယ်ဆိုလို့ဝမ်းသာပါတယ်။ မဖတ်ရသေးရင် အောက်က link မှာဝင်ဖတ်နိုင်ပါတယ်။
https://www.aprogrammer.blog/2020/09/25/mistakes/

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

လေ့လာခဲ့တာတွေကို ပြန်ဆန်းစစ်ပါ.

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

Think out of the box.

ဘယ်အရာကိုပဲလေ့လာခဲ့ လေ့လာခဲ့ အကုန်လုံးကဆုံးခန်းတိုင်သွားသည် ဆိုတာတော့ မရှိပါဘူး။ ကျန်တာတွေကို မိမိဘာသာ ထပ်ပြီး ဖြည့်တင်းလေ့လာရမှာပါ။ ဥပမာ ဆရာက 10 ရဖို့အတွက် 5 + 5 ကိုသင်ပေးလိုက်တယ်ဆို ကိုယ်က 4+6 တို့ 3+7 တို့ စသည်ဖြင့် မိမိ နိုင်သလောက် ထပ်ကွန့်ပြီး apply လုပ်ဖို့ကြိုးစားကြည့်ပါ။ ပြန်လေ့ကျင့်တဲနေရာမှာ ကိုယ်သင်ခဲ့တဲ့အတိုင်းအရာတွေထက် ပိုပြီးထူးဆန်းတာလေးတွေထည့်ကြည့် စဉ်းစားပြီး ဆရာမထည့်လိုက်တာလေးတွေကိုလိုက်ထည့်ကြည့် စသည်ဖြင့် out of the box ကိုကွန့်ပြီး လုပ်ကြည့်ပါ။ အဲ့လိုလုပ်ကြည့်မယ်ဆို real life bugs လေးတွေတတ်လာလိုက်မယ်၊ အဲ့ဒီကမှတစ်ဆင့် debug ပြန်လိုက်ရင်း real life coding နဲ့ ပိုမိုပြီး ထိတွေ့လာပါလိမ့်မယ်။

စလယ်ဆုံး မိမိဘာသာ တစ်ယောက်တည်း ရေးကြည့်ပါ။

အဓိက ကတော့ independence ဖြစ်စေချင်တာပါ၊ စာသင်ခဲ့တဲ့အချိန်တုန်းက လက်တွေ့ project လုပ်ရခဲ့သည်ဆိုသည့်တိုင်အောင် ဆရာ သို့ သူငယ်ချင်းတွေရဲ့ အကူအညီ ယူကောင်းယူခဲ့မိလိုက်မယ်။ တစ်ကယ့် လက်တွေ့မှာ senior တွေရှိကောင်းရှိနိုင်ပေမယ့် ကိုယ့်ကို အမြဲတစ်စေ ကူနေနိုင်မှာမဟုတ်ပါဘူး။ ကိုယ့် အလုပ်ကို ကိုယ့်ဘာသာ တာဝန်ယူပြီး mission accomplish ဖြစ်အောင် လုပ်နိုင်ရမှာပါ။ ပြီးတော့ ဘယ်သူမှကိုယ်မှ မေးစရာမလိုဘဲ လုပ်နိုင်တော့ ပိုပြီး ကောင်းတာပေါ့လေ၊ ဒါကြောင့် အပေါ်မှာပြောခဲ့သလို project idea တစ်ခုခုကို စဉ်းစားပြီး ကိုယ်တိုင်ကိုယ်ကျ စလယ်ဆုံး ရေးကြည့်ပါ။ idea စဉ်းစားတဲ့အခါမှာလည်း Normal crud မဟုတ်ဘဲ real life ဆန်ဆန် idea မျိုးစဉ်းစားကြည့် မစဉ်းစားတတ်တဲ့အဆုံး online မှာ project ideas တွေရှာကြည့်လို့ရတယ်၊ အဲ့ထဲကမှ တစ်ခုခုကို pick up လုပ်ပြီး ဘယ်သူ့အကူအညီမှ ယူစရာမလိုဘဲ ဆုံးခန်းတိုင်သည့်ထိ လေ့ကျင့်ပြီး ရေးကြည့်ပါ။

Open source code တွေ စဖတ်ကြည့်ပါ။

ပွဲမဝင်ခင် အပြင်က လေ့ကျင့်ဆိုသလိုပေါ့။ ဆရာက သင်ပေးလိုက်မှာကတော့ conceptual examples တွေနဲ့ပဲ သင်ပေးလိုက်မှာ. Real life မှာကတော့ တစ်ကယ့် domain flow တွေအတိုင်းသွားမှာပါ။ ဥပမာ POS application တစ်ခုမှာ dog extends animal ဆိုပြီး ဘယ်သူမှသုံးမှာမဟုတ်ပါဘူး။ ဒါက ဥပမာပြောတာ၊ ဆိုလိုချင်တာ ပေးရတဲ့ naming terms တွေက အစ ကွာသွားမယ်၊ POS နဲ့ Booking system မှာတစ်ချို့ code logic တူတဲ့နေရာပါနိုင်ပေမယ့် အခေါ်အဝေါ်က အစမတူတော့ဘူး၊ code logic တွေကလည်း မတူတာများပါတယ်။ အဓိက ပြောချင်တာက real life မှာ projects တွေက တစ်ခုနဲ့တစ်ခုမတူပါဘူး၊ domain အရလည်းကွဲပြားသလို implementation လုပ်ရမယ့်ပုံစံတွေကလည်း ကွဲပြားပါတယ်။ တစ်ကယ့် အလုပ်ခွင်မှာ real life project လုပ်ရတော့မယ်ဆိုလည်း ထိုနည်းလည်းကောင်းပါပဲ။ ကိုယ်သင်ခဲ့ရတဲ့ ပုံစံတွေနဲ့ လုံးဝကွဲထွက်နေမှာဖြစ်ပါတယ်။ domain ကို နားလည်အောင် လုပ်ရတာကတစ်မျိုး၊ technical problems တွေကို ဖြေရှင်းရတာက တစ်ဖုံ စသည်ဖြင့် အခက်အခဲတွေကြုံနိုင်ပါတယ်။ ဒါကြောင့် အပြင်က real life project open source code တွေရှာဖတ်ကြည့်ခြင်းဖြင့် project domain တွေနားလည်အောင် ကြိုးစားကြည့်ပါ။ Project domain ဆိုတာဘာလဲနားမလည်ရင် article သက်သက်ရေးပေးထားပါတယ်။
https://www.aprogrammer.blog/2020/08/21/project-domain/

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

Final words ကတော့ ကိုယ့်ဘက်က ready ဖြစ်အောင် များများလေ့ကျင့်ထားဖို့ပါပဲ။ လေ့ကျင့်တဲ့နေရာမှာလည်း အထောက်အကူဖြစ်အောင် tips တစ်ချို့ ရေးပေးထားပါသေးတယ်။
https://www.aprogrammer.blog/2020/05/29/havetoapply/