به عنوان یک مهندس نرم‌افزار، حالا تک‌تک خط‌های کدم را هوش مصنوعی می‌نویسد: دربارهٔ Vibe Coding

به عنوان یک مهندس نرم‌افزار، حالا تک‌تک خط‌های کدم را هوش مصنوعی می‌نویسد: دربارهٔ Vibe Coding

بیش از شش سال است که به عنوان مهندس نرم‌افزار کار می‌کنم، اما حالا بیشتر از یک سال می‌شود که حتی یک خط کد هم با دست ننوشته‌ام. در پروژه‌های امروزم، تمام خطوط کد حاصل کار هوش مصنوعی است. با این حال، سال پیش که برای اولین بار سراغ کدنویسی با هوش مصنوعی رفتم، این سرمستی و لذت ناب حتی سه روز هم دوام نیاورد.

لذت شیرین Vibe Coding

خوب یادم هست؛ ژوئن سال گذشته (۲۰۲۵) بود که تعریف Cursor را زیاد شنیده بودم و بالاخره بازش کردم. در نگاه اول درست شبیه به ادیتور نام‌آشنای VS Code بود، فقط یک پنل کناری برای گفتگو با هوش مصنوعی داشت.

تا پیش از آن، تصورم از برنامه‌نویسی با هوش مصنوعی در حد همان قابلیت‌های Auto-complete پیشرفتهٔ GitHub Copilot مانده بود. اما به محض اینکه اولین پرامپت را نوشتم و ارسال را زدم، جادو اتفاق افتاد. دیدم هوش مصنوعی با سرعتی باورنکردنی در حال تحلیل است و پشت سر هم ده‌ها و صدها خط کد در ادیتور پیاده می‌کند؛ حتی بدون معطلی بین فایل‌های مختلف جابه‌جا می‌شد، آن‌ها را به‌روزرسانی می‌کرد و خودش دستورات را داخل ترمینال به اجرا درمی‌آورد.

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

در آن لحظه احساس کردم قلم جادویی به دستم داده‌اند؛ شور و شوق کشف دریچه‌ای رو به یک دنیای کاملاً تازه.

همان موقع حس و حالم را این‌طور نوشتم:

شیوهٔ Vibe Coding اساساً برای افراد مبتلا به ADHD ساخته شده است. مدل سنتی کدنویسی کاملاً در تضاد با ویژگی‌های ADHD بود، اما Vibe Coding یک‌شبه تمام آن درگیری‌ها را حل کرد: فرار از نوشتن تست، تنفر از CSS، غلط‌های املایی مداوم در نام متغیرها و بی‌حوصلگی برای حل باگ‌های کسل‌کننده و پیش‌پاافتاده.

حالا با همراهی هوش مصنوعی، چرخهٔ بازخورد به شدت سریع شده و حس دستاورد بی‌نظیری به آدم می‌دهد؛ اتفاقاً هر چقدر کار فرسایشی‌تر و تکراری‌تر باشد، هوش مصنوعی آن را تمیزتر تحویل می‌دهد.

تنها کاری که برایت می‌ماند این است که روی جهت‌گیری کلی و معماری سیستم تمرکز کنی و در نقش رهبر فنی پروژه ظاهر شوی.

من هیچ اصراری ندارم که تک‌تک کاراکترها را خودم تایپ کنم؛ چیزی که برایم لذت‌بخش است، خلق کردن یک اثر است. مسیر تکامل از زبان اسمبلی تا زبان‌های سطح بالا همواره برای همین بوده: اینکه تجربهٔ توسعه برای برنامه‌نویس دلپذیرتر و بهره‌وری‌اش بالاتر برود.

این‌که حالا می‌توانی به جای حس یک کارگر یدی، از جایگاه یک خالق محض دست به خلق نرم‌افزار بزنی، واقعاً سعادتی بزرگ برای یک برنامه‌نویس است.

مرزها و محدودیت‌های Vibe Coding

این سبک کدنویسی نام مشخصی دارد: Vibe Coding. اصطلاحی که آندری کارپاتی (Andrej Karpathy)، از بنیان‌گذاران OpenAI، در فوریهٔ ۲۰۲۵ ابداع کرد. مفهومش این است که همه‌چیز را بسپاری به جریان حس و حال (vibe): به زبان طبیعی خواسته‌ات را به هوش مصنوعی می‌گویی، کدهایش را چشم‌بسته می‌پذیری، خط‌به‌خط مرور نمی‌کنی و اگر خطایی رخ داد، عین پیام خطا را پس می‌اندازی جلوی هوش مصنوعی؛ تا جایی که کم‌کم یادت می‌رود اصلاً کدی هم در کار است.

اما بعد از نوشتن آن یادداشت پرشور، این حال خوش سه روز بیشتر دوام نیاورد و خیلی زود با دیوارهای سخت این روش روبه‌رو شدم.

آن روزها داشتم یک پروتوتایپ اپلیکیشن می‌ساختم. در حالت Vibe Coding خالص، به هوش مصنوعی اجازه داده بودم با پرامپت‌های مبهم هر طور می‌خواهد بتازد، بدون اینکه ذره‌ای از اصول مهندسی نرم‌افزار را در کار دخیل کنم. نتیجه این شد که هوش مصنوعی رفته‌رفته مهارناپذیر شد و معماری نرم‌افزار به آشفتگی وحشتناکی رسید که نگهداری‌اش غیرممکن بود.

همه‌چیز را کوبیدم و از نو ساختم؛ این‌بار اما نه مثل یک کاربر ساده، بلکه در کسوت یک مهندس نرم‌افزار و بر اساس فرآیندهای استاندارد توسعه با کمک هوش مصنوعی.

این‌بار همه‌چیز رنگ دیگری گرفت. در عین اینکه لذت Vibe Coding سر جایش بود، بازبینی دقیق‌تر کدها (Code Review)، مستندسازی شفاف و تغییرات تدریجی و خرد را چاشنی کار کردم؛ قابلیت‌ها را قدم‌به‌قدم جلو بردم نه به‌صورت توده‌ای و ناگهانی. معماری و پیاده‌سازی کاملاً تحت کنترل درآمد و به آن نقطه‌ای رسیدم که هرچه می‌خواستم، دقیقاً همان پیاده می‌شد. توسعه با هوش مصنوعی شبیه مدیریت یک کارآموز بااستعداد شد؛ لازم نبود دستم را با جزییات آلوده کنم، اما اشراف روی کل تصویر و کنترل معماری سیستم همچنان در دست خودم بود.

مدتی بعد برای توسعه سراغ Claude Code رفتم. تسلط و دقتی که به دست آوردم حیرت‌انگیز بود؛ گویی بال پرواز پیدا کرده باشم، بهره‌وری و سرعتم چند برابر شد.

آیندهٔ مهندسی نرم‌افزار

«آیا این امکان وجود دارد که Vibe Coding به خاطر سرعت بالای خلق محصول، انگیزهٔ یادگیری عمیق و اصولی پایه‌های برنامه‌نویسی را از بین ببرد؟»

به نظر من، نه تنها ممکن است، بلکه دقیقاً دارد اتفاق می‌افتد!

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

حالا Vibe Coding نقطهٔ شروع را آن‌قدر پایین آورده که هر کسی می‌تواند در چشم‌به‌هم‌زدنی یک نسخهٔ دمو تحویل دهد. اما مهندسی نرم‌افزار دانشی عمیقاً تجربی است؛ فاصلهٔ یک دموی ساده تا یک محصول تجاری و پایدار، درست مثل تفاوت صفر تا یک در مقایسه با یک تا صد است.

در گذشته، کسی که صفر تا یک را طی می‌کرد، ناخودآگاه ابزارهای لازم برای رسیدن به یک تا صد را هم به دست می‌آورد. اما Vibe Coding به یک فرد تازه‌کار چنین پایه‌ای نمی‌دهد. به همین خاطر، در همان گام‌های اولیه برای عبور از یک به ده، ناگهان پرتگاهی عمیق پیش پایشان دهان باز می‌کند که خیلی‌ها را دلسرد و منصرف می‌سازد.

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

با اوج‌گیری توانایی هوش مصنوعی در کدنویسی، صنعت دیگر نیازی به برنامه‌نویسان جونیور ندارد. زنجیرهٔ پرورش نیرو پاره شده و دیگر مجالی برای آزمون‌وخطا و کسب مهارت عملی نمانده است.

یک سال پس از نوشتن پیش‌نویس اولیهٔ این مطلب، آمارهای بازار کار صحت این ادعا را ثابت کردند:

من نسبت به آیندهٔ این حوزه عمیقاً نگران و بدبینم. صنعت نرم‌افزار به سمت دو قطبی شدن می‌رود: از یک طرف نبرد غول‌ها و نخبگان تراز اول، و از طرف دیگر خیل علاقه‌مندانی که کارهایشان در حد اسباب‌بازی‌ها و پروژه‌های نمایشی متوقف می‌شود.

سایر حوزه‌ها نیز دیر یا زود همین سرنوشت را پیدا خواهند کرد. در دنیای فردا، تمام کارهای فکری سبک یا نیمه‌ماهر به چنگ هوش مصنوعی خواهد افتاد.

حتی ریاضیات، که پناهگاه تفکر ناب و اصیل انسانی دانسته می‌شد، در همین یک سال گذشته تسلیم شد:

در این مجموعه چه خواهم نوشت؟

امروز آدم‌های بی‌شماری بدون هیچ پیش‌زمینهٔ برنامه‌نویسی پا به دنیای AI Coding می‌گذارند. خیلی‌هایشان سردرگم‌اند که از کجا شروع کنند یا صرفاً چند کار کوچک را سرهم‌بندی کرده‌اند. به‌زودی متوجه می‌شوند که بدون دانش مهندسی نرم‌افزار، واقعاً نمی‌دانند زیر پوست پروژه چه می‌گذرد؛ در خرد کردن مسائل بزرگ ناتوان‌اند، از پس پیچیدگی‌ها برنمی‌آیند و بلد نیستند هوش مصنوعی را درست به سمت هدف هدایت کنند.

از طرفی دیده‌ام که ریشهٔ خیلی از چالش‌ها در ضعف تفکر منطقی، ندانستن شیوهٔ درست پرسشگری، نداشتن نگاه نقادانه و ناتوانی در اعتبارسنجی پاسخ‌های هوش مصنوعی است.

من بیش از ۶ سال است که در این زمینه کار می‌کنم و با اتکا به هوش مصنوعی، چندین محصول پیچیده و کاربردی را از ایده تا راه‌اندازی رسانده‌ام که کاربران فعال خودشان را دارند. همان‌طور که در ابتدا گفتم، در پروژه‌های فعلی‌ام تک‌تک خط‌های کد را هوش مصنوعی می‌نویسد. هوش مصنوعی بدون شک می‌تواند کارهای سنگین را جلو ببرد، اما به یک شرط: برنامه‌نویس بداند چه می‌کند و سکان هدایت را محکم در دست داشته باشد. ابزار، ابزار است؛ نقطهٔ عطف همچنان انسان است.

در عصر هوش مصنوعی، مسیرهای قدیمی یادگیری کدنویسی به پایان خط رسیده‌اند. از همین رو، تصمیم گرفتم مجموعه‌ای بنویسم با عنوان: «راهنمای جامع Vibe Coding از صفر مطلق».

این راهنما چند محور اصلی خواهد داشت:

  1. پیوند زدن AI Coding با بهترین شیوه‌های مهندسی نرم‌افزار مدرن؛ درک اینکه مهندسی نرم‌افزار اساساً چیست، سپس شروع از صفر و پیاده‌سازی ایده، طوری که کار در حد یک دمو نماند، قابل توسعه و نگهداری باشد و توسعه‌اش مثل آب خوردن پیش برود.
  2. پرورش ذهن و تفکر منطقی؛ چگونه پرامپت‌های مؤثر بنویسیم، از چه خطاهایی دوری کنیم و چگونه مستندات شفاف برای پروژه تدوین نماییم.
  3. تست و بهینه‌سازی جریان کار؛ چطور بدون قربانی کردن پایداری معماری و کیفیت نرم‌افزار، سرعت خروجی را چند برابر کنیم و خطوط تولید خودکار (Automated Workflows) بسازیم.
  4. انتخاب بهترین استک فناوری؛ چه زبان‌ها و فریم‌ورک‌هایی اجازه می‌دهند بیشترین بهره را از پتانسیل هوش مصنوعی ببریم؟

یادداشت پایانی

هستهٔ اصلی این متن را یک سال پیش (اکتبر ۲۰۲۵) نوشته بودم. این روزها بازنویسی‌اش کردم و آمارهای استخدامی تازه و پیشرفت‌های ریاضی را به آن افزودم. آن زمان سرعت جنون‌آمیز پیشرفت هوش مصنوعی طوری منقلبم کرده بود که مدام می‌ترسیدم حرف‌هایم ظرف چند روز بیات شود؛ برای همین پست‌های کوتاه زیاد نوشتم و کمتر دستم به مقالات بلند رفت. حالا پس از گذشت یک سال، وقتی این یادداشت را دوباره خواندم، دیدم پیش‌بینی‌هایش هنوز سرپا و درست است؛ دستی به سر و رویش کشیدم و منتشرش کردم. تصمیم دارم بیشتر بنویسم؛ چراکه محتوایی که ردپای روح انسانی در آن حس شود، در روزگار پیش رو روزبه‌روز کمیاب‌تر خواهد شد.