عندما يتعلق الأمر بالبرمجة… الحل يكمن فيما تراه إضاعةً للوقت!

معلومات عامة  -  بواسطة:   اخر تحديث:  2020/10/24
عندما يتعلق الأمر بالبرمجة… الحل يكمن فيما تراه إضاعةً للوقت!

القاعدةُ الأولى التي يجب عليك اتّباعها عند البدء بتعلُّم البرمجة قبل أن تتعلّم أي لغة، أو مبدأ آخر هي أن تتحلى بالكثير من الصبر، فعندما تسأل مبرمجًا محترفًا كيف وصل إلى ما هو عليه بالتأكيد سيخبرك بطول البال، والكثير من التدريب!


لكننا في معظم الأحيان نغض البصر عن القواعد الأساسية، وبعضنا يبلغ درجة من الغرور تجعله يظن أنَّه يعرف حلول كلّ المشاكل البرمجية، لكن في البرمجة لا يوجد شيء اسمه “يعرف كلّ شيء!”، فكل يوم يوجد تحديث، وكلّ يوم يوجد خوارزمية جديدة، وكلّ يوم تحدٍ جديد أمامك عزيزي المبرمج، ولن يساعدك في تخطيها سوى القواعد البرمجية الأصيلة التي لا بدَّ أن تعود نفسك عليها!


القواعدُ الأساسيةُ ليست مضيعةً للوقت


مهما كانت اللغةُ التي تتعلمها، فبالتأكيد مرَّ أو سيمرُّ عليك مصطلح الكود المزيف أو Pseudocode، وهو باختصار طريقةٌ أو أُسلوبٌ غير رسمي لوصف البرنامج، ومن دون أن أدخل في مصطلحات معقدة… الكود المزيف هو مسودةٌ تصنعها لمسألتك أو برنامجك، تصف ما يحويه وما يقوم به بطريقة مبسطة للغاية؛ لتساعدك على فهم متطلبات البرنامج.


عندما تصبح في مرحلة متقدمة من التعلّم أو ممارسة البرمجة، فستبتعد شيئًا فشيئًا عن القواعد التي من المفترض أن تكون تعلمتها لتلتصق بدماغك كي تسهل عليك عملك! وستعتبرها مضيعةً للوقت حتى، وعند وضع أيّ مسألة أمامك، إن واجهك أمرٌ تعجز عنه سوف تتجه نحو جوجل وتباشر في البحث عن الحل… أجل هذا عملي لا أنكر، لكن لا بأس بالقليل من الاعتماد على النفس!


في الحقيقة كنت أواجه الكثير من الصعوبات في قراءة وفهم البرامج التي يطلب الحصول على خرجها، وهذه المشكلة وصلت لدرجة من السخف جعلتني أشعر باليأس لحدٍّ ما لكي أبتعد فترةً عن البرمجة بكلّ أنواعها!! لكن بالعودة والتفكير في أصل المشكلة فهو عدم الصبر، والظن أنَّه من الممكن أن أعرف ما يريد البرنامج من مجرد النظر… كنت أظن وخاب ظني


الاعتمادية تشكّل مشكلةً كبيرةً مهما كان ما ترغب في تعلمه، معرفة أنَّ الحلّ في متناول اليد يجعلك تضع دماغك على وضع موفّر الطاقة… بالله عليكم الحل على بعد نقرة، أليس كذلك؟


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


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


كما قلت الحل على بعد نقرة واحدة، لكن عندما تلجأ لجوجل في كلّ مرة فأنت هنا تضر نفسك أكثر! من الجيد أن تنجز المهمة المطلوبة منك، لكن الأهم أن تتعلّم… أن تتعلّم التفكير كمبرمج، وأن تكون لديك فكرة عن الحل عندما تواجهك مشكلة مشابهة مستقبلًا!


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


اختبر نتائجك!


في كلّ مرة تصل فيها لحل اختبر الكود البرمجي، وهنا يمكنك أن تلجأ لأدوات المطورين الموجودة في المتصفحات مثل: كروم أو فايرفوكس.


عبر أداة Console.log على سبيل المثال يمكنك اختبار كلّ مرحلة، تعرّف على كلّ خطأ أو استثناء، وحاول أن تحلّ المشكلة بنفسك، ولا تنسَ تدوين الحلول جانبًا.


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


انتهيت من التكويد، عد مرة أخرى، وحاول تحسين عملك!


لا تنتهي المهمة بانتهاء كتابة آخر سطر من الكود خالٍ من الأخطاء… حسنًا لقد أنهيت المهمة شكرًا لك، لكن هل أنت واثق أنَّ المقاربة التي اتبعتها هي الأفضل؟ هل توجد خوارزمية أُخرى يمكن أن تجعل أداء برنامجي أفضل؟


حتى لو لم ترغب في إجراء تعديل حقيقي فلا ضير في التفكير… اخلق مشكلةً لكلّ حل! لست أمزح، وحاول أن تفكر أبعد بخطوتين من برنامجك، هل عالجت جميع الاحتمالات التي يمكن أن تظهر في البرنامج؟ الأكواد مخادعة، وقادرة على أن تفاجئك حتى لو ظننت أنَّك قد انتهيت!


كن مرحًا…


لن تجري كلّ الأمور دومًا كما رسمتها في مخيلتك، ستواجهك العديد من العقبات التي ستجعل المهمة تبدو مستحيلةً… فعدد الاستثناءات والأخطاء التي وجدتها أثناء الامتحان لن تمحى من ذاكرتي!


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


وعندما لا يطاوعك الكود… قل له وداعًا، وابدأ من جديد! لكن هذه المرة بتروي وحذر


لا تجعل المهمة تبدو مستحيلةً في دماغك، نحن نتجاهل القواعد الأساسية التي نتعلمها بحجة تضييع الوقت لكن في النهاية… هذه القواعد موجودة لسبب وجيه، وهي أبعد ما يمكن عن إضاعة وقتك!