‫البرمجة؟‬ ‫هي‬ ‫ما‬
‫بأوامر‬ ‫للتنفيذ‬ ‫وقابلة‬ ‫ومترابطة‬ ‫صغيرة‬ ‫أجزاء‬ ‫إلى‬ ‫الحاسوب‬ ‫عبر‬ ‫تنفيذها‬ ‫يراد‬ ‫معينة‬ ‫مهمة‬ ‫تقسيم‬ ‫عملية‬ ‫هي‬ ‫البرمجة‬
‫كت‬ ‫يجري‬ ،‫ذلك‬ ‫بعد‬ .‫بسيطة‬
‫مع‬ ‫للتخاطب‬ ‫وسيلة‬ ‫هي‬ ‫والتي‬ ،‫البرمجة‬ ‫لغات‬ ‫بإحدى‬ ‫والتعليمات‬ ‫األوامر‬ ‫هذه‬ ‫ابة‬
‫الحاسوب‬
.
‫البرمجة‬ ‫ماهية‬ ‫يشرح‬ ‫الذي‬ ‫التالي‬ ‫العملي‬ ‫المثال‬ ‫إليك‬
:
‫إلى‬ ‫أصل‬ ‫كيف‬ ‫أعرف‬ ‫وال‬ ‫الحديقة‬ ‫بجانب‬ ‫واقف‬ ‫"أنا‬ :‫لك‬ ‫ليقول‬ ‫بك‬ ‫واتصل‬ ،‫اليوم‬ ‫لك‬ ‫صديق‬ ‫زيارة‬ ‫تتوقع‬ ‫كنت‬ ‫إن‬
‫كل‬ ‫تمر‬ ً‫ة‬‫عاد‬ ‫أنت‬ ."‫منزلك‬
‫إن‬ ‫ينفع‬ ‫هل‬ ‫برأيك‬ .‫بشبر‬ ‫ا‬ً‫شبر‬ ‫منزلك‬ ‫وبين‬ ‫بينها‬ ‫الطريق‬ ‫وتعرف‬ ‫الحديقة‬ ‫جانب‬ ‫من‬ ‫يوم‬
‫المشكلة‬ ‫ِّم‬‫تقس‬ ‫أن‬ ‫إلى‬ ‫تحتاج‬ .‫بالتأكيد‬ ،‫ال‬ ‫جانبها"؟‬ ‫من‬ ‫أمر‬ ‫يوم‬ ‫كل‬ ‫وأنا‬ ‫الحديقة‬ ‫من‬ ‫وقريب‬ ‫معروف‬ ‫"منزلي‬ :‫له‬ ‫قلت‬
‫وتنفيذها‬ ‫فهمها‬ ‫صديقك‬ ‫يستطيع‬ ‫بسيطة‬ ‫خطوات‬ ‫تمثل‬ ‫أجزاء‬ ‫إلى‬
.
‫أخبره‬ ، ً
‫مثًل‬
‫ثم‬ "‫الشارع‬ ‫نهاية‬ ‫إلى‬ ‫"سر‬ ‫ثم‬ "‫اليمين‬ ‫إلى‬ ‫"اتجه‬ ‫ثم‬ "‫أمتار‬ ‫عشرة‬ ‫األمام‬ ‫إلى‬ ‫"سر‬ :‫التالية‬ ‫األوامر‬ ‫ينفذ‬ ‫أن‬
‫إلى‬ ‫"اصعد‬ ‫ثم‬ "‫الرابع‬ ‫البناء‬ ‫إلى‬ ‫تصل‬ ‫حتى‬ ‫اليسار‬ ‫على‬ ‫الموجودة‬ ‫األبنية‬ َّ‫د‬ُ‫ع‬" :‫ذلك‬ ‫بعد‬ ‫أخبره‬ ."‫اليسار‬ ‫إلى‬ ‫"اتجه‬
‫أ‬ ‫سيظهر‬ ‫الذي‬ ‫الباب‬ ‫على‬ ‫"اطرق‬ ‫ثم‬ "‫الثاني‬ ‫الطابق‬
."‫مامك‬
.‫بدقة‬ ‫منزلك‬ ‫على‬ ‫صديقك‬ ‫تدل‬ ‫أن‬ ‫تستطيع‬ ،‫الطريقة‬ ‫بهذه‬
‫البرمجة‬ ‫لغات‬ ‫بإحدى‬ ‫تكتب‬ ‫التي‬ ‫التعابير‬ ‫إنها‬ ‫قوسين؟‬ ‫بين‬ ‫المكتوبة‬ ‫التعابير‬ ‫ترى‬ ‫فهل‬ .‫ا‬ً‫م‬‫تما‬ ‫نفسه‬ ‫الشيء‬ ‫هي‬ ‫البرمجة‬
‫السابق‬ ‫صديقك‬ ‫من‬ ً
‫بدال‬ ‫الحاسوب‬ ‫تخاطب‬ ‫والتي‬
.
‫والق‬ ‫المفردات‬ ‫من‬ ‫مجموعة‬ ‫هي‬ ‫البرمجة‬ ‫لغات‬
‫بتنفيذ‬ ‫وأمره‬ ‫الحاسوب‬ ‫مع‬ ‫للتخاطب‬ ً‫ة‬‫وسيط‬ ً‫ة‬‫لغ‬ ‫تشكل‬ ‫التي‬ ‫اللغوية‬ ‫واعد‬
‫ملحة‬ ‫حاجة‬ ‫هنالك‬ ‫كان‬ ‫لذا‬ ،‫الحاسوب‬ ‫لغة‬ ‫يفهمون‬ ‫البشر‬ ‫وال‬ ‫البشر‬ ‫لغة‬ ‫يفهم‬ ‫الحاسوب‬ ‫فًل‬ .‫َّدة‬‫د‬‫مح‬ ‫وأشياء‬ ‫تعليمات‬
‫البرمجة‬ ‫لغة‬ ‫مفهوم‬ ‫انبثق‬ ،‫لذلك‬ ً‫ة‬‫نتيج‬ ‫كًلهما؛‬ ‫يفهمها‬ ‫وسيطة‬ ‫لغة‬ ‫لوجود‬
.
‫لو‬ ،‫أخرى‬ ‫بعبارة‬
‫يأتي‬ ‫وهنا‬ ،‫نبتغيه‬ ‫ما‬ ‫ليفهم‬ ‫وبينه‬ ‫بيننا‬ ٍ‫ة‬‫مشترك‬ ٍ‫ة‬‫لغ‬ ‫إلى‬ ‫فسنحتاج‬ ،"‫كذا‬ ‫"افعل‬ ‫للحاسوب‬ ‫نقول‬ ‫أن‬ ‫أردنا‬
‫والحاسوب‬ ‫المبرمج‬ ‫بين‬ ‫وسيط‬ ‫أنها‬ ‫على‬ ‫البرمجة‬ ‫لغات‬ ‫تعد‬ ‫أن‬ ‫يمكنك‬ ‫إذ‬ ،‫البرمجة‬ ‫لغات‬ ‫دور‬
.
‫إلتمام‬ ‫بها‬ ‫القيام‬ ‫الحاسوب‬ ‫على‬ ‫التي‬ ‫الخطوات‬ ‫تسلسل‬ ‫في‬ ‫بالتفكير‬ ‫المبرمج‬ ‫يهتم‬
‫حساب‬ ‫(مثل‬ ‫منه‬ ‫المطلوب‬ ‫العمل‬
‫البرمجة‬ ‫لغات‬ ‫بإحدى‬ ‫منطقي‬ ‫بترتيب‬ ‫الخطوات‬ ‫هذه‬ ‫كتابة‬ ‫ثم‬ ،)‫الوالدة‬ ‫تاريخ‬ ‫على‬ ‫ًا‬‫د‬‫اعتما‬ ‫العمر‬
.
‫الشائع‬ ‫السؤال‬ ‫إلى‬ ‫ننتقل‬ ‫يجعلنا‬ ‫وهذا‬ ،‫المنطقي‬ ‫التفكير‬ ‫هو‬ ‫المبرمج‬ ‫مهمة‬ ‫من‬ ‫ا‬ً‫ء‬‫جز‬ ‫أن‬ ‫السابقة‬ ‫الجملة‬ ‫في‬ َ‫الحظت‬ ‫ربما‬
‫وأص‬ ‫البرمجة‬ ‫تعلم‬ ‫أستطيع‬ ‫"هل‬
‫ا؟‬ً‫ج‬‫مبرم‬ ‫ألصبح‬ ‫مؤهل‬ ‫أنا‬ ‫"هل‬ ‫أو‬ "‫ا؟‬ً‫ج‬‫مبرم‬ ‫بح‬
".
‫البرمجة؟‬ ‫تتعلم‬ ‫لماذا‬
‫الصفر‬ ‫من‬ ‫البرمجة‬ ‫تعلم‬ ‫أن‬ ‫يبدو‬
‫البرمجة‬ ‫تتعلم‬ ‫يجعلك‬ ‫ا‬ً‫حافز‬ ‫تريد‬ ‫لكنك‬ ،‫توقعتها‬ ‫التي‬ ‫بالصعوبة‬ ‫ليس‬
.
‫في‬ ‫التوظيف‬ ‫مجال‬ ‫ستكتسح‬ ‫المبرمجين‬ ‫وظائف‬ ‫وأن‬ ،‫المستقبل‬ ‫مجال‬ ‫هي‬ ‫البرمجة‬ ‫أن‬ ‫ا‬ً‫كثير‬ ‫تسمع‬
‫القادمة؟‬ ‫السنوات‬
ً
‫دخًل‬ ‫الوظائف‬ ‫أعلى‬ ‫من‬ ‫هي‬ ‫البرمجة‬ ‫وظائف‬ َّ‫أن‬ ‫كما‬ ،‫ذلك‬ ‫لك‬ ‫أؤكد‬ ‫أن‬ ‫أستطيع‬
.
‫أفضل‬ ‫هو‬ ‫بها‬ ‫والعمل‬ ‫البرمجة‬ ‫تعلم‬ ‫فإن‬ ،‫ممتاز‬ ٍ‫ل‬‫دخ‬ ‫وذا‬ ‫ا‬ً‫مستقر‬ ً
‫عمًل‬ ‫وتريد‬ ‫االحترافي‬ ‫مشوارك‬ ‫بدء‬ ‫تريد‬ ‫كنت‬ ‫فلو‬
‫أمامك‬ ٍ
‫خيار‬
.
‫أما‬ ‫مكتبي‬ ‫كله‬ ‫فالعمل‬ ،‫ا‬ً‫م‬‫عمو‬ ‫مريحة‬ ‫البرمجة‬ ‫وظائف‬
‫نظام‬ ‫تتبع‬ ‫الشركات‬ ‫وأغلبية‬ ،‫ومناسبة‬ ‫مريحة‬ ‫بيئة‬ ‫في‬ ‫حاسوب‬ ‫م‬
‫العمل‬
40
‫(أي‬ ‫األسبوع‬ ‫في‬ ‫ساعة‬
5
‫لمدة‬ ‫أيام‬
8
‫خًلل‬ ‫من‬ ‫بعد‬ ‫عن‬ ‫العمل‬ ‫على‬ ‫قدرتك‬ ‫عن‬ ‫تغفل‬ ‫وال‬ ،)‫ًا‬‫ي‬‫يوم‬ ‫ساعات‬
‫فراغك‬ ‫أوقات‬ ‫في‬ ‫كمستقل‬ ‫أو‬ ‫االنترنت‬
.
‫الحاس‬ ‫مع‬ ‫تعاملك‬ ‫أن‬ ‫ا‬ً‫ص‬‫خصو‬ ،‫ا‬ً‫كثير‬ ‫تفكيرك‬ ‫أفق‬ ‫سيوسع‬ ‫البرمجة‬ ‫تعلم‬
‫أن‬ ‫وستجد‬ ،‫المنطقي‬ ‫التفكير‬ ‫إلى‬ ‫يتبع‬ ‫وب‬
‫الحاسوب‬ ‫في‬ ‫أخرى‬ ‫بأمور‬ ‫القيام‬ ‫لك‬ ‫ستسهل‬ ‫البرمجة‬
.
‫ا‬ً‫ج‬‫مبرم‬ ‫لتصبح‬ ‫معرفته‬ ‫عليك‬ ‫ما‬
َّ‫أن‬ ٌ‫ح‬‫فصحي‬ ،‫ا‬ً‫ح‬‫صحي‬ ‫ليس‬ ‫وهذا‬ ،‫ا‬ً‫ممتاز‬ ‫ليس‬ ‫الرياضيات‬ ‫في‬ ‫مستواهم‬ ‫بأن‬ ‫متذرعين‬ ‫البرمجة‬ ‫تعلم‬ ‫في‬ ‫الكثيرون‬ ‫يتردد‬
‫كم‬ ‫عملك‬ ‫أداء‬ ‫أثناء‬ ‫تعترضك‬ ‫أمور‬ ‫هنالك‬
‫ال‬ ‫طويلة‬ ‫فترات‬ ‫عليك‬ ‫تمر‬ ‫قد‬ ‫ه‬َّ‫ن‬‫أ‬ ‫إال‬ ،‫الرياضيات‬ ‫في‬ ‫خبرة‬ ‫تتطلب‬ ‫برمج‬
‫رياضية‬ ‫مسائل‬ ‫إلى‬ ‫فيها‬ ‫تحتاج‬
.
‫مشكلة‬ ‫أو‬ ‫مسألة‬ ‫أية‬ ‫اعتراضك‬ ‫حين‬ ‫إلى‬ .‫الجميع‬ ‫يعرفها‬ ‫التي‬ ‫األساسيات‬ ‫هو‬ ‫البرمجة‬ ‫تعلم‬ ‫في‬ ‫للبدء‬ ‫يلزمك‬ ‫ما‬ ‫كل‬
‫والمراجع‬ ‫المصادر‬ ‫من‬ ‫الكثير‬ ‫هنالك‬ ،‫الرياضيات‬ ‫في‬ ‫مهارة‬ ‫تتطلب‬
،‫أخرى‬ ‫بعبارة‬ .‫آنذاك‬ ‫إليها‬ ‫الرجوع‬ ‫تستطيع‬ ‫التي‬
‫منطقي‬ ‫بشكل‬ ‫التفكير‬ ‫على‬ ‫ا‬ً‫قادر‬ ‫تكون‬ ‫أن‬ ‫هو‬ ‫ذلك‬ ‫من‬ ‫األهم‬ .‫تخف‬ ‫وال‬ ً
‫قليًل‬ ‫األمر‬ ‫هذا‬ ‫ل‬ ِّ‫أج‬
.
‫المنطقي‬ ‫التفكير‬
‫مظلة‬ ‫تحت‬ ‫المبرمجين‬ ‫كافة‬ ‫تجمع‬ ‫التي‬ ‫المهارة‬ ‫هو‬ ‫المنطقي‬ ‫التفكير‬
‫ت‬ ‫أن‬ ‫يجب‬ ‫إذ‬ ،‫الخوارزميات‬ ‫كتابة‬ ‫أساس‬ ‫وهي‬ ،‫واحدة‬
‫على‬ ‫ا‬ً‫قادر‬ ‫كون‬
‫وتطويرها‬ ‫المهارة‬ ‫هذه‬ ‫اكتساب‬
.
‫الخوارزميات‬
‫فكل‬ ،‫البعض‬ ‫منها‬ ‫ينفر‬ ‫التي‬ ‫المرعبة‬ ‫الكلمة‬ ‫هي‬ "‫"الخوارزميات‬ ‫كلمة‬
‫الطويلة‬ ‫والمعادالت‬ ‫المعقدة‬ ‫الرياضيات‬ ‫هو‬ ‫ذكرها‬ ‫عند‬ ‫يتخيلونه‬ ‫ما‬
ٌ‫تطبيق‬ ‫هي‬ ‫فالخوازرميات‬ ‫ًا؛‬‫د‬‫ج‬ ‫بسيط‬ ‫األمر‬ ‫لكن‬ ،‫العجيبة‬ ‫والرموز‬
‫المنطق‬ ‫للتفكير‬
‫ا‬ً‫م‬‫تما‬ ‫واضحة‬ ‫متسلسلة‬ ‫خطوات‬ ‫في‬ ‫ي‬
‫مشكلة‬ ‫لحل‬
‫ما‬
.
‫بكيفية‬ ‫سأخبرك‬ ،‫ًا‬‫د‬‫معق‬ ‫ا‬ً‫أمر‬ ‫ليست‬ ‫الخوارزميات‬ ‫أن‬ ‫لك‬ ‫ح‬ ِّ
‫أوض‬ ‫لكي‬
‫الحالي‬ ‫عمره‬ ‫يعيد‬ ‫ثم‬ ،‫ميًلده‬ ‫سنة‬ ‫عن‬ ‫المستخدم‬ ‫يسأل‬ ‫برنامج‬ ‫كتابة‬
‫بالسنوات‬
.
•
‫من‬ ‫فيها‬ ‫نطلب‬ ‫نصية‬ ‫رسالة‬ ‫إظهار‬ :‫األولى‬ ‫الخطوة‬
‫المستخدم‬
‫ميًلده‬ ‫تاريخ‬ ‫إدخال‬
.
•
‫المستخدم‬ ‫أدخلها‬ ‫التي‬ ‫الميًلد‬ ‫سنة‬ ‫تخزين‬ :‫الثانية‬ ‫الخطوة‬
.
•
‫الحالية‬ ‫السنة‬ ‫على‬ ‫الحصول‬ :‫الثالثة‬ ‫الخطوة‬
.
•
‫الحالية‬ ‫السنة‬ ‫من‬ ‫المستخدم‬ ‫مدخًلت‬ ‫طرح‬ :‫الرابعة‬ ‫الخطوة‬
.
•
‫الناتج‬ ‫إظهار‬ :‫واألخيرة‬ ‫الخامسة‬ ‫الخطوة‬
.
‫بسيطة‬ ‫خوارزمية‬ ‫هو‬ ‫سبق‬ ‫ما‬
‫إذا‬ ‫لكن‬ ،‫متسلسلة‬ ‫خطوات‬ ‫من‬ ‫تتألف‬
‫من‬ ‫أكبر‬ ‫ا‬ً‫خ‬‫تاري‬ ‫المستخدم‬ ‫أدخل‬ ‫حال‬ ‫في‬ ً
‫خلًل‬ ‫سنجد‬ ‫فيها‬ ‫النظر‬ ‫أمعنا‬
‫أدخل‬ ‫لو‬ ‫أي‬ ،‫الحالي‬ ‫التاريخ‬
2050
‫من‬ ً
‫بدال‬ ً
‫مثًل‬
1995
‫عندها‬ .
‫هذه‬ ‫نحل‬ ‫أن‬ ‫ويمكننا‬ ،‫ًا‬‫ب‬‫سال‬ ‫الخوارزمية‬ ‫من‬ ‫المعاد‬ ‫العمر‬ ‫سيصبح‬
‫المستخدم‬ ‫يمنع‬ ‫شرط‬ ‫بوضع‬ ‫ًا‬‫ي‬‫منطق‬ ‫اإلشكالية‬
‫من‬ ‫أكبر‬ ‫تاريخ‬ ‫إدخال‬ ‫من‬
‫الحالي‬ ‫التاريخ‬
.
‫العمل‬ ‫إطارات‬
‫العمل‬ ‫"إطارات‬ ‫هي‬ ‫البرمجة‬ ‫عالم‬ ‫في‬ ‫ًا‬‫د‬‫ج‬ ‫شائعة‬ ‫أخرى‬ ‫كلمة‬
" frameworks
‫من‬ ‫مجموعة‬ ‫هي‬ ‫العمل‬ ‫إطارات‬ ،
‫تسجيل‬ ‫مثل‬ ‫خدمات‬ ‫تقدم‬ ‫جاهزة‬ ‫وحدات‬ ‫بتوفير‬ ،‫التطبيقات‬ ‫إنشاء‬ ‫المبرمج‬ ‫على‬ ‫تسهل‬ ‫التي‬ ‫البرمجية‬ ‫الشيفرات‬
،‫المستخدمين‬
‫في‬ ‫تساعدك‬ ‫برمجية‬ ‫أدوات‬ ‫ها‬‫تعد‬ ‫أن‬ ‫يمكنك‬ ‫أي‬ .‫البيانات‬ ‫قواعد‬ ‫مع‬ ‫والتعامل‬ ،‫اإللكتروني‬ ‫البريد‬ ‫وإرسال‬
‫ذلك‬ ‫فعل‬ ‫لك‬ ‫ل‬ِّ‫ه‬‫وتس‬ ‫تطبيقك‬ ‫برمجة‬
.
‫البرمجة‬ ‫تعلم‬ ‫في‬ ‫للبدء‬ ‫الًلزمة‬ ‫األدوات‬
‫يمتلك‬ ‫أن‬ ‫وإنما‬ ،‫الحواسيب‬ ‫أفضل‬ ‫من‬ ‫يكون‬ ‫أن‬ ‫الضروري‬ ‫من‬ ‫(ليس‬ ‫جيدة‬ ‫بمواصفات‬ ٍ‫ب‬‫حاسو‬ ‫إلى‬ ‫تحتاج‬
‫ًا‬‫د‬‫جي‬ ‫ا‬ً‫مقدار‬
‫ًا‬‫د‬‫معتا‬ ‫نفسك‬ ‫ترى‬ ‫وما‬ ‫لك‬ ‫يحلو‬ ‫ما‬ ‫استعمل‬ ،‫معين‬ ‫تشغيل‬ ‫نظام‬ ‫أو‬ ‫معينة‬ ‫بمواصفات‬ ‫ننصح‬ ‫ال‬ .)‫العشوائية‬ ‫الذاكرة‬ ‫من‬
)‫ماك‬ ‫أو‬ ‫لينكس‬ ‫أو‬ ‫ويندوز‬ ‫كان‬ ً‫ء‬‫(سوا‬ ‫عليه‬
.
‫ا‬ ‫والمكتبات‬ ‫البرمجيات‬ ‫ولتنزيل‬ ،‫التعليمية‬ ‫المواد‬ ‫إلى‬ ‫للوصول‬ ‫باإلنترنت‬ ‫جيد‬ ٍ‫ل‬‫اتصا‬ ‫إلى‬ ‫ًا‬‫ض‬‫أي‬ ‫ستحتاج‬
‫لًلزمة‬
‫للتطوير‬
.
‫لها‬ ‫رئيسيان‬ ‫نوعان‬ ‫وهنالك‬ ،‫الشيفرات‬ ‫لكتابة‬ ‫برمجية‬ ‫إلى‬ ‫فستحتاج‬ ،‫التطوير‬ ‫أدوات‬ ‫بخصوص‬ ‫أما‬
:
•
‫مثل‬ :‫النصية‬ ‫المحررات‬
Visual Studio Code
‫أو‬
Atom
‫أو‬
Sublime Text
‫أو‬
Bracktes
‫أو‬
.
Notepad++
‫ميزات‬ ‫وتوفر‬ ،‫أغلبها‬ ‫في‬ ‫بسيطة‬ ‫تكون‬ ‫النصية‬ ‫المحررات‬ ‫وهذه‬
‫تلوين‬ ‫مثل‬ ‫أساسية‬
‫المحررات‬ ‫هذه‬ ‫وظيفة‬ .‫وظائفها‬ ‫لزيادة‬ ‫إضافات‬ ‫أغلبيتها‬ ‫وتدعم‬ ،‫التلقائي‬ ‫اإلكمال‬ ‫ميزات‬ ‫وبعض‬ ،‫الشيفرات‬
‫بتجربة‬ ‫ننصحك‬ .‫وسرعة‬ ‫بسهولة‬ ‫الشيفرات‬ ‫تعديل‬ ‫هي‬ ‫ا‬ً‫م‬‫عمو‬ ‫النصية‬
Visual Studio Code
‫لشهرته‬
‫شركة‬ ‫من‬ ‫الممتاز‬ ‫ودعمه‬ ‫إضافاته‬ ‫وكثرة‬ ‫ًا‬‫ي‬‫حال‬
Microsoft.
•
‫بيئا‬
‫مثل‬ :‫المدمجة‬ ‫التطوير‬ ‫ت‬
Visual Studio
‫و‬
Eclipse
‫و‬
Android Studio
‫و‬
NetBeans
‫و‬
Apple Xcode
‫تشغيل‬ ‫مثل‬ ،‫النصية‬ ‫المحررات‬ ‫من‬ ‫بكثير‬ ‫أكثر‬ ‫ميزات‬ ‫توفر‬ ‫البيئات‬ ‫وهذه‬ .‫وغيرها‬
‫وتنقيحها‬ ‫الشيفرات‬
(debugging)
‫ذلك‬ ‫وخًلف‬ ‫البيانات‬ ‫بقواعد‬ ‫واالتصال‬ ‫باإلصدارات‬ ‫التحكم‬ ‫وميزات‬
.
‫لما‬
‫البرمجة؟‬ ‫لغات‬ ‫من‬ ‫العديد‬ ‫هناك‬ ‫ذا‬
‫لغة‬ ‫هنالك‬ ‫يكون‬ ‫ال‬ ‫لماذا‬ ‫ذاته؟‬ ‫الهدف‬ ‫تنفذ‬ ‫كلها‬ ‫اللغات‬ ‫هذه‬ ‫أليست‬ ‫البرمجة؟‬ ‫لغات‬ ‫من‬ ‫العديد‬ ‫هناك‬ ‫لماذا‬ ،‫تتساءل‬ ‫قد‬
‫والحاسوب؟‬ ‫المبرمجين‬ ‫بين‬ ‫موحدة‬
‫ا‬ .‫الصورة‬ ‫في‬ ‫أمامك‬ ‫تراها‬ ‫التي‬ ‫اللغات‬ ‫إحدى‬ ‫ليست‬ ‫ولكن‬ ‫واحدة‬ ‫برمجة‬ ‫لغة‬ ‫توجد‬ ‫ه‬‫أن‬ ‫الحقيقة‬
‫هي‬ ‫إليها‬ ‫نشير‬ ‫التي‬ ‫للغة‬
‫منها‬ ‫ا‬ً‫ع‬‫مقط‬ ‫إليك‬ ‫تبدو؟‬ ‫وكيف‬ ‫اآللة‬ ‫لغة‬ ‫هي‬ ‫ما‬ ‫أتتساءل‬ .‫وفهمها‬ ‫قراءتها‬ ‫الحاسوب‬ ‫معالج‬ ‫يستطيع‬ ‫التي‬ "‫اآللة‬ ‫"لغة‬
:
‫والو‬ ‫األصفار‬ ‫سوى‬ ‫ا‬ً‫ئ‬‫شي‬ ‫يفهم‬ ‫ال‬ ‫الحاسوب‬ ‫معالج‬ ‫أن‬ ٌ‫م‬‫معلو‬
‫ا‬
‫اللغة‬ ‫وهذه‬ ،‫حدات‬
-
‫اآللة‬ ‫لغة‬ ‫أي‬
-
‫لألصفار‬ ‫تمثيل‬ ‫هي‬
‫والواحدات‬
‫حتى‬ ‫إذ‬ ،‫البشر‬ ‫على‬ ‫الفهم‬ ‫عصية‬ ‫اللغة‬ ‫هذه‬ ‫أن‬ ‫بالذكر‬ ‫الجدير‬ .‫فعله‬ ‫عليه‬ ‫يجب‬ ‫بما‬ ‫الحاسوب‬ ‫تخبر‬ ‫بطريقة‬
‫لن‬ ،)‫الحاسوب‬ ‫اختراع‬ ‫بداية‬ ‫من‬ ‫األولى‬ ‫السنوات‬ ‫في‬ ‫(كما‬ ‫بالصورة‬ ‫الموضحة‬ ‫الشيفرة‬ ‫مثل‬ ‫شيفرة‬ ‫كتابة‬ ‫استطعت‬ ‫إن‬
‫وتطويرها‬ ‫الشيفرة‬ ‫على‬ ‫التعديل‬ ‫أحد‬ ‫يستطيع‬ ‫ولن‬ ‫اآلخرون‬ ‫يفهمها‬
‫باستثنائك‬ ‫ا‬ً‫ق‬‫الح‬
.
‫ولغات‬ ،‫المستوى‬ ‫منخفضة‬ ‫البرمجة‬ ‫لغات‬ :‫قسمين‬ ‫إلى‬ ‫البرمجية‬ ‫لغات‬ ‫انقسمت‬ ،‫البشر‬ ‫لغة‬ ‫من‬ ‫قريبة‬ ‫لغة‬ ‫إليجاد‬ ‫ًا‬‫ي‬‫سع‬
‫منخفضة‬ ‫البرمجة‬ ‫لغات‬ ‫أن‬ ‫أي‬ .‫التوالي‬ ‫على‬ ‫البشر‬ ‫لغة‬ ‫أو‬ ‫اآللة‬ ‫لغة‬ ‫من‬ ‫قربها‬ ‫لمدى‬ ‫ا‬ً‫ع‬‫تب‬ ‫وذلك‬ ‫المستوى‬ ‫عالية‬ ‫البرمجة‬
‫األقرب‬ ‫اللغات‬ ‫هي‬ ‫المستوى‬
‫األقرب‬ ‫اللغات‬ ‫هي‬ ‫المستوى‬ ‫عالية‬ ‫البرمجة‬ ‫ولغات‬ ،‫التجميع‬ ‫لغة‬ ‫مثل‬ ‫الذكر‬ ‫آنفة‬ ‫اآللة‬ ‫للغة‬
‫لغة‬ ‫مثل‬ ‫البشر‬ ‫للغة‬
‫بايثون‬
‫وجافا‬
.
‫المستوى‬ ‫عالية‬ ‫برمجة‬ ‫بلغات‬ ‫المكتوبة‬ ‫البرامج‬ ‫تنفيذ‬
‫عالية‬ ‫اللغات‬ ‫عن‬ ‫الحديث‬
‫للشيفرة‬ ‫المعالج‬ ‫تنفيذ‬ ‫كيفية‬ ‫عن‬ ‫الحديث‬ ‫إلى‬ ‫يقودنا‬ ‫المستوى‬ ‫منخفضة‬ ‫واللغات‬ ‫المستوى‬
)‫اآلن؟‬ ‫به‬ ‫تفكر‬ ‫ما‬ ‫هذا‬ ‫(أليس‬ ‫المعالج‬ ‫يفهمها‬ ‫ال‬ ‫المستوى‬ ‫عالية‬ ‫بلغة‬ ‫المكتوبة‬
.
‫العم‬ ‫هذه‬ ُ‫ل‬َ‫ث‬َ‫م‬ ‫إذ‬ ،)‫اآللة‬ ‫(لغة‬ ‫المستوى‬ ‫منخفضة‬ ‫بلغة‬ ‫المكتوبة‬ ‫والتعليمات‬ ‫األوامر‬ ‫يفهم‬ ‫المعالج‬ ‫أن‬ ‫عرفنا‬
ِّ‫ل‬َ‫ث‬َ‫م‬‫ك‬ ‫لية‬
ً‫ة‬‫مباشر‬ ‫التواصل‬ ‫لهما‬ ‫يمكن‬ ‫إذ‬ ،‫العربية‬ ‫باللغة‬ ٍ‫ق‬‫ناط‬ ‫مع‬ ‫التحدث‬ ‫وبدأ‬ ‫العربية‬ ‫اللغة‬ ‫تعلم‬ ‫أجنبي‬ ٍ
‫شخص‬
-
‫منها‬ ‫كل‬ ‫ليخبر‬
‫فعله‬ ‫اآلخر‬ ‫من‬ ‫يريد‬ ‫ما‬
-
‫من‬ ‫والطلب‬ ‫البشر‬ ‫لغة‬ ‫إلى‬ ‫أقرب‬ ‫المستوى‬ ‫عالية‬ ‫بلغة‬ ‫برنامج‬ ‫كتابة‬ ُ‫ل‬َ‫ث‬َ‫م‬ ‫ا‬َّ‫م‬‫أ‬ .‫وسيط‬ ‫دون‬
‫ناطق‬ ‫كمثل‬ ‫تنفيذه‬ ‫الحاسوب‬
‫في‬ .‫اآلخر‬ ‫لغة‬ ‫أحدهما‬ ‫يفقه‬ ‫أن‬ ‫دون‬ ‫العربية‬ ‫باللغة‬ ‫ناطق‬ ‫مع‬ ‫التخاطب‬ ‫يريد‬ ‫الهندية‬ ‫باللغة‬
‫ا‬ً‫م‬‫مترج‬ ‫يحضران‬ ‫ال‬ ‫لماذا‬ :‫تقول‬ ‫قد‬ .‫التواصل‬ ‫عملية‬ ‫وستفشل‬ ‫اآلخر‬ ‫به‬ ‫يتكلم‬ ‫ما‬ ‫فهم‬ ‫أحدهما‬ ‫يستطيع‬ ‫لن‬ ،‫الحالة‬ ‫هذه‬
‫يرا‬ ‫عندما‬ ‫ا‬ً‫م‬‫تما‬ ‫يحصل‬ ‫ما‬ ‫هذا‬ ،‫ا‬ً‫ن‬‫حس‬ ‫لآلخر؟‬ ‫منها‬ ‫كل‬ ‫يقوله‬ ‫ما‬ ‫يترجم‬
‫الحاسوب‬ ‫معالج‬ ‫يفهمها‬ ‫ال‬ ‫بلغة‬ ‫برنامج‬ ‫تنفيذ‬ ‫د‬
.
،‫البرمجة‬ ‫لغات‬ ‫في‬ ‫أما‬ ‫آخرى؛‬ ‫إلى‬ ‫لغة‬ ‫من‬ ‫للترجمة‬ ‫الجميع‬ ‫يعرفه‬ ‫المترجمين‬ ‫من‬ ‫واحد‬ ‫نوع‬ ‫هنالك‬ ،‫البشرية‬ ‫اللغات‬ ‫في‬
،‫ذلك‬ ‫على‬ ً‫ء‬‫بنا‬ .‫والمترجم‬ ،‫المفسر‬ :‫هما‬ ‫اللغات‬ ‫بين‬ ‫المترجمين‬ ‫من‬ ‫نوعان‬ ‫هنالك‬
‫مف‬ ‫لغات‬ ‫إلى‬ ‫البرمجة‬ ‫لغات‬ ‫تنقسم‬
.‫مترجمة‬ ‫ولغات‬ ‫سرة‬
).‫المستوى‬ ‫عالية‬ ‫البرمجة‬ ‫لغات‬ ‫إلى‬ ‫نشير‬ ‫فنحن‬ ،‫البرمجة‬ ‫لغات‬ ‫ذكرنا‬ ‫كلما‬ ،‫ًا‬‫د‬‫وصاع‬ ‫اآلن‬ ‫(من‬
•
‫المفسر‬
(interpreter):
‫المستوى‬ ‫عالية‬ ‫بلغة‬ ‫مكتوب‬ ‫لبرنامج‬ ‫المصدرية‬ ‫الشيفرة‬ ‫ر‬ِّ‫س‬‫يف‬ ٌ‫خاص‬ ‫برنامج‬ ‫وهو‬
‫الحاسو‬ ‫لينفذها‬ ‫المستوى‬ ‫منخفضة‬ ‫لغة‬ ‫إلى‬ ‫ويحولها‬ ‫بسطر‬ ‫ا‬ً‫سطر‬
ً‫ة‬‫مباشر‬ ‫ب‬
.
•
‫المترجم‬
(compiler):
‫المستوى‬ ‫عالية‬ ‫بلغة‬ ‫مكتوب‬ ‫لبرنامج‬ ‫المصدرية‬ ‫الملفات‬ ‫ل‬ِّ‫و‬‫يح‬ ٌ‫خاص‬ ‫برنامج‬ ‫وهو‬
‫بالمهمة‬ ‫للقيام‬ ‫الحاسوب‬ ‫على‬ ‫التنفيذي‬ ‫الملف‬ ‫تشغيل‬ ‫يمكن‬ ‫ثم‬ ،ً‫ة‬‫واحد‬ ً‫ة‬‫دفع‬ ‫اآللة‬ ‫بلغة‬ ‫مكتوب‬ ‫تنفيذي‬ ‫ملف‬ ‫إلى‬
‫المطلوبة‬
.
‫عالية‬ ‫البرمجة‬ ‫لغات‬ ‫من‬ ‫الكثير‬ ‫يوجد‬ ‫لماذا‬
‫المستوى؟‬
‫المستوى‬ ‫عالية‬ ‫البرمجية‬ ‫اللغات‬ ‫كثرة‬ ‫عن‬ ‫تتساءل‬ ‫زلت‬ ‫ما‬ ‫ما‬‫لرب‬ ،‫البشر‬ ‫ولغة‬ ‫اآللة‬ ‫لغة‬ ‫بين‬ ‫الفرق‬ ‫عرفت‬ ‫أن‬ ‫وبعد‬ ‫اآلن‬
‫جواب‬ .‫دقة‬ ‫أكثر‬ ‫اآلن‬ ‫أصبحت‬ ‫إذ‬ ‫لألمام‬ ً‫ة‬‫جيد‬ ً‫ة‬‫خطو‬ ‫خطوت‬ ‫أنك‬ ‫القول‬ ‫نستطيع‬ .‫واحدة‬ ‫لغة‬ ‫وجود‬ ‫وعدم‬ ‫المتوافرة‬
‫البرمجة‬ ‫لغات‬ ‫كل‬ ‫أن‬ ‫هو‬ ‫سؤلك‬
‫سبيل‬ ‫فعلى‬ .‫ينفذها‬ ‫أن‬ ‫للحاسوب‬ ‫يمكن‬ ‫أوامر‬ ‫سلسلة‬ ‫إلى‬ ‫منطقية‬ ‫فكرة‬ ‫لتحويل‬ ‫ستخدم‬ُ‫ت‬
‫من‬ ‫أي‬ ‫استخدام‬ ‫يمكنك‬ ‫الحصر‬ ‫ال‬ ‫المثال‬
Ruby
‫أو‬
Java
‫أو‬
Python
‫أو‬
C#
‫أو‬
Go
‫أو‬
JavaScript
‫لبناء‬
‫أ‬ ‫عن‬ ‫ا‬ً‫ن‬‫دو‬ ‫مهمة‬ ‫ل‬‫تسه‬ ‫أداة‬ ‫وكل‬ ،‫أدوات‬ ‫أنها‬ ‫على‬ ‫البرمجة‬ ‫لغات‬ ‫تعد‬ ‫أن‬ ‫يمكنك‬ ‫لكن‬ .‫ويب‬ ‫موقع‬
‫سبيل‬ ‫فعلى‬ .‫خرى‬
‫تذهب‬ ‫أن‬ ‫يمكنك‬ ‫فًل‬ ‫االستخدام؛‬ ‫مختلفة‬ ‫لكنها‬ ،‫نقل‬ ‫وسائط‬ ‫كلها‬ ‫الزراعي‬ ‫والمحراث‬ ‫والدراجة‬ ‫والحافلة‬ ‫السيارة‬ ،‫المثال‬
‫مكتظة‬ ‫مدينة‬ ‫في‬ ‫سباق‬ ‫سيارة‬ ‫استخدام‬ ‫يمكنك‬ ‫ال‬ ‫كما‬ ،‫الزراعي‬ ‫المحراث‬ ‫مستخدمين‬ ‫صيفية‬ ‫إجازة‬ ‫لقضاء‬ ‫وعائلتك‬
‫الع‬ ‫إلى‬ ‫بها‬ ‫للذهاب‬ ‫ضيقة‬ ‫شوارع‬ ‫ذات‬
‫البرمجة‬ ‫إلى‬ ‫بالنسبة‬ ٌ‫سيان‬ ‫واألمر‬ .‫متشابهة‬ ‫المركبات‬ ‫هذه‬ ‫عمل‬ ‫آلية‬ ‫أن‬ ‫مع‬ .‫مل‬
.
‫تطبيقات‬ ‫بإنشاء‬ ‫متخصصة‬ ‫وأخرى‬ ،‫المكتب‬ ‫سطح‬ ‫تطبيقات‬ ‫بإنشاء‬ ‫متخصصة‬ ‫برمجة‬ ‫لغات‬ ‫هنالك‬ ‫أن‬ ‫القول‬ ‫خًلصة‬
‫الحد‬ ‫إلى‬ ‫يحيلنا‬ ‫ما‬ ‫وهذا‬ ،‫العتاد‬ ‫لبرمجة‬ ‫وأخرى‬ ،‫الويب‬ ‫لمواقع‬ ‫ا‬ً‫ص‬‫خصي‬ ‫تستعمل‬ ‫وأخرى‬ ،‫الجوال‬
‫مجاالت‬ ‫عن‬ ‫يث‬
‫منها‬ ٍ‫ل‬‫لك‬ ‫األنسب‬ ‫واللغات‬ ‫البرمجة‬
.
‫البرمجة‬ ‫مفاهيم‬
"
‫ا؟‬ً‫ذ‬‫إ‬ ‫البرمجة‬ ‫تعلم‬ ‫في‬ ‫طريقي‬ ‫أبدأ‬ ‫أين‬ ‫من‬ ،‫أتخيل‬ ُ‫كنت‬ ‫كما‬ ‫صعبة‬ ‫وليست‬ ‫لي‬ ‫مناسبة‬ ‫البرمجة‬ ‫أن‬ ُ‫اقتنعت‬ ،‫ا‬ً‫ن‬‫حس‬
"
‫سنتحدث‬ ‫ثم‬ ،‫بالبرمجة‬ ‫الخاصة‬ ‫المفاهيم‬ ‫بعض‬ ‫لك‬ ‫ألشرح‬ ‫وقتي‬ ‫سآخذ‬ ،‫السابق‬ ‫السؤال‬ ‫عن‬ ‫اإلجابة‬ ‫قبل‬
‫مجاالت‬ ‫عن‬
‫منها‬ ً
‫كًل‬ ‫لتعلمك‬ ‫األفضل‬ ‫المسار‬ ‫وما‬ ‫فيها‬ ‫العمل‬
.
‫الحاسوب‬ ‫يفهمها‬ ‫بلغة‬ ‫مكتوب‬ ‫نفسه‬ ‫والبرنامج‬ ،‫ما‬ ‫مشكلة‬ ‫لحل‬ ‫الحاسوب‬ ‫ينفذها‬ ‫أوامر‬ ‫سلسلة‬ ‫هو‬ ‫البرنامج‬ ‫أن‬ ‫تعلم‬ ‫أنت‬
‫اآللة‬ ‫لغة‬ ‫تسمى‬
.
‫البر‬ ‫تعلم‬ ‫بداية‬ ‫أثناء‬ ‫ذاتها‬ ‫البرمجة‬ ‫لغة‬ ‫على‬ ‫ا‬ً‫كثير‬ ‫التركيز‬ ‫الملحوظة‬ ‫األمور‬ ‫من‬
‫"لغة‬ :ً‫ة‬‫صادم‬ ً‫ة‬‫حقيق‬ ‫سأخبرك‬ .‫مجة‬
‫ستعمل‬ُ‫ت‬ ‫أو‬ ‫متماثلة‬ ‫البرمجة‬ ‫لغات‬ ‫جميع‬ ‫أن‬ ‫لك‬ ‫أقول‬ ‫ال‬ ‫أنا‬ ،"‫تتوقعها‬ ‫التي‬ ‫األهمية‬ ‫بتلك‬ ‫ليست‬ ‫تستعملها‬ ‫التي‬ ‫البرمجة‬
‫تقف‬ ‫التي‬ ‫البرمجية‬ ‫المفاهيم‬ ‫وتهمل‬ ‫ما‬ ‫برمجة‬ ‫لغة‬ ‫في‬ ‫الكتابة‬ ‫كيفية‬ ‫تعلم‬ ‫على‬ ‫ا‬ً‫كثير‬ ‫ز‬ِّ‫ك‬‫تر‬ ‫ال‬ ‫لكن‬ ،‫االستعماالت‬ ‫لنفس‬
‫ورا‬
‫ءها‬
.
‫والثوابت‬ ‫المتغيرات‬
‫المتغيرات‬ ‫مفهوم‬ ‫على‬ ‫تتعرف‬ ‫أن‬ ‫عليك‬
variables
‫ما‬ ‫قيمة‬ ‫إسناد‬ ‫يعني‬ ‫والذي‬ ،‫البرمجة‬ ‫لغات‬ ‫جميع‬ ‫في‬ ‫المستعمل‬
‫العبارة‬ ‫نخزن‬ ‫أن‬ ‫أردنا‬ ‫فلو‬ .‫الذاكرة‬ ‫في‬ ‫القيمة‬ ‫هذه‬ ‫وتخزين‬ ‫كلمة‬ ‫أو‬ ‫رمز‬ ‫إلى‬
"Hello World"
‫فنكتب‬ ‫ما‬ ‫متغير‬ ‫في‬
‫يلي‬ ‫بما‬ ‫ا‬ً‫ه‬‫شبي‬ ‫ا‬ً‫ئ‬‫شي‬
:
;
"Hello World"
=
variable_name
var
‫المساواة‬ ‫إشارة‬ ‫يسار‬ ‫على‬ ‫المذكور‬ ‫المتغير‬ ‫إلى‬ ‫المساواة‬ ‫إشارة‬ ‫يمين‬ ‫على‬ ‫الموجود‬ ‫الجزء‬ ‫نسند‬ ‫أننا‬ ‫أي‬
.
‫الملف‬ ‫من‬ ‫ما‬ ٍ‫مكان‬ ‫في‬ ‫فيمكننا‬ ،‫البرنامج‬ ‫تنفيذ‬ ‫خًلل‬ ‫للتغيير‬ ‫قابلة‬ ‫قيمتها‬ ‫أن‬ "‫"المتغيرات‬ ‫اسم‬ ‫من‬ ‫نستنتج‬ ‫أن‬ ‫يمكننا‬
‫تع‬ ‫نعيد‬ ‫أن‬ ‫المصدري‬
‫بكتابة‬ ‫السابق‬ ‫المتغير‬ ‫ريف‬
:
;
"New value"
=
variable_name
var
‫أول‬ ‫تعريفها‬ ‫بعد‬ ‫قيمتها‬ ‫تعريف‬ ‫إعادة‬ ‫تستطيع‬ ‫ال‬ ‫أنك‬ ‫إال‬ ،‫النواحي‬ ‫من‬ ٍ
‫كثير‬ ‫في‬ ‫المتغيرات‬ ‫مع‬ ‫تتشابه‬ ‫فهي‬ ‫الثوابت‬ ‫أما‬
‫فترة‬ ‫خًلل‬ ‫القيمة‬ ‫تغيير‬ ‫عدم‬ ‫من‬ ‫ا‬ً‫م‬‫تما‬ ‫ًا‬‫د‬‫متأك‬ ‫تكون‬ ‫عندما‬ ‫الثوابت‬ ‫من‬ ‫تستفيد‬ ‫قد‬ .‫مرة‬
‫تعريف‬ ‫أردنا‬ ‫فلو‬ .‫البرنامج‬ ‫تنفيذ‬
‫اسمه‬ ‫ثابت‬
pi
‫القيمة‬ ‫على‬ ‫يحتوي‬
3.14
‫نكتب‬ ‫أن‬ ‫فيمكننا‬ ،)‫ا‬ً‫ق‬‫مطل‬ ‫تتغير‬ ‫لن‬ ‫أنها‬ ‫سنعرف‬ ‫(والتي‬
:
;
3.14
=
pi
const
‫خطأ‬ ‫رسالة‬ ‫على‬ ‫فستحصل‬ ‫تعريفه‬ ‫بعد‬ ‫الثابت‬ ‫قيمة‬ ‫تغيير‬ َ‫حاولت‬ ‫وإذا‬
.
‫الشروط‬
‫في‬ ‫ذ‬َّ‫ف‬‫ن‬ُ‫ت‬ ‫شروط‬ ‫تعريف‬ ‫البرمجة‬ ‫لغات‬ ‫جميع‬ ‫تدعم‬
‫حساب‬ ‫فيها‬ ‫شرحنا‬ ‫التي‬ ‫السابقة‬ ‫الخوازرمية‬ ‫ففي‬ .‫معينة‬ ‫حاالت‬
‫يلي‬ ‫كما‬ ‫بالعربية‬ ‫الشرط‬ ‫نكتب‬ ‫أن‬ ‫يمكننا‬ ،‫العمر‬
:
•
‫خطأ‬ ‫هنالك‬ ‫أن‬ ‫للمستخدم‬ ‫نقول‬ :)‫الحالي‬ ‫التاريخ‬ ‫من‬ ‫أكبر‬ ‫الميًلد‬ ‫(تاريخ‬ ‫كان‬ ‫إذا‬
•
‫الحالي‬ ‫التاريخ‬ ‫من‬ ‫الميًلد‬ ‫تاريخ‬ ‫بطرح‬ ‫العمر‬ ‫سنحسب‬ :‫وإال‬
‫بإحد‬ ‫كتابتها‬ ‫أردنا‬ ‫وإذا‬
‫يلي‬ ‫بما‬ ً‫ة‬‫شبيه‬ ‫فستبدو‬ ‫البرمجة‬ ‫لغات‬ ‫ى‬
:
{
)
current_year
>
user_birth
(
if
// ERROR!
{
else
}
;
user_birth
-
current_year
=
age
}
‫ًا‬‫ي‬‫حال‬ ‫اهتمامنا‬ ‫موضع‬ ‫وليست‬ ،‫ألخرى‬ ‫لغة‬ ‫من‬ ‫تختلف‬ ‫وقد‬ ،‫البرمجة‬ ‫لغة‬ ‫من‬ ‫جزء‬ ‫فهي‬ ، ً
‫باال‬ ‫لألقواس‬ ِّ‫ق‬‫تل‬ ‫ال‬
.
‫التكرار‬ ‫حلقات‬
‫لو‬ ‫ماذا‬
‫ًا‬‫ي‬‫يدو‬ ‫التواريخ‬ ‫سنأخذ‬ ‫لي‬ ‫تقل‬ ‫ال‬ .‫ميًلد‬ ‫تاريخ‬ ‫مستخدم‬ ‫ولكل‬ ‫مستخدم‬ ‫من‬ ‫أكثر‬ ‫فيها‬ ‫بيانات‬ ‫قاعدة‬ ‫لدينا‬ ‫كانت‬
‫بكل‬ ‫الخاص‬ ‫الميًلد‬ ‫تاريخ‬ ‫قيمة‬ ‫تأخذ‬ ‫تكرار‬ ‫حلقة‬ ‫إنشاء‬ ‫هو‬ ‫والصواب‬ ،‫للوقت‬ ٌ‫مضيعة‬ ‫هذا‬ !‫البرنامج‬ ‫إلى‬ ‫وندخلها‬
‫السابق‬ ‫القسم‬ ‫في‬ ‫أسلفنا‬ ‫كما‬ ‫عمره‬ ‫تحسب‬ ‫ثم‬ ‫مستخدم‬
.
‫دعنا‬
‫فيها‬ ‫ا‬ً‫تكرار‬ ‫لنضيف‬ ‫البسيطة‬ ‫الخوارزمية‬ ‫نعدل‬
:
‫تحسبها‬ ‫أن‬ ‫زر‬ ‫بضغطة‬ ‫يمكنك‬ ،‫أعمارهم‬ ‫حساب‬ ‫عليك‬ ‫وكان‬ ،‫مستخدم‬ ‫ألف‬ ‫عندك‬ ‫كان‬ ‫لو‬ ‫تخيل‬ !‫البرمجة‬ ‫أجمل‬ ‫ما‬
‫كلها‬
.
‫الدوال‬
‫الدالة‬
function
‫تكون‬ .‫المطلوبة‬ ‫القيمة‬ ‫وتعيد‬ ‫مدخًلت‬ ‫تقبل‬ ‫التي‬ ‫البرمجية‬ ‫التعليمات‬ ‫من‬ ‫مجموعة‬ ‫هي‬
‫الدوال‬
ً‫ة‬‫عاد‬
‫باسم‬ ‫دالة‬ ‫تعريف‬ ‫أردنا‬ ‫لو‬ ً
‫فمثًل‬ .‫فقط‬ ‫وحيدة‬ ‫بمهمة‬ ‫وتقوم‬ ً‫ة‬‫قصير‬
divide
‫الكبير‬ ‫العدد‬ ‫قسمة‬ ‫ناتج‬ ‫وتعيد‬ ،‫عددين‬ ‫تقبل‬
‫اآلتية‬ ‫الخورزمية‬ ‫نكتب‬ ‫أن‬ ‫فيمكننا‬ ،‫الصغير‬ ‫على‬
:
‫للمبتدئين‬ ‫البرمجة‬ ‫تعلم‬ ‫مصادر‬
‫البر‬ ‫تعلم‬ ‫قرارك‬ ‫بعد‬ ‫ذهنك‬ ‫إلى‬ ‫سيتبادر‬ ‫ما‬ ‫أول‬
‫في‬ ‫المتكامل‬ ‫التعليمي‬ ‫القسم‬ ‫دور‬ ‫يأتي‬ ‫هنا‬ ‫سأتعلم؟‬ ‫أين‬ ‫من‬ ‫هو‬ ‫مجة‬
‫ومبسط‬ ‫مميز‬ ‫علمي‬ ‫محتوى‬ )‫سواء‬ ٍ‫د‬‫ح‬ ‫على‬ ‫(والمحترف‬ ‫للمبتدئ‬ ‫ليقدم‬ ‫حسوب‬
.
،‫المستويات‬ ‫كافة‬ ‫على‬ ‫أي‬ ‫الخبيرين‬ ‫وحتى‬ ‫للمبتدئين‬ ‫البرمجة‬ ‫تعلم‬ ‫عن‬ ‫البرمجي‬ ‫بالمحتوى‬ ‫حسوب‬ ‫أكاديمية‬ ‫تزخر‬
‫تشرح‬ ‫ا‬ً‫م‬‫أقسا‬ ‫فيها‬ ‫ستجد‬
‫سؤالك‬ ‫فيه‬ ‫تطرح‬ ‫أن‬ ‫يمكنك‬ ‫التي‬ ‫البرمجية‬ ‫لألسئلة‬ ‫قسم‬ ‫ولدينا‬ .‫كلها‬ ‫وتقنياتها‬ ‫البرمجة‬ ‫لغات‬
‫التي‬ ‫المتخصصة‬ ‫للدورات‬ ‫ا‬ً‫م‬‫قس‬ ‫توفر‬ ‫األكاديمية‬ ‫أن‬ ‫ذلك‬ ‫إلى‬ ‫أضف‬ .‫حسوب‬ ‫أكاديمية‬ ‫مجتمع‬ ‫أفراد‬ ‫أحد‬ ‫عليه‬ ‫وسيجيب‬
‫م‬ ‫كادر‬ ‫مع‬ ‫تعلمها‬ ‫تريد‬ ‫التي‬ ‫البرمجة‬ ‫لغة‬ ‫احتراف‬ ‫وحتى‬ ‫الصفر‬ ‫من‬ ‫معك‬ ‫تبدأ‬
‫لك‬ ‫يقدمون‬ ‫الذي‬ ‫المختصين‬ ‫المدربين‬ ‫ن‬
‫استفساراتك‬ ‫جميع‬ ‫عن‬ ‫ويجيبون‬ ‫المساعدة‬
.
‫وهنالك‬
‫يوتيوب‬ ‫على‬ ‫لألكاديمية‬ ‫قناة‬
‫و‬ ‫البرمجة‬ ‫ومفاهيم‬ ‫محددة‬ ‫تساؤالت‬ ‫عن‬ ً‫ة‬‫قصير‬ ‫ا‬ً‫س‬‫درو‬ ‫ًا‬‫ي‬‫دور‬ ‫فيها‬ ‫ننشر‬
‫ال‬ .‫خًلفه‬
‫الجديدة‬ ‫الفيديوهات‬ ‫لتصلك‬ ‫األكاديمية‬ ‫قناة‬ ‫في‬ ‫االشتراك‬ َ‫تنس‬
.
‫هنا‬ ‫تأتي‬ ‫نة؟‬‫معي‬ ‫لغة‬ ‫في‬ ‫أكثر‬ ‫التعمق‬ َ‫أردت‬ ‫لو‬ ‫ماذا‬
‫حسوب‬ ‫موسوعة‬
،‫الجودة‬ ‫وعالي‬ ً
‫كامًل‬ ‫ًا‬‫ي‬‫عرب‬ ‫ا‬ً‫ق‬‫توثي‬ ‫ر‬ِّ‫ف‬‫تو‬ ‫التي‬
‫لمختلف‬ ‫باألمثلة‬ ‫ا‬ً‫م‬‫مدع‬
‫في‬ ‫إليه‬ ‫تعود‬ ‫ا‬ً‫ع‬‫مرج‬ ‫الموسوعة‬ ‫ستكون‬ .‫والجوال‬ ‫الويب‬ ‫تطوير‬ ‫وتقنيات‬ ‫البرمجة‬ ‫لغات‬
‫في‬ ‫شيء‬ ‫كل‬ ‫لحفظ‬ ‫ا‬ً‫مضطر‬ ‫لست‬ ‫فأنت‬ .‫البرمجة‬ ‫لغات‬ ‫عن‬ ‫الدقيقة‬ ‫التفاصيل‬ ‫لمعرفة‬ ‫بها‬ ‫وتستعين‬ ،‫البرمجية‬ ‫مسيرتك‬
‫الف‬ ‫بين‬ ‫التوثيقات‬ ‫إلى‬ ‫يعودون‬ ‫الخبرة‬ ‫ذوي‬ ‫المختصين‬ ‫المبرمجين‬ ‫حتى‬ ‫إذ‬ ،‫البرمجة‬ ‫لغة‬
‫عملهم‬ ‫أثناء‬ ‫واألخرى‬ ‫ينة‬
.
‫فيها‬ ‫المستعملة‬ ‫والتقنيات‬ ‫اللغات‬ ‫وما‬ ‫األساسية‬ ‫البرمجة‬ ‫مجاالت‬ ‫عن‬ ‫للتحدث‬ ‫اآلن‬ ‫لننطلق‬
.
‫المستخدم‬ ‫واجهات‬ ‫تطوير‬
‫تطوير‬ ‫مجال‬ ‫لدخول‬ ‫قرارهم‬ ‫اتخاذ‬ ‫عند‬ ‫المستخدم‬ ‫واجهات‬ ‫تطوير‬ ‫تعلم‬ ‫خًلل‬ ‫من‬ ‫مشوارهم‬ ‫المطورين‬ ‫أغلبية‬ ‫يبدأ‬
‫لس‬ ‫وذلك‬ ،‫الويب‬ ‫مواقع‬ ‫وبرمجة‬
‫المجال‬ ‫هذا‬ ‫في‬ ‫المستعملة‬ ‫اللغات‬ ‫هولة‬
.
‫تراها‬ ‫التي‬ ‫الصفحات‬ ‫وهي‬ ،‫الويب‬ ‫مواقع‬ ‫مختلف‬ ‫محتوى‬ ‫تعرض‬ ‫التي‬ ‫الويب‬ ‫صفحات‬ ‫تطوير‬ ‫هو‬ ‫المجال‬ ‫هذا‬ ‫هدف‬
‫آخر‬ ‫موقع‬ ‫أي‬ ‫أو‬ ‫مستقل‬ ‫أو‬ ‫حسوب‬ ‫موسوعة‬ ‫أو‬ ‫حسوب‬ ‫أكاديمية‬ ‫لموقع‬ ‫زيارتك‬ ‫عند‬
.
‫ال‬ ‫هذه‬ ‫َب‬‫ت‬‫ك‬ُ‫ت‬‫و‬ ،‫المكونات‬ ‫من‬ ‫مجموعة‬ ‫من‬ ‫الويب‬ ‫صفحة‬ ‫تتألف‬
‫لغة‬ ‫باستخدام‬ ‫مكونات‬
HTML
‫البنية‬ ‫كتابة‬ ‫وبعد‬ ،
‫لغة‬ ‫باستخدام‬ ‫تنسيقها‬ ‫على‬ ‫سنأتي‬ ‫للصفحة‬ ‫الهيكلية‬
CSS
‫عناصر‬ ‫على‬ ‫وهيئة‬ ‫شكل‬ ‫إلضفاء‬ ‫المستعملة‬ ‫اللغة‬ ‫وهي‬ ،
HTML.
‫عناصر‬ ‫أن‬ ‫أي‬
HTML
‫والفقرات‬ ‫الرئيسي‬ ‫والمحتوى‬ ‫والقوائم‬ ‫الترويسات‬ ‫(مثل‬ ‫الصفحة‬ ‫محتوى‬ ‫تصف‬
‫وقواعد‬ ،)‫والفيدوهات‬ ‫والصور‬ ‫والروابط‬
CSS
‫أو‬ ‫األلوان‬ ‫ناحية‬ ‫من‬ ً‫ء‬‫(سوا‬ ‫العناصر‬ ‫هذه‬ ‫تبدو‬ ‫أن‬ ‫يجب‬ ‫كيف‬ ‫ف‬ ِّ
‫عر‬ُ‫ت‬
)‫ذلك‬ ‫خًلف‬ ‫أو‬ ‫الخطوط‬ ‫أو‬ ‫الخلفيات‬ ‫أو‬ ‫المساحات‬
.
‫لغة‬ ‫تأتي‬
JavaScript
‫إل‬ ‫وتستعمل‬ ‫لهما‬ ً‫ة‬‫مكمل‬
‫متحرك‬ ‫شريط‬ ‫مثل‬ ،‫تفاعلية‬ ٍ‫ت‬‫صفا‬ ‫الصفحة‬ ‫عناصر‬ ‫بعض‬ ‫عطاء‬
‫إلخ‬... ‫ن‬‫معي‬ ‫حدث‬ ‫وقوع‬ ‫عند‬ ‫تظهر‬ ‫قوائم‬ ‫أو‬ ‫الصور‬ ‫من‬
.
‫بعضها‬ ‫وسنذكر‬ ‫األمامية‬ ‫الواجهات‬ ‫إنشاء‬ ‫تسهيل‬ ‫في‬ ‫تستعمل‬ ‫كثيرة‬ ‫تقنيات‬ ‫هنالك‬
:
•
‫إطار‬
Bootstrap
‫الصفحة‬ ‫عناصر‬ ‫تنسيق‬ ‫لتسهيل‬
.
•
‫مكتبة‬
jQuery
‫ا‬ ‫عناصر‬ ‫مع‬ ‫التعامل‬ ‫لتسهيل‬
‫باستخدام‬ ‫لصفحة‬
JavaScript.
•
‫لغة‬
Sass
‫ملفات‬ ‫إلنشاء‬
CSS
‫وسًلسة‬ ‫بسرعة‬
.
•
‫مثل‬ ‫بناء‬ ‫أدوات‬
Webpack
‫التي‬ ‫النهائية‬ ‫النسخة‬ ‫إلى‬ ‫للتطبيق‬ ‫المصدرية‬ ‫الملفات‬ ‫تحويل‬ ‫ل‬ِّ‫ه‬‫يس‬ ‫الذي‬
‫للمستخدم‬ ‫ض‬ َ‫ستعر‬
.
‫المستخدم‬ ‫واجهات‬ ‫تطوير‬ ‫في‬ ‫المستخدمة‬ ‫والتقنيات‬ ‫اللغات‬
HTML
:
‫و‬
CSS
‫و‬
JavaScript
‫و‬
Bootstrap
‫و‬
Sass
‫و‬
jQuery
‫و‬
Webpack.
‫الخلفية‬ ‫الواجهات‬ ‫تطوير‬
‫الخلفية‬ ‫الواجهات‬ ‫تطوير‬ ‫يعني‬ ‫ماذا‬ :‫تتساءل‬ ‫قد‬
(backend)
‫المستخدم‬ ‫واجهات‬ ‫تطوير‬ ‫وبين‬ ‫بينه‬ ‫الفرق‬ ‫وما‬ ‫؟‬
(frontend)
‫عليها‬ ‫عمليات‬ ‫وتجري‬ ‫الخوادم‬ ‫على‬ ‫ذ‬َّ‫ف‬‫ن‬ُ‫ت‬ ‫التي‬ ‫البرمجيات‬ ‫هي‬ ‫الخلفية‬ ‫الواجهات‬ ‫أن‬ ‫هو‬ ‫بينهما‬ ‫الفرق‬ ‫؟‬
‫تظ‬ ‫التي‬ ‫الصفحات‬ ‫فهي‬ ‫المستخدم‬ ‫واجهات‬ ‫أما‬ ،‫الخارجية‬ ‫والخدمات‬ ‫والملفات‬ ‫البيانات‬ ‫قواعد‬ ‫مع‬ ‫التعامل‬ ‫مثل‬
‫على‬ ‫هر‬
‫متصفحه‬ ‫في‬ ‫الزائر‬ ‫شاشة‬
.
‫هي‬ ‫هنا‬ ‫المذكورة‬ ‫اللغات‬ ‫وجميع‬ ،‫الخلفية‬ ‫الواجهات‬ ‫تطوير‬ ‫مجال‬ ‫في‬ ‫للبدء‬ ‫أمامك‬ ‫المتاحة‬ ‫الخيارات‬ ‫عليك‬ ‫سأطرح‬
،‫تعلمها‬ ‫قرار‬ ‫وتتخذ‬ ‫لغة‬ ‫كل‬ ‫من‬ ‫بسيطة‬ ‫شيفرات‬ ‫على‬ ‫تتطلع‬ ‫أن‬ ‫المهم‬ ،‫منها‬ ‫تختار‬ ‫لغة‬ ‫أي‬ ‫يهم‬ ‫وال‬ ‫وقوية‬ ‫ناجحة‬ ‫لغات‬
‫وقتك‬ ‫تضييع‬ ‫من‬ ‫واحذر‬
‫مجالها‬ ‫في‬ ٌ‫ة‬‫ممتاز‬ ٍ‫ة‬‫لغ‬ ُ‫ل‬‫فك‬ ،‫أفضلها‬ ‫عن‬ ‫والبحث‬ ‫البرمجة‬ ‫لغات‬ ‫بين‬ ‫التنقل‬ ‫في‬
.
‫لغة‬ ‫باستخدام‬ ‫البرمجة‬ ‫تعلم‬
PHP
‫هي‬ ‫الخلفية‬ ‫الواجهات‬ ‫لتطوير‬ ‫لغة‬ ‫أشهر‬ ‫بأن‬ ‫القول‬ ‫يمكن‬ ،‫الخلفية‬ ‫والواجهات‬ ‫المستخدم‬ ‫واجهات‬ ‫بين‬ ‫الفرق‬ ‫تبيان‬ ‫بعد‬
‫لغة‬
PHP
‫مضاعفة‬ ‫ا‬ً‫ف‬‫أضعا‬ ‫لها‬ ‫المنافسة‬ ‫اللغات‬ ‫على‬ ‫وتتفوق‬ ،
.
‫بلغة‬ ‫البرمجة‬ ‫تعلم‬
PHP
.‫مستمر‬ ‫وتطويرها‬ ‫كبير‬ ‫حولها‬ ‫والمجتمع‬ ،‫الشكل‬ ‫وبسيطة‬ ‫التعلم‬ ‫سهلة‬ ‫لغة‬ ‫فهي‬ ،‫سلس‬ ‫أمر‬
‫الخلفية‬ ‫الواجهات‬ ‫تطوير‬ ‫مجال‬ ‫إلى‬ ‫الدخول‬ ‫يريد‬ ‫لمن‬ ‫استراتيجي‬ ‫خيار‬ ‫هي‬ ‫اللغة‬ ‫هذه‬
.
‫عدد‬ ‫هنالك‬
‫بلغة‬ ‫المكتوبة‬ ‫البرمجيات‬ ‫من‬
PHP
‫ووردبريس‬ ‫مثل‬
WordPress
‫ودروبال‬
Drupal
‫وميدياويكي‬
MediaWiki
‫العمل‬ ‫إطارات‬ ‫من‬ ‫كبير‬ ٍ‫د‬‫عد‬ ‫إلى‬ ً‫ة‬‫إضاف‬ ‫الكثير؛‬ ‫وغيرها‬ )‫حسوب‬ ‫وموسوعة‬ ‫ويكيبيديا‬ ‫ل‬ِّ‫غ‬‫تش‬ ‫(التي‬
‫مثل‬
Laravel
‫و‬
Zend
‫و‬
CodeIgniter
‫و‬
Symfony
‫و‬
CakePHP
‫و‬
Yii
‫يد‬ ‫ما‬ ‫وهذا‬ ،‫وغيرها‬
‫على‬ ‫ل‬
‫بها‬ ‫يحيط‬ ‫الذي‬ ‫الكبير‬ ‫والمجتمع‬ ‫الكبيرة‬ ‫اللغة‬ ‫إمكانيات‬
.
‫باستخدام‬ ‫الويب‬ ‫تطبيقات‬ ‫تطوير‬ ‫في‬ ‫المستخدمة‬ ‫والتقنيات‬ ‫اللغات‬
PHP
‫هي‬
: PHP
‫و‬
Laravel
‫البيانات‬ ‫وقواعد‬
‫(مثل‬
MySQL
‫و‬
PostgreSQL
‫وغيرها‬
).
‫روبي‬ ‫لغة‬ ‫باستخدام‬ ‫البرمجة‬ ‫تعلم‬
Ruby
-
‫روبي‬ ‫لغة‬ ‫في‬ ‫ضالتك‬ ‫فستجد‬ ‫االستعمال‬ ‫وسهلة‬ ‫أنيقة‬ ٍ‫ة‬‫لغ‬ ‫عن‬ ‫تبحث‬ َ‫كنت‬ ‫إذا‬
Ruby
‫وأسلسها‬ ‫اللغات‬ ‫أجمل‬ ‫من‬ ‫فهي‬
‫عامة‬ ‫برمجة‬ ‫لغة‬ ‫وهي‬ ،ً‫ة‬‫كتاب‬
‫الويب‬ ‫تطبيقات‬ ‫تطوير‬ ‫ضمنها‬ ‫ومن‬ ‫التطبيقات‬ ‫أنواع‬ ‫مختلف‬ ‫لتطوير‬ ‫استخدامها‬ ‫يمكن‬
.
‫العمل‬ ‫إطار‬ ‫نشر‬ ‫بعد‬ ‫الويب‬ ‫تطوير‬ ‫في‬ ‫روبي‬ ‫صيت‬ ‫ذاع‬
Ruby on Rails
‫هنالك‬ .)"‫"ريلز‬ ‫ا‬ً‫اختصار‬ ‫إليه‬ ‫(يشار‬
‫مثل‬ ‫أخرى‬ ‫عمل‬ ‫إطارات‬
Sinatra
‫أشهرها‬ ‫ريلز‬ ‫يبقى‬ ‫لكن‬
.
‫في‬ ‫المستخدمة‬ ‫والتقنيات‬ ‫اللغات‬
‫البيانات‬ ‫وقواعد‬ ‫ريلز‬ ‫و‬ ‫روبي‬ :‫روبي‬ ‫باستخدام‬ ‫الويب‬ ‫تطبيقات‬ ‫تطوير‬
(
‫مثل‬
MySQL
‫و‬
PostgreSQL
‫وغيرها‬
).
‫سكربت‬ ‫جافا‬ ‫لغة‬ ‫باستخدام‬ ‫البرمجة‬ ‫تعلم‬
JavaScript
-
‫تستعمل‬ !‫نعم‬
JavaScript
‫الفضل‬ .‫ًا‬‫ض‬‫أي‬ ‫الخلفية‬ ‫الواجهات‬ ‫تطوير‬ ‫في‬
‫لبيئة‬ ‫يعود‬
Node.js
‫للمطورين‬ ‫تسمح‬ ‫التي‬
‫باستخدام‬
JavaScript
‫إلى‬ ‫إرسالها‬ ‫قبل‬ ‫ديناميكية‬ ‫ويب‬ ‫صفحات‬ ‫لتوليد‬ ‫وذلك‬ ‫الخادم‬ ‫جهة‬ ‫من‬ ‫تعمل‬ ‫برمجيات‬ ‫لكتابة‬
‫وتستطيع‬ ،‫المتصفح‬
Node.js
‫أنظمة‬ ‫وخدمات‬ ‫الشبكات‬ ‫أنظمة‬ ‫ومختلف‬ ‫البيانات‬ ‫وقواعد‬ ‫الملفات‬ ‫مع‬ ‫التعامل‬
‫التشغيل‬
.
‫أجمل‬ ‫يوجد‬ ‫هل‬
‫ذلك‬ ‫وكل‬ ‫الخلفية؟‬ ‫والواجهات‬ ‫الويب‬ ‫لمواقع‬ ‫األمامية‬ ‫الواجهات‬ ‫لبرمجة‬ ‫اللغة‬ ‫نفس‬ ‫استخدام‬ ‫من‬
‫المجتمع‬ ‫من‬ ‫ا‬ً‫ممتاز‬ ‫ا‬ً‫م‬‫دع‬ ‫ومدعومة‬ ‫واالستعمال‬ ‫التعلم‬ ‫سهلة‬ ‫لغة‬ ‫باستخدام‬
.
‫باستخدام‬ ‫الويب‬ ‫تطبيقات‬ ‫تطوير‬ ‫في‬ ‫المستخدمة‬ ‫والتقنيات‬ ‫اللغات‬
JavaScript:
‫لغة‬
JavaScript
‫وبيئة‬
Node.js
‫العمل‬ ‫وإطار‬
Express.js
‫البيانات‬ ‫وقواعد‬
(
‫مثل‬
MongoDB
‫و‬
MySQL
‫و‬
PostgreSQL
‫وغيرها‬
).
‫بايثون‬ ‫لغة‬ ‫باستخدام‬ ‫البرمجة‬ ‫تعلم‬
Python
-
‫البرمجية‬ ‫شيفرتها‬ ‫تبدو‬ ‫إذ‬ ،‫اإلطًلق‬ ‫على‬ ‫برمجة‬ ‫لغة‬ ‫أسهل‬ ‫أنها‬ ‫على‬ ‫ها‬‫عد‬ ‫ويمكن‬ ،‫االستعماالت‬ ‫متعددة‬ ‫بايثون‬ ‫لغة‬
‫مكتوبة‬ ‫مقالة‬ ‫كأنها‬
‫عن‬ ‫تبحث‬ ‫فأنت‬ ‫كثيرة‬ ‫عمل‬ ‫أطر‬ ‫ولها‬ ‫ا‬ً‫ممتاز‬ ‫ا‬ً‫م‬‫دع‬ ً‫ة‬‫ومدعوم‬ ً‫ة‬‫سهل‬ ً‫ة‬‫لغ‬ َ‫أردت‬ ‫إذا‬ .‫اإلنكليزية‬ ‫باللغة‬
‫بايثون‬ ‫لغة‬
.
‫جانغو‬ ‫العمل‬ ‫إطار‬ ‫هي‬ ‫أمامك‬ ‫المتاحة‬ ‫الخيارات‬
(
Django
)
‫وفًلسك‬
(
Flask
)
‫البرمجة‬ ‫لغة‬ ‫تعلم‬ ‫يمكنك‬ ،‫وغيرها‬
‫قراءة‬ ‫خًلل‬ ‫من‬ ‫الخلفية‬ ‫الواجهات‬ ‫لتطوير‬ ‫بايثون‬
‫سالسل‬
‫المقاالت‬
‫عن‬
‫تعل‬
‫م‬
‫بايثون‬
‫في‬
‫قسم‬
‫البرمجة‬
‫في‬
‫أكاديمية‬
‫حسوب‬
‫توثيق‬ ‫على‬ ‫لًلطًلع‬ ‫حسوب‬ ‫موسوعة‬ ‫إلى‬ ‫تعود‬ ‫أن‬ ‫يمكنك‬ .‫فًلسك‬ ‫أو‬ ‫جانغو‬ ‫العمل‬ ‫إطار‬ ‫تعلم‬ ‫إلى‬ ‫االنتقال‬ ‫ثم‬ ،
‫بايثون‬ ‫لغة‬
.
‫تطبيقات‬ ‫تطوير‬ ‫في‬ ‫المستخدمة‬ ‫والتقنيات‬ ‫اللغات‬
‫عليها‬ ‫المبنية‬ ‫العمل‬ ‫وإطارات‬ ‫بايثون‬ ‫لغة‬ :‫بايثون‬ ‫باستخدام‬ ‫الويب‬
‫البيانات‬ ‫وقواعد‬ )‫وفًلسك‬ ‫جانغو‬ ‫(مثل‬
(
‫مثل‬
MySQL
‫و‬
PostgreSQL
‫وغيرها‬
).
‫الجوال‬ ‫تطبيقات‬ ‫تطوير‬ ‫تعلم‬
‫و‬ ‫أندرويد‬ ‫ألنظمة‬ ‫الجوال‬ ‫تطبيقات‬ ‫عدد‬ ‫ازداد‬
iOS
‫أو‬ ‫شركة‬ ‫لكل‬ ‫وأصبح‬ ،‫الماضية‬ ‫الفترة‬ ‫في‬ ‫ا‬ً‫كبير‬ ‫ًا‬‫د‬‫ازديا‬
‫خدمة‬
‫توفرها‬ ‫التي‬ ‫الخدمات‬ ‫إلى‬ ‫الوصول‬ ‫مستخدميها‬ ‫على‬ ‫ل‬ِّ‫ه‬‫يس‬ ‫بها‬ ‫خاص‬ ‫تطبيق‬
.
‫ثم‬ ‫أندرويد‬ ‫هما‬ ‫ًا‬‫ي‬‫حال‬ ‫الجوال‬ ‫سوق‬ ‫على‬ ‫المسيطران‬ ‫الرئيسيان‬ ‫النظامان‬
iOS.
‫بلغة‬ ‫أندرويد‬ ‫تطبيقات‬ ‫برمجة‬ ‫يمكن‬
Java
‫أو‬
Kotlin
‫تطبيقات‬ ‫وبرمجة‬ )‫غيرهما‬ ‫(أو‬
iOS
‫باستخدام‬
Swift (
‫وغيرها‬
).
‫لهواتف‬ ‫وآخر‬ ‫أندرويد‬ ‫لهواتف‬ ‫واحد‬ ،‫ا‬ً‫م‬‫تما‬ ‫منفصلين‬ ‫تطبيقين‬ ‫تطوير‬ ‫عليك‬ َّ‫أن‬ ‫ستكتشف‬
iOS
‫في‬ ً‫ة‬‫زياد‬ ‫يسبب‬ ‫وذلك‬ ،
‫التغييرات‬ ‫إدارة‬ ‫في‬ ً‫ة‬‫وصعوب‬ ‫المطلوب‬ ‫العمل‬ ‫حجم‬
.
‫و‬ ‫أندرويد‬ ‫نظام‬ ‫على‬ ‫تعمل‬ ‫تطبيقات‬ ‫وهي‬ ،"‫المنصات‬ ‫متعددة‬ ‫"التطبيقات‬ ‫مفهوم‬ ‫ظهر‬ ،‫ذلك‬ ‫بسبب‬
iOS
‫أي‬ ‫دون‬
‫وذ‬ ،‫تعديًلت‬
‫االستفادة‬ ‫الويب‬ ‫مطوري‬ ‫بإمكان‬ ‫أصبح‬ ‫أي‬ .‫الويب‬ ‫تقنيات‬ ‫الغالب‬ ‫في‬ ‫وهي‬ ‫مشتركة‬ ‫تقنيات‬ ‫باستخدام‬ ‫لك‬
‫آيونيك‬ ‫مثل‬ ‫منصات‬ ‫باستخدام‬ ‫الجوال‬ ‫تطبيقات‬ ‫تطوير‬ ‫في‬ ‫معلوماتهم‬ ‫من‬
Ionic.
‫آيونيك‬ ‫تسمح‬
Ionic
‫لغة‬ ‫باستخدام‬ ‫الجهاز‬ ‫وظائف‬ ‫مختلف‬ ‫مع‬ ‫بالتعامل‬ ‫للمبرمجين‬
JavaScript
‫الوصول‬ ‫مثل‬ ،
‫إلى‬
‫ذلك‬ ‫وخًلف‬ ‫الملفات‬ ‫مع‬ ‫والتعامل‬ ،‫بالكاميرا‬ ‫صور‬ ‫والتقاط‬ ،‫الجغرافي‬ ‫الموقع‬
.
‫على‬ ‫مبنية‬ ‫أخرى‬ ‫تقنيات‬ ‫الماضية‬ ‫الفترة‬ ‫في‬ ‫رت‬ِّ‫و‬‫ط‬
JavaScript
‫مثل‬
React Native
‫مكتبة‬ ‫على‬ ‫المبنية‬
React.js
‫الويب‬ ‫تقنيات‬ ‫باستخدام‬ ‫أصيلة‬ ‫تطبيقات‬ ‫بكتابة‬ ‫للمطورين‬ ‫تسمح‬ ‫والتي‬
.
‫األلعاب‬ ‫تطوير‬
‫ت‬
‫من‬ ‫الحاسوب‬ ‫على‬ ‫تعرفوا‬ ‫فاألغلبية‬ .‫إليه‬ ‫بالدخول‬ ‫الحاسوب‬ ‫مستخدمي‬ ‫جميع‬ ‫يحلم‬ ‫الذي‬ ‫المجال‬ ‫هو‬ ‫األلعاب‬ ‫طوير‬
‫والتطوير‬ ‫البرمجة‬ ‫عن‬ ‫االستكشاف‬ ‫برحلة‬ ‫بدؤوا‬ ‫ثم‬ ‫ومن‬ ‫الفيديو‬ ‫ألعاب‬ ‫خًلل‬
.
‫لغة‬ ‫بتعلم‬ ‫"عليك‬ ‫يقول‬ ‫األلعاب‬ ‫تطوير‬ ‫عن‬ ‫يجيب‬ ‫من‬ ‫أغلب‬
"
C++
ً
‫قليًل‬ ‫األمر‬ ‫لك‬ ‫ل‬ ِّ
‫أفص‬ ‫دعني‬ ‫لكن‬
.
‫أن‬ ‫وحيد‬ ‫ر‬ِّ‫و‬‫مط‬ ‫على‬ ‫الصعب‬ ‫من‬ .‫تجارية‬ ‫شركة‬ ‫من‬ ‫مدعوم‬ ،‫كبير‬ ‫عمل‬ ‫فريق‬ ‫من‬ ‫ا‬ً‫كثير‬ ً
‫عمًل‬ ‫تتطلب‬ ‫األلعاب‬ ‫برمجة‬
‫فريق‬ ‫دون‬ ‫الصفر‬ ‫من‬ ‫كاملة‬ ‫لعبة‬ ‫ينشئ‬
.
‫ك‬ ِّ
‫محر‬ ‫باستخدام‬ ‫األلعاب‬ ‫أغلبية‬ ‫طور‬ُ‫ت‬
(engine)
‫مناسبة‬ ‫تطوير‬ ‫بيئة‬ ‫ويتيح‬ ‫المطورين‬ ‫على‬ ‫األمر‬ ‫ل‬ِّ‫ه‬‫يس‬ ‫والذي‬
‫وتحريكها‬ ‫األبعاد‬ ‫ثًلثية‬ ‫الشخصيات‬ ‫ونمذجة‬ ‫بالكاميرا‬ ‫التحكم‬ ‫مثل‬ ‫األلعاب‬ ‫لجميع‬ ‫األساسية‬ ‫الميزات‬ ‫ويتيح‬ ،‫لأللعاب‬
‫مح‬ ‫من‬ ‫كبير‬ ‫عدد‬ ‫هنالك‬ .‫األخرى‬ ‫الفيزيائية‬ ‫واألمور‬
‫في‬ ‫شعارها‬ ‫شاهدت‬ ‫أنك‬ ‫المرجح‬ ‫ومن‬ ،‫األلعاب‬ ‫تطوير‬ ‫ركات‬
‫أشهرها‬ ‫ومن‬ ،‫قبل‬ ‫من‬ ‫لعبتها‬ ‫التي‬ ‫األلعاب‬
: Unreal Engine
‫و‬
Unity.
‫مثل‬ ،‫لغات‬ ‫ة‬ِّ‫د‬‫ع‬ ‫باستخدام‬ ‫المحركات‬ ‫هذه‬ ‫مع‬ ‫التعامل‬ ‫يمكن‬
C++
‫على‬ ‫لأللعاب‬ ‫ا‬ً‫ص‬‫(خصو‬ ‫وجافا‬ ،)‫أشهرها‬ ‫(وهي‬
‫استخدام‬ ‫يمكن‬ ‫وحتى‬ )‫أندرويد‬ ‫هواتف‬
JavaScript
‫بعضها‬ ‫مع‬ ‫التعامل‬ ‫في‬
.
‫المتصفحات‬ ‫على‬ ‫تعمل‬ ‫كثيرة‬ ‫ألعاب‬ ‫فهنالك‬ ،‫الهواتف‬ ‫أو‬ ‫المكتب‬ ‫سطح‬ ‫بتطبيقات‬ ‫محدودة‬ ‫غير‬ ‫األلعاب‬ ‫أن‬ ‫تذكر‬
‫تقنيات‬ ‫باستخدام‬
HTML5
‫و‬
JavaScript.
‫األلعاب‬ ‫تطوير‬ ‫في‬ ‫المستخدمة‬ ‫والتقنيات‬ ‫اللغات‬
: C++
‫و‬
Java
‫و‬
JavaScript
‫ومحركات‬
Unity
‫و‬
Unreal
Engine.
‫المدمجة‬ ‫األنظمة‬ ‫تطوير‬
.‫اآلن‬ ‫أمامك‬ ‫تراه‬ ‫الذي‬ ‫الحاسوب‬ ‫ميزات‬ ‫كل‬ ‫تملك‬ ‫ال‬ ‫ولكنها‬ ‫بالحاسوب‬ ‫شبيهة‬ ‫حاسوبية‬ ‫أنظمة‬ ‫هي‬ ‫المدمجة‬ ‫األنظمة‬
‫المراد‬ ‫البيئة‬ ‫أو‬ ‫الجهاز‬ ‫ضمن‬ ‫ومدمج‬ ‫فقط‬ ‫محددة‬ ‫مهام‬ ‫ألداء‬ ‫مبرمج‬ ‫صغير‬ ‫حاسوب‬ ‫هو‬ ‫المدمج‬ ‫النظام‬ ،‫أخرى‬ ‫بعبارة‬
.‫فيها‬ ‫استخدامه‬
‫التحكم‬ ‫وجهاز‬ ‫المياه‬ ‫مستوى‬ ‫مقياس‬ ‫جهاز‬ ‫مثل‬ ‫اآلن‬ ‫المدمجة‬ ‫األنظمة‬ ‫من‬ ‫بالكثير‬ ‫محاط‬ ‫اآلن‬ ‫أنت‬
‫اآللية‬ ‫األطفال‬ ‫وألعاب‬ ‫السير‬ ‫وتنظيم‬ ‫المرور‬ ‫إشارات‬ ‫حتى‬ .‫إلخ‬... ‫المراقبة‬ ‫وأجهزة‬ ‫الحريق‬ ‫إنذار‬ ‫وجهاز‬ ‫بالتلفاز‬
‫مدمجة‬ ‫أنظمة‬ ‫أنها‬ ‫على‬ ‫ف‬َّ‫ن‬‫تص‬
.
‫األشي‬ ‫"إنترنت‬ ‫بمصطلح‬ ‫ًا‬‫ض‬‫أي‬ ‫سمعت‬ ‫هل‬
!‫البساطة‬ ‫بهذه‬ ،‫نعم‬ .‫باإلنترنت‬ ‫متصل‬ ‫مدمج‬ ‫نظام‬ ‫هو‬ ‫األشياء‬ ‫إنترنت‬ ‫اء"؟‬
‫بعد‬ ‫عن‬ ‫المراقبة‬ ‫وأنظمة‬ ‫الدرون‬ ‫وطائرات‬ ‫الذكية‬ ‫والغساالت‬ ‫والثًلجات‬ ‫الساعات‬ ‫ذهنك‬ ‫إلى‬ ‫يتبادر‬ ‫أن‬ ‫اآلن‬ ‫البد‬
‫األشياء‬ ‫إنترنت‬ ‫على‬ ‫أمثلة‬ ‫كلها‬ ‫إذ‬ ،‫الذكية‬ ‫البيوت‬ ‫وأنظمة‬
.
‫المدمجة‬ ‫األنظمة‬ ‫برمجة‬ ‫كيفية‬
‫أش‬
‫لغة‬ ‫هي‬ ‫األشياء‬ ‫وإنترنت‬ ‫المدمجة‬ ‫األنظمة‬ ‫برمجة‬ ‫في‬ ‫ل‬َ‫م‬‫تستع‬ ‫برمجة‬ ‫لغة‬ ‫وأكثر‬ ‫هر‬
C
‫اللغات‬ ‫وكل‬ )‫سي‬ ‫لغة‬ ‫(أي‬
‫منها‬ ‫المشتقة‬
(
‫مثل‬
‫أردوينو‬ ‫لغة‬
C).
‫لغة‬ ‫ل‬َ‫م‬‫ستع‬ُ‫ت‬
C++
‫لغة‬ ‫من‬ ‫أعلى‬ ‫مستوى‬ ‫ذات‬ ‫لغة‬ ُّ‫د‬‫تع‬ ‫إذ‬ ،‫المجال‬ ‫هذا‬ ‫في‬ ‫ا‬ً‫كثير‬
C
‫ذلك‬ ‫إلى‬ ‫أضف‬ .‫التوجه‬ ‫كائنية‬ ‫للبرمجة‬ ‫لدعمها‬
‫المدمجة‬ ‫األنظمة‬ ‫تطبيقات‬ ‫برمجة‬ ‫في‬ ‫بايثون‬ ‫لغة‬ ‫استعمال‬ ‫ا‬ً‫ث‬‫حدي‬ ‫بدأ‬ ‫أنه‬
‫لغة‬ ‫بقوة‬ ‫ليست‬ ‫بايثون‬ ‫لغة‬ َّ‫أن‬ ‫صحيح‬ .‫ا‬ً‫ق‬‫ساب‬ ‫المجال‬ ‫بهذا‬ ‫ًّا‬‫ي‬‫تقليد‬ ‫ترتبط‬ ‫لم‬ ‫أنها‬ ‫مع‬
C
‫و‬
C++
‫أنها‬ ‫إال‬ ‫المجال‬ ‫هذا‬ ‫في‬
‫فيها‬ ‫المتوافرة‬ ‫الهائلة‬ ‫المكتبات‬ ‫من‬ ‫وفعاليتها‬ ‫ميزاتها‬ ‫تستمد‬
.
‫عن‬ ‫ًا‬‫د‬‫بعي‬
C
‫وبا‬
‫العتاد‬ ‫توصيف‬ ‫"لغات‬ ‫ضمن‬ ‫تنضوي‬ ‫أخرى‬ ‫لغات‬ ‫ًا‬‫ض‬‫أي‬ ‫المدمجة‬ ‫األنظمة‬ ‫مجال‬ ‫في‬ ‫تستعمل‬ ،‫يثون‬
"
(Hardware Description Languages)
‫لغتي‬ ‫؛‬
VHDL
‫و‬
Verilog
‫العتاد‬ ‫توصيف‬ ‫لغات‬ ‫أشهر‬ ‫من‬ ‫هما‬
‫القاب‬ ‫المنطقية‬ ‫البوابات‬ ‫"مصفوفة‬ ‫برمجة‬ ‫في‬ ‫اللغات‬ ‫هذه‬ ‫مثل‬ ‫ل‬َ‫م‬‫ستع‬ُ‫ت‬ .‫المجال‬ ‫هذا‬ ‫في‬ ‫المستعملة‬
‫للبرمجة‬ ‫لة‬
" (FPGA
‫أي‬
Field Programmable Gate Array).
‫التجميع‬ ‫"لغة‬ ‫تدعى‬ ‫أخرى‬ ‫بلغة‬ ‫المدمجة‬ ‫األنظمة‬ ‫برمجة‬ ‫تشرح‬ ‫المراجع‬ ‫بعض‬ ‫تجد‬ ‫قد‬ ،‫ا‬ً‫أخير‬
" (Assembly
Language)
‫ا‬ً‫ع‬‫واس‬ ‫ا‬ً‫م‬‫فه‬ ‫اللغة‬ ‫هذه‬ ‫باستخدام‬ ‫البرمجة‬ ‫تعلم‬ ‫يتطلب‬ .‫المستوى‬ ‫منخفضة‬ ‫اللغات‬ ‫من‬ ‫تصنف‬ ‫التي‬
‫وحدة‬ ‫بمعمارية‬
‫يكون‬ ‫قد‬ ‫اللغة‬ ‫هذه‬ ‫إلى‬ ‫االنتقال‬ .‫الحاسوب‬ ‫يفهمها‬ ‫لغة‬ ‫أقرب‬ ‫ألنها‬ ‫بالمجمل‬ ‫والمعالج‬ ‫المركزية‬ ‫التحكم‬
‫اللغة‬ ‫بهذه‬ ‫البرمجة‬ ‫ميزات‬ ‫من‬ .‫األشياء‬ ‫إنترنت‬ ‫وتطبيقات‬ ‫المدمجة‬ ‫األنظمة‬ ‫لبرمجة‬ ‫تعلمك‬ ‫من‬ ‫متقدمة‬ ‫مستويات‬ ‫في‬
‫أخرى‬ ‫لغات‬ ‫توفره‬ ‫ال‬ ‫الذي‬ ‫والمعالج‬ ‫بالعتاد‬ ‫الواسع‬ ‫التحكم‬ ‫هي‬
‫ولكن‬ ،‫ومعقدة‬ ‫الشيء‬ ‫بعض‬ ‫صعبة‬ ‫اللغة‬ ‫هذه‬ ‫أن‬ ‫يقال‬ .
‫وال‬ ‫اآللة‬ ‫لغة‬ ‫إلى‬ ‫شيء‬ ‫وأقرب‬ ‫المستوى‬ ‫منخفضة‬ ‫لغة‬ ‫هي‬ ‫التجميع‬ ‫لغة‬ ‫أن‬ ‫هو‬ ‫ذلك‬ ‫قول‬ ‫سبب‬ ‫يكون‬ ‫قد‬ !‫ذلك‬ ‫أرى‬ ‫ال‬
‫يعرفها‬ ‫لم‬ ‫إن‬ ‫ا‬ً‫ق‬‫مطل‬ ‫فهمها‬ ‫فيها‬ ‫مكتوبة‬ ‫شيفرة‬ ‫على‬ ‫نظرة‬ ‫يلقي‬ ‫من‬ ‫يستطيع‬
.
‫المكتب‬ ‫سطح‬ ‫تطبيقات‬ ‫تطوير‬
‫تطب‬ ‫تطوير‬ ‫مجال‬
‫فيه‬ ‫ستضيع‬ ،‫االتجاه‬ ‫تريد‬ ‫أين‬ ‫إلى‬ ‫وتعرف‬ ‫بوصلة‬ ‫تملك‬ ‫لم‬ ‫إن‬ ‫الواسع؛‬ ‫كالمحيط‬ ‫المكتب‬ ‫سطح‬ ‫يقات‬
‫أشهرها‬ ‫التشغيل‬ ‫أنظمة‬ ‫من‬ ‫الكثير‬ ‫هنالك‬ .‫ا‬ً‫م‬‫حت‬
-
‫ًا‬‫ي‬‫حال‬ ‫السوق‬ ‫على‬ ً‫ة‬‫سيطر‬ ‫وأكثرها‬
-
،‫ويندوز‬ ‫التشغيل‬ ‫نظام‬ :‫هي‬
‫وماك‬ ،‫ولينكس‬
(macOS)
‫به‬ ‫خاصة‬ ‫مكتبية‬ ‫تطبيقات‬ ‫تشغيل‬ ‫نظام‬ ‫كل‬ ‫ويملك‬ ،
ً
‫أوال‬ ‫عليك‬ ‫يجب‬ ،‫لذلك‬ .
-
‫الدخول‬ ‫قبل‬
‫المكتب‬ ‫سطح‬ ‫تطبيقات‬ ‫برمجة‬ ‫سوق‬ ‫إلى‬
-
‫هل‬ :‫التالي‬ ‫السؤال‬ ‫على‬ ‫اإلجابة‬ ‫يجب‬ ‫أي‬ .‫المستهدف‬ ‫التشغيل‬ ‫نظام‬ ‫تحديد‬
‫واحد؟‬ ‫آن‬ ‫في‬ ‫تشغيل‬ ‫أنظمة‬ ‫عدة‬ ‫على‬ ‫يعمل‬ ‫أن‬ ‫لتطبيقك‬ ‫تريد‬ ‫أم‬ ،‫محدد‬ ‫تشغيل‬ ‫نظام‬ ‫تطبيقك‬ ‫يستهدف‬
!
،‫المستهدف‬ ‫التشغيل‬ ‫نظام‬ ‫تحديد‬ ‫بعد‬
‫سبيل‬ ‫فعلى‬ ‫تطبيقاته؛‬ ‫لبرمجة‬ ‫النظام‬ ‫ذلك‬ ‫في‬ ‫استعمالها‬ ‫المفضل‬ ‫اللغات‬ ‫على‬ ‫اطلع‬
‫اللغات‬ ،‫المثال‬
C
‫و‬
C++
‫و‬
C#
‫و‬
VB.NET
،‫ويندوز‬ ‫التشغيل‬ ‫نظام‬ ‫تطبيقات‬ ‫برمجة‬ ‫في‬ ً
‫استعماال‬ ‫األكثر‬ ‫هي‬
‫واللغات‬
C
‫و‬
C++
‫و‬
Bash
‫نظام‬ ‫توزيعات‬ ‫تطبيقات‬ ‫برمجة‬ ‫في‬ ً
‫استعماال‬ ‫األكثر‬ ‫هي‬
‫نظام‬ ‫ا‬َّ‫م‬‫أ‬ .‫لينكس‬ ‫التشغيل‬
‫لغة‬ ‫باستعمال‬ ‫فينفرد‬ ،‫ماك‬ ‫الشغيل‬
C.
-
Objective
‫اللغات‬ ‫أشهر‬ ‫إذ‬ ،‫التطبيقات‬ ‫برمجة‬ ‫في‬ ‫استعمالها‬ ‫يمكن‬ ‫الغرض‬ ‫عامية‬ ‫برمجة‬ ‫لغة‬ ‫كل‬ ،‫الحقيقة‬ ‫أخبرك‬ ‫دعني‬ ،‫ا‬ً‫ن‬‫حس‬
‫جافا‬ ‫لغة‬ ‫هي‬ ‫المجال‬ ‫هذا‬ ‫في‬ ‫ًّا‬‫ي‬‫أكاديم‬ ‫س‬َّ‫در‬ُ‫ت‬ ‫التي‬
(Java).
‫ل‬ ‫دخول‬ ‫القارئ‬ ‫على‬ ‫يخفى‬ ‫ال‬
‫هذا‬ ‫على‬ ‫بقوة‬ ‫بايثون‬ ‫غة‬
‫صياغتها‬ ‫وسهولة‬ ‫الرائعة‬ ‫المكتبات‬ ‫من‬ ‫الكثير‬ ‫المتًلكها‬ ‫ا‬ً‫نظر‬ ‫المجال‬
.
‫لغة‬ ‫ا‬ً‫مؤخر‬ ‫دخلت‬
java script
‫العمل‬ ‫إطار‬ ‫عبر‬ ‫المكتب‬ ‫سطح‬ ‫تطبيقات‬ ‫برمجة‬ ‫سوق‬ ‫على‬
Electron
‫الويب‬ ‫تطوير‬ ‫تقنيات‬ ‫المجال‬ ‫هذا‬ ‫في‬ ‫توظف‬ ‫إذ‬ ،)‫(إلكترون‬
(HTML
‫و‬
CSS
‫و‬
JavaScript ...
‫إلخ‬
.).
‫هذا‬ ‫بدأ‬
‫هذا‬ ‫باستعمال‬ ‫بها‬ ‫الخاصة‬ ‫المكتب‬ ‫سطح‬ ‫تطبيقات‬ ‫لتطوير‬ ‫كبيرة‬ ‫شركات‬ ‫دفع‬ ‫مما‬ ‫الهشيم‬ ‫في‬ ‫كالنار‬ ‫ينتشر‬ ‫اإلطار‬
‫شركة‬ ‫ومنها‬ ‫اإلطار‬
Slack
‫المكتبي‬ ‫تطبيقها‬ ‫لتطوير‬ ‫اإلطار‬ ‫هذا‬ ‫استعملت‬ ‫التي‬
.
‫ف‬ ‫المستعملة‬ ‫والتقنيات‬ ‫البرمجة‬ ‫لغات‬ ‫كثرة‬ ‫من‬ ‫بالضياع‬ ‫تشعر‬ ‫اآلن‬ ‫أنك‬ ‫أعلم‬
‫بذلك‬ ‫أخبرتك‬ ‫فقد‬ ،‫حق‬ ‫معك‬ ‫المجال؛‬ ‫هذا‬ ‫ي‬
‫هل‬ ‫منه؟‬ ‫والربح‬ ‫إنشاءه‬ ‫وتريد‬ ‫تطبيق‬ ‫فكرة‬ ‫لديك‬ ‫هل‬ .‫بالضبط‬ ‫منه‬ ‫هدفك‬ ‫تحديد‬ ‫منك‬ ‫يحتاج‬ ‫السوق‬ ‫هذا‬ ‫دخول‬ .‫قليل‬ ‫منذ‬
‫يلعب‬ ‫ذلك‬ ‫كل‬ ‫تطويره؟‬ ‫على‬ ‫العمل‬ ‫تريد‬ ‫أو‬ ‫إنشاءه‬ ‫تريد‬ ‫الذي‬ ‫التطبيق‬ ‫مواصفات‬ ‫هي‬ ‫ما‬ ‫محددة؟‬ ‫شركة‬ ‫لدى‬ ‫العمل‬ ‫تريد‬
‫في‬ ‫ا‬ً‫دور‬
‫لغة‬ ‫على‬ ‫العمل‬ ‫وأتقنت‬ ‫البرمجة‬ ‫أساسيات‬ ‫تعلمت‬ ‫إن‬ ،‫النهاية‬ ‫في‬ .‫لتعلمها‬ ‫لك‬ ‫األنسب‬ ‫البرمجة‬ ‫لغة‬ ‫تحديد‬
‫ناحية‬ ‫من‬ ‫ًا‬‫ض‬‫بع‬ ‫بعضها‬ ‫تشبه‬ ‫البرمجة‬ ‫لغات‬ ‫أغلب‬ ‫إذ‬ ،‫أخرى‬ ‫برمجة‬ ‫لغة‬ ‫إلى‬ ‫االنتقال‬ ‫عليك‬ ‫سيسهل‬ ،‫محددة‬ ‫برمجية‬
‫ل‬ .‫والشكل‬ ‫الصياغة‬ ‫ناحية‬ ‫من‬ ‫الشيء‬ ‫بعض‬ ‫وتختلف‬ ‫والمضمون‬ ‫المفهوم‬
‫الناحية‬ ‫هذه‬ ‫من‬ ‫اطمئن‬ ،‫ذلك‬
.
‫تناسبك‬ ‫التي‬ ‫البرمجة‬ ‫لغة‬ ‫اختيار‬ ‫كيفية‬
‫مجاالت‬ ‫لمختلف‬ ‫التعلم‬ ‫مسار‬ ‫لك‬ ‫سألخص‬ ،‫فيه‬ ‫العمل‬ ‫تحب‬ ‫الذي‬ ‫المجال‬ ‫على‬ ‫ًا‬‫د‬‫اعتما‬ ‫البرمجة‬ ‫لغة‬ ‫اختيار‬ ‫يمكنك‬
‫العمل‬
:
•
‫ويب‬ ‫كمطور‬ ‫العمل‬
stack:
-
full
‫وتطوير‬ ،‫المستخدم‬ ‫واجهات‬ ‫تطوير‬ ‫تعلم‬ ‫ذلك‬ ‫يعني‬
.‫الخلفية‬ ‫الواجهات‬
‫متخصصين‬ ‫مبرمجين‬ ‫العمل‬ ‫سوق‬ ‫في‬ ‫ا‬ً‫كثير‬ ‫ب‬َ‫ل‬‫ُط‬‫ي‬ ‫إذ‬ ،‫فقط‬ ‫المجالين‬ ‫هذين‬ ‫من‬ ‫واحد‬ ‫بمجال‬ ‫التخصص‬ ‫يمكن‬
‫الخلفية‬ ‫الواجهات‬ ‫أو‬ ‫المستخدم‬ ‫واجهات‬ ‫في‬
.
•
‫أو‬ ‫أندرويد‬ ‫تطبيقات‬ ‫برمجة‬ ‫تعلم‬ ‫يمكنك‬ :‫المحمولة‬ ‫للهواتف‬ ‫تطبيقات‬ ‫كمطور‬ ‫العمل‬
iOS
‫أو‬ ،‫حدة‬ ‫على‬ ً
‫كًل‬
‫تقني‬ ‫استعمال‬
‫ا‬ً‫ع‬‫م‬ ‫النظامين‬ ‫لكًل‬ ‫للتطوير‬ ‫كوردوفا‬ ‫مثل‬ ‫ات‬
.
•
‫َّد‬‫د‬‫مح‬ ‫تشغيل‬ ‫لنظام‬ ‫مكتبية‬ ‫تطبيقات‬ ‫تطوير‬ ‫في‬ ‫بالتخصص‬ ‫البدء‬ ‫يمكنك‬ :‫المكتب‬ ‫سطح‬ ‫تطبيقات‬ ‫كمطور‬ ‫العمل‬
‫ذلك‬ ‫إلى‬ ‫أشرنا‬ ‫(كما‬ ‫المجال‬ ‫ذاك‬ ‫في‬ ‫المستعملة‬ ‫البرمجة‬ ‫لغة‬ ‫تعلم‬ ‫عبر‬ )‫لينكس‬ ‫أو‬ ‫ويندوز‬ ‫التشغيل‬ ‫نظام‬ ‫(مثل‬
‫تطبيقا‬ ‫تطوير‬ ‫قسم‬ ‫في‬
‫تطبيقات‬ ‫تطوير‬ ‫من‬ ‫تمكنك‬ ‫التي‬ ‫والتقنيات‬ ‫اللغات‬ ‫تعلم‬ ‫هو‬ ‫آخر‬ ‫خيار‬ ‫المكتب)؛‬ ‫سطح‬ ‫ت‬
‫العمل‬ ‫إطار‬ ‫استعمال‬ ‫مثل‬ )‫تشغيل‬ ‫أنظمة‬ ‫عدة‬ ‫على‬ ‫(تعمل‬ ‫للمنصات‬ ‫عابرة‬
Electron.
•
‫لغة‬ :‫الذكية‬ ‫واألنظمة‬ ‫المدمجة‬ ‫لألنظمة‬ ‫كمطور‬ ‫العمل‬
C
‫مع‬ ‫تتعامل‬ َ‫كنت‬ ً‫ء‬‫سوا‬ ،‫المجال‬ ‫هذا‬ ‫أساس‬ ‫هي‬
‫مبا‬ ‫المتحكمات‬
‫أردوينو‬ ‫مثل‬ ‫شريحة‬ ‫مع‬ ‫تتعامل‬ ‫أو‬ ،ً‫ة‬‫شر‬
(
‫من‬ ً‫ة‬‫مشتق‬ ً‫ة‬‫لغ‬ ‫تمتلك‬ ‫والتي‬
C).
‫البرمجة‬ ‫لتعلم‬ ‫نصائح‬
‫لكثرة‬ ‫طريقك‬ ‫بداية‬ ‫في‬ ‫باإلحباط‬ ‫تصاب‬ ‫قد‬ ‫لكنك‬ ،ٍ‫ل‬‫ومس‬ ‫وجميل‬ ،‫وشائق‬ ‫طويل‬ ‫الصفر‬ ‫من‬ ‫البرمجة‬ ‫تعلم‬ ‫مشوار‬
‫في‬ ‫تجربتي‬ ‫من‬ ‫اآلتية‬ ‫النصائح‬ ‫إليك‬ ‫جهزت‬ ‫لذا‬ ،‫بها‬ ‫اإللمام‬ ‫عليك‬ ‫التي‬ ‫األمور‬
‫البرمجة‬
:
•
‫بأنك‬ ‫أبشرك‬ ،‫هدف‬ ‫بدون‬ .‫ًا‬‫ي‬‫واقع‬ ‫واجعله‬ ‫دخوله‬ ‫تريد‬ ‫الذي‬ ‫العمل‬ ‫وسوق‬ ‫البرمجة‬ ‫لغة‬ ‫تعلم‬ ‫من‬ ‫هدفك‬ ‫حدد‬
‫على‬ ‫والتجزيء‬ ‫للقياس‬ ً
‫وقابًل‬ ‫ًا‬‫ي‬‫واقع‬ ‫هدفك‬ ‫يكون‬ ‫أن‬ ‫إلى‬ ‫انتبه‬ .‫حين‬ ‫بعد‬ ‫البرمجة‬ ‫تعلم‬ ‫فكرة‬ ‫عن‬ ‫ستتخلى‬
‫البرمجة‬ ‫تعلم‬ ‫وتترك‬ ‫عقبة‬ ‫أول‬ ‫من‬ ‫ستفشل‬ ،‫ذلك‬ ‫بدون‬ .‫مراحل‬
.
•
‫أع‬
‫ترميم‬ ‫على‬ ‫عمل‬ ‫من‬ ‫المفلح‬ ‫ولكن‬ ،‫وضعف‬ ‫قوة‬ ‫نقاط‬ ‫لديه‬ ‫كلنا‬ .‫وضعفك‬ ‫قوتك‬ ‫ونقاط‬ ‫ًا‬‫د‬‫جي‬ ‫نفسك‬ ‫رف‬
‫بتعلمه‬ ‫يرغب‬ ‫الذي‬ ‫المجال‬ ‫في‬ ‫ضعفه‬ ‫نقاط‬ ‫وتحسين‬
.
•
‫دورة‬ ‫إلى‬ ‫االنتهاء‬ ‫بعد‬ ‫انتقل‬ ‫ثم‬ ‫ًّا‬‫ي‬‫تدريج‬ ‫الدورة‬ ‫ومتابعة‬ ‫الكتاب‬ ‫بقراءة‬ ‫وابدأ‬ ‫ًا‬‫د‬‫واح‬ ‫ًا‬‫ب‬‫وكتا‬ ‫واحدة‬ ‫دورة‬ ‫رشح‬
‫إذ‬ ،‫آخر‬ ‫وكتاب‬ ‫أخرى‬
‫بداية‬ ‫قبل‬ ‫أفعله‬ ‫الذي‬ ‫الشيء‬ .‫العديدة‬ ‫والكتب‬ ‫الكثيرة‬ ‫الدورات‬ ‫بين‬ ‫التشتت‬ ‫ذلك‬ ‫سيجنبك‬
‫جودتها‬ ‫بحسب‬ ‫والدورات‬ ‫الكتب‬ ‫هذه‬ ‫ترتيب‬ ‫ثم‬ ‫ودورات‬ ‫كتب‬ ‫عدة‬ ‫من‬ ‫قائمة‬ ‫ترشيح‬ ‫هو‬ ‫جديد‬ ‫شيء‬ ‫تعلم‬
‫التقريبي‬ ‫الوقت‬ ‫أحدد‬ .‫منها‬ ‫األول‬ ‫بالخيار‬ ‫وأبدأ‬ ‫والدورات‬ ‫الكتب‬ ‫أرقم‬ .‫وتعقيدها‬ ‫بساطتها‬ ‫ومدى‬
‫يأخذه‬ ‫الذي‬
‫الخاصة‬ ‫رزنامتي‬ ‫على‬ ‫البقية‬ ‫الخيارات‬ ‫وأجدول‬ ‫لدراسته‬ ‫خيار‬ ‫كل‬
.
•
‫معلومات‬ ‫يضعون‬ ‫وقد‬ ‫غيرهم‬ ‫مساعدة‬ ‫يحاولون‬ ‫المبتدئين‬ ‫من‬ ‫فالكثير‬ ،‫بعلمه‬ ‫تثق‬ ‫ممن‬ ‫إال‬ ‫العلم‬ ‫تأخذ‬ ‫ال‬
‫قصد‬ ‫دون‬ ‫مغلوطة‬
.
•
‫رسمة‬ ‫كان‬ ‫لو‬ ‫حتى‬ ‫تتعلمه‬ ‫جديد‬ ‫أمر‬ ‫كل‬ ‫من‬ ‫شيء‬ ‫أي‬ ‫وأنشئ‬ ،‫مباشرة‬ ‫تعلمته‬ ‫ما‬ ‫طبق‬
‫من‬ ‫شيفرة‬ ‫أو‬ ‫بسيطة‬
‫العلم‬ ‫طلب‬ ‫في‬ ‫واالستمرار‬ ‫المزيد‬ ‫لتعلم‬ ‫تدفعك‬ ‫تعلمته‬ ‫مما‬ ‫شيء‬ ‫إنجاز‬ ‫فرحة‬ .‫فقط‬ ‫أسطر‬ ‫عدة‬
.
•
‫إلتزام‬ ‫لديك‬ ‫أن‬ ‫أصدقائك‬ ‫أخبر‬ .‫بتنفيذها‬ ‫والتزم‬ ‫لسائره‬ ً‫ة‬‫خط‬ ‫أسبوع‬ ‫كل‬ ‫بداية‬ ‫حدد‬ ،‫وقلم‬ ‫بورقة‬ ‫وقتك‬ ‫نظم‬
‫ت‬ ‫وال‬ ‫بالطبع‬ ‫لًلستراحة‬ ‫ا‬ً‫ت‬‫وق‬ ‫خصص‬ .‫إنجازها‬ ‫عليك‬ ‫مهمة‬ ‫وأمور‬
،‫أسبوع‬ ‫كل‬ ‫نهاية‬ ‫في‬ .‫منها‬ ‫نصيبك‬ َ‫نس‬
‫إلى‬ ‫النسبة‬ ‫تصل‬ ‫أن‬ ‫وحاول‬ ‫وضعها‬ ‫التي‬ ‫الخطة‬ ‫تطبيق‬ ‫ومدى‬ ‫حققته‬ ‫الذي‬ ‫اإلنجاز‬ ‫مدى‬ ‫وازن‬
100
.%
‫اإلنتاجية‬ ‫ورفع‬ ‫الوقت‬ ‫تنظيم‬ ‫استراتيجيات‬ ‫ومتابعة‬ ‫بقراءة‬ ‫أنصحك‬
.
•
‫المشكًلت‬ ‫حل‬ ‫على‬ ‫تمرس‬
‫ب‬ ‫واشترك‬ ‫البرمجية‬ ‫المسابقات‬ ‫وتابع‬ ‫باستمرار‬ ‫نفسك‬ ‫وتحدى‬
،‫استطعت‬ ‫إن‬ ‫ها‬
‫مقالة‬ ‫بقراءة‬ ‫أنصحك‬
‫البرمجة‬ ‫احتراف‬ ‫في‬ ‫وأهميتها‬ ‫المشكًلت‬ ‫حل‬
‫المقالة‬ ‫هذه‬ ‫بعد‬
.
•
‫مشروع‬ ‫على‬ ‫العمل‬ ‫تكمل‬ ‫أو‬ ‫ًا‬‫ب‬‫كتا‬ ‫فيها‬ ‫تنهي‬ ‫مرة‬ ‫كل‬ ‫في‬ ‫نفسك‬ ‫تكافئ‬ ‫أن‬ َ‫تنس‬ ‫ال‬
.
•
‫بعيد‬ ‫النهاية‬ ‫ولكن‬ ‫بداية‬ ‫له‬ ‫يكون‬ ‫قد‬ ‫البرمجة‬ ‫طريق‬ ‫ألن‬ ،‫االستراحة‬ ‫من‬ ‫حظك‬ َ‫تنس‬ ‫ال‬
‫ومتعبة‬ ‫ة‬
-
‫أي‬ ‫مثل‬ ‫مثله‬
‫آخر‬ ‫مجال‬
.
-
‫غيرك‬ ‫لعل‬ ،‫البرمجة‬ ‫تعلم‬ ‫في‬ ‫تجربتك‬ ‫تشاركنا‬ ‫أن‬ ‫منك‬ ‫وأرجو‬ .‫البرمجي‬ ‫مشوارك‬ ‫في‬ ‫التوفيق‬ ‫كل‬ ‫لك‬ ‫أرجو‬ ‫النهاية‬ ‫في‬
‫منها‬ ‫يستفيد‬
.

أريد تعلم البرمجة لكنني لا أعرف من أين أبدأ.pdf

  • 1.
    ‫البرمجة؟‬ ‫هي‬ ‫ما‬ ‫بأوامر‬‫للتنفيذ‬ ‫وقابلة‬ ‫ومترابطة‬ ‫صغيرة‬ ‫أجزاء‬ ‫إلى‬ ‫الحاسوب‬ ‫عبر‬ ‫تنفيذها‬ ‫يراد‬ ‫معينة‬ ‫مهمة‬ ‫تقسيم‬ ‫عملية‬ ‫هي‬ ‫البرمجة‬ ‫كت‬ ‫يجري‬ ،‫ذلك‬ ‫بعد‬ .‫بسيطة‬ ‫مع‬ ‫للتخاطب‬ ‫وسيلة‬ ‫هي‬ ‫والتي‬ ،‫البرمجة‬ ‫لغات‬ ‫بإحدى‬ ‫والتعليمات‬ ‫األوامر‬ ‫هذه‬ ‫ابة‬ ‫الحاسوب‬ . ‫البرمجة‬ ‫ماهية‬ ‫يشرح‬ ‫الذي‬ ‫التالي‬ ‫العملي‬ ‫المثال‬ ‫إليك‬ : ‫إلى‬ ‫أصل‬ ‫كيف‬ ‫أعرف‬ ‫وال‬ ‫الحديقة‬ ‫بجانب‬ ‫واقف‬ ‫"أنا‬ :‫لك‬ ‫ليقول‬ ‫بك‬ ‫واتصل‬ ،‫اليوم‬ ‫لك‬ ‫صديق‬ ‫زيارة‬ ‫تتوقع‬ ‫كنت‬ ‫إن‬ ‫كل‬ ‫تمر‬ ً‫ة‬‫عاد‬ ‫أنت‬ ."‫منزلك‬ ‫إن‬ ‫ينفع‬ ‫هل‬ ‫برأيك‬ .‫بشبر‬ ‫ا‬ً‫شبر‬ ‫منزلك‬ ‫وبين‬ ‫بينها‬ ‫الطريق‬ ‫وتعرف‬ ‫الحديقة‬ ‫جانب‬ ‫من‬ ‫يوم‬ ‫المشكلة‬ ‫ِّم‬‫تقس‬ ‫أن‬ ‫إلى‬ ‫تحتاج‬ .‫بالتأكيد‬ ،‫ال‬ ‫جانبها"؟‬ ‫من‬ ‫أمر‬ ‫يوم‬ ‫كل‬ ‫وأنا‬ ‫الحديقة‬ ‫من‬ ‫وقريب‬ ‫معروف‬ ‫"منزلي‬ :‫له‬ ‫قلت‬ ‫وتنفيذها‬ ‫فهمها‬ ‫صديقك‬ ‫يستطيع‬ ‫بسيطة‬ ‫خطوات‬ ‫تمثل‬ ‫أجزاء‬ ‫إلى‬ . ‫أخبره‬ ، ً ‫مثًل‬ ‫ثم‬ "‫الشارع‬ ‫نهاية‬ ‫إلى‬ ‫"سر‬ ‫ثم‬ "‫اليمين‬ ‫إلى‬ ‫"اتجه‬ ‫ثم‬ "‫أمتار‬ ‫عشرة‬ ‫األمام‬ ‫إلى‬ ‫"سر‬ :‫التالية‬ ‫األوامر‬ ‫ينفذ‬ ‫أن‬ ‫إلى‬ ‫"اصعد‬ ‫ثم‬ "‫الرابع‬ ‫البناء‬ ‫إلى‬ ‫تصل‬ ‫حتى‬ ‫اليسار‬ ‫على‬ ‫الموجودة‬ ‫األبنية‬ َّ‫د‬ُ‫ع‬" :‫ذلك‬ ‫بعد‬ ‫أخبره‬ ."‫اليسار‬ ‫إلى‬ ‫"اتجه‬ ‫أ‬ ‫سيظهر‬ ‫الذي‬ ‫الباب‬ ‫على‬ ‫"اطرق‬ ‫ثم‬ "‫الثاني‬ ‫الطابق‬ ."‫مامك‬ .‫بدقة‬ ‫منزلك‬ ‫على‬ ‫صديقك‬ ‫تدل‬ ‫أن‬ ‫تستطيع‬ ،‫الطريقة‬ ‫بهذه‬ ‫البرمجة‬ ‫لغات‬ ‫بإحدى‬ ‫تكتب‬ ‫التي‬ ‫التعابير‬ ‫إنها‬ ‫قوسين؟‬ ‫بين‬ ‫المكتوبة‬ ‫التعابير‬ ‫ترى‬ ‫فهل‬ .‫ا‬ً‫م‬‫تما‬ ‫نفسه‬ ‫الشيء‬ ‫هي‬ ‫البرمجة‬ ‫السابق‬ ‫صديقك‬ ‫من‬ ً ‫بدال‬ ‫الحاسوب‬ ‫تخاطب‬ ‫والتي‬ . ‫والق‬ ‫المفردات‬ ‫من‬ ‫مجموعة‬ ‫هي‬ ‫البرمجة‬ ‫لغات‬ ‫بتنفيذ‬ ‫وأمره‬ ‫الحاسوب‬ ‫مع‬ ‫للتخاطب‬ ً‫ة‬‫وسيط‬ ً‫ة‬‫لغ‬ ‫تشكل‬ ‫التي‬ ‫اللغوية‬ ‫واعد‬ ‫ملحة‬ ‫حاجة‬ ‫هنالك‬ ‫كان‬ ‫لذا‬ ،‫الحاسوب‬ ‫لغة‬ ‫يفهمون‬ ‫البشر‬ ‫وال‬ ‫البشر‬ ‫لغة‬ ‫يفهم‬ ‫الحاسوب‬ ‫فًل‬ .‫َّدة‬‫د‬‫مح‬ ‫وأشياء‬ ‫تعليمات‬ ‫البرمجة‬ ‫لغة‬ ‫مفهوم‬ ‫انبثق‬ ،‫لذلك‬ ً‫ة‬‫نتيج‬ ‫كًلهما؛‬ ‫يفهمها‬ ‫وسيطة‬ ‫لغة‬ ‫لوجود‬ . ‫لو‬ ،‫أخرى‬ ‫بعبارة‬ ‫يأتي‬ ‫وهنا‬ ،‫نبتغيه‬ ‫ما‬ ‫ليفهم‬ ‫وبينه‬ ‫بيننا‬ ٍ‫ة‬‫مشترك‬ ٍ‫ة‬‫لغ‬ ‫إلى‬ ‫فسنحتاج‬ ،"‫كذا‬ ‫"افعل‬ ‫للحاسوب‬ ‫نقول‬ ‫أن‬ ‫أردنا‬ ‫والحاسوب‬ ‫المبرمج‬ ‫بين‬ ‫وسيط‬ ‫أنها‬ ‫على‬ ‫البرمجة‬ ‫لغات‬ ‫تعد‬ ‫أن‬ ‫يمكنك‬ ‫إذ‬ ،‫البرمجة‬ ‫لغات‬ ‫دور‬ . ‫إلتمام‬ ‫بها‬ ‫القيام‬ ‫الحاسوب‬ ‫على‬ ‫التي‬ ‫الخطوات‬ ‫تسلسل‬ ‫في‬ ‫بالتفكير‬ ‫المبرمج‬ ‫يهتم‬ ‫حساب‬ ‫(مثل‬ ‫منه‬ ‫المطلوب‬ ‫العمل‬ ‫البرمجة‬ ‫لغات‬ ‫بإحدى‬ ‫منطقي‬ ‫بترتيب‬ ‫الخطوات‬ ‫هذه‬ ‫كتابة‬ ‫ثم‬ ،)‫الوالدة‬ ‫تاريخ‬ ‫على‬ ‫ًا‬‫د‬‫اعتما‬ ‫العمر‬ . ‫الشائع‬ ‫السؤال‬ ‫إلى‬ ‫ننتقل‬ ‫يجعلنا‬ ‫وهذا‬ ،‫المنطقي‬ ‫التفكير‬ ‫هو‬ ‫المبرمج‬ ‫مهمة‬ ‫من‬ ‫ا‬ً‫ء‬‫جز‬ ‫أن‬ ‫السابقة‬ ‫الجملة‬ ‫في‬ َ‫الحظت‬ ‫ربما‬ ‫وأص‬ ‫البرمجة‬ ‫تعلم‬ ‫أستطيع‬ ‫"هل‬ ‫ا؟‬ً‫ج‬‫مبرم‬ ‫ألصبح‬ ‫مؤهل‬ ‫أنا‬ ‫"هل‬ ‫أو‬ "‫ا؟‬ً‫ج‬‫مبرم‬ ‫بح‬ ". ‫البرمجة؟‬ ‫تتعلم‬ ‫لماذا‬ ‫الصفر‬ ‫من‬ ‫البرمجة‬ ‫تعلم‬ ‫أن‬ ‫يبدو‬ ‫البرمجة‬ ‫تتعلم‬ ‫يجعلك‬ ‫ا‬ً‫حافز‬ ‫تريد‬ ‫لكنك‬ ،‫توقعتها‬ ‫التي‬ ‫بالصعوبة‬ ‫ليس‬ . ‫في‬ ‫التوظيف‬ ‫مجال‬ ‫ستكتسح‬ ‫المبرمجين‬ ‫وظائف‬ ‫وأن‬ ،‫المستقبل‬ ‫مجال‬ ‫هي‬ ‫البرمجة‬ ‫أن‬ ‫ا‬ً‫كثير‬ ‫تسمع‬ ‫القادمة؟‬ ‫السنوات‬ ً ‫دخًل‬ ‫الوظائف‬ ‫أعلى‬ ‫من‬ ‫هي‬ ‫البرمجة‬ ‫وظائف‬ َّ‫أن‬ ‫كما‬ ،‫ذلك‬ ‫لك‬ ‫أؤكد‬ ‫أن‬ ‫أستطيع‬ . ‫أفضل‬ ‫هو‬ ‫بها‬ ‫والعمل‬ ‫البرمجة‬ ‫تعلم‬ ‫فإن‬ ،‫ممتاز‬ ٍ‫ل‬‫دخ‬ ‫وذا‬ ‫ا‬ً‫مستقر‬ ً ‫عمًل‬ ‫وتريد‬ ‫االحترافي‬ ‫مشوارك‬ ‫بدء‬ ‫تريد‬ ‫كنت‬ ‫فلو‬ ‫أمامك‬ ٍ ‫خيار‬ . ‫أما‬ ‫مكتبي‬ ‫كله‬ ‫فالعمل‬ ،‫ا‬ً‫م‬‫عمو‬ ‫مريحة‬ ‫البرمجة‬ ‫وظائف‬ ‫نظام‬ ‫تتبع‬ ‫الشركات‬ ‫وأغلبية‬ ،‫ومناسبة‬ ‫مريحة‬ ‫بيئة‬ ‫في‬ ‫حاسوب‬ ‫م‬ ‫العمل‬ 40 ‫(أي‬ ‫األسبوع‬ ‫في‬ ‫ساعة‬ 5 ‫لمدة‬ ‫أيام‬ 8 ‫خًلل‬ ‫من‬ ‫بعد‬ ‫عن‬ ‫العمل‬ ‫على‬ ‫قدرتك‬ ‫عن‬ ‫تغفل‬ ‫وال‬ ،)‫ًا‬‫ي‬‫يوم‬ ‫ساعات‬ ‫فراغك‬ ‫أوقات‬ ‫في‬ ‫كمستقل‬ ‫أو‬ ‫االنترنت‬ . ‫الحاس‬ ‫مع‬ ‫تعاملك‬ ‫أن‬ ‫ا‬ً‫ص‬‫خصو‬ ،‫ا‬ً‫كثير‬ ‫تفكيرك‬ ‫أفق‬ ‫سيوسع‬ ‫البرمجة‬ ‫تعلم‬ ‫أن‬ ‫وستجد‬ ،‫المنطقي‬ ‫التفكير‬ ‫إلى‬ ‫يتبع‬ ‫وب‬ ‫الحاسوب‬ ‫في‬ ‫أخرى‬ ‫بأمور‬ ‫القيام‬ ‫لك‬ ‫ستسهل‬ ‫البرمجة‬ . ‫ا‬ً‫ج‬‫مبرم‬ ‫لتصبح‬ ‫معرفته‬ ‫عليك‬ ‫ما‬ َّ‫أن‬ ٌ‫ح‬‫فصحي‬ ،‫ا‬ً‫ح‬‫صحي‬ ‫ليس‬ ‫وهذا‬ ،‫ا‬ً‫ممتاز‬ ‫ليس‬ ‫الرياضيات‬ ‫في‬ ‫مستواهم‬ ‫بأن‬ ‫متذرعين‬ ‫البرمجة‬ ‫تعلم‬ ‫في‬ ‫الكثيرون‬ ‫يتردد‬ ‫كم‬ ‫عملك‬ ‫أداء‬ ‫أثناء‬ ‫تعترضك‬ ‫أمور‬ ‫هنالك‬ ‫ال‬ ‫طويلة‬ ‫فترات‬ ‫عليك‬ ‫تمر‬ ‫قد‬ ‫ه‬َّ‫ن‬‫أ‬ ‫إال‬ ،‫الرياضيات‬ ‫في‬ ‫خبرة‬ ‫تتطلب‬ ‫برمج‬ ‫رياضية‬ ‫مسائل‬ ‫إلى‬ ‫فيها‬ ‫تحتاج‬ .
  • 2.
    ‫مشكلة‬ ‫أو‬ ‫مسألة‬‫أية‬ ‫اعتراضك‬ ‫حين‬ ‫إلى‬ .‫الجميع‬ ‫يعرفها‬ ‫التي‬ ‫األساسيات‬ ‫هو‬ ‫البرمجة‬ ‫تعلم‬ ‫في‬ ‫للبدء‬ ‫يلزمك‬ ‫ما‬ ‫كل‬ ‫والمراجع‬ ‫المصادر‬ ‫من‬ ‫الكثير‬ ‫هنالك‬ ،‫الرياضيات‬ ‫في‬ ‫مهارة‬ ‫تتطلب‬ ،‫أخرى‬ ‫بعبارة‬ .‫آنذاك‬ ‫إليها‬ ‫الرجوع‬ ‫تستطيع‬ ‫التي‬ ‫منطقي‬ ‫بشكل‬ ‫التفكير‬ ‫على‬ ‫ا‬ً‫قادر‬ ‫تكون‬ ‫أن‬ ‫هو‬ ‫ذلك‬ ‫من‬ ‫األهم‬ .‫تخف‬ ‫وال‬ ً ‫قليًل‬ ‫األمر‬ ‫هذا‬ ‫ل‬ ِّ‫أج‬ . ‫المنطقي‬ ‫التفكير‬ ‫مظلة‬ ‫تحت‬ ‫المبرمجين‬ ‫كافة‬ ‫تجمع‬ ‫التي‬ ‫المهارة‬ ‫هو‬ ‫المنطقي‬ ‫التفكير‬ ‫ت‬ ‫أن‬ ‫يجب‬ ‫إذ‬ ،‫الخوارزميات‬ ‫كتابة‬ ‫أساس‬ ‫وهي‬ ،‫واحدة‬ ‫على‬ ‫ا‬ً‫قادر‬ ‫كون‬ ‫وتطويرها‬ ‫المهارة‬ ‫هذه‬ ‫اكتساب‬ . ‫الخوارزميات‬ ‫فكل‬ ،‫البعض‬ ‫منها‬ ‫ينفر‬ ‫التي‬ ‫المرعبة‬ ‫الكلمة‬ ‫هي‬ "‫"الخوارزميات‬ ‫كلمة‬ ‫الطويلة‬ ‫والمعادالت‬ ‫المعقدة‬ ‫الرياضيات‬ ‫هو‬ ‫ذكرها‬ ‫عند‬ ‫يتخيلونه‬ ‫ما‬ ٌ‫تطبيق‬ ‫هي‬ ‫فالخوازرميات‬ ‫ًا؛‬‫د‬‫ج‬ ‫بسيط‬ ‫األمر‬ ‫لكن‬ ،‫العجيبة‬ ‫والرموز‬ ‫المنطق‬ ‫للتفكير‬ ‫ا‬ً‫م‬‫تما‬ ‫واضحة‬ ‫متسلسلة‬ ‫خطوات‬ ‫في‬ ‫ي‬ ‫مشكلة‬ ‫لحل‬ ‫ما‬ . ‫بكيفية‬ ‫سأخبرك‬ ،‫ًا‬‫د‬‫معق‬ ‫ا‬ً‫أمر‬ ‫ليست‬ ‫الخوارزميات‬ ‫أن‬ ‫لك‬ ‫ح‬ ِّ ‫أوض‬ ‫لكي‬ ‫الحالي‬ ‫عمره‬ ‫يعيد‬ ‫ثم‬ ،‫ميًلده‬ ‫سنة‬ ‫عن‬ ‫المستخدم‬ ‫يسأل‬ ‫برنامج‬ ‫كتابة‬ ‫بالسنوات‬ . • ‫من‬ ‫فيها‬ ‫نطلب‬ ‫نصية‬ ‫رسالة‬ ‫إظهار‬ :‫األولى‬ ‫الخطوة‬ ‫المستخدم‬ ‫ميًلده‬ ‫تاريخ‬ ‫إدخال‬ . • ‫المستخدم‬ ‫أدخلها‬ ‫التي‬ ‫الميًلد‬ ‫سنة‬ ‫تخزين‬ :‫الثانية‬ ‫الخطوة‬ . • ‫الحالية‬ ‫السنة‬ ‫على‬ ‫الحصول‬ :‫الثالثة‬ ‫الخطوة‬ . • ‫الحالية‬ ‫السنة‬ ‫من‬ ‫المستخدم‬ ‫مدخًلت‬ ‫طرح‬ :‫الرابعة‬ ‫الخطوة‬ . • ‫الناتج‬ ‫إظهار‬ :‫واألخيرة‬ ‫الخامسة‬ ‫الخطوة‬ . ‫بسيطة‬ ‫خوارزمية‬ ‫هو‬ ‫سبق‬ ‫ما‬ ‫إذا‬ ‫لكن‬ ،‫متسلسلة‬ ‫خطوات‬ ‫من‬ ‫تتألف‬ ‫من‬ ‫أكبر‬ ‫ا‬ً‫خ‬‫تاري‬ ‫المستخدم‬ ‫أدخل‬ ‫حال‬ ‫في‬ ً ‫خلًل‬ ‫سنجد‬ ‫فيها‬ ‫النظر‬ ‫أمعنا‬ ‫أدخل‬ ‫لو‬ ‫أي‬ ،‫الحالي‬ ‫التاريخ‬ 2050 ‫من‬ ً ‫بدال‬ ً ‫مثًل‬ 1995 ‫عندها‬ . ‫هذه‬ ‫نحل‬ ‫أن‬ ‫ويمكننا‬ ،‫ًا‬‫ب‬‫سال‬ ‫الخوارزمية‬ ‫من‬ ‫المعاد‬ ‫العمر‬ ‫سيصبح‬ ‫المستخدم‬ ‫يمنع‬ ‫شرط‬ ‫بوضع‬ ‫ًا‬‫ي‬‫منطق‬ ‫اإلشكالية‬ ‫من‬ ‫أكبر‬ ‫تاريخ‬ ‫إدخال‬ ‫من‬ ‫الحالي‬ ‫التاريخ‬ . ‫العمل‬ ‫إطارات‬ ‫العمل‬ ‫"إطارات‬ ‫هي‬ ‫البرمجة‬ ‫عالم‬ ‫في‬ ‫ًا‬‫د‬‫ج‬ ‫شائعة‬ ‫أخرى‬ ‫كلمة‬ " frameworks ‫من‬ ‫مجموعة‬ ‫هي‬ ‫العمل‬ ‫إطارات‬ ، ‫تسجيل‬ ‫مثل‬ ‫خدمات‬ ‫تقدم‬ ‫جاهزة‬ ‫وحدات‬ ‫بتوفير‬ ،‫التطبيقات‬ ‫إنشاء‬ ‫المبرمج‬ ‫على‬ ‫تسهل‬ ‫التي‬ ‫البرمجية‬ ‫الشيفرات‬ ،‫المستخدمين‬ ‫في‬ ‫تساعدك‬ ‫برمجية‬ ‫أدوات‬ ‫ها‬‫تعد‬ ‫أن‬ ‫يمكنك‬ ‫أي‬ .‫البيانات‬ ‫قواعد‬ ‫مع‬ ‫والتعامل‬ ،‫اإللكتروني‬ ‫البريد‬ ‫وإرسال‬ ‫ذلك‬ ‫فعل‬ ‫لك‬ ‫ل‬ِّ‫ه‬‫وتس‬ ‫تطبيقك‬ ‫برمجة‬ .
  • 3.
    ‫البرمجة‬ ‫تعلم‬ ‫في‬‫للبدء‬ ‫الًلزمة‬ ‫األدوات‬ ‫يمتلك‬ ‫أن‬ ‫وإنما‬ ،‫الحواسيب‬ ‫أفضل‬ ‫من‬ ‫يكون‬ ‫أن‬ ‫الضروري‬ ‫من‬ ‫(ليس‬ ‫جيدة‬ ‫بمواصفات‬ ٍ‫ب‬‫حاسو‬ ‫إلى‬ ‫تحتاج‬ ‫ًا‬‫د‬‫جي‬ ‫ا‬ً‫مقدار‬ ‫ًا‬‫د‬‫معتا‬ ‫نفسك‬ ‫ترى‬ ‫وما‬ ‫لك‬ ‫يحلو‬ ‫ما‬ ‫استعمل‬ ،‫معين‬ ‫تشغيل‬ ‫نظام‬ ‫أو‬ ‫معينة‬ ‫بمواصفات‬ ‫ننصح‬ ‫ال‬ .)‫العشوائية‬ ‫الذاكرة‬ ‫من‬ )‫ماك‬ ‫أو‬ ‫لينكس‬ ‫أو‬ ‫ويندوز‬ ‫كان‬ ً‫ء‬‫(سوا‬ ‫عليه‬ . ‫ا‬ ‫والمكتبات‬ ‫البرمجيات‬ ‫ولتنزيل‬ ،‫التعليمية‬ ‫المواد‬ ‫إلى‬ ‫للوصول‬ ‫باإلنترنت‬ ‫جيد‬ ٍ‫ل‬‫اتصا‬ ‫إلى‬ ‫ًا‬‫ض‬‫أي‬ ‫ستحتاج‬ ‫لًلزمة‬ ‫للتطوير‬ . ‫لها‬ ‫رئيسيان‬ ‫نوعان‬ ‫وهنالك‬ ،‫الشيفرات‬ ‫لكتابة‬ ‫برمجية‬ ‫إلى‬ ‫فستحتاج‬ ،‫التطوير‬ ‫أدوات‬ ‫بخصوص‬ ‫أما‬ : • ‫مثل‬ :‫النصية‬ ‫المحررات‬ Visual Studio Code ‫أو‬ Atom ‫أو‬ Sublime Text ‫أو‬ Bracktes ‫أو‬ . Notepad++ ‫ميزات‬ ‫وتوفر‬ ،‫أغلبها‬ ‫في‬ ‫بسيطة‬ ‫تكون‬ ‫النصية‬ ‫المحررات‬ ‫وهذه‬ ‫تلوين‬ ‫مثل‬ ‫أساسية‬ ‫المحررات‬ ‫هذه‬ ‫وظيفة‬ .‫وظائفها‬ ‫لزيادة‬ ‫إضافات‬ ‫أغلبيتها‬ ‫وتدعم‬ ،‫التلقائي‬ ‫اإلكمال‬ ‫ميزات‬ ‫وبعض‬ ،‫الشيفرات‬ ‫بتجربة‬ ‫ننصحك‬ .‫وسرعة‬ ‫بسهولة‬ ‫الشيفرات‬ ‫تعديل‬ ‫هي‬ ‫ا‬ً‫م‬‫عمو‬ ‫النصية‬ Visual Studio Code ‫لشهرته‬ ‫شركة‬ ‫من‬ ‫الممتاز‬ ‫ودعمه‬ ‫إضافاته‬ ‫وكثرة‬ ‫ًا‬‫ي‬‫حال‬ Microsoft. • ‫بيئا‬ ‫مثل‬ :‫المدمجة‬ ‫التطوير‬ ‫ت‬ Visual Studio ‫و‬ Eclipse ‫و‬ Android Studio ‫و‬ NetBeans ‫و‬ Apple Xcode ‫تشغيل‬ ‫مثل‬ ،‫النصية‬ ‫المحررات‬ ‫من‬ ‫بكثير‬ ‫أكثر‬ ‫ميزات‬ ‫توفر‬ ‫البيئات‬ ‫وهذه‬ .‫وغيرها‬ ‫وتنقيحها‬ ‫الشيفرات‬ (debugging) ‫ذلك‬ ‫وخًلف‬ ‫البيانات‬ ‫بقواعد‬ ‫واالتصال‬ ‫باإلصدارات‬ ‫التحكم‬ ‫وميزات‬ . ‫لما‬ ‫البرمجة؟‬ ‫لغات‬ ‫من‬ ‫العديد‬ ‫هناك‬ ‫ذا‬ ‫لغة‬ ‫هنالك‬ ‫يكون‬ ‫ال‬ ‫لماذا‬ ‫ذاته؟‬ ‫الهدف‬ ‫تنفذ‬ ‫كلها‬ ‫اللغات‬ ‫هذه‬ ‫أليست‬ ‫البرمجة؟‬ ‫لغات‬ ‫من‬ ‫العديد‬ ‫هناك‬ ‫لماذا‬ ،‫تتساءل‬ ‫قد‬ ‫والحاسوب؟‬ ‫المبرمجين‬ ‫بين‬ ‫موحدة‬ ‫ا‬ .‫الصورة‬ ‫في‬ ‫أمامك‬ ‫تراها‬ ‫التي‬ ‫اللغات‬ ‫إحدى‬ ‫ليست‬ ‫ولكن‬ ‫واحدة‬ ‫برمجة‬ ‫لغة‬ ‫توجد‬ ‫ه‬‫أن‬ ‫الحقيقة‬ ‫هي‬ ‫إليها‬ ‫نشير‬ ‫التي‬ ‫للغة‬ ‫منها‬ ‫ا‬ً‫ع‬‫مقط‬ ‫إليك‬ ‫تبدو؟‬ ‫وكيف‬ ‫اآللة‬ ‫لغة‬ ‫هي‬ ‫ما‬ ‫أتتساءل‬ .‫وفهمها‬ ‫قراءتها‬ ‫الحاسوب‬ ‫معالج‬ ‫يستطيع‬ ‫التي‬ "‫اآللة‬ ‫"لغة‬ : ‫والو‬ ‫األصفار‬ ‫سوى‬ ‫ا‬ً‫ئ‬‫شي‬ ‫يفهم‬ ‫ال‬ ‫الحاسوب‬ ‫معالج‬ ‫أن‬ ٌ‫م‬‫معلو‬ ‫ا‬ ‫اللغة‬ ‫وهذه‬ ،‫حدات‬ - ‫اآللة‬ ‫لغة‬ ‫أي‬ - ‫لألصفار‬ ‫تمثيل‬ ‫هي‬ ‫والواحدات‬ ‫حتى‬ ‫إذ‬ ،‫البشر‬ ‫على‬ ‫الفهم‬ ‫عصية‬ ‫اللغة‬ ‫هذه‬ ‫أن‬ ‫بالذكر‬ ‫الجدير‬ .‫فعله‬ ‫عليه‬ ‫يجب‬ ‫بما‬ ‫الحاسوب‬ ‫تخبر‬ ‫بطريقة‬ ‫لن‬ ،)‫الحاسوب‬ ‫اختراع‬ ‫بداية‬ ‫من‬ ‫األولى‬ ‫السنوات‬ ‫في‬ ‫(كما‬ ‫بالصورة‬ ‫الموضحة‬ ‫الشيفرة‬ ‫مثل‬ ‫شيفرة‬ ‫كتابة‬ ‫استطعت‬ ‫إن‬ ‫وتطويرها‬ ‫الشيفرة‬ ‫على‬ ‫التعديل‬ ‫أحد‬ ‫يستطيع‬ ‫ولن‬ ‫اآلخرون‬ ‫يفهمها‬ ‫باستثنائك‬ ‫ا‬ً‫ق‬‫الح‬ .
  • 4.
    ‫ولغات‬ ،‫المستوى‬ ‫منخفضة‬‫البرمجة‬ ‫لغات‬ :‫قسمين‬ ‫إلى‬ ‫البرمجية‬ ‫لغات‬ ‫انقسمت‬ ،‫البشر‬ ‫لغة‬ ‫من‬ ‫قريبة‬ ‫لغة‬ ‫إليجاد‬ ‫ًا‬‫ي‬‫سع‬ ‫منخفضة‬ ‫البرمجة‬ ‫لغات‬ ‫أن‬ ‫أي‬ .‫التوالي‬ ‫على‬ ‫البشر‬ ‫لغة‬ ‫أو‬ ‫اآللة‬ ‫لغة‬ ‫من‬ ‫قربها‬ ‫لمدى‬ ‫ا‬ً‫ع‬‫تب‬ ‫وذلك‬ ‫المستوى‬ ‫عالية‬ ‫البرمجة‬ ‫األقرب‬ ‫اللغات‬ ‫هي‬ ‫المستوى‬ ‫األقرب‬ ‫اللغات‬ ‫هي‬ ‫المستوى‬ ‫عالية‬ ‫البرمجة‬ ‫ولغات‬ ،‫التجميع‬ ‫لغة‬ ‫مثل‬ ‫الذكر‬ ‫آنفة‬ ‫اآللة‬ ‫للغة‬ ‫لغة‬ ‫مثل‬ ‫البشر‬ ‫للغة‬ ‫بايثون‬ ‫وجافا‬ . ‫المستوى‬ ‫عالية‬ ‫برمجة‬ ‫بلغات‬ ‫المكتوبة‬ ‫البرامج‬ ‫تنفيذ‬ ‫عالية‬ ‫اللغات‬ ‫عن‬ ‫الحديث‬ ‫للشيفرة‬ ‫المعالج‬ ‫تنفيذ‬ ‫كيفية‬ ‫عن‬ ‫الحديث‬ ‫إلى‬ ‫يقودنا‬ ‫المستوى‬ ‫منخفضة‬ ‫واللغات‬ ‫المستوى‬ )‫اآلن؟‬ ‫به‬ ‫تفكر‬ ‫ما‬ ‫هذا‬ ‫(أليس‬ ‫المعالج‬ ‫يفهمها‬ ‫ال‬ ‫المستوى‬ ‫عالية‬ ‫بلغة‬ ‫المكتوبة‬ . ‫العم‬ ‫هذه‬ ُ‫ل‬َ‫ث‬َ‫م‬ ‫إذ‬ ،)‫اآللة‬ ‫(لغة‬ ‫المستوى‬ ‫منخفضة‬ ‫بلغة‬ ‫المكتوبة‬ ‫والتعليمات‬ ‫األوامر‬ ‫يفهم‬ ‫المعالج‬ ‫أن‬ ‫عرفنا‬ ِّ‫ل‬َ‫ث‬َ‫م‬‫ك‬ ‫لية‬ ً‫ة‬‫مباشر‬ ‫التواصل‬ ‫لهما‬ ‫يمكن‬ ‫إذ‬ ،‫العربية‬ ‫باللغة‬ ٍ‫ق‬‫ناط‬ ‫مع‬ ‫التحدث‬ ‫وبدأ‬ ‫العربية‬ ‫اللغة‬ ‫تعلم‬ ‫أجنبي‬ ٍ ‫شخص‬ - ‫منها‬ ‫كل‬ ‫ليخبر‬ ‫فعله‬ ‫اآلخر‬ ‫من‬ ‫يريد‬ ‫ما‬ - ‫من‬ ‫والطلب‬ ‫البشر‬ ‫لغة‬ ‫إلى‬ ‫أقرب‬ ‫المستوى‬ ‫عالية‬ ‫بلغة‬ ‫برنامج‬ ‫كتابة‬ ُ‫ل‬َ‫ث‬َ‫م‬ ‫ا‬َّ‫م‬‫أ‬ .‫وسيط‬ ‫دون‬ ‫ناطق‬ ‫كمثل‬ ‫تنفيذه‬ ‫الحاسوب‬ ‫في‬ .‫اآلخر‬ ‫لغة‬ ‫أحدهما‬ ‫يفقه‬ ‫أن‬ ‫دون‬ ‫العربية‬ ‫باللغة‬ ‫ناطق‬ ‫مع‬ ‫التخاطب‬ ‫يريد‬ ‫الهندية‬ ‫باللغة‬ ‫ا‬ً‫م‬‫مترج‬ ‫يحضران‬ ‫ال‬ ‫لماذا‬ :‫تقول‬ ‫قد‬ .‫التواصل‬ ‫عملية‬ ‫وستفشل‬ ‫اآلخر‬ ‫به‬ ‫يتكلم‬ ‫ما‬ ‫فهم‬ ‫أحدهما‬ ‫يستطيع‬ ‫لن‬ ،‫الحالة‬ ‫هذه‬ ‫يرا‬ ‫عندما‬ ‫ا‬ً‫م‬‫تما‬ ‫يحصل‬ ‫ما‬ ‫هذا‬ ،‫ا‬ً‫ن‬‫حس‬ ‫لآلخر؟‬ ‫منها‬ ‫كل‬ ‫يقوله‬ ‫ما‬ ‫يترجم‬ ‫الحاسوب‬ ‫معالج‬ ‫يفهمها‬ ‫ال‬ ‫بلغة‬ ‫برنامج‬ ‫تنفيذ‬ ‫د‬ . ،‫البرمجة‬ ‫لغات‬ ‫في‬ ‫أما‬ ‫آخرى؛‬ ‫إلى‬ ‫لغة‬ ‫من‬ ‫للترجمة‬ ‫الجميع‬ ‫يعرفه‬ ‫المترجمين‬ ‫من‬ ‫واحد‬ ‫نوع‬ ‫هنالك‬ ،‫البشرية‬ ‫اللغات‬ ‫في‬ ،‫ذلك‬ ‫على‬ ً‫ء‬‫بنا‬ .‫والمترجم‬ ،‫المفسر‬ :‫هما‬ ‫اللغات‬ ‫بين‬ ‫المترجمين‬ ‫من‬ ‫نوعان‬ ‫هنالك‬ ‫مف‬ ‫لغات‬ ‫إلى‬ ‫البرمجة‬ ‫لغات‬ ‫تنقسم‬ .‫مترجمة‬ ‫ولغات‬ ‫سرة‬ ).‫المستوى‬ ‫عالية‬ ‫البرمجة‬ ‫لغات‬ ‫إلى‬ ‫نشير‬ ‫فنحن‬ ،‫البرمجة‬ ‫لغات‬ ‫ذكرنا‬ ‫كلما‬ ،‫ًا‬‫د‬‫وصاع‬ ‫اآلن‬ ‫(من‬ • ‫المفسر‬ (interpreter): ‫المستوى‬ ‫عالية‬ ‫بلغة‬ ‫مكتوب‬ ‫لبرنامج‬ ‫المصدرية‬ ‫الشيفرة‬ ‫ر‬ِّ‫س‬‫يف‬ ٌ‫خاص‬ ‫برنامج‬ ‫وهو‬ ‫الحاسو‬ ‫لينفذها‬ ‫المستوى‬ ‫منخفضة‬ ‫لغة‬ ‫إلى‬ ‫ويحولها‬ ‫بسطر‬ ‫ا‬ً‫سطر‬ ً‫ة‬‫مباشر‬ ‫ب‬ . • ‫المترجم‬ (compiler): ‫المستوى‬ ‫عالية‬ ‫بلغة‬ ‫مكتوب‬ ‫لبرنامج‬ ‫المصدرية‬ ‫الملفات‬ ‫ل‬ِّ‫و‬‫يح‬ ٌ‫خاص‬ ‫برنامج‬ ‫وهو‬ ‫بالمهمة‬ ‫للقيام‬ ‫الحاسوب‬ ‫على‬ ‫التنفيذي‬ ‫الملف‬ ‫تشغيل‬ ‫يمكن‬ ‫ثم‬ ،ً‫ة‬‫واحد‬ ً‫ة‬‫دفع‬ ‫اآللة‬ ‫بلغة‬ ‫مكتوب‬ ‫تنفيذي‬ ‫ملف‬ ‫إلى‬ ‫المطلوبة‬ . ‫عالية‬ ‫البرمجة‬ ‫لغات‬ ‫من‬ ‫الكثير‬ ‫يوجد‬ ‫لماذا‬ ‫المستوى؟‬ ‫المستوى‬ ‫عالية‬ ‫البرمجية‬ ‫اللغات‬ ‫كثرة‬ ‫عن‬ ‫تتساءل‬ ‫زلت‬ ‫ما‬ ‫ما‬‫لرب‬ ،‫البشر‬ ‫ولغة‬ ‫اآللة‬ ‫لغة‬ ‫بين‬ ‫الفرق‬ ‫عرفت‬ ‫أن‬ ‫وبعد‬ ‫اآلن‬ ‫جواب‬ .‫دقة‬ ‫أكثر‬ ‫اآلن‬ ‫أصبحت‬ ‫إذ‬ ‫لألمام‬ ً‫ة‬‫جيد‬ ً‫ة‬‫خطو‬ ‫خطوت‬ ‫أنك‬ ‫القول‬ ‫نستطيع‬ .‫واحدة‬ ‫لغة‬ ‫وجود‬ ‫وعدم‬ ‫المتوافرة‬ ‫البرمجة‬ ‫لغات‬ ‫كل‬ ‫أن‬ ‫هو‬ ‫سؤلك‬ ‫سبيل‬ ‫فعلى‬ .‫ينفذها‬ ‫أن‬ ‫للحاسوب‬ ‫يمكن‬ ‫أوامر‬ ‫سلسلة‬ ‫إلى‬ ‫منطقية‬ ‫فكرة‬ ‫لتحويل‬ ‫ستخدم‬ُ‫ت‬ ‫من‬ ‫أي‬ ‫استخدام‬ ‫يمكنك‬ ‫الحصر‬ ‫ال‬ ‫المثال‬ Ruby ‫أو‬ Java ‫أو‬ Python ‫أو‬ C# ‫أو‬ Go ‫أو‬ JavaScript ‫لبناء‬ ‫أ‬ ‫عن‬ ‫ا‬ً‫ن‬‫دو‬ ‫مهمة‬ ‫ل‬‫تسه‬ ‫أداة‬ ‫وكل‬ ،‫أدوات‬ ‫أنها‬ ‫على‬ ‫البرمجة‬ ‫لغات‬ ‫تعد‬ ‫أن‬ ‫يمكنك‬ ‫لكن‬ .‫ويب‬ ‫موقع‬ ‫سبيل‬ ‫فعلى‬ .‫خرى‬ ‫تذهب‬ ‫أن‬ ‫يمكنك‬ ‫فًل‬ ‫االستخدام؛‬ ‫مختلفة‬ ‫لكنها‬ ،‫نقل‬ ‫وسائط‬ ‫كلها‬ ‫الزراعي‬ ‫والمحراث‬ ‫والدراجة‬ ‫والحافلة‬ ‫السيارة‬ ،‫المثال‬
  • 5.
    ‫مكتظة‬ ‫مدينة‬ ‫في‬‫سباق‬ ‫سيارة‬ ‫استخدام‬ ‫يمكنك‬ ‫ال‬ ‫كما‬ ،‫الزراعي‬ ‫المحراث‬ ‫مستخدمين‬ ‫صيفية‬ ‫إجازة‬ ‫لقضاء‬ ‫وعائلتك‬ ‫الع‬ ‫إلى‬ ‫بها‬ ‫للذهاب‬ ‫ضيقة‬ ‫شوارع‬ ‫ذات‬ ‫البرمجة‬ ‫إلى‬ ‫بالنسبة‬ ٌ‫سيان‬ ‫واألمر‬ .‫متشابهة‬ ‫المركبات‬ ‫هذه‬ ‫عمل‬ ‫آلية‬ ‫أن‬ ‫مع‬ .‫مل‬ . ‫تطبيقات‬ ‫بإنشاء‬ ‫متخصصة‬ ‫وأخرى‬ ،‫المكتب‬ ‫سطح‬ ‫تطبيقات‬ ‫بإنشاء‬ ‫متخصصة‬ ‫برمجة‬ ‫لغات‬ ‫هنالك‬ ‫أن‬ ‫القول‬ ‫خًلصة‬ ‫الحد‬ ‫إلى‬ ‫يحيلنا‬ ‫ما‬ ‫وهذا‬ ،‫العتاد‬ ‫لبرمجة‬ ‫وأخرى‬ ،‫الويب‬ ‫لمواقع‬ ‫ا‬ً‫ص‬‫خصي‬ ‫تستعمل‬ ‫وأخرى‬ ،‫الجوال‬ ‫مجاالت‬ ‫عن‬ ‫يث‬ ‫منها‬ ٍ‫ل‬‫لك‬ ‫األنسب‬ ‫واللغات‬ ‫البرمجة‬ . ‫البرمجة‬ ‫مفاهيم‬ " ‫ا؟‬ً‫ذ‬‫إ‬ ‫البرمجة‬ ‫تعلم‬ ‫في‬ ‫طريقي‬ ‫أبدأ‬ ‫أين‬ ‫من‬ ،‫أتخيل‬ ُ‫كنت‬ ‫كما‬ ‫صعبة‬ ‫وليست‬ ‫لي‬ ‫مناسبة‬ ‫البرمجة‬ ‫أن‬ ُ‫اقتنعت‬ ،‫ا‬ً‫ن‬‫حس‬ " ‫سنتحدث‬ ‫ثم‬ ،‫بالبرمجة‬ ‫الخاصة‬ ‫المفاهيم‬ ‫بعض‬ ‫لك‬ ‫ألشرح‬ ‫وقتي‬ ‫سآخذ‬ ،‫السابق‬ ‫السؤال‬ ‫عن‬ ‫اإلجابة‬ ‫قبل‬ ‫مجاالت‬ ‫عن‬ ‫منها‬ ً ‫كًل‬ ‫لتعلمك‬ ‫األفضل‬ ‫المسار‬ ‫وما‬ ‫فيها‬ ‫العمل‬ . ‫الحاسوب‬ ‫يفهمها‬ ‫بلغة‬ ‫مكتوب‬ ‫نفسه‬ ‫والبرنامج‬ ،‫ما‬ ‫مشكلة‬ ‫لحل‬ ‫الحاسوب‬ ‫ينفذها‬ ‫أوامر‬ ‫سلسلة‬ ‫هو‬ ‫البرنامج‬ ‫أن‬ ‫تعلم‬ ‫أنت‬ ‫اآللة‬ ‫لغة‬ ‫تسمى‬ . ‫البر‬ ‫تعلم‬ ‫بداية‬ ‫أثناء‬ ‫ذاتها‬ ‫البرمجة‬ ‫لغة‬ ‫على‬ ‫ا‬ً‫كثير‬ ‫التركيز‬ ‫الملحوظة‬ ‫األمور‬ ‫من‬ ‫"لغة‬ :ً‫ة‬‫صادم‬ ً‫ة‬‫حقيق‬ ‫سأخبرك‬ .‫مجة‬ ‫ستعمل‬ُ‫ت‬ ‫أو‬ ‫متماثلة‬ ‫البرمجة‬ ‫لغات‬ ‫جميع‬ ‫أن‬ ‫لك‬ ‫أقول‬ ‫ال‬ ‫أنا‬ ،"‫تتوقعها‬ ‫التي‬ ‫األهمية‬ ‫بتلك‬ ‫ليست‬ ‫تستعملها‬ ‫التي‬ ‫البرمجة‬ ‫تقف‬ ‫التي‬ ‫البرمجية‬ ‫المفاهيم‬ ‫وتهمل‬ ‫ما‬ ‫برمجة‬ ‫لغة‬ ‫في‬ ‫الكتابة‬ ‫كيفية‬ ‫تعلم‬ ‫على‬ ‫ا‬ً‫كثير‬ ‫ز‬ِّ‫ك‬‫تر‬ ‫ال‬ ‫لكن‬ ،‫االستعماالت‬ ‫لنفس‬ ‫ورا‬ ‫ءها‬ . ‫والثوابت‬ ‫المتغيرات‬ ‫المتغيرات‬ ‫مفهوم‬ ‫على‬ ‫تتعرف‬ ‫أن‬ ‫عليك‬ variables ‫ما‬ ‫قيمة‬ ‫إسناد‬ ‫يعني‬ ‫والذي‬ ،‫البرمجة‬ ‫لغات‬ ‫جميع‬ ‫في‬ ‫المستعمل‬ ‫العبارة‬ ‫نخزن‬ ‫أن‬ ‫أردنا‬ ‫فلو‬ .‫الذاكرة‬ ‫في‬ ‫القيمة‬ ‫هذه‬ ‫وتخزين‬ ‫كلمة‬ ‫أو‬ ‫رمز‬ ‫إلى‬ "Hello World" ‫فنكتب‬ ‫ما‬ ‫متغير‬ ‫في‬ ‫يلي‬ ‫بما‬ ‫ا‬ً‫ه‬‫شبي‬ ‫ا‬ً‫ئ‬‫شي‬ : ; "Hello World" = variable_name var ‫المساواة‬ ‫إشارة‬ ‫يسار‬ ‫على‬ ‫المذكور‬ ‫المتغير‬ ‫إلى‬ ‫المساواة‬ ‫إشارة‬ ‫يمين‬ ‫على‬ ‫الموجود‬ ‫الجزء‬ ‫نسند‬ ‫أننا‬ ‫أي‬ . ‫الملف‬ ‫من‬ ‫ما‬ ٍ‫مكان‬ ‫في‬ ‫فيمكننا‬ ،‫البرنامج‬ ‫تنفيذ‬ ‫خًلل‬ ‫للتغيير‬ ‫قابلة‬ ‫قيمتها‬ ‫أن‬ "‫"المتغيرات‬ ‫اسم‬ ‫من‬ ‫نستنتج‬ ‫أن‬ ‫يمكننا‬ ‫تع‬ ‫نعيد‬ ‫أن‬ ‫المصدري‬ ‫بكتابة‬ ‫السابق‬ ‫المتغير‬ ‫ريف‬ : ; "New value" = variable_name var ‫أول‬ ‫تعريفها‬ ‫بعد‬ ‫قيمتها‬ ‫تعريف‬ ‫إعادة‬ ‫تستطيع‬ ‫ال‬ ‫أنك‬ ‫إال‬ ،‫النواحي‬ ‫من‬ ٍ ‫كثير‬ ‫في‬ ‫المتغيرات‬ ‫مع‬ ‫تتشابه‬ ‫فهي‬ ‫الثوابت‬ ‫أما‬ ‫فترة‬ ‫خًلل‬ ‫القيمة‬ ‫تغيير‬ ‫عدم‬ ‫من‬ ‫ا‬ً‫م‬‫تما‬ ‫ًا‬‫د‬‫متأك‬ ‫تكون‬ ‫عندما‬ ‫الثوابت‬ ‫من‬ ‫تستفيد‬ ‫قد‬ .‫مرة‬ ‫تعريف‬ ‫أردنا‬ ‫فلو‬ .‫البرنامج‬ ‫تنفيذ‬ ‫اسمه‬ ‫ثابت‬ pi ‫القيمة‬ ‫على‬ ‫يحتوي‬ 3.14 ‫نكتب‬ ‫أن‬ ‫فيمكننا‬ ،)‫ا‬ً‫ق‬‫مطل‬ ‫تتغير‬ ‫لن‬ ‫أنها‬ ‫سنعرف‬ ‫(والتي‬ : ; 3.14 = pi const ‫خطأ‬ ‫رسالة‬ ‫على‬ ‫فستحصل‬ ‫تعريفه‬ ‫بعد‬ ‫الثابت‬ ‫قيمة‬ ‫تغيير‬ َ‫حاولت‬ ‫وإذا‬ . ‫الشروط‬ ‫في‬ ‫ذ‬َّ‫ف‬‫ن‬ُ‫ت‬ ‫شروط‬ ‫تعريف‬ ‫البرمجة‬ ‫لغات‬ ‫جميع‬ ‫تدعم‬ ‫حساب‬ ‫فيها‬ ‫شرحنا‬ ‫التي‬ ‫السابقة‬ ‫الخوازرمية‬ ‫ففي‬ .‫معينة‬ ‫حاالت‬ ‫يلي‬ ‫كما‬ ‫بالعربية‬ ‫الشرط‬ ‫نكتب‬ ‫أن‬ ‫يمكننا‬ ،‫العمر‬ : • ‫خطأ‬ ‫هنالك‬ ‫أن‬ ‫للمستخدم‬ ‫نقول‬ :)‫الحالي‬ ‫التاريخ‬ ‫من‬ ‫أكبر‬ ‫الميًلد‬ ‫(تاريخ‬ ‫كان‬ ‫إذا‬ • ‫الحالي‬ ‫التاريخ‬ ‫من‬ ‫الميًلد‬ ‫تاريخ‬ ‫بطرح‬ ‫العمر‬ ‫سنحسب‬ :‫وإال‬ ‫بإحد‬ ‫كتابتها‬ ‫أردنا‬ ‫وإذا‬ ‫يلي‬ ‫بما‬ ً‫ة‬‫شبيه‬ ‫فستبدو‬ ‫البرمجة‬ ‫لغات‬ ‫ى‬ : { ) current_year > user_birth ( if
  • 6.
    // ERROR! { else } ; user_birth - current_year = age } ‫ًا‬‫ي‬‫حال‬ ‫اهتمامنا‬‫موضع‬ ‫وليست‬ ،‫ألخرى‬ ‫لغة‬ ‫من‬ ‫تختلف‬ ‫وقد‬ ،‫البرمجة‬ ‫لغة‬ ‫من‬ ‫جزء‬ ‫فهي‬ ، ً ‫باال‬ ‫لألقواس‬ ِّ‫ق‬‫تل‬ ‫ال‬ . ‫التكرار‬ ‫حلقات‬ ‫لو‬ ‫ماذا‬ ‫ًا‬‫ي‬‫يدو‬ ‫التواريخ‬ ‫سنأخذ‬ ‫لي‬ ‫تقل‬ ‫ال‬ .‫ميًلد‬ ‫تاريخ‬ ‫مستخدم‬ ‫ولكل‬ ‫مستخدم‬ ‫من‬ ‫أكثر‬ ‫فيها‬ ‫بيانات‬ ‫قاعدة‬ ‫لدينا‬ ‫كانت‬ ‫بكل‬ ‫الخاص‬ ‫الميًلد‬ ‫تاريخ‬ ‫قيمة‬ ‫تأخذ‬ ‫تكرار‬ ‫حلقة‬ ‫إنشاء‬ ‫هو‬ ‫والصواب‬ ،‫للوقت‬ ٌ‫مضيعة‬ ‫هذا‬ !‫البرنامج‬ ‫إلى‬ ‫وندخلها‬ ‫السابق‬ ‫القسم‬ ‫في‬ ‫أسلفنا‬ ‫كما‬ ‫عمره‬ ‫تحسب‬ ‫ثم‬ ‫مستخدم‬ . ‫دعنا‬ ‫فيها‬ ‫ا‬ً‫تكرار‬ ‫لنضيف‬ ‫البسيطة‬ ‫الخوارزمية‬ ‫نعدل‬ : ‫تحسبها‬ ‫أن‬ ‫زر‬ ‫بضغطة‬ ‫يمكنك‬ ،‫أعمارهم‬ ‫حساب‬ ‫عليك‬ ‫وكان‬ ،‫مستخدم‬ ‫ألف‬ ‫عندك‬ ‫كان‬ ‫لو‬ ‫تخيل‬ !‫البرمجة‬ ‫أجمل‬ ‫ما‬ ‫كلها‬ .
  • 7.
    ‫الدوال‬ ‫الدالة‬ function ‫تكون‬ .‫المطلوبة‬ ‫القيمة‬‫وتعيد‬ ‫مدخًلت‬ ‫تقبل‬ ‫التي‬ ‫البرمجية‬ ‫التعليمات‬ ‫من‬ ‫مجموعة‬ ‫هي‬ ‫الدوال‬ ً‫ة‬‫عاد‬ ‫باسم‬ ‫دالة‬ ‫تعريف‬ ‫أردنا‬ ‫لو‬ ً ‫فمثًل‬ .‫فقط‬ ‫وحيدة‬ ‫بمهمة‬ ‫وتقوم‬ ً‫ة‬‫قصير‬ divide ‫الكبير‬ ‫العدد‬ ‫قسمة‬ ‫ناتج‬ ‫وتعيد‬ ،‫عددين‬ ‫تقبل‬ ‫اآلتية‬ ‫الخورزمية‬ ‫نكتب‬ ‫أن‬ ‫فيمكننا‬ ،‫الصغير‬ ‫على‬ : ‫للمبتدئين‬ ‫البرمجة‬ ‫تعلم‬ ‫مصادر‬ ‫البر‬ ‫تعلم‬ ‫قرارك‬ ‫بعد‬ ‫ذهنك‬ ‫إلى‬ ‫سيتبادر‬ ‫ما‬ ‫أول‬ ‫في‬ ‫المتكامل‬ ‫التعليمي‬ ‫القسم‬ ‫دور‬ ‫يأتي‬ ‫هنا‬ ‫سأتعلم؟‬ ‫أين‬ ‫من‬ ‫هو‬ ‫مجة‬ ‫ومبسط‬ ‫مميز‬ ‫علمي‬ ‫محتوى‬ )‫سواء‬ ٍ‫د‬‫ح‬ ‫على‬ ‫(والمحترف‬ ‫للمبتدئ‬ ‫ليقدم‬ ‫حسوب‬ . ،‫المستويات‬ ‫كافة‬ ‫على‬ ‫أي‬ ‫الخبيرين‬ ‫وحتى‬ ‫للمبتدئين‬ ‫البرمجة‬ ‫تعلم‬ ‫عن‬ ‫البرمجي‬ ‫بالمحتوى‬ ‫حسوب‬ ‫أكاديمية‬ ‫تزخر‬ ‫تشرح‬ ‫ا‬ً‫م‬‫أقسا‬ ‫فيها‬ ‫ستجد‬ ‫سؤالك‬ ‫فيه‬ ‫تطرح‬ ‫أن‬ ‫يمكنك‬ ‫التي‬ ‫البرمجية‬ ‫لألسئلة‬ ‫قسم‬ ‫ولدينا‬ .‫كلها‬ ‫وتقنياتها‬ ‫البرمجة‬ ‫لغات‬ ‫التي‬ ‫المتخصصة‬ ‫للدورات‬ ‫ا‬ً‫م‬‫قس‬ ‫توفر‬ ‫األكاديمية‬ ‫أن‬ ‫ذلك‬ ‫إلى‬ ‫أضف‬ .‫حسوب‬ ‫أكاديمية‬ ‫مجتمع‬ ‫أفراد‬ ‫أحد‬ ‫عليه‬ ‫وسيجيب‬
  • 8.
    ‫م‬ ‫كادر‬ ‫مع‬‫تعلمها‬ ‫تريد‬ ‫التي‬ ‫البرمجة‬ ‫لغة‬ ‫احتراف‬ ‫وحتى‬ ‫الصفر‬ ‫من‬ ‫معك‬ ‫تبدأ‬ ‫لك‬ ‫يقدمون‬ ‫الذي‬ ‫المختصين‬ ‫المدربين‬ ‫ن‬ ‫استفساراتك‬ ‫جميع‬ ‫عن‬ ‫ويجيبون‬ ‫المساعدة‬ . ‫وهنالك‬ ‫يوتيوب‬ ‫على‬ ‫لألكاديمية‬ ‫قناة‬ ‫و‬ ‫البرمجة‬ ‫ومفاهيم‬ ‫محددة‬ ‫تساؤالت‬ ‫عن‬ ً‫ة‬‫قصير‬ ‫ا‬ً‫س‬‫درو‬ ‫ًا‬‫ي‬‫دور‬ ‫فيها‬ ‫ننشر‬ ‫ال‬ .‫خًلفه‬ ‫الجديدة‬ ‫الفيديوهات‬ ‫لتصلك‬ ‫األكاديمية‬ ‫قناة‬ ‫في‬ ‫االشتراك‬ َ‫تنس‬ . ‫هنا‬ ‫تأتي‬ ‫نة؟‬‫معي‬ ‫لغة‬ ‫في‬ ‫أكثر‬ ‫التعمق‬ َ‫أردت‬ ‫لو‬ ‫ماذا‬ ‫حسوب‬ ‫موسوعة‬ ،‫الجودة‬ ‫وعالي‬ ً ‫كامًل‬ ‫ًا‬‫ي‬‫عرب‬ ‫ا‬ً‫ق‬‫توثي‬ ‫ر‬ِّ‫ف‬‫تو‬ ‫التي‬ ‫لمختلف‬ ‫باألمثلة‬ ‫ا‬ً‫م‬‫مدع‬ ‫في‬ ‫إليه‬ ‫تعود‬ ‫ا‬ً‫ع‬‫مرج‬ ‫الموسوعة‬ ‫ستكون‬ .‫والجوال‬ ‫الويب‬ ‫تطوير‬ ‫وتقنيات‬ ‫البرمجة‬ ‫لغات‬ ‫في‬ ‫شيء‬ ‫كل‬ ‫لحفظ‬ ‫ا‬ً‫مضطر‬ ‫لست‬ ‫فأنت‬ .‫البرمجة‬ ‫لغات‬ ‫عن‬ ‫الدقيقة‬ ‫التفاصيل‬ ‫لمعرفة‬ ‫بها‬ ‫وتستعين‬ ،‫البرمجية‬ ‫مسيرتك‬ ‫الف‬ ‫بين‬ ‫التوثيقات‬ ‫إلى‬ ‫يعودون‬ ‫الخبرة‬ ‫ذوي‬ ‫المختصين‬ ‫المبرمجين‬ ‫حتى‬ ‫إذ‬ ،‫البرمجة‬ ‫لغة‬ ‫عملهم‬ ‫أثناء‬ ‫واألخرى‬ ‫ينة‬ . ‫فيها‬ ‫المستعملة‬ ‫والتقنيات‬ ‫اللغات‬ ‫وما‬ ‫األساسية‬ ‫البرمجة‬ ‫مجاالت‬ ‫عن‬ ‫للتحدث‬ ‫اآلن‬ ‫لننطلق‬ . ‫المستخدم‬ ‫واجهات‬ ‫تطوير‬ ‫تطوير‬ ‫مجال‬ ‫لدخول‬ ‫قرارهم‬ ‫اتخاذ‬ ‫عند‬ ‫المستخدم‬ ‫واجهات‬ ‫تطوير‬ ‫تعلم‬ ‫خًلل‬ ‫من‬ ‫مشوارهم‬ ‫المطورين‬ ‫أغلبية‬ ‫يبدأ‬ ‫لس‬ ‫وذلك‬ ،‫الويب‬ ‫مواقع‬ ‫وبرمجة‬ ‫المجال‬ ‫هذا‬ ‫في‬ ‫المستعملة‬ ‫اللغات‬ ‫هولة‬ . ‫تراها‬ ‫التي‬ ‫الصفحات‬ ‫وهي‬ ،‫الويب‬ ‫مواقع‬ ‫مختلف‬ ‫محتوى‬ ‫تعرض‬ ‫التي‬ ‫الويب‬ ‫صفحات‬ ‫تطوير‬ ‫هو‬ ‫المجال‬ ‫هذا‬ ‫هدف‬ ‫آخر‬ ‫موقع‬ ‫أي‬ ‫أو‬ ‫مستقل‬ ‫أو‬ ‫حسوب‬ ‫موسوعة‬ ‫أو‬ ‫حسوب‬ ‫أكاديمية‬ ‫لموقع‬ ‫زيارتك‬ ‫عند‬ . ‫ال‬ ‫هذه‬ ‫َب‬‫ت‬‫ك‬ُ‫ت‬‫و‬ ،‫المكونات‬ ‫من‬ ‫مجموعة‬ ‫من‬ ‫الويب‬ ‫صفحة‬ ‫تتألف‬ ‫لغة‬ ‫باستخدام‬ ‫مكونات‬ HTML ‫البنية‬ ‫كتابة‬ ‫وبعد‬ ، ‫لغة‬ ‫باستخدام‬ ‫تنسيقها‬ ‫على‬ ‫سنأتي‬ ‫للصفحة‬ ‫الهيكلية‬ CSS ‫عناصر‬ ‫على‬ ‫وهيئة‬ ‫شكل‬ ‫إلضفاء‬ ‫المستعملة‬ ‫اللغة‬ ‫وهي‬ ، HTML. ‫عناصر‬ ‫أن‬ ‫أي‬ HTML ‫والفقرات‬ ‫الرئيسي‬ ‫والمحتوى‬ ‫والقوائم‬ ‫الترويسات‬ ‫(مثل‬ ‫الصفحة‬ ‫محتوى‬ ‫تصف‬ ‫وقواعد‬ ،)‫والفيدوهات‬ ‫والصور‬ ‫والروابط‬ CSS ‫أو‬ ‫األلوان‬ ‫ناحية‬ ‫من‬ ً‫ء‬‫(سوا‬ ‫العناصر‬ ‫هذه‬ ‫تبدو‬ ‫أن‬ ‫يجب‬ ‫كيف‬ ‫ف‬ ِّ ‫عر‬ُ‫ت‬ )‫ذلك‬ ‫خًلف‬ ‫أو‬ ‫الخطوط‬ ‫أو‬ ‫الخلفيات‬ ‫أو‬ ‫المساحات‬ . ‫لغة‬ ‫تأتي‬ JavaScript ‫إل‬ ‫وتستعمل‬ ‫لهما‬ ً‫ة‬‫مكمل‬ ‫متحرك‬ ‫شريط‬ ‫مثل‬ ،‫تفاعلية‬ ٍ‫ت‬‫صفا‬ ‫الصفحة‬ ‫عناصر‬ ‫بعض‬ ‫عطاء‬ ‫إلخ‬... ‫ن‬‫معي‬ ‫حدث‬ ‫وقوع‬ ‫عند‬ ‫تظهر‬ ‫قوائم‬ ‫أو‬ ‫الصور‬ ‫من‬ . ‫بعضها‬ ‫وسنذكر‬ ‫األمامية‬ ‫الواجهات‬ ‫إنشاء‬ ‫تسهيل‬ ‫في‬ ‫تستعمل‬ ‫كثيرة‬ ‫تقنيات‬ ‫هنالك‬ : • ‫إطار‬ Bootstrap ‫الصفحة‬ ‫عناصر‬ ‫تنسيق‬ ‫لتسهيل‬ . • ‫مكتبة‬ jQuery ‫ا‬ ‫عناصر‬ ‫مع‬ ‫التعامل‬ ‫لتسهيل‬ ‫باستخدام‬ ‫لصفحة‬ JavaScript. • ‫لغة‬ Sass ‫ملفات‬ ‫إلنشاء‬ CSS ‫وسًلسة‬ ‫بسرعة‬ . • ‫مثل‬ ‫بناء‬ ‫أدوات‬ Webpack ‫التي‬ ‫النهائية‬ ‫النسخة‬ ‫إلى‬ ‫للتطبيق‬ ‫المصدرية‬ ‫الملفات‬ ‫تحويل‬ ‫ل‬ِّ‫ه‬‫يس‬ ‫الذي‬ ‫للمستخدم‬ ‫ض‬ َ‫ستعر‬ . ‫المستخدم‬ ‫واجهات‬ ‫تطوير‬ ‫في‬ ‫المستخدمة‬ ‫والتقنيات‬ ‫اللغات‬ HTML : ‫و‬ CSS ‫و‬ JavaScript ‫و‬ Bootstrap ‫و‬ Sass ‫و‬ jQuery ‫و‬ Webpack. ‫الخلفية‬ ‫الواجهات‬ ‫تطوير‬ ‫الخلفية‬ ‫الواجهات‬ ‫تطوير‬ ‫يعني‬ ‫ماذا‬ :‫تتساءل‬ ‫قد‬ (backend) ‫المستخدم‬ ‫واجهات‬ ‫تطوير‬ ‫وبين‬ ‫بينه‬ ‫الفرق‬ ‫وما‬ ‫؟‬ (frontend) ‫عليها‬ ‫عمليات‬ ‫وتجري‬ ‫الخوادم‬ ‫على‬ ‫ذ‬َّ‫ف‬‫ن‬ُ‫ت‬ ‫التي‬ ‫البرمجيات‬ ‫هي‬ ‫الخلفية‬ ‫الواجهات‬ ‫أن‬ ‫هو‬ ‫بينهما‬ ‫الفرق‬ ‫؟‬
  • 9.
    ‫تظ‬ ‫التي‬ ‫الصفحات‬‫فهي‬ ‫المستخدم‬ ‫واجهات‬ ‫أما‬ ،‫الخارجية‬ ‫والخدمات‬ ‫والملفات‬ ‫البيانات‬ ‫قواعد‬ ‫مع‬ ‫التعامل‬ ‫مثل‬ ‫على‬ ‫هر‬ ‫متصفحه‬ ‫في‬ ‫الزائر‬ ‫شاشة‬ . ‫هي‬ ‫هنا‬ ‫المذكورة‬ ‫اللغات‬ ‫وجميع‬ ،‫الخلفية‬ ‫الواجهات‬ ‫تطوير‬ ‫مجال‬ ‫في‬ ‫للبدء‬ ‫أمامك‬ ‫المتاحة‬ ‫الخيارات‬ ‫عليك‬ ‫سأطرح‬ ،‫تعلمها‬ ‫قرار‬ ‫وتتخذ‬ ‫لغة‬ ‫كل‬ ‫من‬ ‫بسيطة‬ ‫شيفرات‬ ‫على‬ ‫تتطلع‬ ‫أن‬ ‫المهم‬ ،‫منها‬ ‫تختار‬ ‫لغة‬ ‫أي‬ ‫يهم‬ ‫وال‬ ‫وقوية‬ ‫ناجحة‬ ‫لغات‬ ‫وقتك‬ ‫تضييع‬ ‫من‬ ‫واحذر‬ ‫مجالها‬ ‫في‬ ٌ‫ة‬‫ممتاز‬ ٍ‫ة‬‫لغ‬ ُ‫ل‬‫فك‬ ،‫أفضلها‬ ‫عن‬ ‫والبحث‬ ‫البرمجة‬ ‫لغات‬ ‫بين‬ ‫التنقل‬ ‫في‬ . ‫لغة‬ ‫باستخدام‬ ‫البرمجة‬ ‫تعلم‬ PHP ‫هي‬ ‫الخلفية‬ ‫الواجهات‬ ‫لتطوير‬ ‫لغة‬ ‫أشهر‬ ‫بأن‬ ‫القول‬ ‫يمكن‬ ،‫الخلفية‬ ‫والواجهات‬ ‫المستخدم‬ ‫واجهات‬ ‫بين‬ ‫الفرق‬ ‫تبيان‬ ‫بعد‬ ‫لغة‬ PHP ‫مضاعفة‬ ‫ا‬ً‫ف‬‫أضعا‬ ‫لها‬ ‫المنافسة‬ ‫اللغات‬ ‫على‬ ‫وتتفوق‬ ، . ‫بلغة‬ ‫البرمجة‬ ‫تعلم‬ PHP .‫مستمر‬ ‫وتطويرها‬ ‫كبير‬ ‫حولها‬ ‫والمجتمع‬ ،‫الشكل‬ ‫وبسيطة‬ ‫التعلم‬ ‫سهلة‬ ‫لغة‬ ‫فهي‬ ،‫سلس‬ ‫أمر‬ ‫الخلفية‬ ‫الواجهات‬ ‫تطوير‬ ‫مجال‬ ‫إلى‬ ‫الدخول‬ ‫يريد‬ ‫لمن‬ ‫استراتيجي‬ ‫خيار‬ ‫هي‬ ‫اللغة‬ ‫هذه‬ . ‫عدد‬ ‫هنالك‬ ‫بلغة‬ ‫المكتوبة‬ ‫البرمجيات‬ ‫من‬ PHP ‫ووردبريس‬ ‫مثل‬ WordPress ‫ودروبال‬ Drupal ‫وميدياويكي‬ MediaWiki ‫العمل‬ ‫إطارات‬ ‫من‬ ‫كبير‬ ٍ‫د‬‫عد‬ ‫إلى‬ ً‫ة‬‫إضاف‬ ‫الكثير؛‬ ‫وغيرها‬ )‫حسوب‬ ‫وموسوعة‬ ‫ويكيبيديا‬ ‫ل‬ِّ‫غ‬‫تش‬ ‫(التي‬ ‫مثل‬ Laravel ‫و‬ Zend ‫و‬ CodeIgniter ‫و‬ Symfony ‫و‬ CakePHP ‫و‬ Yii ‫يد‬ ‫ما‬ ‫وهذا‬ ،‫وغيرها‬ ‫على‬ ‫ل‬ ‫بها‬ ‫يحيط‬ ‫الذي‬ ‫الكبير‬ ‫والمجتمع‬ ‫الكبيرة‬ ‫اللغة‬ ‫إمكانيات‬ . ‫باستخدام‬ ‫الويب‬ ‫تطبيقات‬ ‫تطوير‬ ‫في‬ ‫المستخدمة‬ ‫والتقنيات‬ ‫اللغات‬ PHP ‫هي‬ : PHP ‫و‬ Laravel ‫البيانات‬ ‫وقواعد‬ ‫(مثل‬ MySQL ‫و‬ PostgreSQL ‫وغيرها‬ ). ‫روبي‬ ‫لغة‬ ‫باستخدام‬ ‫البرمجة‬ ‫تعلم‬ Ruby - ‫روبي‬ ‫لغة‬ ‫في‬ ‫ضالتك‬ ‫فستجد‬ ‫االستعمال‬ ‫وسهلة‬ ‫أنيقة‬ ٍ‫ة‬‫لغ‬ ‫عن‬ ‫تبحث‬ َ‫كنت‬ ‫إذا‬ Ruby ‫وأسلسها‬ ‫اللغات‬ ‫أجمل‬ ‫من‬ ‫فهي‬ ‫عامة‬ ‫برمجة‬ ‫لغة‬ ‫وهي‬ ،ً‫ة‬‫كتاب‬ ‫الويب‬ ‫تطبيقات‬ ‫تطوير‬ ‫ضمنها‬ ‫ومن‬ ‫التطبيقات‬ ‫أنواع‬ ‫مختلف‬ ‫لتطوير‬ ‫استخدامها‬ ‫يمكن‬ . ‫العمل‬ ‫إطار‬ ‫نشر‬ ‫بعد‬ ‫الويب‬ ‫تطوير‬ ‫في‬ ‫روبي‬ ‫صيت‬ ‫ذاع‬ Ruby on Rails ‫هنالك‬ .)"‫"ريلز‬ ‫ا‬ً‫اختصار‬ ‫إليه‬ ‫(يشار‬ ‫مثل‬ ‫أخرى‬ ‫عمل‬ ‫إطارات‬ Sinatra ‫أشهرها‬ ‫ريلز‬ ‫يبقى‬ ‫لكن‬ . ‫في‬ ‫المستخدمة‬ ‫والتقنيات‬ ‫اللغات‬ ‫البيانات‬ ‫وقواعد‬ ‫ريلز‬ ‫و‬ ‫روبي‬ :‫روبي‬ ‫باستخدام‬ ‫الويب‬ ‫تطبيقات‬ ‫تطوير‬ ( ‫مثل‬ MySQL ‫و‬ PostgreSQL ‫وغيرها‬ ). ‫سكربت‬ ‫جافا‬ ‫لغة‬ ‫باستخدام‬ ‫البرمجة‬ ‫تعلم‬ JavaScript - ‫تستعمل‬ !‫نعم‬ JavaScript ‫الفضل‬ .‫ًا‬‫ض‬‫أي‬ ‫الخلفية‬ ‫الواجهات‬ ‫تطوير‬ ‫في‬ ‫لبيئة‬ ‫يعود‬ Node.js ‫للمطورين‬ ‫تسمح‬ ‫التي‬ ‫باستخدام‬ JavaScript ‫إلى‬ ‫إرسالها‬ ‫قبل‬ ‫ديناميكية‬ ‫ويب‬ ‫صفحات‬ ‫لتوليد‬ ‫وذلك‬ ‫الخادم‬ ‫جهة‬ ‫من‬ ‫تعمل‬ ‫برمجيات‬ ‫لكتابة‬ ‫وتستطيع‬ ،‫المتصفح‬ Node.js ‫أنظمة‬ ‫وخدمات‬ ‫الشبكات‬ ‫أنظمة‬ ‫ومختلف‬ ‫البيانات‬ ‫وقواعد‬ ‫الملفات‬ ‫مع‬ ‫التعامل‬ ‫التشغيل‬ . ‫أجمل‬ ‫يوجد‬ ‫هل‬ ‫ذلك‬ ‫وكل‬ ‫الخلفية؟‬ ‫والواجهات‬ ‫الويب‬ ‫لمواقع‬ ‫األمامية‬ ‫الواجهات‬ ‫لبرمجة‬ ‫اللغة‬ ‫نفس‬ ‫استخدام‬ ‫من‬ ‫المجتمع‬ ‫من‬ ‫ا‬ً‫ممتاز‬ ‫ا‬ً‫م‬‫دع‬ ‫ومدعومة‬ ‫واالستعمال‬ ‫التعلم‬ ‫سهلة‬ ‫لغة‬ ‫باستخدام‬ . ‫باستخدام‬ ‫الويب‬ ‫تطبيقات‬ ‫تطوير‬ ‫في‬ ‫المستخدمة‬ ‫والتقنيات‬ ‫اللغات‬ JavaScript: ‫لغة‬ JavaScript ‫وبيئة‬ Node.js ‫العمل‬ ‫وإطار‬ Express.js ‫البيانات‬ ‫وقواعد‬ ( ‫مثل‬ MongoDB ‫و‬ MySQL ‫و‬ PostgreSQL ‫وغيرها‬ ). ‫بايثون‬ ‫لغة‬ ‫باستخدام‬ ‫البرمجة‬ ‫تعلم‬ Python - ‫البرمجية‬ ‫شيفرتها‬ ‫تبدو‬ ‫إذ‬ ،‫اإلطًلق‬ ‫على‬ ‫برمجة‬ ‫لغة‬ ‫أسهل‬ ‫أنها‬ ‫على‬ ‫ها‬‫عد‬ ‫ويمكن‬ ،‫االستعماالت‬ ‫متعددة‬ ‫بايثون‬ ‫لغة‬ ‫مكتوبة‬ ‫مقالة‬ ‫كأنها‬ ‫عن‬ ‫تبحث‬ ‫فأنت‬ ‫كثيرة‬ ‫عمل‬ ‫أطر‬ ‫ولها‬ ‫ا‬ً‫ممتاز‬ ‫ا‬ً‫م‬‫دع‬ ً‫ة‬‫ومدعوم‬ ً‫ة‬‫سهل‬ ً‫ة‬‫لغ‬ َ‫أردت‬ ‫إذا‬ .‫اإلنكليزية‬ ‫باللغة‬ ‫بايثون‬ ‫لغة‬ .
  • 10.
    ‫جانغو‬ ‫العمل‬ ‫إطار‬‫هي‬ ‫أمامك‬ ‫المتاحة‬ ‫الخيارات‬ ( Django ) ‫وفًلسك‬ ( Flask ) ‫البرمجة‬ ‫لغة‬ ‫تعلم‬ ‫يمكنك‬ ،‫وغيرها‬ ‫قراءة‬ ‫خًلل‬ ‫من‬ ‫الخلفية‬ ‫الواجهات‬ ‫لتطوير‬ ‫بايثون‬ ‫سالسل‬ ‫المقاالت‬ ‫عن‬ ‫تعل‬ ‫م‬ ‫بايثون‬ ‫في‬ ‫قسم‬ ‫البرمجة‬ ‫في‬ ‫أكاديمية‬ ‫حسوب‬ ‫توثيق‬ ‫على‬ ‫لًلطًلع‬ ‫حسوب‬ ‫موسوعة‬ ‫إلى‬ ‫تعود‬ ‫أن‬ ‫يمكنك‬ .‫فًلسك‬ ‫أو‬ ‫جانغو‬ ‫العمل‬ ‫إطار‬ ‫تعلم‬ ‫إلى‬ ‫االنتقال‬ ‫ثم‬ ، ‫بايثون‬ ‫لغة‬ . ‫تطبيقات‬ ‫تطوير‬ ‫في‬ ‫المستخدمة‬ ‫والتقنيات‬ ‫اللغات‬ ‫عليها‬ ‫المبنية‬ ‫العمل‬ ‫وإطارات‬ ‫بايثون‬ ‫لغة‬ :‫بايثون‬ ‫باستخدام‬ ‫الويب‬ ‫البيانات‬ ‫وقواعد‬ )‫وفًلسك‬ ‫جانغو‬ ‫(مثل‬ ( ‫مثل‬ MySQL ‫و‬ PostgreSQL ‫وغيرها‬ ). ‫الجوال‬ ‫تطبيقات‬ ‫تطوير‬ ‫تعلم‬ ‫و‬ ‫أندرويد‬ ‫ألنظمة‬ ‫الجوال‬ ‫تطبيقات‬ ‫عدد‬ ‫ازداد‬ iOS ‫أو‬ ‫شركة‬ ‫لكل‬ ‫وأصبح‬ ،‫الماضية‬ ‫الفترة‬ ‫في‬ ‫ا‬ً‫كبير‬ ‫ًا‬‫د‬‫ازديا‬ ‫خدمة‬ ‫توفرها‬ ‫التي‬ ‫الخدمات‬ ‫إلى‬ ‫الوصول‬ ‫مستخدميها‬ ‫على‬ ‫ل‬ِّ‫ه‬‫يس‬ ‫بها‬ ‫خاص‬ ‫تطبيق‬ . ‫ثم‬ ‫أندرويد‬ ‫هما‬ ‫ًا‬‫ي‬‫حال‬ ‫الجوال‬ ‫سوق‬ ‫على‬ ‫المسيطران‬ ‫الرئيسيان‬ ‫النظامان‬ iOS. ‫بلغة‬ ‫أندرويد‬ ‫تطبيقات‬ ‫برمجة‬ ‫يمكن‬ Java ‫أو‬ Kotlin ‫تطبيقات‬ ‫وبرمجة‬ )‫غيرهما‬ ‫(أو‬ iOS ‫باستخدام‬ Swift ( ‫وغيرها‬ ). ‫لهواتف‬ ‫وآخر‬ ‫أندرويد‬ ‫لهواتف‬ ‫واحد‬ ،‫ا‬ً‫م‬‫تما‬ ‫منفصلين‬ ‫تطبيقين‬ ‫تطوير‬ ‫عليك‬ َّ‫أن‬ ‫ستكتشف‬ iOS ‫في‬ ً‫ة‬‫زياد‬ ‫يسبب‬ ‫وذلك‬ ، ‫التغييرات‬ ‫إدارة‬ ‫في‬ ً‫ة‬‫وصعوب‬ ‫المطلوب‬ ‫العمل‬ ‫حجم‬ . ‫و‬ ‫أندرويد‬ ‫نظام‬ ‫على‬ ‫تعمل‬ ‫تطبيقات‬ ‫وهي‬ ،"‫المنصات‬ ‫متعددة‬ ‫"التطبيقات‬ ‫مفهوم‬ ‫ظهر‬ ،‫ذلك‬ ‫بسبب‬ iOS ‫أي‬ ‫دون‬ ‫وذ‬ ،‫تعديًلت‬ ‫االستفادة‬ ‫الويب‬ ‫مطوري‬ ‫بإمكان‬ ‫أصبح‬ ‫أي‬ .‫الويب‬ ‫تقنيات‬ ‫الغالب‬ ‫في‬ ‫وهي‬ ‫مشتركة‬ ‫تقنيات‬ ‫باستخدام‬ ‫لك‬ ‫آيونيك‬ ‫مثل‬ ‫منصات‬ ‫باستخدام‬ ‫الجوال‬ ‫تطبيقات‬ ‫تطوير‬ ‫في‬ ‫معلوماتهم‬ ‫من‬ Ionic. ‫آيونيك‬ ‫تسمح‬ Ionic ‫لغة‬ ‫باستخدام‬ ‫الجهاز‬ ‫وظائف‬ ‫مختلف‬ ‫مع‬ ‫بالتعامل‬ ‫للمبرمجين‬ JavaScript ‫الوصول‬ ‫مثل‬ ، ‫إلى‬ ‫ذلك‬ ‫وخًلف‬ ‫الملفات‬ ‫مع‬ ‫والتعامل‬ ،‫بالكاميرا‬ ‫صور‬ ‫والتقاط‬ ،‫الجغرافي‬ ‫الموقع‬ . ‫على‬ ‫مبنية‬ ‫أخرى‬ ‫تقنيات‬ ‫الماضية‬ ‫الفترة‬ ‫في‬ ‫رت‬ِّ‫و‬‫ط‬ JavaScript ‫مثل‬ React Native ‫مكتبة‬ ‫على‬ ‫المبنية‬ React.js ‫الويب‬ ‫تقنيات‬ ‫باستخدام‬ ‫أصيلة‬ ‫تطبيقات‬ ‫بكتابة‬ ‫للمطورين‬ ‫تسمح‬ ‫والتي‬ . ‫األلعاب‬ ‫تطوير‬ ‫ت‬ ‫من‬ ‫الحاسوب‬ ‫على‬ ‫تعرفوا‬ ‫فاألغلبية‬ .‫إليه‬ ‫بالدخول‬ ‫الحاسوب‬ ‫مستخدمي‬ ‫جميع‬ ‫يحلم‬ ‫الذي‬ ‫المجال‬ ‫هو‬ ‫األلعاب‬ ‫طوير‬ ‫والتطوير‬ ‫البرمجة‬ ‫عن‬ ‫االستكشاف‬ ‫برحلة‬ ‫بدؤوا‬ ‫ثم‬ ‫ومن‬ ‫الفيديو‬ ‫ألعاب‬ ‫خًلل‬ . ‫لغة‬ ‫بتعلم‬ ‫"عليك‬ ‫يقول‬ ‫األلعاب‬ ‫تطوير‬ ‫عن‬ ‫يجيب‬ ‫من‬ ‫أغلب‬ " C++ ً ‫قليًل‬ ‫األمر‬ ‫لك‬ ‫ل‬ ِّ ‫أفص‬ ‫دعني‬ ‫لكن‬ . ‫أن‬ ‫وحيد‬ ‫ر‬ِّ‫و‬‫مط‬ ‫على‬ ‫الصعب‬ ‫من‬ .‫تجارية‬ ‫شركة‬ ‫من‬ ‫مدعوم‬ ،‫كبير‬ ‫عمل‬ ‫فريق‬ ‫من‬ ‫ا‬ً‫كثير‬ ً ‫عمًل‬ ‫تتطلب‬ ‫األلعاب‬ ‫برمجة‬ ‫فريق‬ ‫دون‬ ‫الصفر‬ ‫من‬ ‫كاملة‬ ‫لعبة‬ ‫ينشئ‬ . ‫ك‬ ِّ ‫محر‬ ‫باستخدام‬ ‫األلعاب‬ ‫أغلبية‬ ‫طور‬ُ‫ت‬ (engine) ‫مناسبة‬ ‫تطوير‬ ‫بيئة‬ ‫ويتيح‬ ‫المطورين‬ ‫على‬ ‫األمر‬ ‫ل‬ِّ‫ه‬‫يس‬ ‫والذي‬ ‫وتحريكها‬ ‫األبعاد‬ ‫ثًلثية‬ ‫الشخصيات‬ ‫ونمذجة‬ ‫بالكاميرا‬ ‫التحكم‬ ‫مثل‬ ‫األلعاب‬ ‫لجميع‬ ‫األساسية‬ ‫الميزات‬ ‫ويتيح‬ ،‫لأللعاب‬ ‫مح‬ ‫من‬ ‫كبير‬ ‫عدد‬ ‫هنالك‬ .‫األخرى‬ ‫الفيزيائية‬ ‫واألمور‬ ‫في‬ ‫شعارها‬ ‫شاهدت‬ ‫أنك‬ ‫المرجح‬ ‫ومن‬ ،‫األلعاب‬ ‫تطوير‬ ‫ركات‬ ‫أشهرها‬ ‫ومن‬ ،‫قبل‬ ‫من‬ ‫لعبتها‬ ‫التي‬ ‫األلعاب‬ : Unreal Engine ‫و‬ Unity. ‫مثل‬ ،‫لغات‬ ‫ة‬ِّ‫د‬‫ع‬ ‫باستخدام‬ ‫المحركات‬ ‫هذه‬ ‫مع‬ ‫التعامل‬ ‫يمكن‬ C++ ‫على‬ ‫لأللعاب‬ ‫ا‬ً‫ص‬‫(خصو‬ ‫وجافا‬ ،)‫أشهرها‬ ‫(وهي‬ ‫استخدام‬ ‫يمكن‬ ‫وحتى‬ )‫أندرويد‬ ‫هواتف‬ JavaScript ‫بعضها‬ ‫مع‬ ‫التعامل‬ ‫في‬ . ‫المتصفحات‬ ‫على‬ ‫تعمل‬ ‫كثيرة‬ ‫ألعاب‬ ‫فهنالك‬ ،‫الهواتف‬ ‫أو‬ ‫المكتب‬ ‫سطح‬ ‫بتطبيقات‬ ‫محدودة‬ ‫غير‬ ‫األلعاب‬ ‫أن‬ ‫تذكر‬ ‫تقنيات‬ ‫باستخدام‬ HTML5 ‫و‬ JavaScript. ‫األلعاب‬ ‫تطوير‬ ‫في‬ ‫المستخدمة‬ ‫والتقنيات‬ ‫اللغات‬ : C++ ‫و‬ Java ‫و‬ JavaScript ‫ومحركات‬ Unity ‫و‬ Unreal Engine.
  • 11.
    ‫المدمجة‬ ‫األنظمة‬ ‫تطوير‬ .‫اآلن‬‫أمامك‬ ‫تراه‬ ‫الذي‬ ‫الحاسوب‬ ‫ميزات‬ ‫كل‬ ‫تملك‬ ‫ال‬ ‫ولكنها‬ ‫بالحاسوب‬ ‫شبيهة‬ ‫حاسوبية‬ ‫أنظمة‬ ‫هي‬ ‫المدمجة‬ ‫األنظمة‬ ‫المراد‬ ‫البيئة‬ ‫أو‬ ‫الجهاز‬ ‫ضمن‬ ‫ومدمج‬ ‫فقط‬ ‫محددة‬ ‫مهام‬ ‫ألداء‬ ‫مبرمج‬ ‫صغير‬ ‫حاسوب‬ ‫هو‬ ‫المدمج‬ ‫النظام‬ ،‫أخرى‬ ‫بعبارة‬ .‫فيها‬ ‫استخدامه‬ ‫التحكم‬ ‫وجهاز‬ ‫المياه‬ ‫مستوى‬ ‫مقياس‬ ‫جهاز‬ ‫مثل‬ ‫اآلن‬ ‫المدمجة‬ ‫األنظمة‬ ‫من‬ ‫بالكثير‬ ‫محاط‬ ‫اآلن‬ ‫أنت‬ ‫اآللية‬ ‫األطفال‬ ‫وألعاب‬ ‫السير‬ ‫وتنظيم‬ ‫المرور‬ ‫إشارات‬ ‫حتى‬ .‫إلخ‬... ‫المراقبة‬ ‫وأجهزة‬ ‫الحريق‬ ‫إنذار‬ ‫وجهاز‬ ‫بالتلفاز‬ ‫مدمجة‬ ‫أنظمة‬ ‫أنها‬ ‫على‬ ‫ف‬َّ‫ن‬‫تص‬ . ‫األشي‬ ‫"إنترنت‬ ‫بمصطلح‬ ‫ًا‬‫ض‬‫أي‬ ‫سمعت‬ ‫هل‬ !‫البساطة‬ ‫بهذه‬ ،‫نعم‬ .‫باإلنترنت‬ ‫متصل‬ ‫مدمج‬ ‫نظام‬ ‫هو‬ ‫األشياء‬ ‫إنترنت‬ ‫اء"؟‬ ‫بعد‬ ‫عن‬ ‫المراقبة‬ ‫وأنظمة‬ ‫الدرون‬ ‫وطائرات‬ ‫الذكية‬ ‫والغساالت‬ ‫والثًلجات‬ ‫الساعات‬ ‫ذهنك‬ ‫إلى‬ ‫يتبادر‬ ‫أن‬ ‫اآلن‬ ‫البد‬ ‫األشياء‬ ‫إنترنت‬ ‫على‬ ‫أمثلة‬ ‫كلها‬ ‫إذ‬ ،‫الذكية‬ ‫البيوت‬ ‫وأنظمة‬ . ‫المدمجة‬ ‫األنظمة‬ ‫برمجة‬ ‫كيفية‬ ‫أش‬ ‫لغة‬ ‫هي‬ ‫األشياء‬ ‫وإنترنت‬ ‫المدمجة‬ ‫األنظمة‬ ‫برمجة‬ ‫في‬ ‫ل‬َ‫م‬‫تستع‬ ‫برمجة‬ ‫لغة‬ ‫وأكثر‬ ‫هر‬ C ‫اللغات‬ ‫وكل‬ )‫سي‬ ‫لغة‬ ‫(أي‬ ‫منها‬ ‫المشتقة‬ ( ‫مثل‬ ‫أردوينو‬ ‫لغة‬ C). ‫لغة‬ ‫ل‬َ‫م‬‫ستع‬ُ‫ت‬ C++ ‫لغة‬ ‫من‬ ‫أعلى‬ ‫مستوى‬ ‫ذات‬ ‫لغة‬ ُّ‫د‬‫تع‬ ‫إذ‬ ،‫المجال‬ ‫هذا‬ ‫في‬ ‫ا‬ً‫كثير‬ C ‫ذلك‬ ‫إلى‬ ‫أضف‬ .‫التوجه‬ ‫كائنية‬ ‫للبرمجة‬ ‫لدعمها‬ ‫المدمجة‬ ‫األنظمة‬ ‫تطبيقات‬ ‫برمجة‬ ‫في‬ ‫بايثون‬ ‫لغة‬ ‫استعمال‬ ‫ا‬ً‫ث‬‫حدي‬ ‫بدأ‬ ‫أنه‬ ‫لغة‬ ‫بقوة‬ ‫ليست‬ ‫بايثون‬ ‫لغة‬ َّ‫أن‬ ‫صحيح‬ .‫ا‬ً‫ق‬‫ساب‬ ‫المجال‬ ‫بهذا‬ ‫ًّا‬‫ي‬‫تقليد‬ ‫ترتبط‬ ‫لم‬ ‫أنها‬ ‫مع‬ C ‫و‬ C++ ‫أنها‬ ‫إال‬ ‫المجال‬ ‫هذا‬ ‫في‬ ‫فيها‬ ‫المتوافرة‬ ‫الهائلة‬ ‫المكتبات‬ ‫من‬ ‫وفعاليتها‬ ‫ميزاتها‬ ‫تستمد‬ . ‫عن‬ ‫ًا‬‫د‬‫بعي‬ C ‫وبا‬ ‫العتاد‬ ‫توصيف‬ ‫"لغات‬ ‫ضمن‬ ‫تنضوي‬ ‫أخرى‬ ‫لغات‬ ‫ًا‬‫ض‬‫أي‬ ‫المدمجة‬ ‫األنظمة‬ ‫مجال‬ ‫في‬ ‫تستعمل‬ ،‫يثون‬ " (Hardware Description Languages) ‫لغتي‬ ‫؛‬ VHDL ‫و‬ Verilog ‫العتاد‬ ‫توصيف‬ ‫لغات‬ ‫أشهر‬ ‫من‬ ‫هما‬ ‫القاب‬ ‫المنطقية‬ ‫البوابات‬ ‫"مصفوفة‬ ‫برمجة‬ ‫في‬ ‫اللغات‬ ‫هذه‬ ‫مثل‬ ‫ل‬َ‫م‬‫ستع‬ُ‫ت‬ .‫المجال‬ ‫هذا‬ ‫في‬ ‫المستعملة‬ ‫للبرمجة‬ ‫لة‬ " (FPGA ‫أي‬ Field Programmable Gate Array). ‫التجميع‬ ‫"لغة‬ ‫تدعى‬ ‫أخرى‬ ‫بلغة‬ ‫المدمجة‬ ‫األنظمة‬ ‫برمجة‬ ‫تشرح‬ ‫المراجع‬ ‫بعض‬ ‫تجد‬ ‫قد‬ ،‫ا‬ً‫أخير‬ " (Assembly Language) ‫ا‬ً‫ع‬‫واس‬ ‫ا‬ً‫م‬‫فه‬ ‫اللغة‬ ‫هذه‬ ‫باستخدام‬ ‫البرمجة‬ ‫تعلم‬ ‫يتطلب‬ .‫المستوى‬ ‫منخفضة‬ ‫اللغات‬ ‫من‬ ‫تصنف‬ ‫التي‬ ‫وحدة‬ ‫بمعمارية‬ ‫يكون‬ ‫قد‬ ‫اللغة‬ ‫هذه‬ ‫إلى‬ ‫االنتقال‬ .‫الحاسوب‬ ‫يفهمها‬ ‫لغة‬ ‫أقرب‬ ‫ألنها‬ ‫بالمجمل‬ ‫والمعالج‬ ‫المركزية‬ ‫التحكم‬ ‫اللغة‬ ‫بهذه‬ ‫البرمجة‬ ‫ميزات‬ ‫من‬ .‫األشياء‬ ‫إنترنت‬ ‫وتطبيقات‬ ‫المدمجة‬ ‫األنظمة‬ ‫لبرمجة‬ ‫تعلمك‬ ‫من‬ ‫متقدمة‬ ‫مستويات‬ ‫في‬ ‫أخرى‬ ‫لغات‬ ‫توفره‬ ‫ال‬ ‫الذي‬ ‫والمعالج‬ ‫بالعتاد‬ ‫الواسع‬ ‫التحكم‬ ‫هي‬ ‫ولكن‬ ،‫ومعقدة‬ ‫الشيء‬ ‫بعض‬ ‫صعبة‬ ‫اللغة‬ ‫هذه‬ ‫أن‬ ‫يقال‬ . ‫وال‬ ‫اآللة‬ ‫لغة‬ ‫إلى‬ ‫شيء‬ ‫وأقرب‬ ‫المستوى‬ ‫منخفضة‬ ‫لغة‬ ‫هي‬ ‫التجميع‬ ‫لغة‬ ‫أن‬ ‫هو‬ ‫ذلك‬ ‫قول‬ ‫سبب‬ ‫يكون‬ ‫قد‬ !‫ذلك‬ ‫أرى‬ ‫ال‬ ‫يعرفها‬ ‫لم‬ ‫إن‬ ‫ا‬ً‫ق‬‫مطل‬ ‫فهمها‬ ‫فيها‬ ‫مكتوبة‬ ‫شيفرة‬ ‫على‬ ‫نظرة‬ ‫يلقي‬ ‫من‬ ‫يستطيع‬ . ‫المكتب‬ ‫سطح‬ ‫تطبيقات‬ ‫تطوير‬ ‫تطب‬ ‫تطوير‬ ‫مجال‬ ‫فيه‬ ‫ستضيع‬ ،‫االتجاه‬ ‫تريد‬ ‫أين‬ ‫إلى‬ ‫وتعرف‬ ‫بوصلة‬ ‫تملك‬ ‫لم‬ ‫إن‬ ‫الواسع؛‬ ‫كالمحيط‬ ‫المكتب‬ ‫سطح‬ ‫يقات‬ ‫أشهرها‬ ‫التشغيل‬ ‫أنظمة‬ ‫من‬ ‫الكثير‬ ‫هنالك‬ .‫ا‬ً‫م‬‫حت‬ - ‫ًا‬‫ي‬‫حال‬ ‫السوق‬ ‫على‬ ً‫ة‬‫سيطر‬ ‫وأكثرها‬ - ،‫ويندوز‬ ‫التشغيل‬ ‫نظام‬ :‫هي‬ ‫وماك‬ ،‫ولينكس‬ (macOS) ‫به‬ ‫خاصة‬ ‫مكتبية‬ ‫تطبيقات‬ ‫تشغيل‬ ‫نظام‬ ‫كل‬ ‫ويملك‬ ، ً ‫أوال‬ ‫عليك‬ ‫يجب‬ ،‫لذلك‬ . - ‫الدخول‬ ‫قبل‬ ‫المكتب‬ ‫سطح‬ ‫تطبيقات‬ ‫برمجة‬ ‫سوق‬ ‫إلى‬ - ‫هل‬ :‫التالي‬ ‫السؤال‬ ‫على‬ ‫اإلجابة‬ ‫يجب‬ ‫أي‬ .‫المستهدف‬ ‫التشغيل‬ ‫نظام‬ ‫تحديد‬ ‫واحد؟‬ ‫آن‬ ‫في‬ ‫تشغيل‬ ‫أنظمة‬ ‫عدة‬ ‫على‬ ‫يعمل‬ ‫أن‬ ‫لتطبيقك‬ ‫تريد‬ ‫أم‬ ،‫محدد‬ ‫تشغيل‬ ‫نظام‬ ‫تطبيقك‬ ‫يستهدف‬ ! ،‫المستهدف‬ ‫التشغيل‬ ‫نظام‬ ‫تحديد‬ ‫بعد‬ ‫سبيل‬ ‫فعلى‬ ‫تطبيقاته؛‬ ‫لبرمجة‬ ‫النظام‬ ‫ذلك‬ ‫في‬ ‫استعمالها‬ ‫المفضل‬ ‫اللغات‬ ‫على‬ ‫اطلع‬ ‫اللغات‬ ،‫المثال‬ C ‫و‬ C++ ‫و‬ C# ‫و‬ VB.NET ،‫ويندوز‬ ‫التشغيل‬ ‫نظام‬ ‫تطبيقات‬ ‫برمجة‬ ‫في‬ ً ‫استعماال‬ ‫األكثر‬ ‫هي‬ ‫واللغات‬ C ‫و‬ C++ ‫و‬ Bash ‫نظام‬ ‫توزيعات‬ ‫تطبيقات‬ ‫برمجة‬ ‫في‬ ً ‫استعماال‬ ‫األكثر‬ ‫هي‬ ‫نظام‬ ‫ا‬َّ‫م‬‫أ‬ .‫لينكس‬ ‫التشغيل‬ ‫لغة‬ ‫باستعمال‬ ‫فينفرد‬ ،‫ماك‬ ‫الشغيل‬ C. - Objective
  • 12.
    ‫اللغات‬ ‫أشهر‬ ‫إذ‬،‫التطبيقات‬ ‫برمجة‬ ‫في‬ ‫استعمالها‬ ‫يمكن‬ ‫الغرض‬ ‫عامية‬ ‫برمجة‬ ‫لغة‬ ‫كل‬ ،‫الحقيقة‬ ‫أخبرك‬ ‫دعني‬ ،‫ا‬ً‫ن‬‫حس‬ ‫جافا‬ ‫لغة‬ ‫هي‬ ‫المجال‬ ‫هذا‬ ‫في‬ ‫ًّا‬‫ي‬‫أكاديم‬ ‫س‬َّ‫در‬ُ‫ت‬ ‫التي‬ (Java). ‫ل‬ ‫دخول‬ ‫القارئ‬ ‫على‬ ‫يخفى‬ ‫ال‬ ‫هذا‬ ‫على‬ ‫بقوة‬ ‫بايثون‬ ‫غة‬ ‫صياغتها‬ ‫وسهولة‬ ‫الرائعة‬ ‫المكتبات‬ ‫من‬ ‫الكثير‬ ‫المتًلكها‬ ‫ا‬ً‫نظر‬ ‫المجال‬ . ‫لغة‬ ‫ا‬ً‫مؤخر‬ ‫دخلت‬ java script ‫العمل‬ ‫إطار‬ ‫عبر‬ ‫المكتب‬ ‫سطح‬ ‫تطبيقات‬ ‫برمجة‬ ‫سوق‬ ‫على‬ Electron ‫الويب‬ ‫تطوير‬ ‫تقنيات‬ ‫المجال‬ ‫هذا‬ ‫في‬ ‫توظف‬ ‫إذ‬ ،)‫(إلكترون‬ (HTML ‫و‬ CSS ‫و‬ JavaScript ... ‫إلخ‬ .). ‫هذا‬ ‫بدأ‬ ‫هذا‬ ‫باستعمال‬ ‫بها‬ ‫الخاصة‬ ‫المكتب‬ ‫سطح‬ ‫تطبيقات‬ ‫لتطوير‬ ‫كبيرة‬ ‫شركات‬ ‫دفع‬ ‫مما‬ ‫الهشيم‬ ‫في‬ ‫كالنار‬ ‫ينتشر‬ ‫اإلطار‬ ‫شركة‬ ‫ومنها‬ ‫اإلطار‬ Slack ‫المكتبي‬ ‫تطبيقها‬ ‫لتطوير‬ ‫اإلطار‬ ‫هذا‬ ‫استعملت‬ ‫التي‬ . ‫ف‬ ‫المستعملة‬ ‫والتقنيات‬ ‫البرمجة‬ ‫لغات‬ ‫كثرة‬ ‫من‬ ‫بالضياع‬ ‫تشعر‬ ‫اآلن‬ ‫أنك‬ ‫أعلم‬ ‫بذلك‬ ‫أخبرتك‬ ‫فقد‬ ،‫حق‬ ‫معك‬ ‫المجال؛‬ ‫هذا‬ ‫ي‬ ‫هل‬ ‫منه؟‬ ‫والربح‬ ‫إنشاءه‬ ‫وتريد‬ ‫تطبيق‬ ‫فكرة‬ ‫لديك‬ ‫هل‬ .‫بالضبط‬ ‫منه‬ ‫هدفك‬ ‫تحديد‬ ‫منك‬ ‫يحتاج‬ ‫السوق‬ ‫هذا‬ ‫دخول‬ .‫قليل‬ ‫منذ‬ ‫يلعب‬ ‫ذلك‬ ‫كل‬ ‫تطويره؟‬ ‫على‬ ‫العمل‬ ‫تريد‬ ‫أو‬ ‫إنشاءه‬ ‫تريد‬ ‫الذي‬ ‫التطبيق‬ ‫مواصفات‬ ‫هي‬ ‫ما‬ ‫محددة؟‬ ‫شركة‬ ‫لدى‬ ‫العمل‬ ‫تريد‬ ‫في‬ ‫ا‬ً‫دور‬ ‫لغة‬ ‫على‬ ‫العمل‬ ‫وأتقنت‬ ‫البرمجة‬ ‫أساسيات‬ ‫تعلمت‬ ‫إن‬ ،‫النهاية‬ ‫في‬ .‫لتعلمها‬ ‫لك‬ ‫األنسب‬ ‫البرمجة‬ ‫لغة‬ ‫تحديد‬ ‫ناحية‬ ‫من‬ ‫ًا‬‫ض‬‫بع‬ ‫بعضها‬ ‫تشبه‬ ‫البرمجة‬ ‫لغات‬ ‫أغلب‬ ‫إذ‬ ،‫أخرى‬ ‫برمجة‬ ‫لغة‬ ‫إلى‬ ‫االنتقال‬ ‫عليك‬ ‫سيسهل‬ ،‫محددة‬ ‫برمجية‬ ‫ل‬ .‫والشكل‬ ‫الصياغة‬ ‫ناحية‬ ‫من‬ ‫الشيء‬ ‫بعض‬ ‫وتختلف‬ ‫والمضمون‬ ‫المفهوم‬ ‫الناحية‬ ‫هذه‬ ‫من‬ ‫اطمئن‬ ،‫ذلك‬ . ‫تناسبك‬ ‫التي‬ ‫البرمجة‬ ‫لغة‬ ‫اختيار‬ ‫كيفية‬ ‫مجاالت‬ ‫لمختلف‬ ‫التعلم‬ ‫مسار‬ ‫لك‬ ‫سألخص‬ ،‫فيه‬ ‫العمل‬ ‫تحب‬ ‫الذي‬ ‫المجال‬ ‫على‬ ‫ًا‬‫د‬‫اعتما‬ ‫البرمجة‬ ‫لغة‬ ‫اختيار‬ ‫يمكنك‬ ‫العمل‬ : • ‫ويب‬ ‫كمطور‬ ‫العمل‬ stack: - full ‫وتطوير‬ ،‫المستخدم‬ ‫واجهات‬ ‫تطوير‬ ‫تعلم‬ ‫ذلك‬ ‫يعني‬ .‫الخلفية‬ ‫الواجهات‬ ‫متخصصين‬ ‫مبرمجين‬ ‫العمل‬ ‫سوق‬ ‫في‬ ‫ا‬ً‫كثير‬ ‫ب‬َ‫ل‬‫ُط‬‫ي‬ ‫إذ‬ ،‫فقط‬ ‫المجالين‬ ‫هذين‬ ‫من‬ ‫واحد‬ ‫بمجال‬ ‫التخصص‬ ‫يمكن‬ ‫الخلفية‬ ‫الواجهات‬ ‫أو‬ ‫المستخدم‬ ‫واجهات‬ ‫في‬ . • ‫أو‬ ‫أندرويد‬ ‫تطبيقات‬ ‫برمجة‬ ‫تعلم‬ ‫يمكنك‬ :‫المحمولة‬ ‫للهواتف‬ ‫تطبيقات‬ ‫كمطور‬ ‫العمل‬ iOS ‫أو‬ ،‫حدة‬ ‫على‬ ً ‫كًل‬ ‫تقني‬ ‫استعمال‬ ‫ا‬ً‫ع‬‫م‬ ‫النظامين‬ ‫لكًل‬ ‫للتطوير‬ ‫كوردوفا‬ ‫مثل‬ ‫ات‬ . • ‫َّد‬‫د‬‫مح‬ ‫تشغيل‬ ‫لنظام‬ ‫مكتبية‬ ‫تطبيقات‬ ‫تطوير‬ ‫في‬ ‫بالتخصص‬ ‫البدء‬ ‫يمكنك‬ :‫المكتب‬ ‫سطح‬ ‫تطبيقات‬ ‫كمطور‬ ‫العمل‬ ‫ذلك‬ ‫إلى‬ ‫أشرنا‬ ‫(كما‬ ‫المجال‬ ‫ذاك‬ ‫في‬ ‫المستعملة‬ ‫البرمجة‬ ‫لغة‬ ‫تعلم‬ ‫عبر‬ )‫لينكس‬ ‫أو‬ ‫ويندوز‬ ‫التشغيل‬ ‫نظام‬ ‫(مثل‬ ‫تطبيقا‬ ‫تطوير‬ ‫قسم‬ ‫في‬ ‫تطبيقات‬ ‫تطوير‬ ‫من‬ ‫تمكنك‬ ‫التي‬ ‫والتقنيات‬ ‫اللغات‬ ‫تعلم‬ ‫هو‬ ‫آخر‬ ‫خيار‬ ‫المكتب)؛‬ ‫سطح‬ ‫ت‬ ‫العمل‬ ‫إطار‬ ‫استعمال‬ ‫مثل‬ )‫تشغيل‬ ‫أنظمة‬ ‫عدة‬ ‫على‬ ‫(تعمل‬ ‫للمنصات‬ ‫عابرة‬ Electron. • ‫لغة‬ :‫الذكية‬ ‫واألنظمة‬ ‫المدمجة‬ ‫لألنظمة‬ ‫كمطور‬ ‫العمل‬ C ‫مع‬ ‫تتعامل‬ َ‫كنت‬ ً‫ء‬‫سوا‬ ،‫المجال‬ ‫هذا‬ ‫أساس‬ ‫هي‬ ‫مبا‬ ‫المتحكمات‬ ‫أردوينو‬ ‫مثل‬ ‫شريحة‬ ‫مع‬ ‫تتعامل‬ ‫أو‬ ،ً‫ة‬‫شر‬ ( ‫من‬ ً‫ة‬‫مشتق‬ ً‫ة‬‫لغ‬ ‫تمتلك‬ ‫والتي‬ C). ‫البرمجة‬ ‫لتعلم‬ ‫نصائح‬ ‫لكثرة‬ ‫طريقك‬ ‫بداية‬ ‫في‬ ‫باإلحباط‬ ‫تصاب‬ ‫قد‬ ‫لكنك‬ ،ٍ‫ل‬‫ومس‬ ‫وجميل‬ ،‫وشائق‬ ‫طويل‬ ‫الصفر‬ ‫من‬ ‫البرمجة‬ ‫تعلم‬ ‫مشوار‬ ‫في‬ ‫تجربتي‬ ‫من‬ ‫اآلتية‬ ‫النصائح‬ ‫إليك‬ ‫جهزت‬ ‫لذا‬ ،‫بها‬ ‫اإللمام‬ ‫عليك‬ ‫التي‬ ‫األمور‬ ‫البرمجة‬ : • ‫بأنك‬ ‫أبشرك‬ ،‫هدف‬ ‫بدون‬ .‫ًا‬‫ي‬‫واقع‬ ‫واجعله‬ ‫دخوله‬ ‫تريد‬ ‫الذي‬ ‫العمل‬ ‫وسوق‬ ‫البرمجة‬ ‫لغة‬ ‫تعلم‬ ‫من‬ ‫هدفك‬ ‫حدد‬ ‫على‬ ‫والتجزيء‬ ‫للقياس‬ ً ‫وقابًل‬ ‫ًا‬‫ي‬‫واقع‬ ‫هدفك‬ ‫يكون‬ ‫أن‬ ‫إلى‬ ‫انتبه‬ .‫حين‬ ‫بعد‬ ‫البرمجة‬ ‫تعلم‬ ‫فكرة‬ ‫عن‬ ‫ستتخلى‬ ‫البرمجة‬ ‫تعلم‬ ‫وتترك‬ ‫عقبة‬ ‫أول‬ ‫من‬ ‫ستفشل‬ ،‫ذلك‬ ‫بدون‬ .‫مراحل‬ . • ‫أع‬ ‫ترميم‬ ‫على‬ ‫عمل‬ ‫من‬ ‫المفلح‬ ‫ولكن‬ ،‫وضعف‬ ‫قوة‬ ‫نقاط‬ ‫لديه‬ ‫كلنا‬ .‫وضعفك‬ ‫قوتك‬ ‫ونقاط‬ ‫ًا‬‫د‬‫جي‬ ‫نفسك‬ ‫رف‬ ‫بتعلمه‬ ‫يرغب‬ ‫الذي‬ ‫المجال‬ ‫في‬ ‫ضعفه‬ ‫نقاط‬ ‫وتحسين‬ .
  • 13.
    • ‫دورة‬ ‫إلى‬ ‫االنتهاء‬‫بعد‬ ‫انتقل‬ ‫ثم‬ ‫ًّا‬‫ي‬‫تدريج‬ ‫الدورة‬ ‫ومتابعة‬ ‫الكتاب‬ ‫بقراءة‬ ‫وابدأ‬ ‫ًا‬‫د‬‫واح‬ ‫ًا‬‫ب‬‫وكتا‬ ‫واحدة‬ ‫دورة‬ ‫رشح‬ ‫إذ‬ ،‫آخر‬ ‫وكتاب‬ ‫أخرى‬ ‫بداية‬ ‫قبل‬ ‫أفعله‬ ‫الذي‬ ‫الشيء‬ .‫العديدة‬ ‫والكتب‬ ‫الكثيرة‬ ‫الدورات‬ ‫بين‬ ‫التشتت‬ ‫ذلك‬ ‫سيجنبك‬ ‫جودتها‬ ‫بحسب‬ ‫والدورات‬ ‫الكتب‬ ‫هذه‬ ‫ترتيب‬ ‫ثم‬ ‫ودورات‬ ‫كتب‬ ‫عدة‬ ‫من‬ ‫قائمة‬ ‫ترشيح‬ ‫هو‬ ‫جديد‬ ‫شيء‬ ‫تعلم‬ ‫التقريبي‬ ‫الوقت‬ ‫أحدد‬ .‫منها‬ ‫األول‬ ‫بالخيار‬ ‫وأبدأ‬ ‫والدورات‬ ‫الكتب‬ ‫أرقم‬ .‫وتعقيدها‬ ‫بساطتها‬ ‫ومدى‬ ‫يأخذه‬ ‫الذي‬ ‫الخاصة‬ ‫رزنامتي‬ ‫على‬ ‫البقية‬ ‫الخيارات‬ ‫وأجدول‬ ‫لدراسته‬ ‫خيار‬ ‫كل‬ . • ‫معلومات‬ ‫يضعون‬ ‫وقد‬ ‫غيرهم‬ ‫مساعدة‬ ‫يحاولون‬ ‫المبتدئين‬ ‫من‬ ‫فالكثير‬ ،‫بعلمه‬ ‫تثق‬ ‫ممن‬ ‫إال‬ ‫العلم‬ ‫تأخذ‬ ‫ال‬ ‫قصد‬ ‫دون‬ ‫مغلوطة‬ . • ‫رسمة‬ ‫كان‬ ‫لو‬ ‫حتى‬ ‫تتعلمه‬ ‫جديد‬ ‫أمر‬ ‫كل‬ ‫من‬ ‫شيء‬ ‫أي‬ ‫وأنشئ‬ ،‫مباشرة‬ ‫تعلمته‬ ‫ما‬ ‫طبق‬ ‫من‬ ‫شيفرة‬ ‫أو‬ ‫بسيطة‬ ‫العلم‬ ‫طلب‬ ‫في‬ ‫واالستمرار‬ ‫المزيد‬ ‫لتعلم‬ ‫تدفعك‬ ‫تعلمته‬ ‫مما‬ ‫شيء‬ ‫إنجاز‬ ‫فرحة‬ .‫فقط‬ ‫أسطر‬ ‫عدة‬ . • ‫إلتزام‬ ‫لديك‬ ‫أن‬ ‫أصدقائك‬ ‫أخبر‬ .‫بتنفيذها‬ ‫والتزم‬ ‫لسائره‬ ً‫ة‬‫خط‬ ‫أسبوع‬ ‫كل‬ ‫بداية‬ ‫حدد‬ ،‫وقلم‬ ‫بورقة‬ ‫وقتك‬ ‫نظم‬ ‫ت‬ ‫وال‬ ‫بالطبع‬ ‫لًلستراحة‬ ‫ا‬ً‫ت‬‫وق‬ ‫خصص‬ .‫إنجازها‬ ‫عليك‬ ‫مهمة‬ ‫وأمور‬ ،‫أسبوع‬ ‫كل‬ ‫نهاية‬ ‫في‬ .‫منها‬ ‫نصيبك‬ َ‫نس‬ ‫إلى‬ ‫النسبة‬ ‫تصل‬ ‫أن‬ ‫وحاول‬ ‫وضعها‬ ‫التي‬ ‫الخطة‬ ‫تطبيق‬ ‫ومدى‬ ‫حققته‬ ‫الذي‬ ‫اإلنجاز‬ ‫مدى‬ ‫وازن‬ 100 .% ‫اإلنتاجية‬ ‫ورفع‬ ‫الوقت‬ ‫تنظيم‬ ‫استراتيجيات‬ ‫ومتابعة‬ ‫بقراءة‬ ‫أنصحك‬ . • ‫المشكًلت‬ ‫حل‬ ‫على‬ ‫تمرس‬ ‫ب‬ ‫واشترك‬ ‫البرمجية‬ ‫المسابقات‬ ‫وتابع‬ ‫باستمرار‬ ‫نفسك‬ ‫وتحدى‬ ،‫استطعت‬ ‫إن‬ ‫ها‬ ‫مقالة‬ ‫بقراءة‬ ‫أنصحك‬ ‫البرمجة‬ ‫احتراف‬ ‫في‬ ‫وأهميتها‬ ‫المشكًلت‬ ‫حل‬ ‫المقالة‬ ‫هذه‬ ‫بعد‬ . • ‫مشروع‬ ‫على‬ ‫العمل‬ ‫تكمل‬ ‫أو‬ ‫ًا‬‫ب‬‫كتا‬ ‫فيها‬ ‫تنهي‬ ‫مرة‬ ‫كل‬ ‫في‬ ‫نفسك‬ ‫تكافئ‬ ‫أن‬ َ‫تنس‬ ‫ال‬ . • ‫بعيد‬ ‫النهاية‬ ‫ولكن‬ ‫بداية‬ ‫له‬ ‫يكون‬ ‫قد‬ ‫البرمجة‬ ‫طريق‬ ‫ألن‬ ،‫االستراحة‬ ‫من‬ ‫حظك‬ َ‫تنس‬ ‫ال‬ ‫ومتعبة‬ ‫ة‬ - ‫أي‬ ‫مثل‬ ‫مثله‬ ‫آخر‬ ‫مجال‬ . - ‫غيرك‬ ‫لعل‬ ،‫البرمجة‬ ‫تعلم‬ ‫في‬ ‫تجربتك‬ ‫تشاركنا‬ ‫أن‬ ‫منك‬ ‫وأرجو‬ .‫البرمجي‬ ‫مشوارك‬ ‫في‬ ‫التوفيق‬ ‫كل‬ ‫لك‬ ‫أرجو‬ ‫النهاية‬ ‫في‬ ‫منها‬ ‫يستفيد‬ .