![]() |
![]() |
নির্বাচিত পোস্ট | লগইন | রেজিস্ট্রেশন করুন | রিফ্রেস |
বহু নিয়ম মেনেছি। লেখাপড়া করার নিয়ম... মেনেছি, পরীক্ষা দেবার নিয়ম... মেনেছি, চাকরী করবার নিয়ম... মানব। কিন্তু নিয়মটা কে মানা উচিৎ একথাটাও কি মানতে হবে ?
মিউজিক আমার নেশার জায়গা হলেও পেশাগত দিক থেকে আমি কম্পিউটার সায়েন্সের একজন নগন্য ছাত্র। রোমান্টিক লেখালেখি করে আবেগের বারোটা বাজিয়ে আসছি প্রায় বছর তিন-চারেক ধরে, তাই বেশ কিছুদিন ধরেই ইচ্ছা ছিল আমার সাবজেক্ট রিলেটেড কিছু একটা লেখার। গুরুত্ত্বের দিক থেকে চিন্তা করলে যে দিকটি সবচে প্রথমে আমার কাছে আসে সেটা হল প্রোগ্রামিং। লেখাটি খুবই খুবই মৌলিক … যদি কারো আগ্রহ এদিকটা থাকে তো একবার নজর বুলিয়ে নিলে আশা করি সময়টুকু বৃথা যাবেনা।
“প্রোগ্রামিং ল্যাংগুয়েজ” – শুনেই বোঝা যাচ্ছে এটা এক ধরনের ভাষা। কিন্তু প্রোগ্রামিং কিংবা প্রোগ্রাম টা আসলে কি ? সহজ বাংলায় বলতে গেলে প্রোগ্রাম হল কি কিছু নির্দেশের সমষ্টি। ধরুন আপনি গান শোনার জন্য winamp সফটওয়্যারটি ব্যাবহার করেন, এটিও একটি প্রোগ্রাম। কারন যিনি winamp বানিয়েছেন তিনি আগে থেকেই এই সফটওয়্যারটির ভিতরে কিছু নির্দেশ লিখে দিয়েছেন যার দরুন এটি গান গুলো প্লে করে আপ্নাকে শোনাতে পারছে। আর যেই ভাষা দিয়ে এই নির্দেশ গুলো লেখা হয় বা প্রোগ্রাম গুলো তৈরী করা করা হয় তাকে বলে প্রোগ্রামিং ল্যাংগুয়েজ। এটা মোটামুটি আমরা সবাই জানি যে কম্পিউটার হল একটা নির্বোধ যন্ত্র, অর্থাৎ এর কোন নিজস্ব বুদ্ধি-বিবেক নাই। ওকে আমরা প্রোগ্রামিং ল্যাংগুয়েজের মাধ্যমে যেই কমান্ড গুলো করব সে একান্ত বাধ্য হয়ে সেই কাজ গুলো করে দেবে। সুতরাং কম্পিউটার কে আপনার নিজের বশে আনার জন্য অর্থাৎ তাকে আপনার কমান্ড ফলো করার জন্য তার ভাষাই আপনাকে শিখতে হবে। আর সেটাই হল প্রোগ্রামিং ল্যাংগুয়েজ। সি, জাভা, সি শার্প, ভিজ্যুয়াল বেসিক ইত্যাদি বিভিন্ন প্রোগ্রামিং ল্যাংগুয়েজের ভাল নাম।
প্রাথমিক পর্ব শেষ, এবার একটু গভীরে যাব। যদি জানি তবে ভাল যদি না জানি তবে জেনে নিই যে আমাদের কম্পিউটার কিন্তু ০ এবং ১ ছাড়া কিচ্ছু বুঝে না যেটা কিনা বাইনারি সংখ্যা পদ্ধতি। ০ মানে হল বৈদ্যুতিক সিগনাল নাই, আর ১ মানে আছে। আর আমরা আমাদের দৈনন্দিন কাজে কর্মে যে সংখ্যা পদ্ধতি ব্যাবহার করি সেটা হল “দশমিক সংখ্যা পদ্ধতি”। যাই হোক, প্রোগ্রামিং ল্যাংগুয়েজ লেখতে কেমন হয় ? একটা উদাহরন দিচ্ছি, ধরুন আমি এমন একটি প্রোগ্রাম চায় যেটা আমার নামটি কম্পিউটার স্ক্রিনে শো করবে। যদি এমন কাজটি করতে চায় তাহলে সেটা আগে কম্পিউটারকে তার নিজের ভাষাতেই বোঝাতে হবে যে বাবা !! আমি তোমার স্ক্রিনে আমার নামটি শো করতে চাচ্ছি। “সি” এমন একটি ভাষা যেটা কিনা কম্পিউটার বুঝে। তো এখন যদি সি ল্যাংগুয়েজ ইউজ করে আপনি কাজটি করতে চান তবে আপনাকে লিখতে হবেঃ printf (“Ricky Islam”) ; । এখানে printf হল সি ল্যাংগুয়েজ এর একটা বিল্ট ইন ফাংশন যেটা ইউজ করলে কম্পিউটার বুঝে যে তাকে কোন কিছু স্ক্রিনে প্রিন্ট করবার জন্য নির্দেশ দেওয়া হচ্ছে। আচ্ছা বিল্ট ইন ব্যাপারটা কি ? ধরুন আপনার এন্ড্রোয়েড ফোনে বিল্ট ইন ভাবে স্কাইপ ইন্সটল করা আছে, তার মানে কোম্পানি আপনাকে আগে থেকেই ঐটি দিয়ে দিয়েছে, আপনার নতুন করে ইন্সটল করবার দরকার নাই। ঠিক তেমন প্রোগ্রামিং ল্যাংগুয়েজের Built In Function বলতে বোঝাইয় সেই ফাংশান গুলাকে যেগুলোর কাজ ঐ ল্যাংগুয়েজের ডেভেলপাররা আগে থেকেই নির্দিষ্ট করে দিয়েছে। এখন ধরুন আপনি নতুন একটা ফাংশান বানাতে চান যেটা কিনা ব্যাংকের সুদের পরিমান হিসেব করবে। তখন একটা ফাংশন আপনাকে বানিয়ে নিতে হবে, কারন এমন কোন ফাংশন বিল্ট ইন ভাবে থাকে না। যেই ফাংশান আপনি আপনার প্রয়োজনে বানান সেটা কে বলা হয় User Defined Function । নিচের ছবিটিতে দেখুন printf (“Ricky Islam”) ; এক্সিকিউট হয়ে কিভাবে Ricky Islam লেখাটা কালো স্ক্রিনে প্রিন্ট করছে।
কিন্তু এখানে কিছু পরষ্পর বিরোধী কথা মনে হতে পারে। যেমন আমি আগেই লিখেছি কম্পিউটার মেশিন ল্যাংগুয়েজ ছাড়া কিচ্ছু বুঝে না কিন্তু Printf (খানিকটা ইংরেজি শব্দ)শব্দটা দ্বারা তাকে কিভাবে বুঝালাম যে ব্রাকেটের মধ্যের নামটি প্রিন্ট করতে হবে ? তারমানে এখানে একজন অনুবাদক দরকার যেটা কিনা ইংরেজি বর্নমালায় লেখা প্রোগ্রামিং ল্যাংগুয়েজটিকে কম্পিউটারের বোধগম্য মেশিন ল্যাংগুয়েজ এ রুপান্তর করবে। আর সেই অনুবাদক্টিকে বলা হয় “কম্পাইলর”। প্রতিটা কোড লেখার পরই আমাদেরকে ঐ কোডটি কম্পাইল ও বিল্ড করতে হয়। তখন আমরা একটা .exe ফাইল পাই যেটা কিনা ঐ কাংক্ষিত এক্সিকিউটেবল প্রোগ্রাম। মোটামুটি এভাবেই কাজ করে প্রোগ্রামিং ল্যাংগুয়েজ গুলা। এভাবে আমাদের দৈনন্দিন প্রায় সকল সমস্যার সমাধান করা যায় প্রোগ্রামিং ল্যাংগুয়েজে। তবে তার জন্য আপনাকে প্রোগ্রামিং ল্যাংগুয়েজ এর পাশাপাশি ম্যাথ, লজিক, এলগরিদমস এবং ডাটা স্ট্রাকচারে বেশ পারদর্শী হতে হবে
১১ ই অক্টোবর, ২০১৫ রাত ৯:৫৪
শূণ্য মাত্রিক বলেছেন: কারো বিশ্বাস অবিশ্বাসে আমার কিংবা কম্পিউটার সায়েন্সের একটুও যায় আসে না । আমরা দুজনেই নিজেদের মত নিজেদের পথে চলি।
মন্তব্যের জন্য ধন্যবাদ
২| ১১ ই অক্টোবর, ২০১৫ রাত ৮:৩৯
দ্যা ব্যাকডেটেড বলেছেন: ধন্যবাদ ভাই, এ ধরনের লেখা আরো পড়তে পারলে উপকৃত হতাম। কি লিখবেন তো??????????
১১ ই অক্টোবর, ২০১৫ রাত ৯:৫৬
শূণ্য মাত্রিক বলেছেন: অনুপ্রেরণা যখন দিয়েছেন সেটুকুকে ইনশাল্লাহ বৃথা যেতে দিবনা।
মন্তব্যের জন্য অসং্খ্য ধন্যবাদ
৩| ১১ ই অক্টোবর, ২০১৫ রাত ৮:৫৮
হাসান মাহবুব বলেছেন: প্রোগ্রামিং ল্যাঙ্গুয়েজ আমার কাছে কবিতার মত লাগে। সবাই যেমন কবি হতে পারে না, তেমন সবাই প্রোগ্রামার হতে পারে না। লেখা এত ছোট কেন? ফাঁকিবাজি লেখায় মাইনাস!
১১ ই অক্টোবর, ২০১৫ রাত ৯:৫৮
শূণ্য মাত্রিক বলেছেন: ভাইয়া প্লাস মাইনাসের চিন্তা তো করিনা তবে আপ্নার আগ্রহ দেখে খুবই ভাল লেগেছে। আমার জন্য এটাই প্লাস
ধন্যবাদ। ভালো থাকবেন
৪| ১১ ই অক্টোবর, ২০১৫ রাত ১০:৫৩
ক্রিবিণ বলেছেন: আরও বিস্তৃত ধারণা চাই...
১১ ই অক্টোবর, ২০১৫ রাত ১১:০২
শূণ্য মাত্রিক বলেছেন: আমি জাস্ট একটা মাত্র ফাংশান (printf) এর উদাহরণ দিয়ে ল্যাংগুয়েজটা কিভাবে এপ্লাই করা হয় সেটা বুঝাতে চেয়েছি। আসলে এত সল্প পরিসরে কতটুকু গভীরে আলোচনা করা সম্ভব সেটাও একটা প্রশ্ন।
আমি চেস্টা করে যাব ভায়া, আপ্নার আগ্রহ দেখে খুব ভাল লাগল।
৫| ১১ ই অক্টোবর, ২০১৫ রাত ১১:১০
গেম চেঞ্জার বলেছেন: শুণ্যমাত্রিক,
আপনার সাবলীল লেখনী পাঠকের জন্য সুপাঠ্য। আমি নিজেও পেশাগতভাবে একজন প্রোগ্রামার। গল্প, কবিতাও লিখি তবে সেটা নিছক খেয়ালবশত।
চালিয়ে যান।
৬| ১১ ই অক্টোবর, ২০১৫ রাত ১১:১০
ক্রিবিণ বলেছেন: প্রোগ্রাম ডেভলপমেন্ট প্রক্রিয়া নিয়ে হয়তো আরও কিছু লিখতে পারেন... তবে, নাম্বার সিস্টেম নিয়েও লিখতে পারেন... দুটোই বেশ মজার বিষয় বলেই আমি মনে করি...
৭| ১২ ই অক্টোবর, ২০১৫ রাত ১২:২৬
কেএসরথি বলেছেন: চলুক!
৮| ১২ ই অক্টোবর, ২০১৫ সকাল ১১:১৮
কাল্পনিক_ভালোবাসা বলেছেন: চলতে থাকুক।
৯| ১২ ই অক্টোবর, ২০১৫ দুপুর ২:৩০
ক্যান্সারযোদ্ধা বলেছেন: খারাপ নাহ!
১০| ১২ ই অক্টোবর, ২০১৫ বিকাল ৫:২৪
আবু শাকিল বলেছেন: ভাই লিখেন। সাথেই আছি
©somewhere in net ltd.
১|
১১ ই অক্টোবর, ২০১৫ রাত ৮:৩০
চাঁদগাজী বলেছেন:
"সি, জাভা, সি শার্প, ভিজ্যুয়াল বেসিক ইত্যাদি বিভিন্ন প্রোগ্রামিং ল্যাংগুয়েজের ভাল নাম। "
কম্প্যুটার কি এতগুলো ল্যাংগুয়েজ বুঝে?
আপনার লেখার শুরুতে মনে হয়েছিল, সিরিয়াস; এতগুলো ল্যাংগুয়েজর কথা বলাতে আপনার লেখাকে বিশ্বাস করতে পারছি না