Category Archives: ထင်ရာမြင်ရာ

Know your values

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

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

ကွန်ပျူတာတက္ကသိုလ်မှာ Software Engineering ကို Ian Sommerville ရေးတဲ့စာအုပ်ကြီးနဲ့ နှစ်တွေအများကြီးသင်တယ် ဒါပေမယ့် ၃ နှစ်လောက်သာ အချိန်ကုန်တယ် ဘယ်သူမှလက်တွေ့နဲ့ မဆက်စပ်ဖူးဘူးလို့တာ Sommerville သိရင် Pirate လုပ်ခံရတဲ့စာအုပ်ထက် သိက္ခာကျလို့ဆိုပြီး စာရေးတဲ့လူနာမည်လေး ဖျက်ပြီးမှစာအုပ်ပြန်ရိုက်ပါလားလို့ အသနားခံစာပို့နိုင်ပါတယ်။ အမှန်အတိုင်းပြောနေတာ နားထောင်ရတာ နားခါးပေမယ့် ပြောတာကတော့ပြောရပါတယ် Software Engineering ကိုတောင် Implementation နဲ့ဆက်စပ်ပြီး မသင်နိုင်ကြတော့ဘူးတဲ့လား။ C.J. Date ရဲ့စာအုပ်ကြီးနဲ့ ၃ နှစ်လောက်သင်ခဲ့လည်း Database System တွေနားလည်ဖို့နေနေသာသာ Query တောင်ဖြောင့်အောင်မရေးတတ်ဘူး မှားတယ်တော့မဟုတ်ဘူး Query ကအလွန်ဆုံးမေးရင် ၁၀ မှတ်ဖိုးလောက် မရေးတတ်လည်း စာမေးပွဲကတော့ အောင်နိုင်တာပါပဲ။ Programming Languages & Compiler Design လိုဘာသာတွေကို ပရိုဂရမ်မင်းဘာသာလို့ပြောရင် ဘာသာတွေရဲ့နာမည်မှာ ပရိုဂရမ်မင်းလို့ ပါနေလို့သာကျောင်းသားက မငြင်းတာပဲဖြစ်နိုင်တယ်။ Operating System လိုဘာသာကို ပရိုဂရမ်မင်းနဲ့ မသက်ဆိုင်ဘူးပြောရင် ကျောင်းသားတွေအားလုံးက ဟုတ်တယ် အဲဒါလည်းကျက်မှဖြေနိုင်တာလို့ တစ်ညီတစ်ညွတ်ထဲ ထောက်ခံကြမှာပါပဲ။

ဘာသာရပ်တွေမှာ လက်တွေ့ဟာအလွန် အရေးကြီးပါတယ် မလုပ်ဖူးခဲ့ရင် ဘယ်လောက်တန်ဖိုးရှိမှန်း နားမလည်နိုင်သလို ထပ်ပြီးကြုံရမယ့် အခက်အခဲတွေလည်း နားလည်နိုင်ဖို့မရှိတော့ဘူး။ လက်တွေ့ဆိုတဲ့နေရာမှလည်း အပြင်မှာက ဘယ်လို Language တွေသုံးနေပြီ ကျောင်းမှာသင်တာက မသုံးတော့ဘူးတို့ ဒို့ဆီမှာက ၁ နှစ်လောက် Programming သင်လိုက်ရင် အလုပ်လုပ်လို့ရနေပြီ တက္ကသိုလ်က ကျောင်းပြီးလည်း ဘာမှမတတ်ဘူးတို့ အမျိုးမျိုးပြောတတ်တယ် ဒါတွေက စေတနာနဲ့ပြောတာ ဖြစ်ကောင်းဖြစ်ပေမယ့် တက္ကသိုလ်ဆိုတာဘာမှန်း တကယ်တမ်းရေရေ ရာရာမသိတဲ့လူတွေ ပြောကြတဲ့အကြောင်းအရာတွေပါ တက္ကသိုလ်ကျောင်းသားအတွက် ဒီထက်ပိုပြီးလုပ်ရမယ့် အရာတွေအများကြီးကို သူတို့မသိကြဘူး။ ပေးခဲ့ဖူးတဲ့ ဥပမာတွေနဲ့ပြန်ပြောရရင် အလုပ်ဆိုတာက စဝင်တဲ့အချိန်မှာ ပန်းရံအလုပ်နဲ့စမှာဖြစ်ပေမယ့် တက္ကသိုလ်မှာ အချိန်တွေ ၄ နှစ်လောက်ပေးခဲ့တာဟာ အမြင့်ဆုံးအဆင့်အထိ ဆက်သွားဖို့ပြင်ဆင်ရတာ ပန်းရံအလုပ်သမားအဆင့်နဲ့ ရပ်ဖို့စိတ်ကူးရင်တော့ တက္ကသိုလ်မှာ အချိန်ဘယ်အကုန်ခံမလဲ ၆ လ ၁ နှစ်နဲ့လည်း အလုပ်ခိုင်းရတဲ့အခြေအနေတော့ သင်ပေးပြီးတော့ အလုပ်တော့ခိုင်းလို့ရတာပေါ့။

Programming တစ်ခု အသင့်အတင့် တတ်ပြီဆိုရင် ကွန်ပျူတာတက္ကသိုလ် ကျောင်းသားအနေနဲ့ လက်တွေ့အနေနဲ့ လုပ်စရာတွေများကြီးရှိတယ် ပရောဂျက်တစ်ခုသတ်မှတ်ပြီး Software Engineering Process တွေကို စနစ်တကျလုပ်ကြည့်ရတယ် Operating System စာအုပ်ထဲမှာပါတဲ့ Concurrency Problem လိုလေ့ကျင့်ခန်းတွေဟာ သာမန် Programming Skill နဲ့ ရေးလို့မရနိုင်ပါဘူး ဒါမျိုးတွေကြုံလာရင်ကိုယ့်ရဲ့ Programming Skill ဟာမလုံလောက်မှန်းသိလာလို့ ထပ်ပြီးလေ့လာဖြစ်တယ် နောက်ပြီးတော့ လိုအပ်တဲ့ Tools တွေကြောင့် Operating System တစ်မျိုးတည်း သုံးနေတာဟာလည်း မလုံလောက်မှန်းသိလာတယ် အဲဒီတော့ထပ်ပြီးတော့ ကိုယ်တိုင်လေ့လာရတယ်Compiler Design တွေဆိုရင်လည်း ဘယ်သူမှတော့ Compiler ပြန်တော့မရေးပါဘူး ဒါပေမယ့်ဆက်စပ်နေတဲ့ Automata တွေကိုတကယ်တမ်း Implement လုပ်မယ်ဆိုရင် အဲဒီ့အတွေ့အကြုံတွေဟာ Language Processing/ Text Processing လုပ်တဲ့နေရာမှာ အင်မတန်ကို အထောက်အကူပြုပါတယ်။ Distributed System တွေဆိုရင် တကယ်တော့ အခုခေတ်မှာလူတွေသုံးနေတဲ့ Web, Mobile စသည်ဖြင့်အားလုံးက Distributed System တွေပါပဲ ပြေးမလွတ်ပါဘူး။ တကယ်တမ်းလုပ်ရင် အချိန် ၄ နှစ်ဆိုတာ မလောက်ငှပါဘူးလေ ခဏလေးပဲကုန်သွားတယ်။

တက္ကသိုလ်ကျောင်းသားအနေနဲ့ ပထမနှစ်မှာ Hello World! နဲ့ Console မှာနှစ်ပါးသွားနေတာကို ကြိုးစားနေတဲ့အတွက် ဂုဏ်ယူတတ်ရတယ် အဲဒီအချိန်မှာ အပြင်မှာနေလို့ WordPress နဲ့ Website တစ်ခုလုပ်တတ်ပြီလို့ လာပြောတာကို အားမကျဖို့လိုတယ် အဲဒီလူအနေနဲ့ ၂ လ ၃ လ လေ့လာပြီးတာ ဖြစ်ချင်ဖြစ်မယ် ကိုယ့်အတွက်က အချိန်တန်ရင် ၁ ရက်လောက် စာဖတ်ကြည့်ရင် လုပ်တတ်တဲ့အခြေအနေလို့ ပြောနိုင်ပါလိမ့်မယ်။ Computer Technology ကကျောင်းသားလည်း ကွန်ပျူတာပြင်ဆိုင်က ကွန်ပျူတာပြင်တဲ့လူကို အားမကျရဘူး ကိုယ်သင်နေတဲ့ Architecture, Data Communication, Device, Hardware အဲဒီလိုဘာသာတွေကို အာရုံစိုက်ရတယ် တကယ်က ကွန်ပျူတာဆိုင်က ကွန်ပျူတာဆင်တယ်ပြင်တယ်ဆိုတာက တော်တဲ့အပေါက်တပ်လိုက်တာထက် မပိုဘူးဆိုတာနားလည်လာပါလိမ့်မယ် ကျောင်းသားဘဝမှ အဓိကနဲ့သာမညခွဲတတ်ရပါတယ် တက္ကသိုလ်ဆိုတာ အခြားလူတွေ ဖန်တီးထားတဲ့ အရာတွေကို ဘယ်လိုသုံးသလဲဆိုတာထက် ဘယ်လိုဖန်တီးထားသလဲ လေ့လာဖို့အတွက် အချိန်ပေးထားတာ ဒီထက်ပိုထူးချွန်ရင်တော့ လက်ရှိကနေအထက်ကို အသစ်ဖန်တီးနိုင်မှာပေါ့။ ဘီးဆိုတာအစက တီထွင်စရာမလိုပါဘူး ဒါပေမယ့် ဘီးဘယ်လိုတီထွင်ထားလဲ မသိတဲ့လူကတော့ အလွန်ဆုံးဖြစ်နိုင်ရင် ကျွမ်းကျွမ်းကျင်ကျင် သုံးတတ်တယ်ဆိုတာထက် ပိုနိုင်ဖို့ခဲယဉ်းပါတယ်။

တကယ်တော့ ဒီအကြောင်းအရာတွေဟာ ပြောနေစရာမလိုအပ်သင့်ဘူး သင်ပေးတဲ့ဆရာတွေက ကိုယ်သင်နေတဲ့ ဘာသာတွေရဲ့တန်ဖိုးကို ရေရေရာရာမသိလို ဖြစ်ကြရတာ တစ်ချိန်တုံးက Final Year Project ကိုဖျက်လိုက်ပြီး Project မပါပဲဘွဲ့ပေးတာကို ရင်နာလို့မဆုံးဘူး တကယ်ဖြစ်သင့်တာက ဘာသာတိုင်းမှာ Project ထပ်တိုးပြီးထည့်ရဦးမှာ။ ဆရာတွေအသုံးမကျဘူး ပြောပြန်ရင်လည်း အသုံးကျတဲ့လူလည်းရှိ မကျတဲ့လူလည်းရှိပါတယ် ဘယ်လိုပဲဖြစ်ဖြစ် တကယ်တမ်းလုပ်နေရတဲ့လူတွေက ဆရာပေါက်စတွေ သူတို့မှာကပြင်ချင်လည်းဘယ်လိုမှ ပြင်ခွင့်ရှိကြတာမဟုတ် ထားရာနေစေရာသွား ခိုင်းသလိုသင်ကြရတာလည်း သိနေတဲ့လူဆိုတော့ အဲလိုလည်းဝါးလုံးရှည်နဲ့ ပြောလို့မဖြစ်ပြန်ဘူး။ COE ဆိုပြီးအမှတ်မြှင့်ခေါ်တော့ စာကြိုးစားဖို့ထက် အဆင့်တန်းခွဲပါတယ်ဆိုပြီး အော်နေကြတာပြီးသေးပုံမပေါ်ဘူး တက္ကသိုလ်ကို အလုပ်သမားမွေးမြူရေးစခန်းလိုယူဆပြီး အားရပါးရပေးနေကြတဲ့အကြံဉာဏ်တွေမြင်ရ စာသင်နှစ်ကို ၃ နှစ်ကို ၄ နှစ်တိုးလို့ဆိုပြီး သမ္မတရုံးတက်တိုင်တဲ့ ကျောင်းသားမိဘတွေဆိုပြီး ဇာတ်လမ်းစုံကြားရတော့ ပညာရေးကိုတိုးတက်စေချင်တယ် ပြောနေပေမယ့်တကယ်ကျတော့ စာရွက်ထဲကဘွဲ့ကိုပဲ မင်္ဂလာဆောင်ဖိတ်စာအမှီ လိုချင်နေသလား တွေးမိပြန်တော့ သူ့အရပ်နဲ့သူ့ဇာတ် ကိုက်နေတာပဲလေလို့ပဲ အတွေးစကိုရပ်ရတော့တယ်။

ပရိုဂရမ်မာဋီကာ (၃)

From: spreadshirt.com

အင်ဂျင်နီယာဘာသာတွေက ရင်းနီးလာခဲ့တာ ကြာခဲ့ပြီဆိုတော့ အလုပ်ကိုရှင်းပြရလွယ်ပါတယ် Civil Engineer ဆိုရင် ဘာလုပ်သလဲ ရှင်းစရာမလိုသလို Architect ဆိုရင် ဘာတွေလုပ်သလဲဆိုတာ အများအားဖြင့် ဖြေစရာမလိုပဲ မျက်လုံးထဲပြေးမြင်ပါတယ် Software Engineer လို့ပြောလိုက်ရင်တော့ ဘာကိုပြောမှန်းမသိတာများတယ် လူနည်းနည်းကြားဖူးနိုင်မယ့် Programmer လို့ပြောရင်တော့ ကြားဖူးတယ်ဆိုတဲ့ အခြေအနေတော့ရောက်ပါတယ်။

တကယ်တော့ ပရိုဂရမ်မာတွေမှာ အလုပ်အနေအထားအရ Developer, Development Team Lead, Project Manager, Software Tester, System Administrator, User Interface Designer, Software Architect စသည်ဖြင့် ထပ်ပြီးတော့ခွဲခြမ်းလိုက်ရင် အဖြေရခက်တဲ့အတွက် ဥပမာအဖြစ်လူမြင်သာမယ့် အဆောက်အဦးတစ်ခု တည်ဆောက်တဲ့ အခြေအနေနဲ့ ယှဉ်ကြည့်ပါတယ်။

ပထမဆုံးအနေနဲ့ အဆောက်အဦးတစ်ခု ဆောက်ကြမယ်ဆိုရင် အုတ်သယ်တဲ့လူ ဘိလပ်မြေဖျော်တဲ့လူ အုတ်စီတဲ့လူ စသည်ဖြင့်ပေါ့လေ တကယ်တမ်းအလုပ်ကြမ်း လုပ်ကြရတဲ့ အလုပ်သမားတွေကို အများဆုံးမြင်ဖူးကြပါလိမ့်မယ် အဲဒီလိုပဲ Software Development လုပ်တဲ့နေရာမှာ အလုပ်ကြမ်းလုပ်ရတာ ဘယ်သူတွေလဲမေးရင် Coding တွေရေးကြတဲ့ Programmer or Developer ဆိုတဲ့လူတွေဟာ Software တစ်ခုတည်ဆောက်ဖို့အတွက် လက်တွေ့ရေးကြ အလုပ်လုပ်ကြရတဲ့လူတွေဆိုတော့ အဆောက်အဦး တကယ်ဆောက်ရတဲ့ ပန်းရံသမားတွေနဲ့ အလားသဏ္ဍန်တူတယ်လို့ ဖြေရင်မြင်သာပါလိမ့်မယ်။

ပန်းရံလုပ်တော့လည်း သူတို့ပဲထားလို့မရဘူး လုပ်ထားတဲ့အလုပ်တွေ မှန်လားမမှန်လား သပ်ရပ်မသပ်ရပ် ကြည့်နေရတဲ့ ပန်းရံခေါင်းကိုလည်း အဆောက်အဦးဆောက်ရင် မြင်ဖူးကြမယ်ထင်တယ် အဲဒီလိုအလုပ်ကို Software Development မှာလည်း လုပ်ကြရတယ် ကိုယ်တိုင်လည်းဝင်မလုပ်ပဲ ဟိုလူ့ဆရာလုပ် ဒီလူ့ဆရာလုပ်နဲ့ ကိုယ်မလုပ်ရတိုင်း စကားပြောနေတဲ့လူကို Development Team Lead လို့နာမည်တတ်လေ့ရှိတယ် ယောက္ခမဆိုတာ တစ်ခါတုံးက သားမက်ပါပဲဆိုသလို Team Lead ဆိုတာတစ်ချိန်ကတော့ Programmer ပါပဲ ဒီတော့ကိုယ့်အချိန်က ပျင်းခဲ့တဲ့နေရာတွေသိနေတော့ စစ်ဆေးလို့တတ်တာပေါ့။

အဆောက်အဦးဆောက်တော့ ပန်းရံခေါင်းနဲ့ပဲ ယုံကြည်ပြီးတော့ ထားလို့လည်းမဖြစ်ပြန်ဘူး သူတို့အတွက်က နေ့စားအလုပ်တွေဆိုတော့ အချိန်ကြာလေလေ အလုပ်ရှိလေလေဆိုပြီး ဆေးလိပ်ဖွာလိုက် လက်ဘက်ရည် ထွက်သောက်လိုက်နဲ့ အလုပ်ပုံမှန်မလုပ်မှာစိုးရိမ်ရပါတယ် အဆောက်အဦးပိုင်ရှင်ရဲ့ လူယုံသော်လည်းကောင်း တာဝန်ယူထားတဲ့ ကန်ထရိုက်သော်လည်းကောင်းက မကြာခဏလာပြီးတော့ ကြည့်ရသေးတယ် ဘယ်နှစ်ရက်ဆို ဘယ်နှစ်ထပ်တော့ ပြီးသင့်ပြီတို့ ဘယ်နေ့ဆိုရင် အလုပ်သမားတွေနားကြမယ်တို့ အလုပ်ကိုဝင်လုပ်ဖို့ နားမလည်ပေမယ့် Resource နဲ့အချိန်ကိုစီမံခန့်ခွဲဖို့ လာလာကြည့်ရတယ်။ အဲလိုလူကို Software Development မှာတော့ Project Manager လို့ခေါ်ကြတယ်။

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

အဆောက်အဦးဆိုတာက ဆောက်ပြီးလည်း သူ့အတိုင်းနေလို့ရတာမဟုတ်ဘူး ပြင်ပနဲ့အဆက်အသွယ် လုပ်ဖို့လိုအပ်တယ် လမ်းကိုထွက်ဖို့လမ်းလိုသေးတယ် မီးလင်းဖို့အတွက် မီးကြိုးကလည်းသွယ်ရတယ် တယ်လီဖုန်းလိုင်လည်းဆွဲရမယ် ရေပိုက်လည်း စည်ပင်သာယာက ရေပိုက်မှာသွားဆက်ရမယ်။ Software Development မှာလည်း အဲဒီလိုပဲ ကိုယ့်ဟာကိုယ် ထိုင်ရေးနေလို့ပြီးတာ မဟုတ်ဘူးလေ တစ်ခြားသောပြင်ပက System တွေနဲ့ဆက်သွယ်ဖို့ လုပ်ရသေးတယ် လိုအပ်တဲ့ Tools တွေ Software တွေထည့်သင့်ရင် ထည့်ကြရတယ် Infrastructure တွေတပ် စသည်ဖြင့် လုပ်ကြရတယ် ဒီလိုအလုပ်လုပ်တဲ့လူတွေကို System Administrator ဆိုတဲ့လူတွေက လုပ်လေ့ရှိကြတယ်။

အဆောက်အဦးဆိုတာ တည်ဆောက်လို့ပြီး ရေမီးပြည့်စုံရုံနဲ့ မပြီးသေးပြန်ဘူး လိုအပ်တဲ့ ပရိဘောဂတွေ အခန်းဖွဲ့စည်းပုံတွေ စနစ်တကျလည်း လုပ်ရပါသေးတယ် Interior designer တွေက ဘယ်နေရာက ဧည့်ခန်းထား ပရိဘောဂကဘာအရောင် နံရံကိုဘယ်အရောင်ထား စသည်ဖြင့်ကျွမ်းကျင်ရာ လုပ်ကြရတယ် စနစ်ကျတဲ့ interior design ဖြစ်မှသာ အဆောက်အဦးဟာ အသုံးတည့်ပါတယ် ရေချိုးခန်းနဲ့အိမ်သာကို မှန်အကြည်ကာမိတယ်ဆိုသလို Designer နဲ့ဆိုရင်တော့ ပြဿနာတက်ပါပြီ။ Software တစ်ခုမှာလည်း သတ်မှတ်ထားတဲ့ Functionalities တွေပါပေမယ့် လူတွေသုံးလို့မလွယ်ရင် အသုံးတည့်ကြမယ် မဟုတ်ပါဘူး။ ဘယ်လို အသက်အရွယ်တွေ သုံးကြမှာလဲ ဘယ်လိုအခြေအနေနဲ့ သုံးကြမှာလဲ ခန္တာကိုယ်ချို့ယွင်းချက် ဘယ်လိုရှိကြတဲ့ လူတွေအထိ သုံးလို့ရဖို့လိုအပ်သလား စသည်ဖြင့်လိုအပ်ချက်တွေ အခြေခံပြီးတော့ User Interface Designer တွေ အလုပ်လုပ်ကြရတယ်။

အဆောက်အဦး တစ်ခုတည်ဆောက်ဖို့အတွက် နောက်ကွယ်ကမမြင်လိုက်ရတဲ့ လူတွေလည်းရှိတယ် ဆောက်မယ်ဆိုပြီး ပန်းရံငှားကန်ထရိုက်ရှာလို့ ဖြစ်တာမဟုတ်ဘူး တကယ်တမ်းက မတည်ဆောက်ခင်မှာ အဆောက်အဦး ပုံတွေကိုစနစ်တကျ တွက်ချက်ပြီး ဒီဇိုင်းဆွဲပေးရတဲ့ Civil Engineer တွေ Architect တွေမပါရင် ဆောက်လို့မဖြစ်နိုင်ပါဘူး။ ဒီလူတွေကတော့ အုတ်စီဆိုရင် ဝင်စီချင်မှစီတတ်ပါလိမ်မယ် ဒါပေမယ် အခြေအနေကိုသုံးသပ်ပြီး ဒီအတိုင်းဆက်သွားရင် ဘယ်နှစ်ထပ်နေရင် ပြိုကျတော့မယ်ဆိုတာ သိနိုင်တဲ့လူတွေပါ။ အဲဒီလိုပဲ Software System တစ်ခုမှာလည်း Development မလုပ်ခင်မှာ အရေးကြီးတဲ့ Architecture Design တွေဆွဲတဲ့ Software Architect ဆိုတာရှိတယ် Architect ဆွဲထားတဲ့ Specification အတိုင်း Implement လုပ်ကြသလို လိုအပ်ချက်နဲ့ ညီမညီလည်း Verify လုပ်ကြရတယ်။

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

Why do you use Linux?

GNU Linux

လွန်ခဲ့တဲ့ နှစ်တွေနဲ့ယှဉ်လိုက်ရင် Linux သုံးတဲ့လူ အရေအတွက် တိုးလာတာမြင်ရပါတယ်။ အခုအချိန်မှာ Linux တွေဟာ အိမ်သုံးအဖြစ်တိုးလာခဲ့တယ် GUI Shell တွေဖြစ်တဲ့ Gnome နဲ့ KDE ဟာ လွန်ခဲ့တဲ့ လေးငါးဆယ်နှစ်နဲ့ ဘယ်လိုမှနှိုင်းယှဉ်လို့ မဖြစ်နိုင်အောင် သုံးရလွယ်လာတာရယ် နေ့စဉ်သုံး Software တွေကလည်း Commercial Platform ပေါ်တွေနဲ့ ကွာဟမှုမရှိပဲ အတူတူဖြစ်လာတာက အဓိကအကြောင်းအရင်းလို့ ပြောလို့ရပါလိမ့်မယ် နောက်ပြီးတော့ လူသုံးအများဆုံး Linux ဟာ Android ဖြစ်လိမ့်မယ်။

ဒီနေရာမှာ ဘာဖြစ်လို့ Linux သုံးကြသလဲလို့ မေးလိုက်ရင် လူအတော်များများ ဘာဖြစ်လို့သုံးတယ်ဆိုတာ ဖြေကြရင် အမျိုးမျိုးကြားဖူးတယ်။ အများစုက လိုင်စင်ကြေးကြောင့်လို့ ပြောလေ့ရှိကြတယ် တကယ်တော့ အိမ်မှာသုံးဖို့အတွက် Operating System တွေရဲ့လိုင်စင်ကြေးဟာ သုံးတဲ့လူတွေ အခက်အခဲဖြစ်လောက်တဲ့ ပမာဏအဖြစ်ရှိလေ့မရှိပါဘူး ကိုယ့်နိုင်ငံမှာ Commercial Operating System ရောင်းမယ်ဆိုလည်း မဝယ်နိုင်တဲ့စျေးနဲ့ ရောင်းလိမ့်မယ်မဟုတ်ပါဘူး။ နောက်ပြီးတော့ လိုင်စင်ကြေး အလေ့အထကို ကြိုဆိုသင့်တယ် Software ဆိုတာ အလကားမရဘူးဆိုတဲ့ အသိဉာဏ်ရှိမှသာ နိုင်ငံထဲက Software လုပ်ငန်းတွေ အသက်ဆက်နိင်လိမ့်မယ်။

အခုအချိန်မှာ Software တွေဟာ Operating System အပေါ်မှီခိုတာ နည်းလာပါတယ် အိမ်သုံးကွန်ပျူတာတွေမှာ အသုံးအများဆုံး Software ဟာ Browser ဖြစ်ပါလိမ့်မယ်။ လူသုံးအများဆုံး Browser တွေဖြစ်တဲ့ FireFox, Chrome စတာတွေက Operating System မရွေးလုပ်တဲ့အတွက် Commercial Operating System မသုံးလည်းနေလို့ရလာပါတယ်။ ဒုတိယအသုံးအများဆုံးဖြစ်တဲ့ Office Application တွေမှာလည်း Microsoft Office နဲ့ OpenOffice ဟာကွာဟမှု အတော်နည်းသွားပါပြီ။ Microsoft Office 365 သုံးမယ်ဆိုရင် Linux ပေါ်ကလည်း Browser နဲ့သုံးလို့ရလို့ အတူတူပါပဲ။ အဲဒီတော့ Linux ဘာလို့သုံးသလဲမေးရင် ကိုယ်လုပ်တဲ့အလုပ်တွေ အတူတူပဲလုပ်လို့ရလို့ အသုံးတည့်လို့သုံးတယ်လို့ အသေအချာပြောပြနိုင်ရင် မမြင်ရတဲ့လိုင်စင်ကို ပြောနေတာထက် Enduser တွေကိုအဓိပ္ပာယ်ရှိရှိ ဆွဲဆောင်နိုင်လိမ့်မယ်။

နောက်ထပ် အဖြေများတာက Open source ဖြစ်လို့ဆိုတာ ပြောလေ့ရှိကြတယ်။ Open source ဆိုတော့ ဘာထူးခြားလို့လဲ ထပ်မေးမယ်ဆိုရင် Source တွေရှိတော့ ပြင်လို့ရတယ်တို့ ကိုယ်ပိုင်ပြန်ပြင်လို့ရတယ်လို့ ပြောလေ့ရှိတာပါပဲ။ ဒီနေရာမှာ ပြင်သုံးဖို့လိုအပ်ချက် ဘယ်လောက်ရှိသလဲဆိုရင် ကိုယ့်သုံးခဲ့တဲ့ အချိန်တစ်လျှောက်မှာ Linux ပြင်သုံးဖို့တော့ မလိုအပ်ခဲ့ဖူးဘူး Customized Build လိုအပ်လို့ပဲ Build လုပ်ခဲ့ရတာလောက်ပဲ ရှိခဲ့ဖူးတယ် Build လုပ်ရတာကိုပဲ လွယ်အောင် Makefile တွေလုပ်ထားပေးပြီးသားပါ ဒါပေမယ့် လူတိုင်းလုပ်နိုင်တဲ့ အခြေအနေမဟုတ်ပါဘူး ပြင်ဖို့အတွက်ဆိုတာကတော့ ကျွမ်းကျင်မှုလိုအပ်ချက် အများကြီးလိုအပ်ပါလိမ့်မယ်။

Open source ဆိုတာ စိတ်ကြိုက်ပြင်ပြီး သုံးလို့ရတယ်ဆိုတာက တစ်ချိန်ကလူတွေ ပြောခဲ့ကြတဲ့ စကားလုံးတွေပါ မှန်လည်းမှန်ခဲ့ပါတယ် Open source ဆိုတဲ့စကားလုံး စသုံးခဲ့ကြတဲ့ ၁၉၈၀ ကျော်နှစ်တွေက ဒါတွေသုံးတဲ့လူတွေဟာ Enduser တွေမဟုတ်ကြပါဘူး တကယ်လည်းပြင်နိုင်ကြတဲ့ လူတွေပဲသုံးနိုင်ခဲ့ကြတာပါ။ Linux မှာ Yum လို APT လို Package Management Tools တွေနဲ့ သုံးရတာကိုပဲ ခက်ခဲနေသယောင် ထင်လာကြတဲ့ အခြေအနေမှာ ကိုယ်တိုင် Build လုပ် မှားတာတွေရင်ပြင် ပြန်ပြီးတော့ Contribute လုပ်တဲ့ Open source Philosophy နဲ့ အလုပ်လုပ်နေနိုင်တဲ့လူ သိပ်များများမရှိကြပါဘူး။

အခုအချိန် Linux မှာ Source Code Distribution နဲ့အလုပ်လုပ်တာ အင်မတန်နည်းပါတယ် Build လုပ်ထားပြီးသား Binary တွေပဲ အများဆုံးသုံးနေကြတာပါ အိမ်သုံးပဲဖြစ်ဖြစ် Server တွေသုံးနေတာဖြစ်ဖြစ် လက်ရှိအနေအထားမှာ Open and Close ဟာမထူးခြားတဲ့ အခြေအနေပါပဲ။ အဲဒီတော့ Linux သုံးရတာ Open source ဖြစ်လို့သုံးတယ်လို့ ပြောဖို့အတွက် အတော်ကိုသတိထားရတယ် အခုအချိန်မှာ Linux တွေကိုစမ်းသုံးတာထက် အလုပ်လုပ်ဖို့ သုံးလာရတော့ အမြန်ပြီးဖို့အရေးကြီးတယ် ဒီတော့ Build လုပ်ပြီးသားသုံးရတာပါပဲ ဒီလိုနဲ့ Linux မှာ Open source Philosophy ပျောက်သလို ဖြစ်နေတာကြာခဲ့ပါပြီ။

တကယ်တမ်း Open source ဖြစ်လို့ Open source Philosophy ကိုသဘောကျလို့ဆိုရင်တော့ အချိန်ရရင် Linux From Scratch လိုတွေ Gentoo လို Linux တွေကို စမ်းကြည့်မှပဲ ဘယ်လိုတည်ဆောက်ထားတယ် သုံးတဲ့စက်အပေါ်မူတည်ပြီးတော့ အနိမ့်ဆုံးအဆင့်အနေနဲ့ ဘယ်လိုအဆင့်ဆင့် Build လုပ်ရတယ် နားလည်လိမ့်မယ်။ Linux မဟုတ်ပေမယ့် Open source အငွေ့အသက် ပျောက်ပျက်မသွားတာ FreeBSD ဖြစ်လိမ့်မယ် Binary လည်း Distribution ရှိတယ် လိုအပ်လာလို့ Patch ဘာကြောင့်လုပ်ရသလဲ အသေချာပြောပြတယ် Patched လုပ်ပြီးသားအတွက် Binary မရှိရင် ကိုယ်တိုင်ပဲ Build လုပ်ယူရတယ် အရာအားလုံး Transparent ဖြစ်နေဆဲပါပဲ။

Developer တစ်ယောက်အတွက် Open source Language တွေအများကြီးရှိပါတယ် PHP, Python, Ruby စသည်ဖြင့်ပေါ့လေ။ ဥပမာအနေနဲ့ Python Developer တစ်ယောက်ကို Python ကိုဘာလို့သုံးသလဲမေးရင် Open source ဖြစ်လို့သုံးတယ်လို့ ဘယ်သူမှဖြေမယ်မဟုတ်ပါဘူး သူ့မှာရနိုင်တဲ့ Features တွေ Tools တွေအလွယ်တကူရနိုင်တယ် Deployment လွယ်ကူတယ် စသည်ဖြင့်ပေါ့လေ ဘယ်လိုအဆင်ပြေသလဲပဲ ပြောကြရမှာပါပဲ Python ကို Open source ဖြစ်လို့ပြင်သုံးလို့ရလို့ဆိုရင်တော့ တစ်ထောင်မှာ တစ်ယောက်လိုအပ်မှာ မဟုတ်တဲ့အခြေအနေမှပဲ ဖြစ်ကောင်းဖြစ်ပါလိမ့်မယ်။

ကိုယ်တိုင်သုံးတာပဲဖြစ်ဖြစ် မိတ်ဆွေသူငယ်ချင်းကို Linux သုံးဖို့တိုက်တွန်းချင်ရင်ပဲဖြစ်ဖြစ် သူတို့အလုပ်အတွက် ဘယ်လိုအသုံးကျတယ်ဆိုတာ အသေအချာပြောပြီးပဲ တိုက်တွန်းစေချင်တာပါ Richard Stallman တို့ခေတ်က Open source စကားလုံးတွေ ပြောချင်ရင်တော့ အခုအချိန်မှာလူနားလည်ဖို့ အတော်ခက်လိမ့်မယ် အများသုံးစေချင်ရင်တော့ သုံးမယ့်လူရဲ့ အလုပ်တွေနဲ့ဘယ်လို အဆင်ပြေမယ့်အကြောင်း ကိုယ်ဘယ်လိုအဆင်ပြေသလဲ ပြောပြနိုင်မှပဲ အသင့်လျော်ဆုံး အကြံပေးတာ ဖြစ်ပါလိမ့်မယ်။