الصدع بين المبتدئين وكبار المطورين – أورايلي

الصدع بين المبتدئين وكبار المطورين – أورايلي

Posted on

أنا قلق بشأن الذكاء الاصطناعي.

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


تعلم أسرع. حفر أعمق. انظر أبعد.

والسؤال هو ما إذا كان هؤلاء المطورين ينتجون شيئًا جيدًا أم لا.

الفرق بين مطور ذي خبرة وصغار هو أن مطور ذي خبرة يعرف:

  • هناك أكثر من حل جيد لكل مشكلة.
  • الجواب على “ما هو الحل” هو “الأمر يعتمد”.
  • ما يعتمد عليه “، أو على الأقل لديه التعامل مع كيفية معرفة ما يعتمد عليه.

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

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

ما علاقة هذا مع الذكاء الاصطناعي؟ حاليًا ، يمنحك AI التوليدي الإجابة. مع تحسن الذكاء الاصطناعي ، من المحتمل أن يعطيك إجابة تعمل. هذا رائع! لم نعد بحاجة إلى قضاء الكثير من مطوري تدريب الوقت ؛ يمكننا تدريبهم على أن يكونوا “مهندسين فوريين” (مما يجعلني أفكر في المطورين الذين يصلون في الوقت المحدد) ، وسيطلبون من الذكاء الاصطناعى الرمز ، وسيقومون بتسليمه.

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

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

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

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

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

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

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

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

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

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

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

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

(فعلت مقطع فيديو حول هذا الموضوع أيضًا:

مصدر

Leave a Reply

Your email address will not be published. Required fields are marked *