PHP Developers

Road to PHP Developer Part 1

ကျွန်တော့်ကို PHP Developer တစ်ယောက်အနေနဲ့ အလုပ်ရတဲ့အထိ ဘယ်လို လမ်းလျှောက်ရမလဲဆိုပြီး မေးထားတာ ရှိပါတယ်။ အဲဒီအတွက် အားလုံးသိအောင် ဒီဆောင်းပါးကို ရေးလိုက်ရတာ ဖြစ်ပါတယ်။

Childhood

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

Sequencing

Sequencing ဆိုတာကတော့ အစီအစဉ်တကျ ဖြစ်အောင် စီစဉ်တတ်ခြင်းဆိုတာကို ဆိုလိုပါတယ်။ တကယ်တန်း Program ရေးတယ်ဆိုတာ လုပ်ငန်းဆောင်တာတွေကို အစီအစဉ်တကျ ဖြစ်အောင် စီစဉ်ဆောင်ရွက်တာ ဖြစ်ပါတယ်။ ငယ်ငယ်ကတည်းက အိမ်မှာရှိတဲ့ ပစ္စည်းတွေကို အစီအစဉ်တကျ ဖြစ်အောင် စီစဉ်တတ်အောင် သင်ပေးမယ်၊ ကစားရင်တောင် အစုလိုက်အဖွဲ့လိုက် အစီအစဉ်တကျ ဆော့လို့ရတာတွေ ကစားစေမယ်၊ ကလေးတွေအတွက် Activities တွေမှာ အစီအစဉ်တကျ ပါဝင်စေမယ် စတာတွေ ပြုလုပ်ပေးဖို့ လိုပါတယ်။ ဒီနေရာမှာ Sequencing ကို သင်ပေးတဲ့အခါ Result ဆိုတာကို မမေ့ဖို့ လိုပါတယ်။ စနစ်တကျ စီလိုက်တယ်၊ ဘယ်လို Result ထွက်လာတယ်ဆိုတာ ကြည့်ရပါမယ်။ ပိုကောင်းတဲ့ Result တွေ ထွက်လာအောင် စီတတ်ဖို့ သင်ပေးဖို့ လိုပါတယ်။

Decomposition

Decomposition ဆိုတာကတော့ ပြဿနာအကြီးကြီးတွေကို ပြဿနာ အသေးလေးတွေ အဖြစ် ခွဲခြားမြင်တတ်အောင် သင်ပေးတာ ဖြစ်ပါတယ်။ ဥပမာ – သမီးမှာ သားမှ ဒီလို ပြဿနာတွေ တက်နေတယ် စသည်ဖြင့် လာပြောတဲ့အခါ ပြဿနာအကြီးကြီးကို ခွဲခြမ်းပြီး အသေးလေးတွေ ဖြစ်အောင် တွေးတတ်အောင် သင်ပေးလိုက်ပါ။ သမီးက ပုံမဆွဲတတ်ဘူး ဆိုရင် ပုံမဆွဲတတ်ခြင်း ပြဿနာရဲ့အောက်မှာ ခဲတံကို ကောင်းကောင်း မကိုင်နိုင်သေးတာ၊ စာရွက်ကို နေရာမှန်မှန် မချတတ်သေးတာ၊ ပုံဆွဲဖို့အတွက် Motivation မရှိတာ စသည်ဖြင့် ပြဿနာအသေးလေးတွေ ဖြစ်လာအောင် သမီးလေးကို စဉ်းစားခိုင်းလိုက်ပါ။ ဒီနေရာမှာ လူကြီးတွေအနေနဲ့ ဒီလိုမျိုး ပြဿနာတွေနဲ့ ရင်းနှီးပြီးဖြစ်တဲ့အတွက် တစ်ခါတည်း အဖြေကို ပေးလိုက်တာမျိုး မဖြစ်သင့်ပါဘူး။ အဲဒါဆိုရင် ပြဿနာအကြီးကြီးတက်တိုင်း အဖေ၊ အမေတွေက ဖြေရှင်းပေးတယ်လို့ပဲ မြင်သွားပြီး ပြဿနာအကြီးကြီးကို ဖွဲ့စည်းထားတဲ့ အောက်က ပြဿနာ သေးသေးလေးတွေကို မြင်တော့မှာ မဟုတ်ပါဘူး။ ကျွန်တော်တို့ ကုဒ်ရေးတဲ့အခါ Decomposition Skill ဟာ အင်မတန် အရေးပါပါတယ်။

Algorithms

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

Pattern-Spotting and -Making

Pattern Spotting နဲ့ Pattern Making ဆိုတာကတော့ တစ်ခုနဲ့ တစ်ခု ဆက်စပ်နေတာကို မြင်နိုင်အောင် လေ့ကျင့်ပေးရတဲ့ အလေ့အကျင့်ဖြစ်ပါတယ်။ အဲဒီလို အဆက်အစပ်တွေကနေ ကိုယ်ပိုင် Pattern တွေ ဖြစ်လာတဲ့အထိ လေ့ကျင့်ပေးရတာ။ ဥပမာ – ဖန်ခွက်တစ်ခွက် ဆိုပါစို့၊ သူက ဘယ်က ဖြစ်လာတာလဲ၊ သဲတွေကို ကြိုပြီး ဖြစ်လာတာပေါ့၊ အဲဒီမှာ YouTube မှာ ရှာပြီး ဖန်ခွက်လုပ်တာကို ကလေးကို ပြလိုက်မယ်။ ဒါဆိုရင် ဖန်ခွက်နဲ့ သဲရဲ့ ဆက်စပ်မှုကို ကလေးက နားလည်သွားပါလိမ့်မယ်။ အဲဒီအပြင် ဖန်ခွက်လှလှလေးတစ်လုံး ဖြစ်လာအောင် ကလေးကို အလှဆင်ခိုင်းဖို့ လိုပါတယ်။ အဲဒီမှာ ဖန်ခွက်နဲ့ အလှတရား ဆက်စပ်မှုကို မြင်လာပါမယ်။ ဖန်ခွက်လေး ကျကွဲသွားတယ် ဆိုပါစို့။ ဖန်ခွက်နဲ့ ပျက်စီးတတ်ခြင်းကို ဆက်စပ်ပြီး မြင်လာပါလိမ့်မယ်။ ကလေးက မြတ်နိုးရတဲ့ ဖန်ခွက်လေးကို ကျမကွဲအောင် ဘယ်လိုလုပ်မလဲဆိုတာ သင်ပေးပါ။ အဲဒီမှာ ဖန်ခွက်နဲ့ ထိမ်းသိမ်းစောင့်ရှောက်မှုကို တွဲမြင်လာပါလိမ့်မယ်။ နောက်ဆုံး သားသား မီးမီးနဲ့ အကိုက်ညီဆုံးဖြစ်တဲ့ ဖန်ခွက်အရွယ်အစား၊ ဂိုင်း၊ အရောင်၊ အလှဆင်မှု စတာတွေ အားလုံး Pattern အသစ်တစ်ခု ဖြစ်လာတဲ့အထိ တွေးတော လေ့ကျင့်ပေးဖို့ လိုအပ်ပါတယ်။ 

Loops

Loops ဆိုတာကတော့ အကြိမ်ကြိမ်လှည့်ပတ်နေတဲ့ အစီအစဉ်တွေကို သင်ပေးတာ ဖြစ်ပါတယ်။ ဒီနေရာမှာ ထပ်ပြီး သတိပေးလိုတာက Computation Thinking အားလုံးအနေနဲ့ Result-oriented ဖြစ်ဖို့ လိုပါတယ်။ Result တွေ ထွက်ဖို့လိုပါတယ်။ Loops ကို သင်တဲ့အခါမှာလဲ မနက်အိပ်ရာထမယ်၊ သွားတိုက်မယ်၊ မျက်နှာသစ်မယ်၊ ရေချိုးမယ်၊ ကျောင်းသွားမယ် စသည်ဖြင့် လှည့်ပတ်နေတဲ့ အစီအစဉ်တွေက လူတိုင်း သိပါတယ်။ ဒါပေမယ့် အဲဒီအစီအစဉ်ကြောင့် ကလေးအနေနဲ့ ဘာ Result တွေ ထွက်လာသလဲဆိုတာ မြင်အောင် လုပ်ပေးဖို့ လိုပါတယ်။ ဒါမစားနဲ့ ဆိုတာကို အတင်းအကြပ် တားမြစ်တာထက် ဒါစားရင် ဘာဖြစ်လာမလဲဆိုတဲ့ Result ကို နားလည်အောင် ရှင်းပြပေးဖို့ လိုပါတယ်။ အထပ်ထပ်ဖြစ်ပျက်နေတဲ့ အစီအစဉ်တွေကို နားလည်အောင် လုပ်ပေးပြီး ဒီထက် ပိုကောင်းတဲ့ အစီအစဉ်တွေ ဖန်တီးတတ်အောင် လေ့ကျင့်ပေးဖို့ လိုပါတယ်။ လမ်းပိုတိုတဲ့ အစီအစဉ်တွေ ဖြစ်လာအောင် သင်ပေးဖို့ လိုပါတယ်။

Conditionals

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

Debugging

ဒါကတော့ Result မထွက်တာကို ထွက်အောင် ဘယ်လိုလုပ်မလဲ၊ ဘာတွေ မှားနေလဲ စသည်ဖြင့် အမှားတွေကို အမှန်ဖြစ်အောင် ပြင်တာပါ။ ကလေးတစ်ယောက်က အမှားတခု ဖြစ်လာရင် မဆူပဲ ဘာကြောင့်မှားတာလဲ ဘာတွေ မှားနေလဲ ဘာတွေ ပြင်ရမလဲ စသည်ဖြင့် စဉ်းစားခိုင်းဖို့ လိုပါတယ်။ အဲဒါ Debugging Skill ပါပဲ။ ကျွန်တော့် အတွေ့အကြုံအရ PHP Developer အနေနဲ့ အသက်မွေးမယ်ဆိုတဲ့ သူတွေအနေနဲ့ ကူးချဖို့သာ စိတ်အားထက်သန်ကြတာတွေ များနေတတ်ပါတယ်။ အဲဒီလို ကူးချထားတာကနေ ပြဿနာတစ်ခုခု တက်လာတဲ့အခါ Debugging လုပ်ဖို့ စိတ်ပျက်အားလျော့ သွားတတ်ပါတယ်။ အဲဒီလိုဖြစ်လာတယ်ဆိုတာ ငယ်ငယ်ကတည်းက သင်ယူလေ့လာမှု အလေ့အကျင့်တွေနဲ့ အများကြီးဆိုင်ပါတယ်။ ပြဿနာကို စိန်ခေါ်မှုလို့ မြင်လာအောင် အဲဒီလို ပြဿနာရဲ့ အတားအဆီးတွေ အခက်အခဲတွေကို ကျော်ဖြတ်နိုင်အောင် ငယ်ငယ်ကတည်းက သင်ပေးမယ်ဆိုရင် အများကြီး သင်စရာတွေ ရှိနေပါလိမ့်မယ်။

Events

Events ဆိုတာကတော့ ကြောင်းကျိုးဆက်စပ်မှု သဘောတရားတွေ နားလည်လာအောင် သင်ကြားပေးတာ ဖြစ်ပါတယ်။ ဥပမာ မီးတစ်လုံးပွင့်လာတယ် ဆိုပါစို့၊ ခလုပ်တစ်ခု နှိပ်လိုက်တဲ့ အကြောင်းကြောင့် မီးပွင့်လာတဲ့ အကျိုးဖြစ်လာတယ်ဆိုတာ သင်ပေးဖို့ လိုပါတယ်။ မီးခလုပ်ဖွင့်လိုက်တယ်ဆိုတာ လျှပ်စစ်မီးနဲ့ ချိတ်ထားတဲ့ အကြောင်းကြောင့် အဲဒီလျှပ်စစ်မီးဆိုတာလဲ အစိုးရဆီက ဝယ်ရတယ်ဆိုတာရော၊ ရေအားလျှပ်စစ်တွေက တစ်ဆင့် လျှပ်စစ်မီးထုတ်တယ်ဆိုတာက အစအကုန် သင်ပေးဖို့လိုပါတယ်။ ကျွန်တော်တို့ Programming သင်တဲ့အခါ Events ဆိုတာကကို နားလည်ဖို့ သင်ရအခက်ဆုံးမှာ ပါပါတယ်။ ငယ်စဉ်ကတည်းက Event-Trigger သဘောတရားတွေကို သင်လာမယ်ဆိုရင် ကြီးလာတဲ့အခါ သိပ်မပင်ပန်းတော့ပါဘူး။

ဆက်ပါဦးမယ်