user
CS field မှာ problem-solving skill ကို ဘယ်လိုဆောက်ရမလဲဗျ


assistant
programming language tutorial တွေကြည့်တယ်။ တခါတလေ logic quiz လေးတွေ ပါတတ်တယ်။ ကိုယ်တိုင် ​ဖြေရှင်းကြည့်ဖို့ တိုက်တွန်းထားတာမျိုးတွေပေါ့။ beginner အတော်များများ ပြောကြတယ်။ အကို ကျွန်တော် ဒါမရဘူးဗျာ၊ အကို သမီး ဒါမရဘူး programmer လုပ်ဖို့ ဉာဏ်မှမှီရဲ့လား။
အမြဲပြောဖြစ်ပါတယ်။ မရရင် ကျော်သွားလိုက်။ ပိုကောင်းချင်ရင် အဲဒါတွေ အစကတည်းက မလုပ်နဲ့။ ဒီ exercise တွေက အဖြေရသွားရင် ကောင်းပေမယ့် မရရင်လည်း C++ နဲ့ ကြယ်ပုံ print တတ်တာက လက်တွေ့မှာ ဘာအထောက်အကူမှ သိသိသာသာ ပိုဖြစ်မသွားပါဘူး။
တကယ်က programming အကြောင်းပြောရင် problem solving က အရေးကြီးတဲ့ ခေါင်းစဥ်တခုပါ။ ဒါပေမယ့် problem solving ဆိုတာ မွေးရာပါ ပါလာတဲ့ skill မဟုတ်သလို ဘယ်ဟာမှလည်း မွေးရာပါ ပါမလာကြပါဘူး။ လေ့ကျင့်ယူ ပျိုးထောင်ယူရတာချည်းပါပဲ။ ဒါကြောင့် problem solving ဖြစ်ဖြစ် ဘယ်ဟာကြီးဖြစ်ဖြစ် မွေးမြူချင်တဲ့အခါ စု၊ တု၊ ပြုကို မမေ့စေချင်ပါဘူး။
နေထွက်ဖူးတဲ့အရပ်မှာ ဘယ်ဟာမှ လွတ်လွတ်ကျွတ်ကျွတ် အသစ်မဖြစ်နိုင်ဘူးလို့ ပြောကြပါတယ်။ ကျွန်တော်တို့ ရသမျှ အတွေး၊ စဥ်းစားမိသမျှ နည်းလမ်းတွေက ရှေ့မှာ ရှိနှင့်ပြီးသား ပခုံးတွေအပေါ် တက်ရပ်ကြည့်ရတာချည်းပါပဲ။ ဒါကြောင့် ရနိုင်သမျှ မစုပဲ၊ စုထားမိတာတွေကို မတုကြည့်ပဲ ကိုယ်ပိုင် ပြုနိုင်ဖို့ဆိုတာ မဖြစ်နိုင်သလောက်နီးနီးပါ။
ဒီတော့ စု၊ တု၊ ပြု ဘယ်လိုလုပ်ကြမလဲ။
problem solving skill တိုးတက်ချင်ရင် အရင်ဆုံး စုဖို့လိုတယ်။ စုဆိုတာ ပြဿနာရဲ့ အဖြေကိုတင် စုခိုင်းတာ မဟုတ်ဘူး။ ပြဿနာကိုပါ သေသေချာချာ သိအောင်လုပ်ရမယ်။ ဒီပုစ္ဆာက ဘာကို ဖြေရှင်းချင်တာလဲ။ ဘာတွေ အသုံးပြုခွင့်ရှိလဲ။ ဘာကန့်သတ်ချက်တွေရှိလဲ။
ဒါပြီးရင် ရှေ့လူတွေ ဘယ်လိုဖြေရှင်းခဲ့ကြလဲဆိုတဲ့ အဖြေတွေကို စုရမယ်။ ဒီ solution က ဘာကြောင့် ​ဒီလိုဖြေရှင်းနိုင်တာလဲ။ သူဘယ်လိုအလုပ်လုပ်တာလဲ။ သူ့မှာ ဘာအားနည်းချက်တွေရှိလဲ။ ဘာတွေအားသာလဲ။
စုပြီးရင် တုကြည့်သင့်တယ်။ ချက်ချင်းတော့ မတုနဲ့တဲ့။ ဒီစကားကို ဘယ်သူပြောခဲ့တာလဲ မသိပေမယ့် ကိုမျိုးသန့်ဇင် ပြောတာလို့ ထင်တာပဲ။ ကြက်တူရွေးနဲ့အပြိုင် လေယာဥ်မယ်ကို အထွန့်တက်မိပြီး လေယာဥ်ပေါ်က နှစ်ကောင်လုံး ကန်ချခံရတော့ ကြက်တူရွေးအတွက်က ဘာမှမဖြစ်ပေမယ့် ကိုယ်က အတောင်မပေါက်သေးတဲ့ လူလေ။ ဒါ​ကြောင့် များများစုပြီးလို့ နိုင်နိုင်နင်းနင်း ဖြစ်လာတဲ့အခါဆိုရင်သာ တုကြည့်ပါ။
တုတဲ့အခါ ရှိပြီးသား solution တခုရဲ့ အားသာချက်ကို စတေးပစ်ပြီး အားနည်းချက်ကို ဖာထေးတာမျိုး။ beginner ဆိုရင် ရှိပြီးသား အဖြေကိုပဲ logic flow ပြောင်းကြည့်တာမျိုး စလုပ်ကြည့်သင့်တယ်။ ရလဒ် ဘာမှ ပြောင်းမသွားပေမယ့် ဒီလို small win တွေကနေ confidence ကိုတည်ဆောက်ရမှာပါ။
နောက်ဆုံးအချက်ကတော့ ပြုဖို့ပါပဲ။ စုခဲ့၊ တုခဲ့ပြီးပြီဆိုရင် အခု ပြဿနာတွေကို ​ဖြေရှင်းကြည့်နိုင်ပါပြီ။ မစုခဲ့၊ မတုခဲ့ပဲ စလာကတည်းက ပြုဖို့ ကြိုးစားနေခဲ့ရင် အသက်ရှူကျပ်တာပဲ အဖတ်တင်မှာကို ဒီအဆင့်မှာ နားလည်လောက်ပြီ ထင်ပါတယ်။
ဒီတော့ ဘယ်က စုမလဲလို့ပြောရင် beginner တွေအတွက်တော့ စုဖို့နေရာကောင်းတွေက အင်တာနက်ကြီးပါပဲ။
Stack Overflow, GitHub စတဲ့နေရာတွေမှာ အဖြေကောင်းတွေ အများကြီး ရှိပါတယ်။ ကိုယ့်ပြဿနာနဲ့ ဆင်တူ ပြဿနာမျိုးတွေကို ရှေ့မှာ ကြုံခဲ့ပြီးဖြစ်ဖို့ အတော်လေး ရာနှုန်းများပါတယ်။ ဒါကြောင့် googling လုပ်ဖို့ မပျင်းပါနဲ့။ How to do xyz in abc to get mno ဆိုတာလောက်တော့ ရေးတတ်ဖို့ ကျင့်ပါ။
နောက်တချက်က senior ကောင်းတွေဆီက သင်ယူပါ။ သင်ယူတယ်ဆိုတာ သူတို့ code တွေ လိုက်ကူးနေမှ၊ ကိုယ့်ကို အချိန်ပြည့် အနီးကပ် စောင့်ကြည့်ပေးနေမှ မဟုတ်ပါဘူး။ တခွန်းဆိုတခွန်း သေချာသင်ယူဖို့ လိုပါတယ်။
တန်ဖိုးရှိတဲ့အရာတွေက လွယ်လွယ်နဲ့ရဖို့ခက်တာမို့ ကိုယ်က problem solving ကောင်းချင်ရင် စိတ်ရှည်ရှည်နဲ့ အချိန်ပေး ပျိုးထောင်ဖို့ လိုပါတယ်။ စနစ်တကျ စုသွား၊ တုသွားမယ်ဆိုရင် ပြုနိုင်တဲ့တချိန်ဆိုတာ သေချာပေါက် ရှိလာမှာပါခင်ဗျာ။