Skip to main content

প্রোগ্রামিং এর সংগে ঠাট্টা

প্রথমে কিছু কাটখোট্টা সেশন দিয়ে শুরু করা যাক। কিছু কমন প্রশ্ন এবং এই গোবেচারার কিছু উত্তর।

. প্রোগ্রামিং কি? খায় না মাথায় দেয়? 

     সোজা বাংলায় বলতে গেলে প্রোগ্রামিং হলো কম্পিউটারকে আদেশ দিয়ে কিছু কাজ করানো।

মানে কি?

    মানে হলো কম্পিউটার হলো একটা বোকা বাক্স। ক্ষেত্রবিশেষে এদের ক্ষমতা মানুষের চেয়েও বেশী থাকলেও এর অনেক বড় সীমাবধ্যতা হলো এরা নিজে থেকে কিছু করতে পারেনা। এই দাস তাই করবে যা তার মনিব তাকে আদেশ দিবে। সমস্যা হলো কম্পিউটার মানুষের ভাষা বুঝেনা। এই সমস্যার সমাধান হলো প্রোগ্রামিং। মানুষ তার নিজের ভাষায় কম্পিউটারের জন্য কিছু আদেশ লিখে দিবে, কম্পিউটার সেটাকে কোন এক ভাবে নিজের ভাষায় ট্রান্সলেট করে নিবে। ব্যাস...কাজ শেষ। কম্পিউটার সেই আদশ পুরন করে ফেলবে।

২. প্রোগ্রামিং করে লাভ কি? কম্পিউটারকে কতটুকু নিয়ন্ত্রণ করা যায়?

    যেমনটা আগেই বলা হয়েছে। কম্পিউটারকে আদেশ না দিলে কিছুই করতে পারবেনা। তাই এতটুকু বুঝতেই পারছেন যে একটা প্রোগ্রাম বানিয়ে আপনি পুরো কম্পিউটারটাকেই নিয়ন্ত্রণ করতে পারবেন। আসলে আপনি কম্পিউটারে যা কিছু দেখছেন( গেমস, ওয়েব ব্রাউজার, মিডিয়া প্লেয়ার ইত্যাদি ), সবই কেউ না কেউ কোন না কোন প্রোগ্রামিং ল্যাংগুয়েজ দিয়ে প্রোগ্রাম করে রেখেছেন। তাই বুঝতেই পারছেন প্রোগ্রামিং এর ক্ষমতা।

৩. কত ধরনের প্রোগ্রামিং ল্যাংগুয়েজ আছে? 
    
    সঠিক সংখ্যা বলতে পারছিনা বলে দুঃখিত, তবে বিভিন্ন সোর্স থেকে যা জানতে পেরেছি সে মতে প্রোগ্রামিং ল্যাংগুয়েজের সংখ্যা ৪০০-৭০০ মত। এগুলা বিভিন্ন ধরনের প্ল্যাটফর্মে কাজ করে।

৪. কোনটা শিখবো?


    নির্দিষ্ট কিছু নেই। তবে বিশ্বের সবচেয়ে জনপ্রিয় প্রোগ্রামিং ল্যাংগুয়েজ গুলো শেখাটাই মনেহয় ভালো হবে। যেমন C, C++, Java, C#, Python, Ruby, PHP ইত্যাদি। আবার এটাও মনে রাখা দরকার যে কোড করা আরো সহজ করার জন্য প্রত্যেকটা ল্যাংগুয়েজেরই ফ্রেমওয়ার্ক নামের একটা কন্সেপ্ট আছে। যাকগে, এগুলা অ্যাডভান্স জিনিষ, আগে বেসিক করা যাক। 

এতটুকু পড়ে যদি ধৈর্য হারিয়ে ফেলে থাকেন তাহলে পরের লেখা গুলো আপনার জন্য নয়। বাই বাই...আবার আসবেন :p 

এবার কিছু কন্সেপ্ট শেখা যাক। প্রোগ্রামিং ল্যাংগুয়েজ আসলে কিভাবে কাজ করে সেটা নিয়ে আলোচনা করা যাক। 

ছোটকালে আমরা সবাই পড়েছি কম্পিউটার শুধু ০ আর ১ এই দুইটা সংখ্যা বুঝে। পড়ে মুখস্ত করেছি কিন্তু কিছু বুঝিনি। আমরা ০,১,২,৩,৪,৫,৬,৭,৮,৯ এই দশটা সংখ্যা ব্যবহার করি। এটাকে দশমিক সংখ্যা পদ্ধতি বলে। এই দশটা সংখ্যা দিয়ে আমরা দুনিয়ার সব সংখ্যা উপস্থাপন করি, যেমন ১০২ (১০ x ১০ + ২) । আরেকটা সংখ্যা গননা পদ্ধতি আছে। একে বলে দ্বিমিক। এটা দিয়ে আমরা শুধু ০ আর ১ দিয়ে সব সংখ্যা উপস্থাপন করি। যেমন ২ কে দ্বিমিক পদ্ধতিতে লেখা হয় ১০ (এটা দশ না কিন্তু!!) বা ১০২ কে লেখা হবে ১১০০১১০ । কম্পিউটার এই সংখ্যাগুলোকেই চেনে। যখন আমরা কম্পিউটারকে কিছু নির্দেশ দেই তখন সে নির্দেশকে দ্বিমিক সংখ্যায় কনভার্ট করে ফেলে। এটাকে আমরা বলি মেশিন কোড।

আচ্ছা একটা ভালো প্রশ্ন, কেন করে? এটার জন্য আরেকটু গভীরে যাওয়া দরকার। আমরা অন-অফ সুইচ চিনি। যখন সুইচ অন থাকে ধরে নেই সেটা ১, আর যখন অফ থাকে ধরে নেই তখন সেটা ০। কম্পিউটারের ভেতর এরকম লক্ষ লক্ষ অন-অফ সুইচ আছে । তাই কম্পিটারকে কিছু জানান দিতে গেলে কিছু সুইচ অন আর কিছু সুইচ অফ করে রাখলেই হবে। তাই এই দ্বিমিক পদ্ধতি।


প্রোগ্রামিং ল্যাংগুয়েজে আমরা কিছু কোড লিখে থাকি। দেখতে এগুলো আমাদের প্রচলিত ভাষা গুলোর মতই। ইংরেজী ভাষায় কিছু হাবিজাবি লেখা। বুঝতে না পারা গেলেও পড়তে পারা যায়। কাটখোট্টা দ্বিমিক পদ্ধতিতে না। কিন্তু কম্পিউটার তো এগুলা বুঝেনা। তাই তাকে বুঝানোর জন্য কোড গুলা ট্রান্সলেট করে দিতে হয় মেশিন কোডে।
কয়েক ধরনের ট্রান্সলেশন পদ্ধতি আছে। যেমনঃ এসেম্বলিং, কম্পাইলিং, ইন্টারপ্রেটিং। এছাড়াও আছে ক্রস এসেম্বলার আর ক্রস কম্পাইলার। এগুলার সম্পর্কে আমরা পরে জানবো। তবে মুল ভাবটা হলো এরা সবাই মানুষের লেখা কোডকে কম্পিউটারের বোধগম্য মেশিন কোডে রুপান্তর করে। আর এভাবেই প্রোগ্রামিং এর মাধ্যমে আমরা বোকাবাক্সকে নিজের ইচ্ছা মোতাবেক চালাই। 


আজ এটুকুই থাক...ভালো থাকবেন...

Comments

Post a Comment

Some of My Bests

ডাটা স্ট্রাকচার- স্ট্যাক (Stack)

Programming is all about data manipulation. Data structure is way of storing data for further manipulation. ডাটা স্ট্রাকচার আমাদেরকে বিভিন্ন ডাটা সাজিয়ে রাখার ব্যবস্থা করে দেয়। ডাটা সাজিয়ে রাখার অনেক গুলো "তরিকা" আছে। কোনকিছু আমরা কেন সাজিয়ে রাখি? যেন পরে নির্দিষ্ট একটা ডাটা সহজে খুঁজে পেতে পারি। "তরিকা" গুলোর নাম Array, Stack, Queue, Linked List, Tree, Graph. এগুলা শ খানেক ডাটা স্ট্রাকচারের মধ্যে কিছুর নাম, যেগুলো অনেক বেশি ব্যবহার হয়। এই পোস্টটা স্ট্যাক বুঝানোর জন্য। স্ট্যাক খুবই ইন্টেরেস্টিং একটা ডাটা স্ট্রাকচার। অনেক কারনেই এটা ব্যাবহার হয়। আগে স্ট্যাক কনসেপ্টটা নিয়ে আলোচনা করা যাক। স্ট্যাক বলতে বোঝায় একটার উপর একটা সাজায়ে রাখা। বিয়ের বাড়িতে আগে মেলামাইনের গ্লাস দেখা যেত একটার ভেতর আরেকটা ঢুকায়ে লম্বা একটা পাইল তৈরি করে একসাথে ক্যারি করা হচ্ছে। এটা একটা স্ট্যাক। প্রোগ্রামিং এর ভাষায় স্ট্যাক এক্সাক্টলি সেইম জিনিসই। তবে একটু ঘষামাজা আছে। আরেকটা উদাহরণ দেয়া যেতে পারে। বয়ামের ভেতর একটার পর আরেকটা বিস্কিট ঢুকিয়ে রাখা হয়। হ্যা, এইটা পারফেক্ট উদাহরণ হয়েছে। এই...

ডাটা স্ট্রাকচার- কিউ (Queue)

Programming is all about data manipulation. Data structure is way of storing data for further manipulation. ডাটা স্ট্রাকচার আমাদেরকে বিভিন্ন ডাটা সাজিয়ে রাখার ব্যবস্থা করে দেয়। ডাটা সাজিয়ে রাখার অনেক গুলো "তরিকা" আছে। কোনকিছু আমরা কেন সাজিয়ে রাখি? যেন পরে নির্দিষ্ট একটা ডাটা সহজে খুঁজে পেতে পারি। "তরিকা" গুলোর নাম Array, Stack, Queue, Linked List, Tree, Graph. এগুলা শ খানেক ডাটা স্ট্রাকচারের মধ্যে কিছুর নাম, যেগুলো অনেক বেশি ব্যবহার হয়। এই পোস্টটা কিউ বুঝানোর জন্য। কিউ জিনিসটার সাথে আমরা সবাই পরিচিত। জীবনে আমরা সবাই কখনো না কখনো লাইনে দাঁড়ায়ছি। কিউ এর বেসিক ক্যারেক্টারিস্টিকসের সাথে মিলিয়েই প্রোগ্রামিং এ কিউ এর কনসেপ্ট। বাস্তব জীবনে একটা কিউ তে কি হয়? সবাই লাইন ধরে দাঁড়ায় কিছু একটা কারনে। যে সবার আগে দাঁড়ায় সেই সবার আগে কার্জসিদ্ধি করে। সবার পরের জন সবার পরে। স্ট্যাকের ক্ষেত্রে আমরা পড়েছিলাম Last In First Out (LIFO) or First In Last Out (FILO)। কেমন আনফেয়ার শোনায় না? সবার পরে আসবে, আবার সবার আগে চলে যাবে। অ্যাটলিস্ট আমার আনফেয়ার লেগেছিলো যখন স্ট্যাক শিখছিল...

Building a Tic Tac Toe Console Game in C#

When learning a new programming language, a common exercise is to create a classic game, such as Tic Tac Toe. In this post, I'll guide you through creating a simple, console-based Tic Tac Toe game in C#. First, let's start with the challenge we're trying to solve: Tic Tac Toe is a two-player game. We need to handle input from two players and alternate between them. The game is played on a 3x3 grid. We need to keep track of the state of this grid. A player wins by marking three spots in a row, either horizontally, vertically, or diagonally. The game continues until a player has won or all spots on the grid have been marked, in which case the game is a draw. To address these challenges, we need to develop a problem-solving mindset. Let's break down the problem into smaller, manageable pieces and think about how we could solve each one. This process is known as "decomposition" and it's a fundamental skill in programming and problem-solving in general. Step 1:...