استخدام ChatGPT للبرمجة بلغات Python و C و Java

ChatGPT جيد بشكل عجيب في كتابة الكود.

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

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

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

فحص تلقائي للصفحة في بايثون

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

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

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

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

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

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

مولد كلمة السر في سي

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

لقد قمت بزيادة المتغير العام MAX_LENGTH إلى 32 حرفًا بدلاً من 16 ، وتم إنشاء كلمة المرور التالية لي: aW3H0E (& FPQvG8B @ 4 * () + 4yRKTKB # U0O. من الآمن القول أنه يعمل!

آلة حاسبة في جافا

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

هذه هي فئة الآلة الحاسبة:

هذا هو الفصل الرئيسي:

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

ChatGPT لائق في البرمجة

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

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

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