رحلة
تعلّم Rust
دورة Rust أونلاين، مجانية وتفاعلية. تكتب Rust في كل درس — الصياغة، ownership وborrowing، lifetimes، traits، ومطابقة الأنماط — مع تلميحات بالذكاء الاصطناعي حين يعترض borrow checker، وشهادة مجانية عند الإكمال.
16,687+ من الـ codders مسجلون
- مناسب للمبتدئين
مساعدة برمجية بالذكاء الاصطناعي
دروس تفاعلية عملية
تعليق صوتي في كل درس
اختبارات لقياس معرفتك
شهادة إتمام مجانية
المنهج
قسم 1
Fundamentals
ابدأ القسمابدأتوسيعطيBuild a strong foundation with essential concepts and basic skillsمقدمة
4 درسًا324- 01Rustتحدي
- 02أهلاً بالعالم!تحدياختبار
- 03التعليقاتاختبار
- 04هيكلية البرنامج الأساسيةتحدياختبار
المتغيرات - الجزء الأول
5 درسًا539- 01الأرقامتحدياختبار
- 02المحارف (Char)تحدياختبار
- 03النصوص (String)تحدياختبار
- 04القيم المنطقية (Boolean)تحدياختبار
- 05المتغيرات القابلة للتغييرتحدياختبار
المتغيرات - الجزء الثاني
5 درسًا433- 01التصريح عن النوعتحدياختبار
- 02قواعد التسميةاختبار
- 03استنتاج النوعتحدياختبار
- 04مراجعة - تهيئة المتغيراتتحدي
- 05تحويل الأنواعتحدياختبار
المعاملات - الجزء الأول
5 درسًا438- 01المعاملات الحسابيةتحدياختبار
- 02معامل باقي القسمة (Modulo)تحدياختبار
- 03اختصارات العمليات الحسابيةتحدياختبار
- 04معاملات المقارنةتحدياختبار
- 05مقارنة النصوصاختبار
المعاملات - الجزء الثاني
4 درسًا424- 01المعاملات المنطقية - الجزء الأولتحدياختبار
- 02المعاملات المنطقية - الجزء الثانيتحدياختبار
- 03مراجعة - المنطق البسيطتحدي
- 04المعاملات المنطقية - الجزء الثالثتحدياختبار
اتخاذ القرار
5 درسًا532- 01تعبيرات Ifتحدياختبار
- 02جملة If-Elseتحدياختبار
- 03جملة Matchتحدياختبار
- 04مراجعة - If Elseتحدي
- 05جمل If-Else المتداخلةتحدياختبار
أساسيات الإدخال والإخراج
4 درسًا417- 01الطباعة على الكونسولتحدياختبار
- 02قراءة مدخلات المستخدمتحدياختبار
- 03مراجعة - حتى 120تحدي
- 04مراجعة - True أو Falseتحدي
تطبيق الآلة الحاسبة
مشروع4 درسًا1- 01رسالة الترحيبتحدي
- 02استقبال الأرقاممشروع
- 03العمليات الأساسيةمشروع
- 04مخرجات منسقةمشروع
الحلقات التكرارية
8 درسًا851- 01For عبر السلاسلتحدياختبار
- 02حلقة Whileتحدياختبار
- 03جملة Breakتحدياختبار
- 04جملة Continueتحدياختبار
- 05الحلقات المتداخلةتحدياختبار
- 06تسميات الحلقاتتحدياختبار
- 07الحلقة اللانهائيةتحدياختبار
- 08مراجعة - الإدخال الديناميكيتحدي
ارتباط المتغيرات
4 درسًا230- 01النطاقاختبار
- 02التظليل - الجزء الأولتحدياختبار
- 03ارتباط المتغيراختبار
- 04التظليل - الجزء الثانيتحدياختبار
الدوال
6 درسًا634- 01تعريف الدوالتحدياختبار
- 02المعاملات والوسائطتحدياختبار
- 03قيم الإرجاعتحدياختبار
- 04قيم إرجاع متعددةتحدياختبار
- 05مراجعة - دالة Sigmaتحدي
- 06مراجعة - دالة التحققتحدي
أساسيات المصفوفات
5 درسًا430- 01التصريح عن المصفوفاتتحدياختبار
- 02المصفوفة كمعاملاختبار
- 03الوصول إلى العناصرتحدياختبار
- 04تعديل المصفوفاتتحدياختبار
- 05ملخص - طباعة المصفوفة بشكل منسقتحدي
تكملة المصفوفات
5 درسًا423- 01مصفوفات المراجع القابلة للتغييرتحدياختبار
- 02دوال المصفوفاتتحدياختبار
- 03مراجعة - مصفوفة الضربتحدي
- 04مراجعة - المصفوفة المعكوسةتحدي
- 05طباعة أفضلاختبار
التكرار عبر المصفوفات
4 درسًا333- 01دليل النطاق (Range)تحدياختبار
- 02حلقة For المحسنةتحدياختبار
- 03الاستعارة في الحلقةاختبار
- 04عمليات المصفوفات الشائعةتحدياختبار
عمليات الـ String
4 درسًا424- 01دوال الـ Stringتحدياختبار
- 02ماكرو !formatتحدياختبار
- 03تحويل الـ Stringتحدياختبار
- 04مراجعة - Formatتحدي
المشاريع النهائية
3 درسًا37- 01نمط الأرقامتحدياختبار
- 02مكتشف الأنماطتحدي
- 03حاسبة درجات الطلابتحدي
قسم 2
Logic & Flow
ابدأ القسمابدأتوسيعطيDevelop problem-solving skills and create dynamic, interactive programsتدفق التحكم المتقدم
6 درسًا640- 01تعبير 'match'تحدياختبار
- 02مطابقة قيم متعددةتحدياختبار
- 03مطابقة النطاقاتتحدياختبار
- 04تعبير 'if let'تحدياختبار
- 05الحلقات التكرارية كتعبيراتتحدياختبار
- 06مراجعة - محلل أوامر بسيطتحدي
مقدمة في الـ Vectors
8 درسًا756- 01ما هو الـ Vector؟اختبار
- 02إنشاء Vectorتحدياختبار
- 03إضافة عناصر باستخدام pushتحدياختبار
- 04الوصول إلى عناصر الـ Vectorتحدياختبار
- 05التكرار عبر الـ Vectorتحدياختبار
- 06التكرار القابل للتعديل (Mutable Iteration)تحدياختبار
- 07إزالة العناصرتحدياختبار
- 08مراجعة - متتبع نقاط بسيطتحدي
قائمة مهام بسطر الأوامر
5 درسًا5- 01إعداد المشروعتحدي
- 02إضافة مهمةتحدي
- 03عرض جميع المهامتحدي
- 04حذف مهمةتحدي
- 05الكود النهائيتحدي
تجميع البيانات باستخدام Structs
7 درسًا650- 01ما هو الـ Struct؟اختبار
- 02نظرة عامة على الـ Structsتحدياختبار
- 03الوصول إلى حقول الـ Structتحدياختبار
- 04الـ Structs القابلة للتعديلتحدياختبار
- 05الـ Structs كمعاملات للدوالتحدياختبار
- 06الـ Tuple Structsتحدياختبار
- 07مراجعة - إنشاء Book Structتحدي
أزواج (المفتاح والقيمة) مع Hash Maps
8 درسًا653- 01ما هو Hash Map؟اختبار
- 02إنشاء Hash Mapاختبار
- 03إدراج أزواج (المفتاح والقيمة)تحدياختبار
- 04الوصول إلى القيمتحدياختبار
- 05التكرار عبر Hash Mapتحدياختبار
- 06تحديث قيمةتحدياختبار
- 07إزالة زوجتحدياختبار
- 08ملخص - عداد الكلماتتحدي
التعامل مع غياب القيم باستخدام 'Option'
7 درسًا645- 01ما هو الـ 'Option'؟اختبار
- 02استخدام 'match' مع 'Option'تحدياختبار
- 03'is_some()' و 'is_none()'تحدياختبار
- 04فك تغليف الـ 'Option'تحدياختبار
- 05الدالة 'expect'تحدياختبار
- 06توفير قيمة افتراضية: 'unwrap_or'تحدياختبار
- 07مراجعة - البحث عن عنصرتحدي
معالجة الأخطاء باستخدام 'Result'
7 درسًا648- 01ما هو 'Result'؟اختبار
- 02استخدام 'match' مع 'Result'تحدياختبار
- 03is_ok() و is_err()تحدياختبار
- 04اختصارات: unwrap و expectتحدياختبار
- 05عامل علامة الاستفهام '?'تحدياختبار
- 06تحويل السلاسل النصية إلى أرقامتحدياختبار
- 07ملخص - دالة القسمة الآمنةتحدي
مشروع: مخزون عناصر بسيط
5 درسًا5- 01إعداد المشروعتحدي
- 02إضافة عنصرتحدي
- 03التحقق من المخزونتحدي
- 04بيع عنصرتحدي
- 05تجميع كل الأجزاءتحدي
شرائح الـ String والمزيد
5 درسًا432- 01String مقابل &strاختبار
- 02إنشاء شرائح الـ Stringتحدياختبار
- 03الشرائح كمعاملات للدوالتحدياختبار
- 04شرائح أخرىتحدياختبار
- 05مراجعة - إيجاد الكلمة الأولىتحدي
الـ Closures والدوال المجهولة
5 درسًا431- 01ما هو الـ Closure؟اختبار
- 02تعريف Closure بسيطتحدياختبار
- 03الـ Closures مع المعاملاتتحدياختبار
- 04التقاط البيئة المحيطةتحدياختبار
- 05ملخص - Closure الجامع البسيطتحدي
التحديات النهائية
3 درسًا3- 01مراجعة - العناصر الفريدةتحدي
- 02مراجعة - مدقق ملف تعريف المستخدمتحدي
- 03مراجعة - ملخص الدرجاتتحدي
قسم 3
Object Oriented Programming
ابدأ القسمابدأتوسيعطيDiscover how to organize code with classes, objects, and reusable structuresالأساليب والسلوك
7 درسًا748- 01مقدمة في كتل التنفيذتحدياختبار
- 02معامل Selfتحدياختبار
- 03الأساليب القابلة للتعديلتحدياختبار
- 04الدوال المرتبطةتحدياختبار
- 05كتل تنفيذ متعددةتحدياختبار
- 06تسلسل الأساليبتحدياختبار
- 07مراجعة - إجراءات المستطيلتحدي
التغليف والوحدات البرمجية
6 درسًا543- 01أساسيات الوحدات البرمجيةاختبار
- 02الكلمة المفتاحية Publicتحدياختبار
- 03الحقول الخاصةتحدياختبار
- 04دوال Gettersتحدياختبار
- 05دوال Settersتحدياختبار
- 06مراجعة - الخزانة الآمنةتحدي
التعدادات المتقدمة (Advanced Enums)
5 درسًا535- 01التعدادات مع البياناتتحدياختبار
- 02الأساليب (Methods) في التعداداتتحدياختبار
- 03مطابقة حالات البياناتتحدياختبار
- 04مراجعة التعداد Optionتحدياختبار
- 05ملخص - التعداد Shapeتحدي
مشروع: حيوان أليف افتراضي
مشروع5 درسًا1- 01تعريف الحيوان الأليفتحدي
- 02إطعام الحيوان الأليفمشروع
- 03اللعب مع الحيوان الأليفمشروع
- 04تقرير الحالةمشروع
- 05التفاعل النهائيمشروع
الأنواع العامة (Generics)
5 درسًا533- 01الـ Structs العامةتحدياختبار
- 02الـ Methods العامةتحدياختبار
- 03أنواع عامة متعددةتحدياختبار
- 04الـ Functions العامةتحدياختبار
- 05مراجعة - Coordinate Pointتحدي
تعريف الـ Traits
6 درسًا641- 01ما هي الـ Trait؟تحدياختبار
- 02تنفيذ الـ Traitsتحدياختبار
- 03التنفيذات الافتراضيةتحدياختبار
- 04تجاوز التنفيذات الافتراضيةتحدياختبار
- 05الـ Traits مع المعاملاتتحدياختبار
- 06ملخص - مشغل الوسائطتحدي
السمات القياسية
5 درسًا536- 01سمة Debugتحدياختبار
- 02سمة Displayتحدياختبار
- 03Clone و Copyتحدياختبار
- 04سمات المساواةتحدياختبار
- 05مراجعة - نقطة قابلة للطباعةتحدي
Traits كقيود
5 درسًا534- 01صيغة قيود Traitsتحدياختبار
- 02قيود متعددةتحدياختبار
- 03جملة Whereتحدياختبار
- 04إرجاع الأنواع باستخدام Traitsتحدياختبار
- 05مراجعة - طابعة Genericتحدي
كائنات Trait
4 درسًا425- 01الإرسال الديناميكي (Dynamic Dispatch)تحدياختبار
- 02متجهات من الـ Traitsتحدياختبار
- 03التكرار عبر كائنات Traitتحدياختبار
- 04مراجعة - مدير حديقة الحيوانتحدي
مشروع: نظام المستندات
مشروع5 درسًا1- 01Trait الرسمتحدي
- 02مكون النصمشروع
- 03مكون الزرمشروع
- 04الـ Struct الخاص بالشاشةمشروع
- 05تشغيل الشاشةمشروع
أنماط التصميم في Rust
5 درسًا531- 01نمط Newtypeتحدياختبار
- 02التركيبتحدياختبار
- 03سمة Dropتحدياختبار
- 04From و Intoتحدياختبار
- 05ملخص - محاكاة الـ Smart Pointerتحدي
التحديات النهائية
3 درسًا3- 01مكدس عامتحدي
- 02فهرس المكتبةتحدي
- 03حاسبة مساحة الأشكالتحدي
لماذا تتعلم Rust مع Coddy
- اكتب وشغّل كود Rust حقيقي داخل المتصفح. دون تثبيت rustup ولا إعداد Cargo. كل درس يُجمِّع برنامج Rust الخاص بك على الخادم ويعرض المخرجات (وأي أخطاء من المُجمِّع) فورًا.
- ما يميّز Rust فعلًا: ownership وborrowing وlifetimes وtraits، إضافةً إلى enums وpattern matching ومعالجة الأخطاء عبر
Result. هذه أساسيات Rust التي يحتاجها كل مبرمج أنظمة. - تلميحات الذكاء الاصطناعي ترشدك عبر أخطاء مُترجم Rust الشهيرة بصرامتها، فيتحوّل الـ borrow checker إلى معلّم لك بدلًا من أن يكون جدارًا يوقفك في البداية.
- شهادة Rust مجانية عند إتمام الدورة. إشارة موثوقة لوظائف الأنظمة والبنية التحتية والـ blockchain والأنظمة المدمجة، حيث أصبحت Rust لغةً مفضّلة بشكل متزايد.
أسئلة شائعة حول تعلّم Rust
هل Rust سهل التعلم؟
تشتهر Rust بأنها صعبة، وذلك في الغالب بسبب ownership و borrow checker — وهي مفاهيم لا تكشفها معظم اللغات الأخرى. في المقابل، يلتقط المُجمِّع شريحة كبيرة من الأخطاء وقت البناء. تُقدِّم الدورة مفهومَي ownership و borrowing بشكل تدريجي، عبر تمارين صغيرة تُحوِّل borrow checker من جدار يقف في وجهك إلى معلِّم يرشدك.
فيمَ تُستخدم Rust؟
برمجة الأنظمة، والبنية التحتية (أجزاء من Linux kernel وCloudflare وDiscord وDropbox)، وأدوات سطر الأوامر، والأنظمة المدمجة، وWebAssembly، وحصة متنامية من أكواد البلوكشين والعملات الرقمية. يستهدف نفس المجالات التي يخدمها C وC++ لكن بضمانات أمان أقوى بكثير.
كم من الوقت يستغرق تعلّم Rust؟
أساسيات Rust — الصياغة، التحكم في التدفق، الدوال، البُنى (structs)، التعدادات (enums) — تحتاج من أسبوعين إلى أربعة أسابيع من الممارسة اليومية. أما إتقان ownership وborrowing وlifetimes وtraits فعادةً ما يستغرق من شهرين إلى ستة أشهر إضافية. والاحتراف الكامل (lifetimes المتقدمة، async، unsafe Rust) رحلة أطول، ويُكتسب أفضل ما يُكتسب من خلال مشاريع حقيقية.
هل أتعلم Rust أم Go؟
كلاهما لغتان حديثتان ذات أنواع ساكنة (statically-typed) موجّهتان للخوادم والبنية التحتية، لكنهما تختلفان في التنازلات. Go تركّز على سرعة التجميع، وسهولة التعامل مع التزامن، ومواصفات مختصرة — أسهل في التعلم. Rust تركّز على الأداء وأمان الذاكرة دون garbage collector — أصعب في التعلم لكنها تعمل على مستوى أدنى. اختر Go للواجهات الخلفية وأدوات السحابة؛ واختر Rust للعمل على الأنظمة، والشيفرات الحساسة للأداء، أو أي شيء كان يُكتب سابقًا بـ C/C++.
هل يمكنني تعلّم Rust عبر الإنترنت مجاناً؟
نعم. دورة Rust التفاعلية مجانية — دروس كاملة وتمارين برمجية واختبارات وشهادة. كود Rust يُجمَّع على الخادم، فلا حاجة إلى تثبيت rustup أو Cargo محلياً لتبدأ بكتابة Rust حقيقي.
هل أحصل على شهادة بعد إنهاء دورة Rust؟
نعم. بإكمالك لدورة Rust تحصل على شهادة إتمام مجانية. إشارة قابلة للتحقق يمكنك إضافتها إلى سيرتك الذاتية أو مشاركتها على LinkedIn إلى جانب أي مشاريع Rust أو أدوات CLI أو مساهمات مفتوحة المصدر أنجزتها.