‏إظهار الرسائل ذات التسميات علمتني البرمجة. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات علمتني البرمجة. إظهار كافة الرسائل

لا تكابر ، تقبّل ضعفاتك وحدود قدراتك ، هذا أفضل لك

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

برمجة السيرڤرات الإلكترونية

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

ولكن إن تقبّلت أنه هناك إحتمال ١٪ على الأقل أنك قابل للإختراق، ستقوم بوضح أساليب لتأمين البيانات والمعلومات الموجودة على السيرفر. وبذلك حتي في حالة اختراق السيرفر ستكون عملية الاختراق أقل ضرراً علي شركتك. لأنك ستفترض حدوث أخطاء منك ومن العاملين معك في الشركة وبناءاً على ذلك ستحفظ الكود في version control مثل git لكي يسهل الرجوع إلى الإصدارات الأقدم ، وتستخدم أكثر من host لتضع عليه الكود الخاص بالسوفت وير ، وتقوم بعمل نسخ احتياطية يومية على سيرفرات أخرى لكي تستخدمها هذه النسخ الاحتياطية في حالة حدوث مشكلة في البيانات والمعلومات الموجودة على السيرفر الرئيسي، وستقوم بحفظ البيانات بطريقة تجعل الحصول عليها صعب واستغلالها صعب للغاية مثل أن تحفظ كلمات المرور بشكل مشفر في قواعد البيانات.

الديمقراطية

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

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

الحروب

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

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

كلمة أخيرة

أفضل نظام هو النظام القادر على تصحيح أخطائه والتطور بمرور الوقت والخبرات. ولكن النظام لن يستطيع عمل ذلك إن لم يعرف مميزاته وعيوبه وضعفاته وحدود إمكانياته وقدراته.

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

علمتني البرمجة | حل المشكلات

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

تعلمت من البرمجة لأني لن أصل للحل بمجرد التفكير فقط! لابد من التجريب.

تعلمت من البرمجة أني لن أصل للحل من أول محاولة! لابد من الاستمرار في المحاولة مع محاولة تكوين فكرة صحيحة وشاملة ودقيقة عن المشكلة.

تعلمت من البرمجة أن سبب فشل الحلول هو عدم تكوين فكرة صحيحة عن المشكلة ووجود تصور خاطئ عن المشكلة في عقل صاحب الحل.

أراك في مقالات أخرى عما #علمتني_البرمجة

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

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

في الواقع نقوم دائماً بأعمال لا نعرف إن كانت مفيدة أم لا .. ثم نعرف بعد تنفيذها أنها غير مفيدة وربما تكون ضارة. ولكن علمتني البرمجة فكرة الـ early return .. مثال : إن كنت تريد وضع array في شكل JSON ثم ترسلها لطالبها .. من الأفضل أن تختبر الـ array إن كانت فارغة أم لا .. بدلاً من أن تقوم بعملية التحويل دون فائدة.

بإختصار لا تضيع وقت المعالج (الكمبيوتر) في تنفيذ عملية ليس لها استخدام. وبذلك تعلمت ألا أضيع وقتي في شئ أنا أعرف جيداً أنه غير مفيد.

أراك في مقالات أخرى عما #علمتني_البرمجة

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

علمتني البرمجة | الكسل صفة جيدة

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

مميزات الـ lazy loading هي ترتيب الأولويات وتقليل المسؤوليات في الوقت الحالي. أي أن المتصفح يحتاج إلى تحميل صورة أو اثنين بدلاً من ١٥ صورة مرةً واحدة. في الواقع أيضاً الإنسان يحتاج أن يطبق فكرة الكسل على بعض الأمور الغير ضرورية وقابلة للتنفيذ وقت احتياجها دبلاً من تضييع الوقت الحالي في عملها.

أراك في مقالات أخرى عما #علمتني_البرمجة

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

علمتني البرمجة | سوف تنسى

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

الخوارزمية أهم من السنتاكس .. طريقة الحل أهم من الكلمات المستخدمة في لغة البرمجة .. المفاهيم التي تستخدمها أهم من مجرد كتابة مجموعة من الكلمات. إن كان الإهتمام بإستخدام async await بلا تفكير فهذا خطأ .. الذي يجعلك تستخدمهم أو لأ هو المفهوم الذي يحملونه.

الرؤية (vision) والفكرة (idea) والمفهوم (concept) والخوارزمية (algorithm) هم أهم من الألفاظ والكلمات التي يمكن الحصول عليها من cheatsheet للغة البرمجة المستخدمة أو إطار العمل المستخدم أو كلاهما.

أراك في مقالات أخرى عما #علمتني_البرمجة

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

علمتني البرمجة | تقبل نفسك وتعلم من أخطاءك

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

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

الحل ليس تقوية نفسك وتطويرها فقط ! ولكن الجزء الأكبر من الحل هو في تعديل البيئة من حولك لكي لا تكرر أخطاءك أو تمنع نفسك من مجموعة كثيرة من الأخطاء. في البرمجة نستخدم أطر العمل - frameworks - وهي عبارة عن مجموعة برمجيات ومكتبات موجودة معاً لكي تكتب بها برنامج / برمجية بها أقل أخطاء أو نواقص ممكنة.

في البرمجة نستخدم بيئة برمجية متكاملة IDE وهي برامج متخصصة في كتابة كود التطبيقات. مثال : برنامج أندرويد ستوديو لكتابة تطبيقات الأندرويد. هذه البرامج تساعدك في ألا تنسي أو تخطئ أثناء كتابة الكود. إنها بيئة تنبهك للأخطاء وتضع لك كل الأدوات البرمجية التي تحتاجها أمام عينيك.

أراك في مقالات أخرى عما #علمتني_البرمجة

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