[ সি প্রোগ্রামিং :- অধ্যায় শূন্য ] শুরুর আগে

11 218

কম্পিউটার তো আসলে গণনা করার যন্ত্র, তাই না ? যদিও আমরা এটি দিয়ে গান শুনি, ভিডিও দেখি, গেমস খেলি, আরও নানা কাজ করি । আসলে শেষ পযর্ন্ত কম্পিউটার বোঝে শূন্য (0) আর একের (1) হিসাব । তাই ব্যবহারকারী (user) যা-ই করুক না কেন, কম্পিউটার কিন্তু সব কাজ গণনার মাধ্যমেই করে । কম্পিউটারের ব্যবহার এত ব্যাপক হওয়ার পেছনে অন্যতম কারণ হচ্ছে নানা রকম সফটওয়্যার দিয়ে নানা ধরনের কাজ করা যায় কম্পিউটারে । এসব সফটওয়্যার তৈরি করতে হয় প্রোগ্রাম লিখে অর্থাৎ কী হলে কী করবে এটি প্রোগ্রামের সাহায্যে কম্পিউটারকে বোঝাতে হয় ।

একসময় কিন্তু কেবল 0 আর 1 ব্যবহার করেই কম্পিউটারের প্রোগ্রাম লিখতে হতো । কারণ কম্পিউটার তো 0,1 ছাড়া আর কিছু বোঝে না, আর কম্পিউটারকে দিয়ে কোন কাজ করাতে চাইলে তো তার ভাষাতেই কাজের নির্দেশ দিতে হবে । 0, 1 ব্যবহার করে যে প্রোগ্রামিং করা হতো, তার জন্য যে ভাষা ব্যবহৃত হতো, তাকে বলা হয় মেশিন ল্যাঙ্গুয়েজ । তারপর এল অ্যাসেম্বলি ল্যাঙ্গুয়েজ । এতে প্রোগ্রামাররা কিছু ইনস্ট্রাকশন যেমন ADD (যোগ), MUL (গুণ) ইত্যাদি ব্যবহারের সুযোগ পেল । আর এই ভাষাকে 0, 1 –এর ভাষায় নিয়ে কাজ করাবার দায়িত্ব পড়ল অ্যাসেম্বলারের উপর, প্রোগ্রামারদের সে বিষয়ে ভাবতে হতো না । কিন্তু মানুষের চাহিদার তো শেষ নেই । নতুন নতুন চাহিদার ফলে নতুন নতুন জিনিসের উদ্ভব হয় । একসময় দেখা গেল যে অ্যাসেম্বলি ল্যাঙ্গুয়েজ দিয়েও কাজ করা ঝামেলা হয়ে যাচ্ছে । তাই বড় বড় প্রোগ্রাম লিখার জন্য আরও সহজ ও উন্নত নানা রকম প্রোগ্রামিং ভাষা তৈরি হলো । যেমন- ফরট্রান (Fortran), বেসিক (Basic), প্যাসকেল (Pascal), সি (C) । তবে এখানেই শেষ নয়, এরপর এল আরও অনেক ল্যাঙ্গুয়েজ, যার অন্যতম হচ্ছে, সি প্লাস প্লাস (C++), ভিজুয়াল বেসিক (Visual Basic), জাভা (Java), সি শার্প (C#), পার্ল (Perl), পিএইচপি (PHP), পাইথন (Python), রুবি (Ruby) । এখনো কম্পিউটার বিজ্ঞানীরা নিত্যনতুন প্রোগ্রামিং ভাষা তৈরি করে যাচ্ছেন । প্রোগ্রামাররা এসব ভাষা ব্যবহার করে প্রোগ্রাম লেখেন আর প্রতিটি ভাষার রয়েছে আলাদা কম্পাইলার, যার কাজ হচ্ছে ওই প্রোগ্রামকে কম্পিউটারের বোধগম্য ভাষায় রূপান্তর করা, তাই এটি নিয়ে প্রোগ্রামারদের ভাবতে হয় না ।

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

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

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

এবার আসা যাক, কম্পাইলার পাবেন কোথায় ? সি এর জন্য বেশ কিছু কম্পাইলার আছে । আপনি ‍যদি লিনাক্স কিংবা ম্যাক ব্যবহারকারী হন, তবে সবচেয়ে ভালো হচ্ছে gcc । অধিকাংশ লিনাক্সের এটি আগে থেকে ইনস্টল করা থাকে । আপনার কম্পিউটারে না থাকলে এটি ইনস্টল করে নিতে পারেন । আর উইন্ডোজ ব্যবহার করলে আপনি Codeblocks (http://www.codeblocks.org/) ব্যবহার করতে পারেন । এটি একটি ফ্রি এবং ওপেন সোর্স IDE (Integrated Development Environment) এবং ম্যাক আর লিনাক্সেও চলে । এমনিতে সাধারণ কোনো টেক্সট এডিটর (যেমন: নোটপ্যাড, জিএডিট, কেরাইট) ব্যবহার করে কোড লিখে সেটি কম্পাইলার দিয়ে কম্পাইল করে রান করা যায় । তবে অধিকাংশ আইডিই (IDE) গুলোতেই নিজস্ব টেক্সট এডিটর ও কম্পাইলার থাকে । প্রোগ্রাম রান করার ব্যবস্থা ও থাকে । এছাড়া ও নানা ধরনের টুলস্ থাকে ।

Codeblocks টা সরাসরি আপনি http://www.codeblocks.org সাইট থেকে ডাউনলোড ও ইনস্টল করতে পারেন । মনে রাখবেন নতুন র্ভাসনটি ডাউনলোড করা আপনার কাজের জন্য উপকার হবে তাই পারলে নতুন র্ভাসনটি ডাউনলোড করে নিন ।

প্রোগ্রামিং চর্চার বিষয় । ইন্টারনেটে বেশ কিছু ওয়েবসাইট আছে, যেখানে প্রচুর সমস্যা দেওয়া আছে যেগুলো প্রোগ্রামের সাহায্যে সমাধান করতে হয় । সব জায়গাতেই আপনি সি ল্যাঙ্গুয়েজে প্রোগ্রামিং করতে পারবেন । এর মধ্য কিছু কিছু সাইট আবার নিয়মিত প্রোগ্রামিং প্রতিযোগিতার ও আয়োজন করে । এসব প্রতিযোগিতায় অংশগ্রহণ নিঃসন্দেহে আপনার প্রোগ্রামিং-দক্ষতা বৃদ্ধি করবে আর সেই সঙ্গে বিশ্বের নানা দেশের প্রোগ্রামারদের সাথে মিলা-মেশার সুযোগ করে দিবে । অবশ্য প্রোগ্রামিং প্রতিযোগিতায় ভালো করতে হলে কেবল প্রোগ্রামিং জানলেই চলবে না, গাণিতিক দক্ষতাও যথেষ্ট গুরুত্বপূর্ণ । পরিশিষ্ট অংশে প্রোগ্রামিং প্রতিযোগিতা নিয়ে আলাপ করব ।

ব্লগের প্রতিটি প্রোগ্রামের নিচে আমি একটি নম্বর দিয়েছি । প্রোগ্রামের নম্বর যদি ২.৪ হয়, তার মানে হচ্ছে এটি দ্বিতীয় অধ্যায়ের চার নম্বর প্রোগ্রাম ।

প্রোগ্রামিং কিন্তু কোনো বইয়ের গল্প নয় । তাই বিছানায় শুয়ে-বসে পড়া যাবে না । ব্লগটি পড়ার সময় কম্পিউটার চালু রাখতে হবে এবং প্রতিটি উদাহরণ সঙ্গে সঙ্গে প্রোগ্রাম লিখতে হবে । মনে রাখবেন, যত বেশি প্রোগ্রামিং তত বেশি বেশি আনন্দ ।

আশা করছি, আপনি বাকি অধ্যায় গুলো পড়বেন এবং সবগুলো প্রোগ্রাম কম্পিউটারে চালিয়ে দেখবেন (পরের পোষ্টটির জন্য অপেক্ষা করুন) । আপনার জন্য শুভ কামনা রইল…………..

লেখাটি http://www.grandhelper.blogspot.com এর সি প্রোগ্রামিং বিভাগ থেকে copy and paste করা হয়েছে ।
শেষ কথা : আমার ফেইসবুক পেজে লাইক দিতে এখানে ক্লিক দিন http://www.facebook.com/grandhelper
আমার ব্লগ থেকে ঘুরে আসতে চাইলে এখানে ক্লিক দিন http://www.grandhelper.blogspot.com

Series Navigation<< প্রোগ্রামিং ভাবনা[ সি প্রোগ্রামিং :- অধ্যায় এক ] প্রথম প্রোগ্রাম । >>
11 মন্তব্য
  1. Shamim al-masud বলেছেন

    thank you for share.

    1. sabuj4u বলেছেন

      @Shamim al-masud: you are welcome

  2. দিপু রায়হান বলেছেন

    tђคภкร Ŧ๏г รђєคг.

    1. sabuj4u বলেছেন
  3. রফিক ফরহাদ বলেছেন

    Ekta request bhai,
    Sompurno shes na kore ei tutorial bomdho korben na. BTW Thank you very much. 🙂

    1. sabuj4u বলেছেন

      @রফিক ফরহাদ: আমি চেষ্টা করব । সাথে থাকুন । ধন্যবাদ ।

  4. লিটন হাফিজুর বলেছেন

    নাইস পোসট।শেয়ার করার জন্য ধন্যবাদ সবুজ ভাই।

    1. sabuj4u বলেছেন

      @লিটন হাফিজুর: আপনাকে ও ধন্যবাদ ।

      1. লিটন হাফিজুর বলেছেন

        welcome—–

  5. Om বলেছেন

    Thanks.
    I wanna learn C++.

    1. sabuj4u বলেছেন

      @Om: you can learn from a trusted web or buy a book and start learning ……..

উত্তর দিন