Header Ads

Physics -11 (Chapter-05)  Part-1

আমি কি প্রোগ্রামিং পারব? আমার দ্বারা কি প্রোগ্রামিং সম্ভব?


প্রোগ্রামিং শুরুর আগে

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

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


( 2 ) বিভিন্ন প্রকার প্রোগ্রামিং ল্যাংগুয়েজঃ(Various Programming Languages)

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

অনেক প্রোগ্রামিং ভাষা বা ল্যাঙ্গুয়েজ রয়েছে। তাদের মধ্যে...
১) সি ল্যাঙ্গুয়েজ (C)
২) সি++ ল্যাঙ্গুয়েজ (C++)
৩) জাভা (Java)
৪) পার্ল (Perl)
৫) পাইথন (Python)
৬) সি # ডট নেট (C# .NET)
৭) এ এস পি (ASP)
এইগুলা ই জনপ্রিয় এবং সি ল্যাংগুয়েজ টা হচ্ছে প্রোগ্রামিং ল্যাঙ্গুয়েজ এর বেসিক। তাই একে মাদার অভ প্রোগ্রামিং ল্যাঙ্গুয়েজ বলে । কেউ যদি প্রোগ্রামিং শিখতে চায় তবে তাকে সি ল্যাঙ্গুয়েজ দিয়ে শুরু করাটাই ভালো হবে।

( 3 )  প্রথম কোন প্রোগ্রামিং ভাষাটি শিখবো ? 
উত্তর:- সি
তোমরা কম্পিউটার ব্যবহার করে অভ্যস্ত এবং প্রোগ্রামিং জিনিসটার সঙ্গে সম্পূর্ণ অপরিচিত। আর সি ল্যাঙ্গুয়েজ ব্যবহার করার পেছনে কারণ হচ্ছে, এটি বেশ পুরোনো হলেও অত্যন্ত শক্তিশালী ও জনপ্রিয় ল্যাঙ্গুয়েজ। প্রোগ্রামিংয়ের মৌলিক জিনিসগুলো বোঝার জন্য সি ভাষা অত্যন্ত সহায়ক। আর জনপ্রিয় সব প্রোগ্রামিং প্রতিযোগিতায় যে অল্প কয়েকটি ল্যাঙ্গুয়েজ ব্যবহার করা যায়, তার মধ্যে সি অন্যতম। 
সি হল অপারেটিং সিস্টেম লেখার জন্য সবচেয়ে বেশী ব্যবহৃত প্রোগ্রামিং ভাষা। UNIX সি ভাষায় লেখা প্রথম অপারেটিং সিস্টেম। উত্তরকালের Microsoft উইন্ডোজ , ম্যাক ও এস এক্স , নু/লিনাক্স সবগুলোই সি প্রোগ্রামিং ভাষায় লেখা। সি শুধু অপারেটিং সিস্টেমের ভাষাই নয়, বর্তমানকালে জনপ্রিয় প্রায় সকল প্রোগ্রামিং ভাষার প্রেরণা সি প্রোগ্রামিং ভাষা। প্রকৃতপক্ষে পার্ল, পিএইচপি, পাইথন, রুবি প্রত্যেকটা ভাষাই সি তে লেখা। ধরুন আপনি স্প্যানিশ, ইটালিয়ান , ফ্রেঞ্চ বা পর্তুগিজ ভাষা শিখতে চাচ্ছেন। তার আগে ল্যাটিন শেখা কি আপনার কাজে আসবে নাকি না? যেহেতু ল্যাটিন ভাষা থেকেই এসকল ভাষার উৎপত্তি। সি শেখা আপনাকে সি ভাষায় তৈরি করা পুরো প্রোগ্রামিং ভাষার পরিবারকে বুঝতে সাহায্য করবে – আপনাকে দেবে স্বাধীনতা। মার্টিন রিটির তৈরিকৃত BCPL (বেসিক সিপিএল) থেকে প্রোগ্রামিং ভাষা খেকে B প্রোগামিং ভাষা ডেভেলপ করা হয় এবং সেখান থেকে ১৯৭০ সালে আমেরিকার বেল ল্যাবরেটরিতে ডেনিস রিচি নামক প্রোগ্রামার এই C ভাষাটি ডেভেলপ করেন। ১৯৮৩ সালে আমেরিকার National Standard Ins সে সময়ে প্রচলিত ইউনিক্স সি এর জন্যে মান (Standard) নির্ধারণ করে দেন। সি প্রোগ্রামিং এর ক্ষেত্রে অনেকগুলো পথ রয়েছে। যেমন: আনসি সি, বোরল্যান্ড সি, টার্বো সি, Microsoft সি ইত্যাদি। এগুলোর মধ্যে ১ম টি হলো Standard এবং বাকিরা এই Standard অনুসরণ করে। আবার এরা প্রত্যেকে এক একটি কম্পাইলার।
( 4 )  প্রোগ্রামার হতে হলে খুব ক্রিয়েটিভ হতে হয় ?
উত্তর:- একদম বাজে কথা।
কারণ:- প্রোগ্রামিং শিখতে গেলে, যে দুইটা জিনিস লাগে তা হলো নিষ্ঠা, আর সততা। জিদ ধরে লেগে থাকতে হয়। বেশিরভাগ শিক্ষার্থী যাদের দেখে মনে হয়, অনেক চেষ্টা করেও প্রোগ্রামিং ঠিক মত আয়ত্ব করতে পারলো না, তারা স্রেফ নিজের কাছে অসৎ। তাই পারেনি। হয়তো কিছু একটা ধারণা পুরোপুরি পরিষ্কার হয়নি কিন্তু সে এগিয়ে গেল পরের টপিকে। এবং নিজেকে মিথ্যা প্রবোধ দিলো যে সে আগের জিনিসটা বুঝেছে। ফলে পরে উচ্চতর কোনো সমস্যা সমাধান করতে গিয়ে সে আটকে যাবে। হয়তো সে বুঝবেও না যে, অতীতে যে মামুলি জিনিসটা সে উপেক্ষা করেছিলো, সেটার কারণেই সে আজ আটকে আছে। সে ভাববে, সে হয়তো যথেষ্ট ক্রিয়েটিভ নয়। 
( 5 )   প্রোগ্রামিং ভাষা শেখার সবচেয়ে উপযুক্ত বয়স কোনটা ?
উত্তর:-  গণিত, কম্পিউটার প্রোগ্রামিং, মিউজিক, জিমন্যাস্টিক্স এসব জিনিস যতো আগে থেকে শিখতে শুরু করা যায় ততোই ভালো। আন্তর্জাতিক প্রোগ্রামিং প্রতিযোগীতা, গণিত অলিম্পিয়াড বা অলিম্পিক এসবে যারা সেরাদের সেরা হয় তাদের বেশিরভাগই একেবারে ছোট থেকেই ওসব শিখতে শুরু করেছে। তবে প্রতিযোগীতামূলক ভাবে কিছু করা আর সৃষ্টিশীল কিছু করা এক কথা নয়। তাই অনেক পরে যারা শেখে, তারাও অভাবনীয় সব সৃষ্টিশীল কাজ করতে পারে এবং অহরহ করছে তাদের প্রোগ্রামিং স্কিল এর সাহায্যে। এমনকি ষাটোর্ধ বা পঞ্চাশোর্ধ কেউও চাইলে প্রোগ্রামিং শিখতে পারে। এ ধরনের কার্যক্রম তাদের ব্রেইনকে আরো অনেকদিন সক্রিয় রাখবে। এবং একটা কিশোর কম্পিউটার প্রোগ্রামিং শিখে যে আনন্দ পায়, সেই আনন্দটা সেও পেতে পারবেন ঐ বয়সেও।
( 6 )  প্রোগ্রামিং শিখে চাকরি পাবো কোথায় ?
উত্তর:- যে প্রোগ্রামিং জানে, সে চাকরী খোঁজে না। চাকরীই তাকে খোঁজে।
কারণ:- আপনি যে একাডেমিক ব্যাকগ্রাউন্ডেরই হন না কেন সৎ ভাবে চেষ্টা করলেন প্রোগ্রামিং শিখতে ফেলতে পারবেনই। এবং আজকাল, নিজেকে একজন সুযোগ্য প্রোগ্রামার প্রমাণ করার জন্য বড় কোনো বিশ্ববিদ্যালয়ের ডিগ্রি থাকার দরকার নেই। অনলাইনেই সেটা প্রমাণ করার হাজারটা উপায় আছে। এত এত বিশ্ববিদ্যালয় থেকে হাজার হাজার কম্পিউটার বিজ্ঞানে পাশ করা ছেলেমেয়েকে হয়তো বের হতে দেখুন। তাদের অনেকের মধ্যে চাকরী নিয়ে হতাশাও দেখা যায় প্রায়ই। তারাও যদি ঠিক ভাবে প্রোগ্রামিং শিখতো তাহলে এমন হতো না। কম্পিউটার বিজ্ঞান, কম্পিউটার ইঞ্জিনিয়ারিং এসব যারা পড়ে, তারা নানান রকম বিষয়ে ভালো গ্রেড পাওয়ার চাপে, প্রোগ্রামিং ঠিক মত শেখে না। প্রোগ্রামিংকেও অন্য আর দশটা বিষয়ের মত মনে করে। স্রেফ এই ভুলটা কাটিয়ে উঠতে পারলেই আমাদের দেশের আইটি ইন্ডাস্ট্রি অন্য যে কোনো দেশের সাথে পাল্লা দিতে পারতো।

( 7 )  সি শেখার জন্য কোন বই পড়বো ?
উত্তর:- ইংরেজীতে হার্বার্ট শিল্ডের টিচ ইয়োরসেল্ফ সি  বইটা দিয়ে শুরু করা যেতে পারেন। এ ছাড়া বাংলায় সুবিন ভাই এর বই , এবং অন্য আরো কিছু বই আছে। কয়েকটা ঘাটাঘাটি করে দেখুন কোনটা ভালো লাগে।

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

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

প্রোগ্রামিং শিখতে হলে গনিত চর্চা আর উন্নত চিন্তার কোন বিকল্প নেই। তাই, যেখানেই গনিতের কোন সমস্যা পাবে সেটা সমাধানের চেষ্টা করবে। পার আর না পার, সেটা খুব বড় কিছু না, চেষ্টা করতে করতে দেখবে, এক সময় খুব সহজেই বড় কোন সমস্যার সমাধান করে ফেলেছো।
( 11 ) আমি কি প্রোগ্রামিং পারব? আমার দ্বারা কি প্রোগ্রামিং সম্ভব?(Can i be a programmer)
কেন নয়? নিজেকেই প্রশ্ন করে দেখ, কেন তুমি পারবে না? 
তোমার যদি একটা কম্পিউটার থাকে, তাহলে তুমিও শিখতে পারবে প্রোগ্রামিং, শুধু একটু ধৈর্য আর সততা প্রয়োজন। বাংলা লেখার চমৎকার সফটওয়ার "অভ্র" এর নাম নিশ্চয়ই শুনেছ...
এটা কে তৈরী করেছিল জানো? একজন মেডিকেলের ছাত্র.........

No comments

Powered by Blogger.