সি++

১৬টি লেসন — একদম বেসিক থেকে প্রো-লেভেল প্যাটার্ন পর্যন্ত।

বেসিক
. সি++ (C++) কেন শিখবেন?
গেম ইঞ্জিন, ব্রাউজার এবং ট্রেডিং সিস্টেম — যেখানে পারফরম্যান্সই সব
প্রাথমিক
. ভেরিয়েবল এবং ডেটা টাইপ (Variables & Data Types)
সি++ (C++) হলো সি (C) প্রোগ্রামিংয়ের সেই ছোট ভাই, যে মূলত তার বড় ভাই সি-এর (C) বিভিন্ন ভুল থেকে অনেক কিছু শিখেছে — এদের ডিএনএ (DNA) বা ধরন মূলত একই রকম হলেও এর আদবকায়দাগুলো (manners) বেশ চমৎকার
প্রাথমিক
. অপারেটর এবং এক্সপ্রেশন (Operators & Expressions)
সি-এর (C) সকল অপারেটরের পাশাপাশি এখানকার ভেতরে আরও কিছু নতুন কৌশল (new tricks) লুকিয়ে আছে
প্রাথমিক
. ইনপুট এবং আউটপুট স্ট্রিম (Input & Output with Streams)
স্ট্রিমগুলো (Streams) হলো অনেকটা কনভেয়র বেল্টগুলোর (conveyor belts) মতো — এক্ষেত্রে ডেটাগুলো শুধু একদিকে (one direction) প্রবাহিত হয়, আর আপনাকে শুধু এর ওপর আইটেমগুলো রাখতে (place) বা তুলে নিতে (pick) হয়
প্রাথমিক
. কন্ডিশনাল বা শর্তসমূহ (Conditionals)
সি-এর (C) মতো একই ট্রাফিক লাইটসমূহ (traffic lights), তবে সি++ (C++) জীবনযাত্রার মান উন্নয়নের জন্য এতে বেশ কিছু নতুন আপগ্রেড (quality-of-life upgrades) যোগ করেছে
প্রাথমিক
. লুপ (Loops)
আধুনিক সুবিধাগুলোর সাথে পুরোনো ক্লাসিকগুলোর মিল — এখানকার রেঞ্জ-বেসড (range-based) ফর লুপটিই (for) হলো এর মূল আকর্ষণ
প্রাথমিক
কালেকশন
. সি++ (C++) অ্যারে এবং ভেক্টর (Arrays & Vectors)
এখানকার র অ্যারেগুলো (Raw arrays) হলো মূলত মোটরসাইকেলের (motorcycle) মতো — যেগুলো বেশ দ্রুত বা ফাস্ট হলেও (fast), একইভাবে অনেক বিপজ্জনকও (dangerous)। আর ভেক্টরগুলো (Vectors) হলো আধুনিক গাড়ির (car) মতো — যেগুলো একইসাথে দ্রুত এবং নিরাপদ (safe), এবং এগুলো মূলত আপনার যেকোনো ভারী কাজকেও (heavy lifting) অনেক সহজে হ্যান্ডেল (handle) করে নিতে পারে
সহজ
. স্ট্রিং (Strings)
সি (C) প্রোগ্রামিংয়ের স্ট্রিংগুলো মূলত যা হওয়ার স্বপ্ন দেখত, সি++ (C++)-এর স্ট্রিংগুলো ঠিক তা-ই — এখানে আর ক্যারেক্টার গোনার (counting characters) বা কোনো নাল টার্মিনেটরের (null terminators) ঝামেলা নেই
সহজ
ফাংশন
অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং
. ক্লাস এবং অবজেক্ট (Classes & Objects)
যেকোনো ক্লাস (class) হলো মূলত একটি বাড়ির ব্লুপ্রিন্টের (blueprint) মতো — এটি আপনার ঘরের আকার (ডেটা বা data) এবং এর দরজাগুলো (মেথড বা methods) কেমন হবে তা নির্ধারণ করে দেয়, এবং তারপরই আপনি ওই নকশা অনুযায়ী আপনার ইচ্ছামতো বাড়ি বা অবজেক্ট (houses) তৈরি করতে পারেন
সহজ
১০. ইনহেরিটেন্স এবং পলিমরফিজম (Inheritance & Polymorphism)
ইনহেরিটেন্স (Inheritance) হলো অনেকটা একটি বংশলতিকার (family tree) মতো — যেখানে সন্তানরা তাদের পিতা-মাতার (parents) কাছ থেকে বিভিন্ন বৈশিষ্ট্যগুলো (traits) উত্তরাধিকারসূত্রে পেয়ে থাকে, কিন্তু চাইলে তারা এর পাশাপাশি নিজস্ব কিছু অনন্য (unique) বৈশিষ্ট্যও তৈরি করে নিতে পারে
মাঝারি
Memory Management
১১. পয়েন্টার এবং রেফারেন্স (Pointers & References)
জিপিএস কো-অর্ডিনেটগুলো (GPS coordinates) বনাম ডাকনাম (nicknames) — একই ডেটায় (data) পৌঁছানোর দুটি ভিন্ন উপায়
মাঝারি
১২. স্মার্ট পয়েন্টার (Smart Pointers)
আপনার মেমোরির (memory) অটোমেটিক ক্লিনার বা পরিচ্ছন্নতাকর্মী (Automatic janitors) — এই RAII-এর মানেই হলো আপনাকে আর কখনোই বলতে হবে না যে 'হায়, আমি তো এটি মুছে ফেলতে বা ডিলিট করতেই (delete) ভুলে গেছি'
মাঝারি
Standard Template Library
১৩. এসটিএল কন্টেইনার (STL Containers)
একটি স্বয়ংসম্পূর্ণ বা ফুল্লি-স্টকড রান্নাঘর (fully-stocked kitchen) — যেখানে তাকের ওপরেই সবকিছু সাজানো রয়েছে, সেখানে আপনি শুধু শুধু নিচ থেকে হাঁড়ি-পাতিল বানাতে যাবেন কেন?
কঠিন
১৪. ইটারেটর এবং অ্যালগরিদম (Iterators & Algorithms)
যেকোনো কন্টেইনারের (container) জন্য একটি সর্বজনীন রিমোট (universal remote), যেখানে শর্টিং (sorting), সার্চিং (searching) এবং ট্রান্সফর্মিংয়ের (transforming) জন্য আগে থেকেই বিভিন্ন প্রোগ্রাম (pre-built programs) তৈরি করা থাকে
কঠিন
অ্যাডভান্সড