البرمجة .. عالم فريد من نوعه ، لا أتكلم لك هنا عن مهارات الويب و السيو و الربح من الأنترنت و ما الى ذلك ، فأنا حقا اؤمن تماما ان تلك المهارات يمكن لأي شخص ان يكتسبها ، كذا البرمجة ، لكن البرمجة تتطلب أشخاصا محنكين في مجال الحاسوب هذا ، ربما تخبر يوما مبرمجا انه لديك مشكل في القرص الصلب او الرام ، فيجيبك ببساطة " لا أدري ما المشكلة ! " فتنتقده و تنظر إليه نظرة إحتقار ، لا عيب في ذلك صديقي ، فنحن مبرمجون و لسنا مصلحي حواسيب ، نحن نصلح البرامج و المواقع .. حدثتك في وقت سابق على موقعنا عن أشياء تجعل من المبرمج أفضل صديق لك ، و أخبرتك عن شخصية المبرمج و نفسيته وما الى ذلك ، لكن قد تفكر يوما في إمتهان او الدخول الى عالم البرمجة لتكون انت ذلك الصديق ، لا مشكلة في هذا ، دعني إذن أشرح لك في هذا الموضوع بعض المشاكل و الصعوبات التي ستواجهها اثناء إمتهانك لمهنة البرمجة ، فإن كنت مبرمجا جديدا ، فمن شأن هذه الصعوبات و المشاكل ان تحفزك أكثر لتتعلم و تجتهد في هذا المجال ، و إن كنت مبرمجا من قبل ، فأعتقد انك ستضحك طيلة قرائتك لهذا الموضوع ، لأنني سأحكي عن مشاكل واجهناها جميعا .. لنبدأ :
- البرمجة امر صعب :
لا أحد يخبرك بهذه الحقيقة ، الكل يخبرك بأن البرمجة سهلة ما هي إلا حفظ أكواد عن ظهر قلب و إعادة إستدعاءها من أجل الإشتغال بها ، نعم ربما يمكننا ان نقول ذلك إذا ما تحدثنا عن الHTML ، إن كانت هي أصلا لغة برمجة من أساسه ، فكل من يريد ان يبدأ عالم البرمجة يبدأ بالHTML فيتعلم كيف يكتب كودا فالBody فيلقب نفسه بالمبرمج المحترف ، لا ألومه رغم ذلك ، عالم البرمجة صعب ، فالحاسوب لا يستقبل سوى رقمين 0 و 1 ، إما ان يفعل ، و إما ان لا يفعل ، فأن توصل له فكرة ان يفعل شيئ ما من خلال سيرورة من الأكواد لهو أمر جد صعب ، قد لا تجد هذه الصعوبة اثناء برمجتك لعبارة Hello World ، و ربما قد لا تجد هذه الصعوبة أيضا اثناء برمجتك لآلة حاسبة بسيطة تشتغل على الكونسول ، لكن صدقني ، ستجد هذه الصعوبة حتما عند برمجتك لبرنامج متكامل بكل حذافره ، او برمجتك لتطبيق كامل أيضا ، او موقع من الألف الى الياء . لذلك ، إن كنت مبرمجا جديدا في هذا المجال ، فعليك ان تدرك ان البرمجة تتطلب الذكاء قبل الحفظ ، اما ان كنت مبرمجا سابقا ، فأجزم انك واجهت العديد من الصعوبات أثناء صناعتك لبرنامج مصغر .
- الBUGS :
من المشاكل الكثيرة و المتعددة التي ستواجهك أثناء مسيرتك في عالم البرمجة ، قلما نجد مبرمجا يكتب كودا مطولا ثم يقوم بتشغيله فيشتغل في الوهلة الأولى ، في الحقيقة ، نادرا ما نجد هذا الأمر ، فحتى المبرمجون المحترفون و المحنكون يحدث لهم ما يحدث لك ، المشكلة ليست في ان يظهر لك المشكل او الBug ، المشكل صديقي هو انك تكتب سطرين من الاكواد البرمجية ، و يظهر لك 5 أخطاء في الكود الخاص بك هههه ، المشكل الأخر أيضا صديقي المبرمج ، انك ستقضي 15 دقيقة في كتابة الأكواد ، و 5 ساعات في حل المشاكل ، بل العجيب و الغريب في الأمر صديقي ، قد تجد في الأخير ان سبب المشكل ما هو الا انك نسيت ان تقفل كود برمجي (;) ، بل حتى انه يمكنك فقط ان تقفل البرنامج و تذهب لتشرب كوبا من القهوة و تعيد تشغيل البرنامج و قد يشتغل معك ، مشاكل معقدة ، في الغالب انت لا تدري ماهية المشكل و ما سببه ، انت فقط تخمن هنا و هناك و تلقي بالأكواد ميمنة و ميسرة حتى يتم إصلاح المشكل ، حتى بدون أن تعلم كيف أصلحته او ما سبب المشكلة من أساسه ... مرحبا بك صديقي في عالم البرمجة .
إقرأ أيضا : لهذه الأسباب يجب عليك ان تتخذ من المبرمجين أصدقاء لك !
- ان تصلح برنامجا لم تكتبه :
عندما يتعلق الأمر ببرمجة برنامج من الصفر ، قد تتذمر قليلا ، لكنك فور ان تبدأ تحليل البرنامج و بناءه شيئا فشيئا في عقلك ، حتى تتوقف عن التذمر و تبدأ في التكويد ، الأمر مخالف 180 درجة عند اعادة كتابتك لبرنامج لم تكتبه او التعديل عليه او إصلاحه ، لكن هل تعرفون ما الأسوأ ؟ ان لا يحتوي الكود سورس على تعليقات مناسبة توضح كل سطر من الأكواد ، ستضطر في هذه الحالة الى ان تعيد قراءة الكود سطرا بسطر ، بل و أن اغلبية الأكواد لن تفهمها و ستضطر الى ان تجرب كودا بكود من أجل معرفة ماهيته و كيفية إشتغاله ، بل ستصل الى مرحلة تخبر رئيسك ان صناعة نفس البرنامج بمؤهلات أفضل و تعديلات احسن سيكون أفضل من التعديل على هذا الكود ، لكنه سيرفض لا محالة ، و ستضطر لقضاء الأيام العشر القادمة في فهم الكود و طريقة إشتغاله ، و بعدها التعديل عليه و انت تلعن صاحب هذا الكود الذي لم يضع تعليقاته على برنامجه ، مبرمج هاوي ! .
- عدم إشتغال البرنامج بعد تسليمه :
لا يخفى عليك انني وقعت في نفس هذا المشكل مرة ، و دعني أحكي لك قصتي البسيطة ، طلب مني في أحد المرات ان ابرمج برنامج صغير مختص في الإدارة ، قمت ببرمجة البرنامج بلغة الC# ، بعد أن انتهيت من كل شيئ من أكواد و تصميم واجهات و صناعة قاعدة البيانات ، حانت اخيرا لحظة تجربة البرنامج ، قمت بتشغيله و جربته من كل زر و كل إمكانية ممكنة ، و إشتغل البرنامج بشكل صحيح ، ناديت على صديقي الجالس بجانبي و طلبت منه ان يجرب البرنامج ، و جربه و كان كل شيئ في محله ، ثم ناديت على احد الأشخاص من المكتب المجاور ( وهو المكتب الذي سيشتغل بالبرنامج بعد تسليمه لهم ) و جرب البرنامج بكل حذافره فكان كما المطلوب من كل النواحي و بدون أخطاء ، قمت أخيرا بإستخراج ملف التثبيث Setup للبرنامج و قدمته لهم ، بعد تنصيب البرنامج ، تهاطلت الأخطاء من كل الأماكن ، كان موقفا محرجا جدا بالنسبة لي ، شيئ لم اتوقعه ان يحدث ، لم اكن مضطرا لإعادة كتابة البرنامج او شيئ من هذا القبيل ، فقد كان مشكل بسيط في الكود قمت بإصلاحه ، لكنه لم يصلح ذلك الموقع المحرج الذي تعرضت له .
الخلاصة صديقي ، عند إشتغالك كمبرمج ، قد لا تدري من اين تتهاطل عليك الأخطاء و المشاكل ، و راجع الأمر مرات و مرات حتى لا تسقط في نفس الموقع الذي تعرضت له .
- عامل الوقت :
إن كنت مبرمج هاوي او تمارس البرمجة من حين لأخر ، فأعتقد انك هذه الفقرة غير مخصصة لك ، لكن ، بالنسبة لمن يحترفون البرمجة او هي مصدر دخلهم و رزقهم فأعتقد انهم سيفهمونني جيدا ، الوقت عامل جد مهم صديقي ، حتى في حياتنا اليومية ، لكن في مجال البرمجة ، فالوقت يبقى معضلة جد كبيرة ، فأن يطلب منك مديرك او زبونك ( حسب وضعية إشتغالك ) ان تنشأ برنامجا مختصا في إدارة المعاملات المالية الخاص بالشركة في ظرف أسبوعين لهو أمر جد صعب ، المشكلة ليست برمجة البرنامج ، بل المشكلة تكمن في وقت برمجته ، فأنا لا ادري انواع الأخطاء و المشاكل التي قد تواجهني ، قد اسقط في مشكلة ربما لن أحلها الا على بعد أسبوعين او اكثر ، لا امزح معك صديقي ، ستواجه مشاكل تقعد في حلها بالشهور ، و أرجو ان يكون لك عوين أثناء ظهور هذا المشكل ، لا ننسى فترة برمجة البرامج و غيرها ، فهي الأخرى ستأخذ منك الوقت ، و إن فكرت في تحميل برنامج مشابه من موقع GitHub و إعادة تعديله ، فلازالت مشكلة الوقت معضلة أمامنا ، فكل ما يمكنني قوله ، طوبى لهواة البرمجة و الذين غير مضطرين لإحترام جدول زمني لبرمجة برامجهم ، و لا تنسى تداخل البرامج في مدة زمنية معينة ، حقا ستتمنى او ان الدقيقة تمر كالسنة من أجل التوفيق بين برامج لتقديمها في الوقت المعين .
- ان لا تجد إجابة لسؤالك على موقع StackOverFlow :
إقرأ أيضا : بين الفيسبوك و تويتر .. مواقع إجتماعية أخرى رائعة يجب عليك معرفتها و إستخدامها !
- ال; :
كابوس كل مبرمج ، حرف (;) او النقطة الفاصلة او القاطعة (Semicolon) كما يحب ان يسميها البعض ، لكننا نسميها نحن المبرمجين بالكابوس ، هذا الحرف هو الخاص بإغلاق كود معين في معظم لغات البرمجة ، قليلة هي اللغات التي لا تستخدم هذا الحرف في إغلاق الكود (منها مثلا الSQL ) ، لكن في الغالب فإن لغة البرمجة التي تبرمج بها الآن تستخدم هذا الحرف ، لا يمكن المشكلة إذا ما نسيت هذا الحرف او حدث لك خطأ في البرنامج ، بل الأسوأ من ذلك ، ماذا لو تعطل زر هذا الحرف على لوحة المفاتيح ، فلتطلب من الله ان يكون مستعانك او فلتجد مهنة أخرى لك ربما التصميم بالفوتوشوب فهو لا يتطلب منا إدخال الفاصلة في كل نهاية سطر ، لذلك ، قد يحدث معك أشياء غريبة و صعبة في العديد من الأحيان ، و تلف النقطة المفصولة واحدة منها .
- ان تراجع اكوادك القديمة :
قد يصادفك في أحد الأيام ان تريد أن تكتب أحد الأكواد المعقدة و الطويلة ، و فجأة ، تتذكر أنك إشتغلت على برنامج العام الماضي يحتوي على نفس الكود بكل صغيرة و كبيرة ، بالطبع إنت تحتفظ بالكود لا محالة ، فتذهب لمراجعة الكود ، فتدهش نفسك بمجهود كتبته بذاتك سنة خلت ، لكنك لا تفقه فيه شيئا ، انا ؟ انا كتبت هذا الكود ؟ ما دور هذه العبارة ؟ بما يفيدنا هذا ؟ ، العجيب في الأمر ، انك تحاول فهمه و فهم التعليقات التي وضعت ، و تفشل في ذلك ، انها اكواد كتبتها بأنامل إصابعي ، فكيف لي ان لا اتذكرها او افهمها على الأقل ، الغريب في الأمر ، انك ستحاول إقناع نفسك انك فهمتها ، و تأخذها من أول كود لأخر كود ، و تضعها في برنامجك الجديد الذي تشتغل عليه ، فيحدث ان الكود يحدث بشكل صحيح و بدون مشاكل ، فتلتفت ميمنة و ميسرة و تمر للمرحلة الموالية دون فهم الكود ، عادي صديقي ، الكل يفعل ذلك ! .
إن كنت مبرمج و واجهت يوما أحد هذه المشاكل ، فلا تنسى ان تشاركنا تجربتك و قصتك معها كما شاركتكم تجاربي ، و إن تعرضت لمشاكل أخرى ، اخبرنا بها بالتعليقات ، و دع الأخرين يستفيدون من تجاربك .