با هوش مصنوعی کدنویسی کنیم، ولی وابسته نشویم

9 آبان 1405 - خواندن 6 دقیقه - 22 بازدید


امروز ابزارهای هوش مصنوعی می توانند در چند ثانیه قطعه کدی بنویسند که نوشتنش برای ما شاید نیم ساعت طول می کشید. وسوسه انگیز است که همه چیز را به آن ها بسپاریم؛ اما برنامه نویسی فقط «کدی که کار کند» نیست. برنامه نویسی یعنی فهمیدن مسئله، تصمیم گرفتن و مسئولیت نتیجه را پذیرفتن. اگر این سه کار را به هوش مصنوعی واگذار کنیم، کم کم مهارت خودمان را از دست می دهیم.

هوش مصنوعی را همکار تازه کار بدانید، نه استاد

بهترین نگاه به دستیارهای کدنویسی این است: یک همکار پرانرژی و سریع که گاهی راه حل های خوبی پیشنهاد می دهد و گاهی هم با اعتمادبه نفس کامل، اشتباه می کند. شما نقش برنامه نویس ارشد را دارید؛ یعنی پیشنهاد را می شنوید، بررسی می کنید و در نهایت شما تصمیم می گیرید.

چرا وابستگی خطرناک است؟

اول، کدی که نفهمیده ایم، وقتی خراب شود نمی توانیم درستش کنیم. خطا معمولا دقیقا همان جایی سر برمی آورد که ما از آن رد شده ایم.

دوم، هوش مصنوعی گاهی کدی می نویسد که به ظاهر درست است ولی از نظر امنیتی یا کارایی ضعف دارد؛ مثلا ورودی کاربر را بدون اعتبارسنجی کافی می پذیرد یا راه حلی کند برای داده های بزرگ انتخاب می کند. پژوهش ها هم هشدار می دهند که این خطر فقط نظری نیست: در گزارش امنیتی Veracode در سال ۲۰۲۵، در یک بنچمارک مشخص با ۸۰ تکلیف و بیش از ۱۰۰ مدل زبانی، در حدود ۴۵٪ موارد آسیب پذیری امنیتی گزارش شد. این عدد، نرخ خطای همه ی کدهای تولیدشده در دنیای واقعی نیست، ولی نشان می دهد بازبینی سطحی کافی نیست.

سوم، یادگیری سطحی می شود. اگر همیشه جواب آماده بگیریم، مغز ما فرصت «دست وپنجه نرم کردن» با مسئله را پیدا نمی کند؛ همان فرصتی که مهارت واقعی از دل آن بیرون می آید. در یک کارآزمایی پژوهشی Anthropic در ژانویه ی ۲۰۲۶ با ۵۲ توسعه دهنده ی عمدتا تازه کار، گروهی که با کمک هوش مصنوعی کتابخانه ی ناآشنایی را یاد گرفتند در آزمون درک بدون کمک، به طور میانگین ۵۰٪ گرفتند، در برابر ۶۷٪ گروه کدنویسی دستی؛ بیشترین فاصله هم در اشکال زدایی بود. البته این مطالعه افت مهارت بلندمدت را اندازه نگرفته است و پژوهش دیگری در سال ۲۰۲۶ روی توسعه دهندگان حرفه ای تفاوت معناداری در کیفیت اصلاح بعدی کد نیافت؛ پس ماجرا سیاه وسفید نیست، ولی احتیاط لازم است.

یک گردش کار سالم برای کار با هوش مصنوعی

۱. اول خودتان فکر کنید. پیش از پرسیدن، مسئله را با یک جمله بنویسید: ورودی چیست، خروجی مورد انتظار چیست، محدودیت ها کدام اند؟ همین یک جمله، کیفیت پاسخ را چند برابر می کند.

۲. از هوش مصنوعی پیش نویس بخواهید، نه جواب نهایی. برای کارهای تکراری، قالب های آماده و شروع اولیه عالی است؛ برای منطق اصلی و حساس، با احتیاط بیشتری برخورد کنید.

۳. خط به خط بخوانید. از خودتان بپرسید: این خط دقیقا چه می کند؟ اگر این تابع ورودی غیرمنتظره بگیرد چه می شود؟ آیا نام ها و ساختار کد با سبک پروژه هماهنگ است؟

۴. تست کنید، نه فقط اجرا. یک تست ساده برای حالت عادی و یک تست برای حالت مرزی بنویسید. کدی که فقط در یک مثال کار کند، هنوز قابل اعتماد نیست.

۵. از هوش مصنوعی توضیح بخواهید. وقتی بخشی از کد را نمی فهمید، بگویید «این قسمت را قدم به قدم توضیح بده» یا «یک روش دیگر برای همین کار نشان بده». این طوری ابزار، معلم شما می شود نه جایگزین شما.

۶. گاهی بدون هوش مصنوعی تمرین کنید. مثل ورزشکار که گاهی بدون وزنه ی کمکی تمرین می کند، گاهی یک مسئله ی کوچک را کاملا با دست خودتان حل کنید تا عضله ی فکری تان ضعیف نشود.

چند قانون ساده و کاربردی

- کد حساس، رمز، کلید و داده ی خصوصی را در ابزارهای عمومی وارد نکنید.
- کدی را که نمی توانید برای یک هم تیمی توضیح بدهید، وارد پروژه نکنید.
- نام بسته ها و کتابخانه های پیشنهادی را بررسی کنید؛ در پژوهشی که در USENIX Security ۲۰۲۵ منتشر شد، بخشی از بسته های پیشنهادشده نام های غیرواقعی و ابداعی بودند و همین می تواند راه را برای سوءاستفاده باز کند.
- اگر پاسخ هوش مصنوعی با دانسته های شما تناقض داشت، اول دانسته ی خودتان را بررسی کنید؛ ولی صرفا به خاطر روان بودن پاسخ، آن را قبول نکنید.
- برای یادگیری، از هوش مصنوعی سوال های «چرا» بپرسید، نه فقط «چطور».

جمع بندی



 



هوش مصنوعی قرار نیست برنامه نویس بودن ما را بی معنی کند؛ قرار است کارهای تکراری را از دوش ما بردارد تا وقت بیشتری برای فکر کردن، طراحی و حل مسئله های واقعی داشته باشیم. کسی در این مسیر جلو می افتد که ابزار را خوب بلد باشد، ولی وابسته ی آن نشود: پیش نویس را از هوش مصنوعی می گیرد، تصمیم را خودش می گیرد و مسئولیت کد را خودش می پذیرد.

شما چطور از هوش مصنوعی در کدنویسی استفاده می کنید؟ تجربه تان را بنویسید؛ شاید همان نکته ی کوچک شما، راهگشای یک برنامه نویس دیگر باشد.