How to start learning programming ?

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

ကျွန်တော် How did I learn ? မှာ ပြောခဲ့သလို ကိုယ် ဘာ project လုပ်ချင်လဲဆိုတာက အဓိက ကျတယ်။ Python နာမည်ကြီးတယ်ဆိုလို့ python လေ့လာ။ Java .. Java နဲ့ အော်ကြတော့ Java ထပ်လေ့လာ။ C++ ကမှ တကယ်ကောင်းတာ ဆိုပြန်တော့လည်း C++ ပြန်တက်။ တနည်းပြောရင် ဆုံးကို မဆုံးနိုင်တော့ဘူး။ အခု Node.js က အရမ်းကောင်းတယ်ဆိုတာနဲ့ ဘယ်မှာ လေ့လာရမလဲဆိုတာ ဖြစ်ပြန်အုံးမယ်။ တကယ်တန်းတော့ မလေ့လာခင်မှာ ဘာလုပ်ချင်တာလဲ။ ကိုယ် ရေးမယ့် application , သို့မဟုတ် ကိုယ် သုံးတဲ့ project အတွက် ဘယ် language က အဆင်ပြေမလဲဆိုတာကို သိမှ ဘယ် programming ကို စလေ့လာဖို့ စဉ်းစားသင့်တယ်။ သူများတွေ လေ့လာလို့ လိုက်လေ့လာတယ်ဆိုတာ လုံးလုံး မှားယွင်းနေတယ်။ စိတ်ဝင်စားသွားရင် ပြဿနာ မရှိပေမယ့် စိတ်မဝင်စားတဲ့ အခါမှာ အချိန်ကုန် လူပန်းတာပဲ ရှိတယ်။

source: http://xkcd.com/379/

ကျွန်တော့်တုန်းကလည်း Programming ဆိုတာ ဘာမှန်းမသိဘူး။ VB နဲ့ game ဆွဲလို့ရတယ်လို့ ကြားလို့ VB ကို စသင်ခဲ့တာပဲ။ သို့ပေမယ့် နောက်ပိုင်း VB ကို သိလာချိန်မှာတော့ Game ကို VB နဲ့ ထင်သလောက် လုပ်လို့ မရဘူးဆိုတာကို သိလာခဲ့တယ်။ game သေးသေးလေးတွေကိုပဲ လျှောက်ရေးကြည့်ခဲ့တယ်။ မဟာဘုတ် program တွေ ရေးကြည့်ခဲ့တယ်။ အဲတုန်းက application share တာဆိုလို့ ကျောင်းက network ပဲ ရှိတယ်။ ကျောင်းထဲက network မှာ ထည့်ပြီးတော့ application တွေ စမ်းခဲ့တယ်။ နောက်ပြီး ကိုယ့်ဘာသာကိုယ် ရေးထားတဲ့ virus တွေကို ကျောင်းထဲက network မှာ ထည့်ထားခဲ့တာတွေ မှတ်မိသေးတယ်။ Virus ဆိုလို့ ဖျက်စီးတဲ့ program မဟုတ်ပါဘူး။ ဖွင့်လိုက်ရင် ပြန်ပိတ်မရအောင်ပဲ လုပ်ထားတာ။ ကျွန်တော်တို့ လုပ်ထားတဲ့ key sequence အတိုင်း ရိုက်လိုက်ရင်တော့ ပိတ်သွားတယ်။ အဲဒီတုန်း task manager ခေါ်တာတွေ ဘာတွေ မသိသလို ကျောင်းက လူတွေလည်း task manager ခေါ်ပြီး မပိတ်တတ်ကြတာလည်း ပါတာပေါ့။ ဒါကြောင့် programming ကို လေ့လာရတာ ပျော်လာတာ။

တကယ်တန်းတော့ Language က ဒုတိယပါ။ Language က Tool တစ်ခု အနေနဲ့ပဲ တည်ရှိတာ။ ပထမ ဆုံး အရေးကြီးတာက ကိုယ်ဘာလုပ်ချင်လဲ။ အဲဒါကို ဘယ် Tool နဲ့ အသုံးပြုရင် ကောင်းမလဲ။ ဘယ် Tool နဲ့ ဆို ပိုမြန်မလဲဆိုတာကို သိဖို့ လိုအပ်တယ်။ ဥပမာ။။ သံချောင်း ကို ရိုက်ဖို့အတွက် ဝက်အူလှည့် ကို သုံးပြီး ရိုက်နေလို့ မရဘူး။ သံချောင်းရိုက်ဖို့ ဝက်အူလှည့်က တူလောက် အသုံးမကျဘူး။ ဝက်အူ ရစ်ဖို့ ဝက်အူလှည့်မသုံးပဲ တူကို သုံးလိုက်ရင် ဝက်အူတွေ ပျက်စီးကုန်မယ်။ ဝက်အူလှည့်သုံးရမယ့်နေရာ ဝက်အူလှည့်သုံးပြီး တူသုံးရမယ့်နေရာ တူ သုံးရမှာပဲ။ Programming Language ဆိုတာကလည်း အဲလိုပဲ။ ကိုယ် ဘာလုပ်ချင်လဲပေါ်မှာ မူတည်ပြီး လေ့လာနေရတာပဲ။ PHP ကို သုံးပြီး windows application ကို မဆောက်သင့်သလိုပေါ့။ C++ ကိုသုံးပြီး web application ဆောက်မယ့် အစား PHP , ROR , Node စတဲ့ web application အတွက် အဆင်ပြေတဲ့ language တစ်ခုခုကို သုံးပြီး တည်ဆောက်တဲ့ အခါ ပိုမြန်လိမ့်မယ်။

Programming ကို မလေ့လာခင်မှာ Programming ဆိုတာဘာလဲ။ အဲဒါတွေကို ငါတတ်ရင် ဘယ်နေရာတွေမှာ သုံးလို့ရမလဲ။ ငါလုပ်ချင်တာက Programming နဲ့ မှ ရမှာလား။ ငါလုပ်မယ့် project က web လား windows application လား ? multi OS အတွက်လား ။ စတာတွေပေါ်မှာ မူတည်ပြီးတော့ ဘာလေ့လာရမလဲ ဆုံးဖြတ်ရမှာပဲ။ C# သင်ပြီးတော့ Mac မှာ run မရတာ။ Linux မှာ ကောင်းကောင်းမွန်မွန် run မရတဲ့ ပြဿနာတွေ ဖြစ်မှာ စတာတွေကို သိသင့်တယ်။ ဒါကြောင့် language မလေ့လာခင် ကိုယ် ဘာအတွက် လေ့လာမှာလဲ။ ကိုယ် လေ့လာမယ့် language အကြောင်းကို ဘယ်လောက်ထိ သိပြီးပြီလဲ။ C# ကောင်းတယ် လူသုံးများတယ်ဆိုပြီး လေ့လာပေမယ့် ကိုယ်လုပ်ချင်တဲ့ application က Linux အတွက် ဆိုရင် အဆင်ပြေမှာ မဟုတ်ဘူး။

လေ့လာရမှာ ကျောင်းသားနဲ့ လိုအပ်ချက်အရ လေ့လာသူဆိုပြီး ခွဲလိုက်လို့ရတယ်။ ကျောင်းသားတွေကတော့ ဘာဖြစ်ဖြစ် လေ့လာလို့ ဖြစ်တာပဲ။ ကျောင်းက သင်ခဲ့ဟာကို လေ့လာရုံနဲ့ မလုံလောက်ဘူး။ ကိုယ်ပိုင် project တစ်ခုလေး ရေးကြည့်မှသာ နားလည်လာမှာပါ။ ကိုယ်လေ့လာမယ့် programming အကြောင်းကိုလည်း မလေ့လာခင်မှာ သိသင့်သလောက် သိထားသင့်တယ်။ ဒါမှ ဒါကို လေ့လာရင် ဘာအကျိုးကျေးဇူး ရမလဲဆိုတာကို သိနိုင်မှာ။ လိုအပ်ချက် လေ့လာသူတွေကတော့ ဘာ language ဖြစ်ဖြစ် အရေးမကြီးလှဘူး။ ကိုယ်နဲ့ သင့်လျော် အသုံးတည့်မယ့် Language တစ်ခုကို research လုပ်ပြီး လေ့လာဖို့ပဲ ရှိတယ်။ ဘာကို စလေ့လာရမယ်ဆိုတဲ့ မေးခွန်း မရှိတော့ဘူး။ ကျောင်းသားတွေအတွက် ဘာမှ လုပ်စရာ project တွေ မရှိသေးတာကြောင့် ဘာကို လေ့လာရမယ်ဆိုတဲ့ မေးခွန်းပေါ်လာဖြစ်လိမ့်မယ်။ အဲဒီမေးခွန်း ပေါ်လာတိုင်း ဘာလုပ်ချင်တာလဲ ဆိုတာကို ပြန်စဉ်းစားဖို့ လိုတယ်။ ဘာလုပ်ချင်တာ မှန်းမသိဘဲနဲ့တော့ ဘာကို လေ့လာရမလဲဆိုတာကို ဆုံးဖြတ်လို့မရဘူးဗျာ။ Programming တတ်လို့လည်း ပိုက်ဆံတွေ အများကြီးရပြီး မချမ်းသာသွားပါဘူး။ Programming လေ့လာဖို့ ၂ နှစ် ၃ နှစ်လောက် ပိုက်ဆံတွေ အချိန်တွေ အကုန်ခံပြီး လေ့လာတယ်ဆိုတာကို မလေ့လာခင် သိစေချင်တယ်။

13 Comments

  1. HAN says:

    အရမ်းကောင်းတယ်… ကျေးဇူးတင်လိုက်တာ…

  2. winbalamin says:

    Thank you very much.

  3. Thank to my brother Saturngod!
    You are intresting my e-mail.

  4. zawhtoo says:

    Thank you very much.

  5. Zeyar Aung says:

    Just my two cents.

    Start from any procedural and/or object-oriented languages like C/C++, Java, C#, VB. (Better not to start from scripting languages like Python, PHP, etc.)

    The most important thing is to get the basic concepts of programming through the using of any procedural/object-oriented language. Once you get the basic concepts, it is not difficult to switch from one language to another.

    1. saturngod says:

      It may be for student … not for person who currently working. The main goal is Done. Not learning from start. They don’t have so much time for learning to make this. Example:: I want to make iphone app. But I didn’t learn objective-C and I try to directly learn the iPhone SDK. It may hard but it’s a fast way to make app. I don’t have a so many time and I can’t give so many time from start. I learn iPhone SDK in 1 month and it’s enough for me. The main thing is a goal.

  6. Thant zin says:

    Brother , how to run turbo c in win7 64 bit

  7. KyawHtet says:

    Bro, what should I do to get farther than a beginner? This is a great post.

  8. Aung Ko says:

    Very Good Post!!

  9. ဘာနဲ့မှလဲလို့မရတဲ့အသိတွေကိုချပြပေးတဲ့အတွက်အရမ်းကျေးဇူးတင်ပါတယ်အကို..
    လေးစားစွာဖြင့်….

  10. Khai Sian Piang says:

    အကို hacker တယောက် ဖြစ်ချင်သူအတွက်ဆိုရင်ကော ဘယ်ကစလေ့လာရမလည်း ပြောပေးပါအုန်း please

    1. saturngod says:

      Hacking ဆိုတာဘာလည်း ဆိုတာကို အရင် နားလည်အောင် ကြိုးစားပါ။ Certified Ethical Hacker course ကို လေ့လာရင် အနည်းအကျဉ်း သဘောပေါက်နိုင်ပါတယ်.

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.