Pages

Wednesday, May 15, 2013

My Family


About C#

What is programming language?

 Programming Language ဆိုတာဘာလဲ၊ ဘာေၾကာင့္ ကြၽန္ေတာ္တို႔ေတြ အဲ့ဒီ Language ေတြကို သင္ယူေလ့လာဖို႔ လိုေနၾကတာလဲ? သိပ္ကို ရွင္းလင္းပါတယ္။ ကြၽန္ေတာ္တို႔ ေတြက ကြန္ပ်ဴတာကို ဆက္သြယ္ခိုင္းေစနိုင္ဖို႔အတြက္ programming language ကို သင္ယူရတာပါ။ ဥပမာ ကြၽန္ေတာ္တို႔ အဂၤလိပ္ၾကီး တစ္ေယာက္နဲ႔ စကား ေျပာခ်င္တယ္ဆိုရင္ English Language တက္ရပါမယ္။ ေပါက္ေဖာ္ၾကီးနဲ႔ ေျပာခ်င္ရင္လည္း တရုတ္စကား တက္ဖို႔လိုပါတယ္။ ဒီလိုပါပဲ အခု ကြၽန္ေတာ္တို႔ Computer နဲ႔ စကားေျပာဖို႔အတြက္ Computer နားလည္တဲ႔ စကားကို ကြၽန္ေတာ္တို႔ သင္ယူရမွာပါ။ ဒီလိုဆို ေမးစရာ တစ္ခု ရွိလာျပန္ပါတယ္။ "ကြန္ပ်ဴတာနားလည္တာက 0/1 ပဲ နားလည္တယ္ဆိုျပီး မင္းတို႔ အခု သင္ေနတဲ႔ programming language ေတြက အဂၤလိပ္လိုေတြ ပါပဲလား"။ ဟုတ္ကဲ႔ ဟုတ္ပါတယ္၊ ဒါက ဒီလို ရွိပါတယ္ :) ကြၽန္ေတာ္တို႔ အခုခ်ိန္မွာ ဒီလို လြယ္ကူရွင္းလင္းတဲ႔ programming language ေတြကို ေလ့လာလို႔ ရေနတာက ကြၽန္ေတာ္တို႔ ရဲ႕ ေနာင္ေတာ္၊ ဆရာသမားေတြရဲ႕ ေက်းဇူးေတြေၾကာင့္ပါပဲ။ 0/1  code ေတြနဲ႔ အစျပဳလို႔ program ေတြ ေရးလာခဲ႔ ၾကတဲ႔ ေနာင္ေတာ္ ေတြ အဆင့္ဆင့္က ေနာင္လာေနာင္သား programmer ေလးေတြ ပိုမိုလြယ္ကူစြာ program ေရးနိုင္ၾကပါေစဆိုတဲ႔ ေစတနာေကာင္းေတြနဲ႔ ပိုမိုလြယ္ကူတဲ႔ programming language ေတြကို တီထြင္ဖန္တီးေပးလာခဲ႔ ၾကလို႔၊ အခုခ်ိန္မွာ ကြၽန္ေတာ္တို႔ အလြန္လြယ္ကူစြာ ေလ့လာနိုင္ေနၾကတာပဲ ျဖစ္ပါတယ္။ ဒါေၾကာင့္ ေရွးတုန္းက သံုးခဲ႔တဲ႔ programming language ေတြထက္ အခုခ်ိန္မွာ သံုးေနတဲ႔ programming language ေတြက ပိုလြယ္တာကို ေတြ႔ၾကရမွာပါ။ ဒီလိုပါပဲ ေနာင္တစ္ခ်ိန္မွာ ေပၚထြက္လာမယ့္ programming language ေတြဆိုရင္ အခုထက္ပိုျပီး လြယ္လာဖို႔ပဲ ရွိပါတယ္။ ေနာက္ဆံုးတစ္ေနမွာ ကြၽန္ေတာ္တို႔က ကြန္ပ်ဴတာ ဘာသာစကားကို သင္စရာ မလိုေတာ့ပဲ၊ ကြန္ပ်ဴတာကိုပဲ ကြၽန္ေတာ္တို႔ ဘာသာစကား သင္ေပးလို႔ ရရင္ ရလာမွာပါ။ :D
What is C# ?

 C# ဆိုတာကေရာ ဘာလဲ၊ C# ဆိုတာ 1999/2000 စတင္သေႏၶတည္ျပီး 2002 မွာ Microsoft က စတင္ေမြးဖြားေပးလိုက္တဲ႔ Programming Language တစ္ခုပဲ ျဖစ္ပါတယ္။ အဲ့ဒီ အခ်ိန္က အရမ္းအရမ္းကို နံမယ္ၾကီးေနခဲ႔တဲ႔ Object-Oriented Technology ကို အျပည့္အ၀ အသံုးျပဳနိုင္ တဲ႔ Programming Language လို႔လဲ ေျပာလို႔ ရပါတယ္။ C# language ရဲ႕ principal designer and lead architect ကေတာ့ Anders Hejlsberg ျဖစ္ပါတယ္။ Java သမားေတြကေတာ့ C# ဆိုတာ Java ကို ပံုတူကူးခ်ထားတဲ႔ clone language တစ္ခုပဲလို႔ ေျပာၾကပါတယ္။ Microsoft ကလည္း Java clone မဟုတ္ပါဘူး၊ C# က C++ နဲ႔ ပိုျပီး တူပါတယ္လို႔ ျပန္လည္ေခ်ပပါတယ္။ ဘယ္လိုပဲ ေျပာၾကသည္ ျဖစ္ပါေစ တကယ္တန္းေတာ့ C# language ဟာ အဲ့ဒီ အခ်ိန္က တျခား programming language ေတြရဲ႕ အားသာခ်က္ေတြကို ေပါင္းစပ္ထည့္သြင္းထားတာပဲ ျဖစ္ပါတယ္။
.NET Framework C# language အေၾကာင္း ေျပာမယ္ဆိုရင္ .NET Framework ( .NET Technology ) ကို ေမ႔ထားလို႔ မရပါဘူး။ C# က .NET Framework ကိုသံုးထားတဲ႔ Main Language တစ္ခုပဲ ျဖစ္ပါတယ္။ .NET Framework ထဲမွာ Framework Class Library (FCL) နဲ႔ Common Language Runtime (CLR) တို႔ ပါရွိပါတယ္။ FCL က .NET Framework ကိုအသံုးျပဳတဲ႔ programming language ေတြအတြက္ ကစ္ကယ့္ကို ၾကီးမားမ်ားျပားတဲ႔ library file အစုအေ၀းၾကီးပဲ ျဖစ္ပါတယ္။ .NET Framework support လုပ္တဲ႔ language ေတြအတြက္ သက္ဆိုင္ရာ language compiler ေတြ ကိုသံုးျပီး compile လုပ္လိုက္ရင္ Microsoft Intermediate Language (MSIL) file ေလးထြက္လာပါတယ္။ အဲ့ဒီ file ေလးက Operation System က နားလည္တဲ႔ Native Language မဟုတ္ေသးပါဘူး။ ဒီ file ေလးကို CLR ကပဲ နားလည္ပါတယ္။ Run လိုက္တဲ႔ အခ်ိန္မွာမွ CLR ထဲမွာ ရွိတဲ႔ Just In-Time Compiler (JIT) ေလးကေနတဆင့္ recompile လုပ္ျပီးNative Code အျဖစ္ကို ေျပာင္းေပးပါတယ္။ အလုပ္လုပ္ပံုေလးကို ၾကည့္လိုက္ပါဦး။ .NET Framework ကို Microsoft Site မွာ Free download လုပ္လို႔ ရပါတယ္။ ကြၽန္ေတာ္တို႔ computer ထဲမွာ .NET Framework install လုပ္ျပီးရင္ C# program ေတြေရးလို႔ ရပါျပီ။

Visual Studio IDE C# ေအာင္ျမင္ဖို႔ အေရးအၾကီးဆံုး ေထာက္ပံ့ေပးတဲ႔ အထဲမွာ Integrated Development Environment (IDE) ေကာင္းေကာင္းရွိျခင္းကလည္း အေၾကာင္းတစ္ခုပါပဲ။ Language ဘယ္ေလာက္ပဲ ေကာင္းေနပါေစ၊ လြယ္လြယ္ကူကူ ေရးသားလို႔ရတဲ႔ IDE ေကာင္းေကာင္းမရွိရင္ မေအာင္ျမင္နိုင္ဘူးလို႔ ထင္ပါတယ္။ Microsoft က Java ထက္ပိုျပီး အားသာသြားတာက Visual Studio လို႔ေခၚတဲ႔ IDE ေကာင္းေကာင္း support ေပးနိုင္လို႔ပဲ ျဖစ္ပါတယ္။ တခုေတာ့ ရွိပါတယ္၊ ကြၽန္ေတာ္တို႔ ဆီမွာက Visual Studio ကို ၀ယ္သံုးစရာ မလိုလို႔လည္း ပါပါတယ္။ မဟုတ္ရင္(၀ယ္သာသံုးရမယ္ဆိုရင္) ျမန္မာနိုင္ငံမွာ C# ေရးတဲ႔ သူ ရွိမွာေတာင္ မဟုတ္ေတာ့ဘူး ထင္တယ္ :) .NET Framework Version History ကိုေလ့လာၾကည့္ပါဦး။
VersionVersion NumberRelease DateVisual StudioDefault in Windows 1.01.0.3705.02002-02-13Visual Studio .NETWindows XP Tablet and Media Center Editions 1.11.1.4322.5732003-04-24Visual Studio .NET 2003Windows Server 2003 2.02.0.50727.422005-11-07Visual Studio 2005Windows Server 2003 R2 3.03.0.4506.302006-11-06*IDE သီးျခားမထြက္ပါဘူးWindows Vista, Windows Server 2008 3.53.5.21022.82007-11-19Visual Studio 2008Windows 7, Windows Server 2008 R2 4.04.0.30319.12010-04-12Visual Studio 2010
တႏွစ္ တၾကိမ္ေလာက္နီးပါး အသစ္ထြက္ေနတဲ႔ version ေတြကို ၾကည့္လိုက္ျပီး ငါတို႔ေတာ့ အေမာဆို႔ေတာ့မွာပဲလို႔လည္း မေတြးလိုက္ပါနဲ႔ဦး။ Version အသစ္ထြက္တိုင္း၊ အေဟာင္းကို လံုး၀ ပစ္ပယ္လိုက္တာ မဟုတ္ပါဘူး။ version 1.1 ကေန 2.0 ကို ေျပာင္းတဲ႔ အခ်ိန္မွာပဲ big change ျဖစ္ခဲ႔တာ ျဖစ္ျပီး၊ က်န္တဲ႔ အၾကိမ္ေတြမွာေတာ့ addition more feature သာ ျဖစ္ပါတယ္။ ဒါေၾကာင့္ အခုခ်ိန္မွာ ကြၽန္ေတာ္တို႔ Framework 2.0 ကိုပဲ သိတယ္ဆိုရင္ အလုပ္ျဖစ္ပါတယ္။ ဘာလို႔လဲ ဆိုေတာ့ က်န္တဲ႔ new version ေတြအားလံုးက 2.0 ကို base ခံထားတာ ျဖစ္လို႔ပါပဲ။ ေအာက္က ပံုေလးေတြကို ၾကည့္လိုက္ရင္ သိသာပါလိမ့္မယ္။
0
LikeSend
Be the first of your friends to like this.
http://www.sevenlamp.com/Blog/Post.aspx?pid=19 ဆုိဒ္မွျပန္ရွယ္ေပးထားပါတယ္ခင္ဗ်ား


Tuesday, May 14, 2013

အိုင္တီသမားျဖစ္ခ်င္ရင္ ဒါေတြ ခံႏိုင္ရည္ ရွိၿပီလား

Knowledge ေခတ္ရဲ႕ အသက္ေမြးဝမ္းေက်ာင္း အလုပ္တိုင္းမွာ စိမ္ေခၚမႈေတြ မ်ားျပားလာတာ ကမၻာတစ္ဝွမ္းလံုး ျဖစ္ပါတယ္။ အထူးသျဖင့္ IT နဲ႔ အသက္ေမြးဝမ္းေက်ာင္းျပဳလုပ္သူတိုင္း ပိုသတိထားမွာပါ။ ဘယ္သူျဖစ္ျဖစ္ ပညာအလုပ္ရဲ႕စိန္ေခၚမႈေတြကုိ မခံႏိုင္ဘူးဆိုရင္ အဲဒီစိန္ေခၚမႈေတြကုိ ခံႏိုင္ရည္ရွိမယ္ ေနာက္လူတစ္ေယာက္အၿမဲတမ္းရွိေနမွာပါ။ အဲဒီေတာ့ ကိုယ္မလုပ္ႏိုင္ဘူးလား .. ဒါဆုိ ေနာက္လုပ္ႏုိင္မယ့္သူ ကုိ ခိုင္းမယ္ဆိုမ်ိဳးေတြၾကည့္ပါပဲ။

အိုေက .. ဒါဆုိ IT မွာ အလုပ္လုပ္မယ့္သူ ဘာေတြပဲ လာလာလုပ္ႏိုင္ပါတယ္လို႔ အာမခံႏိုင္ေအာင္ သတိထားရမယ့္ အခ်က္ေတြ ရွိပါတယ္။ အဲဒီအခ်က္ေတြက ကုိယ္နဲ႔ မကိုက္ညီဘူးဆိုရင္ေတာ့ IT နဲ႔ အသက္ေမြးမႈကုိ စြန္႔လႊတ္လိုက္တာလိုက္တာ ပိုသင့္ေတာ္ပါလိမ့္မယ္။ မစြန္႔လႊတ္ခ်င္ဘူးဆိုရင္ေတာ့ အနည္းဆံုး အခ်က္ဆယ္ခ်က္ေလာက္ေတာ့ ခံႏိုင္ရည္ရွိေအာင္ လုပ္ရပါ့မယ္။ အဲဒါေတြကေတာ့

၁၊ စိတ္ရွည္ရမယ္။စိတ္တည္ၿငိမ္ရမယ္
 ျပႆနာတစ္ခုကုိ စိတ္တည္တည္ၿငိမ္ၿငိမ္ထားပီး စိတ္ရွည္လက္ရွည္ ေျဖရွင္းတတ္မႈကေတာ့ IT မွာ အေရးအၾကီးဆံုးတစ္ခုပါပဲ။ တစ္ခ်ိဳ႕ IT ျပႆနာေတြမွာ အခ်ိန္မွီ ျမန္ျမန္ဆန္ဆန္ ျပန္လည္ေျဖရွင္းေပးရမယ္ ကိစၥေတြရွိပါတယ္။ အဲဒီလိုအခ်ိန္မွာ စိတ္တည္ၿငိမ္မႈ မရွိဘူးဆိုရင္ေတာ့ ဟိုေတြးဒီေတြးနဲ႔ အဲဒီ ျပႆနာကုိ အခ်ိန္မွီ ေျဖရွင္းႏိုင္မွာ မဟုတ္ေတာ့ပါဘူး။ ကိုယ့္စိတ္ကုိယ္ မထိန္းႏိုင္ဘူးဆိုရင္ေတာ့ IT အလုပ္ဆက္မလုပ္တာ ေကာင္းပါတယ္။

၂၊ ေက်ာင္းဆက္တက္ဖို႔ေတြ စာေမးပြဲေတြ ေျဖဖို႔ေတြ စိတ္၀င္စားရပါ့မယ္။

IT က အျမဲတမ္း အသစ္ေတြ ထြက္ထြက္ေနတာပါ။ အဲဒီေတာ့ ကုိယ့္ကုိကိုယ္ အျမဲတမ္း refresh လုပ္ေနရပါမယ္။ စာေတြ ဖတ္ရမယ္။ သတင္းေတြ ဖတ္ေနရမယ္။ ဘာေတြ အသစ္ေတြ ထြက္ေနၿပီလညး္ အျမဲတမ္းေလ့လာေနရပါမယ္။ selfstudy လုပ္ဖို႔ ၀ါသနာကုိ ပါေနရပါမယ္။ workshop ေတြတက္ရမယ္။ အျမဲတမ္း learning လုပ္ေနဖို႔ လိုပါတယ္။

၃၊ ရံုးခ်ိန္မဟုတ္တဲ့ အခ်ိန္မွာလည္း အလုပ္လုပ္ရပါ့မယ္
 နည္းပညာဆိုတာၾကီးက ကိုယ္သတ္မွတ္ထားတဲ့ schedule အတိုင္း တသတ္မွတ္တည္း အၿမဲတမ္းသြားေနမွာ မဟုတ္ပါဘူး။ Servers ဆိုတာမ်ိဳးက သူေဒါင္းခ်င္တဲ့ အခ်ိန္ ေဒါင္းမွာ business ဆုိတာကေတာ့ ေဒါင္းလို႔မရဘူး။ အဲဒီေတာ့ ညၾကီးသန္းေခါင္းမွာ Server ေဒါင္းသြားလို႔ ထလုပ္ရင္လညး္ လုပ္ရမယ္။ စေန၊ တနဂၤေႏြ ရံုးပိတ္ရက္ေတြလည္း သူမ်ားေတြလို နားခ်င္မွ နားရမယ္။ ကိုယ္က ရံုးပိတ္ရက္ေတြမွာ သူမ်ားေတြ နည္းတူ လုပ္စရာေတြ အျမဲတမ္း ရွိေနတယ္ဆိုရင္ေတာ့ ကိုယ္က IT အလုပ္နဲ႔ သိပ္မကိုက္ဘူးလို႔ သတ္မွတ္လိုက္ပါ။

၄၊ ေပါင္းသင္းဆက္ဆံေရးလည္း ေကာင္းရပါမယ္

ဒါကေတာ့ ရွင္းျပဖို႔လိုမယ္ေတာင္ မထင္ပါဘူး။ ဘာျဖစ္လို႔လညး္ဆိုေတာ့ IT မွာ support end users ဆိုတာလညး္ ပါတာကိုး။ စကားမ်ားမ်ားေျပာရမယ္။ တဖက္လူ နားလညး္ေအာင္ ဥပမာမ်ားနဲ႔တကြ ေသေသခ်ာခ်ာ ရွင္းျပရမယ္။

၅၊ လြယ္လြယ္အရႈံးမေပးနဲ

႔ ကိုယ့္အရည္အခ်င္းကုိ ဘယ္ႏွစ္ခါေလာက္ ျပန္လည္ သံုးသပ္ဖူးလည္း။ ျပႆနာ တစ္ခုကို အေကာင္းဆံုးျဖစ္ေအာင္ ဘယ္ႏွစ္ခါ ေျဖရွင္းဖူးလည္း။ အဆံုးမသတ္ႏိုင္တဲ့ ျပႆနာေတြ ဘယ္ေလာက္မ်ားမ်ား ထားခဲ့ဘူးသလည္း။ အဲလိုမ်ိဳးေတြထားထားခဲ့တာကုိ ကိုယ့္ကုိကိုယ္ ေမြ႔ေလွ်ာ္ေနပီလား။ အဲဒါမ်ိဳးေတြက IT's ethic မွာ ဘယ္လိုမွ လက္မခံႏိုင္တဲ့အခ်က္ေတြပဲ။ တစ္ခုေတာ့ ရွိတယ္။ အခ်ိန္နည္းနည္း ထပ္ေစာင့္ရအံုးမွာလား။ အဲဒီ ျပႆနာကုိ ေျဖရွင္းဖို႔ skill လိုေသးတာလား။ အိုေက။ အခ်ိန္ေစာင့္ႏိုင္တယ္ ထားအံုး။ လက္ခံထားဖို႔ တစ္ခ်က္ကေတာ့ အဲဒီ အလုပ္ကုိ ၿပီးေအာင္ အဆံုးသတ္မယ္။ လုပ္ကုိလုပ္ရမယ္ဆိုတာကိုေတာ့ လက္ခံႏိုင္ရပါမယ္။

၆၊ ေဒါသထြက္မလြယ္နဲ႔

IT သမားလည္း စိတ္နဲ႔ပဲ ေဒါသေတာ့ တစ္ခါတစ္ေလထြက္တာေပါ့ေနာ္။ ဒါေပမယ့္  IT သမားက End users ေတြရဲ႕ ျပႆနာကုိ အနည္းနဲ႔အမ်ား ေန႔တိုင္း ေျဖရွင္းေပးေနရတာဆိုေတာ့  ေဒါသထြက္လြယ္လို႔ကေတာ့ တစ္ေန႔လံုး ေဒါသထြက္ေနရၿပီး ေသြးတိုးေရာဂါ ရမယ္။ 

၇၊ multitask လုပ္ႏိုင္ရမယ္

တစ္ခါတေလက်ရင္ IT သမားေတြက အခ်ိန္မွီၿပီးေအာင္ အလုပ္ႏွစ္ခု သံုးခု တစ္ၿပိဳင္နက္တညး္ လုပ္ရတာေတြ ရွိပါတယ္။ အလုပ္ကုိ တစ္ခုၿပီးျပတ္မွ တစ္ခုလုပ္တတ္တဲ့သူလညး္ IT ေလာကမွာ မေအာင္ျမင္ဘူးလုိ႔ေတာ့ မဆုိလိုပါဘူး။ ဒါေပမယ့္ multitask လုပ္ႏိုင္တဲ့သူက ပိုသာမွာေပါ့ေလ။

၈၊ တျဖည္းျဖည္းနဲ႔ ရာထူးေတြ တိုးတိုးသြားတာကုိ လိုခ်င္တာလား IT အလုပ္အတြက္ေတာ့ အဲဒါက သိပ္မျဖစ္ႏိုင္ပါဘူး။ ရာထူးေတာ့ တိုးတာေတာ့ ရွိပါတယ္။ အိုင္တီ မန္ေနဂ်ာေလာက္ အထိေပါ့။ CEO အဆင့္ေလာက္အထိ ေမ်ာ္လင့္ထားတယ္ဆိုရင္ေတာ့ ....



၉၊ နည္းပညာေတြ မၾကိဳက္ဘူးလား

ဒါကေတာ့ မျဖစ္ႏိုင္ပါ။ ဥပမာ ဘာလဲဟ စမတ္ဖုန္း၊  ဖုန္းပဲကြာ ဖုန္းေျပာလို႔ရေတာ္ေရာေပါ့ ဆိုတာမ်ိဳး၊ စာအုပ္ဆုိ လက္ထိပ္ေလး တံေတြးဆြတ္ၿပီး လွန္ရမွ စာဖတ္တယ္လို ထင္တာမ်ိဳး (ebook မဖတ္ခ်င္ဘူးဆုိသလို) Server ေတြ Desktop switches, routers ဘာေတြလညး္ဟ အင္တာနက္ေလး သံုးရဖို႔ ဘာေတြ မွန္းကုိ မသိဘူးဆိုတာမ်ိဳး၊ စက္ပစၥည္းေတြ မ်ားလို႔ green earth ထိခိုက္တယ္ဆိုတာမ်ိဳးေတြ ၊ အဲဒါေတြ ရွိေနမယ္ဆိုရင္ေတာ့ ...


၁၀၊ ဖုန္းပိတ္ အိပ္တတ္သလား

IT သမားေတြဟာ ညလယ္သန္းေခါင္ကလညး္ ကိုယ့္အလုပ္လုပ္ခ်ိန္ပဲ ျဖစ္လာရင္ ျဖစ္လာႏိုင္တယ္။ မနက္ကတည္းက ညေနအထိ အလုပ္လုပ္ၿပီးၿပီ အလုပ္ခ်ိန္ၿပီးၿပီလို႔ေတာ့ လက္လြတ္စပယ္ ေနလို႔ မျဖစ္ႏိုင္ပါ။ 24/7 on call ျဖစ္ေနရပါ့မယ္။  မိသားစု ေတြ႔ဆံုပြဲကုိလည္း ခနထားခဲ့ၿပီး Server ေဒါင္းလို႔ အလုပ္လုပ္ရင္ လုပ္ရပါ့မယ္။ သားဦးေလး ေမြးမွာမို႔လို႔ လာလို႔မရဘူးလညး္ လုပ္လို႔မရပါဘူး။ အလုပ္ခ်ိန္ျပင္ပ ျဖစ္တဲ့အတြက္ အလုပ္က ဖုန္းေခၚရင္ မကိုင္ခ်င္ဘူး ဆိုရင္ေတာ့ ေသခ်ာပါၿပီး သင္နဲ႔ IT နဲ႔ ....
သင့္အျမင္ေကာ ဘယ္လိုရွိလညး္ comment ေပးထားႏိုင္ပါတယ္။ IT သမားဘက္က အျမင္ေတြကိုပဲ ေရးထားတာပါ။ တစ္ျခား field ထဲက လူေတြကုိ ထိခိုက္နစ္နာေစလိုျခင္း လံုး၀မရွိပါဗ်ာ။