সি

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

বেসিক
. সি (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)
কঠিন