البرمجة: علم نفس أجهزة الكمبيوتر

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

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

سأهاجم أبسط نقطة على الإطلاق قبل الخوض في التفاصيل.

لماذا لن أقوم بعمل وظيفة فنية؟

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

الكهرباء مهمة

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

المشكلة

تغيير برمجة الأجهزة مكلف ومعقد 🙂 (على الأقل هذا ما قالوه لي 🙂 ). هذا هو سبب ظهور المعالجات ، التي تجرد فعليًا طبقة الأجهزة لتوفر لنا بعض الأوامر لنكون قادرين على القيام بكل ما هو ممكن من خلال الأجهزة ، الآن فقط في طبقة الأجهزة. البرنامج.

معالجات

معالجات اليوم لها عدد محدود من الوظائف تسمى تعليمات في العديد من الكتب. تسمح لك هذه بأداء الوظائف الأساسية التي يمكن أن تؤديها الأجهزة ، وتعبئة المعلومات من خلال ذاكرة الكمبيوتر.

يسجل

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

Binario

تعمل المعالجات على المستوى الثنائي ، وهذا يعني أنهم يفهمون فقط 0سي 1نعم 🙂. حقيقة غريبة هنا 😀تذكر أذونات جنو / لينكس؟ حسنا، هل تساءلت يومًا كيف يتعرف المعالج بالفعل على هذه الأذونات؟ بسيط 🙂 ثنائي. في أدنى مستوى ، سيفهم المعالج الأذونات على أنها تتابع من 0 و 1 ، وهذا هو السبب في أن القيم الثمانية التي نشكلها لها القيم للتنفيذ ، 2 للقراءة و 4 للكتابة. بالنسبة لأولئك الذين يمكنهم قراءة النظام الثنائي ، سوف يفهمون ما يلي:

111100101111

يضعون أذونات القراءة والكتابة والتنفيذ للمجموعة آخرون أثناء وضع الأداء والقراءة للمجموعة مجموعة وقراءة فقط لمالك الملف. بالنسبة إلى الأشخاص الأكثر فضولًا ، تعمل آخر ثلاث ثوانٍ على تنشيط setguid, setuid و sticky bit. إذا كنت لا تعرف ما هو هذا الثنائي ، يمكنني شرحه في منشور آخر ، إذا كنت لا تعرف هذا عن setuid و setgid والجزء اللاصق ، فسأتركه لك 😉 ولكن يمكنني أيضًا شرحه في مكان آخر إذا لزم الأمر.

عندما يدعو الفضول ...

حسنًا ، إذا كنت قد تابعتني هنا ، فيجب أن يبدأ فضولك في طرح الكثير من الأشياء ، وأول ما أريد الإجابة عليه (وربما الشيء الوحيد الذي يتيح لي هذا المنشور لأنني أكتب كثيرًا بالفعل) هو: إذا كانت المكالمات متشابهة ، فلماذا تختلف البرامج؟

علم النفس

البرمجة هي فن تعلم قراءة العقول أريد أن أبدأ هذا القسم باقتباس قرأته منذ وقت طويل ، قال Edsger Dijkstra:

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

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

أجهزة الكمبيوتر ليست مخطئة

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

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

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

كل شيء هو علم نفس

كل لغة وإطار عمل ومبرمج تحترم وتتبع نوعًا من الفلسفة ، وإذا لم تكن كذلك ، فلن يكون لها مستقبل واعد جدًا. أولئك منا الذين يعملون على UNIX والمشتقات سيعرفون على الأرجح العبارة القديمة:

افعل شيئًا واحدًا ، وافعله جيدًا.

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

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

تعلم أن تقرأ العقول

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

أن تكون متسقة

يقول العديد من المبرمجين والمتخصصين أنه يتعين علينا الخروج من منطقة الراحة، وعلى الرغم من صحة ذلك ، إلا أنه من الضروري أيضًا الحفاظ على عمليات وأشكال معينة. هذا سهل الشرح ، أذهاننا متكررة وهياكل الاحترام ، إذا كتبت التعليمات البرمجية بنفس الطريقة كل يوم ، في وقت قصير ستتوقف عن التفكير في النموذج وستكون قادرًا على التركيز عليه. fondo. هذا يسمح لك برؤية ملف منطق من البرنامج بدلاً من بناء جملة اللغة. وهذا هو سبب اعتقادي أن تعلم المفاهيم سيكون دائمًا أكثر أهمية من التعلم الاستمارات. هذا رأي شخصي ، لكنني آمل أنه بعد قراءة كل هذا ، يمكنك فهم سبب اعتقادي بهذه الطريقة told أخبره أيضًا شخص اضطر إلى البرمجة بلغة C و Java و Javascript و Python و Ruby و PHP وغيرها 🙂 يعرف المفاهيم تجعل من السهل كتابة التعليمات البرمجية.

وخلاصة القول

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


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   خافيير جي ديلجادو قال

    مقال ضميري للغاية تتم فيه مناقشة البرمجة (في هذه الحالة) ربما بلغة جديدة البرامج بتعمق أكبر ، دعمي يذهب إلى ما يلي.

    1.    كريساد قال

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

  2.   Balua قال

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

  3.   كريساد قال

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

  4.   وإلا قال

    جوهرة مقال! أتمنى القادم ...