မိတ်ဆက်

အခုနောက်ပိုင်း Developer တော်တော် များများဟာ တက္ကသိုလ် မတက်ပဲ self learning နဲ့ developer ဖြစ်လာကြတာ တွေ့ရပါတယ်။ ပုံမှန်အားဖြင့် Theory ဆိုင်ရာ စာအုပ်တွေ သိပ်မဖတ်ကြသလို Software Engineering စာအုပ်တွေလည်း ဖတ်တာ နည်းတာ တွေ့ပါတယ်။ အများအားဖြင့် coding ဆိုင်ရာ ကို အားထားပြီး ဖတ်ကြတာ များတာ ကို တွေ့ရတယ်။
နောက်တချက်က English စာ အားနည်းသည့် အခါမှာ Software Engineering စာအုပ်တွေ ဖတ်သည့် အခါမှာ အခက်အခဲ ရှိတယ်လို့ ထင်ပါတယ်။ ဒီ စာအုပ်ဟာ တက္ကသိုလ် မတက်ပဲ self learning နဲ့ developer ဖြစ်လာသူတွေကို အထောက်အကူ ဖြစ်အောင် ရေးသားထားသည့် စာအုပ် ဖြစ်ပါတယ်။ တက္ကသိုလ်မှာ First Year Text Book လောက်ပဲ ရှိမှာ ဖြစ်သည့် အတွက် ပြည့်ပြည့် စုံစုံလည်း ပါဝင် မှာ မဟုတ်ပါဘူး။
ဒီစာအုပ် ဟာ Coding စာအုပ် မဟုတ်သည့် အတွက် Coding နဲ့ ပတ်သက်ပြီး အများကြီး ပါမှာ မဟုတ်သလို Code တွေကိုလည်း သေသေချာချာ ရှင်းပြ မယ့် စာအုပ် မဟုတ်ပဲ Theory တွေ စာတွေ အများကြီး ပါမယ့် စာအုပ် ဖြစ်ပါတယ်။ နောက်ပြီး ဒီစာအုပ်က လူတိုင်း ကို ရည်ရွယ်တာ မဟုတ်ပဲ Self learning သမားတွေ အတွက် အထောက်အကူ ဖြစ်အောင် ရည်ရွယ် ရေးသားထားသည့် စာအုပ်ဖြစ်သည့် အတွက် Junior Developer , Mid Level Developer များ ဖတ်သင့် သည့် စာအုပ် တစ်အုပ် ဖြစ်ပါလိမ့်မယ်။
Software Engineer ဆိုတာ
Software Engineer ဆိုတာ က Coding ရေးသည့် အလုပ်တစ်ခု တည်း မဟုတ်ပါဘူး။ Engineering ပညာရပ် တစ်ခု ဖြစ်ပြီး Software တစ်ခု Product တစ်ခု ကို ဖန်တီးဖို့ အတွက် လိုအပ်သည့် အသိပညာ နည်းပညာ ရှိသူတွေပါ။ Coding အပြင် Software Development Life Cycle, Project Management , Principle စတာတွေ ကို သိရှိ နားလည် တတ်ကျွမ်း သူတွေ လို့ ဆိုရပါမယ်။
Software Engineer တွေ က Coding မစတင်ခင်မှာ System Design , Architecture တွေ ရေးဆွဲနိုင်ပြီး Product တစ်ခုလုံးရဲ့ ပုံစံကြမ်းကို ချမှတ်နိုင်ပါတယ်။ ဘယ်အစိတ်အပိုင်းတွေ ပါဝင်မယ်။ ဘယ်လို မျိုး တွဲပြီး အလုပ်လုပ်မယ်။ Database ကို ဘယ်လို တည်ဆောက်မယ်။ Scalability ဖြစ်အောင် ဘယ်လို ထည့်သွင်းရေးဆွဲမယ် ဆိုတာတွေ ကို နားလည် တတ်ကျွမ်းသူတွေ ဆိုလည်း မမှားပါဘူး။
Problem Solver တွေပါ။ Coding ရေးခြင်း သပ်သပ် မဟုတ်ပဲ ပြဿနာ တွေ ဖြေရှင်းသူ တွေဖြစ်ပါတယ်။ Client ရဲ့ Requirement ကို နားလည် ပြီး ဘာလုပ်ရမလဲ ဆိုတာ ထက် ဘာကြောင့် လုပ်ရမလဲ ဆိုသည့် ပြဿနာ ရဲ့ အရင်းခံ ကို နားလည် နိုင်သူတွေ ပါ။
နောက်ပြီး ရေးဆွဲထားသည့် Software ရဲ့ Quality ကို အာမခံနိုင်ဖို့ လိုတယ်။ Testing တွေ လုပ်ဆောင်ရတယ်။ Security အပိုင်းကိုလည်း ရေးဆွဲ ကတည်းက ထည့်သွင်း စဥ်းစားထားဖို့ လိုပါတယ်။
Software တစ်ခု ပြီးသွားပြီး အသုံးပြုသူတွေ လက်ထဲရောက်သွားရင် မကြာခင် ပြင်ရ မှာ တွေ မစဥ်းစားထားသည့် User Story အသစ်တွေ feature အသစ် request တွေ လာမယ် ဆိုတာ ကြိုတင်ပြီး ကိုယ်ဖန်တီးထားသည့် software ကို ဆက်လက် ထိန်းသိမ်း လုပ်ဆောင် ကြဖို့ လိုပါတယ်။
Software Engineer တွေဟာ Team နဲ့ အတူတူ အလုပ်ရပါတယ်။ တခြား Engineer တွေ Product Manager, Designer တွေ Quality Assurance (QA) အဖွဲ့ တွေ နဲ့ အတူတူ အလုပ်လုပ်ရသည် ့အတွက် Teamwork အားကောင်းနေဖို့ အရမ်းကို ရေးကြီးပါတယ်။
ဒါကြောင့် Software Engineer ဆိုတာ Code ရေးနေဖို့ မဟုတ်ပဲ စနစ် တစ်ခုလုံး အစအဆုံး တည်ဆောက် စီမံ ထိန်းသိမ်း တာက Software Engineer တစ်ယောက် ရဲ့ တာဝန်ပါပဲ။