Which Programming Language You Should Choose?
Programming Languages |
Programming Language တစ္ခုခုကိုသင္မယ္လို႔ဆုံးျဖတ္ခ်က္ခ်လိုက္ၿပီဆိုရင္ လူတိုင္းအရင္ဆုံးစေတြ႕ရတဲ့အခက္အခဲကေတာ့ဘယ္ language ကိုသင္ရမလဲဆိုတာပါပဲ။ ဒီ article ကိုေရးရတဲ့အေၾကာင္းကေတာ့ ဘယ္ field ေတြအတြက္ ဘယ္ language ေတြလိုအပ္တယ္ ဘာေတြကိုသိထားသင့္တယ္ ဘယ္မွာသင္လို႔ရတယ္ဆိုတာကို အၾကမ္းဖ်င္းရွင္းျပခ်င္လို႔ပဲျဖစ္ပါတယ္။ ေရြးခ်ယ္တဲ့ေနရာမွာ အေထာက္အကူျပဳေစမွာကေတာ့ ကိုယ္ဘာလုပ္ခ်င္တယ္ဆိုတာကိုသိတာပါပဲ။ ဥပမာ android ဖုန္းအတြက္ application ေရးခ်င္တာပဲျဖစ္ျဖစ္၊ ဝဘ္ဆိုက္ေရးခ်င္လို႔ပဲျဖစ္ျဖစ္ရည္ရြယ္ခ်က္ကိုသိရင္ေတာ့အစျပဳရတာပိုၿပီးေတာ့လြယ္ပါတယ္။ ပထမဆုံးေျပာခ်င္တာကေတာ့ ကၽြန္ေတာ္ကိုယ္တိုင္လဲ language တစ္ခုကိုကၽြမ္းကၽြမ္းက်င္က်င္ႀကီးမတက္ပါဘူး။ ဝါသနာအရေလ့လာရင္းအေျခခံေလာက္အနည္းငယ္သာသိတာပါ။
Programming Language ေတြကိုေယဘူယ်အားျဖင့္ dynamically typed(not compiled) နဲ႔ statically typed(compiled) ဆိုၿပီး၂မ်ိဳးခြဲနိုင္ပါတယ္။ ပထမအမ်ိဳးအစားကေတာ့ run ဖို႔ကို compile လုပ္စရာမလိုလို႔ lightweight apps/web applications ေတြမွာအသုံးမ်ားပါတယ္။ ဥပမာ – Javascript, Ruby, Python, PHP။ ဒုတိယကေတာ့ compile လုပ္စရာလိုၿပီး ရွုပ္ေထြးေသာ program မ်ား၊ games မ်ားမွာသုံးေလ့ရွိပါတယ္။ ဥပမာ – Java, C, C++, C#။
၂ဝ၁၅ခုအတြက္ေပၚျပဴလာအျဖစ္ဆုံးနဲ႔လခအရဆုံး Programming Language မ်ား
၂ဝ၁၅ခုအတြက္ေပၚျပဴလာအျဖစ္ဆုံးနဲ႔လခအရဆုံး Programming Language မ်ား(Source:
http://compsciengg.blogspot.nl/2015/04/programming-languages-that-pay-most.html)
For Android Phones
Android ဖုန္းေတြအတြက္ကို application ေရးခ်င္တယ္ဆိုရင္ေတာ့အဓိကသိရမွာက java ျဖစ္ပါတယ္။ ၁၉၉၅ခုထဲကစတင္ခဲ့တာျဖစ္လို႔သင္ယူဖို႔ resource မ်ားရွာရတာအရမ္းလြယ္ကူပါတယ္။ Google ကိုယ္တိုင္ကလဲ Android App ေရးဖို႔ tools မ်ား tutorials မ်ားကိုအေထာက္အကူေပးထားပါတယ္။
Get started with Android Developer:
http://developer.android.com/develop/index.html
Documentations on Oracle website:
http://docs.oracle.com/javase/tutorial/index.html
လြယ္လြယ္ကူကူစတင္နိုင္ေသာဆိုက္:
https://www.codecademy.com/learn/learn-java
For Apple Phones(iOS)
Apple iOS အတြက္ဆိုရင္ေတာ့ Objective C ေပၚမွာအဓိကအေျခခံ(Python, Ruby အစရွိသည္တို႔အေပၚလဲအနည္းငယ္အေျခခံ) ထားတဲ့ Swift ကိုသုံးရမွာျဖစ္ပါတယ္။
Apple Developer Tutorial Site:
https://developer.apple.com/library/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/index.html
Resources:
https://developer.apple.com/swift/resources/
Web Development
ဝဘ္ဆိုက္ေတြေရးဖို႔အတြက္ဆိုရင္ေတာ့ front end အတြက္ကို HTML, CSS နဲ႔ Javascript တို႔ကိုသိရမွာျဖစ္ပါတယ္။ HTML နဲ႔ CSS တို႔ဟာစာမ်က္ႏွာမ်ားရဲ့အသြင္အျပင္ကိုေဖၚေသာေနရာမွာသုံးတဲ့အတြက္ programming language လို႔ေတာ့အေသျခာေျပာလို႔မရပါဘူး။ ဒါေပမဲ့သူတို႔ဟာဝဘ္ဆိုက္ေရးဖို႔အတြက္ကိုအေျခခံမသိလို႔မျဖစ္ပါဘူး။ Javascript ကေတာ့ဝဘ္ဆိုက္မ်ားရဲ့လုပ္ေဆာင္မွုကိုတာဝန္ယူထားတဲ့ client side scripting language ျဖစ္ပါတယ္။ Google, Facebook, YouTube စေသာဆိုက္မ်ားအားလုံးရဲ့ front end မွာသူ႔ကိုအသုံးခ်ထားပါတယ္။
လြယ္လြယ္ကူကူစတင္နိုင္ေသာဆိုက္:
http://www.w3schools.com/html/
http://www.w3schools.com/css/
http://www.w3schools.com/js/
Server side scripting langugages ေတြအေနနဲ႔ကေတာ့ PHP, Python နဲ႔ Ruby တို႔ကိုအသုံးမ်ားပါတယ္။ ဝဘ္ဆိုက္ေရးတဲ့ေနရာမွာ language တစ္ခုထဲကိုသုံးစရာမလိုပဲ ကိုယ္အဆင္ေျပသလိုေပါင္းစပ္ၿပီးသုံးနိုင္ပါတယ္။ အခုေနာက္ပိုင္းဆိုက္အားလုံးနီးပါးဟာ language တစ္ခုထက္ပိုၿပီးေတာ့သုံးထားတာကိုေတြ႕ရမွာပါ။ ဒီေတာ့အဲဒီ language မ်ားကိုတစ္ခုထက္ပိုၿပီးသိထားနိုင္မွအဆင္ေျပနိုင္မွာျဖစ္ပါတယ္။ PHP ဟာအေျခခံၾကၿပီးဆိုက္အမ်ားစုမွာသုံးထားေပမဲ့ Ruby နဲ႔ Python တို႔ဟာေနာက္မွထုတ္လုပ္ၿပီး user မ်ားသုံးရပိုလြယ္ေအာင္ပိုမိုတိုေတာင္းေသာ ကုဒ္မ်ားနဲ႔ေရးနိုင္ေအာင္ ျပဳလုပ္ထားပါတယ္။ သူတို႔ႏွစ္ခုဟာ traffic မ်ားတဲ့ဆိုက္မ်ားအတြက္ကိုပိုၿပီးသင့္ေတာ္ပါတယ္။ Ruby ကိုအေျခခံထားတဲ့ Ruby On Rails Open Source Framework ကို web developers ေတြဟာ အခ်ိန္အနည္းငယ္အတြင္းမွာ လြယ္လြယ္ကူကူ dynamic ျဖစ္ေသာဝဘ္ဆိုက္မ်ားတည္ေဆာက္နိုင္လို႔အသုံးမ်ားၾကပါတယ္။
PHP:
http://www.w3schools.com/php/
http://www.learn-php.org/
Ruby:
https://www.codecademy.com/learn/ruby
http://learnrubythehardway.org/book/
Python:
http://www.learnpython.org/
https://www.codecademy.com/learn/python
http://learnrubythehardway.org/book/
ဝဘ္ဆိုက္ေရးခ်င္တယ္ဆိုရင္အႀကံဉာဏ္ေပးလိုတာတစ္ခုကေတာ့အစကေနစမတည္ေဆာက္ပဲနဲ႔ wordpress framework ကိုသုံးဖို႔ပါ။ ကိုယ္ဟာ PHP လိုမ်ိဳး language ကိုပါသိထားတယ္ဆိုရင္ေတာ့အဲ့ဒါကိုအေျခခံၿပီးကိုယ္လိုတာကိုတည္ေဆာက္နိုင္မွာျဖစ္ပါတယ္။ ဒီအတြက္ကိုေတာ့ေနာက္မွ tutorial သတ္သတ္ေရးေပးပါမယ္။
Applications Development
Operating system ေတြအတြက္၊ မိမိရဲ့လုပ္ငန္းအတြက္ applications မ်ားျပဳလုပ္လိုသည္ျဖစ္ေစ၊ Games မ်ားေရးဆြဲလိုသည္ျဖစ္ေစသိထားရမွာကေတာ့ Java/C/C++/C# အစရွိေသာ language မ်ားပဲျဖစ္ပါတယ္။ သူတို႔ဟာအထက္ကဟာမ်ားထက္ပိုၿပီး powerful ျဖစ္တဲ့အတြက္ သင္ၾကားရာမွာလဲအနည္းငယ္ပိုၿပီးခက္ခဲနိုင္ပါတယ္။ ဒါေၾကာင့္သူတို႔ကို first language အေနနဲ႔သင္ၾကတာရွားပါတယ္(ခၽြင္းခ်က္ java မွလြဲ၍)။ ဒီ language မ်ားကိုကၽြမ္းကၽြမ္းက်င္က်င္တက္ထားပါက တိုးတက္ေသာနိုင္ငံမ်ားမွာအလုပ္ရွာရတာအရမ္းကိုအေထာက္အကူျပဳပါတယ္။ ကမာၻေပၚမွာရွိတဲ့အႀကီးဆုံးေသာ company ေတာ္ေတာ္မ်ားမ်ားမွာ ဒီ language ေတြကိုတစ္ခုမဟုတ္တစ္ခုအသုံးျပဳေနၾကပါတယ္။ သူတို႔အထဲကမွ Java နဲ႔ C ဟာအနည္းငယ္အေျခခံပိုၾကၿပီး C++/C# တို႔ဟာ C language ေပၚမွာအေျခခံထားတာျဖစ္ပါတယ္။
C: http://c.learncodethehardway.org/book/
C++: http://www.learncpp.com/
C#: http://www.learncs.org/
Programming Language မ်ားမဟုတ္ေသာ္လဲ IT လုပ္သားမ်ားအေနနဲ႔သိထားသင့္တာမ်ားကိုဆက္ၿပီးေဖၚျပသြားပါမယ္။ ဝဘ္ဆိုက္မ်ား၊ ဖုန္း applications မ်ားေရးမယ္ဆိုရင္ graphics ပိုင္းအတြက္ကို user interface မ်ား၊ logo မ်ား၊ images မ်ားဖန္တီးနိုင္ရန္ Photoshop/Illustrator စတာေတြကိုအေျခခံေလာက္သိထားရပါမယ္။ Data မ်ားကိုသိမ္းဆည္းဖို႔လိုအပ္ပါက SQL ကဲ့သို႔ေသာ Data Management language ကိုသိထားသင့္ပါတယ္။ ၿပီးေတာ့ development လုပ္တိုင္းအႀကိမ္ႀကိမ္အခါခါျပဳျပင္ရေသာေၾကာင့္ Git/Subversion ကဲ့သို႔ေသာ software version control နည္းပညာမ်ားကိုအသုံးျပဳသင့္ပါတယ္။
ေနာက္ဆုံးအေနနဲ႔အႀကံေပးလိုတာကေတာ့ဘယ္ language ကိုမဆိုသင္ဖို႔ဆုံးျဖတ္ၿပီးပါကအေျခခံမၽွသာမဟုတ္ပဲ ေရေရရာရာသိေအာင္ေလ့လာဖို႔ပါပဲ။ ဒါမွေနာက္ language မ်ားသင္တဲ့အခါမွာလြယ္ကူဖို႔အေထာက္အကူျပဳမွာျဖစ္ပါတယ္။ ေလ့လာတဲ့အခါမွာလဲ tutorial မ်ားသာမက မိမိကိုယ္တိုင္ mini project မ်ားျပဳလုပ္ကာသင္ယူပါကပိုၿပီးအလြယ္တကူတက္ေျမာက္နိုင္မွာျဖစ္ပါတယ္။ ဒီအထက္မွာေဖၚျပထားတာေတြကအႀကံဉာဏ္ရ႐ုံသာျဖစ္ၿပီး အျခားေသာေလ့လာနိုင္သည့္ေနရာမ်ား(အင္တာနက္၊စာအုပ္မ်ား၊ YouTube tutorialမ်ား၊ သင္တန္းမ်ား) ေျမာက္မ်ားစြာရွိပါတယ္။
ဒီေရးသားခ်က္နဲ႔ပတ္သတ္လို႔အႀကံျပဳလိုသည္မ်ား ေမးျမန္းလိုသည္မ်ားရွိပါက အားမနာပဲအခ်ိန္မေရြးဆက္သြယ္နိုင္ပါတယ္။