ကိုယ်ရေးထားတဲ့ "လေ့လာစလူငယ်တွေ အမေးအများဆုံး မေးခွန်း" အစချီပြီး Programming Language တွေအကြောင်း ပြောထားတဲ့ ပိုစ့်လေးက မကြာမကြာ ပြန်တက်လာတယ်။ လေ့လာသူတွေအတွက် အသုံးဝင်ပုံ ရပါတယ်။
https://www.facebook.com/sayar.ei.maung/posts/10155750225527328
ဒါလေး ပြန်တက်လာတော့ လွန်ခဲ့တဲ့ (၁) နှစ်ခွဲလောက်က T-Club မဂ္ဂဇင်းနဲ့ အင်တာဗျူးထားတဲ့ လေ့လာမှုလမ်းညွှန်လေးကို ပြန်မျှချင်စိတ် ပေါက်မိတယ်။ ပြောထားတဲ့ အဓိပ္ပါယ်က အတူတူပါပဲ၊ နည်းနည်းလေး ပိုကျယ်ပြန့် သွားတာပါ။
ပြန်ရှာကြည်လိုက်တော့ တစ်ချို့နေရာလေးတွေ စာစီ မှားနေတာရယ်၊ ပေးထားတဲ့ စာအုပ်လင့် သေနေတာရယ် တွေ့ရတယ်။ ဒါကြောင့် Copy ကူး၊ နည်းနည်းပြင်ပြီး ပြန်တင်လိုက်ပါတယ်။ သင်တန်း ကြော်ငြာတယ် ထင်မှာစိုးလို့ ကိုယ့်သင်တန်းအကြောင်း ပြောထားတဲ့ အပိုဒ်တွေလည်း ချန်ခဲ့ပါတယ်။
လေ့လာသူတွေအတွက် အသုံးဝင်မှာပါ။
Software Developer တစ်ယောက်ဖြစ်ချင်ရင်
===================================
(*) ဘယ်လိုအခြေခံကစရမလဲ
Software Developer ဆိုတဲ့လုပ်ငန်းမှာ လုပ်ငန်းအဆင့် နဲ့ လုပ်ငန်းခွဲ အများအပြားရှိပါတယ်။ Computer Scientist, Software Engineer, Programmer စသဖြင့် Software ရေးသားခြင်းလုပ်ငန်းကို တိုက်ရိုက်လုပ်ရတဲ့ လုပ်ငန်းတွေ ရှိသလို Web Design, System Architect, System Administrator, Software Project Manager စတဲ့ Software ရေးသားခြင်းလုပ်ငန်းကို ဆက်စပ်လုပ်ကိုင်ရတဲ့ လုပ်ငန်းတွေလည်း ရှိပါတယ်။
ဘယ်ကဏ္ဍကို သွားချင်သလဲဆိုတဲ့ပေါ်မူတည်ပြီး သွားသင့်တဲ့ လမ်းကြောင်းကလည်း ကွဲပြား သွားနိုင်ပါတယ်။ ယေဘုယျအားဖြင့် စသင့်တဲ့အခြေခံတော့ ကွန်ပျူတာတက္ကသိုလ် တစ်ခုမှာ တက်ရောက်လေ့လာခြင်း၊ နည်းပညာတက္ကသိုလ် တစ်ခုမှာ IT ဘာသာရပ်နဲ့ တက်ရောက်လေ့လာခြင်း၊ ဒါမှမဟုတ် ကွန်ပျူတာဆိုင်ရာ ဘွဲ့ဒီဂရီတစ်ခုရတဲ့အထိ တက်ရောက်လို့ရတဲ့ ပြင်ပပုဂ္ဂလိက ကောလိပ်တစ်ခုမှာ တက်ရောက်ခြင်းအားဖြင့် စသင့်ပါတယ်။
ဒီနေရာမှာ အချို့ကလည်း၊ တက္ကသိုလ်ကောလိပ်ကို သွားမနေတော့ဘဲ လက်တွေ့သင်တန်းတွေ တန်းတက်ပြီး လုပ်ငန်းခွင် တန်းဝင် သွားကြတာတွေလည်း ရှိပါတယ်။ ဒီလို တက္ကသိုလ်ကောလိပ်ကို မသွားဘဲ လက်တွေ့ကိုတန်းဝင်ခြင်းဖြင့် သင်ယူမှုအချိန်တော့ နည်းသွားပါတယ်။ ဒါပေမဲ့ အကန့်အသတ်တော့ ရှိသွားနိုင်ပါတယ်။ ဥပမာ- လိုအပ်တဲ့ စာတွေ့အခြေခံပိုင်း အားနည်းလို့ Programmer အဖြစ်နဲ့သာ ရပ်တည်နိုင်ပြီး သူ့ထက် အဆင့်မြင့်လာတဲ့ Software Engineer လို System Architecture လို အဆင့်တွေကိုတော့ ရောက်ဖို့ ခက်သွားနိုင် ပါတယ်။ လုံးဝ မရောက်နိုင်တာတော့ မဟုတ်ပါဘူး။ ကနေ့ခေတ်မှာ ကိုယ်တိုင်ကသာ လေ့လာအား ကောင်းမယ်ဆိုရင် သင်ယူလေ့လာလို့ရတဲ့ နည်းလမ်းနဲ့ သင်ယူစရာ Resource တွေက သိပ်ပေါတဲ့အတွက် ဖြစ်နိုင်ပါတယ်။ ဒါပေမယ့် ပထမ လမ်းကြောင်းဖြစ်တဲ့ တက္ကသိုလ် ကောလိပ်မှာ အခြေခံ ခိုင်မာအောင် အရင်လေ့လာပြီးမှ လက်တွေ့ပိုင်းကို သွားဖို့ အကြုံပြုလိုပါတယ်။
(*) ဘယ်လိုဘာသာရပ်တွေကို လေ့လာရမလဲ
ကျွန်တော်တို့နိုင်ငံရဲ့ လက်ရှိအခြေအနေအရ အလုပ်အခွင့်အလမ်း ပေါများသလို သင်ပေးနိုင်သူ ပေါများတာကတော့ Programmer, Software Engineer နဲ့ Software Project Manager တို့ ဖြစ်ပါတယ်။ အခြားကဏ္ဍတွေကတော့ နိုင်ငံတကာမှာ အလုပ်အကိုင်အခွင့်အလမ်း ကောင်းကြပေမဲ့ ဒီမှာ အခွင့်အလမ်း နည်းကြပါတယ်။
Programmer ဆိုတာကတော့ Software တစ်ခု ဖြစ်မြောက်လာဖို့ လိုအပ်တဲ့ Code တွေကို လက်တွေ့ ရေးသားသူလို့ အလွယ်ပြောနိုင်ပါတယ်။ Software Engineer ကတော့ လက်တွေ့ Code တွေ ရေးသားရုံသာမက အဲဒီ Software ရဲ့ နောက်ကွယ်က လိုအပ်ချက်တွေဖြစ်တဲ့ စွမ်းဆောင်ရည် ကောင်းဖို့၊ လုံခြုံစိတ်ချရဖို့ စတဲ့ လုပ်ငန်းတွေအတွက် Plan တွေ Architecture ဒီဇိုင်းတွေကိုပါ ဆုံးဖြတ် ဖန်တီးနိုင်စွမ်းရှိသူတွေ ဖြစ်ပါတယ်။ Software Project Manager ကတော့ Software တစ်ခု ဖြစ်မြောက်လာဖို့ ဝိုင်းဝန်းဆောင်ရွက်ကြတဲ့ Programmer တွေ Software Engineer တွေကို စီမံခန့်ခွဲပြီး Director အဖွဲ့ဝင်တွေ၊ Customer တွေနဲ့၊ အသုံးပြုသူ User တွေနဲ့ ဆက်ဆံဆောင်ရွက် နိုင်သူဖြစ်ပါတယ်။
အခြေခံအားဖြင့် အစမှာ Programmer အဖြစ် စကြပြီး၊ လိုအပ်တဲ့ အတွေ့အကြုံတွေ ရလာပြီဆိုရင်.. နည်းပညာပိုင်း အားသန်သူတွေက Software Engineer အဆင့်ကို တက်လှမ်းကြပြီး၊ လုပ်ငန်းပိုင်း အားသန်သူက Project Manager ဖြစ်လာကြ သူတွေလည်း ရှိပါတယ်။ ဘယ်လိုပဲဖြစ်ဖြစ် Programmer ကနေတော့ စကြရပါတယ်။ အချို့ ခြွင်းချက်အနေနဲ့ Project Manager အဖြစ် တိုက်ရိုက် ဝင်ရောက်သူတွေ ရှိပါတယ်။ အောင်မြင်သူ အနည်းငယ်ရှိပေမယ့် ဒီလိုတိုက်ရိုက် တက်လှမ်းခြင်းဟာ လိုအပ်တဲ့ လုပ်ငန်းသဘော အောက်သက်မကြေလို့ ရေရှည်အောင်မြင်ဖို့ ခက်တတ်ပါတယ်။
(*) ရွေးချယ်နိုင်တဲ့ Career လမ်းကြောင်းတွေ
Programmer အဖြစ် Career စတင်ကြတဲ့အခါ ကနေ့ခေတ်စားတဲ့ ရွေးချယ်စရာ လမ်းကြောင်းတွေကတော့၊ Business Solution Develper, Mobile App Developer နဲ့ Web Developer တို့ပဲ ဖြစ်ပါတယ်။ Business Solution Developer တွေအနေနဲ့ လုပ်ငန်းသုံး Software တွေ ရေးသားခြင်းအပိုင်းကို အဓိကထားကြသူတွေ ဖြစ်ပါတယ်။ ဒီလမ်းကြောင်းကို လိုက်မယ်ဆိုရင်တော့ JavaEE ၊ Microsoft .Net တို့လို နည်းပညာတွေကို အသားပေး လေ့လာကြရပါတယ်။ Mobile App Developer အနေနဲ့ ကတော့ Smart Phone ၊ Tablet စတဲ့ Mobile Device တွေမှာ အလုပ်လုပ်တဲ့ App တွေ ရေးသားခြင်းအပိုင်းကို အဓိကထားကြသူတွေ ဖြစ်ပါတယ်။ ဒီလမ်းကြောင်းကို လိုက်လိုရင်တော့ Java Programming Language ကို အခြေပြုလေ့လာရတဲ့ Android Platform နဲ့ Objective-C, Swift စတဲ့ Programming Language တွေကို အခြေပြုလေ့လာရတဲ့ iOS Platform တို့ကို အသားပေး လေ့လာရပါတယ်။ Web Developer တွေကတော့ Website တွေနဲ့ Web Application တွေရေးသားတည် ဆောက်ခြင်း အပိုင်းကို အဓိကထားကြသူတွေ ဖြစ်ပါတယ်။ ဒီကဏ္ဍမှာတော့ HTML 5, PHP, Java Script စတဲ့နည်း ပညာတွေကို အတွဲလိုက် လေ့လာရတဲ့သဘော ရှိပါတယ်။ လမ်းကြောင်းတစ်ခု ထက်ပိုပြီး လုပ်မယ်ဆိုရင်လည်း ရနိုင်ပါတယ်။ လုပ်ကြသူတွေ ရှိပါတယ်။ ဒါပေမဲ့ အစပိုင်းမှာတော့ တစ်ခုကိုသာ ရွေးချယ်အစပြုသင့်ပါတယ်။
(*) Online Resources For Self-Study
Online ကနေ Self-Study လုပ်ဖို့အတွက်ဆိုရင် ပထမဆုံး အစပြုသင့်တာကတော့ MIT (Massachusetts Institue of Technology) က ပေးထားတဲ့ Introduction to Computer Science and Programming ဆိုတဲ့ Course ကနေ အစပြုသင့်ပါတယ်။
- http://ocw.mit.edu/courses/intro-programming/
ပြီးတဲ့အခါ မိမိနှစ်သက်ရာ ဘာသာရပ်အလိုက် Udacity နဲ့ Khan Academy က ပေးထားတဲ့ Course တွေကို ဆက်လက်လေ့လာသင့်ပါတယ်။ အခပေး Course တွေ ရှိသလို အခမဲ့ပေးထားတဲ့ Course တွေလည်း ဘာသာရပ် စုံစုံလင်လင်အတွက် ရှိပါတယ်။
- https://www.udacity.com/
- https://www.khanacademy.org/
Software Development သာမက ကဏ္ဍစုံအတွက် အခမဲ့ပေးထားတဲ့ Online Course ပေါင်း (၁၃၀၀) ကျော်ကို စုစည်းပေးထားတဲ့ ဝဘ်ဆိုက်တစ်ခုကိုလည်း ထပ်ဖြည့်ပေးလိုက်ပါတယ်။
- http://www.openculture.com/freeonlinecourses
ဆက်လက်ပြီး E-book စာအုပ်တွေကနေ လေ့လာနိုင်ပါတယ်။ အခမဲ့ရတဲ့ Programming Language စုံအတွက် E-Book တွေ စုစည်းထားတဲ့ စာရင်းကို ဒီမှာလေ့လာနိုင်ပါတယ်။
- https://github.com/EbookFoundation/free-programming-books/blob/master/free-programming-books.md
ကျွန်တော်ရေးသားထားတဲ့ Professional Web Developer စာအုပ်တစ်အုပ်လည်း ရှိပါတယ်။ PHP/MYSQL နဲ့ Professional Web Developer တစ်ဦးသိသင့်တဲ့ နည်းပညာတွေကို စုစည်းဖော်ပြထားခြင်း ဖြစ်ပါတယ်။ PDF Ebook အနေနဲ့ အခမဲ့ ရယူနိုင်ပါတယ်။
Professional Web Developer: https://eimaung.com/professional-web-developer/
ဆက်လက်ပြီး နေ့စဉ် ၊ ဒါမှမဟုတ် အပတ်စဉ် နည်းပညာ ဆောင်းပါးတွေ ဖော်ပြတဲ့ Online Magazine တွေနဲ့ Blog တွေလည်းရှိပါတယ်။ Web Development နဲ့ ပက်သက်ရင် စောင့်ဖတ်သင့်တဲ့ Resource တစ်ချို့ကို ဒီမှာတစ်ခါ ဖြေထားဖူးပါတယ်။
https://www.quora.com/What-is-the-best-source-to-learn-web-development-as-well-web-design/answer/Ei-Maung
အခြားဘာသာရပ်တွေအတွက်လည်း အလားတူ အမြဲဖတ်သင့်တဲ့ Online Magazing တွေနဲ့ Blog တွေ ရှိပါတယ်။ မိမိစိတ်ဝင်စားစရာ ဘာသာရပ်အလိုက် ရှာဖွေ လေ့လာသင့်ပါတယ်။
(*) ပြည်တွင်းမှာ လုပ်ငန်းခွင်ဝင်ဖို့အတွက်ဆိုရင် ဘာတွေ ပြင်ဆင်သင့်သလဲ
လုပ်ငန်းခွင်ဝင်နိုင်ဖို့အတွက် အရေးကြီးဆုံးကတော့ အလုပ်သင်အဆင့်ပါပဲ။ ဘယ်လိုကျောင်းမျိုးတွေပဲ တက်ထားပါစေ။ လက်တွေ့ အတွေ့အကြုံ မရှိဘဲနဲ့တော့ လုပ်ငန်းခွင် တန်းဝင်နိုင်ဖို့ မလွယ်ပါဘူး။ အရင်တုန်းတော့ သင်တန်းဆင်းထားကြောင်း၊ တတ်မြောက်ကြောင်း Certificate တွေ များများ ရှိရင် အလုပ်အခွင့်အလမ်း ကောင်းပါတယ်။ အခုတော့ အဲ့ဒီလို မဟုတ်တော့ပါဘူး။ လက်တွေ့ တကယ်လုပ်နိုင်သူ အတွက်သာ အလုပ်အခွင့်အလမ်းက ကောင်းမှာဖြစ်ပါတယ်။ သင်တန်းဆင်းလက်မှတ်တွေ Certificate တွေဟာ First Impression ဖြစ်တဲ့အတွက် လိုတော့ လိုအပ်ပါတယ်။ ဒါပေမဲ့ အလုပ်ရဖို့ အာမခံချက်တော့ မဟုတ်ပါဘူး။ လက်တွေ့ လုပ်နိုင်ဖို့အတွက်ဆိုရင် အလုပ်သင်နည်းလမ်းက အထိရောက်ဆုံး ဖြစ်ပါတယ်။ ဒါကြောင့် ထိုက်သင့်တဲ့ သင်တန်းဆင်း လက်မှတ်တွေလည်း ရယူပြီး အလုပ်သင်လည်း ကာလတစ်ခု လုပ်ဖူးထားမယ်ဆိုရင် လုပ်ငန်းခွင် ဝင်နိုင်ဖို့ အဆင်ပြေသွားမှာပါ။
(*) ဆောင်ရန်
နည်းပညာဆိုတာ အဆက်မပြတ်တိုးတက်ပြောင်းလဲ နေတဲ့အတွက် အဆက်မပြတ် လေ့လာသယ်ယူတတ်တဲ့ အလေ့အထကို မွေးမြူထားဖို့ လိုပါတယ်။ စူးစမ်းလိုစိတ် ရှိပြီး အဆက်မပြတ်လေ့လာသင်ယူလိုစိတ် ပြင်းပြသူမှသာ အောင်မြင်တဲ့ Software Developer ဖြစ်လာကြလေ့ရှိပါတယ်။
(*) ရှောင်ရန်
လေ့လာရာမှာ ထိရောက်တဲ့လေ့လာနည်းဆိုတာ ရှိပေမယ့် ဖြတ်လမ်းကိုတော့ မလိုက်ဖို့လိုပါတယ်။ အဆင့်လိုက် စနစ်တကျလေ့လာခြင်းနဲ့ မြန်မြန်အလုပ်ဖြစ်စေတဲ့ ဖြတ်လမ်းနည်း ယှဉ်လာတဲ့အခါ မြန်မြန်အလုပ်ဖြစ်စေတဲ့ နည်းကိုရွေးခဲ့မိလို့ နောက်ပိုင်းအဆင့်တစ်ခု ရောက်တဲ့ အခါ ရှေ့မဆက်နိုင်ဘဲ တစ်ကနေ ပြန်စလေ့လာကြရတဲ့ အဖြစ်တွေ မကြာမကြာ တွေ့ရပါတယ်။
(*) သိမှတ်စေချင်သော အချက်များ
ကနေ့အချိန်ဟာ ကွန်ပျူတာခေတ်ဖြစ်တဲ့ အားလျော်စွာ Softwar Developer များအတွက် ပြည်တွင်း၊ ပြည်ပ အလုပ်အခွင့်အလမ်းနဲ့ အနာဂတ် အလားအလာတွေဟာ အတော့်ကို ကောင်းမွန်ပါတယ်။ ပြီးတော့ ဒီနည်းပညာဟာ လေ့လာအား ကောင်းမယ်ဆိုရင် သင်ယူလေ့လာစရာ Resource တွေ အလွယ်တကူ ရှိနေတဲ့အတွက် သင်ယူလွယ်ကူတဲ့ ပညာရပ်လို့လည်း ဆိုနိုင်ပါတယ်။ ဘာသာရပ်ကို လွယ်ကူတယ်လို့ ဆိုလိုတာ မဟုတ်ပါဘူး။ သင်ယူစရာ ပေါများလို့ သင်ရလွယ်တယ်လို့ ပြောတာပါ။ တတ်မြောက် ဖို့အတွက်ကတော့ ကြိုးစားနိုင်မှရမှာပါ။ လုပ်ငန်းသဘော သဘာဝအရလည်း ဖန်တီးတီထွင်ရခြင်း ဖြစ်လို့ ပျော်ဖို့ကောင်းတဲ့၊ စိတ်ဝင်စားဖို့ကောင်းတဲ့ အလုပ်ဖြစ်ပါတယ်။ ဒါကြောင့် လူငယ်တွေအနေနဲ့ မိမိတို့ရဲ့အနာဂတ်ကို Software Developer တစ်ယောက်အနေနဲ့ တည်ဆောက်သင့် ကြောင်းကို အားပေး အကြံပြုလိုပါတယ်။
(မူရင်းအင်တာဗျူး) https://www.facebook.com/TClubMyanmar/posts/825245137603210
Credit: EM