অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং

প্রাপ্তিস্থান

দ্বিমিক প্রকাশনী
৩৭ নর্থ ব্রুক হল রোড, বাংলাবাজার, ঢাকা
কনকর্ড এম্পোরিয়াম, ২৫৩–২৫৪ এলিফ্যান্ট রোড, কাঁটাবন, ঢাকা।
অনলাইন এবং ফেসবুকে সারাদেশে হোম ডেলিভারি
ফোন: ০১৭০৭ ৯৬ ০৩ ৭২ (যোগাযোগ ও বিকাশ)

রকমারি ডট কম, ফোন: ১৬২৯৭
দারাজ ডট কম ডট বিডি, ফোন: ১৬৪৯২

ঢাকা
হক লাইব্রেরী, নীলক্ষেত, ঢাকা, ফোন: ০১৮২০-১৫৭১৮১
মানিক লাইব্রেরী, নীলক্ষেত, ঢাকা, ফোন: ০১৭৩৫-৭৪২৯০৮
রানা বুক পাবলিশার্স, নীলক্ষেত, ঢাকা, ফোন: ০১৬২৩-০৫৮৪২৮
বাতিঘর ঢাকা, বিশ্বসাহিত্য কেন্দ্র, বাংলামটর।

চট্টগ্রাম
বাতিঘর, প্রেস ক্লাব ভবন, জামালখান রোড, চট্টগ্রাম।

বরিশাল
বুক ভিলা, বিবিরপুকুর পাড়।

রাজশাহী
বুক পয়েন্ট, সোনাদীঘির মোড়, রাজশাহী।


লেখকের কথা

এই বইয়ের মূল উদ্দেশ্য হলো অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং এবং কোড করার সময় এর বাস্তব প্রয়োগ হাতে-কলমে শেখানো। Object Oriented Programming-এর প্রতিটি শব্দের আদ্যক্ষর নিয়ে সংক্ষেপে একে OOP বলে, যাকে আমরা বাংলায় লিখব ওওপি। বইয়ের কোডগুলো সি শার্প (C#)-এ লেখা। আপনি যেহেতু প্রোগ্রামিংয়ের বেসিক জানেন, তাই আমরা বেসিক প্রোগ্রামিং নিয়ে তেমন আলোচনা করব না। তবে সি শার্পের সিনট্যাক্স (Syntax) নিয়ে কিছুটা আলোচনা থাকবে। আর বাকি সব আলোচনা হবে ওওপির ওপর।

কোড লেখার জন্য আমরা ভিজুয়াল স্টুডিও 2019 ব্যবহার করেছি। তবে আপনি ভিজুয়াল স্টুডিওর অন্য কোনো ভার্শন কিংবা অন্য কোনো আইডিই (IDE) ব্যবহার করতে পারেন।

কাদের জন্য এই বই

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

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

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

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

এই বই পড়তে কী কী জানা থাকতে হবে

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

কোডগুলো অনুশীলন করার জন্য কী কী সফটওয়্যার লাগবে

এই বইয়ের সব কোড ভিজুয়াল স্টুডিও 2019-এ লেখা। আপনারা চাইলে মাইক্রোসফটের ওয়েবসাইট (https://visualstudio.microsoft.com/vs/community) থেকে ভিজুয়াল স্টুডিও 2019 ডাউনলোড করে আপনার কম্পিউটারে ইনস্টল করে নিতে পারেন। তবে আপনি চাইলে ভিজুয়াল স্টুডিওর যেকোনো ভার্শন ব্যবহার করতে পারেন।

সোর্স কোডগুলো কোথায় পাবেন?

এই বইয়ের পাতায় পাতায় কোডের ছড়াছড়ি। কিন্তু আইডিইতে কোড দেখা, কিছু পরিবর্তন করা, কোড রান কিংবা ডিবাগ করার অনুভূতি কখনই বইয়ের পাতায় পাওয়া যায় না। এজন্য এই বইয়ে আলোচিত প্রায় সকল কোড (উদাহরণ এবং অনুশীলনী) https://github.com/tiemoon/sourcecode-oopusingcsharp-এ রাখা আছে।

বইটি যেভাবে পড়বেন

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

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

সূচিপত্র

  • লেখক পরিচিতি
  • লেখকের কথা
  • অধ্যায় ১ – সি শার্পের প্রাথমিক ধারণা
    • হ্যালো ওয়ার্ল্ড প্রোগ্রাম
    • উইন্ডোজ ফরম অ্যাপ্লিকেশন
    • ভ্যারিয়েবল ও ডেটা টাইপ
    • ডিবাগিং (Debugging)
    • কন্ডিশন (If-then-else)
    • লুপ
    • মেথড (Method)
    • উইন্ডোজ ফরমের কয়েকটি ইউআই (UI) কনট্রোল
    • অ্যারে (Array)
    • এক্সেপশন (Exception)
    • ডেটা স্ট্রাকচার : লিস্ট, হ্যাশ-সেট, ডিকশনারি
  • অধ্যায় ২ – ইউজার-ডিফাইন্ড টাইপ
    • ইউজার-ডিফাইন্ড টাইপ তৈরি এবং ব্যবহার
    • মেথড লিখুন ইউজার-ডিফাইন্ড টাইপের ভেতর
    • অবজেক্ট মেমোরিতে কীভাবে থাকে?
    • ভ্যালু টাইপ বনাম রেফারেন্স টাইপ
    • ভ্যালু টাইপের রেফারেন্স কীভাবে পাঠাতে হয়
  • অধ্যায় ৩ – অবজেক্ট-ওরিয়েন্টেড চিন্তা ও কোড
    • ওওপি চিন্তার উপায়
    • ক্লাস কী?
    • অবজেক্ট কী?
    • ফিল্ড কী?
    • মেথড কী?
    • ভ্যারিয়েবল কী?
    • ক্লাস ডায়াগ্রাম
  • অধ্যায় ৪ – ওওপির কিছু ধারণা
    • ভালো ডিজাইন বনাম দুর্বল ডিজাইন
    • ডেটা হাইডিং, প্রপার্টি এবং অটো প্রপার্টি
    • মেথড ওভারলোডিং (Method overloading)
    • কনস্ট্রাক্টর (Constructor)
    • কনস্ট্রাক্টর ওভারলোড (Constructor Overload)
    • একটি ক্লাসের একাধিক অবজেক্ট নিয়ে কাজ
    • স্ট্যাটিক (Static) মেথড ও ক্লাস
  • অধ্যায় ৫ – অ্যাসোসিয়েশন রিলেশনশিপ
    • ইউজার-ডিফাইন্ড টাইপ কোথায় কোথায় রাখা যায়?
    • অ্যাসোসিয়েশন রিলেশনশিপ কী?
    • ওয়ান-টু-ম্যানি অ্যাসোসিয়েশন রিলেশনশিপ
    • কার্ডিনালিটি যখন ম্যানি-টু-ম্যানি
    • ইউজেস রিলেশনশিপ (Uses Relationship)
  • অধ্যায় ৬ – ইনহেরিটেন্স রিলেশনশিপ
    • ইনহেরিটেন্স রিলেশনশিপ (Inheritance Relationship) কী?
    • ইনহেরিটেন্স রিলেশনশিপ কখন করব?
    • আপকাস্টিং ও ডাউনকাস্টিং (Upcasting and Downcasting)
    • মেথড ওভাররাইডিং (Method Overriding)
    • পলিমরফিজম (Polymorphism)
    • জেনেরিকস (Generics)
    • অ্যাবস্ট্র্যাক্ট (Abstract) ক্লাস ও মেথড
    • ইনহেরিটেন্সের ভুল প্রয়োগ
  • অধ্যায় ৭ – ইন্টারফেস
    • ইন্টারফেস দেখতে কেমন ও কীভাবে ব্যবহার করে
    • বিল্ট-ইন ইন্টারফেস IComparable-এর ইমপ্লিমেন্টেশন
    • নিজেদের ইন্টারফেসের মাধ্যমে একটি ডিজাইন সমস্যার সমাধান
  • অধ্যায় ৮ – ওওপি ডিজাইনের কিছু ভালো তরিকা
  • অধ্যায় ৯ – একটি ছোটো প্রজেক্ট

বইয়ের বিবরণী

শিরোনামঅবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং
লেখকজহিরুল আলম তাইমুন
ক্যাটাগরিকম্পিউটার প্রোগ্রামিং
ISBN978-984-8042-16-8
সংস্করণপ্রথম প্রকাশ, মার্চ ২০২১
পৃষ্ঠাসংখ্যা২০৮
কভার মূল্য৩৮০/- টাকা

লেখক পরিচিতি

দেশের আইটি শিল্পে এবং সফটওয়্যার ইঞ্জিনিয়ারদের কাছে ওওপির প্রশিক্ষক হিসেবে পরিচিত জহিরুল আলম তাইমুন পড়াশোনা করেছেন শাহজালাল বিজ্ঞান ও প্রযুক্তি বিশ্ববিদ্যালয়ের কম্পিউটার বিজ্ঞান বিভাগে। ২য় বর্ষ থেকেই সিলেটের একটি স্থানীয় সফটওয়্যার প্রতিষ্ঠানে সফটওয়্যার তৈরির কাজে যুক্ত হন। এরপর ২০০৩ থেকে ২০০৭ সাল পর্যন্ত পূর্ণকালীন সফটওয়্যার ইঞ্জিনিয়ার হিসেবে কয়েকটি প্রতিষ্ঠানে কাজ করেন।

প্রফেশনাল প্রশিক্ষক হিসেবে ওনার যাত্রা শুরু হয় ২০০৮ সালে, বেসিসে ওওপি ট্রেনিং প্রোগ্রামের মধ্য দিয়ে। সেই থেকে আজ অবধি বেসিস, বিআইটিএম, নার্ড ক্যাসলসহ দেশের বিভিন্ন বিশ্ববিদ্যালয়, কলেজ, পলিটেকনিক, সরকারি প্রজেক্ট, কর্পোরেট প্রতিষ্ঠান এবং সফটওয়্যার কোম্পানির মাধ্যমে উনি প্রায় ১৫,০০০ সফটওয়্যার ইঞ্জিনিয়ারকে প্রশিক্ষণ প্রদান করেন।

২০১৩ সালে নার্ড ক্যাসল নামে একটি সফটওয়্যার ফার্ম ও পরামর্শক কোম্পানি প্রতিষ্ঠা করেন এবং এর পরিচালনার দায়িত্ব গ্রহণ করেন। বর্তমানে উনি সরকারের আইসিটি বিভাগের অধীন এলআইসিটি প্রকল্পে ‘ইমারজিং টেকনোলোজি স্পেশালিস্ট’ হিসেবে কর্মরত আছেন। 

পেশাগত জীবনে উনি আপস্কিলিং, রিস্কিলিং, প্রডাক্ট ডেভেলপমেন্ট, টেক স্টার্টআপ, সফটওয়্যার ডিজাইন, আর্কিটেকচার – এসব নিয়ে কাজ করতে পছন্দ করেন।

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

Comments

comments