Programmer (၅) မျိုး
ကျွန်တော် ကျောင်းသား ဘဝ programming လေ့လာတဲ့အချိန်ကစ ခုု လေ့လဲနေဆဲ အချိန်ထိ programmer ဆိုတဲ့သူတွေ အများကြီး တွေ့ဖူးပါတယ်။ အံ့သြစရာ ကောင်းလောက်အောင် programming ကို ရူးသွပ်တဲ့သူတွေ ထိုင်ရာက မထ ၈ နာရီလောက် ကွန်ပျူတာရှေ့မှာ ငုတ်တုပ် ထိုင်ရေးနေတဲ့ သူတွေ အစုံပဲပေါ့။ ဒီလူတွေကိုု ခွဲခြား မိသလောက် Desktop, Web, Mobile filed အစုံ နယ်ပယ်စုုံ type ငါးမျိုးလောက် ရှိတယ်လိုု့ သတ်မှတ် နိုင်ပါတယ်။ ဒီငါးမျိုးဟာ ကိုယ့်ပတ်ဝန်းကျင်ထဲမှာ တစ်မျိုးမဟုုတ် တစ်မျိုး တွေ့နေရပါတယ်။ ကိုယ့်ကိုယ်ကိုလည်း ငါဘယ်ထဲ ပါမလဲလိုု့ တွေးကြည့်ပါ။
ငါးမျိုးထဲမှာ တစ်မျိုးကနေ တစ်မျိုးကိုု Project တစ်ခုုရဲ့ Timeline, Budget, Deadlines, Customer ရဲ့ urgent request, require features , System Analyst ဆီက Design တွေ DFD တွေ ELH တွေ စတာတွေကိုု အခြေခံပြီး ပြောင်းလဲချင် ပြောင်းလဲသွားနိုင်ပါသေးတယ်။
၁။ Duct Tape Programmer
“မင့် Code ကြီးက ကြည့်ရတာ ရှုပ်ရှက် ခက်နေတာပဲ . ဟေး အဲဒီလိုု ေ-ာက်ရေးမပါတာတွေ ဂရုစိုက်မနေနဲ့ ငါ့ code က တကယ် အလုပ် လုပ်တယ်ကွ”
Duct Tape Programmer ဆိုတဲ့သူဟာ မင်း Company or Team ရဲ့ Foundation လူတွေ ဖြစ်တယ်။ အရင်ဆုံုး Project မှာ တစ်ခုခု bug တွေ ဖြစ်လာပြီ ဆိုုရင် ဒီလိုလူတွေက အမြန်ဆုံး နဲ့ နောက်တစ်ခါ ထပ်မဖြစ် ရလေအောင် Fix လုပ်နိုင်တဲ့သူတွေလည်း ဖြစ်ပါတယ်။ Product အမြန်ပြီးဆုံးဖို့နဲ့ Market ထဲကို အမြန်ရောက်ဖို့ကို ဦးစားပေးတက်တဲ့ သူမျိုးတွေလို့ သတ်မှတ်ထားလို့ ရပါတယ်။ သူ့ code တွေက တခြား code တွေလို ကြည့်ကောင်းချင်မှ ကောင်းပါလိမ့်မယ် Tab တွေ ဘာတွေနဲ့ Format လည်း မလုုပ်ထားဖူး ၁ ကနေ ၅ အထိကိုု For Loop ပတ်ထုတ်လိုက်ရင် ရတာကိုု ဒါကိုပဲ ၅ ခါရေးတဲ့သူတွေ နောက်လူက လာဖတ်ရင် နားလည်ချင်မှ လည်လိမ့်မယ်။ ဒါပေမဲ့ product တစ်ကယ် ထွက်လာတယ်။ Unit Test တွေ ဘာတွေ သူတိုု့ လုပ်မှာမဟုုတ်ပါဖူး။ သူတို့ကို ပြသနာတစ်ခုကို ညွှန်းပြ ၊ ဒါမှမဟုုတ် ကိုယ့်ပြိုင်ဖက်နဲ့အပြိုင် လုပ်နေရတဲ့အချိန်တွေ ဒီလိုအချိန်တွေမှာ အရမ်းအသုံးဝင်တဲ့ programmer တွေပါ။
(ဒီအကြောင်းကို Myanmar IT Pro မှာ ကိုအိမောင်က Programmer Vs. Computer Science ဆိုပြီး ရေးထားတာ ရှိပါတယ်။)
၂ ။ Perfectionist Programmer
“ ဟေး ပြောစမ်းပါ.. မင်း ငါ ရေးထားတဲ့ code နဲ့ ဘာလုပ်ချင်တာလဲ ”
ဒီလိုလူတွေဟာ မင်း project ရဲ့ Deadlines တွေ budget တွေကိုု ဂရုုစိုုက်နေမယ့်သူတွေ မဟုုတ်ပါဖူး။ ဒါတွေဟာ Programming ဆိုုတဲ့ အနုုပညာနဲ့ နှိုင်းယှဉ်လိုုက်ရင် နည်းနည်းမှ အရေးပါတဲ့အရာတွေ မဟုုတ်ဖူးလိုု့ ခံယူထားတဲ့ သူတွေပေါ့ဗျာ။ သူတိုု့ဆီက နောက်ဆုံုးထွက်လာတဲ့ product မှာ မင်းအတွက် ရွေးချယ်စရာ မလိုုတော့လောက်အောင် ကောင်းမွန် လှပတဲ့ Format နဲ့ ဖြစ်လာမှာပါ။ perfectly beautiful code ဆိုတာမျိုးပေါ့
။ သူတိုု့ရဲ့ code တွေဟာ Efficient ဖြစ်လွန်းလိုု့ မင်းနောက်လုုပ်ချင်တာတွေ လုုပ်စရာမလိုုလောက်အောင် ကောင်းတဲ့ MasterPiece တွေ ထွက်လာတာပေါ့။ သိုု့ပေမယ့် ဒီလူတွေက သူတိုု့ရဲ့ Code အကြောင်းကိုုပဲ အကျွမ်းတဝင်ရှိကြတဲ့သူမျိုးတွေပါ။
၃ ။ Anti-programming Programmer
“ကျွန်တော်ဟာ Programmer တစ်ယောက်ပါ။ ဒါပေမဲ့ ကျွန်တော် code မရေးပါဖူး ဘာလိုု့ ဘီးကိုု ပြန်တီထွင်နေမှာလဲ သူများထွင်ထားတာကိုု ယူသုံုးမှာပေါ့ကွာ”
ဒီလိုုမျိုးလူတွေမှာ ခံယူချက်တစ်ခုု အမြဲတမ်းရှိပါတယ်။ “Code ရေးရတယ် ဆိုုတာချည်းကိုုက မကောင်းဘူး” . မင်း ဒီ problem အတွက် fix လုုပ်ဖိုု့ code တစ်ခုုခုု ရေးရတော့မယ် ဆိုုကတည်းက မင်းမှားနေပြီ။ တစ်ယောက်ယောက်က မင်းလိုု မှားဖူးပြီး fix လုုပ်ပြီးသား Code တွေ ရှိလိမ့်မယ် အဲဒါကိုု သုံုးလိုုက်ရုံုပေါ့။ ကဲ မလွယ်ဖူးလား” Anti-programming programmer တွေက မင်းကိုု သူတိုု့ရဲ့ နည်းလမ်းဟာ ဘယ်လောက် မြန်ပါတယ် ဆိုုတာ ရေပက်မဝင်အောင် ပြောပြလိမ့်မယ်။ ဒါပေမဲ့ လက်တွေ့မှာ တခြားသူတွေထက် မြန်ချင်မှလည်း မြန်မယ် နှေးချင်လည်း နှေးလိမ့်မယ်။
နောက်ဆုံုး သူတိုု့ဆီက project ထွက်လာတဲ့အခါကျ သူတို့ code ကိုု ကြည့်လုုိက်ရင် line ၂၀ တည်းနဲ့လည်း ဖြစ်ချင် ဖြစ်နေလိမ့်မယ်။ အဲဒီ line ၂၀ ဟာလည်း အင်မတန်မှ နားလည်ရ လွယ်ကူနေပါလိမ့်မယ်။ သူတိုု့ရဲ့ code တွေဟာ Effecient ဖြစ်ချင်မှလည်း ဖြစ်မယ် Forward-Compatible လည်း ဖြစ်ချင်မှ ဖြစ်ပါလိမ့်မယ်။ ဟမ်.. မင်း ဒါတွေ ဂရုုစိုုက်နေမှာလား ဒါဟာ အင်အား စိုုက်ထုုတ်ရတာ အနည်းဆုံုးပဲ မဟုုတ်ဖူးလား
၄ ။ Half-Assed Programmer
“မင်း ဘာလိုုချင်တာလဲ ငါ့ကိုုပြော .. အဲဒါ အခုအလုပ်လုုပ်နေတာပဲလေ မဟုုတ်ဖူးလား”
Quality ဆိုုတာ ဘာလဲလိုု့ မေးရလောက်အောင် ဂရုုမစိုုက်တဲ့ သူတွေပေါ့ဗျာ။ သူ့ကိုု ခိုုင်းထားတဲ့ Task ကိုု ပြီးအောင် ခပ်မြန်မြန်ပြီးအောင် လုုပ်မယ်။ မင်း သူ့ကိုု သဘောကျချင်မှ ကျမှာပါ။ သူ့လုုပ်ဖော်ကိုုင်ဖက်တွေဆိုု သူ့ကိုုတောင် အမြင်ကတ်ချင် ကတ်နေလိမ့်မယ်။ ဒါပေမဲ့ အထက်က Management နဲ့ Client တွေကတော့ သူ့ကိုုသဘောကျတယ်။ နောင် သူ့ code က ပြသနာတက်ပြီး မင်းတိုု့ကိုု ဒုုက္ခပေးချင်ပေးလိမ့်မယ်။ နောက်ဆုံုးတော့ မင်းမတတ်နိုုင်တဲ့ ခပ်မြန်မြန် ပြီးဖိုု့လိုုနေတဲ့အလုုပ်တွေကိုု handle လုုပ်နိုုင်တာတော့ သူလိုု programmer တွေပဲ ဖြစ်ပါတယ်။
၅ ။ Theroetical Programmer
“ခုလုုပ်နေတဲ့ဟာမှာ ဖြစ်နိုုင်ခြေတစ်ခုု ရှိတယ်.. ဒါပေမဲ့ ဒီဟာကလည်း နောက်ထပ် ရွေးချယ်စရာ တစ်ခုု ဖြစ်ချင် ဖြစ်နေမှာ”
ဒီလူတွေက ဘာလုုပ်ရင် အသင့်တော်ဆုံုးဆိုုတာထက် ဘယ်လိုု option တွေ ရှိနိုုင်သလဲ ဆိုုတာကိုု ပိုုစိတ်ဝင်စားတဲ့သူတွေပါ။ သူ့အချိန်အားလုံုးရဲ့ 80 % လောက်ကိုု ကွန်ပျူတာကြီး ငေးစိုုက်ကြည့်ပြီး တွေးနေတာနဲ့ ပြီးသွားတာပဲ ။ 15 % လောက်ကိုု သူ့အထက် လူကြီးနဲ့ ဒီမမျှမတ Deadline အကြောင်း ငြင်းခုံုနေတာရယ် ကျန်တဲ့ 4 % လောက်ကိုု တခြား ရွေးစရာ option တွေ ရှာနေတာရယ် နောက်ဆုံုး 1 % လောက်ကိုုမှ တကယ့် coding ရေးတာရယ်နဲ့ ပြီးသွားစေပါတယ်။ နောက်ဆုံုးပြီးသွားတဲ့ product မှာ အောက်က စာကြောင်းလေး အမြဲပါနေပါလိမ်မယ့် “ မင်း ငါ့ကိုုသာ ဒီထက် အချိန်ပိုုပေးရင် ငါ ဒီထက် ကောင်းတဲ့ နည်းနဲ့ လုုပ်ပေးလိုု့ရတယ် ”
အထက်က ငါးမျိုးမှာ Duct Tape နဲ့ Half-Assed , Perfectionist နဲ့ Theroetical တိုု့က တူပုံုရပေမယ့် သေချာ တွေးကြည့်ရင် မတူပါဖူး။
နောက်ထပ် Type တွေလည်း ရှိနိုုင်ပါသေးတယ်။ mechanic programmer လိုု့ခေါ်တဲ့ Build Engineer တွေပေါ့။ product နဲ့ နောက်ဆုံုး finishing ပိုုင်းကိုု လုုပ်တဲ့သူတွေပါ။ build လုုပ်တယ် အလုုပ်မလုုပ် စောင့်ကြည့်တယ်၊ ဒါပေမဲ့ ဒါဟာ အထက်က programmer ငါးမျိုးစလုံုးက လုုပ်တတ်တယ်လိုု့ ယူဆလိုု့ ထည့်မရေးတော့ပါဖူး။
ကျနော်ကတော့ ကိုယ့်ကိုုယ်ကိုုယ် Code မရေးချင်တဲ့ (Anti-Programming) Duct taper တစ်ယောက်လိုု့ ထင်ပါတယ်။ မိတ်ဆွေတိုု့ရော ကိုုယ့်ကိုုယ့်ကိုုယ် ဘယ်လိုု ထင်သလဲဆိုုတာ Comment လေးတွေ ပေးခဲ့နိုုင်ပါတယ်။ အကြံပေးစရာရှိတာ ဆွေးနွေးစရာများကိုုလည်း တစ်ပါတည်း ရေးခဲ့နိုုင်ပါတယ် =D
Other link : http://www.infed.org/biblio/b-explrn.htm
http://blogs.techrepublic.com.com/10things/?p=262
http://stevenbenner.com/2010/07/the-5-types-of-programmers/ မှ
postကိုု သင့်တော်သလိုု ဘာသာပြန်ကာ ရေးသားပါသည်။ ဖတ်လိုု့ အဆင်ပြေပါက မူရင်းရေးသားသူ တော်၍ဖြစ်ပြီး မပြေပါက ဘာသာပြန်သူ ကျနော် ညံ့သောကြောင့် ဖြစ်ပါသည်။
Facebook comments:







I am Duct Tape Programmer/Anti-programming Programmer and sometime Half-Assed Programmer also. But sure is not Perfectionist Programmer
I think I’m a mix of Perfectionist and Theoretical
ဟီး…. ဖတ်လိုက်မှ ကိုယ့်ကိုယ် ဘာမှန်းတောင် မသိတော့ဘူး…
Coding မရေးခင်ကတော့ 3 ကို လုပ်ချင်တယ်။ ဒါပေမယ့် ရှာရတာကိုလည်း တအားစိတ်မရှည်တော့ 1 ပြန်ဖြစ်သွားတတ်တယ်။ နောက်တော့ ရေးနေချိန်မှာဘဲ 2 ဖြစ်သွားပြန်ကော။
အဲဒီ့တော့ ဘာလို့ကောက်ချက်ချရမလဲ?
ကျွန်တော်လည်း Perfectionist မဟုတ်တာကလွဲလို့ ကျန်တာ အကုန်ပဲ … ဟဲဟဲ
ကျွန်တော့် အထင် programmer တော်တော်များများ က anti programming programmer တွေ လို့ မြင်တယ်။ အထူးသဖြင့် Web Development ပိုင်းမှာပေါ့ဗျာ။ Open source တွေ အများအပြား ရှိနေတာရယ်၊ jquery, mootools တွေလို script library တွေ plug-in တွေ ရှိနေတာကြောင့် coding တွေ ကို အချိန်ကုန် ခံပြီးရေးဖို့ စိတ်မဝင်စားကြတော့ပါဘူး။ Perfectionist ဖြစ်ရင် တော့ အကောင်းဆုံးပေါ့ဗျာ။
Anti ဆိုုတာက သူက အကုုန်လုုံးကိုု ဘယ်လိုုလုုပ်ရတယ်သိသွားတာကိုုဗျာ။ ဘီးကိုုတော့ ပြန်တီထွင်စရာမလိုုဖူး ဒါပေမဲ့ ဘီးကိုု ဘယ်လိုု တပ်သုုံးရမယ် ဘယ်နေရာမှာ ဘယ်လိုုလေး ပြင်ပြီး ကိုုယ့်လိုုအပ်ချက်အတိုုင်းလေး ရအောင် fix လုုပ်လိုုက်မယ် ဒါတော့ သိဖိုု့လိုုပါတယ်။ programming မယ်လည်း ဒီလိုုပဲပေါ့ ဆရာ =D
coding ကတော့ ဘယ်လိုုမှ မရတော့ဘူးဆိုုရင် ရေးရတာပဲ ဟီး အဲကျရင် anti လည်း duct-tape ဖြစ်ချင်ဖြစ် ဒါမှမဟုုတ် half-ass ဖြစ်ရင် ဖြစ်လာလိမ့်မယ် ကိုုယ်လုုပ်ရမယ့် အခြေအနေ requirement budget စတာတွေပေါ် မူတည်တာပေါ့ =D
ငါးမျိုးလုံး အကုန်မတူပဲ နည်းနည်းစီ တူနေတဲ့ programmer ကျတော့ ဘယ်လိုခေါ်ရမှာတုန်း..
အဲဒါ programmer မဟုုတ်ဖူး =P
အနော်က တစ်… ဟိဟိ
I am ၃ ။ Anti-programming Programmer!! and I am proud of it.
မှန်လိုက်လေ။
၂ ဖြစ်ချင်လို့ အရမ်းလုပ်ဖူးတယ်… ဒါပေမယ့် ဂိမ်း၁ခုမှ မပြီးခဲ့ဘူး…
)
လုံးဝ ၁ နဲ့ ၃ နဲနဲ ပြန်ဖြစ်သွားမှ productive ဖြစ်ပြီး release game လေး ဘာလေး ရှိတော့တယ်…
(နောက်၁ခုတောင် release ထပ်လုပ်တော့မယ်… (ကြော်ညာ)
ကြေညာခက App ရောင်းရတဲ့ခတဲ့က 20% ဖြတ်ပီး MyanmarTutorials ကိုုပေးရမယ် ဒါပဲ =P
ဟုတ်ပါ့ဗျာ….
အနော်က ၄…
Client နဲ့ Deadline ကြောင့် Quality ကိုထည့်မတွက်နိုင်ဘူး…
လုုပ်ဖော်ကိုုင်ဖက်တွေက အားမပေးဖူးလား xD
sometime 1, sometime 3, sometime 5
what am i?
I’m 3 & 4.

Anti Programming Programmer & Half Assed Programmer
ဘယ်မှာမှ မပါသေးဘူး ဟီး
ဘယ်ဘက်အခြမ်းက စရင် ကောင်းမလဲလို့ စဉ်းစားတုန်း
ဟိုဘက်ကစလိုက်လေ ..