البرمجة

نحو علم البيانات

سواء كنت ترغب في كشف أسرار الكون ، أو كنت ترغب في ممارسة مهنة في القرن الحادي والعشرين ، البرمجة أساسية في التعلم.”


ستيفن هوكينغ

يقول بيل غيتس: “ تعلم البرمجة يوسع مدارك العقل، ويساعد على التفكير بشكل أفضل ، ويخلق طريقة مختلفة للتفكير. البرمجة مهارة مفيدة في جميع المجالات.” ويقول ستيفن هوكينغ: “سواء كنت ترغب في كشف أسرار الكون ، أو كنت ترغب فقط في ممارسة مهنة في القرن الحادي والعشرين ، البرمجة أمر أساسي في التعلم.”


لعل أحد أهم ما يجمع عليه الكثير من الشخصيات المعتبرة هو أن تعلم البرمجة ولو بشكل بسيط مفيد ومطلوب في كثير من المجالات حتى و لو لم تكن تخطط لتصبح عالم بيانات. (للمزيد)


لغات البرمجة


هناك العديد من لغات البرمجة ولكل واحدة منها استخداماتها. غرضنا هنا ليس الحديث عن لغات البرمجة بقدر ما هو استعراض للغات الأكثر مناسبة في مجال علم البيانات. تعتبر لغة بايثون (Python) ولغة (R) اللغتان الأشهر في هذا المجال وكذلك الأسهل تعلماً. لكل لغة ما يميزها عن الأخرى ولكل واحدة منهما مريديها. تشتركان في توافر مجتمع (community) خاص بهما يقدم الدعم والشروحات وحل المشاكل الطارئة. جدير بعالم البيانات المتمرس أن يتقن واحدة منهما على الأقل ويكون لديه مهارات متطورة بالأخرى.


المبتدئين


تعلم لغتين في نفس الوقت أمر صعب ولا ينصح به إطلاقاً وفائدته أقل من ضرره. الشعور بالملل والإحباط والتوقف بعد فترة قصيرة عن التعلم وتشكل المواقف السلبية عن البرمجة هو غالباً ما يصيب المخفقين في تعلم لغتين في آن واحد . إذا كنت في حيرة حيال أي اللغتين أنسب لك، لعلك أن تجد في الإيضاح التالي ما يسهل لك اتخاذ القرار وتبيان أيهما أكثر تلبيةً لحاجتك بحيث تركز جهودك في سبيل تعلمها وتطوير مهاراتك فيها.


R

إذا كنت باحثاً أكاديمياً أو مهتماً بالإحصاء وتحليل البيانات الإحصائية مثل دراسة الظواهر في العينات (samples) والمجتمعات (populations) واختبار الفرضيات (hypothesis) فالأفضل أن تبدأ بتعلم لغة R. يُفضِل المختصين في علم النفس وعلم الاجتماع على سبيل المثال هذه اللغة.


Python

بالنسبة لطلاب علوم الحاسب الآلي أو غيرهم من الراغبين في تعلم البرمجة وربما مستقبلاً تطوير مهاراتهم في الذكاء الإصطناعي، تعلم الآلة، رؤية الكمبيوتر (computer vision) وتحليل البيانات الضخمة وبناء النماذج الخاصة بالتوقعات وتقديم التوصيات، فبدون تردد بايثون هي ما تبحث عنه.


أيضاً قد يساعدك في الاختيار بين اللغتين البحث وسؤال المختصين في المجال الذي تعمل به فربما هناك لغة مفضلة في مجالك.


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

تعلم البرمجة يوسع مدارك العقل، ويساعد على التفكير بشكل أفضل ، ويخلق طريقة مختلفة للتفكير. البرمجة مهارة مفيدة في جميع المجالات

بيل غيتس

تعلم الأساسيات وإحذر القفز


إذا لم يكن لديك خبرة جيدة ومتقدمة في البرمجة وفي أحد اللغتين على وجه الخصوص، فقبل أن تفكر بالإبحار والغوص في خوارزميات الذكاء الاصطناعي وتطبيقات تعلم الآلة وتعقيدات البيانات الضخمة، أرجوك إحرص أن تقضي وقتاً كافياً في تعلم أساسيات البرمجة أكواد اللغة. هناك مصادر جيدة ومجانية لتعلم R و بايثون (سأضع روابط في الأسفل). احرص على تطبيق وممارسة أكبر قدر ممكن من التمارين. يساعدك ذلك في بناء أساس قوي ومتين في البرمجة.

استخدم Anaconda


أناكوندا هي توزيع مجاني ومفتوح المصدر للغات البرمجة بايثون و R يهدف إلى تبسيط إدارة الحزم (packages) ونشرها. يفضل المهتمون بعلم البيانات استخدامها لما تتميز به من وجود مكتبات وحزم مخصصة لتحليل البيانات يمكن استدعائها واستخدامها مباشرة. بالنسبة لمن يتعلمون لغة بايثون، يأتي من ضمن هذه التوزيعة جوبيتار (Jupyter) وهو عبارة عن بيئة تتيح البرمجة بشكل تفاعلي من خلال متصفح الإنترنت. تُسهل (Jupyter Notebook) عملية توثيق الكود (code) واختباره ومشاركته مع الآخرين بشكل سلس. للمهتمين بتعلم R، ستجد RStudio كأحد الخيارات المتاحة في أناكوندا. باستطاعتك أيضاً تنصيبه مباشرة وبدون أناكوندا من خلال هذا الرابط.

تعرف على حزم تحليل البيانات


تشتهر لغة بايثون بتوفر عدد كبير من الحزم الخاصة بتحليل البيانات وتصويرها وعرضها (visualization) وربما هذا أحد أسباب تفضيلها من قبل العديد من علماء البيانات. من أهم هذه الحزم NumPy ، و Pandas ، و SciPy ، و scikit-learn ، و Matplotlib. يمكنك التعرف عليها وممارستها من خلال المصادر المفتوحة على الإنترنت أو عن طريق الكتب مثل هذا الكتاب والذي استفدت منه الكثير: علم البيانات من الصفر (Data Science from Scratch).

بالنسبة للمهتمين بتعلم R للقيام بتحليلات إحصائية وعرض البيانات وتصويرها، تتمتع هذه اللغة بعدد كبير من المكتبات المخصصة لهذا الغرض والتي في الغالب تكون متوفرة بدون الحاجة لتنصيبها. من أشهر المكتبات التي يستخدمها علماء البيانات dplyr ، ggplot2، Shiny وغيرها هنا..

أطلب المساعدة واستفد من الموارد المتاحة


العديد من المشاكل والتحديات التي تواجه المبرمجين قد لاتكون جديدة بطبيعتها وربما هناك من قام بوضع الحل لتجاوز ذلك التحدي. الاستفادة من التجمعات المتخصصة (community) هي أحد مهارات الوصول للمعلومة وحل المشاكل. لدينا في مجال البرمجة عدة منصات تستطيع طرح فيها المشكلة التي تواجهك و البحث عن حل من خلالها مثل stackoverflow. لاتُعد اختراع العجلة، بإمكانك استعراض برامج طورها الآخرون قد تجد فيها ما يمكن الأستفادة منه أو تضمينه كجزء من البرنامج الذي تقوم بكتابته، من هذه المنصات github. أيضاً (Kaggle) غنية بما يحتاجه المهتم في علم البيانات.

التحق بكورس لتعليم البرمجة


هنا أستعرض بعض المصادر التي قد تكون جيدة للبدء بتعلم البرمجة وكذلك بعضها خاص بتعليم مهارات علم البيانات. ليست بالضرورة الأفضل ربما تجد ما هو أكثر نفعاً منها. لكنها مناسبة للانطلاق، المهم أن تبدأ، وتبدأ اليوم.


بايثون:


R:

ابق على تواصل


تابع واحضر وشارك تجاربك في المناسبات التي تتعلق بالبرمجة وكذلك علم البيانات. احرص على الاشتراك في المجموعات البريدية المتخصصة حتى يصلك الجديد ولتبقى مطلعاً على التطورات في هذا المجال. 

مما يعمق الفهم، مشاركة المعرفة من خلال كتابة المدونات ومناقشة المستجدات أو مواضيع الاهتمام مع مجموعات المختصين مثل:

أخلاقيات مهنية


لكل مهنة أخلاقياتها،هناك عدد من التحديات الأخلاقية التي ستواجها من خلال البرمجة وبواسطة تحليل البيانات.

  • الخصوصية: ستتاح لك الفرصة للإطلاع على بيانات أفراد ومجموعات خاصة، أحرص على أن لاتعبث بها وأن يكون استخدامك لها وفق ماتمليه الأنظمة واللوائح ومتطلبات العمل.

  • الشفافية: تذكر بأن تعكس نتائج تحليل البيانات كما هي وأبتعد عن التغيير في البيانات لإثبات أمر أو نفيه، كمن يحلل مبيعات الشركة ويزور الأرقام ليثبت ربحيتها.

  • جودة البيانات: عند تدريب خوارزميات تعلم الآلة، أحرص أن تكون الخوارزمية قليلة الأخطاء والبيانات المستخدمة للتدريب جيدة و ممثلة لجميع الشرائح وخالية من الأخطاء (قدر المستطاع) وتذكر أن الآلة سوف تتخذ القرارات بالنيابة عن الإنسان وقراراتها الغير عادلة قد تضر بحياة الآخرين.


ختاماً، باتباعك لهذه الخطوات سيكون بإذن الله لديك أساس متين في مهارات البرمجة ومعرفة جيدة بأدوات تحليل البيانات. عليك أن تتذكر بأن تعلم البرمجة ليس أمراً سهلاً ويحتاج الصبر والممارسة حتى تستطيع الوصول لمبتغاك.


Join