<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های نیما</title><link>https://virgool.ir/feed/@nimawl_m4g</link><description>برنامه‌نویس بک‌اند و دانشجوی کامپیوتر. اینجا از کد زدن، چالش‌های برنامه‌نویسی  و چیزهایی که شب‌ها موقع دیباگ کردن بهشون فکر می‌کنم می‌نویسم. ☕️💻</description><language>fa</language><pubDate>2026-11-10 18:30:44</pubDate><image><url>https://files.virgool.ir/upload/users/4913595/avatar/A4aCiN.png</url><title>نیما</title><link>https://virgool.ir/@nimawl_m4g</link></image><item><title>آیا هوش مصنوعی دارد ما را به برنامه‌نویسانی تنبل تبدیل می‌کند؟</title><link>https://virgool.ir/@nimawl_m4g/آیا-هوش-مصنوعی-دارد-ما-را-به-برنامه-نویسانی-تنبل-تبدیل-می-کند-zuncmzqpvotu</link><description>همه‌چیز با یک افزونه‌ی ساده روی ادیتور کد شروع شد. چند ماه پیش وقتی برای اولین بار از ابزارهای هوش مصنوعی برای تکمیل کدهایم استفاده کردم، حس کردم یک ابرقدرت جدید به دست آورده‌ام. سرعت توسعه دو برابر شده بود، کدهای تکراری (Boilerplate) در یک ثانیه تولید می‌شدند و دیگر نیازی نبود برای هر ارور کوچک وقتم را تلف کنم.اما چند روز پیش، وقتی خط اینترنتم قطعی کوتاهی داشت و مجبور شدم یک الگوریتم ساده‌ی شرطی را بدون کمک هوش مصنوعی بنویسم، با حقیقت تلخی مواجه شدم:انگشتانم روی کیبورد قفل شده بودند.دستام ناخودآگاه کلید Tab را فشار می‌دادند تا دستیار هوش مصنوعی ادامه کد را بنویسد. آنجا بود که فهمیدم: من سریع‌تر شده بودم، اما مغزم رسماً تنبل شده بود.«تاری دیدِ شناختی»: وقتی هوش مصنوعی به جای ما فکر می‌کندمشکل هوش مصنوعی در برنامه‌نویسی، خودِ ابزار نیست؛ بلکه نحوه‌ی استفاده‌ی ما از آن است.برنامه‌نویسی در اصل «کدنویسی» نیست، بلکه «حل مسئله» (Problem Solving) است. تایپ کردن کدها فقط آخرین مرحله از یک فرآیند فکری پیچیده است. وقتی ما مرحله‌ی تحلیل، آزمون‌واخطا و چالش‌های ذهنی را کلاً به هوش مصنوعی واگذار می‌کنیم، عضلات تحلیلی مغزمان به مرور دچار «آتروفی» (تحلیل‌رفتگی و ضعف) می‌شوند.در این حالت، سه اتفاق نگران‌کننده می‌افتد:از دست رفتن قدرت دیباگ (Debugging): وقتی کدی که خودتان منطقش را طراحی نکرده‌اید به باگ می‌خورد، پیدا کردن منشأ خطا برایتان مثل کابوس می‌شود.سندروم «کپی-پستِ مدرن»: به جای خواندن مستندات، خروجی هوش مصنوعی را بدون درک عمیق قبول می‌کنیم و فقط منتظریم کار کند.عدم درک معماری: هوش مصنوعی تکه‌کدهای خوبی می‌نویسد، اما دید کلی (Big Picture) نسبت به ساختار کل پروژه ندارد. اگر خودتان معماری را ندانید، پروژه‌تان خیلی زود تبدیل به یک کلاف سردرگم می‌شود.چطور بدون تنبل شدن، از هوش مصنوعی استفاده کنیم؟ما قرار نیست به عصر حجر برگردیم و ابزارهای جدید را کنار بگذاریم. هوش مصنوعی یک ابزار فوق‌العاده است، به شرطی که «دستیار» شما باشد، نه «جایگزین» مغز شما.برای حفظ تعادل، این ۳ قانون ساده را تمرین کنید:۱. قانون «اول خودت، بعد هوش مصنوعی»برای مسائل منطقی و جدید، ابتدا ۵ تا ۱۰ دقیقه بدون هیچ دستیار هوشمندی فکر کنید، روی کاغذ طرح اولیه بزنید یا کدهای پایه‌ای را بنویسید. بعد از اینکه منطق کلی را فهمیدید، برای سرعت بخشیدن از AI استفاده کنید.۲. از AI بخواهید «توضیح دهد»، نه اینکه «بنویسد»به جای این پرامپت:«این تابع را برای من بنویس.»از این پرامپت استفاده کنید:«من می‌خواهم این مشکل را حل کنم و این ایده را دارم. منطق من چه ایرادی دارد و بهترین رویکرد چیست؟»با این کار، هوش مصنوعی نقش یک معلم را بازی می‌کند، نه یک کدنویس پیمانکار.۳. روزهای «کدنویسی بدون هوش مصنوعی» (AI-Free Days)در هفته یک روز یا در هر پروژه یک بخش کوچک را تعیین کنید و ابزارهای پیشنهاددهنده کد را کاملاً خاموش کنید. این کار دقیقاً مثل وزنه زدن در باشگاه است؛ باعث می‌شود حافظه عضلانی و تحلیلی‌تان زنده بماند.حرف آخرهوش مصنوعی یک موتور ماشین است، اما شما همچنان باید راننده باشید. اگر فرمان، کلاچ و مسیرشناسی را کاملاً فراموش کنید، با اولین پیچ تند یا قطعی سرویس، از مسیر خارج خواهید شد.ماشین‌حساب باعث نشد ریاضی‌دان‌ها از بین بروند، اما کسانی که ضرب ساده را هم با ماشین‌حساب انجام دادند، ریاضی را فراموش کردند. اجازه ندهید کدهای هوش مصنوعی، قدرت فکر کردن را از شما بگیرند.</description><category>نیما</category><author>نیما</author><pubDate>Thu, 23 Jul 2026 16:43:42 +0330</pubDate></item><item><title>چرا کدهای من کار می‌کنند اما نمی‌دانم چطور؟ (حل مشکل Illusion of Competence)</title><link>https://virgool.ir/@nimawl_m4g/چرا-کدهای-من-کار-می-کنند-اما-نمی-دانم-چطور-حل-مشکل-illusion-of-competence-c9ycngvgzk8w</link><description>چند روز پیش داشتم روی یک کامپوننت ساده کار می‌کردم. بعد از حدود دو ساعت دست‌وپنجه نرم کردن با ارورها و تست کردن راه‌حل‌های مختلف از استک اورفلو (Stack Overflow) و ابزارهای هوش مصنوعی، بالاخره کد اجرا شد. همه تست‌ها سبز شدند و همه‌چیز دقیقاً همان‌طور که انتظار می‌رفت کار کرد.اما درست در همان لحظه‌ای که داشتم تغییرات را کامیت (Commit) می‌کردم، یک حس ناخوشایند به سراغم آمد: من دقیقاً نمی‌دانم چرا این کد کار می‌کند!اگر شما هم در مسیر برنامه‌نویسی هستید، احتمالاً بارها این حالت را تجربه کرده‌اید. این موضوع یکی از رایج‌ترین و در عین حال مخرب‌ترین چالش‌ها در سنین و مراحل اولیه برنامه‌نویسی است؛ ذهنیتی که در روانشناسی به آن «توهم مهارت» (Illusion of Competence) می‌گویند.«کدِ کاربُردی» در برابر «فهمِ عمیق»در دنیای مدرن توسعه نرم‌افزار، رسیدن به کدی که &#34;فقط کار کند&#34; خیلی راحت‌تر از گذشته شده است. کافی است متن ارور را کپی کنید، چند قسمت از پاسخ‌های اینترنت را جابه‌جا کنید و تغییرات را ذخیره کنید.مشکل اینجاست که در این روند، ما مسئله را حل نکرده‌ایم، بلکه آن را دور زده‌ایم.وقتی بدون فهمیدن دلیلِ حل شدن یک باگ، از آن عبور می‌کنیم، سه اتفاق می‌افتد:تکرار خطا: دفعه بعد که با یک سناریوی مشابه روبه‌رو شویم، دوباره همان مقدار زمان را تلف خواهیم کرد.شکنندگی سیستم: کدی که بدون درک عمیق نوشته شده باشد، با کوچک‌ترین تغییر در متغیرها یا شرایط محیطی از کار می‌افتد.سندرم ایمپاستر (Imposter Syndrome): احساس سناریویی که در آن فکر می‌کنیم یک عکاس یا کپی‌کار هستیم، نه یک برنامه‌نویس واقعی.۳ روش ساده برای خروج از این حالتبرای اینکه از تله‌ی «کار می‌کند ولی نمی‌دانم چرا» خلاص شویم، نیازی نیست تمام چرخ را از نو اختراع کنیم. انجام دادن این ۳ قدم کوچک در روزمره‌ی کدنویسی کافی است:۱. تکنیک اردک لاستیکی (Rubber Duck Debugging)وقتی یک قطعه کد بالاخره کار کرد، کدهای جدید را برای خودتان (یا یک جسم فرضی روی میز!) خط به خط توضیح دهید. اگر نتوانستید منطقِ پشت یک خط کد را به زبان ساده بگوئید، یعنی آن خط را هنوز بفهم نکرده‌اید.۲. خرابش کنید تا یاد بگیریدقبل از بستن فایل، کدی که تازه درست شده را عمداً دستکاری کنید:یک متغیر را تغییر دهید.یک شرط را پاک کنید.بررسی کنید که سیستم دقیقاً در چه نقطه‌ای و با چه اروری شکست می‌خورد.شناخت نحوه شکست خوردن کد، سریع‌ترین راه برای فهمیدن نحوه کارکرد درست آن است.۳. کامنت‌گذاری موقت برای خودتانکنار همان قطعه کدی که از اینترنت یا با آزمون و خطا پیدا کرده‌اید، ۳ خط کامنت بنویسید و توضیح دهید که input (ورودی) و output (خروجی) آن بخش دقیقاً چه کاری انجام می‌دهند.حرف آخرکار کردنِ کد، نقطه پایان یک مسئله نیست؛ بلکه نقطه شروعِ یادگیری آن مسئله است.دفعه بعد که کدهایتان بالاخره بدون ارور سبز شدند، بلافاصله گیت‌پوش (Git Push) نکنید. ۵ دقیقه زمان بگذارید، کدهای خودتان را زیر سؤال ببرید و تا زمانی که دلیلِ کارکردنش را نفهمیده‌اید، از آن بگذرید. توسعه‌دهنده واقعی بودن، در همین ۵ دقیقه‌ها ساخته می‌شود.</description><category>نیما</category><author>نیما</author><pubDate>Thu, 23 Jul 2026 16:40:48 +0330</pubDate></item><item><title>گورستان پروژه‌های نیمه‌کاره: چرا هیچ‌گاه دکمه‌ی «انتشار» را نمی‌زنیم؟</title><link>https://virgool.ir/@nimawl_m4g/گورستان-پروژه-های-نیمه-کاره-چرا-هیچ-گاه-دکمه-ی-انتشار-را-نمی-زنیم-erukrunwukvj</link><description>اگر ادیتور کد یا گیتهاب (GitHub) شما هم پر از پوشه‌هایی با اسم‌های عجیب مثل test-project-final-v2 یا my-app-new است که ماه‌هاست خاك می‌خورند، شما تنها نیستید.همه ما یک پروژه شخصی داریم که هفته‌ها یا حتی ماه‌ها روی آن کار کرده‌ایم. کدها نوشته شده‌اند، عملکرد اصلی برنامه کار می‌کند و همه‌چیز آماده است. اما درست در نقطه‌ای که باید آن را منتشر کنیم (Deploy)، دامنه بخریم یا مدیا/لینک آن را در توییتر و لینکدین به بقیه نشان دهیم، دستمان روی دکمه‌ی انتشار می‌لرزد.چرا؟ چون صدایی در ذهنمان می‌گوید:«کدها هنوز تمیز نیستند...»«اگر یک برنامه‌نویس ارشد کدهایم را ببیند و به من بخندد چه؟»«هنوز فلان قابلیت را اضافه نکرده‌ام، بگذار کامل‌تر شود.»و این‌گونه، پروژه به گورستان پروژه‌های تمام‌نشده می‌پیوندد.ترکیب کشنده‌ی کمال‌گرایی و «سندرم ایمپاستر»این اتفاق حاصل ترکیب دو حس روانشناختی در دنیای نرم‌افزار است:کمال‌گرایی فلج‌کننده (Paralyzing Perfectionism): ما در ذهنمان محصولی در حد و اندازه ابزارهای بزرگ جهانی می‌سازیم، اما وقتی با واقعیتِ اولین نسخه‌ی خودمان روبه‌رو می‌شویم، احساس شکست می‌کنیم.سندرم ایمپاستر (Imposter Syndrome / احساس خودنوابافته‌بافی): حسی که مدام نجوا می‌کند: «تو یک برنامه‌نویس واقعی نیستی، تو فقط چند تکه کد را سر هم کرده‌ای و به زودی همه دستت را رو می‌کنند!»ترس از قضاوت شدن باعث می‌شود «منتشر نکردن» را به عنوان یک سپر دفاعی انتخاب کنیم. تا زمانی که پروژه روی سیستم شخصی ماست، هیچ‌کس نمی‌تواند آن را نقد کند؛ پس ما در امان هستیم.چرا «پروژه‌ی ناقصِ منتشرشده» ۱۰۰ برابر بهتر از «پروژه‌ی کاملِ نادیده» است؟در دنیای واقعی نرم‌افزار، مقوله یا چیزی به نام «کد کامل و بدون نقص» وجود ندارد. حتی بزرگ‌ترین شرکت‌های فناوری هم روزانه هزاران باگ را برطرف می‌کنند و نسخه‌های اولیه محصولاتشان بسیار ساده و حتی زشت بوده است.وقتی پروژه‌تان را حبس می‌کنید، خودتان را از سه چیز محروم می‌کنید:بازخورد واقعی (Real Feedback): کاربران واقعی به شما می‌گویند چه چیزی نیاز است، نه فرضیات ذهنی شما.ارزش در رزومه: یک پروژه ناقصِ روی سرور که کار می‌کند، ارزش بسیار بیشتری برای استخدام‌کننده دارد تا ۱۰ پروژه عمیق که فقط روی لپ‌تاپ شما اجرا می‌شوند.رشد روانی: شکستنِ ترسِ انتشار، عضلات فکری شما را برای مواجهه با دنیای واقعی قوی می‌کند.۳ راهکار برای نجات پروژه‌ی بعدی‌تانبرای اینکه از این تله خارج شوید، این سناریوهای ساده را تمرین کنید:۱. تعریف قانونی به نام MVP (حداقل محصول پذیرفتنی)قبل از زدن اولین خط کد، روی یک کاغذ بنویسید: «پروژه من فقط و فقط با داشتن این ۲ قابلیتِ اصلی کامل است.»به محض اینکه آن دو قابلیت کار کردند، پروژه آماده انتشار است. تمام قابلیت‌های دیگر باید به «نسخه ۲» منتقل شوند.۲. قانون «کثیف بنویس، بعداً تمیز کن»هیچ‌کس در اولین تلاش کدهای معمارانه و طبق استاندارد Clean Code نمی‌نویسد. اجازه دهید نسخه اول کدها شلخته باشد. کار کردنِ برنامه مهم‌تر از زیبایی کدهای پشت آن است.۳. دوست شدن با ترسِ قضاوتاین حقیقت را بپذیرید: اکثر مردم آن‌قدر سرشان شلوغ است که کدهای شما را با ذره‌بین نقد کنند. و اگر کسی هم نقد منصفانه‌ای کرد، این یک آموزش رایگان برای شماست، نه اثباتِ بی‌کفایتی‌تان.حرف آخرپروژه‌ای که امروز با ۵۰٪ امکانات منتشر می‌شود، خیلی مفیدتر از پروژه ۱۰۰٪ کاملی است که سال آینده قرار است پاک شود.همین امروز یکی از پوشه‌های قدیمی‌تان را باز کنید، قابلیت‌های اضافی‌اش را قیچی کنید و دکمه Publish (انتشار) را بزنید. بگذارید کدهایتان هوا بخورند!</description><category>نیما</category><author>نیما</author><pubDate>Thu, 23 Jul 2026 16:40:04 +0330</pubDate></item></channel></rss>