أسرار برمجية لابد أن تعرفها

Greeting

أسرار برمجية لابد أن تعرفها


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


السر الأول: لغة من كل فن، خير من فن من كل لغة

ليس مهما عدد اللغات التي تتقنها، فاللغات في آخر المطاف تبقى مجرد وسائل لإنتاج البرامج، فمهما حاولت أن تستكثر اللغات فإن ذلك لن ينفعك بشيء بل سيضيع عليك وقتك لتكرر نفس العمل على أكثر من لغة وأنت بين هذه القفزات والقفشات واهم، تتخيل أنك حزت مقاليد البرمجة والحقيقة المرة أنك لم تحز من البرمجة إلا جزء يسيرا قمت بتغيير حلته من لغة إلى لغة.
ما قيمة أن تتقن أساسيات البرمجة بأكثر من لغة؟ ما معنى أن تطبع جملة "أهلا بالعالم" على جافا، باسكال، كوبول، دلفي...؟ لماذا هذا التباهي إلى حد التماهي؟
شوف، بدل أن تعيد صناعة العجلة، انتقل إلى نمط جديد من البرمجة فذلك أنفع لك، الوقت الذي ستقضيه في تعلم أساسيات لغة سي شارب وأنت متمكن من أساسيات لغة جافا يمكنك قضاؤه في إتقان مكتبة SWING أو AWT أو غيرها.
الوقت الذي ستضيعه في برمجة الواجهات بلغة دلفي وأنت متمكن منها في لغة الفيجوال بسيك، يمكنك قضاؤه في احتراف برمجة الويب بتقنية ASP.Net.
يمكنك تعلم لغة جديدة فقط حينما تعجز لغتك الأم عن تقديم النمط المنشود، هاجر إلى لغة جافا مثلا حينما تعجز لغتك عن إنتاج تطبيقات الموبايل، وهاجر إلى لغة سي شارب مثلا حينما تعجز لغتك عن إنتاج مشاريع الويب.
وتذكر جيدا: نفس اللغة البرمجية من كل فن، خير من نفس الفن من كل لغة !

السر الثاني: استسهل الصعاب، تبلغ الرغاب

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

السر الثالث: نظم عملك، تحقق أملك

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

السر الرابع: اضبط نومك، تربح يومك

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

السر الخامس: دَوِّنْ كل جديد، تصنع ذاكرة من حديد

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

السر السادس: التنظير بلا تطبيق، مجرد "تْخَرْبِيق"

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

بقلم : خالد السعداني

share

1 التعليقات:

إضغط هنا لـ التعليقات
Unknown
المدير
30 يوليو 2016 في 11:43 ص ×

السلام عليكم
كلام جميل جدا و هو تلخيص لما مررت به من تخبطات في عالم اابرمجة قرأت المقال كامل اضاف لي الجديد و نظم ماعندي من قديم بارك الله فيك

رد
avatar
شكرا لك ولمرورك