প্রোগ্রামিং সি
প্রাথমিক আলোচনা বলতে আসলে আমি একটু ভূমিকা নিয়ে কথা বলব, যা না পড়লেও কোন ক্ষতি নাই। কম্পিউটার ইঞ্জিনিয়ারিং এর ছাত্র হিসেবে ভাল ভাবে সি জানা সব থেকে বেশি প্রয়োজন বলে আমার মত অনেকেই মনে করেন, বিশ্ববিদ্যালয়ে প্রথম দিকে যখন সি শিখায়, তখন পরীক্ষায় ভাল করার একটা পায়তারা থাকে নিজের ভিতরে এমনকি শিক্ষকের এর ভিতরেও। শুধু পরীক্ষায় ভাল করলেই প্রোগ্রামিং শেখা যায় না এ কথা সর্বজন স্বীকৃত, ভাল প্রোগ্রামার হওয়া তো আরও কঠিন। ভাল প্রোগ্রামিং করতে বা ভাল প্রোগ্রামার হতে পরিশ্রম আর সাথে বেশি বেশি প্রাকটিস এর বিকল্প নাই। আমার অভিজ্ঞতার আলোকে বলতে পারি, সামান্য সেমিকোলনের একটা ভুল আপনি একাধিক বার করতে পারেন বা করবেন। এমনি কি ওই দিনের জন্য আপনার ধৈর্য শেষও হতে পারে। যা খুবই কষ্টদায়ক। তাই একজন প্রোগ্রামারের সব থেকে বেশি প্রয়োজন মনোযোগ ও ধৈর্য।
তো, এই সব ভেবে আমার কাছে সব থেকে ভাল পদ্ধতিটি মনে হল, আমি যদি সি টা আমার ব্যক্তিগত ওয়েব সাইটে লিখে রাখি তাহলে আমার অনেক বই পরতে হবে, ওয়েব সাইট ঘাটতে হবে, ভিডিও দেখতে হবে এমন কি ছোট ছোট সমস্যায় পরলে বা আমার লেখায় কোন ভুল থাকলে অভিজ্ঞরা অবশ্যই সাহায্য করবে। মূলত এই ধারনা থেকেই প্রোগ্রামিং সি নিয়ে ধারাবাহিক ভাবে লেখা কথা মাথায় আসে।
আমি একটা কথা সময় বলি, ভবিষ্যতেও বলব (অবশ্যই কাউকে আঘাত বা কষ্ট দিতে নয় , কেউ কষ্ট পেলে আমি দুঃখিত) কাউকে শিখানোর জন্য আমি লিখি না, কারণ কাউকে কখনো শিখান যায় না, যদি সে না শিখতে চায়। আর কাউকে শেখানোর পর্যাপ্ত জ্ঞান আমার হয়নি, আমি জানি হয়তো কোন দিন হবেও না, কারণটা সহজ; আমি সারা জীবন ছাত্র থাকতে চাই। সবার ভালবাসা কাড়বো আর শিখবো। আনন্দ!!
কম্পিউটারের মাধ্যমে কোন সমস্যা সমাধানের জন্য প্রয়োজনীয় নির্দেশমালার সমষ্টিকে প্রোগ্রাম (program) বলা হয়। আর এই ধারা বর্ণনা বা প্রোগ্রাম রচনার পদ্ধতি বা কৌশলকে প্রোগ্রাম পদ্ধতি বা প্রোগ্রামিং (programming) বলা হয়। অন্য কথায়, কোন সমস্যা অল্প সময়ে এবং সহজে সমাধানের উদ্দেশ্যে সম্পাদনের অনুক্রমে নির্দেশাবলী সাজানোর কৌশলকে প্রোগ্রামিং বলা হয়।
প্রোগ্রাম, প্রোগ্রামিং কি?
কমপিউটারের মাধ্যমে কোন সমস্যা সমাধানের জন্য প্রয়োজনীয় নিদের্শমালার সমষ্টিকে প্রোগ্রাম (program) বলা হয়। আর এই ধারা বণর্না বা প্রোগ্রাম রচনার পদ্ধতি বা কৌশলকে প্রোগ্রাম পদ্ধতি বা প্রোগ্রামিং (programming) বলা হয়। অন্য কথায়, কোন সমস্যা অল্প সময়ে এবং সহজে সমাধানের উদ্দেশ্যে সম্পাদানের অনুক্রমে নিদের্শাবলী সাজানোর কৌশলকে প্রোগ্রামিং বলা হয়।
প্রোগ্রামিং ভাষা কি ?
কম্পিউটারের মাধ্যমে কোন সমস্যা সমাধান তথা প্রোগ্রাম রচনার জন্য ব্যবহৃত শব্দ, বর্ণ, অংক, চিহ্ন প্রভৃতির সমন্বয়ে গঠিত রীতিনীতিকে প্রোগ্রাম ভাষা (Programming Language) বলা হয়। বিভিন্ন ধরনের প্রোগ্রাম রচনার জন্য বিভিন্ন ধরনের প্রোগ্রাম ভাষা ব্যবহৃত হয়। পৃথিবীতে কোটি কোটি মানুষ অনেক ধরনের ভাষা ব্যবহার করে। কিন্তু কম্পিউটার এই সব ভাষা বোঝে না, সে শুধু বুঝে (1 , 0) যাকে বাইনারি সংখ্যা বলে । মেশিন ল্যাঙ্গুয়েজ নামেই বেশি পরিচিত। সুতরাং এখানে স্পষ্ট যে কম্পিউটার এর ভাষা মেশিন ল্যাঙ্গুয়েজ আর প্রোগ্রামিং ল্যাঙ্গুয়েজ হচ্ছে C, C++, C#, Python, Perl , Ruby ইত্যাদি, যা নিয়ে পোস্ট এর শেষ দিয়ে আমি আলোচনা করব।
প্রোগ্রামার কে বা কারা ?
সাধারণ ভাবে বলা যায় এভাবে, “যে বা যিনি কম্পিউটার এর জন্য সফটওয়্যার তিরি করেন, সমস্যা সৃষ্টি ও সমাধান করে, ওয়েব ডেভেলপ করে, কোড লিখে এবং কোড বিশ্লেষণ করে, সেই প্রোগ্রামার।”
“The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software.”
“The term programmer can be used to refer to a software developer, Web Developer, Mobile Applications Developer, Embedded Firmware Developer, software engineer, computer scientist, or software analyst.”
“টাচ লাইন থেকে”: “web developer, Analysis, computer scientist(engineer) Coder / Programmer এর সংজ্ঞার মধ্যে রয়েছে সূক্ষ্ম পার্থক্য এবং রয়েছে যথা রীতি অনেক বেশি বিতর্ক .
পিছনের কথা: ব্রিটিশ অঙ্কশাস্ত্রবিদ অ্যাডা লাভলেস ইতিহাসের প্রথম প্রোগ্রামার হিসেবে সমধিক পরিচিত। তিনিই প্রথম অ্যালগরিদম বিষয়টা ব্যাখ্যা করেন। ১৮৪২ সালে চার্লস ব্যাবেজের analytical engine ব্যবহার করে কাজ শুরু করেন।
প্রোগ্রামিং কেন ?
প্রথমত আপনি প্রোগ্রামার হতে চান। বিভিন্ন প্রোগ্রামে যোগ দিয়ে নিজের মেধার সাক্ষর রাখতে চান। নতুন কিছু সৃষ্টি করতে চান, যা কেউ আজও করেনি । ধরেন আপনি এমন একটা সফটওয়্যার তৈরি করতে চান, যা কীবোর্ড ছাড়াই শুধু ভয়েস পরিবর্তন করে স্ক্রিন এ লিখতে পারে। তাহলে কেমন হবে বলুন তো? জোশ না? যদি কাজটি সহজ নয়, কিন্তু চেষ্টা করতে দোষ কি! দেখা গেল অনেক চেষ্টা করেছেন কিন্তু যতটুকু অভিজ্ঞতা থাকলে একজন ভাল প্রোগ্রামার হওয়া যায়, আপনি টা হতে পারলেন না । তাহলে কি আপনার এত দিনের শিক্ষা বৃথা? না। সে ক্ষেত্রে আপনি ওয়েব ডেভেলপার হিসেবে কাজ শুরু করতে পারবেন (ওয়েব ডিজাইন আর ওয়েব ডেভেলপার এক জিনিস নয়, গুলিয়ে ফেলবেন না যেন) বর্তমানে এক জন ওয়েব ডেভেলপার দাম ও কিন্তু একজন প্রোগ্রামারের থেকে কম না (Inspiration Only !)। আশা করছি বুঝতে পেরেছেন।
প্রোগ্রামিং সি কেন ?
এত প্রোগ্রামিং ল্যাঙ্গুয়েজ থাকে সি কেন? কারণ সহজ প্রোগ্রামিং (PROGRAMMING ANSI C ) প্রোগ্রামিং এর রাজা । প্রোগ্রামিং সি কে “MOTHER OF PROGRAMMING” বলা হয়। সুতরাং বুঝতেই পারতেছেন , প্রোগ্রামিং এর “মা” কে শিখতে পারলে তার পরের প্রজন্ম এমনিতেই আপনার কাছে সহজ হয়ে ধরা দিবে। অনেক যুক্তি তর্ক দিয়ে কেন ব্যাখ্যা করা যেত কিন্তু “কথায় কথা বাড়ে, কাজের কাজ কিছুই হয় না”।
প্রাথমিক আলোচনা বলতে আসলে আমি একটু ভূমিকা নিয়ে কথা বলব, যা না পড়লেও কোন ক্ষতি নাই। কম্পিউটার ইঞ্জিনিয়ারিং এর ছাত্র হিসেবে ভাল ভাবে সি জানা সব থেকে বেশি প্রয়োজন বলে আমার মত অনেকেই মনে করেন, বিশ্ববিদ্যালয়ে প্রথম দিকে যখন সি শিখায়, তখন পরীক্ষায় ভাল করার একটা পায়তারা থাকে নিজের ভিতরে এমনকি শিক্ষকের এর ভিতরেও। শুধু পরীক্ষায় ভাল করলেই প্রোগ্রামিং শেখা যায় না এ কথা সর্বজন স্বীকৃত, ভাল প্রোগ্রামার হওয়া তো আরও কঠিন। ভাল প্রোগ্রামিং করতে বা ভাল প্রোগ্রামার হতে পরিশ্রম আর সাথে বেশি বেশি প্রাকটিস এর বিকল্প নাই। আমার অভিজ্ঞতার আলোকে বলতে পারি, সামান্য সেমিকোলনের একটা ভুল আপনি একাধিক বার করতে পারেন বা করবেন। এমনি কি ওই দিনের জন্য আপনার ধৈর্য শেষও হতে পারে। যা খুবই কষ্টদায়ক। তাই একজন প্রোগ্রামারের সব থেকে বেশি প্রয়োজন মনোযোগ ও ধৈর্য।
তো, এই সব ভেবে আমার কাছে সব থেকে ভাল পদ্ধতিটি মনে হল, আমি যদি সি টা আমার ব্যক্তিগত ওয়েব সাইটে লিখে রাখি তাহলে আমার অনেক বই পরতে হবে, ওয়েব সাইট ঘাটতে হবে, ভিডিও দেখতে হবে এমন কি ছোট ছোট সমস্যায় পরলে বা আমার লেখায় কোন ভুল থাকলে অভিজ্ঞরা অবশ্যই সাহায্য করবে। মূলত এই ধারনা থেকেই প্রোগ্রামিং সি নিয়ে ধারাবাহিক ভাবে লেখা কথা মাথায় আসে।
আমি একটা কথা সময় বলি, ভবিষ্যতেও বলব (অবশ্যই কাউকে আঘাত বা কষ্ট দিতে নয় , কেউ কষ্ট পেলে আমি দুঃখিত) কাউকে শিখানোর জন্য আমি লিখি না, কারণ কাউকে কখনো শিখান যায় না, যদি সে না শিখতে চায়। আর কাউকে শেখানোর পর্যাপ্ত জ্ঞান আমার হয়নি, আমি জানি হয়তো কোন দিন হবেও না, কারণটা সহজ; আমি সারা জীবন ছাত্র থাকতে চাই। সবার ভালবাসা কাড়বো আর শিখবো। আনন্দ!!
কম্পিউটারের মাধ্যমে কোন সমস্যা সমাধানের জন্য প্রয়োজনীয় নির্দেশমালার সমষ্টিকে প্রোগ্রাম (program) বলা হয়। আর এই ধারা বর্ণনা বা প্রোগ্রাম রচনার পদ্ধতি বা কৌশলকে প্রোগ্রাম পদ্ধতি বা প্রোগ্রামিং (programming) বলা হয়। অন্য কথায়, কোন সমস্যা অল্প সময়ে এবং সহজে সমাধানের উদ্দেশ্যে সম্পাদনের অনুক্রমে নির্দেশাবলী সাজানোর কৌশলকে প্রোগ্রামিং বলা হয়।
প্রোগ্রাম, প্রোগ্রামিং কি?
কমপিউটারের মাধ্যমে কোন সমস্যা সমাধানের জন্য প্রয়োজনীয় নিদের্শমালার সমষ্টিকে প্রোগ্রাম (program) বলা হয়। আর এই ধারা বণর্না বা প্রোগ্রাম রচনার পদ্ধতি বা কৌশলকে প্রোগ্রাম পদ্ধতি বা প্রোগ্রামিং (programming) বলা হয়। অন্য কথায়, কোন সমস্যা অল্প সময়ে এবং সহজে সমাধানের উদ্দেশ্যে সম্পাদানের অনুক্রমে নিদের্শাবলী সাজানোর কৌশলকে প্রোগ্রামিং বলা হয়।
প্রোগ্রামিং ভাষা কি ?
কম্পিউটারের মাধ্যমে কোন সমস্যা সমাধান তথা প্রোগ্রাম রচনার জন্য ব্যবহৃত শব্দ, বর্ণ, অংক, চিহ্ন প্রভৃতির সমন্বয়ে গঠিত রীতিনীতিকে প্রোগ্রাম ভাষা (Programming Language) বলা হয়। বিভিন্ন ধরনের প্রোগ্রাম রচনার জন্য বিভিন্ন ধরনের প্রোগ্রাম ভাষা ব্যবহৃত হয়। পৃথিবীতে কোটি কোটি মানুষ অনেক ধরনের ভাষা ব্যবহার করে। কিন্তু কম্পিউটার এই সব ভাষা বোঝে না, সে শুধু বুঝে (1 , 0) যাকে বাইনারি সংখ্যা বলে । মেশিন ল্যাঙ্গুয়েজ নামেই বেশি পরিচিত। সুতরাং এখানে স্পষ্ট যে কম্পিউটার এর ভাষা মেশিন ল্যাঙ্গুয়েজ আর প্রোগ্রামিং ল্যাঙ্গুয়েজ হচ্ছে C, C++, C#, Python, Perl , Ruby ইত্যাদি, যা নিয়ে পোস্ট এর শেষ দিয়ে আমি আলোচনা করব।
প্রোগ্রামার কে বা কারা ?
সাধারণ ভাবে বলা যায় এভাবে, “যে বা যিনি কম্পিউটার এর জন্য সফটওয়্যার তিরি করেন, সমস্যা সৃষ্টি ও সমাধান করে, ওয়েব ডেভেলপ করে, কোড লিখে এবং কোড বিশ্লেষণ করে, সেই প্রোগ্রামার।”
“The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software.”
“The term programmer can be used to refer to a software developer, Web Developer, Mobile Applications Developer, Embedded Firmware Developer, software engineer, computer scientist, or software analyst.”
“টাচ লাইন থেকে”: “web developer, Analysis, computer scientist(engineer) Coder / Programmer এর সংজ্ঞার মধ্যে রয়েছে সূক্ষ্ম পার্থক্য এবং রয়েছে যথা রীতি অনেক বেশি বিতর্ক .
পিছনের কথা: ব্রিটিশ অঙ্কশাস্ত্রবিদ অ্যাডা লাভলেস ইতিহাসের প্রথম প্রোগ্রামার হিসেবে সমধিক পরিচিত। তিনিই প্রথম অ্যালগরিদম বিষয়টা ব্যাখ্যা করেন। ১৮৪২ সালে চার্লস ব্যাবেজের analytical engine ব্যবহার করে কাজ শুরু করেন।
প্রোগ্রামিং কেন ?
প্রথমত আপনি প্রোগ্রামার হতে চান। বিভিন্ন প্রোগ্রামে যোগ দিয়ে নিজের মেধার সাক্ষর রাখতে চান। নতুন কিছু সৃষ্টি করতে চান, যা কেউ আজও করেনি । ধরেন আপনি এমন একটা সফটওয়্যার তৈরি করতে চান, যা কীবোর্ড ছাড়াই শুধু ভয়েস পরিবর্তন করে স্ক্রিন এ লিখতে পারে। তাহলে কেমন হবে বলুন তো? জোশ না? যদি কাজটি সহজ নয়, কিন্তু চেষ্টা করতে দোষ কি! দেখা গেল অনেক চেষ্টা করেছেন কিন্তু যতটুকু অভিজ্ঞতা থাকলে একজন ভাল প্রোগ্রামার হওয়া যায়, আপনি টা হতে পারলেন না । তাহলে কি আপনার এত দিনের শিক্ষা বৃথা? না। সে ক্ষেত্রে আপনি ওয়েব ডেভেলপার হিসেবে কাজ শুরু করতে পারবেন (ওয়েব ডিজাইন আর ওয়েব ডেভেলপার এক জিনিস নয়, গুলিয়ে ফেলবেন না যেন) বর্তমানে এক জন ওয়েব ডেভেলপার দাম ও কিন্তু একজন প্রোগ্রামারের থেকে কম না (Inspiration Only !)। আশা করছি বুঝতে পেরেছেন।
প্রোগ্রামিং সি কেন ?
এত প্রোগ্রামিং ল্যাঙ্গুয়েজ থাকে সি কেন? কারণ সহজ প্রোগ্রামিং (PROGRAMMING ANSI C ) প্রোগ্রামিং এর রাজা । প্রোগ্রামিং সি কে “MOTHER OF PROGRAMMING” বলা হয়। সুতরাং বুঝতেই পারতেছেন , প্রোগ্রামিং এর “মা” কে শিখতে পারলে তার পরের প্রজন্ম এমনিতেই আপনার কাছে সহজ হয়ে ধরা দিবে। অনেক যুক্তি তর্ক দিয়ে কেন ব্যাখ্যা করা যেত কিন্তু “কথায় কথা বাড়ে, কাজের কাজ কিছুই হয় না”।
No comments:
Post a Comment