البرمجة

في هذا الجزء من الكتاب، ستعمل على تحسين مهاراتك البرمجية. تُعد البرمجة مهارة متداخلة وشاملة لكل مجالات علم البيانات: يجب عليك استخدام الحاسوب لإنجاز علم البيانات؛ إذ لا يمكنك القيام بذلك في ذهنك، أو باستخدام الورقة والقلم.

نموذجنا لعملية علم البيانات مع تسليط الضوء باللون الأزرق على البرمجة (الاستيراد، والتنظيف، والتحويل، والتصور، والنمذجة، والتواصل، أي كل شيء).
الشكل 1: البرمجة هي الماء الذي تسبح فيه جميع المكونات الأخرى.

تُنتِج البرمجة الأكواد البرمجية، والكود هو أداة للتواصل. من الواضح أن الكود يخبر الحاسوب بما تريد منه أن يفعله، ولكنه ينقل المعنى أيضاً إلى البشر الآخرين. التفكير في الكود كوسيلة للتواصل أمر بالغ الأهمية لأن كل مشروع تقوم به هو مشروع تعاوني في جوهره؛ فحتى لو لم تكن تعمل مع أشخاص آخرين، فستعمل حتماً مع “ذاتك في المستقبل”! كتابة كود واضح أمر مهم حتى يتسنى للآخرين (مثل “ذاتك المستقبليّة”) فهم السبب الذي جعلك تعالج التحليل بالطريقة التي اخترتها. وهذا يعني أن تحسين مهاراتك في البرمجة يتضمن أيضاً تحسين مهاراتك في التواصل. ومع مرور الوقت، سترغب في أن يصبح كودك ليس فقط أسهل في الكتابة، بل أسهل على الآخرين في القراءة أيضاً.

في الفصول الثلاثة التالية، ستتعلم مهارات للارتقاء بمهاراتك البرمجية:

  1. النسخ واللصق أداة قوية، لكن عليك تجنب استخدامها أكثر من مرتين. تكرار نفسك في الكود أمر خطير لأنه قد يؤدي بسهولة إلى الأخطاء والتضارب. بدلاً من ذلك، ستتعلم في 25  الدوال كيفية كتابة الدوال (functions) التي تتيح لك استخراج أكواد tidyverse المكررة لسهولة إعادة استخدامها.

  2. تقتطع الدوال الأكواد المكررة، ولكنك غالباً ما تحتاج إلى تكرار الإجراءات نفسها على مدخلات مختلفة. أنت بحاجة إلى أدوات التكرار (iteration) التي تتيح لك القيام بأشياء متشابهة مراراً وتكراراً. تتضمن هذه الأدوات حلقات التكرار (for loops) والبرمجة الوظيفية (functional programming)، والتي ستتعلم عنها في 26  التكرار (Iteration).

  3. كلما قرأت المزيد من الأكواد التي كتبها الآخرون، ستشاهد المزيد من الأكواد التي لا تستخدم حزم tidyverse. في 27  دليل ميداني لـ base R، ستتعلم بعضاً من أهم دوال R الأساسية (base R) التي ستصادفها في واقع العمل.

الهدف من هذه الفصول هو تعليمك الحد الأدنى عن البرمجة الذي تحتاجه لعلم البيانات. وبمجرد إتقانك للمادة المعروضة هنا، نوصي بشدة بمواصلة الاستثمار في مهاراتك البرمجية. لقد قمنا بكتابة كتابين قد تجدهما مفيدين: كتاب Hands on Programming with R للكاتب جاريت جروليموند (Garrett Grolemund)، وهو مقدمة للغة R كـلغة برمجة، ويعتبر مكاناً رائعاً للبدء إذا كانت R هي لغتك البرمجية الأولى. وكتاب Advanced R للكاتب هادلي ويكهام (Hadley Wickham)، وهو يتعمق في تفاصيل لغة البرمجة R؛ ويُعد خطوة ممتازة للبدء إذا كانت لديك خبرة برمجية سابقة، وخطوة تالية رائعة بمجرد استيعابك للأفكار الواردة في هذه الفصول.