عندما ندخل مجالاً جديداً لنتعلمه علينا أن ننظم عملية تعلمنا ونبني خلالها عادات تساعدنا أن نتعلم بطريقة أكثر فعالية توصلنا لاكتساب مهارات أعلى وقدرات أكبر، و لكي نبدأ التعلم يجب علينا أن نفهم الطريقة التي تبنى عليها عملية التعلم بحد ذاتها و أن نُلم بالفكرة الأساسية للطريقة التي نتعلم بها الأشياء ببراعة.
كمبتدئ في عالم البرمجة، يجب عليك أن تبني عادات أثناء عملية تعلمك، تساعدك حتى تتمكن من أن تصبح مبرمجاً محترفاً. بحكم عملي في تدريس البرمجة سأقدم لكم خلاصة ما توصلت إليه من عادت تساعدك لتكون على مستوى عالي من التمكن والاحترافية بإذن الله.
خطط لما ستفعله
عند بداية العمل على أي مشروع برمجي في الغالب يبدأ المبرمج على الفور بكتابة الكود لأن هذا ما يجيده، ولا يعطي المرحلة الأولى التي تشمل التحليل والتخطيط حقها من الوقت، من المهم أن تكون قد فهمت الصورة الكبيرة لما هو مطلوب منك تنفيذه، وتحققت من مدخلاتك ومخرجاتك، وخططت جيدا لكيفية قيامك بالمهمة المطلوبة.العملية تبدأ بفهمك للمطلوب منك فهماً جيداً.
فبطبيعة الحال إذا لم تفهم المطلوب لن تتمكن من إنجازه !.
في مرحلة البداية قد تبدأ برسم مخطط لسير عملياتك flow chart أو تقوم بكتابة ما يعرف بالكود المزيف pseudocode، يستهين الكثير بهذه الخطوة ويرون أنهم تجاوزوها ولم يعودوا بحاجة لها بينما في حقيقة الأمر تعد خطوة رئيسية ومفصلية لأنك بكتابة أفكارك أو رسمها ستتضح الصورة بالنسبة لك وتترتب أفكارك وتعرف خطوات التنفيذ المطلوبة منك وتسلسلها وتدرك جميع احتياجاتك. لأن عدم وضوح الصورة سيؤدي بك إلى الكثير من التعديل وإعادة الكتابة للأكواد مما يؤدي إلى ضياع الوقت.
اكتب أكواد أنيقة !
أناقة الكود أو ما يعرف بـنظافة الكود تتعلق بالكثير من الأمور منها على سبيل المثال الاهتمام بقابلية القراءة ويتم ذلك عن طريق مايلي:
- الاهتمام بترتيب كتابتك، وذلك بمراعاة المسافات البادئة و وضع الأسطر الفارغة الإضافية بين أجزاء الكود البرمجي مما يساعد على وضوح الكود ويعطي راحة للعين أثناء قراءة الكود وتتبعه.
- استخدام أسماء متغيرات لها معنى تسهل تتبع الكود ومعرفة استخدامات المتغير.
- تقسيم الكود لأجزاء باستخدام الدوال functions أو المصنفات Classes، حسب حاجتك البرمجية و توزيع الكود على عدة ملفات لتسهيل تتبع الأوامر عند الحاجة لتعديلها أو الحاجة لتصحيح الأخطاء.
- اهتم بكتابة التعليقات البرمجية comments حتى تسهل على نفسك مهمة الرجوع لأكواد سابقة أو على من يستخدم الكود أو يقرأه للمرة الأولى معرفة ما يقوم به كل جزء بدون الحاجة إلى تتبع الأكواد سطراً سطراً حتى يستنتج ماذا يفعل الكود.
لا تجهد نفسك بالاختراع !
الكثير من التعليمات البرمجية موجودة مسبقاً وتم كتابتها من قِبَل مبرمجين آخرين، حاول دائما الاستفادة من هذه الميزة. أبحث أولاً عن دالة موجودة في لغة البرمجة التي تستخدمها built in function قد تساعدك، إن لم تجد ابحث عن مكتبات برمجية يتوفر فيها ما تحتاج إليه. فوجود تعليمات برمجية تم كتابتها واختبار صحتها وفعاليتها يسهل عليك الكثير ويختصر عليك الوقت والجهد لذلك اجعل محرك البحث صديقك الصدوق قبل البدء بكتابة أي كود لأنه لن يخفي عنك أي إجابة تحتاجها.
قم بعمل إصدارات متعددة من عملك
واحدة من أهم المشاكل التي تواجه المبرمج السيناريو التالي: كود يعمل بطريقة جميلة ومتناسقة، يقوم بإضافة تعديلات بسيطة أو وظيفة إضافية، فينهار المشروع بشكل كامل ويتوقف عن العمل حتى الأجزاء التي كانت تعمل بشكل جيد بالسابق.
متأكدة أن الجميع قد مر بهذا الموقف و وجد صعوبة في استعادة الكود السابق، لذلك من المهم أن تقوم بعمل نسخة من مشروعك بعد كل نقطة صحيحة وناجحة قمت بها، حتى يسهل عليك العودة لها. تماماً مثل نقاط الاستعادة في نظام الويندوز
تأكد من جودة عملك طوال الوقت
أشاهد الكثير من متعلمي البرمجة يقومون بكتابة الكود بشكل كامل ومن ثم يقومون بمحاولة اختباره والتأكد من عمله. في اعتقادي أن هذا خطأ كبير يقع فيه المبرمج، لأنه في هذه الحالة سيضطر إلى البحث عن الخطأ في أسطر متعددة من برنامجه بالإضافة إلى أن الأخطاء متراكمة، فقد يقود خطأ في البداية إلى عدة أخطاء في النهاية بالرغم من أن الأكواد تمت كتابتها بشكل سليم. عليك أن تكون متأكداً دائماً من كل خطوة تقوم بها بداية بأخطاء بناء الجملة syntax error وصولاً للأخطاء المنطقية logical error.
كذلك يجب عليك أن تهتم ببناء اختبارات لأداء الكود البرمجي في حالة الاستخدام الصحيح وكذلك الاستخدام الخاطيء. يركز الكثير على أن يصمم اختبارً لكي تنجح أوامره البرمجية بالقيام به ويغفل عن تصميم اختبارات الحالات الخاطئة والأخطاء التي قد يقع فيها مستخدمو برنامجه، فتجد المستخدم يواجه الكثير من الصعوبات والأخطاء التي تظهر له جراء عدم القيام بالاختبارات المطلوبة. كمبرمج محترف يجب عليك استباق الأحداث والتفكير دائما بالأخطاء التي قد يقع فيها المستخدم وتؤثر على أداء مشروعك وتعالجها بشكل سليم يضمن جودة أداء برنامجك.