تريد أن تكون مطور؟ يجب أن تكون على الأرجح البرمجة المزدوجة.

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

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

يبدو جيدا. إذن كيف يعمل مطورو البرمجيات حقًا؟

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

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

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

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

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

حسنًا ، أنا مفتون ...

للمبتدئين: ما هي البرمجة الزوجية؟

لحسن الحظ ، يمكن أن تساعدنا ويكيبيديا هنا:

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

كيف يغير هذا من عقلية الشخصين اللذين يقتربان من الكود؟

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

حسنا جيد. ولكن ألا يكون هذا الشيء الذي يبرمج الزوج غير مريح للغاية؟

قد تكون متشككًا في البرمجة الزوجية - كنت بالتأكيد متشككًا بنفسي. قد تكون أفكارك الأولى هي أن الفكرة تبدو غير مريحة. هل سيكون مثل هذا؟

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

ثلاث مزايا أساسية للبرمجة الزوجية ، مصممة لشخص يتعلم البرمجة:

(1) تعد البرمجة الزوجية طريقة رائعة للتعلم من مبرمج آخر.

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

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

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

(2) يعد الاقتران بيئة رائعة لممارسة مهارات الفريق التي تعتبر أساسية لتطوير البرامج الجيدة.

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

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

(3) فوائد البرمجة الزوجية أكبر لمطوري البرامج الجدد (نسبيًا).

وفقًا لدعم البحث الذي أجرته لوري ويليامز ، يعمل الترميز الثنائي بشكل أفضل عندما (1) يعمل الزوجان في مهام معقدة و (2) يكون الأفراد في مستويات مماثلة من معرفة البرمجة (انظر بحث البرمجة الزوجية الذي جمعه لوري ويليامز).

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

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

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

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

حسنًا ، أنا مقتنع بالتجربة ، كيف أبدأ؟

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

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

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

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

إذا كنت مبرمجًا جديدًا ، أقترح طريقتين مؤكدتين للقاء مطورين آخرين:

(1) انضم إلى مجتمع البرمجة حيث يجتمع الناس معًا للترميز / تعلم البرمجة. على سبيل المثال في لندن ، يمكنك الانضمام إلى "London Hackspace"

(2) حضور أحداث مجتمع الترميز ، خاصة تلك الخاصة بالمبرمجين الجدد. الطريق الجيد هو حضور حدث يديره معسكر تدريب حالي. سيكون المبرمجون الآخرون الذين يقومون بفحص برنامج Bootcamp في وضع مماثل لك.

بمجرد العثور على زوج محتمل (أو عدة!) ، جرب تقنيات البرمجة الزوجية المختلفة للعثور على الزوج الذي يعجبك:

فيما يلي مثالان على تقنيات البرمجة الزوجية:

(1) اقتران بومودورو. تم ضبط عداد الوقت لمدة 25 دقيقة ، حيث يكون أحدهما هو السائق والآخر الملاح. كل 25 دقيقة ، لديك استراحة قصيرة وتبديل الأدوار. يوجد امتداد كروم رائع لهذا هنا.

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

لمزيد من تقنيات البرمجة الزوجية ، شاهد:

  • تقنيات البرمجة الزوجية
  • البرمجة الزوجية عن بعد

في النهاية: موازنة العرض على البرمجة الزوجية

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

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

"الأشياء الصعبة ليست سهلة ، لكنها تستحق العناء" حب ميا

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

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

هل تبحث عن المزيد من أسرار الترميز؟

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

انقر هنا للحصول على رسالتي السابقة: 5 طرق لإخراج نفسك من مشكلات الترميز اللاصقة والصعبة

إذا كنت قد استمتعت بهذه المدونة وترغب في قراءة المزيد مثلها ، فالرجاء النقر فوق "متابعة" وإعطائي بعض التصفيقات بالنقر فوق الزر "متوسط ​​التصفيق" أدناه؟