Graph Algorithms

ကိုယ်တိုင် Graph နဲ့ပတ်သတ်တဲ့ Leetcode တွေရှင်းတဲ့အချိန်မှာ နဲနဲအခက်အခဲဖြစ်နေလို့ သေချာလိုက်ကြည့်ဖြစ်လို့ မြန်မာလိုရေးထားတာလဲမတွေ့မိလို့ ကိုယ်တိုင်လိုက်လေ့လာရင်းနှင့် တခြားကိုယ့်လိုသိချင်တဲ့သူတွေလဲ မြန်မာလိုလွယ်လွယ်ကူကူဖတ်ပီးနားလည်ပါစေဆိုတဲ့ စိတ်နှင့်ရေးထားတာပါ။ မှားယွှင်းနေတာ လွဲနေတာတွေရှိရင် comment မှာထောက်ပြပေးဖို့ပြောလိုပါတယ်။ ကျနော် reference ယူထားတဲ့ video တွေစာအုပ်တွေကိုအောက်ဆုံးမှာဖော်ပြထားပါတယ်။ ဒီ Graph အကြောင်းကိုမဖတ်ခင်သိထားရမယ့်ဟာလေးတွေရှိပါတယ်။ Basic Data structure နှင့် Recurssion လိုမျိုးပေါ့။ အခြေခံ Data structure တွေအကြောင်းကို ကျနော်ဒီမှာ ဘာသာပြန်ထားတာရှိပါတယ်။ ဒီမှာ ကျနော်ရေးထားတာမြန်မာလိုရေးထားပီးတော့ စကားလုံးတော်တော်များများကို ကျနော်ဘာသာပြန်ဖို့မကြိုးစားထားပါဘူး။ ဘာလို့လဲဆိုရင် ကျနော်တို့ leetcode problem တွေဖြေရှင်းတဲ့အချိန်မှာဘဲဖြစ်ဖြစ် တခြားစာအုပ်တွေဖတ်တဲ့အခါမှာလဲ ဒီစကားလုံးတွေကသုံးနေရမှာမလို့ပါ။ တက်နိုင်သလောက်တော့ ဘာသာပြန်ပီးထည့်ထားပါတယ်။ Graph ဆိုတာဘာလဲ graph = nodes + […]

Valid anagram

မှတ်ချက် – ဒီ Post သည် Algorithm Interview Preparation အပိုင်းဆက်ဖြစ်သည်။ ကျွန်တော်တို့ဒီနေ့ solve လုပ်မယ့် problem ကတော့ Valid anagram ဘဲဖြစ်ပါတယ်။ Leetcode က Question တစ်ခုဘဲဖြစ်ပါတယ်။ ပထမဦးဆုံး Question ကိုတစ်ချက်ကြည့်လိုက်ရအောင် string နှစ်ခုပေးမယ် s နှင့် t ဆိုပြီးတော့။ အဲ့ဒါကိုကျွန်တော်တို့စစ်ကမှာက t is an anagram of s ဖြစ်လားဆိုတာကိုပါဘဲ။ Question မှာမှတ်ချက်ပါသေးတယ်။ ဘာလဲဆိုရင် string တွေက lowercase alphabets တွေဘဲပါပါ့မယ်တဲ့။ Follow up မေးနိုင်တာကတော့ input မျာ unicode characters တွေပါရင်ဘယ်လိုဖြေရှင်းမလဲတဲ့။ အဖြေမစခင် Anagram ဆိုတာဘာလဲနှင့် Example တစ်ချို့ကိုအရင်ကြည့်လိုက်ရအောင်။ […]

Logarithms ဆိုတာဘာလဲနှင့် O(log n) ဘယ်လိုတွက်မလဲ

Big O အကြောင်းရေးတော့ O(log n) အကြောင်းပါတစ်ခါတည်းရှင်းပြမလို့ဘဲ။ ဒါပေမယ့် Logarithms ဆိုတာဘာလည်းရှင်းပြရဦးမယ်ဆိုပြီး နောက်ထပ် Post တစ်ခုလုပ်ဖို့ဆုံးဖြတ်လိုက်တာ။ ဒီ Post မှာ Logarithms ကို ရှင်းပြရင်းနှင့် O(log n) ပါတစ်ခါတည်းရှင်းပြပါ့မယ်။ ကျောင်းတုန်းကတော့ Logarithm ကိုသင်ခဲ့ဖူးတယ်။ ကျွန်တော်တော့မေ့ကုန်လို့ Khan Academy ကပြန်ကြည့်ရတယ်။ ပထမဆုံး Logarithms ဆိုတာဘာလဲကအရင်စရှင်းကြရအောင်… အထက်ဖော်ပြပါပုံရဲ့ ပထမ line မှာဆိုရင် 2 ^ 4 (2 power 4) က (2 x 2 x 2 x 2) 2 ကိုလေးခါမြှောက်တာနှင့်တူတယ်။ ဒုတိယ line မှာဆိုရင် 2 […]

DNS Record, what are A, CNAME, MX Records…?

ပထမဆုံး DNS Record အကြောင်းမပြောခင်… ကျွန်တော်တို့ပုံမှန်အသုံးပြုနေတဲ့ web browsing အကြောင်းကိုအရင်ပြောလိုက်ကြရအောင်။ ဥပမာ ygncode.com ကို browser URL မှာရိုက်ရှာလိုက်ပြီဆိုတာနှင့် ကွန်ပျူတာက ygncode.com ရဲ့ server ဘယ်မှာလဲဆိုတာသိဖို့လိုတယ်။ အဲ့လိုသိဖို့လုပ်တဲ့နည်းကို Domain Name System (DNS) လို့ခေါ်တယ်။ DNS ဘယ်လိုအလုပ်လုပ်လဲ အသေးစိတ် သိချင်တယ်ဆိုရင် အောက်ဖော်ပြပါ YouTube Video မှာလေ့လာနိုင်ပါတယ်။ ကာတွန်းလေးတွေနှင့်ရှင်းပြထားတဲ့ How DNS Work ဆိုတဲ့ website လည်းရှိတယ်… အတော်လေးကိုပြည့်စုံတယ်။ ကျွန်တော်တို့ domain name တစ်ခု register လုပ်လိုက်ပီဆိုရင် DNS Records တွေကိုအများကြီးထည့်လို့ရတယ်။ ကျွန်တော်တော့ Cloudflare နှင့် Digital Ocean […]

Learn Data Structure In Burmese

မှတ်ချက် – ဒီ Post သည် Draft Publish ဖြစ်သည်။ တစ်ချို့အပိုင်းများ ဘာသာပြန်ဖို့လိုအပ်နေသေးသည်။ ဖြစ်နိုင်ရင် Feedback ပေးစေချင်ပါတယ်။ ကျွန်တော်ဒီနေ့ပြောမယ့်အကြောင်းအရာတွေတော်တော်များများက itsy-bisty-data-structures ကနေကိုးကားဘာသာပြန်ပြီးတော့ရေးသားထားတာဖြစ်ပါတယ်။ English လို Study လုပ်ရတာအဆင်ပြေတဲ့သူအတွေအတွက် နဂိုမူရင်း repo ကိုသွားပြီး study လုပ်ဖို့တိုက်တွန်းလိုပါတယ်။ ကိုယ်တိုင် CS ကျောင်းဆင်းမဟုတ်တာကြောင့် Data Structure/Algorithm ဘက်မှာအားနည်းတယ်လို့ခံစားရတယ်။ နောက်တကယ်အလုပ်လုပ်တဲ့အခါမှာလည်း ဒါတွေသိတာမသိတာဘယ်လောက်အရေးပါလဲဆိုတာ သိလာတွေကြောင့်ရယ် သေချာလိုက်လုပ်ဖြစ်ရင်း ဒီ repo က အတိုဆုံးနှင့် နားလည်အလွယ်ဆုံးဖြစ်တာကြောင့် မြန်မာလိုလေးပါရှိရင်ကောင်းမယ်ဆိုပြီး စဥ်းစားမိလို့ဘာသာပြန်တာလိုလို ကိုးကားတာလိုလိုလုပ်ပြီးရေးဖို့စဉ်းစားဖြစ်ပြီး ရေးဖြစ်သွားတာပါ။ ကျွန်တော်တို့ Data Structure တွေကောင်းကောင်းမသိဘူးဆိုရင်… algorithm problem တွေ solve လုပ်တဲ့နေရာမှာအတော်သိသာတယ်။ ဥပမာ ကိုယ်သိတဲ့ […]

Valid Palindrome

မှတ်ချက် – ဒီ Post သည် Algorithm Interview Preparation အပိုင်းဆက်ဖြစ်သည်။ ဒီ Problem က Leetcode ရဲ့ Valid Palindrome ကို solve လုပ်ထားတာဘဲဖြစ်ပါတယ်။ ပေးထားတဲ့ String S က palindrome ဖြစ်တယ်ဆိုရင် true return ပြန်ရမှာဖြစ်ပြီးတော့ မဟုတ်ဘူးဆိုရင် false return ပြန်ရမှာဖြစ်ပါတယ်။ ဒီနေရာမှာ Palindrome ဆိုတာကိုနားမလည်ရင် Problem solve လုပ်ဖို့ရာမလွယ်ပါဘူး။ Palindrome ဆိုတာပေးထားတဲ့ string ကိုနောက်ကနေ reverse ပြန်ရင်လည်းအတူတူဖြစ်တာမျိုးကိုပြောတာပါ… အောက်ကနမူနာကိုကြည့်ရင်ပိုရှင်းမယ်ထင်တယ်။ ကျွန်တော်တို့ဒီနေရာမှာ palindrome က backward, punctuation, case နှင့် spacing တွေကို ignore […]

Two Number Sum

မှတ်ချက် – ဒီ Post သည် Algorithm Interview Preparation အပိုင်းဆက်ဖြစ်သည်။ ကျွန်တော်ဒီနေ့ Solve လုပ်မှာကတော့ Two Number Sum Problem ဘဲဖြစ်ပါတယ်။ ဘယ်လို Solve လုပ်မလဲဆိုတာမပြောခင် ဘာကပြဿနာလဲဆိုတာကို တစ်ချက်ကြည့်လိုက်ရအောင်… Argument အနေနှင့် Number Array List တစ်ခုပါမယ် Second Argument Target Value တစ်ခုပါမယ်။ ကျွန်တော်တို့ရေးရမယ့် Function က Array ထဲက Number နှစ်ခုပေါင်းထည့်ပြီးရတဲ့ Target Value Pair ပါတယ်ဆိုရင် true return ပြန်ရမယ်။ တကယ်လို့မပါဘူးဆိုရင် false return ပြန်ရမယ် ဥပမာ – [3, 5, 2, -4, […]

Algorithm Interview Preparation

ဒီရက်ပိုင်း Algorithm Interview Question လေးတွေလိုက်လုပ်ဖြစ်တယ်။ ကိုယ့်ကိုယ်ကိုလည်းလုပ်ဖို့ဖိအားဖြစ်အောင်သုံးရက်တစ်ပုဒ်လောက်တင်ဖို့ကြိုးစားပြီးတင်ပေးပါ့မယ်။ Algorithm Question တွေမဖြေခင် Big O Notation ဆိုတာဘာလဲ ဆိုပြီးကျွန်တော်ရေးထားတာကိုအရင်ဖတ်ပေးပါ။ Algorithm Interview တွေကိုဖြေတဲ့အခါမှာ Data Structure တွေသိထားဖို့ကလည်းအရေးကြီးပါတယ်။ ဒါမှ Problem ပေါ်မှာမူတည်ပြီးတော့ဘယ် Data Structure ကိုသုံးရင်ပိုမြန်တယ်၊ ပိုပြီးအကျိုးသတ်ရောက်မှုရှိတယ်ဆိုတာကို ဆုံးဖြတ်ရွေးချယ်လို့ရမှာဖြစ်တော့ Data Structure တွေကိုအရင် ဒီမှာ Study လုပ်ပါ။ ကြော်ငြာ – Developer/Designer အလုပ်တွေရှာနေတယ်ဆို MyanmarDevJobs.com မှာရှာနိုင်ပါတယ်။ Arrays & Hashing Two Pointers Random Business Soft Skills ကျွန်တော်တို့ Developer တွေမှာ အားနည်းချက်က Soft Skills […]

How does computer work?

ကွန်ပျူတာတက္ကသိုလ်မတက်ခဲ့ရတော့ ကွန်ပျူတာတွေဘယ်လိုအလုပ်လုပ်လဲဆိုတာသေချာ Detail မသိဘူး (Computer တက္ကသိုလ်တက်မှ Abstraction တွေကိုကျော်နိုင်တာမဟုတ်ပါဘူး)။ အားလုံးက Abstraction တွေဘဲဖြစ်နေတယ်။ ဘာလို့လည်းတော့မသိဘူး ဒီ Abstraction တွေကို ဘယ်လို (How) အလုပ်လုပ်လဲဆိုတာကို Programmer စလုပ်ကာစက မစဥ်းစားဖြစ်ဘူး။ High-Level Overview တွေကိုဘဲလေ့လာဖြစ်တယ်။ အခုနောက်ပိုင်း Computer Science နှင့် Math ကို ကိုယ့်ဘာသာ Online က Self Study လုပ်တဲ့အခါမှ Abstraction တို့ How thing work တို့ဆိုတာတွေတွေ့လာရပြီး ဘယ်လိုအရေးကြီးတယ်ဆိုတာ ပိုပိုပြီးသိလာတယ်။ အခုကျွန်တော်တို့သုံးနေတဲ့ Computer ဆိုတာကအများကြီးလုပ်နိုင်တယ်… Program ရေးတာကမစ YouTube တို့ရုပ်ရှင်တို့ကြည့်တာတွေအဆုံးပါဘဲ။ ကျွန်တော်တို့ Laptop ကိုနမူနာကြည့်လိုက်ရအောင်… သူ့ကိုအားသွင်းတယ်… […]

Big O Notation ဆိုတာဘာလဲ

Computer ကျောင်းဆင်းတွေဆိုရင်တော့ Big O ဆိုတာဘာလဲသိကြမယ်ထင်တယ်။ ကျွန်တော်တော့ ကိုယ့်ဘာသာ Algorithm Courses တွေလိုက်တက်ရင်းဟိုဖတ်ဒီဖတ်ဖတ်ရင်းမှ Big O ဆိုတာကြားဖူးပြီးလေ့လာဖြစ်တာပါ။ ကျွန်တော့်အတွက်တော့စလုပ်ခါစမှာ သိပ်မလွယ်ဘူးလို့ခံစားရပါတယ်။ ကျွန်တော်တက်နိုင်သလောက် အလွယ်ကူဆုံးဖြစ်အောင်တော့ကြိုးစားပြီး References တွေယူပြီးရှင်းပြထားပေးပါတယ်။ Big O ဆိုတာဘာလဲကအရင်စလိုက်ကြရအောင်။ ရိုးရိုးရှင်းရှင်းနားလည်အောင်ပြောရမယ်ဆိုရင် Big O ဆိုတာ Programmer အချင်း Algorithm တွေအကြောင်းပြောတဲ့နေရာမှာသုံးတဲ့စကားဖြစ်ပါတယ်။ Algorithm ထပ်ရှင်းရမယ်ဆိုရင် ကျွန်တော်တို့ရေးနေတဲ့ Function တွေဟာ Algorithm တွေလို့အကြမ်းဖျင်းမှတ်သားနိုင်ပါတယ်။ အဲ့တော့ Big O ဆိုတာ ကျွန်တော်တို့ရေးသားနေတဲ့ Program ထဲက Function တွေက input size ပေါ်မူတည်ပြီးတော့နှေးတယ်မြန်တယ်ဆိုတာတွေကိုခွဲခြားပေးတဲ့နည်းလို့ သတ်မှတ်နိုင်ပါတယ်။ နောက် Big O ကိုတစ်နည်း Asymptotic […]