اللغة التي تشغل أنظمة التشغيل والمترجمات والأجهزة المدمجة
C ليست فضول تاريخي — إنها اللغة التي تقف خلف Linux وقاعدة بيانات SQLite ومترجم CPython وفعليًا كل برنامج firmware لميكروكنترولر يُشحن اليوم. فهم C يعني فهم كيفية عمل الذاكرة فعليًا، وكيفية تنفيذ المعالج لتعليماتك بالفعل، ولماذا تقدم كل لغة ذات مستوى أعلى المقابلات التي تقدمها. يغطي هذا المسار C من أول printf إلى كتابة موزع الذاكرة، جدول hash، قائمة مرتبطة، ومترجم يعمل.
ما ستتعلمه
ستبدأ بالعوامل والتحكم بالتدفق والإدخال/الإخراج المنسق وتحويل النوع، ثم ستنتقل إلى المكتبة القياسية — math.h وstring.h وctype.h — والموضوعات الخاصة بـ C مثل التعددات والمعاملات من سطر الأوامر وفئات التخزين والماكروهات المعالجة المسبقة. يغطي القسم المتوسط المؤشرات وإدارة الذاكرة الديناميكية ومؤشرات الدوال والاستدعاءات وللخلف والدوال المتغيرة ومشاريع متعددة الملفات المعيارية. ستطبق هياكل البيانات الأساسية من الصفر: القوائم المرتبطة والأشجار الثنائية وجداول hash والمصفوفات الديناميكية. تغطي الدورات المتقدمة البرمجة متعددة الخيوط والتزامن وبرمجة المقابس والاتصال بين العمليات وتصحيح الذاكرة باستخدام Valgrind وبرمجة الشبكات باستخدام epoll.
مسار التعلم
تسعة وثلاثون دورة تمتد من A1 إلى C1. دورات A1 و A2 تضع الأساس للبناء على البناء الجملة والتكرار والمكتبة القياسية. تبني إحدى عشرة دورة B1 مهارات عملية — معالجة الملفات ومعالجة البتات والهياكل والعمليات والمعالج المسبق. تتعمق عشر دورات B2: الذاكرة الديناميكية وخوارزميات الفرز وجداول hash وتتويجها في C Building a Memory Allocator. تختتم سبع دورات C1 المسار بعمل على مستوى النظام: Multithreading and Concurrency وC Socket Programming وC Memory Debugging with Valgrind وC Writing a Simple Interpreter وC Network Programming with epoll.
كيفية عملها
تنقسم كل دورة إلى دروس قصيرة ومركزة تكملها في محرر الكود المدمج مع ملاحظات فورية على مخرجاتك. يتوفر معلم ذكي اصطناعي كلما علقت في segfault أو خطأ linker أو off-by-one في حسابات المؤشرات. يتم تتبع التقدم لكل درس حتى تتمكن من الإيقاف والاستئناف عبر الجلسات دون فقدان مكانك.