প্রোগ্রামিং কি? কেন শিখবেন প্রোগ্রামিং?

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

প্রোগ্রামিং কি কেন শিখবেন প্রোগ্রামিং

কখনো কি ধরতে পেরেছেন এত সহজে কাজগুলো কিভাবে করতে পারছেন? এই সবই সম্ভব হচ্ছে প্রোগ্রামিংয়ের কারণে। মোবাইল, লিফট, কম্পিউটারে বিভিন্ন কাজের জন্য বিভিন্নভাবে প্রোগ্রামিং করা থাকে। যার কারণে আপনি বা আমি যখন যেটা মন চায় তখন সেটা নিমেষেই করতে পারি।

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

প্রোগ্রামিং কি?

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

প্রোগ্রামিং ল্যাঙ্গুয়েজ দুই ভাগে বিভক্ত, যথা - ক. লো লেভেলে ল্যাঙ্গুয়েজ, এবং খ. হাই লেভেল ল্যাঙ্গুয়েজ। লো লেভেল ল্যাঙ্গুয়েজ কম্পিউটার সহজে বুঝতে পারে, আর হাই লেভেলটি প্রোগ্রামার বা ব্যবহারকারী সহজে বুঝতে পারে৷ 

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

বিভিন্ন ধরণের প্রোগ্রামিং ল্যাঙ্গুয়েজ রয়েছে। যেমন - জাভাস্ক্রিপ্ট, জাভা, সি, সি++, সি#, পাইথন, স্কালা, এলম, রুবি, সুইফট, গোল্যাঙ, এসকিউএল, ডার্ট ইত্যাদি৷ একেকটা একেক ধরণের প্রোগ্রামিংয়ে ব্যবহৃত হয়। যেমন অ্যাপল-সংক্রান্ত কাজের জন্য সুইফট একটি উপযোগী প্লাটফর্ম। আবার জাভা এবং জাভাস্ক্রিপ্ট ছাড়া সফটওয়্যার ডেভেলপমেন্ট করা অসম্ভব। 

কেন শিখবেন প্রোগ্রামিং? 

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

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

তাছাড়া প্রোগ্রামিং শিখে নিজেই নিজেই ভাগ্য বদলাতে পারবেন অনায়াসেই। ধরুন আপনি কয়েকজন বন্ধুর সাথে মিলে একটা অনলাইন ব্যবসা দাঁড় করালেন। আপনি প্রোগ্রামিং জানলে ব্যবসার জন্য একটা অ্যাপ তৈরি করলেন। সেই অ্যাপ দিয়ে সরাসরি ক্লায়েন্টের সাথে কথাবার্তা, কেনাবেচা করতে পারবেন, দারুণ না? আবার একটা ই-লার্নিং অ্যাপ বানিয়ে ছোট বাচ্চাদের ইংরেজি শিখাতে পারবেন। 

মোট কথা, প্রোগ্রামিং শেখা কোন সময় নষ্টের কাজ না৷ উন্নত দেশের বাচ্চাদের ছোটবেলা থেকেই প্রোগ্রামিং শিখিয়ে দেয়া হয় বলেই বড় হয়ে তারা সেই জ্ঞানের সদ্ব্যবহার করতে পারে। কিন্তু আমাদের দেশে সেটা হয় না। প্রোগ্রামিং একটু কঠিন হলেও দুই-তিন বছর একটু ধৈর্য্য ধরে শিখতে পারলে কম্পিউটারের অনেক সমস্যা সমাধান নিজেই করতে পারবেন৷ তাছাড়া ব্যক্তিগত বা সামাজিক কাজেও এই জ্ঞান কাজে লাগাতে পারবেন। 

সি প্রোগ্রামিং 

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

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

তাই ১৯৭২ সালে জনসন এবং রিচি সি এর ডেভেলপমেন্টের কাজ শুরু করেন। তখন তারা ইউনিক্সের বিশাল অংশ সি ল্যাঙ্গুয়েজে পুনরায় লিখেন এবং সফলতা লাভ করেন। পরে ১৯৭৩ সালে ইউনিক্স প্লাটফর্মে সি যথেষ্ট শক্তিশালী প্রোগ্রামিং ল্যাঙ্গুয়েজ হিসেবে ব্যবহৃত হয়েছিল। 

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

নানা ধরণের সফটওয়্যার, হার্ডওয়্যার ডিভাইস, ত্রিমাত্রিক মুভি, ফটোশপ অ্যাপ্লিকেশন তৈরিতে সি প্রোগ্রামিং ব্যবহৃত হয়। বর্তমানে প্রোগ্রামাররা সি প্রোগ্রামিংয়ের তৃতীয় জেনারেশন ব্যবহার করছে।

সি প্রোগ্রামিংয়ের সুবিধা

★ সি প্রোগ্রামিং সহজে বহনযোগ্য। একটি অপারেটিং সিস্টেমে লেখা কোডগুলো কোন ধরণের পরিবর্তন ছাড়াই অন্য সিস্টেমে ব্যবহার ও কম্পাইল করা যায়।

★ এর সিনট্যাক্স সহজে অনুসরণ করা যায়।

★ এই প্রোগ্রামিং শিখলে এটার কার্যক্রম জানার পাশাপাশি কম্পিউটারের কার্যপ্রণালী সম্পর্কেও বিস্তারিত জানা যায়।

★ এটার মাধ্যমে সরাসরি কম্পিউটার হার্ডওয়্যারের মাধ্যমে প্রোগ্রামিং করা যায়। এই সুবিধাটা অধিকাংশ হাই-লেভেল ল্যাঙ্গুয়েজে পাওয়া যায় না।

★ সি প্রোগ্রামিং ভাষার আরেকটা সুবিধা হল এটা স্ট্যাটিক্যালি টাইপড। ডাইনামিক্যালি টাইপের চাইতে স্ট্যাটিক্যালি টাইপড ভাষা দ্রুততর হয়। হাই লেভেল ল্যাঙ্গুয়েজগুলো ডাইনামিক টাইপের হয়। 

★ এটা নিজের বৈশিষ্ট্য নিজেই বাড়াতে পারে।

★ একটা কাজ সম্পন্ন করার জন্য সি প্রোগ্রামে এক বা একাধিক ফাংশন থাকে, যা কাজটা কম সময়ে সহজে করার ব্যবস্থা করে দেয়। 

★ এটা একটা স্ট্রাকচারড প্রোগ্রামিং ভাষা। এখানে সহজে বোঝার জন্য একটা প্রোগ্রামকে কয়েকটা অংশে বা ব্লকে ভাগ করে রাখা যায়।

★ এটি সব অপারেটিং সিস্টেমেই ব্যবহার করা যায়।

★ প্রোগ্রামিং শুরু করার জন্য সি প্রোগ্রামিং হচ্ছে সবচেয়ে উপযোগী এবং সুন্দর ভাষা। অর্থাৎ প্রোগ্রামিংয়ে হাতে-খড়ি করতেই সি প্রোগ্রামিং দিয়েই।

পাইথন প্রোগ্রামিং

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

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

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

পাইথন প্রোগ্রামিংয়ের সুবিধা

★ এটা একটি মাল্টিপ্যারাডাইম প্রোগ্রামিং ল্যাঙ্গুয়েজ। অর্থাৎ কয়েক ধরণের প্রোগ্রামিং প্যারাডাইম সমর্থন করে।

★ যেকোন অপারেটিং সিস্টেমে পাইথন খুব সহজে রান করা যায়। শুধু শুরু করার আগে সেটিংসে সামান্য কিছু পরিবর্তন করতে হয়।

★ এটাতে খুব দ্রুত এবং সহজে কোডিং ও ডিবাগিং করা যায়। 

★ নতুন কোন অ্যাপ্লিকেশন পাইথন দিয়ে তাড়াতাড়ি ডেভেলপ করা যায়।

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

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

★ ব্যক্তিগত কাজ বা ব্যবসায়ীক কাজ সবটাতেই পাইথন ব্যবহার করা যায়।

★ পাইথনের রয়েছে চমৎকার ডেটা কাঠামো (লিস্ট, ডিকশনারি, সেট) এবং ফ্রেমওয়ার্ক (জ্যাঙ্গো, ফ্লাস্ক)।

★ এমনিতে সি প্রোগ্রামিংয়ের চাইতে সহজতর হলেও যদি পাইথনের সাথে সি-এর মিশেল ঘটানো যায়, তাহলে দারুণ শক্তিশালী প্রোগ্রামিং ল্যাঙ্গুয়েজ বানানো সম্ভব।

প্রোগ্রামিং এর বই

বাজারে প্রোগ্রামিং শেখার জন্য অনেক বই আছে। তবে আপনি যদি সহজে মজার ছলে প্রোগ্রামিং শিখতে চান, তাহলে ঝংকার মাহবুবের প্রোগ্রামিং সিরিজটি আপনার জন্য। এই সিরিজে আছে ৩টি বই, যেখানে প্রোগ্রামিংয়ের মত কঠিন বিষয়কে তিনি পানির মত স্বচ্ছ করে তুলে ধরেছেন৷ 

তুখোড় সাইন্সের স্টুডেন্ট না হলে প্রোগ্রামিং শেখা যাবে না - এই ভ্রান্ত ধারণাকেই তিনি সমূলে উৎপাটন করেছেন এই প্রোগ্রামিং সিরিজের মাধ্যমে। এই সিরিজটি পড়লে একদম গোবেচারা আপনিও হয়ে উঠবেন প্রোগ্রামিংয়ের বস। চলুন দেখে নেয়া যাক বই তিনটিতে কি কি আছে।

১. হাবলুদের জন্য প্রোগ্রামিং 

প্রোগ্রামিংয়ের বেসিক কনসেপ্ট সহজে বোঝার জন্য একটি সহায়ক বই। এই বইতে মজার ছলে সব প্রোগ্রামিং ল্যাঙ্গুয়েজের বেসিক ধারণা দেওয়া হয়েছে। 

২. প্রোগ্রামিংয়ের বলদ টু বস 

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

৩. প্রোগ্রামিংয়ের চৌদ্দগোষ্ঠী 

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

তামিম শাহরিয়ার সুবিনের প্রোগ্রামিং বইগুলোও বিগিনারদের জন্য ভাল। তার বইতে প্রোগ্রামিং গাইডলাইন, পাইথনের যাবতীয় তথ্য ইত্যাদি বাংলা ভাষায় খুব সহজ সাবলীলভাবে বর্ণনা করা হয়েছে। 

১. কম্পিউটার প্রোগ্রামিং (৩ খন্ড) 

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

২. পাইথন দিয়ে প্রোগ্রামিং শেখা (৩ খন্ড)

পাইথনের উপর লেখা এযাবৎকালের সবচাইতে সহজ ও জনপ্রিয় বই। তিন খন্ডের বই শেষ করতে পারলে পাইথনে পূর্ণ জ্ঞান অর্জন করা সম্ভব। 

পরিশেষে

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

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


Next Post Previous Post
No Comment
Add Comment
comment url