شائعرحلة
تعلّم برمجة C
دورة C تفاعلية مجانية أونلاين. تكتب كود C في كل درس — المتغيرات، التحكم في التدفق، الدوال، pointers، وإدارة الذاكرة — مع تلميحات بالذكاء الاصطناعي عند حدوث segfault، وشهادة مجانية عند الانتهاء.
117,962+ من الـ codders مسجلون
- مناسب للمبتدئين
مساعدة برمجية بالذكاء الاصطناعي
دروس تفاعلية عملية
تعليق صوتي في كل درس
اختبارات لقياس معرفتك
شهادة إتمام مجانية
المنهج
قسم 1
Fundamentals
ابدأ القسمابدأتوسيعطيBuild a strong foundation with essential concepts and basic skillsمقدمة
4 درسًا326- 01لغة Cتحدي
- 02أهلاً بالعالم!تحدياختبار
- 03التعليقاتاختبار
- 04الهيكل الأساسي للبرنامجتحدياختبار
المتغيرات
11 درسًا1485- 01أنواع البياناتتحدياختبار
- 02الأعداد الصحيحة (Integer)تحدياختبار
- 03الأعداد العشرية (Float - Double)تحديإتقاناختبار
- 04المحارف (Characters)تحدياختبار
- 05القيم المنطقية (Booleans)تحديإتقاناختبار
- 06الثوابتتحدياختبار
- 07أساسيات printfتحدياختبار
- 08قواعد تسمية المتغيراتتحدياختبار
- 09تحويل الأنواع (Type Casting) - الجزء 1تحديإتقاناختبار
- 10تحويل الأنواع (Type Casting) - الجزء 2تحدياختبار
- 11تحدي المراجعةتحدي
المعاملات
9 درسًا1161- 01المعاملات الحسابيةتحدياختبار
- 02معامل باقي القسمةتحديإتقاناختبار
- 03الزيادة والنقصانتحدياختبار
- 04معاملات الإسنادتحدياختبار
- 05المعاملات العلائقيةتحدياختبار
- 06المعاملات المنطقية - الجزء الأولتحدياختبار
- 07المعاملات المنطقية - الجزء الثانيتحدياختبار
- 08المعاملات المنطقية - الجزء الثالثتحديإتقاناختبار
- 09تحدي المراجعةتحدي
تدفق التحكم
7 درسًا944- 01جملة Ifتحدياختبار
- 02جملة If - Elseتحدياختبار
- 03جملة Else-Ifتحديإتقاناختبار
- 04جملة Switch Caseتحديإتقاناختبار
- 05العامل الشرطي الثلاثيتحدياختبار
- 06تحدي المراجعةتحدي
- 07جمل If - Else المتداخلةتحدياختبار
الإدخال والإخراج
5 درسًا626- 01محددات التنسيقتحدياختبار
- 02أساسيات scanfتحديإتقاناختبار
- 03تحدي المراجعة رقم 1تحدي
- 04التحقق من صحة الإدخالتحدياختبار
- 05تحدي المراجعة رقم 2تحدي
الحلقات التكرارية
9 درسًا1053- 01حلقة Forتحديإتقاناختبار
- 02حلقة Whileتحدياختبار
- 03حلقة Do Whileتحدياختبار
- 04Breakتحدياختبار
- 05Continueتحدياختبار
- 06تحدي المراجعة #1تحدي
- 07الحلقات المتداخلةتحديإتقاناختبار
- 08الحلقات اللانهائيةاختبار
- 09تحدي المراجعة #2تحدي
الدوال
7 درسًا1039- 01التصريح عن دالةتحدياختبار
- 02أنواع الإرجاعتحديإتقاناختبار
- 03المعاملاتتحديإتقاناختبار
- 04تحدي المراجعة #1تحدي
- 05أساسيات الاستدعاء الذاتيتحديإتقاناختبار
- 06النماذج الأولية للدوالتحدياختبار
- 07تحدي المراجعة #2تحدي
المصفوفات
8 درسًا1247- 01تعريف المصفوفاتتحدياختبار
- 02الوصول إلى العناصرتحدياختبار
- 03تعديل العناصرتحديإتقاناختبار
- 04المصفوفات متعددة الأبعادتحديإتقاناختبار
- 05تحدي المراجعة رقم 1تحدي
- 06المصفوفات كمعاملات للدوالتحديإتقاناختبار
- 07خوارزميات المصفوفاتتحديإتقاناختبار
- 08تحدي المراجعة رقم 2تحدي
التحديات النهائية
3 درسًا3- 01الدرجاتتحدي
- 02القممتحدي
- 03التلفازتحدي
قسم 2
Logic & Flow
ابدأ القسمابدأتوسيعطيMaster advanced C programming with a focus on data structures and flow control. Learn to work with complex arrays, collections, error handling, and time management.أساسيات المؤشرات
6 درسًا540- 01ما هو المؤشر؟اختبار
- 02الإعلان عن المؤشراتتحدياختبار
- 03عامل العنوان (&)تحدياختبار
- 04عامل إلغاء المرجعية (*)تحدياختبار
- 05مؤشرات NULLتحدياختبار
- 06مراجعة: أساسيات المؤشراتتحدي
المؤشرات والمصفوفات
5 درسًا531- 01أسماء المصفوفات كمؤشراتتحدياختبار
- 02عناصر المصفوفة - المؤشراتتحدياختبار
- 03العمليات الحسابية على المؤشراتتحدياختبار
- 04مقارنة المؤشراتتحدياختبار
- 05مراجعة: التنقل في المصفوفة باستخدام المؤشراتتحدي
مصفوفات الأحرف والسلاسل النصية
8 درسًا858- 01السلاسل النصية كمصفوفات charتحدياختبار
- 02المُنهي الصفري (Null Terminator)تحدياختبار
- 03إدخال السلاسل النصية باستخدام scanfتحدياختبار
- 04استخدام strlen()تحدياختبار
- 05استخدام strcpy()تحدياختبار
- 06استخدام strcat()تحدياختبار
- 07استخدام strcmp()تحدياختبار
- 08مراجعة: دوال السلاسل النصية الأساسيةتحدي
مشروع: أداة نصوص بسيطة
مشروع5 درسًا1- 01نظرة عامة على المشروعتحدي
- 02عد الأحرفمشروع
- 03عد حروف العلّةمشروع
- 04التحويل إلى أحرف كبيرةمشروع
- 05المخرج النهائيمشروع
المؤشرات والدوال
6 درسًا641- 01التمرير بالقيمةتحدياختبار
- 02تمرير المؤشرات إلى الدوالتحدياختبار
- 03تعديل المتغيرات عبر المؤشراتتحدياختبار
- 04مثال كلاسيكي: التبديلتحدياختبار
- 05تمرير المصفوفات إلى الدوالتحدياختبار
- 06ملخص: وسائط المؤشرات في الدوالتحدي
إدارة الذاكرة
7 درسًا652- 01ذاكرة Stack مقابل Heapاختبار
- 02التخصيص الديناميكي - malloc()تحدياختبار
- 03استخدام sizeof() للتخصيصتحدياختبار
- 04التحقق من فشل التخصيصتحدياختبار
- 05تحرير الذاكرة باستخدام free()تحدياختبار
- 06التخصيص باستخدام calloc()تحدياختبار
- 07ملخص: المصفوفة الديناميكيةتحدي
الهياكل (structs)
6 درسًا540- 01ما هو الـ Struct؟اختبار
- 02الإعلان عن Structتحدياختبار
- 03إنشاء متغيرات Structتحدياختبار
- 04الوصول إلى أعضاء الـ Structتحدياختبار
- 05تهيئة الـ Structsتحدياختبار
- 06مراجعة: Struct بيانات الطالبتحدي
الهياكل والمؤشرات
6 درسًا643- 01المؤشرات إلى الهياكلتحدياختبار
- 02عامل السهم (->)تحدياختبار
- 03تمرير الهياكل بالقيمةتحدياختبار
- 04تمرير مؤشرات الهياكلتحدياختبار
- 05التخصيص الديناميكي للهياكلتحدياختبار
- 06مراجعة: تعديل الهياكل باستخدام المؤشراتتحدي
مشروع: إدخال جهة اتصال بسيطة
مشروع5 درسًا1- 01مشروع: تعريف Struct جهة الاتصالتحدي
- 02دالة لإنشاء جهة اتصالمشروع
- 03دالة لتعبئة بيانات جهة اتصالمشروع
- 04دالة لعرض جهة اتصالمشروع
- 05تجميع كل الأجزاء معاًمشروع
Enums و Typedef
6 درسًا640- 01enum للثوابت المسماةتحدياختبار
- 02التصريح عن Enums واستخدامهاتحدياختبار
- 03استخدام Enums في جمل Switchتحدياختبار
- 04استخدام typedef لأسماء مستعارة للأنواعتحدياختبار
- 05استخدام typedef مع Structsتحدياختبار
- 06مراجعة: تمارين على Typedef و Enumتحدي
تحديات المراجعة النهائية
3 درسًا3- 01مراجعة: دمج السلاسل النصية الديناميكيتحدي
- 02مراجعة: مصفوفة من الـ Structsتحدي
- 03مراجعة: عداد تكرار الكلماتتحدي
قسم 3
Object Oriented Programming
ابدأ القسمابدأتوسيعطيDiscover how to organize code with classes, objects, and reusable structuresأساسيات البرمجة التركيبية
5 درسًا433- 01ملفات الترويسةاختبار
- 02حواجز التضمينتحدياختبار
- 03ملفات المصدرتحدياختبار
- 04الدوال الساكنةتحدياختبار
- 05مراجعة: آلة حاسبة تركيبيةتحدي
الكائنات والأساليب
6 درسًا642- 01الـ Structs ككائناتتحدياختبار
- 02مؤشر 'Self'تحدياختبار
- 03صحة استخدام Constتحدياختبار
- 04المؤشر مقابل القيمةتحدياختبار
- 05الأساليب المساعدةتحدياختبار
- 06ملخص: Point Managerتحدي
دورة حياة الكائن
5 درسًا533- 01نمط المنشئ (Constructor Pattern)تحدياختبار
- 02نمط الهادم (Destructor Pattern)تحدياختبار
- 03تهيئة الـ Stackتحدياختبار
- 04النسخ العميق (Deep Copy)تحدياختبار
- 05مراجعة: String Wrapperتحدي
التغليف (Encapsulation)
5 درسًا435- 01مفهوم الـ Opaque Pointersاختبار
- 02تعريف الـ Opaque Structsتحدياختبار
- 03الـ Getters والـ Settersتحدياختبار
- 04التحقق من البيانات في الـ Settersتحدياختبار
- 05ملخص: الصندوق السريتحدي
مشروع: حساب بنكي بسيط
مشروع6 درسًا1- 01إعداد المشروعتحدي
- 02تنفيذ الحسابمشروع
- 03منطق الإيداعمشروع
- 04منطق السحبمشروع
- 05الحصول على الرصيدمشروع
- 06خاتمة المشروع: الحلقة الرئيسيةمشروع
الوراثة عبر التركيب
5 درسًا531- 01تضمين الـ Structتحدياختبار
- 02قاعدة العضو الأولتحدياختبار
- 03الوصول إلى أعضاء الأبتحدياختبار
- 04عملية الـ Upcastingتحدياختبار
- 05مراجعة: هرمية الأشكالتحدي
مؤشرات الدوال
5 درسًا534- 01التصريح عن مؤشرات الدوالتحدياختبار
- 02استدعاء مؤشرات الدوالتحدياختبار
- 03استخدام Typedef لمؤشرات الدوالتحدياختبار
- 04تمرير الدوال كوسطاءتحدياختبار
- 05مراجعة: Calculator Dispatchتحدي
تعدد الأشكال (Polymorphism)
6 درسًا641- 01مؤشرات الدوال في الـ Structsتحدياختبار
- 02محاكاة الـ Methodsتحدياختبار
- 03مفهوم الـ Interfaceتحدياختبار
- 04تنفيذ الـ Interfacesتحدياختبار
- 05التكرار متعدد الأشكالتحدياختبار
- 06مراجعة: Greeterتحدي
مشروع: رسّام الأشكال
مشروع5 درسًا1- 01نظرة عامة على المشروعتحدي
- 02تنفيذ الدائرةمشروع
- 03تنفيذ المستطيلمشروع
- 04استخدام تعدد الأشكالمشروع
- 05حاوية الأشكالمشروع
الحاويات العامة
5 درسًا534- 01مراجعة مؤشرات Voidتحدياختبار
- 02مغلف عامتحدياختبار
- 03تبديل عامتحدياختبار
- 04مقارنة عامةتحدياختبار
- 05مراجعة: المصفوفة العامةتحدي
أنماط التصميم في C
4 درسًا425- 01نمط Singletonتحدياختبار
- 02نمط Factoryتحدياختبار
- 03نمط Iteratorتحدياختبار
- 04مراجعة: Logger Factoryتحدي
التحديات النهائية
4 درسًا48- 01شخصية RPGتحدي
- 02منشئ نصوص ديناميكيتحدي
- 03Generic Stackتحدي
- 04نظام الأحداثتحدياختبار
لماذا تتعلم برمجة C مع Coddy
- اكتب وشغّل كود C حقيقي داخل متصفحك. لا حاجة لتثبيت GCC، ولا Makefile، ولا إعداد لأي toolchain. كل تمرين يُجمِّع برنامجك بلغة C على الخادم ويعرض لك المخرجات فورًا.
- لغة C كما تُستخدم فعلياً: pointers و references، المصفوفات، السلاسل النصية، structs، الذاكرة الديناميكية عبر
mallocوfree، والتعامل مع الملفات. أساسيات C التي يحتاجها كل مبرمج أنظمة. - تلميحات الذكاء الاصطناعي تساعدك على قراءة وإصلاح أخطاء مُصرِّف C وحالات segfault، فتبدو اللغة في متناولك بدلًا من أن تكون غامضة منذ اليوم الأول.
- شهادة مجانية في برمجة C عند إتمامك للدورة. دليل موثوق لوظائف الأنظمة والأنظمة المدمجة وأنظمة التشغيل ومحركات الألعاب، حيث يُتوقع إتقان C.
أسئلة شائعة حول تعلّم برمجة C
هل برمجة C سهل التعلم؟
تحتوي C على ميزات أقل من معظم اللغات الحديثة، لكنها تجبرك على التعامل مع pointers وإدارة الذاكرة يدويًا منذ البداية — ولهذا اكتسبت سمعتها بأنها لغة صعبة. تقدّم الدورة هذه المفاهيم خطوة بخطوة، مع تمارين تطبيقية بعد كل فكرة، حتى لا تواجه الأجزاء الصعبة دفعة واحدة.
هل أتعلم C أم C++ أولاً؟
للعمل في الأنظمة المدمجة أو على مستوى أنظمة التشغيل أو البرمجة منخفضة المستوى، ابدأ بـ C — فهي أصغر وأقرب إلى العتاد. أما لتطوير التطبيقات ومحركات الألعاب أو العمل في الأنظمة الحديثة، فإن C++ هو الخيار الأكثر شيوعًا، ويمنحك انتقالًا أسهل عبر الـ classes قبل أن تضطر إلى إدارة الذاكرة يدويًا.
كم من الوقت يستغرق تعلّم لغة C؟
أساسيات C — المتغيرات، الجمل الشرطية، الحلقات، الدوال — تأخذ من أسبوعين إلى أربعة أسابيع من الممارسة اليومية. أما التعوّد على pointers وstructs والذاكرة الديناميكية، فعادةً ما يستغرق من شهر إلى ثلاثة أشهر إضافية. والإتقان (الكود على مستوى النظام، تحسين الأداء، قواعد أكواد C الضخمة) رحلة تمتد لسنوات.
هل يمكنني تعلّم لغة C عبر الإنترنت مجانًا؟
نعم. دورة C التفاعلية مجانية — دروس كاملة وتمارين برمجية واختبارات وشهادة إتمام. مُجمِّع C يعمل على الخادم، فلا حاجة لتثبيت GCC أو Clang أو أي IDE محلياً لتبدأ بكتابة C.
هل أحتاج إلى تثبيت مُترجم (compiler) للغة C لأخذ هذه الدورة؟
لا. كل تمرين بلغة C يُجمَّع داخل بيئة sandbox معزولة ويعرض المخرجات بجانب كودك. لا Makefile ولا IDE ولا toolchain لإعداده.
هل أحصل على شهادة بعد إكمال دورة برمجة C؟
نعم. بإكمالك دورة برمجة C تحصل على شهادة إتمام مجانية يمكنك إضافتها إلى سيرتك الذاتية أو مشاركتها على LinkedIn — مفيدة إلى جانب أي مشاريع برمجة أنظمة أو مستودعات GitHub أنجزتها.