সি
১৬টি লেসন — একদম বেসিক থেকে প্রো-লেভেল প্যাটার্ন পর্যন্ত।
বেসিক
০. সি (C) কেন শিখবেন?
অপারেটিং সিস্টেম, এমবেডেড চিপস এবং প্রতিটি ভাষার মূল ভিত্তিপ্রাথমিক→
১. ভ্যারিয়েবল এবং ডেটা টাইপসমূহ (Variables & Data Types)
এখানকার প্রত্যেকটি তাক বা শেলফে (shelf) এর সঠিক আকার বা সাইজ (exact size) লিখে রাখাপ্রাথমিক→
২. অপারেটর এবং এক্সপ্রেশন (Operators & Expressions)
আপনার স্টোরের সমস্ত টুল বা সরঞ্জাম — পাওয়ার টুলগুলোসহপ্রাথমিক→
৩. printf এবং scanf-এর ইনপুট এবং আউটপুট (Input & Output with printf and scanf)
এখানকার printf হলো আপনার মেগাফোন (megaphone), আর scanf হলো আপনার মাইক্রোফোন (microphone)প্রাথমিক→
৪. কন্ডিশনাল বা শর্তসমূহ (Conditionals)
আপনার কোডের জন্য ট্রাফিক লাইট (Traffic lights) — যার লাল মানে থামা এবং সবুজ মানে এগিয়ে যাওয়াপ্রাথমিক→
৫. লুপ (Loops)
কোডের (code) একটি অ্যাসেম্বলি লাইন (assembly line) — বাক্সটি পুরোপুরি না ভরা পর্যন্ত এটি এর ভেতরে সব স্ট্যাম্প (stamping) করতেই থাকেপ্রাথমিক→
Arrays & Strings
৬. সি (C) অ্যারে (C Arrays)
লম্বা বারান্দায় সারি সারি লকার — প্রত্যেকটির ওপর আলাদা আলাদা নম্বর দেওয়া, এবং তাদের প্রত্যেকটির আকার একেবারে হুবহু একসহজ→
৭. সি (C) স্ট্রিং এবং ক্যারেক্টার (C Strings & Characters)
সি (C)-তে স্ট্রিং (string) বলতে মূলত ক্যারেক্টারগুলোর (characters) খুব সাধারণ একটি অ্যারেকেই (array) বোঝায় যার একেবারে শেষে একটি বাউন্সার (bouncer) দাঁড়িয়ে থাকে: আর তা হলো '\0'সহজ→
ফাংশন
Pointers & Memory
৯. সি (C) পয়েন্টার (C Pointers)
একটি অ্যাড্রেস (address) লেখা ছোট্ট স্টিকি নোট (sticky note) — এটি মূলত আপনাকে বলে দেয় যে কোনো জিনিস ঠিক কোথায় (WHERE) আছে, জিনিসটি আসলে কী (WHAT) তা নয়মাঝারি→
১০. সি (C) পয়েন্টার অ্যারিথমেটিক এবং অ্যারে (C Pointer Arithmetic & Arrays)
সি (C) প্রোগ্রামিংয়ে অ্যারে (Arrays) এবং পয়েন্টারগুলো (pointers) মূলত একে অপরের সবথেকে ভালো বন্ধু (best friends) — অর্থাৎ তারা প্রায় একই কাজ করে, তবে শুধু দেখতে একটু আলাদামাঝারি→
১১. ডাইনামিক মেমোরি (Dynamic Memory)
স্ট্যাক (stack) হলো আপনার নিজের ছোট এবং স্বয়ংক্রিয় টেবিল বা ডেস্কের মতো। অন্যদিকে হিপ (heap) হলো একটি বিশাল বড় গুদামঘর বা ওয়্যারহাউস — যা বড় ঠিকই, কিন্তু এর সমস্ত কিছু আপনাকে নিজেকেই সামলাতে হবেমাঝারি→
Structs & Files
১২. স্ট্রাকচার এবং টাইপডেফ (Structs & Typedef)
স্ট্রাকচার বা struct হলো এক ধরনের কাস্টম ফর্মের (custom form) মতো — যার ফিল্ডগুলো (fields) আপনি নিজে ডিজাইন (design) করবেন, এবং সি (C) মূলত সেগুলোকে আপনার জন্য পূরণ করে দেবেমাঝারি→
১৩. ফাইল আই/ও বা ইনপুট/আউটপুট (File I/O)
ফাইলগুলো (Files) মূলত কোনো তাক বা শেলফে (shelf) রাখা নোটবইয়ের (notebooks) মতোই কাজ করে — একটি বই খুলুন (open), সেটা থেকে কিছু পড়ুন (read) বা সেখানে কিছু লিখুন (write), তারপর সেটিকে আবার জায়গামতো গুছিয়ে রেখে দিনকঠিন→
অ্যাডভান্সড
১৪. প্রিপ্রসেসর এবং ম্যাক্রো (Preprocessor & Macros)
এখানকার এই প্রিপ্রসেসর (preprocessor) মূলত এমন একটি কপি-পেস্ট রোবট (copy-paste robot) যা আপনার কোডটিকে (code) কম্পাইলারের (compiler) দেখারও আগে রান (runs BEFORE) হয়ে যায়কঠিন→
১৫. ফাংশন পয়েন্টার ও কলব্যাকসমূহ (Function Pointers & Callbacks)
ধরুন আপনার কাছে একটি রিমোট কন্ট্রোল বা remote control আছে যার প্রতিটি বোতামকে মূলত যেকোনো কিছু করার জন্য রিপ্রোগ্রাম (reprogrammed) বা নতুনভাবে সেট করা যায় — এটিই হলো একটি ফাংশন পয়েন্টার (function pointer)কঠিন→