لماذا يعتبر التشفير التعاوني هو الاختراق الوظيفي النهائي
نشرت: 2022-03-10إن اتخاذ خطواتك الأولى في البرمجة يشبه تعلم لغة أجنبية. في البداية ، بناء الجملة لا معنى له ، والمفردات غير مألوفة ، وكل شيء يبدو وصوتًا غير مفهوم. إذا كنت مثلي عندما بدأت ، فإن الطلاقة تبدو مستحيلة.
أعدك أنه ليس كذلك. عندما بدأت البرمجة ، أصابني منحنى التعلم - بشدة. قضيت عشرة أشهر في تعليم نفسي الأساسيات أثناء محاولتي درء مشاعر الشك الذاتي التي أدركها الآن على أنها متلازمة المحتال. لم يكن الأمر كذلك حتى بدأت في الذهاب إلى لقاءات ودية للمبتدئين حتى أدركت كيف يفتح البرمجة بشكل تعاوني إمكانيات مذهلة. أنت فقط بحاجة إلى المجتمع المناسب من الأشخاص للتدرب معهم.
بالنسبة لي ، كان هذا المجتمع هو Founders and Coders ، وهو معسكر تدريب JavaScript مجاني ساعدني في تحويل مسيرتي المهنية من كتابة النصوص إلى البرمجة. حتى الآن ، بعد أقل من عام من إكمال الدورة ، لا أصدق أنني أتقاضى أجرًا لتطوير البرمجيات.
تتعلق البرمجة التعاونية بمعالجة المشكلات واكتشاف الحلول معًا. إنه يشمل تقنيات مثل البرمجة الزوجية ، والتي تأخذها العديد من شركات التكنولوجيا على محمل الجد بما يكفي لفحصها أثناء عمليات المقابلة. كما أنه يزرع مهارات مفيدة يصعب تعلمها إذا كان كل ما تفعله هو الترميز بمفردك في المنزل.
سواء كنت بدأت للتو في صناعة التكنولوجيا أو لديك عدة سنوات من الخبرة تحت حزامك ، فإن البرمجة التعاونية لا تتوقف أبدًا عن كونها مفيدة. في هذه المقالة ، سوف ننظر في كيفية تجهيزك هذه المهارات دائمة الخضرة لحياة مهنية طويلة وناجحة في تطوير البرمجيات.
الاقتران المثالي
كانت تجربتي الأولى في البرمجة الزوجية في لقاء للمبتدئين يسمى Coding For Everyone. وإليك كيفية عملها: يقترن الأشخاص ، غالبًا بأشخاص لم يلتقوا بهم من قبل ، لحل تحديات JavaScript معًا على نفس الكمبيوتر المحمول. يتولى شخص واحد دور "الملاح" ويقترح الكود الذي يعتقد أنه يجب كتابته. الشخص الآخر ، "السائق" ، يكتب اقتراحاته على الكمبيوتر المحمول ويطرح أسئلة عندما يكون هناك شيء غير واضح. يمكنك الاستمرار في القيام بذلك ، مع تبديل الأدوار بشكل متكرر ، حتى نهاية الجلسة التي تستغرق ساعتين.
من الناحية النظرية ، كان الأمر بسيطًا. في الممارسة العملية ، ليس كثيرًا.
لقد وجدت أنه من المثير للانتباه أن يكون هناك شخص لا أعرفه يشاهد شاشتي أثناء الكتابة ، وكنت مترددًا في تسليم السيطرة عندما حان وقت تبديل الأدوار. لقد وجدت التنقل أكثر صعوبة. عندما لا تنتقل الفكرة من رأسك إلى الكمبيوتر دون المرور أولاً بأيدي شريكك ، فإن كل كلمة تقولها مهمة. لقد تطلب الأمر درجة من التواصل من كلانا لم نكن معتادًا عليه ، وشعرت بالثقة في أننا سنتعلم المزيد إذا انفصلنا للعمل بشكل منفصل.
لحسن الحظ ، تمسكنا به ؛ ذهبت مرة أخرى إلى اللقاء في الأسبوع التالي. لقد أمضيت منذ ذلك الحين مئات الساعات في العمل مع عشرات المطورين ، وتعلمت أكثر مما كنت أعتقد أنه ممكن في البداية.
البرمجة الزوجية هي طريقة سريعة للتعلم بشكل لا يصدق. سحر الطريقة - بمجرد أن تتخطى الإحراج الأولي - أنها تعطي نتائج فورية. قد تستغرق بعض حلقات التغذية الراجعة ، مثل الفقاعات في سوق الأسهم ، ساعات أو أيامًا أو حتى شهورًا لإنتاج تصحيح. تستغرق البرمجة الزوجية دقائق ، إن لم يكن ثوان. عندما تخطئ في وضع فاصلة منقوطة ، يمكن لزوجين من العيون اكتشاف الخطأ أسرع من واحد. هل تحتاج إلى البحث في StackOverflow عن أدلة حول رسالة خطأ محتالة؟ يمكنك أنت وشريكك قراءة مواضيع مختلفة ، مما يقلل الوقت المستغرق للعثور على إجابة بمقدار النصف.
بالنسبة للمشكلات الأكثر تعقيدًا ، يمكن أن تكون برمجة الغوغاء خطوة أخرى للأمام. تتطلب هذه الطريقة قسمًا متعدد الوظائف من الفريق للتجمع حول نفس شاشة الكمبيوتر وحلول العصف الذهني في الوقت الفعلي بينما يكتب شخص واحد.
"كل العقول اللامعة تعمل على نفس الشيء ، في نفس الوقت ، في نفس المكان ، على نفس الكمبيوتر."
- وودي زويل ، مدرب أجايل ومدرب برمجة موب
على الرغم من أنها قد تبدو طريقة غير فعالة للعمل ، إلا أن دعاة برمجة الغوغاء مثل Woody Zuill يقولون إنه يمكن في الواقع توفير الوقت من خلال التخلص من الحاجة إلى مراجعات الكود الفردية لأن الجميع يراجع الكود في الوقت الفعلي أثناء كتابته. بغض النظر عن الإنتاجية ، أعتقد أن المهاجمة طريقة رائعة للتعلم ليس فقط عن الكود ، ولكن أيضًا عن كيفية تعامل الآخرين مع المشكلات. إذا ضاعفت البرمجة الزوجية عدد المنظورات التي تتعرض لها ، فإن برمجة الغوغاء ستنتج رؤى أكثر.
هذا لا يعني أن الاقتران - أو في الواقع المهاجمة - هو أمر سهل. كان الشيء الذي ناضلت معه في البداية هو وضع غرورتي جانباً لطرح الأسئلة التي اعتقدت أنها قد تبدو غبية. في هذه المواقف ، من الجيد أن تتذكر أن شريكك قد يكون لديه نفس الأفكار ، خاصة إذا كنتما قد بدأت للتو.
إذا وجدت نفسك تتزاوج مع شخص أكبر سنًا ، ربما في العمل ، فلا تخف من اختيار عقولهم وإثارة إعجابهم بفضولك. حتى الشخص الذي يتقدم قليلاً عنك قد يفكر في أشياء لن تحدث لشخص أكبر منه. بعض المبرمجين المفضلين لدي لديهم خبرة أكثر مني ببضعة أشهر ، ومع ذلك يبدو أنهم دائمًا يعرفون بالضبط الأخطاء التي سأرتكبها وكيفية توجيهي في الاتجاه الصحيح. عندما يقول هؤلاء المطورون أنه لا يوجد شيء اسمه سؤال سخيف ، فإنهم يقصدون ذلك حقًا. يتحدث أفضل زوج من المبرمجين بحرية ، دون الحاجة إلى الظهور بمظهر رائع أو الخوف من الظهور بمظهر أحمق.
تحتاج البرمجة الزوجية إلى ممارسة ، لكنها تستحق الإتقان. تشير الدراسات إلى أن المبرمجين الذين يقترنون لحل المشكلات يميلون إلى أن يكونوا أكثر ثقة وإنتاجية ومشاركة في عملهم. سواء كنت تبحث عن وظيفتك التالية أو تقوم بتعيين موظفين جدد ، فإن الاقتران أمر مهم.
الموارد وقراءات أخرى
- "أدوار البرمجة الزوجية" ، جوردان بولتون ، جيثب
- "الصداقة التي جعلت Google ضخمة ،" جيمس سومرز ، نيويوركر
- "Mob Programming: A Whole Team Approach" ، وودي زويل ، YouTube
التعاطف الهندسي
عندما بدأت في تعليم جافا سكريبت بنفسي ، بدت الشفرة الخاصة بي تشبه إلى حد كبير أرضية غرفة نومي: كنت أتركها تصبح أكثر فوضوية وفوضى إلى أن لم يكن لدي خيار سوى ترتيبها. طالما أن متصفح الويب الخاص بي يمكنه فهم ذلك ، لم أكن أهتم بالشكل الذي يبدو عليه.
لم أدرك أنني بحاجة إلى إظهار المزيد من التعاطف مع الأشخاص الذين يراجعون تعليمي.
قد يكون التعاطف هو الأداة الأكثر استخفافًا في ترسانة أي مطور. هذا هو السبب الذي يجعل IDEO تضع بحث المستخدم في مركز عملية التصميم الخاصة بهم ، ولماذا تطلب Etsy من المصممين ومديري المنتجات إجراء دورة هندسية. يظهر التعاطف عندما تتاح لنا الفرصة لنرى كيف يؤثر عملنا على الآخرين. لا عجب في أن البرمجة التعاونية هي طريقة رائعة لإنشائها.
تدعونا مراجعة الكود النظير - عملية فحص كود بعضنا البعض بحثًا عن الأخطاء - إلى ممارسة التعاطف. بصفتك مراجعًا ، من المهم أن تدرك أن شخصًا ما قد بذل جهدًا كبيرًا لكتابة الكود الذي أنت على وشك نقده. على هذا النحو ، حاول تجنب استخدام العبارات التي قد توحي بالحكم أو تقلل من أهمية عملهم. عندما تشير إلى الكود الخاص بهم ، فأنت تريد أن توضح لهم الوظائف والأسطر المحددة التي لديك أسئلة حولها ، وأن تقترح عليهم كيفية إعادة تشكيلها. يمكن أن تكون مشاركة موارد التعلم أيضًا أكثر فائدة من حل التغذية بالملعقة. جاءت بعض أكثر التعليقات المفيدة التي تلقيتها من مراجعات الكود في شكل مقالات تعليمية ومقاطع فيديو وحتى توصيات بودكاست.
كتابة وثائق جيدة لشفرتك أيضا تقطع شوطا طويلا. يُظهر العمل البسيط مثل إنشاء ملف تمهيدي بتعليمات تثبيت واضحة التعاطف مع أي شخص يحتاج إلى العمل مع التعليمات البرمجية الخاصة بك. يؤيد مؤسس GitHub ، توم بريستون ويرنر ، اتباع نهج تمهيدي أول في التنمية.
"التنفيذ المثالي للمواصفات الخاطئة لا قيمة له. وفقًا للمبدأ نفسه ، فإن المكتبة المصممة بشكل جميل بدون توثيق هي أيضًا شبه عديمة القيمة. إذا نجح برنامجك في حل المشكلة الخاطئة أو لم يتمكن أي شخص من معرفة كيفية استخدامه ، فهناك شيء سيء للغاية يحدث ".
- توم بريستون ويرنر ، مؤسس GitHub
لقد تحدثت أيضًا مع مؤسسي التكنولوجيا الذين يتعاملون مع التوثيق باعتباره جزءًا أساسيًا من الإعداد الناجح. قال أحد كبار المسؤولين التنفيذيين إنه إذا كافح مطور مبتدئ للوصول إلى مستوى من الإنتاجية في غضون ستة أشهر من الانضمام إلى فريقه ، فهذا يشير إلى أن قاعدة التعليمات البرمجية لم يتم توثيقها بشكل كافٍ. يستغرق الأمر بضع ثوانٍ فقط لإضافة تعليق توضيحي لوظيفة معقدة قمت بكتابتها ، ولكن يمكن أن يوفر على الشخص التالي الذي ينضم إلى فريقك ساعات من الجهد.
الموارد وقراءات أخرى
- "حول طلبات التعاطف والسحب" ، Slack Engineering ، Medium
- "Readme Driven Development" ، توم بريستون فيرنر ، جيثب
- "ما تعلمته Google من سعيها لبناء الفريق المثالي" ، تشارلز دوهيج ، مجلة نيويورك تايمز
رشيقة الإنجاز
من ملايين ساعات العمل التي تدخل في صناعة أفلام CGI إلى أزمات التطوير المكثفة التي أدت إلى إصدارات ألعاب الفيديو ذات الميزانية الكبيرة ، تتطلب الإنجازات التقنية الشاهقة قدرًا مذهلاً من الجهد. في المرة الأولى التي رأيت فيها قاعدة بيانات صاحب العمل الحالي ، تأثرت بفداحة كل ذلك. كيف على الأرض فعل أي شخص هذا؟
الجواب هو أنه يمكن للجميع بناء أكثر بكثير من أي شخص آخر ، في ضوء الإطار التعاوني الصحيح. في الشركات التي تشجع الترميز التعاوني ، لا ينشأ البرنامج من جهود عبقري وحيد. بدلاً من ذلك ، هناك طرق للعمل معًا تساعد الفرق العظيمة على القيام بعمل رائع. يمارس المطورون في Founders and Coders منهجية تطوير برمجيات شائعة تُعرف باسم "Agile" ، ومن واقع خبرتي ، فإنها تضع "الوظائف" في فرق التطوير متعددة الوظائف.
كُتبت كتب كاملة عن Agile ، لكن فيما يلي ملخص للمفاهيم الأساسية:
- يقوم فريق تطوير المنتج بتقسيم أجزاء كبيرة من العمل إلى وحدات صغيرة تسمى "قصص المستخدمين" ، ويعطيها الأولوية ، ويقدمها في دورات مدتها أسبوعان تسمى "سباقات السرعة".
- طالما استمر المشروع ، تتكرر الدورات ، ويتم إدخال متطلبات المنتج الجديدة في تراكم المهام للسباقات المستقبلية.
- يعقد الفريق اجتماعات يومية لمناقشة تقدمهم ومعالجة أي حاصرات.
- هذه العملية تدريجية ومتكررة: يتم إنشاء البرنامج وتسليمه على شكل أجزاء ويتم تنقيحه في سباقات السرعة المتتالية.
بصفتي مصلحًا مزمنًا غالبًا ما تخضع مشاريع هوايته الفردية لـ "ميزة زحف" ، فأنا أعلم مدى سهولة إضاعة الوقت في بناء الأشياء التي لا يستخدمها أحد على الإطلاق. أحب الطريقة التي يجبرك بها Agile على إعطاء الأولوية لقصص المستخدمين حتى يتمكن الفريق بأكمله من التركيز على تقديم الميزات التي يهتم بها المستخدمون بالفعل. من المحفز أن تعرف أنك متحد حول الهدف المشترك المتمثل في بناء منتج أو خدمة ستستمر في التمتع بحياة بعد الانتهاء من العمل عليها.
يحدث أيضًا أن يكون تقسيم المهام إلى قصص مستخدم صغيرة طريقة رائعة لجلسات برمجة الزوج الزمني. بغض النظر عن مدى عمق المنطقة التي تجد نفسك فيها ، فإن إنهاء العمل على ميزة رئيسية يعد دائمًا تذكيرًا لطيفًا للابتعاد عن مكاتبك وأخذ قسط من الراحة. يضفي Agile هيكلًا على الترميز التعاوني حيث يمكن أن يكون غير موجود.
وفي الوقت نفسه ، تمنحك المواقف اليومية حرية التحدث عن أي شيء يعيقك ، وتوفر الأحداث الاسترجاعية السريعة مساحة لمشاركة المكاسب الرئيسية وتحديد المكان الذي يمكن أن يتحسن فيه الفريق. تعزز هذه الاحتفالات الشعور بالتعاون والمساءلة ، وتساعدنا على التعلم معًا أكثر مما يمكننا أن نتعلمه بأنفسنا.
قد يكون وضع كل هذه المبادئ الرشيقة موضع التنفيذ أمرًا صعبًا ، خاصةً عندما لا يعتاد أي شخص في الفريق على طريقة العمل هذه. في Founders and Coders ، يستغرق الأمر من معظم الطلاب بعض الوقت للتعود على عادة القيام بمواقف يومية. ومع ذلك ، بعد 18 أسبوعًا من الممارسة القائمة على المشروعات ، تجد أن عملياتك ومهارات الاتصال لديك تتحسن بشكل كبير. بحلول الوقت الذي تتولى فيه عمل العميل الأول ، تكون قد شكلت نموذجًا عقليًا أكثر وضوحًا لكيفية التعامل مع إنشاء تطبيق ويب متكامل في فريق.
أفضل طريقة لتعلم Agile هي بناء مشاريع مثيرة للاهتمام مع أشخاص آخرين. يعد حضور الهاكاثون طريقة ممتازة للتواصل مع المتعاونين المحتملين. تجعل العديد من المشاريع مفتوحة المصدر لوحات مشاريع كانبان الخاصة بها عامة ، بحيث يمكنك معرفة مشكلات GitHub التي يعمل عليها المساهمون المختلفون. العديد من المساهمات الترحيبية من المبتدئين ، ويمكنك غالبًا تعيين نفسك لفتح المشكلات والبدء في رفع طلبات السحب.
نظرًا لأن معظم شركات التكنولوجيا تشترك في أحد أشكال Agile ، فليس من غير المألوف أن يسأل أصحاب العمل عنها في المقابلات. يمكن لأي تجربة لديك أن تميزك عن المتقدمين الآخرين الذين ربما لم يسبق لهم الترميز بشكل تعاوني ، ناهيك عن وضع Agile في الاعتبار.
الموارد وقراءات أخرى
- "ما هي أجايل؟" ستيف دينينج ، فوربس
- "احتضان المرونة" ، داريل ك. ريجبي ، جيف ساذرلاند ، هيروتاكا تاكيوتشي ، هارفارد بيزنس ريفيو
- "فرص طلبات السحب الأولى الرائعة" ، شمافون غازانشيان ، شركة Deloitte Digital
توصيات أداة الترميز التعاوني عن بعد
في السنوات العديدة الماضية ، تطورت أدوات العمل عن بعد لدرجة أن الشركات البارزة مثل Gatsby و Zapier أصبحت الآن "عن بُعد أولاً". بينما يبقى أن نرى ما إذا كان هذا سيتحول إلى اتجاه ، فمن الآمن أن نقول إن فرق التطوير عن بُعد موجودة لتبقى.
بهذه الروح ، إليك بعض الأدوات التي يمكن أن تساعدك أنت وفريقك على كتابة التعليمات البرمجية بشكل تعاوني من بعيد:
محرري Markdown | HackMD الميزة القاتلة هي أنه يمكنك تحويل مستندات تخفيض السعر إلى عروض تقديمية لعرض الشرائح دون أي جهد. الاقتراضات من مكتبة rev. js الشعبية. | StackEdit محرر تعاوني عبر الإنترنت بواجهة مستخدم نظيفة والكثير من خيارات تصدير الملفات. |
محرري الكود | كود ساندبوكس محرر كود تعاوني رائع قائم على السحابة تقوم بتشغيله في متصفحك ، دون الحاجة إلى تثبيت. | مشاركة مباشرة امتداد أنيق لمحرر Microsoft Visual Studio Code الشهير الذي يدعم تحرير وتصحيح الملفات في الوقت الفعلي داخل نفس مساحة العمل. |
حلول مؤتمرات الفيديو | جوجل Hangouts يجعل التكامل الرائع لتقويم Google من السهل جدولة مكالمات الفيديو. | فرق مايكروسوفت برنامج مؤتمرات الفيديو الذي يوفر جودة مكالمات جيدة حقًا (فيديو بدقة 1080 بكسل) ، ويدعم ما يصل إلى 250 مشاركًا في وقت واحد. |
إذا أخذت شيئًا واحدًا بعيدًا عن قراءة هذا المقال ، فأنا أريد أن يتفوق لاعبو الفريق على المساهمين الفرديين. في مجال يبدو أنه يوجد فيه إطار عمل جديد مثير لإتقانه كل أسبوعين ، فإن مهاراتنا الفنية تتقدم في العمر بطريقة لا تتمتع بها مهاراتنا الشخصية. المحصلة هي أن المطورين الذين يمكنهم العمل بشكل جيد مع الآخرين سيجدون دائمًا أن قدراتهم مطلوبة. البرمجة التعاونية ليست مجرد طريقة فعالة للتعلم ؛ إنها مجموعة مهارات مطلوبة يمكن لأي شخص تطويرها بالممارسة والصبر الكافيين.