
نویسنده در یادداشتی برای XDA Developers تجربه شخصی خود از کار با ایجنتهای کدنویسی هوش مصنوعی (AI coding agents) را شرح داده و تأکید کرده است که این ابزارها تنها زمانی او را برنامهنویس بهتری کردهاند که از سپردن کل فرایند کدنویسی به آنها دست برداشته است.
از سپردن همهکار به ایجنت تا مشارکت فعال
او در ابتدا با ابزارهایی مانند Claude Code و Codex چنین عمل میکرد: توضیح میداد چه چیزی میخواهد بسازد، به ایجنت دسترسی به پروژه میداد و اجازه میداد از نوشتن کد تا آزمایش پیادهسازی، همهچیز را انجام دهد. اگر بخشی درست کار نمیکرد، تنها از ایجنت میخواست مشکل را برطرف کند. این روش بسیار راحت بود و به او امکان میداد چیزهایی بسازد که بهتنهایی از عهدهشان برنمیآمد.
با این حال، نویسنده بهمرور متوجه شد که از این فرایند چیز زیادی یاد نمیگیرد. او میتوانست توضیح دهد برنامهاش چه کاری انجام میدهد، اما اگر پرسیده میشد یک قابلیت خاص در لایههای زیرین چگونه کار میکند، پاسخ دادن برایش دشوار بود.
روش تازه: فهمیدن پیش از تولید کد
او اکنون بهجای درخواست پیادهسازی یک قابلیت کامل از ایجنت، نخست میپرسد چه کاری باید انجام شود، کدام فایلها باید تغییر کنند و اجزای مختلف چگونه با هم تعامل دارند. سپس پیادهسازی را به وظایف کوچکتر تقسیم میکند و بخشی از کد را خودش مینویسد. وقتی گیر میکند، از ایجنت میخواهد مشکل را توضیح دهد یا رویکردی پیشنهاد کند، نه اینکه بیدرنگ راهحل را تولید کند.
- استفاده از ایجنت برای کدهای قالبی (boilerplate code) و کارهای تکراری
- درخواست توضیح مشکل بهجای دریافت فوری راهحل
- پذیرش مسئولیت برای بخشی از پیادهسازی و فهمیدن نحوه کار کد
به گفته او، نوشتن دستی هر خط کد فقط برای رعایت ظاهر کار ارزش چندانی ندارد، اما وقتی برنامهنویس بخشی از پیادهسازی را بر عهده میگیرد، درک بهتری از نحوه کار کد پیدا میکند و هنگام بروز خطا میداند کجا را بررسی کند.
لزومی به یادگیری سنتی نیست، اما درک مفاهیم لازم است
نویسنده معتقد است در سال ۲۰۲۶ لازم نیست فرد ماهها صرف یادگیری یک زبان برنامهنویسی از صفر کند تا بتواند چیزی کاربردی بسازد. به باور او، حفظ کردن نحو (syntax) یا نوشتن کدهای تکراری وقتی ایجنت میتواند آنها را در چند ثانیه انجام دهد، چندان منطقی نیست. هدف اصلی، فهمیدن چیزی است که ساخته میشود و نحوه کار آن است، حتی اگر برنامهنویس نویسنده همه خطوط کد نباشد.
او میگوید درک مفاهیمی مانند نحوه کار توابع (functions)، ارتباط یک برنامه با API یا جریان داده میان اجزای مختلف، بسیار مفیدتر از بهخاطر سپردن دقیق نحو هر عملیات است. با فهم این مفاهیم، فرد میتواند خواسته خود را به ایجنت توضیح دهد، رویکرد آن را ارزیابی کند و تشخیص دهد چه زمانی چیزی مطابق انتظار پیش نمیرود.
به تجربه او، یادگیری از طریق پروژههای واقعی بهتر از تلاش برای یادگیری همهچیز پیش از شروع کار است. وقتی به موضوعی برمیخورد که آن را نمیفهمد، از ایجنت میخواهد توضیح دهد، نحوه پیادهسازی را بررسی میکند و خودش تغییراتی اعمال میکند. البته او تأکید میکند کسی که قصد دارد مهندس نرمافزار حرفهای شود، به پایهای بسیار قویتر در برنامهنویسی و علوم کامپیوتر نیاز دارد.
کد بیشتر به معنای نرمافزار بهتر نیست
نویسنده یکی از مشکلات کار با ایجنتهای کدنویسی را تولید کد بسیار بیشتر از نیاز واقعی میداند. ایجنت ممکن است برای پیادهسازی یک قابلیت، چند فایل جدید بسازد، وابستگیها (dependencies) اضافه کند یا توابعی بنویسد که برنامه از جای دیگری همان کار را انجام میدهد. چون قابلیت مورد نظر کار میکند، فرد تغییرات را میپذیرد و ادامه میدهد، اما هر افزوده غیرضروری نگهداری برنامه را دشوارتر میکند.
بر اساس پژوهش GitClear در سال ۲۰۲۶ که ۶۲۳ میلیون تغییر کد را تحلیل کرده است، تکرار بلوک کد (code block duplication) نسبت به سال ۲۰۲۳ حدود ۸۱ درصد افزایش یافته است. این پژوهش همچنین از کاهش چشمگیر بازآرایی (refactoring) و استفاده مجدد از کد (code reuse) خبر میدهد. به نوشته نویسنده، ما بیش از هر زمان دیگری کد تولید میکنیم، اما این لزوماً به معنای ساخت نرمافزار بهتر نیست.
او در این زمینه نیز درک برنامهنویسی را مؤثر میداند؛ زیرا وقتی ایجنت راهحلی پیشنهاد میدهد، برنامهنویس میتواند بررسی کند آیا واقعاً به توابع جدید نیاز است، آیا میتوان از کد موجود استفاده کرد و آیا راه سادهتری برای انجام همان کار وجود دارد یا نه.
برنامهنویسی در ۲۰۲۶ تغییر کرده است
نویسنده میپذیرد که برنامهنویسی در سال ۲۰۲۶ بهطور چشمگیری تغییر کرده و هوش مصنوعی و ایجنتهای کدنویسی بخشی جداییناپذیر از آن شدهاند. به گفته او، انتظارات از توسعهدهندگان و مهندسان نرمافزار نیز تغییر کرده و آنها باید در همان هشت ساعت کاری، خروجی بسیار بیشتری ارائه دهند.
با این حال، او همچنان یادگیری کد را مهم میداند و تأکید میکند هرچه فرد درک بیشتری از کدی داشته باشد که با آن کار میکند، در استفاده از این ایجنتها نیز بهتر عمل خواهد کرد.