"ဆရာ မပြ နည်းမကျ" ဆိုပေမယ့် တစ်ခါတစ်လေမှာ ကိုယ့်ဒူးကိုယ်ချွန်ရတဲ့ အခိုက်အတန့်တွေရှိပါတယ်။ အကြောင်းအမျိုးမျိုးကြောင့် ဆရာတစ်ယောက်နဲ့ စနစ်တကျမသင်နိုင်တဲ့ အခါ ကိုယ့်ဘာသာတိုးတက်စေဖို့အတွက် နည်းလမ်းတွေကို ရှာဖွေရပါမယ်။
Programming ဆိုတာက နည်းပညာပိုင်းမှာ မရှိမဖြစ်လိုအပ်တဲ့ ကဏ္ဍတစ်ခုဖြစ်ပါတယ်။ အခုလိုခေတ်ကြီးထဲမှာ နည်းပညာတွေက အရင်ကနဲ့မတူအောင် တိုးတက်နေတဲ့အတွက် Online Learning တွေက အသင့်ရှိနေပါတယ်။
Wifi သို့မဟုတ် Mobile Internet ရှိရုံနဲ့ Self-Learning လုပ်လို့ရပါတယ်။ ဒါပေမယ့် Self-Learning လုပ်ဖို့ဆိုရင် လိုအပ်တဲ့ အချက်အနည်းငယ်ရှိနေပါတယ်။ အဲ့တာတွေကတော့ ...
(1) English
ဘာပဲလေ့လာလေ့လာ English ကအဓိကကျပါတယ်။ English စာကိုမပြောတတ်ရင်တောင် ရေးတတ်ဖတ်တတ်ရုံလောက်ဆိုရပါပြီ။ Programming ကိုမှမဟုတ်ဘူး တခြားနယ်ပယ်ကတစ်ခုခုကိုလေ့လာလည်း English လိုမဖတ်တတ်ရင်အဆင်ပြေမှာမဟုတ်ဘူး။ပြည်တွင်းကမြန်မာလိုရေးထားတဲ့စာအုပ်တွေတော့ရှိပါတယ်။ စာအုပ်တော်တော်များများက သာမာန် Begineer Level လောက်ပဲရှိတာမို့ ပိုပြီးတော့ အဆင့်မြင့်မြင့်လေ့လာဖို့အတွက်က English Skill က လိုအပ်ပါတယ်။
(2) Research Skill
Google၊ Yahoo၊ DuckDuckGo၊ Yandex စတဲ့ Search Engines တွေအများကြီးရှိပါတယ်။ အဲ့ထဲကမှ ကိုယ်နဲ့အဆင်ပြေသင့်တော်မယ့် Engine ကိုရွေးချယ်ပါ။ Recommand ပေးချင်တာက Google ကိုသုံးတတ်အောင်လုပ်ထားပါ။ ကိုယ်လိုချင်တဲ့ စာအုပ်၊ Software၊ PDF၊ Crack Version စတာတွေကိုအချိန်တိုအတွင်း လွယ်ကူထိရောက်စွာရှာဖွေတတ်ခြင်းကလည်း Research Skill တစ်မျိုးပါပဲ။
(3) Language ရွေးချယ်မှု
Programming ကိုစမလေ့လာခင် အရင်ဆုံး Language အရင်ရွေးချယ်တတ်ဖို့လိုပါတယ်။ရွေးချယ်မဲ့နေရာမှာလည်း ကိုယ်ကဘာဝါသနာပါလဲဆိုတာကို အရင်ဆုံးသိဖို့လိုပါလိမ့်မယ်။ ခုမှစလုပ်မှဆိုရင် python,Java,C/C++ တို့လို လွယ်တဲ့ Language တွေနဲ့သာစပါ။ အဲ့ထဲကမှ Python နဲ့အရင်စရင် ပိုအဆင်ပြေပါလိမ့်မယ်။ Python ကလေ့လာရတာလွယ်ကူပြီး Code ရေးရတာရိုးရှင်းပါတယ်။ နောက်ပိုင်း AI၊ machine learning တို့ကိုကူးလို့ ရပါသေးတယ်။ ခက်ခဲတဲ့ Language တွေနဲ့မစဖို့တော့ လိုပါတယ်။
(4) Read Book
Programmer တစ်ယောက်အတွက် စာများများဖတ်ဖို့ လိုပါလိမ့်မယ်။ စာဖတ်တဲ့နေရာမှာလည်း English လိုအရင်မဖတ်ပါနဲ့။ Absolute Begineer တွေဖတ်ဖို့အတွက် မြန်မာလိုရေးသားထားတဲ့နည်းပညာစာအုပ်တွေ အများကြီးရှိပါတယ်။ Eလိုမဖတ်ခိုင်းတာက ခုမှစလေ့လာခါကလူတစ်ယောက်က Technical ပိုင်းဆိုင်ရာတွေကို သဘောပေါက်နားလည်နိုင်ဦးမှာ မဟုတ်ပါဘူး။
Programming ကို နားလည်သဘောပေါက်သွားရင်တော့ Clean Code၊ Code At Work၊ The Pragmatic Programmers စာအုပ်စတဲ့အနှစ်ကြီးတွေကို ဖတ်ဖို့လိုပါမယ်။
(5) Practice
ဒါကအဓိကပါ။ Practice များများလုပ်ဖို့ လိုအပ်ပါမယ်။ Programming လုပ်တယ်ဆိုတည်းက Code ရေးတာပါပဲ။ အရင်ဆုံး Program သေးသေးလေးတွေကနေအရင် စရေးမယ်။ ပြီးရင် Exercises တွေစမ်းရေးကြည့်မယ်။ အဲ့ကနေ တဖြည်းဖြည်း Projects တွေရေးနိုင်တဲ့အထိ Practice လုပ်ဖို့လိုပါတယ်။
HackerRank၊ Kattis Code Cheff တို့လို Coding Practice လုပ်လို့ရတဲ့ Website တွေမှာ Problem Solving၊ Logical Thinking နဲ့ဆိုင်တဲ့ Exercises တွေအများကြီးရှိပါတယ်။ သူများရေးထားတဲ့ Source Code တွေကိုလိုက်ဖတ်ကြည့်ပါ။ ပြီးရင် ကိုယ့်ရဲ့ IDEA လေးနဲ့လိုက်ရေးကြည့်ပေါ့။ Exercises တစ်ပုဒ်ရေးတာက Tutorial ဆယ်ခုကြည့်တာနဲ့ညီမျှပါတယ်။
(6) Join Community
StackOverflow၊ GitHub၊ Dev Community တွေမှာလိုက် Join ပါ။ သူတို့ပြောတာရေးတာတွေကိုလေ့လာပါ သင်ယူမှတ်သားပါ။ ကိုယ့်အမြင်တွေကိုလည်း ရေးသားဖော်ပြပါ။ Free Seminar၊ WorkShop တွေရှိပါတယ်။ အချိန်တစ်ခုလောက်ပေးပြီး လိုက် join ပါ။ နည်းပညာကိုအမြဲတမ်း Up To Date ဖြစ်နေအောင်နေပါ။
(7) Time And Motivation
ဘာပဲလုပ်လုပ်အချိန်တစ်ခုသတ်မှတ်ပြီး PLAN ချပြီးလုပ်ဖို့လိုပါမယ်။ Programming လေ့လာတဲ့နေရာမှာလည်း ထိုနီး၎င်းပါပဲ။ တစ်ပတ်စာ Plan၊ တစ်လစာ Plan တို့ကိုဆွဲထားသင့်ပါတယ်။
Plan မဆွဲတတ်ရင်လည်း ဥပမာ- ငါတော့ ဒီတစ်ပတ်အတွင်း Variable ကနေ Array လောက်ထိကို အပြတ်ဖြတ်မယ်ဆိုပြီး Time ကို Management ထားရပါမယ်။ ဒီလိုလုပ်ထားမှလည်းရှေ့ဆက်ပြီး ပိုမြင့်တာတွေလေ့လာလို့ရမှာပါ နောက်မို့ဆို အဆင်ပြေနိုင်မှာမဟုတ်ပါဘူး။
နောက်တစ်ခုက Motivation ပါ။ Code ရေးဖို့အတွက် Motiလိုအပ်ပါမယ်။ စာလုပ်ခါနီး Motivational Speaker တစ်ယောက်ယောက်ရဲ့ Seminar ကြည့်တာမျိုး သူများတွေရေးထားတဲ့ Real World Project တွေကြည့်ပြီးတော့ Code မရေးခင် Moti ဖြည့်ထားဖို့လိုအပ်ပါတယ်။
(8) API/Framework
Programming Language တွေသင်ယူနေတဲ့အခါမှာလည်း Basic Syntax လောက်သိထားရုံနဲ့တော့ရပ်မနေပါနဲ့။ Computer Science ကိုလေ့လာထားပါ။ တကယ့်လက်တွေ့ Projects ကြီးတွေရေးတဲ့အခါမှာလည်း API/Framework တ်ို့ကိုအသုံးပြုရမှာပါပဲ။
Framework တွေအပြင် Library Source Code တွေကိုပါသိရှိထားဖို့လိုအပ်ပါမယ်။ဒီကောင်တွေကိုလည်းလေ့လာထားပါ။ နောက်ပြီး ကိုယ်တိုင် Projects တွေစရေးကြည့်ပါ။ ဒီ Project တစ်ခုရေးပြီးလို့ ကိုယ့်အတွက်ဘာသိလာမလဲ၊ဘယ်လိုအတွေ့အကြုံတွေတိုးလာမလဲဆိုတာကို သုံးသပ်ပြီး နောက်ရေးမဲ့ Projects တွေမှာအသုံးချပါ။
Software Design၊ Patterns၊ Architecture တွေအတွက် Software Engineering ကိုလေ့လာထားပါ။
(9) စိတ်အားထက်သန်မှု
Programming ကိုမှမဟုတ်ပါဘူး ဘာကိုပဲလုပ်လုပ် စိတ်အားထက်သန်မှုနဲ့ ဝါသနာမပါဘူးဆိုရင် လိုချင်တဲ့ ပန်းတိုင်ရောက်မှာ မဟုတ်ဘူးဆိုတာကို သဘောပေါက်ထားပါ။ လေ့လာနေတာကိုဘယ်တော့မှမရပ်တန့်ဖို့ ပြောချင်ပါတယ်။