জাভা প্রোগ্রামিং
প্রাপ্তিস্থান
- দ্বিমিক প্রকাশনী
- গিয়াস গার্ডেন বুকস কমপ্লেক্স, ৩৭ নর্থ ব্রুক হল রোড, বাংলাবাজার, ঢাকা
- কনকর্ড এম্পোরিয়াম, ২৫৩-২৫৪ এলিফ্যান্ট রোড, কাঁটাবন, ঢাকা ফোন : 017 0796 0372
- রকমারি ডট কম
- আমাজন কিন্ডল
লেখকের কথা
প্রথমেই মহান আল্লাহ তাআলার নিকট বিশেষ শুকরিয়া জ্ঞাপন করছি। তাঁর অশেষ মেহেরবানি ও অফুরন্ত রহমতের কারণেই বইটির দ্বিতীয় সংস্করণের কাজ শেষ করতে পেরেছি। সমস্ত প্রশংসা শুধু আল্লাহরই জন্য।
এটি আমার প্রথম প্রকাশিত বই, তাই বইটির প্রতি আমার আবেগও খানিকটা বেশি। এই বই যে পাঠকপ্রিয়তা ও ভালোবাসা পেয়েছে, তাতে আমি বেশ মুগ্ধও হয়েছি। এই মুগ্ধতাটুকু জিইয়ে রাখার জন্য প্রথম সংস্করণের সঙ্গে কাঠামোগত পরিবর্তন না করেও বেশ কিছু উল্লেখযোগ্য পরিবর্তন ও সংযোজন করেছি, যেমন– ইক্লিপস (Eclipse)-এর পরিবর্তে পাঠককে একটি নতুন ও আধুনিক আইডিইর সঙ্গে পরিচয় করিয়ে দিতে ইনটেলিজে আইডিয়া (IntelliJ IDEA) ব্যবহার করেছি। আগের বইটি লেখা হয়েছিল জাভা ৮-এর ওপর। এই বইটি লেখা হয়েছে জাভা ১৭-এর ওপর। গত চার বছরে জাভাতে বেশ কিছু গুরুত্বপূর্ণ সংযোজন হয়েছে, যার কিছু কিছু এই বইয়ে যুক্ত করেছি। এ ছাড়া এই বইতে অনুশীলনীর প্রতি অনেক বেশি গুরুত্ব দিয়েছি; বিশেষ করে শুরুর দিকের অধ্যায়গুলোতে। আমরা শুধু বই পড়ে কোনো বিষয়ে দক্ষতা অর্জন করতে পারি না। কোনো বিষয়ে দক্ষতা অর্জন করতে হলে হাতে-কলমে অনুশীলন করতে হয়। এই অনুশীলন হতে হয় নিয়মিত। আমাদের মস্তিষ্ক মূলত একটি জৈবিক লার্নিং মেশিন। প্রতিনিয়তই আমরা নানা রকম বিষয় দেখছি এবং শিখছি। কিন্তু এর কতটুকুই আমরা ধরে রাখতে পারি? সবটুকু আমরা পারি না। এর কারণ, মস্তিষ্ক একই সঙ্গে শক্তি সংরক্ষণশীল মেশিনও বটে। কোনো একটি নতুন বিষয় শিখতে হলে মস্তিষ্কের নতুন একটি নিউরাল প্যাটার্ন তৈরি করতে হয়। এই কাজের জন্য শক্তির প্রয়োজন হয়। কোনো বিষয় খুব প্রয়োজনীয় না মনে হলে, মস্তিষ্ক সেই বিষটির জন্য শক্তি ব্যবহার করতে চায় না। কোনো একটি অনুশীলন এক দিন বা একবার করার পর দীর্ঘ সময়ের বিরতি দিলে মস্তিষ্কের কাছে সেই কাজের গুরুত্ব কমে যায়। যার ফলে এই বিষয়টি নিয়ে মস্তিষ্ক আর বেশি কাজ করে না। এই একই কাজটি অনেক দিন পর যখন আবার করা চেষ্টা করি, তখন আমাদের কাছে কঠিন মনে হয় কিংবা মনে থাকে না। কিন্তু নিয়মিত একটি কাজ অল্প অল্প করলে, মস্তিষ্কের কাছে কাজটির গুরুত্ব বাড়তে থাকে, এবং এটি নিয়ে মস্তিষ্ক তখন নিউরাল পাথওয়ে তৈরি করার কাজটি করতে থাকে। আর এতেই অল্প দিনের মধ্যেই বিষয়টি আমাদের কাছে ধীরে ধীরে সহজ হয়ে ওঠে। তাই পাঠকের প্রতি পরামর্শ থাকবে বইটির অনুশীলনীগুলো নিয়ে নিয়মিত কাজ করা। অনেক কিছু হয়তো শুরুতে বুঝতে অসুবিধা হবে, কিন্তু দীর্ঘদিন নিয়মিত অনুশীলনে করতে থাকলে যেকোনো বিষয় আয়ত্তের মধ্যে চলে আসে।
এই বই একবার কিংবা দুই বার পড়ে হয়তো জাভা প্রোগ্রামিং ভাষা সম্পর্কে আমাদের কিছুটা জ্ঞান অর্জন হবে, তবে শুধু জ্ঞান অর্জনই একমাত্র উদ্দেশ্য নয়; আমাদের মূল উদ্দেশ্য হতে হবে দক্ষতা অর্জন করা। এই প্রোগ্রামিংয়ের বিষয়গুলো বারবার অনুশীলনের মাধ্যমে এমনভাবে আয়ত্তের মধ্যে নিয়ে আসতে হয়, যাতে আমরা যখন বাস্তব জগতের কোনো একটি সমস্যা সমাধান করব, তখন বাস্তব জগতের সমস্যাটিকে কীভাবে প্রোগ্রামিং ভাষায় রূপান্তর করব, তা আমাদের কাছে যেন বাধা না হয়ে দাঁড়ায়। বরং আমরা বাস্তব জগতের সমস্যাটি নিয়ে বেশি চিন্তিত হব এবং সুন্দর সমাধানের জন্য সময় ব্যয় করব। একটি লুপ কীভাবে লিখতে হয়, কোন ডেটা সংরক্ষণের জন্য কোন ধরনের কালেকশন ব্যবহার করব, আইডিই কিংবা টার্মিনালে কীভাবে একটি কমান্ড চালাব তা নিয়ে আমাদের ধন্দের মধ্যে থাকা যাবে না, বরং এগুলোকে অনেকটা মাসল মেমোরিতে নিয়ে আসতে হবে। আর এর জন্য যে দুটি জিনিস প্রয়োজন তা হলো : নিয়মিত হওয়া এবং বেশি বেশি অনুশীলন করা। আশা করি, এই বইটি পাঠকদের জাভা প্রোগ্রামিংয়ের ওপর দক্ষতা অর্জনের লক্ষ্যে অনুশীলন করতে সহায়ক এবং একটি সুন্দর পাথেয় হবে।
মানুষ ভুলত্রুটি ঊর্ধ্বে নয়। অনেক বার রিভিউয়ের পরও কিছু ভুলত্রুটি হয়তো থেকে গেছে। আশা করছি পাঠক ক্ষমাসুন্দর দৃষ্টিতে দেখবেন। যেকোনো পরামর্শ, অনুরোধ কিংবা প্রশ্নের জন্য নিচে একটি ইমেইল অ্যাড্রেস দিয়ে দিয়ে দিলাম।
সবার জন্য শুভ কামনা রইল।
আ ন ম বজলুর রহমান
টরন্টো, কানাডাওয়েবসাইট : http://www.bazlur.com
টুইটার : https://twitter.com/bazlur_rahman
ইমেইল : contact@bazlur.com
ভূমিকা
আ ন ম বজলুর রহমান রোকনের বই জাভা প্রোগ্রামিং ইতিমধ্যেই প্রোগ্রামিংয়ে উৎসাহী বাংলাভাষী ছাত্র ও পেশাজীবী মহলে আদৃত হয়েছে। ২০১৭ সালে এর প্রথম সংস্করণ মুদ্রিত হওয়া থেকে শুরু করে চার বছর ধরে নানা সময়ে বইটি রকমারি ডট কমের বহুল বিক্রীত বইয়ের তালিকায় শীর্ষস্থানে ছিল। বাংলাভাষী পাঠকের কাছে প্রোগ্রামিং ও প্রযুক্তিকে নিয়ে আসতে এর আগে নানা প্রকাশনাসংস্থা থেকে বিভিন্ন বইপত্র প্রকাশিত হয়েছে বটে, কিন্তু জাভা প্রোগ্রামিং বিষয়টিকে বাংলাভাষী পাঠকের কাছে তুলে ধরতে এই বই যে একটি নতুন মাইলফলক স্থাপন করেছে, সে কথা বলা বাহুল্য।
বইটি মূলত কলেজ-বিশ্ববিদ্যালয়ের ছাত্রছাত্রীদের প্রথম প্রোগ্রামিং ভাষা শেখার কথা মাথায় রেখে লেখা। ইতিমধ্যে জাভা প্রোগ্রামিংয়ের উচ্চতর বিষয়াদি নিয়ে রোকনের জাভা থ্রেড প্রোগ্রামিং, অ্যাডভান্সড জাভা প্রোগ্রামিং ও জাভা ওয়েব প্রোগ্রামিং শীর্ষক বই প্রকাশিত হয়েছে। যেসব পাঠক জাভা প্রোগ্রামিংয়ের প্রথম প্রকাশ পড়ে উপকৃত হয়েছেন, তাঁদের অনেকেই সেসব বইতে আগ্রহী হয়েছেন বলে আমাকে জানিয়েছেন।
গত চার বছরে জাভা আরো বেশ খানিকটা পথ এগিয়েছে, ভাষায় বেশ কিছু পরিবর্তন এসেছে। সেই নিরিখে জাভা প্রোগ্রামিং-এর দ্বিতীয় সংস্করণ প্রকাশকে বেশ সময়োপযোগী উদ্যোগ বলে মনে করি। নতুন সংস্করণে প্রোগ্রামিংয়ের ব্যবহারের পরিপ্রেক্ষিত নিয়ে একটি অধ্যায় সংযোজিত হয়েছে। বইটির বেশ কিছু অংশ নতুন করে লেখা হয়েছে। এর বাইরে বিভিন্ন অধ্যায়ের আলোচনার সঙ্গে নতুন উদাহরণ যুক্ত করা হয়েছে। আমি নিশ্চিত, পাঠকের জন্য প্রোগ্রামিং বুঝতে সেগুলো সহায়ক হবে। বিভিন্ন অধ্যায়ের অনুশীলনীর কলেবর বৃদ্ধি করা হয়েছে, চর্চা করার জন্য কিছু প্রোগ্রামিং সমস্যা দেওয়া হয়েছে। প্রথম সংস্করণের ভূমিকা লেখার সময়ে অনুশীলনীর সীমাবদ্ধতাকে এই বইয়ের মৌলিক সীমাবদ্ধতা হিসেবে তুলে ধরেছিলাম। প্রকাশক ও লেখক বিষয়টি আমলে নিয়ে অনুশীলনী যুক্ত করায় তাঁদের অভিনন্দন।
শিক্ষা ও শিক্ষা বিতরণ একটি ক্রমাগত উন্নয়ন প্রক্রিয়া। আমি নিশ্চিত, রোকন ও দ্বিমিক তাঁদের জাভা প্রোগ্রামিং-এর দ্বিতীয় সংস্করণ প্রকাশ করেই থেমে যাবেন না। বইতে দেওয়া উদাহরণ ও অনুশীলনীর সমস্যাগুলোর আরো গুণগত উন্নতিসাধন সম্ভব, তৃতীয় সংস্করণের দিকে তাকিয়ে থাকব সে উন্নতির জন্য। তবে আমি আশা করব এই বইয়ের অনুশীলনীর সমস্যাগুলোর সমাধান কোনো ওয়েবসাইটের মাধ্যমে অনতিবিলম্বে পাঠকের কাছে পৌঁছানোর ব্যবস্থা করবেন তাঁরা। ভালো কোড কীভাবে লিখতে হয়, তা শেখার জন্য ভালো প্রোগ্রামারের হাতে করা কোড দেখা খুবই সহায়ক। অনুশীলনীর সমস্যার সমাধান ওয়েবসাইটের মাধ্যমে পাঠকের কাছে পৌঁছানোর বেলায় রোকন কোডিং কনভেনশন ও স্ট্যান্ডার্ডের প্রতি যে বিশেষ যত্নবান হবেন, সে আস্থা আমার আছে। কোডিং কনভেনশন ও স্ট্যান্ডার্ডের বিষয়গুলো কেবল জাভার জন্যই যে প্রযোজ্য, তা নয়। অন্য ভাষায় প্রোগ্রামিং করার ক্ষেত্রেও এই বিষয়গুলোর প্রতি সচেতনতা একজন শিক্ষার্থীকে ভালো প্রোগ্রামার হওয়ার পথে বেশ এগিয়ে দেয়।
বাংলা ভাষার গুণগত দিক থেকেও নতুন সংস্করণটিতে কিছুটা পরিমার্জনার সুযোগ আছে। আশা করব, এর পরের সংস্করণে সে বিষয়টিও লেখক ও প্রকাশক বিবেচনায় নেবেন। এর বাইরে সময়ের সঙ্গে গণমাধ্যমের রূপান্তরের নিরিখে বইটির পাঠ-সহযোগী হিসেবে একটি ইউটিউব চ্যানেল তৈরি করে তাতে বিভিন্ন বিষয়ে টিউটোরিয়াল প্রকাশ করাকে সময়ের দাবি বলেই মনে করি। আমি আশা করব, রোকন ও দ্বিমিক এই বিষয়ে উদ্যোগী হবে।
জাভা প্রোগ্রামিং, আ ন ম বজলুর রহমান ও প্রকাশক দ্বিমিকের সামগ্রিক সাফল্য কামনা করছি।
শাহ্ মোস্তফা খালেদ
সহযোগী অধ্যাপক
তথ্যপ্রযুক্তি ইনস্টিটিউট
ঢাকা বিশ্ববিদ্যালয়
সূচিপত্র
- কৃতজ্ঞতা স্বীকার
- ভূমিকা
- প্রথম সংস্করণের ভূমিকা
- লেখক পরিচিতি
- লেখকের কথা
- উপক্রমণিকা
- অধ্যায় ১ – জাভা প্রোগ্রামিং ভাষা
- প্রোগ্রামিং ভাষা কী?
- কেন জাভা?
- জাভা কীভাবে কাজ করে?
- জাভা প্লাটফরমের সাবসেট
- জাভা ইনস্টল করা
- লিনাক্সে প্রথম জাভা প্রোগ্রাম
- JShell-এর ব্যবহার
- আইডিইর ব্যবহার
- অধ্যায় ২ – সাধারণ প্রোগ্রামিং সমস্যা
- কনসোলে প্রিন্ট করা
- ইউজারের কাছ থেকে ইনপুট নেওয়া
- আইডেন্টিফায়ার
- ভ্যারিয়েবল
- অ্যাসাইনমেন্ট
- কমেন্ট
- অনুশীলনী
- অধ্যায় ৩ – ডেটা টাইপ, অপারেটর ও এক্সপ্রেশন
- ডেটা টাইপ
- লিটারেল
- অপারেটর
- এক্সপ্রেশন, স্টেটমেন্ট ও ব্লক
- অপারেটর অগ্রাধিকার
- অনুশীলনী
- অধ্যায় ৪ – কনট্রোল ফ্লো
- ডিসিশন মেকিং স্টেটমেন্ট
- লুপ
- অনুশীলনী
- অধ্যায় ৫ – অ্যারে
- অ্যারে ডিক্লারেশন, ক্রিয়েশন ও অ্যাকসেস
- অ্যারে প্রসেসিং
- টু-ডিমেনশনাল অ্যারে
- মাল্টি-ডিমেনশানাল অ্যারে
- অনুশীলনী
- অধ্যায় ৬ – অবজেক্ট ও ক্লাস
- অবজেক্ট
- ক্লাস
- অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের উপাদানসমূহ
- জাভা মেথড
- অবজেক্ট ইনস্ট্যানশিয়েশন
- মেথড ওভারলোডিং
- কনস্ট্রাক্টর
- অবজেক্ট রেফারেন্স
- এনাম
- নাল
- স্ট্যাটিক ভ্যারিয়েবল, কনস্ট্যান্ট ও মেথড
- অনুশীলনী
- অধ্যায় ৭ – অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং
- অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের প্রয়োজনীয়তা এবং উৎপত্তি
- অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের সুবিধা
- অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের প্রয়োগ
- এনক্যাপসুলেশন
- ইনহেরিটেন্স
- পলিমরফিজম
- অনুশীলনী
- অধ্যায় ৮ – এক্সেপশন হ্যান্ডেলিং
- Try ব্লক
- Catch ব্লক
- Finally ব্লক
- জাভা এক্সেপশন টাইপ
- এক্সেপশন ডিক্লারেশন ও থ্রোয়িং
- স্ট্যাক ট্রেস
- সাধারণ এক্সেপশন ক্লাস
- ইউজার ডিফাইন্ড এক্সেপশন
- অনুশীলনী
- অধ্যায় ৯ – জেনেরিকস
- জাভা জেনেরিকস
- জেনেরিকস এবং সাবটাইপিং
- বাউন্ডেড টাইপ
- ওয়াইল্ডকার্ড আরগুমেন্ট
- জেনেরিক মেথড
- টাইপ ইরেজার
- অনুশীলনী
- অধ্যায় ১০ – জাভা আই/ও
- ফাইল নিয়ে কাজ
- ইনপুট/আউটপুট স্ট্রিম
- অনুশীলনী
- অধ্যায় ১১ – জাভা এনআইও
- জাভা এনআইও কী?
- বাফার
- চ্যানেল
- ফাইল রিড করা
- ফাইল রাইট করা
- একত্রে রিড এবং রাইট করা
- ক্যারেক্টার সেট
- অনুশীলনী
- অধ্যায় ১২ – কালেকশন ফ্রেমওয়ার্ক
- কালেকশন
- লিস্ট
- স্ট্যাক
- সেট
- কিউ
- ডেক
- লিস্ট তৈরির সাধারণ কিছু উপায়
- লিস্ট থেকে অ্যারেতে রূপান্তর
- সেট তৈরির সাধারণ কিছু উপায়
- ম্যাপ
- কালেকশন অর্ডারিং/সর্টিং
- সার্চিং
- অনুশীলনী
- অধ্যায় ১৩ – জাভা ডেট ও টাইম
- java.time প্যাকেজ
- LocalDate
- LocalTime
- LocalDateTime
- টাইম জোনের হিসাব
- ফরম্যাটিং ও পার্সিং
- অধ্যায় ১৪ – স্ট্রিং, ম্যাথ এপিআই ও ইউটিলিটি ক্লাস
- স্ট্রিং কনক্যাটানেশন
- স্ট্রিংয়ের কিছু গুরুত্বপূর্ণ মেথড
- স্ট্রিং পুল
- স্ট্রিং বিল্ডার ও স্ট্রিং বাফার
- এপিআইয়ের ডকুমেন্টেশন পড়া
- জাভা ম্যাথ এপিআই
- র্যানডম নম্বর
- বিগ-ইন্টিজার ও বিগ-ডেসিমাল
- অনুশীলনী
- অধ্যায় ১৫ – ইউনিট টেস্ট
- JUnit5 অ্যানোটেশন
- অ্যাসার্ট স্টেটমেন্ট
- পরিশিষ্ট ১ – কমান্ড লাইন আরগুমেন্ট
- পরিশিষ্ট ২ – Object ক্লাস
- পরিশিষ্ট ৩ – জাভা কি পাস-বাই-ভ্যালু?
- পরিশিষ্ট ৪ – জাভা স্ট্রিং ফরমেটিং
- পরিশিষ্ট ৫ – সংরক্ষিত কিওয়ার্ড
- পরিশিষ্ট ৬ – ক্যারেক্টার এনকোডিং
- পরিশিষ্ট ৭ – ডিবাগিং
- পরিশিষ্ট ৮ – রিকার্শন
- পরিশিষ্ট ৯ – জাভা কীভাবে কাজ করে এবং কীভাবে ভালো পারফর্ম করে
- পরিশিষ্ট ১০ – বাংলায় জাভা প্রোগ্রামিং
- ইনডেক্স
বইয়ের বিবরণী
শিরোনাম | জাভা প্রোগ্রামিং |
লেখক | আ ন ম বজলুর রহমান |
ক্যাটেগরি | কম্পিউটার প্রোগ্রামিং |
ISBN | 9789849216445 |
প্রথম প্রকাশ | ফেব্রুয়ারি, ২০১৭ |
২য় সংস্করণ | সেপ্টেম্বর, ২০২১ |
পৃষ্ঠাসংখ্যা | ৭২০ |