يا جماعة الخير، السلام عليكم ورحمة الله.
اسمحولي أبدأ بقصة صغيرة صارت معي قبل كم سنة. كنت شغال على مشروع ضخم لعميل، مشروع فيه تحليل بيانات ومعالجتها من مصادر مختلفة. الشغل كان فيه جزء كبير ممل ومكرر بشكل لا يطاق، وهو كتابة “محللات” (Parsers) لكل مصدر بيانات. كل محلل كان بيشبه أخوه، نفس المنطق تقريباً مع اختلافات بسيطة في أسماء الحقول أو طريقة ترتيب البيانات. والله يا جماعة، وصلت لمرحلة كنت أحلم فيها وأنا بكتب `try…catch` وبعمل `map` على المصفوفات. كنت حاسس حالي مش مبرمج، كأني موظف إدخال بيانات بس بلغة بايثون. شغلة كانت “بتجلط” بمعنى الكلمة، وضيعت عليها أسابيع من عمري كان ممكن أستثمرها في حل مشاكل أكثر تعقيداً وإبداعاً.
في ليلة من الليالي، وأنا شبه منهار من الملل والتكرار، قرأت عن أداة جديدة اسمها GitHub Copilot. في البداية كنت متشكك، قلت “شو هالحكي الفاضي؟ ذكاء اصطناعي يكتب كود؟ أكيد بكتب خرابيش”. بس من باب اليأس والفضول، قررت أجربها. وهون يا جماعة كانت الصدمة… كانت اللحظة اللي تغير فيها كل اشي.
ما هو “المبرمج الزوجي الاصطناعي” (AI Pair Programmer)؟
قبل ما أكمل قصتي، خلينا نوضح شو هو “الأشي هاد”.
زمان، كنا بنستخدم تقنية اسمها “البرمجة الزوجية” (Pair Programming)، وهي إنه مبرمجين اثنين يقعدوا على جهاز واحد. واحد بيكتب الكود (اسمه السائق)، والثاني بيراقب وبفكر بشكل استراتيجي وبيقترح أفكار (اسمه الملاح). الفكرة ممتازة لتبادل الخبرات وتقليل الأخطاء.
المبرمج الزوجي الاصطناعي هو نفس المبدأ، لكن “الملاح” تبعك هو نموذج ذكاء اصطناعي فائق الذكاء، تدرب على مليارات الأسطر من الكود المفتوح المصدر. هو رفيقك اللي ساكن جوا محرر الأكواد تبعك (زي VS Code)، بيشوف أنت شو بتكتب، وبيحاول يتوقع ويكمل الكود عنك. أشهر مثال عليه هو GitHub Copilot، لكن فيه أدوات ثانية ممتازة زي Amazon CodeWhisperer و Tabnine.
ببساطة، هو مش مجرد أداة إكمال تلقائي (Autocomplete) غبية، هو فاهم السياق، فاهم نيتك من خلال تعليقاتك وأسماء المتغيرات، وبيقترح عليك كتل برمجية كاملة، من دوال بسيطة إلى كلاسات معقدة.
تجربتي الأولى: كيف تحول الشك إلى يقين
نرجع لقصتي مع مشروع تحليل البيانات. بعد ما ثبتت إضافة Copilot، فتحت ملف بايثون جديد وبدأت أكتب تعليق بسيط، مجرد وصف للمهمة اللي بدي أعملها:
# function to read a json file, parse user data, and extract name and email
ما كبست Enter حتى… وفجأة، ظهر كود مقترح باللون الرمادي، كأنه شبح في الشاشة. الكود كان عبارة عن دالة بايثون كاملة، بتستورد مكتبة `json`، وبتفتح الملف، وبتعمل حلقة `for` على البيانات، وبتستخرج الحقول المطلوبة بالضبط، وحتى حطلي معالجة للأخطاء `try…except`.
والله يا جماعة، للحظة حسيت كأنه في “جنّي” قاعد جنبي وشايف اللي براسي! قعدت أضحك لحالي من الصدمة. عدّلت شوي على الكود المقترح ليناسب حالتي 100%، وفي أقل من دقيقة، كنت مخلص “محلل” كامل كان بياخذ مني ربع ساعة من الكتابة والتركيز. كررت العملية مع باقي المصادر، وكل مرة كنت أكتب تعليق يوصف الاختلاف البسيط، وكان Copilot يفهمني ويولد الكود المناسب. المشروع اللي كان مسببلي كابوس، خلصته في يومين بدل أسابيع.
أمثلة عملية من شغلي اليومي
من يومها، صار المبرمج الزوجي الاصطناعي جزء لا يتجزأ من أدواتي. خليني أعطيكم أمثلة حقيقية كيف بستخدمه بشكل يومي:
1. التخلص من الكود المتكرر (Boilerplate)
هاي أكبر فائدة. كلنا بنعرف قديش ممل نكتب نفس الكود المبدئي في كل مشروع. مثلاً، لو بدي أعمل نقطة نهاية (endpoint) جديدة في سيرفر Express.js لجلب بيانات مستخدم.
زمان كنت أكتب كل هاد يدويًا:
const express = require('express');
const router = express.Router();
const User = require('../models/User');
// Get user by ID
router.get('/:id', async (req, res) => {
try {
const user = await User.findById(req.params.id);
if (!user) {
return res.status(404).json({ msg: 'User not found' });
}
res.json(user);
} catch (err) {
console.error(err.message);
res.status(500).send('Server Error');
}
});
module.exports = router;
اليوم، كل اللي بعمله هو كتابة تعليق بسيط:
// Express route to get user by id
والذكاء الاصطناعي بيكمل الباقي. أنا بس بتأكد من منطق العمل وبكبس Tab للموافقة. توفير هائل للوقت والجهد الذهني.
2. كتابة الوحدات الاختبارية (Unit Tests)
كتابة الاختبارات شغلة مهمة جداً لكنها مملة. المبرمج الزوجي الاصطناعي عبقري في هاي الشغلة. لو عندي دالة بسيطة زي هاي:
// utils.js
function calculateDiscount(price, percentage) {
if (price < 0 || percentage 100) {
throw new Error('Invalid input');
}
return price - (price * (percentage / 100));
}
بروح على ملف الاختبار، وبكتب تعليق:
// test for calculateDiscount function
فوراً بيقترح عليّ اختبارات للحالات الطبيعية، للحالات الحدّية (edge cases) مثل الخصم 0% أو 100%، وحتى اختبارات للتأكد من أنه يرمي خطأ (throw error) عند إدخال قيم خاطئة. شغلة بتخلي عملية الاختبار أسرع وأكثر متعة.
3. حل المشاكل المعقدة وتعلم أشياء جديدة
الأداة هاي مش بس للكود المتكرر. أحياناً بستخدمها لمساعدتي في كتابة خوارزميات معقدة أو تعابير نمطية (Regex). مثلاً، مرة احتجت أكتب تعبير نمطي للتحقق من صحة رقم جوال (بغض النظر عن الدولة). كتبت تعليق:
// regex for international phone number format like +123-456-7890
وأعطاني تعبير نمطي ممتاز كبداية، عدلت عليه تعديلات بسيطة ليناسب احتياجي. الأجمل من هيك، لما أكون بتعلم لغة جديدة أو مكتبة جديدة، هو بساعدني أكتب كود “اصطلاحي” (idiomatic) – يعني الكود اللي بينكتب بالطريقة الصحيحة والمتبعة في مجتمع هاي اللغة، مش مجرد كود شغال والسلام.
نصائح أبو عمر الذهبية لاستخدام المبرمج الزوجي الاصطناعي
بعد فترة من الاستخدام، صار عندي شوية قواعد وملاحظات بحب أشاركها معكم لتستفيدوا أقصى استفادة وتتجنبوا المشاكل:
- ثق ولكن تحقق: هاي أهم نصيحة. الكود اللي بيقترحه الذكاء الاصطناعي مش دايماً صحيح 100%، وأحياناً بيكون فيه أخطاء منطقية أو ثغرات أمنية. هو مساعدك، مش بديل عن عقلك. دايماً اقرأ الكود المقترح، افهمه، وتأكد من سلامته قبل ما تعتمده.
- فن كتابة التعليقات (Prompts): جودة المخرجات من جودة المدخلات. كل ما كان تعليقك أو بداية الكود اللي بتكتبه أوضح وأكثر تحديداً، كل ما كان الاقتراح أفضل. بدل ما تكتب `// get data`، اكتب `// fetch active users from the database, sorted by registration date descending`.
- لا تستخدمه للغش، بل للتعلم: إذا كنت طالب أو مبتدئ، لا تخلي الأداة تحل عنك واجباتك بدون ما تفهم. استخدمها كفرصة للتعلم. لما يقترح عليك كود، اسأل حالك: “ليش كتبه بهاي الطريقة؟ شو هاي الدالة بتعمل؟”. هيك بتطور حالك أسرع.
- انتبه للخصوصية والأمان: تذكر أن الكود اللي بتكتبه (والتعليقات) ممكن يتم إرساله لخوادم الشركة (مثل GitHub/Microsoft) لتحسين النموذج. تجنب كتابة أي معلومات حساسة جداً مثل كلمات سر، مفاتيح API، أو بيانات شخصية في الكود اللي بتشاركه مع الأداة.
الخلاصة: هل سيأخذ الذكاء الاصطناعي وظائفنا؟
بعد كل هالحكي، بيجي السؤال الكبير: هل هاي الأدوات رح تخلينا كبشر بلا وظيفة؟
جوابي القاطع هو لا. لكنها رح تغير طبيعة وظيفتنا. زي ما الآلة الحاسبة ما قضت على علماء الرياضيات، بل حررتهم من الحسابات اليدوية ليركزوا على النظريات، المبرمج الزوجي الاصطناعي بيحررنا من كتابة الكود الممل والمتكرر، وبيخلينا نركز على الصورة الأكبر: تصميم الأنظمة، حل المشاكل المعقدة، الإبداع، والتفكير النقدي.
المستقبل مش للمبرمج اللي بيستخدم الذكاء الاصطناعي، ولا للمبرمج اللي ما بيستخدمه. المستقبل للمبرمج اللي بيعرف متى وكيف يستخدم الذكاء الاصطناعي كأداة لتعزيز قدراته البشرية.
نصيحتي الأخيرة لكل مبرمج ومبرمجة: لا تخافوا من هاي الأدوات، بل احتضنوها. جربوها، تعلموا عليها، وخلّوها تكون “الملاح” الذكي في رحلتكم البرمجية. رح تتفاجأوا بحجم الوقت والجهد اللي رح توفروه، وبحجم الإبداع اللي رح تطلقوه. 🚀
والله ولي التوفيق.