هناك مرحلة في رحلة كل مبتدئ في عالم البرمجة تبدأ فيها الدروس وكأنها تتكرر. لقد تعلمت الحلقات (loops)، وفهمت الجمل الشرطية (conditionals)، وبإمكانك قراءة كود كتبه شخص آخر وفهمه إلى حد ما.
ومع ذلك، لا تزال غير قادر على بناء أي شيء بمفردك. الفجوة بين "أنا أفهم هذا" و "أنا صنعت هذا" هي النقطة التي يستسلم عندها معظم الناس. إذن، ما الذي يعبر بك هذه الفجوة؟
المشاريع.
مشروع صغير يمكنك إنجازه في عطلة نهاية الأسبوع. ثم آخر. ثم آخر، حتى يصبح بناء الأشياء أمراً روتينياً.
نحن الفريق الذي يقف خلف Coddy، منصة البرمجة العملية التي تضم أكثر من 3.6 مليون متعلم. لقد رأينا الكثير من المبتدئين يصطدمون بنفس الجدار، ورأينا أولئك الذين يتجاوزونه يفعلون نفس الشيء تقريباً: يختارون مشروعاً صغيراً، ينهونه، ثم يختارون مشروعاً آخر على الفور.
هذا كل شيء. هذا هو السر.
يقدم لك هذا الدليل 18 مشروعاً برمجياً للمبتدئين في Python و JavaScript و HTML/CSS و SQL. بالإضافة إلى بعض التحديات البرمجية للمبتدئين لاستخدامها كإحماء بين المشاريع. الهدف ليس إنجازها كلها. اختر واحداً في عطلة نهاية هذا الأسبوع وأنهه بالفعل. هذا هو بيت القصيد!

لماذا التطبيق العملي يتفوق على مجرد القراءة
قراءة الأكواد البرمجية تشعرك بالإنتاجية، لكنها نادراً ما تكون كذلك.
يمكنك قضاء شهر كامل في متابعة الدروس التعليمية (tutorials) ومع ذلك تظل غير قادر على كتابة برنامج واحد بمفردك. لماذا؟ لأن القراءة والكتابة مهارتان مختلفتان تماماً. التطبيق العملي يجبرك على تحويل فكرة غامضة إلى تعليمات واضحة خطوة بخطوة يمكن للحاسوب تنفيذها. هذه هي المهارة التي تحاول تعلمها!
المشاريع تجبرك أيضاً على البحث. هل تريد أن تعرف كيف تبدو البرمجة في الواقع؟ إنها لا تتعلق بكتابة الأكواد بقدر ما تتعلق بالبحث عن الصيغة الصحيحة (syntax)، وقراءة التوثيقات (docs)، ومعرفة سبب ظهور خطأ معين باستمرار. الدروس التعليمية تخفي هذه الأشياء، بينما تلقي بك المشاريع في قلبها منذ البداية.
وتفعل المشاريع شيئاً آخر؛ إنها تمنحك شيئاً ملموساً يمكنك الإشارة إليه. من الصعب أن تشعر بالفخر بمجرد قول "أنا أتعلم Python". لكن قول "لقد صممت أداة تحول مجلد صور إلى صيغة مختلفة" هو شيء يمكنك التباهي به أمام أصدقائك. تلك النشوة الصغيرة، ذلك الشعور بـ "أنا من صنع هذا", هو ما يدفعك للاستمرار خلال الأسابيع الصعبة.
دروس Coddy الممتعة التي تستغرق خمس دقائق فقط ترسخ أساسيات Python و JavaScript وأكثر من 20 لغة أخرى في ذاكرتك العضلية لتتمكن من البدء في بناء مشاريعك.
كيف تختار مشروعك الأول
المشروع الأول الجيد يتميز بثلاثة أشياء:
- صغير بما يكفي لإنهائه في عطلة نهاية الأسبوع.
- يستخدم مهارات تمتلكها بالفعل في الغالب، بالإضافة إلى شيء واحد جديد (على الأقل) لتتعلمه.
- ينتج عنه شيء يمكنك رؤيته في النهاية – آلة حاسبة تعمل، صفحة ويب، أو سكربت (script) يؤدي وظيفة حقيقية.
إذا غاب أحد هذه العناصر، فمن المحتمل أن يكون المشروع كبيراً جداً أو معقداً بالنسبة لك في الوقت الحالي.
الخطأ الأكثر شيوعاً؟ اختيار شيء يبدو رائعاً فقط. "سأقوم ببناء محرك شطرنج" هي فكرة ممتعة بالتأكيد، لكنها مشروع أول مروع. ستقضي أسبوعاً كاملاً في برمجة القواعد فقط ولن تصل أبداً إلى حركة حقيقية. اختر شيئاً بسيطاً يعمل بدلاً من شيء مثير يتعطل.
نصيحة إضافية: قم ببناء مشروعك باللغة التي تتعلمها الآن، وليس اللغة التي تتمنى لو كنت تتعلمها! الهدف هو المزيد من الممارسة في اللغة التي بدأتها بالفعل، وليس إضافة لغة جديدة تماماً فوقها.
مشاريع Python للمبتدئين
تعتبر Python اللغة الأكثر ملاءمة للمبتدئين، لأن الكود يُقرأ تقريباً مثل اللغة الإنجليزية العادية. تبني هذه المشاريع الستة المهارات الأساسية التي ستستخدمها دائماً: المتغيرات (variables)، الحلقات (loops)، الجمل الشرطية (conditionals)، الدوال (functions)، التعامل مع الملفات، واستخدام المكتبات (libraries).
1. لعبة تخمين الأرقام
اللعبة الكلاسيكية. يختار الحاسوب رقماً عشوائياً، وتقوم أنت بتخمينه، ويخبرك "أعلى" أو "أقل" حتى تصل إليه. يتكون الكود من حوالي 30 سطراً، ويعلمك الحلقات، الجمل الشرطية، والتعامل مع المدخلات (input).
هل أنهيتها في ساعة؟ أضف حداً أقصى لعدد التخمينات. ثم إعدادات للصعوبة. ثم ملفاً لحفظ أعلى نتيجة (high-score) بين الجولات. مشروع واحد، بثلاثة مستويات.
2. قائمة المهام عبر سطر الأوامر (CLI)
تطبيق بسيط لقائمة المهام يعمل في موجه الأوامر (terminal). أضف المهام، اعرضها، حددها كمنجزة، واحفظها في ملف حتى لا تختفي. هذه هي تجربتك الأولى في التعامل مع الملفات. وهي أيضاً المرة الأولى التي ستسأل فيها نفسك كيف تخزن بياناتك: كقائمة (list)، أو قاموس (dictionary)، أو JSON؟ قد يكون الأمر متعباً قليلاً، لكنه مفيد جداً.
3. مولد كلمات المرور
قم بإنشاء كلمات مرور قوية مع خيارات للطول، الرموز، الأرقام، والأحرف الكبيرة. إنه شعور رائع، لأن النتيجة مفيدة على الفور. إضافة مميزة: أضف وضعاً ثانياً يتحقق من مدى قوة كلمة المرور باستخدام بعض القواعد البسيطة.
4. جالب حالة الطقس
استخدم واجهة برمجة تطبيقات (API) مجانية للطقس (مثل OpenWeatherMap وغيرها التي توفر خططاً مجانية جيدة) واعرض الطقس الحالي لأي مدينة يكتبها المستخدم. هذه هي المرة الأولى التي تتواصل فيها مع خدمة ويب، وتقرأ بيانات JSON، وتتعامل مع الحالات التي لا يستجيب فيها الـ API كما كنت تأمل. يتكون الكود من حوالي 40 سطراً، ويمنحك إحساساً بطبيعة عمل تطوير الواجهات الخلفية (backend).
5. متتبع النفقات
سجل نفقاتك مع تحديد الفئة والمبلغ، واحفظها في ملف، واعرض إجمالياتك الشهرية. الجزء الخاص بـ "الحفظ في ملف" هو الدرس الأساسي هنا. بمجرد أن تشعر بالراحة، استبدل هذا الملف بـ SQLite، وستكون قد تعلمت قواعد البيانات دون أن تدرك ذلك.
6. أداة بسيطة لاستخراج بيانات الويب (Web Scraper)
اسحب العناوين الرئيسية من موقع إخباري، أو الأسعار من صفحة تسمح باستخراج البيانات (scraping). يستخدم معظم الناس مكتبة تسمى Beautiful Soup. يوضح لك هذا المشروع أن الويب أكثر فوضوية مما يبدو. نصف العمل يكمن فقط في العثور على وسم HTML الذي يحتوي فعلياً على ما تريده! مهارة مفيدة، واختبار حقيقي للواقع.
مشاريع JavaScript للمبتدئين
تعمل JavaScript في كل متصفح، مما يجعلها أسرع طريقة للحصول على شيء يمكنك رؤيته والنقر عليه على الشاشة. تعمل جميع هذه المشاريع في المتصفح دون الحاجة لتثبيت أي شيء، ولهذا السبب تعتبر انتصارات مبكرة رائعة.
7. آلة حاسبة تفاعلية
آلة حاسبة بأزرار تقوم بالعمليات الحسابية عند النقر عليها. يبدو الأمر بسيطاً، أليس كذلك؟ حسناً، ستتعطل بطرق مضحكة بمجرد إضافة الكسور العشرية، أو عدة خطوات متتالية، أو القسمة المخيفة على الصفر. في النهاية، ستكون قد كتبت أول كود لك يتفاعل مع النقرات.
8. مؤقت بومودورو (Pomodoro Timer)
مؤقت مدته 25 دقيقة يتحول إلى استراحة لمدة 5 دقائق، ثم يتكرر. الأفكار الجديدة هنا هي استخدام setInterval، وعرض الوقت بشكل جميل، وتتبع الحالة (state) بين نقرات الأزرار. أضف صوتاً في نهاية كل جولة، وستكون قد بنيت شيئاً ستستخدمه بالفعل أثناء الدراسة.
9. مقسم الفاتورة والإكرامية
أدخل قيمة الفاتورة، ونسبة الإكرامية، وعدد الأشخاص الذين يتقاسمونها. ثم اعرض ما يجب على كل شخص دفعه. إنه مشروع صغير، ولكنه مقدمة رائعة للنماذج (forms)، والتحقق من المدخلات، والتقريب. وهو يظهر كتطبيق صغير في كثير من الأحيان أكثر مما تتخيل.
تحول Coddy التعلم إلى عادة يومية مدتها خمس دقائق من خلال دروس قصيرة، وسلاسل الاستمرارية (streaks)، و Bugsy، وهو مساعد ذكاء اصطناعي مدمج في الدروس يوجهك نحو الإجابة بدلاً من إعطائها لك جاهزة.
10. لعبة بطاقات الذاكرة
اقلب أزواجاً من البطاقات، طابقها، واربح اللعبة. يعلمك هذا المشروع المصفوفات (arrays)، والخلط (shuffling)، ومعالجات النقر (click handlers)، والجزء الأصعب: تتبع البطاقات المقلوبة أو المتطابقة أو المخفية. هذا ما يسمى بـ "إدارة الحالة" (state management)، بالمناسبة، حتى لو لم يسمه أحد كذلك بعد.
11. تطبيق أسئلة المسابقات (Trivia)
احصل على أسئلة من API مجاني للمسابقات (أو اكتب قائمة بنفسك)، اعرضها واحدة تلو الأخرى، تتبع النتيجة، وانهِ اللعبة بملخص. يستحق هذا المشروع التنفيذ لأنه يجمع الكثير من المهارات في وقت واحد: طلبات fetch، تحديث الصفحة، تتبع النتيجة، عرض شاشات مختلفة، والتفكير في كيفية تدفق التطبيق بأكمله.
مشاريع HTML و CSS للمبتدئين
لا تعتبر HTML و CSS "برمجة" بالمعنى الدقيق للكلمة. لكن لا يمكنك العمل في مجال الويب بدونهما، وغالباً ما تكونان المكان الذي يختبر فيه الناس لحظة "لقد صنعت شيئاً يمكنني رؤيته!" لأول مرة. لا تتخطاهما، حتى لو كنت تتجه نحو تطوير الواجهات الخلفية (backend) لاحقاً.
12. صفحة معرض الأعمال الشخصي (Portfolio)
صفحة واحدة تحتوي على اسمك، ونبذة قصيرة عنك، وقائمة بمشاريعك، وقسم للتواصل. حاول ألا تجعلها معقدة! الهدف هو صفحة نظيفة وتعمل بشكل جيد. بمجرد نشرها على الإنترنت، ستكون قد تعلمت الاستضافة (hosting) بالصدفة. وهو بحد ذاته انتصار صغير.
13. تصميم بطاقة وصفة طعام
أعد بناء صفحة وصفة طعام مع صورة رئيسية (hero image)، وقائمة بالمكونات، وخطوات مرقمة. الدرس هنا هو استخدام flexbox و grid. يتجنب معظم المبتدئين هذه الأدوات لفترة طويلة، ثم يدركون أنها تحل الكثير من مشاكل التخطيط (layout). اختر وصفة تود طهيها. هذا يجعل العمل يبدو أكثر واقعية!
14. استنساخ صفحة هبوط (Landing Page)
اختر صفحة هبوط ذات مظهر جميل (أي صفحة رئيسية لشركة ستفي بالغرض) وأعد بناءها من الصفر باستخدام HTML و CSS فقط. تذكر: أنت لا تسرق من أحد، أنت تتعلم! بحلول الوقت الذي تنتهي فيه، ستفهم المسافات، والخطوط، والتصميم المتجاوب (responsive design).
15. جدول الأسعار
جدول أسعار من ثلاثة أعمدة مع تأثيرات التمرير (hover effects)، وعلامة "الأكثر شيوعاً"، وقائمة بالميزات تحت كل خطة. يبدو الأمر بسيطاً، لكنه ليس كذلك. محاذاة الأعمدة عندما تحتوي كل خطة على عدد مختلف من الميزات هو نوع من الألغاز الصغيرة التي تعلمك الكثير عن تخطيط CSS.
مشاريع SQL للمبتدئين
تعتبر SQL حالة استثنائية هنا، لأنه لا يوجد شيء "لتراه" في النهاية. أنت فقط تكتب استعلامات (queries) وتقرأ الصفوف. هذا كل شيء. إذن لماذا تهتم؟ لأن SQL قد تكون المهارة الأكثر فائدة في هذا الدليل بأكمله. تقريباً كل وظيفة تتعامل مع البيانات، سواء كانت تقنية أم لا، تحتاج إلى القليل من SQL عاجلاً أم آجلاً.
16. استعلامات قاعدة بيانات الأفلام
قم بتنزيل مجموعة بيانات مجانية للأفلام (يشارك IMDb واحدة، ويحتوي Kaggle على الكثير من النسخ النظيفة)، وقم بتحميلها في SQLite، وأجب عن الأسئلة باستخدام الاستعلامات. مثل أفضل 10 أفلام تقييماً في كل عقد. متوسط الطول حسب النوع. المخرجون الذين لديهم أكبر عدد من الأفلام فوق تقييم معين. كل سؤال يعلمك جزءاً جديداً: GROUP BY، JOIN، HAVING، و window functions.
17. مخطط المكتبة الشخصية (Schema)
صمم قاعدة بيانات صغيرة لمجموعتك من الكتب أو الأفلام. ستحتاج إلى جداول للعناصر، والمؤلفين، والأنواع، وحالة "مقروء" أو "مشاهد". الدرس هنا هو شيء يسمى التطبيع (normalization): تقسيم بياناتك إلى جداول منفصلة تتصل من خلال المفاتيح (keys). اتضح أن هذه هي الفكرة الأكثر فائدة على الإطلاق في قواعد البيانات.
18. استعلامات تحليلات المبيعات
ابحث عن أو أنشئ مجموعة بيانات مبيعات نموذجية (الطلبات، العملاء، المنتجات) وأجب عن أسئلة العمل. مثل كيف تتغير الإيرادات من شهر لآخر. أفضل 5 عملاء حسب إجمالي الإنفاق. المنتجات التي يتم إرجاعها أكثر من غيرها. هذا هو شكل عمل المحلل، وهذه الاستعلامات تنتقل مباشرة إلى وظائف البيانات.
تحديات برمجية للمبتدئين (عندما تكون بين المشاريع)
المشاريع هي الوجبة الرئيسية، لكن التحديات البرمجية للمبتدئين تعتبر وجبة خفيفة رائعة على الجانب. إنها أصغر وأسرع، وتحافظ على مهاراتك حادة في الأيام التي لا تملك فيها الوقت لمشروع كامل.
إليك بعض التحديات التي تستحق التنفيذ بأي لغة:
| التحدي | المهارات التي يمارسها | الوقت |
|---|---|---|
| FizzBuzz | الحلقات والقواعد البسيطة (طباعة الأرقام، مع تغيير عند مضاعفات 3 و 5) | 15–30 دقيقة |
| التحقق من الكلمات المتناظرة (Palindrome) | السلاسل النصية (Strings) (هل تُقرأ الكلمة بنفس الطريقة من الخلف؟) | 15–30 دقيقة |
| مولد أرقام فيبوناتشي (Fibonacci) | الحلقات أو التكرار (recursion) (طباعة أول N من أرقام فيبوناتشي) | 15–30 دقيقة |
| كاشف الجناس التصحيفي (Anagram) | السلاسل النصية (هل تستخدم كلمتان نفس الأحرف؟) | 15–30 دقيقة |
| مجموع الأرقام | الرياضيات الأساسية (جمع أرقام عدد ما) | 15–30 دقيقة |
تحتوي مواقع مثل Codewars و HackerRank على المئات من التحديات الأخرى، مرتبة حسب الصعوبة. ابدأ بالمستوى الأسهل، ولا تشعر بالسوء حيال ذلك! المستوى السهل مفيد حقاً لفترة طويلة. الهدف ليس تسلق المراتب، بل الحفاظ على نشاطك بين المشاريع الأكبر.
كيف تنهي ما بدأته
اختيار المشروع هو الجزء السهل. إكماله هو النقطة التي يتراجع عندها معظم الناس. إليك بعض العادات التي يميل المنجزون إلى مشاركتها:
-
اكتب كيف يبدو شكل "الانتهاء" قبل أن تبدأ. مجرد فقرة قصيرة واحدة، بكلمات بسيطة. على سبيل المثال: "الانتهاء يعني أن المستخدم يمكنه كتابة اسم مدينة، ورؤية درجة الحرارة الحالية، ولا يتعطل التطبيق إذا كانت المدينة غير موجودة." خط النهاية الواضح يمنعك من إضافة ميزة تلو الأخرى وعدم الانتهاء أبداً.
-
حدد موعداً نهائياً قصيراً جداً. عطلة نهاية أسبوع للمشاريع الصغيرة، وعطلتا نهاية أسبوع على الأكثر للمشاريع الأكبر. غالباً ما يحاول المبتدئون القيام بالكثير. الحد الصارم يجعلك تستغني عن بعض الأشياء بدلاً من تلميعها إلى الأبد.
-
ابنِ النسخة القبيحة أولاً. اجعل المشروع يعمل من البداية إلى النهاية قبل أن تجعله جميلاً. آلة حاسبة بسيطة تعمل أفضل من آلة حاسبة جميلة نصف مكتملة. يمكنك دائماً تحسين المظهر لاحقاً. لكن لا يمكنك بسهولة تحويل شيء "جميل" إلى شيء "يعمل".
-
هل علقت؟ امنح نفسك 20 دقيقة، ثم ابحث عن الحل. المبتدئون إما يستسلمون بسرعة كبيرة أو يعانون لساعات مع نفس الخطأ. عشرون دقيقة هي المدة المثالية: طويلة بما يكفي للتفكير، وقصيرة بما يكفي لكي لا تضيع يومك كله.
أين يتناسب Coddy مع كل هذا
المشاريع هي الهدف. الشيء الذي يقف في طريقك هو الفهم المهتز للأساسيات، مثل الاضطرار إلى البحث عن كيفية كتابة حلقة for-loop في كل مرة. هذا هو الجزء الذي صُمم Coddy لإصلاحه!
تغطي دروسنا التي تبلغ مدتها خمس دقائق Python و JavaScript و HTML و CSS و SQL وأكثر من 20 لغة أخرى، مع خطة مجانية. تم تصميم هذا التنسيق للممارسة اليومية. درس واحد في القطار، وآخر قبل النوم، وستبدأ الأساسيات في الرسوخ في ذهنك.
و Bugsy، مساعد الذكاء الاصطناعي داخل كل درس، يوجهك نحو الإجابة بدلاً من مجرد تسليمها لك. هذا يعمل بشكل أفضل بكثير من نسخ الحلول عندما تريد تذكر ما تعلمته.
نحن لا نستبدل المشاريع. نحن فقط نجعلها أقل إيلاماً! بحلول الوقت الذي تجلس فيه لبناء مؤقت بومودورو (Pomodoro timer)، لن تكون في صراع مع JavaScript للمرة الأولى. أنت تعرف بالفعل كيف تعمل الدالة (function) وكيف يبدو مستمع الأحداث (event listener). لذلك يصبح المشروع متمحوراً حول التصميم والمنطق (الجزء الممتع).
وإذا كنت تتعلم بجانب وظيفة بدوام كامل، فإن هذه الدروس القصيرة تتناسب بالفعل مع يومك. خمس دقائق هي شيء يمكنك إيجاده دائماً تقريباً. ساعة كاملة؟ ليس كثيراً، بغض النظر عن عدد المرات التي نعد فيها أنفسنا بذلك.
Share this article
About the Author
Coddy Team
Team
Frequently Asked Questions
ما هو أفضل مشروع برمجي أول للمبتدئين؟
لعبة تخمين الأرقام بلغة Python، أو آلة حاسبة بلغة JavaScript. كلاهما صغيران، ويمكن إنجازهما في أمسية واحدة، ويعلمانك المفاهيم الأساسية (الإدخال، الشروط، الحلقات، الدوال الأساسية) دون الكثير من التعقيدات المحيطة.
كم من الوقت يجب أن يستغرق مشروع البرمجة للمبتدئين؟
عطلة نهاية أسبوع واحدة كحد أقصى. أي مشروع يستغرق أكثر من عطلتي نهاية أسبوع ربما يكون نطاقه كبيراً جداً. الهدف من المشاريع الأولى هو التكرار والممارسة. إنجاز مجموعة من الأشياء الصغيرة يعلمك أكثر من المماطلة في إنجاز شيء واحد كبير.
هل يجب أن أتعلم النظرية أم أكتفي ببناء المشاريع؟
كلاهما، ولكن ركز أكثر على البناء. احصل على ما يكفي من النظرية للبدء (المتغيرات، الحلقات، الشروط، الدوال)، ثم قم ببناء شيء صغير. النظرية التي ستحتفظ بها فعلياً هي النظرية التي احتجتها لإنهاء مشروع. أما الباقي فسيتلاشى.
ما هي اللغة الأسهل لمشاريع البرمجة للمبتدئين؟
لغة Python هي الأكثر سهولة من حيث بناء الجملة (syntax). ولغة JavaScript هي الأسرع للحصول على مخرجات مرئية لأنها تعمل في المتصفح. اختر واحدة منهما، والتزم بها لثلاثة مشاريع على الأقل قبل أن تفكر في التبديل.
هل تحديات البرمجة للمبتدئين كافية بمفردها؟
ليس تماماً. التحديات تصقل مهارات معينة، لكنها لا تعلمك كيفية هيكلة برنامج كامل. استخدمها كتمارين إحماء وإضافات، وليس كبديل للمشاريع الحقيقية.
كيف أعرف ما إذا كانت فكرة مشروعي كبيرة جداً؟
إذا لم تتمكن من وصف شكل المشروع "المكتمل" في فقرة واحدة، فهو كبير جداً. وإذا كان وصفك يتضمن حرف "و" أكثر من ثلاث مرات، فهو أيضاً كبير جداً. قم بتقليل الميزات حتى يصبح الحجم مناسباً.
هل يجب أن أنسخ المشاريع من الدروس التعليمية أم أبتكر مشاريعي الخاصة؟
انسخ أولاً، ثم قم بالتعديل. قم ببناء نسخة الدرس التعليمي، ثم أضف ميزة واحدة غير موجودة فيها. التعديل هو المكان الذي يحدث فيه التعلم الفعلي.
ماذا لو علقت وكانت رسالة الخطأ غير مفهومة؟
اقرأ رسالة الخطأ ببطء، ثم الصقها في محرك بحث. حوالي 95% من أخطاء المبتدئين تم طرحها والإجابة عليها عبر الإنترنت عشرات المرات. مهارة قراءة رسائل الخطأ والعثور على الإجابة الصحيحة تمثل بصراحة نصف عملية البرمجة.


