প্রথমে কিছু কাটখোট্টা সেশন দিয়ে শুরু করা যাক। কিছু কমন প্রশ্ন এবং এই গোবেচারার কিছু উত্তর।
১. প্রোগ্রামিং কি? খায় না মাথায় দেয়?
সোজা বাংলায় বলতে গেলে প্রোগ্রামিং হলো কম্পিউটারকে আদেশ দিয়ে কিছু কাজ করানো।
মানে কি?
মানে হলো কম্পিউটার হলো একটা বোকা বাক্স। ক্ষেত্রবিশেষে এদের ক্ষমতা মানুষের চেয়েও বেশী থাকলেও এর অনেক বড় সীমাবধ্যতা হলো এরা নিজে থেকে কিছু করতে পারেনা। এই দাস তাই করবে যা তার মনিব তাকে আদেশ দিবে। সমস্যা হলো কম্পিউটার মানুষের ভাষা বুঝেনা। এই সমস্যার সমাধান হলো প্রোগ্রামিং। মানুষ তার নিজের ভাষায় কম্পিউটারের জন্য কিছু আদেশ লিখে দিবে, কম্পিউটার সেটাকে কোন এক ভাবে নিজের ভাষায় ট্রান্সলেট করে নিবে। ব্যাস...কাজ শেষ। কম্পিউটার সেই আদশ পুরন করে ফেলবে।
২. প্রোগ্রামিং করে লাভ কি? কম্পিউটারকে কতটুকু নিয়ন্ত্রণ করা যায়?
যেমনটা আগেই বলা হয়েছে। কম্পিউটারকে আদেশ না দিলে কিছুই করতে পারবেনা। তাই এতটুকু বুঝতেই পারছেন যে একটা প্রোগ্রাম বানিয়ে আপনি পুরো কম্পিউটারটাকেই নিয়ন্ত্রণ করতে পারবেন। আসলে আপনি কম্পিউটারে যা কিছু দেখছেন( গেমস, ওয়েব ব্রাউজার, মিডিয়া প্লেয়ার ইত্যাদি ), সবই কেউ না কেউ কোন না কোন প্রোগ্রামিং ল্যাংগুয়েজ দিয়ে প্রোগ্রাম করে রেখেছেন। তাই বুঝতেই পারছেন প্রোগ্রামিং এর ক্ষমতা।
৩. কত ধরনের প্রোগ্রামিং ল্যাংগুয়েজ আছে?
সঠিক সংখ্যা বলতে পারছিনা বলে দুঃখিত, তবে বিভিন্ন সোর্স থেকে যা জানতে পেরেছি সে মতে প্রোগ্রামিং ল্যাংগুয়েজের সংখ্যা ৪০০-৭০০ মত। এগুলা বিভিন্ন ধরনের প্ল্যাটফর্মে কাজ করে।
৪. কোনটা শিখবো?
নির্দিষ্ট কিছু নেই। তবে বিশ্বের সবচেয়ে জনপ্রিয় প্রোগ্রামিং ল্যাংগুয়েজ গুলো শেখাটাই মনেহয় ভালো হবে। যেমন C, C++, Java, C#, Python, Ruby, PHP ইত্যাদি। আবার এটাও মনে রাখা দরকার যে কোড করা আরো সহজ করার জন্য প্রত্যেকটা ল্যাংগুয়েজেরই ফ্রেমওয়ার্ক নামের একটা কন্সেপ্ট আছে। যাকগে, এগুলা অ্যাডভান্স জিনিষ, আগে বেসিক করা যাক।
এতটুকু পড়ে যদি ধৈর্য হারিয়ে ফেলে থাকেন তাহলে পরের লেখা গুলো আপনার জন্য নয়। বাই বাই...আবার আসবেন :p
এবার কিছু কন্সেপ্ট শেখা যাক। প্রোগ্রামিং ল্যাংগুয়েজ আসলে কিভাবে কাজ করে সেটা নিয়ে আলোচনা করা যাক।
ছোটকালে আমরা সবাই পড়েছি কম্পিউটার শুধু ০ আর ১ এই দুইটা সংখ্যা বুঝে। পড়ে মুখস্ত করেছি কিন্তু কিছু বুঝিনি। আমরা ০,১,২,৩,৪,৫,৬,৭,৮,৯ এই দশটা সংখ্যা ব্যবহার করি। এটাকে দশমিক সংখ্যা পদ্ধতি বলে। এই দশটা সংখ্যা দিয়ে আমরা দুনিয়ার সব সংখ্যা উপস্থাপন করি, যেমন ১০২ (১০ x ১০ + ২) । আরেকটা সংখ্যা গননা পদ্ধতি আছে। একে বলে দ্বিমিক। এটা দিয়ে আমরা শুধু ০ আর ১ দিয়ে সব সংখ্যা উপস্থাপন করি। যেমন ২ কে দ্বিমিক পদ্ধতিতে লেখা হয় ১০ (এটা দশ না কিন্তু!!) বা ১০২ কে লেখা হবে ১১০০১১০ । কম্পিউটার এই সংখ্যাগুলোকেই চেনে। যখন আমরা কম্পিউটারকে কিছু নির্দেশ দেই তখন সে নির্দেশকে দ্বিমিক সংখ্যায় কনভার্ট করে ফেলে। এটাকে আমরা বলি মেশিন কোড।
আচ্ছা একটা ভালো প্রশ্ন, কেন করে? এটার জন্য আরেকটু গভীরে যাওয়া দরকার। আমরা অন-অফ সুইচ চিনি। যখন সুইচ অন থাকে ধরে নেই সেটা ১, আর যখন অফ থাকে ধরে নেই তখন সেটা ০। কম্পিউটারের ভেতর এরকম লক্ষ লক্ষ অন-অফ সুইচ আছে । তাই কম্পিটারকে কিছু জানান দিতে গেলে কিছু সুইচ অন আর কিছু সুইচ অফ করে রাখলেই হবে। তাই এই দ্বিমিক পদ্ধতি।
প্রোগ্রামিং ল্যাংগুয়েজে আমরা কিছু কোড লিখে থাকি। দেখতে এগুলো আমাদের প্রচলিত ভাষা গুলোর মতই। ইংরেজী ভাষায় কিছু হাবিজাবি লেখা। বুঝতে না পারা গেলেও পড়তে পারা যায়। কাটখোট্টা দ্বিমিক পদ্ধতিতে না। কিন্তু কম্পিউটার তো এগুলা বুঝেনা। তাই তাকে বুঝানোর জন্য কোড গুলা ট্রান্সলেট করে দিতে হয় মেশিন কোডে।
কয়েক ধরনের ট্রান্সলেশন পদ্ধতি আছে। যেমনঃ এসেম্বলিং, কম্পাইলিং, ইন্টারপ্রেটিং। এছাড়াও আছে ক্রস এসেম্বলার আর ক্রস কম্পাইলার। এগুলার সম্পর্কে আমরা পরে জানবো। তবে মুল ভাবটা হলো এরা সবাই মানুষের লেখা কোডকে কম্পিউটারের বোধগম্য মেশিন কোডে রুপান্তর করে। আর এভাবেই প্রোগ্রামিং এর মাধ্যমে আমরা বোকাবাক্সকে নিজের ইচ্ছা মোতাবেক চালাই।
আজ এটুকুই থাক...ভালো থাকবেন...
১. প্রোগ্রামিং কি? খায় না মাথায় দেয়?
সোজা বাংলায় বলতে গেলে প্রোগ্রামিং হলো কম্পিউটারকে আদেশ দিয়ে কিছু কাজ করানো।
মানে কি?
মানে হলো কম্পিউটার হলো একটা বোকা বাক্স। ক্ষেত্রবিশেষে এদের ক্ষমতা মানুষের চেয়েও বেশী থাকলেও এর অনেক বড় সীমাবধ্যতা হলো এরা নিজে থেকে কিছু করতে পারেনা। এই দাস তাই করবে যা তার মনিব তাকে আদেশ দিবে। সমস্যা হলো কম্পিউটার মানুষের ভাষা বুঝেনা। এই সমস্যার সমাধান হলো প্রোগ্রামিং। মানুষ তার নিজের ভাষায় কম্পিউটারের জন্য কিছু আদেশ লিখে দিবে, কম্পিউটার সেটাকে কোন এক ভাবে নিজের ভাষায় ট্রান্সলেট করে নিবে। ব্যাস...কাজ শেষ। কম্পিউটার সেই আদশ পুরন করে ফেলবে।
২. প্রোগ্রামিং করে লাভ কি? কম্পিউটারকে কতটুকু নিয়ন্ত্রণ করা যায়?
যেমনটা আগেই বলা হয়েছে। কম্পিউটারকে আদেশ না দিলে কিছুই করতে পারবেনা। তাই এতটুকু বুঝতেই পারছেন যে একটা প্রোগ্রাম বানিয়ে আপনি পুরো কম্পিউটারটাকেই নিয়ন্ত্রণ করতে পারবেন। আসলে আপনি কম্পিউটারে যা কিছু দেখছেন( গেমস, ওয়েব ব্রাউজার, মিডিয়া প্লেয়ার ইত্যাদি ), সবই কেউ না কেউ কোন না কোন প্রোগ্রামিং ল্যাংগুয়েজ দিয়ে প্রোগ্রাম করে রেখেছেন। তাই বুঝতেই পারছেন প্রোগ্রামিং এর ক্ষমতা।
৩. কত ধরনের প্রোগ্রামিং ল্যাংগুয়েজ আছে?
সঠিক সংখ্যা বলতে পারছিনা বলে দুঃখিত, তবে বিভিন্ন সোর্স থেকে যা জানতে পেরেছি সে মতে প্রোগ্রামিং ল্যাংগুয়েজের সংখ্যা ৪০০-৭০০ মত। এগুলা বিভিন্ন ধরনের প্ল্যাটফর্মে কাজ করে।
৪. কোনটা শিখবো?
নির্দিষ্ট কিছু নেই। তবে বিশ্বের সবচেয়ে জনপ্রিয় প্রোগ্রামিং ল্যাংগুয়েজ গুলো শেখাটাই মনেহয় ভালো হবে। যেমন C, C++, Java, C#, Python, Ruby, PHP ইত্যাদি। আবার এটাও মনে রাখা দরকার যে কোড করা আরো সহজ করার জন্য প্রত্যেকটা ল্যাংগুয়েজেরই ফ্রেমওয়ার্ক নামের একটা কন্সেপ্ট আছে। যাকগে, এগুলা অ্যাডভান্স জিনিষ, আগে বেসিক করা যাক।
এতটুকু পড়ে যদি ধৈর্য হারিয়ে ফেলে থাকেন তাহলে পরের লেখা গুলো আপনার জন্য নয়। বাই বাই...আবার আসবেন :p
এবার কিছু কন্সেপ্ট শেখা যাক। প্রোগ্রামিং ল্যাংগুয়েজ আসলে কিভাবে কাজ করে সেটা নিয়ে আলোচনা করা যাক।
ছোটকালে আমরা সবাই পড়েছি কম্পিউটার শুধু ০ আর ১ এই দুইটা সংখ্যা বুঝে। পড়ে মুখস্ত করেছি কিন্তু কিছু বুঝিনি। আমরা ০,১,২,৩,৪,৫,৬,৭,৮,৯ এই দশটা সংখ্যা ব্যবহার করি। এটাকে দশমিক সংখ্যা পদ্ধতি বলে। এই দশটা সংখ্যা দিয়ে আমরা দুনিয়ার সব সংখ্যা উপস্থাপন করি, যেমন ১০২ (১০ x ১০ + ২) । আরেকটা সংখ্যা গননা পদ্ধতি আছে। একে বলে দ্বিমিক। এটা দিয়ে আমরা শুধু ০ আর ১ দিয়ে সব সংখ্যা উপস্থাপন করি। যেমন ২ কে দ্বিমিক পদ্ধতিতে লেখা হয় ১০ (এটা দশ না কিন্তু!!) বা ১০২ কে লেখা হবে ১১০০১১০ । কম্পিউটার এই সংখ্যাগুলোকেই চেনে। যখন আমরা কম্পিউটারকে কিছু নির্দেশ দেই তখন সে নির্দেশকে দ্বিমিক সংখ্যায় কনভার্ট করে ফেলে। এটাকে আমরা বলি মেশিন কোড।
আচ্ছা একটা ভালো প্রশ্ন, কেন করে? এটার জন্য আরেকটু গভীরে যাওয়া দরকার। আমরা অন-অফ সুইচ চিনি। যখন সুইচ অন থাকে ধরে নেই সেটা ১, আর যখন অফ থাকে ধরে নেই তখন সেটা ০। কম্পিউটারের ভেতর এরকম লক্ষ লক্ষ অন-অফ সুইচ আছে । তাই কম্পিটারকে কিছু জানান দিতে গেলে কিছু সুইচ অন আর কিছু সুইচ অফ করে রাখলেই হবে। তাই এই দ্বিমিক পদ্ধতি।
প্রোগ্রামিং ল্যাংগুয়েজে আমরা কিছু কোড লিখে থাকি। দেখতে এগুলো আমাদের প্রচলিত ভাষা গুলোর মতই। ইংরেজী ভাষায় কিছু হাবিজাবি লেখা। বুঝতে না পারা গেলেও পড়তে পারা যায়। কাটখোট্টা দ্বিমিক পদ্ধতিতে না। কিন্তু কম্পিউটার তো এগুলা বুঝেনা। তাই তাকে বুঝানোর জন্য কোড গুলা ট্রান্সলেট করে দিতে হয় মেশিন কোডে।
কয়েক ধরনের ট্রান্সলেশন পদ্ধতি আছে। যেমনঃ এসেম্বলিং, কম্পাইলিং, ইন্টারপ্রেটিং। এছাড়াও আছে ক্রস এসেম্বলার আর ক্রস কম্পাইলার। এগুলার সম্পর্কে আমরা পরে জানবো। তবে মুল ভাবটা হলো এরা সবাই মানুষের লেখা কোডকে কম্পিউটারের বোধগম্য মেশিন কোডে রুপান্তর করে। আর এভাবেই প্রোগ্রামিং এর মাধ্যমে আমরা বোকাবাক্সকে নিজের ইচ্ছা মোতাবেক চালাই।
আজ এটুকুই থাক...ভালো থাকবেন...
Thanks man :D
ReplyDelete