كيف يُمكنني تعلم البرمجة باستخدام ChatGPT إذا اضطررت للبدء من جديد؟
استكشاف ChatGPT في رحلتي لتعلم البرمجة على مدار 15 عامًا - تجاوز مجرد النسخ واللصق
لقد كانت البرمجة جزءًا من حياتي منذ أن كان عمري 10 سنوات. من تعديل أكواد و CSS لملفي الشخصي على Friendster خلال أيام الإنترنت البسيطة، إلى استكشاف ثغرات SQL injections من أجل الإثارة، وبناء روبوت ثلاثي الأرجل للمتعة، ومؤخرًا الغوص في برمجة Python، كانت رحلتي في البرمجة متنوعة وممتعة!
إليك ما تعلمته من مختلف مناهج البرمجة.
الطريقة التي أتعلم بها البرمجة متشابهة دائمًا؛ كما يقول الناس، في الغالب مجرد نسخ ولصق. 😅
عندما يتعلق الأمر ببناء شيء ما في عالم البرمجة، إليك تفصيل لطريقتي:
- اختر الإطار أو المكتبة المناسبة (Framework or Library)
- تعلم من المشاريع السابقة
- قسّمها إلى خطوات
قسّم مشروعك إلى خطوات عملية قابلة للتنفيذ، مما يجعل التطوير أقل إرهاقًا. - ابحث عن كل جزء على Google
لكل خطوة، استشر Google / Bing / DuckDuckGo / أي محرك بحث تفضله للحصول على رؤى وإرشادات وحلول محتملة. - ابدأ البرمجة
حاول تنفيذ كل خطوة بشكل منهجي.
ومع ذلك، حتى التعليمات البرمجية المدروسة جيدًا يمكن أن تواجه أخطاء. إليك استراتيجيتي لاستكشاف الأخطاء وإصلاحها:
1. تحقق من وثائق الإطار (Framework Documentation): اقرأ الوثائق دائمًا!
2. البحث في Google و Stack Overflow: ابحث في Google و Stack Overflow. مثال على الكلمات المفتاحية سيكون:
site:stackoverflow.com [لغة البرمجة] [المكتبة] خطأ [رسالة الخطأ]
site:stackoverflow.com Python خطأ ImportError: pandas الوحدة النمطية غير موجودة
– حلول Stack Overflow: إذا كانت المشكلة موجودة بالفعل على Stack Overflow، أبحث عن التعليقات والحلول الأكثر تصويتًا، وغالبًا ما أجد إجابة سريعة وموثوقة. هذه المنصة تعتبر مرجعًا هامًا للمطورين لحل أخطاء Python الشائعة ومكتبة بانداز.
– الثقة بحدسي: عندما لا يكون لدى Stack Overflow إجابة، أثق بحدسي للبحث عن مصادر جديرة بالثقة على جوجل؛ GeeksForGeeks و Kaggle و W3School و Towards Data Science لأشياء DS 😉
3. نسخ ولصق حل الكود
4. التحقق والاختبار: تتضمن الخطوة الأخيرة فحص الكود المعدل بدقة واختباره للتأكد من أنه يعمل على النحو المنشود. هذا يضمن عدم وجود التحقق من الكود واختبار الكود بشكل صحيح.
وها قد حللت المشكلة التقنية بنجاح!
أليس هذا جميلاً؟
ولكن في الواقع، هل ما زلنا نفعل هذا حقًا؟!
لاحظت مؤخرًا تحولًا في كيفية تعامل المبرمجين الجدد مع البرمجة. أقوم بتدريس كيفية البرمجة بشكل احترافي منذ حوالي 3 سنوات حتى الآن، متنقلًا بين معسكرات تدريب البرمجة والمحاضرات كضيف في الجامعات والتدريب المؤسسي. الطريقة التي يدخل بها المبرمجون في تعلم البرمجة قد تغيرت قليلًا، مع التركيز على أدوات الذكاء الاصطناعي في البرمجة.
عادةً ما أنصح الوجوه الجديدة بالالتزام بالطريقة القديمة المتمثلة في التصفح والبحث في جوجل عن إجابات، ولكن لا يزال الناس يستخدمون ChatGPT في النهاية. وعذرهم هو
“وجود ChatGPT (لأغراض البرمجة) يشبه وجود زميل دراسة إضافي – يتحدث معك كشخص عادي.”
إنه مفيد للغاية، خاصة عندما لا تزال تحاول فهم الأمور من نتائج البحث والوثائق – لتطوير ما يسمى بـ “حدس المبرمج“.
الآن، لا تفهموني خطأ، أنا أؤيد الأساسيات. التصفح، وقراءة الوثائق، وطرح الأسئلة في المجتمع – هذه خطوات قوية، في رأيي. الاعتماد فقط على ChatGPT قد يكون مبالغًا فيه بعض الشيء. بالتأكيد، يمكنه إعداد ملخص سريع للإجابات، ولكن طرق التصفح التقليدية تمنحك حرية الاختيار والتجربة، وهو أمر بالغ الأهمية في عالم البرمجة.
ولكن، يجب أن أعترف بالفضل لأهله – ChatGPT سريع للغاية في تقديم الإجابات، خاصة عندما لا تزال تحاول معرفة الصواب من الخطأ في نتائج البحث والوثائق. يعتبر ChatGPT أداة قوية لتسريع عملية التعلم واكتشاف حلول للمشاكل البرمجية المعقدة.
أدرك أن هذا التحول في استخدام ChatGPT كزميل دراسة لا يحدث فقط في مجال البرمجة، فقد أحدث Chatgpt ثورة في طريقة تعلم الناس، حتى أنني أستخدم ChatGPT لتصحيح قواعد اللغة الخاصة بي لهذه المشاركة، آسف Grammarly.
رفض استخدام ChatGPT يشبه رفض استخدام محركات البحث في أوائل الألفية الثالثة. في حين أن ChatGPT قد يأتي مع تحيزات وأخطاء، على غرار محركات البحث التي تحتوي على معلومات غير موثوقة أو خدع. عندما يتم استخدام ChatGPT بشكل مناسب، يمكنه تسريع عملية التعلم.
الآن، لنتخيل سيناريو واقعيًا حيث يمكن أن يساعدك ChatGPT من خلال كونه صديقك في البرمجة للمساعدة في تصحيح الأخطاء.
سيناريو: تصحيح أخطاء سكريبت Python (Python Script Debugging)
تخيل أنك تعمل على سكريبت Python لمشروع ما، وواجهت خطأ غير متوقع لا يمكنك حله. هذه مشكلة شائعة في تطوير البرمجيات، وتتطلب مهارات متقدمة في تصحيح الأخطاء.
إليك الطريقة التي تعلمت بها تصحيح الأخطاء قديمًا – في العصر الذي سبق ChatGPT. هذه الأساليب الكلاسيكية لا تزال ذات قيمة كبيرة في فهم أساسيات تصحيح الأخطاء.
منهجية التصفح:
- التحقق من الوثائق (Documentation):
ابدأ بالتحقق من وثائق Python الخاصة بالوحدة النمطية (Module) أو الدالة (Function) التي تسببت في الخطأ. تعتبر وثائق Python مرجعًا أساسيًا لفهم كيفية عمل الوحدات المختلفة وكيفية استخدامها بشكل صحيح، مما يساعد في تحديد أسباب الأخطاء وإصلاحها بكفاءة.
على سبيل المثال:
– قم بزيارة https://scikit-learn.org/stable/modules/ للحصول على وثائق Scikit Learn.
2. البحث في Google و Stack Overflow:
إذا لم تقدم الوثائق حلاً، يمكنك اللجوء إلى Google و Stack Overflow. تفحص مختلف سلاسل المنتديات والمناقشات للعثور على مشكلة مماثلة وحلها. هذه المصادر تعتبر قيّمة في استكشاف الأخطاء وإصلاحها في مجال تعلم الآلة.
3. ثق بحدسك:
إذا كانت المشكلة فريدة أو غير موثقة بشكل جيد، فثق بحدسك! يمكنك استكشاف المقالات والمصادر على Google التي وجدتها جديرة بالثقة في الماضي، ومحاولة تكييف حلول مماثلة لمشكلتك. هذا النهج يعزز مهاراتك في حل المشكلات التقنية.
يمكنك أن ترى أنه في نتيجة البحث أعلاه، النتائج من W3school – (موقع تعليمي موثوق به للترميز، رائع للغش) والنتيجتين الأخريين هما وثائق Pandas الرسمية. يمكنك أن ترى أن محركات البحث تقترح على المستخدمين إلقاء نظرة على الوثائق الرسمية. 😉
وهذه هي الطريقة التي يمكنك بها استخدام ChatGPT لمساعدتك في تصحيح مشكلة.
منهجية جديدة مع ChatGPT:
- التفاعل مع ChatGPT في محادثات:
بدلاً من تصفح الوثائق والمنتديات فقط، يمكنك التفاعل مع ChatGPT في محادثة مباشرة. قدم وصفًا موجزًا للخطأ واطرح سؤالك. على سبيل المثال، يمكنك استخدام ChatGPT للحصول على مساعدة فورية في فهم الأخطاء البرمجية الشائعة وتصحيحها.
“أواجه مشكلة في سكربت [لغة البرمجة] الخاص بي حيث [وصف الخطأ]. هل يمكنك مساعدتي في فهم الأسباب المحتملة لهذا الخطأ واقتراح حل ممكن؟”
2. توضيح المفاهيم باستخدام ChatGPT:
إذا كان الخطأ متعلقًا بمفهوم تواجه صعوبة في فهمه، يمكنك أن تطلب من ChatGPT شرح هذا المفهوم. على سبيل المثال،
“اشرح كيف يعمل [مفهوم محدد] في [لغة البرمجة]؟ أعتقد أنه قد يكون مرتبطًا بالخطأ الذي أواجهه. الخطأ هو: [الخطأ]”
3. اطلب توصيات لاستكشاف الأخطاء وإصلاحها:
يمكنك أن تطلب من ChatGPT نصائح عامة حول استكشاف أخطاء برامج Python وإصلاحها. على سبيل المثال،
“ما هي بعض الاستراتيجيات الشائعة للتعامل مع [المشكلة]؟ وهل من توصيات بشأن الأدوات أو التقنيات؟”
المزايا المحتملة:
- إرشادات مخصصة: يمكن لـ ChatGPT توفير إرشادات مخصصة بناءً على التفاصيل المحددة التي تقدمها حول الخطأ وفهمك للمشكلة. هذه الميزة تعتمد على قدرات النموذج اللغوي الكبير (LLM) الخاص بـ ChatGPT لتقديم مساعدة مصممة خصيصًا.
- توضيح المفاهيم: يمكنك طلب شروحات وتوضيحات حول المفاهيم مباشرةً من ChatGPT، مستفيدًا من قدرات النموذج اللغوي الكبير (LLM) الخاص به.
- استكشاف الأخطاء وإصلاحها بكفاءة: قد يقدم ChatGPT نصائح موجزة وذات صلة لاستكشاف الأخطاء وإصلاحها، مما قد يؤدي إلى تبسيط عملية تصحيح الأخطاء.
القيود المحتملة:
لنتحدث الآن عن سلبيات الاعتماد على ChatGPT بنسبة 100%. لقد لاحظت هذه المشكلات كثيرًا في رحلة طلابي في استخدام ChatGPT. في حقبة ما بعد ChatGPT، كان طلابي ينسخون ويلصقون رسالة الخطأ المكونة من سطر واحد من واجهة سطر الأوامر الخاصة بهم على الرغم من أن الخطأ كان يتكون من 100 سطر ومرتبط ببعض الوحدات والتبعيات. قد ينجح أحيانًا مطالبة ChatGPT بشرح الحل البديل من خلال تقديم رمز خطأ مكون من سطر واحد، أو ما هو أسوأ من ذلك – قد يضيف ساعة أو ساعتين من العمل اليدوي لتصحيح الأخطاء.
يأتي ChatGPT مع قيد يتمثل في عدم القدرة على رؤية سياق التعليمات البرمجية الخاصة بك. بالتأكيد، يمكنك دائمًا إعطاء سياق لتعليماتك البرمجية. في التعليمات البرمجية الأكثر تعقيدًا، قد لا تتمكن من إعطاء كل سطر من التعليمات البرمجية إلى ChatGPT. حقيقة أن ChatGPT يرى جزءًا صغيرًا فقط من التعليمات البرمجية الخاصة بك، فإن ChatGPT إما أن يفترض بقية التعليمات البرمجية بناءً على قاعدة معارفه أو يهلوس.
فيما يلي القيود المحتملة لاستخدام ChatGPT:
- نقص التفاعل الديناميكي في الوقت الفعلي: في حين أن ChatGPT يوفر رؤى قيمة، إلا أنه يفتقر إلى التفاعل في الوقت الفعلي والتبادل الديناميكي الذي قد توفره المنتديات أو سلاسل المناقشة. على StackOverflow، قد يكون لديك 10 أشخاص مختلفين يقترحون 3 حلول مختلفة يمكنك مقارنتها إما عن طريق DIY (افعلها بنفسك، جربها) أو شاهد عدد الأصوات المؤيدة.
- الاعتماد على المعرفة السابقة: تعتمد جودة استجابة ChatGPT على المعلومات التي تم تدريبه عليها، وقد لا يكون على علم بأحدث تحديثات الإطار أو التفاصيل المحددة لمشروعك.
- قد يضيف وقتًا إضافيًا لتصحيح الأخطاء: ليس لدى ChatGPT سياق لتعليماتك البرمجية الكاملة، لذلك قد يؤدي ذلك إلى مزيد من الوقت لتصحيح الأخطاء.
- فهم محدود للمفهوم: تمنحك طرق التصفح التقليدية حرية الانتقاء والاختيار، والتجربة قليلًا، وهو أمر بالغ الأهمية في عالم البرمجة. إذا كنت تعرف كيفية اختيار المصدر المناسب، فربما تتعلم المزيد من التصفح بمفردك بدلاً من الاعتماد على نموذج ChatGPT العام.
ما لم تسأل نموذجًا لغويًا مدربًا ومتخصصًا في مفاهيم البرمجة والتكنولوجيا، أو أوراق بحثية حول مواد البرمجة، أو محاضرات مشهورة حول التعلم العميق من Andrew Ng، أو تغريدة Yann Le Cunn على X (تويتر سابقًا)، فإن ChatGPT ستقدم إجابة عامة إلى حد كبير.
يوضح هذا السيناريو كيف يمكن أن يكون ChatGPT أداة قيمة في مجموعة أدوات البرمجة الخاصة بك، خاصةً للحصول على إرشادات مخصصة وتوضيح المفاهيم. تذكر أن توازن بين مساعدة ChatGPT وطرق التصفح واسأل المجتمع، مع الأخذ في الاعتبار نقاط قوته وقيوده.
خلاصة القول
أوصي بها للمبرمج: أدوات وموارد أساسية
إذا كنت ترغب حقًا في الاستفادة من نموذج الإكمال التلقائي، فبدلًا من استخدام ChatGPT فقط، حاول استخدام ملحقات VScode لمهام الإكمال التلقائي للتعليمات البرمجية مثل CodeGPT — امتداد GPT4 على VScode، أو GitHub Copilot، أو أدوات الذكاء الاصطناعي للإكمال التلقائي في Google Colab. هذه الأدوات تعزز إنتاجية المطورين بشكل ملحوظ.
كما ترى في لقطة الشاشة أعلاه، يقدم Google Colab تلقائيًا للمستخدم اقتراحات حول التعليمات البرمجية التالية.
بديل آخر هو Github Copilot. باستخدام GitHub Copilot، يمكنك الحصول على اقتراح قائم على الذكاء الاصطناعي في الوقت الفعلي. يقترح GitHub Copilot إكمال التعليمات البرمجية أثناء كتابة المطورين ويحول المطالبات إلى اقتراحات ترميز بناءً على سياق المشروع واتفاقيات الأسلوب. وفقًا لهذا الإصدار من Github، يتم تشغيل Copilot Chat الآن بواسطة OpenAI GPT-4 (نموذج مشابه يستخدمه ChatGPT).
لقد كنت أستخدم CodeGPT بنشاط كامتداد VSCode قبل أن أعرف أن Github Copilot متاح مجانًا إذا كنت في برنامج تعليمي. حصل CodeGPT Co على مليون عملية تنزيل حتى الآن في VSCode Extension Marketplace. يسمح CodeGPT بالتكامل السلس مع ChatGPT API و Google PaLM 2 و Meta Llama.
يمكنك الحصول على اقتراحات التعليمات البرمجية من خلال التعليقات، وإليك الطريقة:
- اكتب تعليقًا تطلب فيه رمزًا معينًا
- اضغط
cmd + shift + i
- استخدم الكود 😎
يمكنك أيضًا بدء محادثة عبر الامتداد في القائمة والانتقال إلى محادثات الترميز 💬
عندما أفكر في رحلتي في مجال البرمجة، فإن الدرس القيم الذي تعلمته هو أنه لا توجد طريقة واحدة تناسب الجميع للتعلم. من الضروري تبني مجموعة متنوعة من طرق التعلم، والجمع بين الممارسات التقليدية مثل التصفح والتفاعل المجتمعي مع القدرات المبتكرة لأدوات مثل ChatGPT وأدوات الإكمال التلقائي للتعليمات البرمجية.
ما يجب فعله:
- الاستفادة من مصادر التعلم المخصصة: حقق أقصى استفادة من توصيات ChatGPT لمواد التعلم، واستخدمها كأداة رئيسية في رحلتك التعليمية.
- التعاون لحل المشكلات: استخدم ChatGPT كشريك تعاوني كما لو كنت تبرمج مع أصدقائك، مما يعزز من قدرتك على مواجهة التحديات البرمجية بفعالية.
أشياء يجب تجنبها:
- الاعتماد المفرط على ChatGPT: تجنب الاعتماد بشكل كامل على ChatGPT، واحرص على اتباع نهج متوازن لتعزيز مهارات حل المشكلات بشكل مستقل. فبينما يعتبر ChatGPT مساعدًا قويًا في فهم هياكل الكود وتوليد الأفكار، فإن الاعتماد الكلي عليه قد يعيق تطوير قدراتك الذاتية في التحليل والتفكير النقدي، وهما أساسيان لتصبح مطورًا متمكنًا.
- إهمال التفاعل المباشر مع مجتمع المبرمجين: على الرغم من أن ChatGPT يقدم رؤى قيمة، لا تهمل فوائد التفاعل المباشر وردود الفعل من مجتمعات البرمجة. يساعد ذلك أيضًا في بناء سمعة طيبة في المجتمع. فالتفاعل مع المبرمجين الآخرين يوفر لك فرصًا للتعلم من تجاربهم، وتبادل المعرفة، والحصول على وجهات نظر مختلفة حول التحديات التي تواجهك.
- تجاهل ممارسة البرمجة العملية: وازن بين إرشادات ChatGPT والتدريب العملي على البرمجة لتعزيز المعرفة النظرية بالتطبيق العملي. فالتطبيق العملي هو المفتاح لتحويل المفاهيم النظرية إلى مهارات حقيقية. حاول كتابة الأكواد بنفسك، وتجربة حلول مختلفة، وتصحيح الأخطاء، فهذا سيساعدك على ترسيخ فهمك للمفاهيم وتطوير قدراتك في حل المشكلات.
أخبرني في التعليقات كيف تستخدم ChatGPT لمساعدتك في البرمجة!
برمجة سعيدة!