C# Beginner Book ဖတ္ၿပီး ဘာဆက္လုပ္ရမလဲ...။



ေမး။ ။ ကၽြန္ေတာ္ အသက္(၁၆)နွစ္ရွိပါၿပီ..။ အနာဂတ္မွာ Programming Field ထဲမွာ အလုပ္လုပ္မယ္လို႔ စဥ္းစားထားပါတယ္..။ နိုင္ငံၿခားတကၠသိုလ္ကိုေက်ာင္းေလွ်ာက္လိုက္ၿပီးကတည္းက Programming ကို အေတြ႔အၾကံဳရဖို႔ စေလ႔လာထားခ်င္ပါတယ္..။ ပညာေရးအတြက္ေရာ..၊ ေနာင္အလုပ္အတြက္ေရာ အဆင္ေၿပခ်င္လို႔ပါ..။ မနွစ္ကေတာ႔ Java သင္ခဲ႔ပါတယ္..။ ဒါေပမယ္႔ စာအုပ္တစ္အုပ္ၿပီးတာနဲ႔ စိတ္ပ်က္လာၿပီး သူ႔ကိုမစြန္႔လႊတ္ခင္ေတာ႔ Project တစ္ခု ၿပီးခဲ႔ပါေသးတယ္..။


ဒီနွစ္ေတာ႔ C# သင္ဖို႔ ဆံုးၿဖတ္လုိက္ပါၿပီ..။ Java အေၿခခံနည္းနည္းရွိထားေတာ႔ တစ္ခ်ိဳ႕အခ်က္ေတြ ၿပန္အမွတ္ရပါတယ္..။ အရင္အေတြ႔အၾကံဳရွိမထားေတာ႔ ၿပန္ေတာ႔ဖတ္ရပါတယ္..။ ကၽြန္ေတာ္႔အထင္ အဲဒီနွစ္ခုက တူသင္႔သေလာက္တူၿပီး မတူသင္႔သေလာက္လည္း ကြဲတယ္လို႔ ထင္ပါတယ္..။


ကၽြန္ေတာ္C# စေလ႔လာတာကေတာ႔ Herb Schildt's ရဲ႔ "C# 3.0 A Beginner's Guide" ဆိုတဲ႔ စာအုပ္ပါ..။ ၿပီးေအာင္ေလ႔လာပါတယ္..။ ဒါေပမယ္႔ စာအုပ္ၿပီးေတာ႔ အခုဘာဆက္လုပ္ရမလဲ မသိပါဘူး..။ ေတြ႔ရာပေရာဂ်က္တစ္ခု ေကာက္ေရးေနပါတယ္..။ (တကယ္လုပ္နိုင္တာထက္ အမ်ားၾကီးပိုေနတယ္ဆိုတာ ေတြ႔ပါတယ္..။) ပိုအဆင္႔ၿမင္႔တဲ႔ ေခါင္းစဥ္ေတြကို ဖတ္ရမလား..။(လက္ေတြ႔အေတြ႔အၾကံဳက မရွိပါဘူး..။)ဒီစာအုပ္ဖတ္ၿပီးေပမယ္႔ တကယ္စြမ္းေဆာင္နိုင္တဲ႔ Programmer ၿဖစ္ေအာင္ ဘယ္လိုလုပ္ရမလဲ မသိေသးပါဘူး..။


အေၿဖ ၁။ ။ ေသးေသးေလးက စလုပ္ပါ..။ တကယ္႔ေသးေသးေလးကို ေရးပါ..။ ရိုးရွင္းလြယ္ကူၿပီး ၿပီးေအာင္ ၿပည္႔စံုသြားေအာင္ ေရးပါ..။


ပထမProgram ၿပီးတာနဲ႔ နည္းနည္းပိုရွဳပ္ေထြးတဲ႔ ဒုတိယတစ္ပုဒ္ေရးပါ..။ ဒါေပမယ္႔ ေသးေသးေလးက စေရးပါ..။ ဥပမာ။ ။ unit ေၿပာင္းတဲ႔ Text Based Application လိုမ်ိဴးကို စေရးပါ..။


အဲဒါကိုပဲ လအနည္းငယ္ၾကာေအာင္ေရးပါ..။ ဘယ္ Program တစ္ခုထဲေပၚမွာပဲ အာရံုမစိုက္ပါနဲ႔..။ ၿပီးခဲ႔တဲ႔အေဟာင္းတစ္ခုကိုပဲ နည္းနည္းစီ ထပ္ထည္႔ၿပီး ၿပီးသြားေအာင္ ၿပည္႔စံုသြားေအာင္ ၾကိဳးစားပါ..။ အမွားလုပ္မိမွာနဲ႔ Code ေတြ မေကာင္းတာ ညံ႕တာဆိုတာ မပူပါနဲ႔..။


ဘာလဲဆိုေတာ႔ အၾကိမ္တိုင္း တကယ္ၿပီးေအာင္လုပ္ဖို႔က လုိရင္းပါပဲ..။ ဒါမွ တြန္းအားၿဖစ္လာမယ္..။ ဒါေပမယ္႔ စိတ္၀င္စားေစမယ္႔ element အသစ္ေတြရွိပါတယ္..။ အတင္းစိတ္အားထက္သန္လြန္းလို႔လည္း မရပါဘူး..။ အေစာပိုင္းပေရာဂ်က္ေတြမွာ ဆံုးၿဖတ္ခ်က္အမွားေတြလုပ္တာက ေနာက္တစ္ခါ မလုပ္မိေစေတာ႔ဘူးေပါ႔..။ Problems ကို မတူညီတဲ႔ခ်ဥ္းကပ္မွဳနဲ႔ ခ်ဥ္းကပ္နုိင္မယ္..။ အမွားေတြလုပ္မိေနေပမယ္႔ အခ်ိန္ၾကာလာတာနဲ႔အမွ် Problem ေတြက ဓားေသြးေက်ာက္ေတြ ၿဖစ္လာတာပါပဲ..။ Problem ကို ေသးငယ္ေအာင္လုပ္လိုက္တာနဲ႔အမွ် ၿပႆနာအသစ္ေတြကို ေအာင္ၿမင္နုိင္လုပ္နုိင္ၿပီး Design Decision နဲ႔ပတ္သက္လို႔ စိတ္ပ်က္ၿပီး လက္ေလွ်ာ႔ခ်င္တာမ်ိဴး ၿဖစ္မွာမဟုတ္ေတာ႔ပါဘူး..။ အၾကိမ္တိုင္းၿပန္လည္တက္ၾကြလာၿပီး ေပၚလာတဲ႔အၾကံဥာဏ္ေတြကလည္း ဂုဏ္ယူစရာCode ေတြ ၿဖစ္လာေစမွာပါပဲ..။

အေၿဖ ၂။ ။ CRUD operation တစ္ခုနဲ႔ Database နဲ႔ Database ခ်ိတ္တဲ႔ Web Application တစ္ခု ေရးပါ..။(CRUD operation ဆိုတာ Create,Read,Update,Read ပါ..။ Insert,Update,Delete နဲ႔ သေဘာထားခ်င္းအတူတူပါပဲ..။ အသံုးအနွဳန္းပဲ ကြာတာပါ..။ ။မစံပယ္) ဒီအရည္အခ်င္းက ေယဘုယ်အားၿဖင္႔ ရွိသင္႔တဲ႔အရည္အခ်င္းပါ..။ နည္းနည္းပိုေကာင္းခ်င္ရင္ေတာ႔ User Interface မွာ JavaScript ေလးဘာေလး ထည္႔ေရးေပါ႔..။

အေၿဖ ၃။ ။Project အတြက္ Idea လိုတယ္ဆိုပါေတာ႔..။ ကြန္ပ်ဴတာၿပင္ပက မင္း၀ါသနာကိုၾကည္႔လိုက္ပါ..။ မင္း၀ါသနာကို ကြန္ပ်ဴတာနဲ႔ၿပီးနိုင္တဲ႔တစ္ခုကို ေရြးလုိက္ပါ..။ ဥပမာ။ ။ မင္းက ဓာတ္ပံုဆရာဆိုပါေတာ႔..။ Photo Album Program ေလးေရးေပါ႔..။ အဲဒါမင္းအတြက္ အသစ္စက္စက္ၾကီးၿဖစ္မေနဘဲ မင္းစိတ္၀င္စားတာအေပၚမွာပဲ ထပ္ခ်ဲ႔သြားတာေပါ႔..။ Hello World Program ထက္ေတာ႔ ၾကီးမွာပဲေလ..။ မေရးခင္ေတာ႔ မင္း Program က ဘာလုပ္ခ်င္တယ္ဆိုတာ ခ်ေရးထားပါ..။ အစိတ္အပိုင္းေသးေသးေလးေတြခြဲထားၿပီး တစ္ခုခ်င္းစုစည္းေရးသြားပါ..။

အေၿဖ ၄။ ။ ငါကေတာ႔ ငါ႔အရည္အခ်င္းကို အြန္လိုင္းမွာေတြ႔တဲ႔ Code Kata exercises ေတြနဲ႔ၿမွင္႔ခဲ႔တာပဲ..။ 15 Exercises to Know a Programming Language ဆိုတာေတြနဲ႔ေပါ႔..။ ဒါေတြၿပီးရင္ေတာ႔ လက္ေတြ႔က်တဲ႔ Applications ေတြေရးေပါ႔..။ ဘယ္လို Program ေနေန (မင္းကိုေပ်ာ္ေစရံု Program ေလးေနေန) ေရးပါ..။
-Calculator
-ရိုးရိုး Crawler, Website ရွာတဲ႔ Program (amazon.com က တစ္ခ်ိဳ႕Products ေတြကို နာရီးၿခားတိုင္းရွာတဲ႔ Application ေသးေသးေလးၿဖစ္ၿဖစ္)
-Text based game
-Log file parser
-Open source project ရွာၿပီး အဲဒီမွာလည္း ၀င္ေရးတာမ်ိဴး

ဘယ္နည္းနဲ႔ၿဖစ္ၿဖစ္..၊ ေလ႔က်င္႔ခန္းတစ္ခုတည္းကို ထပ္ခါထပ္ခါလုပ္တာလည္း အေထာက္အကူၿပဳပါတယ္..။ Factor ေတြၿပန္ခြဲတာ..၊ Pattern ေတြ သတ္မွတ္လိုက္နာတာ..၊ Unit Testing ေတြ ေလ႔က်င္႔တာၿဖစ္ၿဖစ္ လုပ္ပါ..။

အေၿဖ ၅။ ။ Program ေရးဖို႔ရာ Programming (အစီအစဥ္ဆြဲၿခင္း) ၿဖင္႔ပဲ သင္ရမယ္..။ Computer ကို မင္းလုပ္ေစခ်င္တဲ႔ ရိုရိုး Program ကိုေရြးပါ..။ ေရးပါ..။

အေၿဖ ၆။ ။ Programming ေရးတာကေနပဲ စပါ..။ စာဖတ္ေနရံုနဲ႔ေတာ႔ ဘယ္မွေရာက္မွ မဟုတ္ဘူး..။ ပေရာဂ်က္ေသးေသးေလးကေနစပါ..။ Address book တို႔..၊ Calculator တို႔လို႔ ဘာၿဖစ္ၿဖစ္..။ စစခ်င္းပေရာဂ်က္ေတြကေတာ႔ အသံုး၀င္ခ်င္မွ ၀င္မယ္..။ ဒါေတြကိုပဲ အၾကိမ္ဒါဇင္ေပါင္းမ်ားစြာ ၿပန္ေရးရရင္ ေရးရလိမ္႔မယ္..။ ပထမဆံုးေရးတာကို ေတာ္ေတာ္နဲ႔ေက်နပ္နိုင္မွာမဟုတ္ဘူး..။ ဒါပံုမွန္ပါပဲ..။ မင္းေမးတာနဲ႔နည္းနည္း လြဲခ်င္လြဲမယ္..။ တကယ္လုပ္နိုင္တဲ႔ Programmer ဆိုတာ Language တစ္ခုမွာ Master ၿဖစ္ေအာင္ထူးခၽြန္ေနတာထက္ပိုတယ္ဆိုတာ မင္းစဥ္းစားထားသင္႔ေသးတယ္..။

အေၿဖ ၇။ ။ နည္းပညာပိုင္းဆိုင္ရာမွာ ေနာက္တစ္ဆင္႔လွမ္းမယ္စဥ္းစားထားရင္ေတာ႔ ကၽြမ္းက်င္ေအာင္လုပ္ရမွာပဲ..။ ေလ႔က်င္႔မွဳန႔ဲပဲ ကၽြမ္းက်င္မွဳကိုရနိုင္မယ္..။ ဘာေရးဖို႔စိတ္၀င္စားလဲဆိုတာ ဆံုးၿဖတ္ပါ..။ (Web Application? ၊ Desktop Application? ၊ Mobile Application?) ေယဘုယ်က်တဲ႔ Features တစ္ခ်ိဳ႕ကိုေရြးပါ..။ (Authorization တို႔ RSS Feeding တို႔)..။ Tasks(တာ၀န္) ေတြ သတ္မွတ္ပါ..။ ထည္႔သြင္းအသံုးခ်ပါ..။ နည္းပညာတိုင္းရဲ႕စာအုပ္ေတြဖတ္ပါ..။ အဲဒီထဲက ကုဒ္ေတြေရးပါ..။ တစ္ေယာက္ေယာက္ကို ကုဒ္ေတြ စစ္ေပးခိုင္းပါ..။ ဒီၿဖစ္စဥ္ပဲ ထပ္ခါထပ္ခါလုပ္ပါ..။

အေၿဖ ၈။ ။ လူတိုင္းလူတိုင္း တစ္မ်ိဴးစီလုပ္ေနၾကတာပဲ..။ နည္းပညာအမ်ိဴးမ်ိဴး စမ္းၾကည္႔ေလ..။ ၿပီးမွ ကိုယ္စိတ္၀င္စားတာရွာ..။ အဲဒီမွာမွ အင္းအရည္အခ်င္းေပၚမူတည္ေနမွာပဲ..။ တခါတေလ အခ်ိန္အၾကာၾကီး လုပ္ေနမိေပမယ္႔ အခ်ိန္ကုန္သြားမွန္းေတာင္ မသိတာမ်ိဴး ၿဖစ္လိမ္႔မယ္..။

အေၿဖ ၉။ ။ C# in Depth ဆိုတဲ႔စာအုပ္က C# သင္ဖို႔ ဖတ္သင္႔တဲ႔စာအုပ္ပဲ..။ C# ကို Confident ရွိသြားၿပီးရင္ F# တို႔ ဘာတို႔ သင္ဖို႔ၾကိဳးစားပါ..။

http://programmers.stackexchange.com/questions/98282/what-to-do-after-reading-a-beginners-book-on-c ကို ဆီေလ်ာ္ေအာင္ ၿပန္ဆိုသည္..။

No comments:

Post a Comment