fbpx

بدأت في تعلم البرمجة هذا العام .. وهذا ما تعلمته!

تعلم البرمجة

كنت من الأشخاص الذين يشعرون بأن كتابة بضعة أسطر من الأكواد البرمجية أمر معقد للغاية ويحتاج لسنوات طويلة من التعلم والممارسة، وبرغم ادراكي لأهمية تعلم ولو لغة واحدة على الأقل كصحفي بيانات يتعامل مع كم كبير من البيانات إلا أني لم أقدم على هذه الخطوة حتى أصبحت مواجهتي مع لغات البرمجة إلزامية بحكم دراستي لماجستير علم البيانات في جامعة القاهرة، هنا أنكسر الحاجز وبدأت كتابة السطر الأولى”Hello World”.

البرمجة مجرد أداة

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

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

تعلم الرياضيات متطلبًا أساسي لتعلم البرمجة

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

اجادة القراءة ستقودك إلى اجادة الكتابة

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

كلما كتبت كلما أخطت، بينما كلما قرأت قلت أخطائك. قد تقضي ساعات في كتابة كود برمجي وعند لحظة تنفيذ الكود قد تجد أنك أخطأت في الكتابة، والحل هنا ليس بكتابة الكود من جديد بل بقراءته جيدًا مرة آخرى لأنك على الأرجح قد ارتكبت خطأ في كتابة أسماء أحد الأوامر البرمجية.

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

ابدأ بتعلم لغة واحدة، فالاختلافات بسيطة جدًا

من الأسئلة الأكثر شيوعًا التي نسمعها هو، “ما لغة البرمجة التي يجب أن أتعلمها أولاً؟”. اقترح عليك ألا تقف طويلًا في منطقة الحيرة، تفكر في اي لغة برمجية عليك أن تختار لتبدأ في تعلمها، ومع وجود أكثر من 600 لغة يمكن الاختيار من بينها، قد يكون من الصعب العثور على اللغة التي تناسب احتياجاتك.

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

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

الاعتماد على بيئة عمل واحدة يفي بالغرض

في البداية كنت مشتت بين العديد من الاختيارات للحصول على أفضل بيئة عمل لتثبيتها على حاسوبي والانطلاق منها في كتابة الأكواد بشكل مستمر، ووجدت أن ابسطهم هو أفضلهم، فمثلا عند كتابة بايثون استخدم Google Colab وهو اشبه بباقي خدمات جوجل المربوطة بالسحابة الافتراضية، فلا حاجة لتنصيب برنامج محدد أو حزمة من البرامج الداعمة، كل ما هنالك أني بحاجة للاتصال بشبكة الانترنت.

كذلك عندما بدأت في تعلم لغة R اعتمدت فقط على محرر RStudio، حيث أنه مقسم بشكل منظم لأربع اقسام تمكنني من التحكم في القيادة وأنا أكتب الكود، أستطيع رؤية المتغيرات بوضوح في الجانب الأيمن وكذلك الرسم البيانية في مساحة العرض الخاصة بها مع التنقل بمرونة لقسم المساعدة وغيرها من التبويبات الموجودة بأعلى كل ركن من أركن واجهة البرنامج.

لم اندفع نحو بيئات العمل التي تحتوي على خصائص تصحيح الكود تلقائيًا أو تلك التي تُكمل ما بدأته من كتابه، لأني أؤمن بأن الاعتماد التام على الآلة يضعف من ذكاء البشر، تخيل أنك بدأت دروس الرياضة في مرحلة التعليم الأساسي بالاعتماد التام على الآلة الحاسبة بدلًا من العد على اليدين.

اتقان الاختصارات يزيد من الثقة في النفس

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

ولأننا نعتمد على Sheets Cheat لتذكر الاختصارات دائمًا، صنعت ملخصاتي بنفسي، وضعت فيها اختصارات الأوامر التي استخدمها باستمرار مثل تحويل سطر معين إلى تعليق أو تنظيف المساحة المخزنة في بيئة العمل من البيانات إلى أن اتقنتها بسهولة.

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

مقالات ذات صلة

التعليقات