HyperAI

جميعهم لديهم أقراص قطنية، فلماذا يبرز المبرمجون؟

منذ 7 أعوام
معلومة
Sparanoid
特色图像

بقلم سوبر نيرو

لدى ستيف جوبز مقولة شهيرة: "يجب على كل شخص في بلدنا أن يعرف كيفية البرمجة. فهي تعلمك كيفية التفكير".

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

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

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

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

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

ماذا يفكر المبرمج؟

جميعهم لديهم أقراص قطنية، فلماذا يبرز المبرمجون؟

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

علاوة على ذلك، فإن كتاب "فكر مثل المبرمج" للكاتب ف. أنطون سبراول (العنوان الإنجليزي: فكر مثل المبرمج) له ترجمة صينية، مما يجعله أكثر ملاءمة للقراءة.

جميعهم لديهم أقراص قطنية، فلماذا يبرز المبرمجون؟

فيما يلي شرح للتفكير البرمجي، والذي يمكن فهمه من الجوانب التالية:

1. فهم المشكلة

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

لذلك، عند حل مشكلة ما، يجب عليك أولاً فهم المشكلة حتى تتمكن من وصفها بلغة بسيطة.

جميعهم لديهم أقراص قطنية، فلماذا يبرز المبرمجون؟

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

2. ضع خطة

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

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

3. تقسيم المشكلة

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

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

جميعهم لديهم أقراص قطنية، فلماذا يبرز المبرمجون؟

في هذه المرحلة، يمكنك محاولة تقسيم المشكلة بدلاً من البحث مباشرة عن ثالث أكبر رقم.

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

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

4. مواجهة الصعوبات

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

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

جميعهم لديهم أقراص قطنية، فلماذا يبرز المبرمجون؟

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

قال سي. جوردان بول، الذي يُصنَّف عادةً ضمن أفضل ثلاثة متسابقين في موقع Coderbyte لتحديات البرمجة، ذات مرة: "أحيانًا نضيع في تفاصيل المسألة ونتجاهل النهج العام لحلها. على سبيل المثال، عند حساب ١+٢+٣+…+n، يُمكن استخدام الصيغة n(n+1)/2 للحصول على الإجابة بسرعة وتجنب عمليات الجمع المطولة، بل وحتى الخاطئة."

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

كيفية تنمية التفكير البرمجي؟

إذا كنت تريد أن تصبح قادرًا على حل المشكلات بشكل ممتاز، فإن أفضل طريقة هي تطوير تفكيرك وقدرتك على حل المشكلات في حياتك اليومية. هناك العديد من الأشياء المترابطة مع بعضها البعض. يمكن تطبيق القدرة على حل المشكلة (أ) على المشكلة (ب) أيضًا.

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

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

جميعهم لديهم أقراص قطنية، فلماذا يبرز المبرمجون؟

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

بالإضافة إلى ذلك، إذا كنت مبرمجًا أو مهتمًا بالبرمجة، فيمكنك تجربة تحديات البرمجة على Coderbyte، وهو أمر مفيد جدًا لتحسين تفكيرك البرمجي.

واجه المشكلة، وقم بتحليلها، ثم قم بحلها واحدة تلو الأخرى،إنه"التفكير البرمجي".

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

جميعهم لديهم أقراص قطنية، فلماذا يبرز المبرمجون؟

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