شارك المقال

المبرمج العزيز … ابتعد عن هذه الأفعال الغبية!

حين يتعلق الأمر بالمبرمجين قد تعتقد حقا أنك وسط حفنة من الأذكياء النوابغ القادرين على كسر اي شفرة برمجية و بناء اي نظام برمجي مهما اشتد تعقيده

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

جنون البرمجة

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

المبرمج العزيز ... إبتعد عن هذه الأفعال الغبية!
المبرمج العزيز … إبتعد عن هذه الأفعال الغبية!

بناء متكامل

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

عزيز المبرمج

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

الـ HTML ليست لغة برمجة!

الـ HTML و هي اختصار لـ HyperText Markup Language، و هي لغة هيكلة و تنسيق للصفحة، في الوقت الراهن و في استخدامه الأصلي، الـ HTML ليست لغة برمجة، لكن يمكنها ان تصير كذلك إذا ما تم إدراج إطارات او Templates معينة، مثل التعامل مع الـ Directives في الـ Angular او Vue او React، او بإستخدام Templates الخاصة بالـ Nodejs مثل Pug او Jade.

المبرمج العزيز ... إبتعد عن هذه الأفعال الغبية!
المبرمج العزيز … إبتعد عن هذه الأفعال الغبية!

مهما اختلف الكل عن إمكانيات الـ HTML وقدراتها، فإنها لغة أساسية في كل مشروع برمجي لا محالة، وما  يهمنا نحن هو استخداماتها، لا إن كانت ترتقي لتُصنف كلغة برمجة أم لا. لذلك، المرة القادمة حين يذكر شخص ما لغة الـ HTML لا داعي لتسارع في ذكر انها ليست لغة برمجة، فهو يعلم ذلك، انت تعلم ذلك، انا اعلم ذلك والعالم يعلم ذلك، فتوقف عن تذكيرنا بالأمر رجاءً!

الـ Java أفضل من الـ Php، و الـ C++ أفضل من الـ CSS

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

أنت مطور برمجيات؟

إن كنت مطور برمجيات Desktop فيمكنك مقارنة الجافا مع C# مثلا من أجل معرفة الأرقى لتحرير مشروعك البرمجي، إن كنت مبرمج ويب يمكنك المقارنة بين إستخدام Angular او Vue، او إستخدام Laravel او Rails . لكن أرجوك، لا تقارن لغتين ليستا من نفس المجال، فهذا خطأ غبي عليك تفاديه، لكل لغة برمجة إختصاص، و لكل لغة برمجة ساحة لعب تحتكرها، فحاول ان تلعب انت ايضا في نفس ساحة اللعب. نذكرك يا صديقي أيضا، ان اللغات البرمجية كلها جيدة، ويمكنك استخدام ما لذ لك و طاب، و لو كانت لغة أفضل من لغة أخرى من كل النواحي لشاهد ان العالم بأكمله يبرمج بلغة برمجة واحدة، لا 200 لغة برمجة.

أن تنقر على Run/Compile أكثر من مرة دون تغيير أي شيء!

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

ما الذي سيتغير؟ هل ملاحظتك للكود ستجعله الآن يخشاك ويشتغل؟ انت لم تلمس الكود إطلاقا فكيف تتوقع ان يشتغل في المرة الثانية؟ لا بل ونعلم ذلك جيدا، لماذا؟ لا ندري، نحن نعلم انه لن يشتغل لكن يجب ان نتأكد مرتين قبل ان نقوم بتغييره !

المبرمج العزيز … إبتعد عن هذه الأفعال الغبية!

أن تنسخ الجواب كاملاً من Stackoverflow

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

ألا تقرأ الـ Documentation

الإقدام على البرمجة دون الاطلاع على الـ Documentation أشبه بالإقدام على قيادة سيارة دون معرفة طريقة قيادتها فقط لأنك ترى الآخرين يقودونها … بالطبع آخرتكم اصطدام! الهدف من الـ Documentation او التوثيق هو توفير كل المعلومات حول لغة او تقنية برمجة معينة، من شرح للنسخ الخاصة بها، طريقة الاستخدام و طريقة التنصيب، كيف تبدأ مشروعك الأولي بها و شرح كل الأكواد التي قد تستعملها في تلك اللغة، يعتبر الـ Documentation جيد كذلك في اللغات التي تتطلب التعامل مع سطر اوامر بشكل كبير ( مثل Laravel ) إذ لست مجبرا على تذكر أي كود برمجي، يكفي فتح الـ Documentation و الاستعانة به.

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

ألا تضع تعليقاً على الكود البرمجي

نعم، اجزم أنك تبتسم الآن لأنك تقوم بهذا الخطأ الجسيم بشكل دائم، ما الذي يمنعك بالضبط من إضافة /* */ يحملان في الوسط شرحا للسطر البرمجي القادم؟ قد يبدو الأمر سخيفا في الـ 50 سطر برمجي الأولي، لكن حين تشتغل على صفحة مليئة بالأكواد تعدادها يبلغ الألف، ستحتاج حقا لتلك التعليقات. تفيدك التعليقات الـ Comments بفهم الهدف من كل سطر برمجي او فقرة برمجية في صفحة واحدة، فإن اردت تحديثها لاحقا او فقط إيجادها بسرعة يكفي البحث عن اسم الفقرة الذي وضعته في تعليق و ستأخذك مباشرة للكود البرمجي، ستسهل التعليقات كذلك الأمر على أي شخص آخر يشتغل معك في نفس الكود من أجل استيعابه من طرف أي شخص آخر، لذلك قم بأخذ ثواني من وقتك و علق قليلا على الكود البرمجي الخاص بك، فعدم فعل ذلك غباء برمجي بحد ذاته.

ألا تستخدم الـ Version Control

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

الحل يمكن في استخدام Version Control مثل منصة Git و رفع الكود البرمجي الخاص بك في منصات مثل Github / Gitlab / Bitbucket ثم التحكم فيها عن طريق الـ commit، كل ما عليك فعله في حالة تلخبط كل شيء هو العودة الى الـ Commit او النقطة التي كان كل شيء فيها شغالا، لكن تذكر انه في كل مرة تقوم بإضافة شيء جديد و يشتغل بشكل جيد ان تقوم برفع الكود مجددا، لا تقلق يتم الرفع عبر أمر بسيط: git push . أيضا، نحذرك من الـ Margin Conflicts، خذ دورة في الـ Git لتتقنه قبل ان تبدأ أي مشروع برمجي.

وختاماً

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

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

مقالات أخرى مهمة كتبناها لأجلك…

عن الكاتب

فهرسة المقال

تابعنا على منصات التواصل

إعلان | أطلب متجرك

أخر المنشورات

تابعنا على الفيسبوك

تابعنا على اليوتيوب

إعلان | أطلب متجرك

توضيح

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

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

أرسل تصحيح

شاركنا رايك وتقييمك للموضوع

{{ reviewsTotal }}{{ options.labels.singularReviewCountLabel }}
{{ reviewsTotal }}{{ options.labels.pluralReviewCountLabel }}
{{ options.labels.newReviewButton }}
{{ userData.canReview.message }}