Programming is Art of Thinking
Friday, 14 May 2010 12:41
ကြၽန္ေတာ္ တေလာက Myanmar Tutorials မွာ IT နဲ႔ lateral thinking ဆက္ဆက္ပုံ အေၾကာင္းကို
ဖတ္လိုက္ရပါတယ္။ ဖတ္ျပီးေတာ့ ကြၽန္ေတာ္ ဆက္စဥ္းစားမိတာက programmer တစ္ေယာက္႐ႉေထာင့္ကေန
ၾကည့္ရင္ programming မွာေရာ တျခား ဘယ္လို thinking ေတြရွိေသးလဲ ဆိုတာပဲ ျဖစ္ပါတယ္။
Programming မွာ တျခားေသာ thinking ေတြလည္း ရွိေနေသာေၾကာင့္ ဒီ post ကို
Programming is Art of Thinking လို႕ အမည္တပ္လိုက္ပါတယ္။ ဘာ Thinking ေတြလဲ ဆိုတာ ဆက္သြားလိုက္ရေအာင္
1) Breakthrough Thinking ( ေဖာက္ထြက္ေတြးနည္း )
Programmer တစ္ေယာက္အေနနဲ႔ သမ႐ိုးက်ေတြကေန ေဖာက္ထြက္ေတြးေတာတက္ဖို႔ လိုပါတယ္။ ကြၽန္ေတာ္တို႔ ဟိုးအရင္တုံးက
javascript ကိုသာ form validation ေတြမွာ သုံးက်ေပမယ့္ ခုေနာက္ပိုင္းမွာ AJAX, jQuery စတာေတြက အစားထိုး ေနရာယူလာတာကို
ေတြ႔ရပါတယ္။ ဒါကို ၾကည့္မယ္ဆိုရင္ Breakthrough Thinking ကို အေျခခံျပီး ပိုေကာင္းမြန္တဲ့ result ေတြရလာေအာင္ လုပ္ခဲ့တဲ့ ဥပမာ
တစ္ခုပဲ ျဖစ္ပါတယ္။ Forum ေတြကေန QA based site ေျပာင္းလာတာလဲ ဒီသေဘာပဲ ျဖစ္ပါတယ္။
2) Productive Thinking ( အသစ္ေမွ်ာ္ စဥ္းစားနည္း )
ေရွ႕ဘာေျပာင္းလဲမႈေတြ ျဖစ္လာႏိုင္မလဲ ဘာေတြကို ျပင္ဆင္ထားမလဲ ဆိုတာလဲ Programmer တစ္ေယာက္ရဲ႕ Thinking ထဲမွာ ပါပါတယ္။
ဘာလို႕လဲ ဆိုရင္ ငါဟာ VB 4.0, VB 6.0 ဆရာၾကီးပဲကြဆိုျပီး အသစ္ေတြကို မျပင္ဆင္ပဲ ေနခဲ့မယ္ဆိုရင္ market demand အရ သူဟာ
ေနာက္က် က်န္ေနခဲ့ပါလိမ့္မယ္။ ဒီေနရာမွာ Cross Question တစ္ခု ရွိတာက ဒီေလာက္ လ်င္လ်င္ျမန္ျမန္ေျပာင္းလဲေနတဲ့ ေခတ္မွာ
အသစ္တိုင္းကို ဘယ္လိုလိုက္ႏိုင္မလဲ ဆိုတာ ျဖစ္ပါတယ္။ ဒီအတြတ္ 3Ps ကို based လုပ္ျပီး ဆုံးျဖတ္ ရပါမယ္။ အဲဒါေတြကေတာ့
- Possible ( ျဖစ္ႏိုင္စရာ ရွိေသာ )
- Probable ( ျဖစ္တန္ရာေသာ )
- Preferable ( ျဖစ္သင့္ျဖစ္ ထိုက္သည္ဟု ယူဆရေသာ )
3) Lateral Thinking ( ျဖန္႔ထြက္ေတြးနည္း )
Programming ေရးရာတြင္ ျဖစ္ေစ၊ error တစ္ခုခုကို ရွင္းရာမွာ ျဖစ္ေစ Lateral Thinking မရွိရင္ အခ်ိန္ကုန္၊ လူပန္း အက်ိဳးမရွိ ျဖစ္တတ္
ပါတယ္။ ကြၽန္ေတာ္တို႔ က ျပသနာ တခုနဲ႔ေတြရင္ ေဘာင္အတြင္းကေနျပီး လုံးခ်ာလည္ စဥ္းစားတက္က်လိုပါပဲ။ တကယ္ေတာ့ ျပသနာ
အျပင္ကေနထြက္ျပီး စဥ္းစားမယ္ဆိုရင္ solution ကရွိေနျပီးသားပါ။ Lateral Thinking အတြက္ ႐ိုးရွင္းျပီး အေကာင္းဆုံး ဥပမာကေတာ့
အစက္ ကိုးခုကို မ်ဥ္း ေလးေၾကာင္းနဲ႔ ထိေအာင္ဆြဲရမွာ ျဖစ္ပါတယ္။ ဆြဲတဲ့ အခါမွာလည္း ေဘာပင္ကို မႂကြပဲ တစ္ခ်က္ထဲနဲ႔ ဆြဲရမွာ ျဖစ္ပါတယ္။
Myanmar Tutorials post မွာလည္း ဒီ ဥပမာကို ပဲေပးထားပါတယ္။ စိတ္ဝင္စားရင္ ဒီမွာ စဥ္းစားၾကည့္ႏိုင္ပါတယ္။
4) Innovative (or) Creative Thinking ( ထြင္ေတြးနည္း )
21 ရာစု နည္းပညာေခတ္ကို ျဖတ္သန္းေနရာမွာ Idea Alternative ေတြမၾကာ ခဏဆိုသလို ျဖစ္ပါတယ္။ အဲဒါေတြဟာ Innovative (or)
Creative Thinking ေတြေပၚမူတည္ျပီး Technology, Products အသစ္ေတြ ျဖစ္ေပၚလာျခင္းပဲ ျဖစ္ပါတယ္။ ၾကည့္မယ္ဆိုရင္ သာမန္ mobile
ေတြကေန Smart phone, PDA Phone, iPhone ေတြရဲ႕ အဆင့္ဆင့္ ေျပာင္းလဲလာပုံကို ျမင္ႏိုင္ပါတယ္။ ဒါေၾကာင့္လည္း Programmer
တစ္ေယာက္ အတြက္ Creative Thinking ေကာင္းဖို႔လည္း လိုပါတယ္။
အဲဒါေတြကေတာ့ Programming မွာ ကြၽန္ေတာ္ သိထားသေလာက္ Thinking ေတြပဲျဖစ္ပါတယ္။ How to Think, What to Think,
Why to Think ေတြနဲ႔ Art of Thinking ရဲ႕ အလွအပကို ျမင္ႏိုင္က်ပါေစ။ သူငယ္ခ်င္းတို႔ အျမင္မွာ တျခား Thinking ေတြ ရွိေနအံုးမယ္
ဆိုရင္လည္း Comment ေပးျပီး ေဆြးေႏြးဖို႔ ဖိတ္ေခၚပါတယ္။
ဒီ post ကို ဖတ္တ့ဲ အခါ comment ေလးေတြကိုပါ ဆက္ဖတ္ေစလိုပါတယ္။ တျခား thinking ေတြကိုလည္း comment ေပးေဆြးေႏြး
ထားၾကလို႕ သူတို႔ေတြရဲ႕ မူရင္းေလး အတိုင္း ဖတ္ၾကည့္ႏိုင္ပါတယ္။
-
2010-05-14 13:26:13 |119.75.19.xxx| May Zin
ေနာက္တစ္မ်ိဳး ျဖစ္နုိင္ေျခကေတာ့ Analytical Thinking ပါ။ ခြဲျခမ္းစိတ္ျဖာသံုးသပ္ျခင္းျဖစ္ပါတယ္။ ျပႆနာ တစ္ခု ျဖစ္လာရင္ အရင္ဆံုး အနီးစပ္ဆံုးျဖစ္နုိင္ေျခ ကိုေရာက္ေအာင္ စဥ္းစားရပါမယ္။ အၾကီးမားဆံုးေသာျပႆနာပင္လွ်င္ ခြဲျခမ္းစိတ္ျဖာသံုးသပ္တတ္မယ္ဆိုရင္ အေျဖကို လြယ္လြယ္ကူကူေတြ႕နုိင္ပါတယ္။ Client မ်ားရဲ႕ပူးေပါင္းပါ၀င္မႈကိုလည္း သတိျပဳပါ။ ဘယ္လိုအေျခအေနမ်ိးမွာ ျပႆနာျဖစ္တတ္တယ္ဆိုတဲ့ Information ကို ေတာင္းယူပါ။ ဒါမွသာ ျပႆနာေျဖရွင္းရွာမွာ လမ္းေၾကာင္းမွန္ကန္မွာျဖစ္ပါတယ္။
-
2010-05-14 14:06:12 |SAdministrator| admin - re: Great Post!Thiha wrote:Great Posts! I will refer to this post in Myanmar Tutorials.
Okay go on Bro.
Cheer!
Zack
-
2010-05-14 14:06:59 |SAdministrator| admin - re:May Zin wrote:
ေနာက္တစ္မ်ိဳး ျဖစ္နုိင္ေျခကေတာ့ Analytical Thinking ပါ။ ခြဲျခမ္းစိတ္ျဖာသံုးသပ္ျခင္းျဖစ္ပါတယ္။ ျပႆနာ တစ္ခု ျဖစ္လာရင္ အရင္ဆံုး အနီးစပ္ဆံုးျဖစ္နုိင္ေျခ ကိုေရာက္ေအာင္ စဥ္းစားရပါမယ္။ အၾကီးမားဆံုးေသာျပႆနာပင္လွ်င္ ခြဲျခမ္းစိတ္ျဖာသံုးသပ္တတ္မယ္ဆိုရင္ အေျဖကို လြယ္လြယ္ကူကူေတြ႕နုိင္ပါတယ္။ Client မ်ားရဲ႕ပူးေပါင္းပါ၀င္မႈကိုလည္း သတိျပဳပါ။ ဘယ္လိုအေျခအေနမ်ိးမွာ ျပႆနာျဖစ္တတ္တယ္ဆိုတဲ့ Information ကို ေတာင္းယူပါ။ ဒါမွသာ ျပႆနာေျဖရွင္းရွာမွာ လမ္းေၾကာင္းမွန္ကန္မွာျဖစ္ပါတယ္။
Okay sis, I will add this thinking. thanks for your comment
-
တစ္ခါတစ္ေလ လိုခ်င္တဲ့ အေျဖကေန ေျပာင္းျပန္ေတြးရတာေတြ ရွိတတ္ပါတယ္...
Web Application ေတြ ဖန္တီးတဲ့အခါ တစ္ခါတစ္ေလ Client ေတြလိုခ်င္တာက ကိုယ့္ရဲ႕ Skill Area ထဲမွာ ရွိမေနတာမ်ဳိး ျဖစ္ေနတတ္ပါတယ္ အဲဒီအခါမွာ လိုခ်င္တဲ့ Solution နဲ႔ ကိုယ့္မွာ ရွိတဲ့ Knowledge ၾကားမွာ ဘာေတြ လိုေသးလဲ အေျဖရွာျပီး လိုအပ္တာေတြ ျဖည့္၊ အဲဒီ Solution ထိ ေရာက္ေအာင္ သြားတာမ်ဳိးေပါ့.. Reverse Thinking က က်န္တဲ့ေနရာေတြမွာလည္း အသံုး၀င္ပါတယ္ ဥပမာ - 1 ႏွစ္အတြင္း နည္းပညာ အသစ္တစ္ခုကို တတ္ကၽြမ္းဖို႔ ေန႔စဥ္၊ လစဥ္၊ အခ်ိန္နဲ႔ က်န္တဲ့ အရင္းအျမစ္ေတြကို ဘယ္လို အသံုးခ်မလဲ ဆိုတာမ်ဳိးေပါ့
-
2010-05-14 15:39:06 |SAdministrator| admin - Re: everlearner
အကို Reverse Thinking ကို ဖတ္ျပီး ေနာက္ Thinking တစ္ခုကို ကြၽန္ေတာ္ ထပ္စဥ္းစားမိတယ္။ Reproductive Thinking ပါ။ ေျပာမယ္ဆိုရင္ နဲနဲေတာင္ ဆင္တယ္။ ဒါေပမယ့္ ကြာေတာ့ကြာပါတယ္။
ဒီလိုဗ်ာ ျပသနာ တစ္ခုကို ၾကဳံျပီးဆိုရင္ Googling လုပ္ျပီး ဒီလို ျပသနာမ်ိဳး ဘယ္မွာ ျဖစ္ခဲ့ ဘူးသလဲ ဆိုတာမ်ိဳးကို ရွာေဖြျပီးျပသနာကို ရွင္းဖို႔ စဥ္းစားက်ပါတယ္။ ျပီးေတာ့ ေရွ႕ဆရာၾကီးမ်ားရဲ႕ "ဘယ္ေကြ႔ ဘယ္တက္နဲ႔ ေလွာ္" "ညာေေကြ႔ ညာတက္နဲ႔ ေလွာ္" ေတြကို ေလ့လာသုံးသပ္ျပီး Solution တစ္ခုကို ထုတ္ယူလိုက္ၾကပါတယ္။ I believe I can do ဆိုျပီး ရဲေဆးတင္ကာ ျပသနာကို ရွင္းေလ့ရွိၾက ပါတယ္။
အကို comment ကို ကြၽန္ေတာ္ Post မွာ နာမည္နဲ႔ တကြ Credit ေပးျပီး ေပါင္းလိုက္ပါမယ္။
-
က်ေနာ္႔ဖုိရမ္မွာလဲ Share လုပ္ထားခ်င္ပါတယ္
ေကာင္းတဲ႔ artical ေလးတခုပါ
က်ေနာ္တုိ႔ပရုိဂရမ္းမင္းသမားမ်ားအတြက္အလြန္အသုံး၀င္တဲ႔ artical
ေလးတခုပါ
Share ခြင္႔ေပးပါခင္ဗ်
-
ကၽြန္ေတာ္ ဒီေဆာင္းပါကို ညႊန္းမယ္ဆိုၿပီး ေစာင့္ေနတာ မွတ္ခ်က္ေတြက ေကာင္းေနတယ္ ဒီေတာ့ ခဏေစာင့္လိုက္ဦးမယ္ဗ်ာ ... မွတ္ခ်က္ေတြ ေပးၾကပါဦးဗ်ဳိ႕
-
2010-05-16 01:13:35 |220.255.7.xxx| 112
I am newbie here but found the post cool ;P
I don't get thinking #2 very clear.... is it
proactive thinking or productive thinking??
Its interesting to know 3Ps if you could
elaborate them with examples from programming
point of view. Cheers~~
-
2010-05-16 18:43:50 |SAdministrator| admin - Re: 112
productive thinking. pls chk here
here is my example:
eg 1:
ဒီေနမွာက ျဖစ္မလာေသးတာ တစ္ခုကို decisions ခ်တဲ့ သေဘာမ်ိဳး ပိုမ်ားတယ္ဗ်ာ။ ဒီလိုဗ်ာ
ဟိုတေန႕က new programming language တစ္ခု ျဖစ္တဲ့ Jargon ဆိုတာ ဖတ္လိုက္ရတယ္။
အသစ္ေပၚတိုင္းကို လိုက္လုပ္ဖို႔ အခ်ိန္မရွိသူ အဖို႔ ဒီ 3Ps ေပၚမွာ မူတည္ျပီး စဥ္းစားရေတာ့မယ္။ဘယ္ေလာက္ထိ programming ေလာကကို လႊမ္းမိုးႏိုင္မယ္လဲ (possible)
သူနဲ႔ functions ေတြ၊ feature ေတြကို လက္ရွိ popular programming languages ေတြနဲ႔ ယွဥ္ျပီး လႊမ္းမိုးႏိုင္မႈ (Probable)
Okay, ေနာက္ဆုံး အဆင့္မွာ decision ခ်မယ္ ဒီ programming languages ကို ငါသည္ အခ်ိန္ေပးကာ ေလ့လာသင့္မသင့္ (Preferable)
eg 2:
ကြၽန္ေတာ္ ခုလက္ရွိ ျဖစ္ေနတာနဲ႔ ယွဥ္ျပီးေျပာမယ္။ x-cart မွာ multiple currency ကို client ကလိုခ်င္တယ္။ကြၽန္ေတာ္ စဥ္းစားရျပီ ဒီ module ထည့္ရင္ တျခားေသာ ဘယ္ module ေတြကို ထိမလဲ? အဓိက အေရးၾကီးတာက payment gateway ကို ဒီ multiple currency နဲ႔ ဘယ္လို flexible ျဖစ္ေအာင္လုပ္မလဲ? (Possible)
လုပ္ျပီးရင္ေရာ x-cart version တိုင္းမွာ ထည့္လို႕ ရႏိုင္မရႏိုင္ (probable)Okay, ေနာက္ဆုံးမွာ decision ခ်မယ္ ဒီ module ကို develop လုပ္သင့္မလုပ္သင့္ ဒီေနရာမွာ ခ်ိန္ျပီး စဥ္းစားရတာေတြက
project time & cost, man power ေတြေပါ့။
module တခုကို မေရးခင္မွာ အဲဒီလို႕ စဥ္းစားျပီးမွ client ကို reply ျပန္ပါတယ္။ (Preferable)ခုေတာ့ ကြၽန္ေတာ္လည္း ဒီေလာက္ပဲ စဥ္းစားလို႕ ရတယ္ ခင္ဗ်ာ။
-
2010-05-17 16:38:45 |220.255.7.xxx| Ei Chaw San - က်ြန္မနားလည္သေလာက္ lateral thinking
ကြ်န္မကေတာ. ေသာၾကာေန.တေနကုန္ ဥာဏ္စမ္းေၿဖၾကည္.ေနခဲ.ပါတယ္..စာရြက္ ၅ ရြက္ေလာက္ကုန္ၿပီးစိတ္မရွည္ေတာ.တဲ.အဆံုးထံုးစံအတိုင္း Google ေပါ. :P
အေၿဖရရခ်င္းစိတ္တိုသြားပါတယ္...လူလည္က်တယ္ေပါ.
ေနာက္မွကိုယ္.ဘာသူကိုယ္က်ိတ္မနိင္ခဲမရနဲ.အဲ.အေၾကာင္းပဲေတြးေနရင္းတစ္ခ်က္လ င္းခနဲစာေရးသူေၿပာခ်င္တာကိုသေဘာေပါက္သြားတယ္(ထင္တာပဲ..မဟုတ္ရင္တာ.ဒီမွာၿပ န္မေၿဖနဲ.ေနာ္ အရွက္ကြဲလိ္မ္.မယ္..ဟီး)
လူေတြက အစက္ကိုးစက္ကို မ်ဥ္းေလးေၾကာင္းနဲ.စက္ရမယ္ဆိုတာနဲ.အဲ.အစက္ရဲ.အၿပင္ကိုေက်ာင္ၿပီးမေတြးေတာ. ဘူး..တစ္စက္နဲ.တစ္စက္ကြက္တိကိုဆက္ရမယ္ဆိုတဲ.ေဘာင္ထဲကပဲစဥ္းစားတယ္...အဲ.မွ ာအေၿဖကထြက္မလာေတာ.တာပဲ...က်န္တဲ.အရာေတြမွာလည္းဒီလုိပဲေပါ.က်ြန္မတို.ေဘာင္ ထဲကခြဲထြက္တတ္ဖို.လိုပါတယ္..ဒါကက်ြန္မနားလည္တဲ. lateral thinking ပါ..
-
2010-05-25 13:22:25 |SAdministrator| admin - Re:
One of example for lateral thinking from 99sanay(ၾကြက္ႏွင့္ စကၠဴ).
Cheer!
Zack
-
2010-10-15 22:21:56 |203.81.166.xxx| ့htet htet
Programming is Art of Thinking ဆိုတာကိုအရမ္းသေဘာက်ပါတယ္...
Deadline ေတြအရမ္းကပ္လာတဲ့အခါ တခါတေလThinking အတြက္ကိုအခ်ိန္သီးသန့္မေပးနိုင္ေတာ့ဘဲ Client လိုခ်င္တာနဲ့ကိုယ္လုပ္ေပးနိုင္တာကိုပဲ
လက္ေတြ့က်က်စဥး္စားလိုက္တာကိုေတာ့
Practical Thinking လို့ေခါင္းစဥ္တပ္ခ်င္ပါတယ္..
| < Prev | Next > |
|---|
Login Form
Latest Post
Categories Table View
- Reader's Conner (133)
- PHP (48)
- Joomla CMS (46)
- Codeigniter (18)
- jQuery (12)
- iDhamma (11)
- Mobile Development (10)
- PHP & AJAX (4)
- Apache (3)
- For Mac (3)
- mySQL (2)
- DhammaDroid (1)
Great Posts! I will refer to this post in Myanmar Tutorials.