<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های Mehdi Vijeh</title><link>https://virgool.ir/feed/@mehdivijeh</link><description>توسعه دهنده اندروید</description><language>fa</language><pubDate>2026-11-10 20:36:52</pubDate><image><url>https://files.virgool.ir/upload/users/71505/avatar/avatar.png</url><title>Mehdi Vijeh</title><link>https://virgool.ir/@mehdivijeh</link></image><item><title>چرا وقتی هوش مصنوعی همه‌چی رو بلده، هنوز باید خودمون یاد بگیریم؟</title><link>https://virgool.ir/@mehdivijeh/چرا-وقتی-هوش-مصنوعی-همه-چی-رو-بلده-هنوز-باید-خودمون-یاد-بگیریم-z10wf6zzetqu</link><description>و اصلاً چطور می‌شه از خودِ این غول چراغ جادو برای یاد گرفتن کمک گرفت؟سوال جدیدی که ذهنمون رو مشغول خودش کرده.اول، بیایم با خودمون روراست باشیم: اصلاً چرا؟!سؤال، سؤالِ بیراهی نیست؛ دست‌کم تا همین چند سال پیش، سخت‌ترین مرحله‌ی درس خوندن این بود که بالاخره یه منبع یا آدم درست‌وحسابی پیدا کنی که مطلب رو برات جا بندازه. باید زیر سنگ رو می‌گشتی تا کتاب خوب پیدا کنی، کلی این در و اون در می‌زدی تا یه استاد کاردرست به تورت بخوره، یا منت رفیق درس‌خونت رو می‌کشیدی تا دو کلمه بهت یاد بده.حالا چی؟ گوشی رو از جیبت درمیاری، یه خط تایپ می‌کنی و سه ثانیه بعد، یه جواب تر و تمیز، دسته‌بندی‌شده و شسته‌رفته تحویلت می‌ده.خب، با این حساب دیوانه‌ایم مگه هنوز بشینیم فسفر بسوزونیم و چیزی یاد بگیریم؟قصه دقیقاً از همین‌جا شروع می‌شه: هوش مصنوعی هزینه‌ی «رسیدن به جواب» رو مفت کرده، ولی برای هزینه‌ی «فهمیدن» حتی یه قرون هم تخفیف نداده! این دوتا هم از اولِ خلقت، دو تا دنیای کاملاً جدا بودن. حالا که جواب‌ها ریخته کف خیابون، زمین بازی عوض شده و سه تا مهارتِ حیاتی روی میز مونده که فقط و فقط کار مغز خودته:۱. بدونی اصلاً ازش چی بپرسی؟۲. بفهمی جوابی که داده راسته یا یه خالی‌بندیِ شیک؟۳. بتونی اون جواب رو برداری و یه گره‌ای از کار واقعی باز کنی.هر سه تای این‌ها، یعنی همون «یادگیریِ» اصیل؛ منتها با یه لباس تازه. بیا با چند تا مثال زنده ببینیم ماجرا از چه قراره.۱. کلاهی که نمی‌تونی مچش رو بگیری!مصیبت اصلی هوش مصنوعی این نیست که گاهی اشتباه می‌کنه؛ مصیبت اینه که وقتی داره آسمون‌ریسمون می‌بافه و دروغ شاخدار می‌گه، دقیقاً با همون اعتمادبه‌نفس و لحنِ شیک و ادبی حرف می‌زنه که انگار نوبل گرفته!مچ هوش‌مصنوعی رو باید گرفت!حالا فرض کن خودت از اون موضوع سردرنمیاری. دو تا پاراگراف جلوت می‌ذاره: یکی سراسر غلط، یکی شاهکار بی‌نقص. از نظر تو جفتشون یه شکل‌ان؛ مؤدب، روان و قانع‌کننده.حقیقت تلخ اینه: تنها ابزار برای سنجش و تشخیص پرت‌وپلا، سواد و دانشیه که تو کله‌ی خودت داری. و این تنها چیزیه که نمی‌تونی برون‌سپاریش کنی به خودِ مدل، چون خودش متهم ردیف اوله!دانش، دیگه فقط «ابزاری برای جواب دادن» نیست؛ شده «سنگ محکی برای اعتماد کردن». ارزشش کم نشده که هیچ، صد برابر بالاتر هم رفته.۲. گول زدن قشنگیه: «خوندم، پس بلدم!»این یکی از اون دردهاییه که همه‌مون کشیدیم. یه توضیح جذاب و تمیز می‌خونی، پیش خودت سر تکون می‌دی و با یه لبخند پیروزمندانه می‌گی: «آها! گرفتم چی شد.»یه هفته بعد، همون مطلب رو جلوت می‌ذارن و طوری بر و بر بهش نگاه می‌کنی انگار الفبای خط میخیِ عیلامیه!فراموشی بخشی از یادگیریه.چرا؟ چون خوندن و سر تکون دادن، فقط «توهم یادگیری» می‌سازه. اون چیزی که یک مطلب رو توی نورون‌های مغزت بتن‌ریزی می‌کنه، دوباره و چندباره خوندنش نیست؛ با زور و زحمت بیرون کشیدنش از اعماق حافظه است. وقتی به مغزت فشار میاری تا یادت بیاد، داری اون مسیر عصبی رو آسفالت می‌کنی. به این کار می‌گن «تمرین بازیابی» (Retrieval Practice)؛ از اون یافته‌های سنگین و محکم روانشناسیِ یادگیری. توی آزمایش معروف رودیگر و کارپیکه (۲۰۰۶)، دانشجوهایی که به‌جای دوباره خوندن، خودشون رو امتحان کرده بودن، یه هفته بعد به‌مراتب بیشتر یادشون مونده بود. (توی درس «یاد گرفتن هر چیزی، سریع‌تر» حسابی کالبدشکافیش کردیم.)خلاصه اینکه: «خوندم و فهمیدم» هیچ سندی نیست؛ «کتاب رو بستم و خودم از حفظ برای دیوار توضیح دادم» یعنی یاد گرفتی!۳. با تماشاچی بودن، کسی شناگر نمی‌شههوش مصنوعی می‌تونه برات شعر بگه، کد پایتون بزنه، برنامه رژیم غذایی بچینه و ایمیل رسمی بنویسه. دستش درد نکنه. ولی نمی‌تونه جای تو قضاوت کنه که آیا این خروجی برای دردسرِ خاصِ تو به درد می‌خوره یا نه؟ کجاش زیادی رو هواست؟ چه نکته‌ی ریزی جا افتاده؟ و کجا قراره با سر بخوره زمین؟قدرت تشخیص و شمّ درست، توی دل دست‌به‌آچار شدن و غوطه‌ور شدن توی کار شکل می‌گیره، نه از دور تماشا کردن خروجی‌ها. کسی که فقط مصرف‌کننده‌ی جواب‌هاست، روز واقعه که باید تصمیم حیاتی بگیره، دستش خالیه.۴. دودوتا چهارتا: بازار کار چی می‌خواد؟بی‌پرده بگم: کاری که صرفاً «تولید کردن» باشه، بی‌ارزش و ارزون شده. اون چیزی که امروز گرونه و براش سر و دست می‌شکنن، توانایی جهت دادن، غربال کردن و ترکیب کردن اطلاعاته؛ و این مهارت‌ها از درک عمیق میاد، نه از دسترسی به اینترنت پرسرعت. اون متخصصی که کارش رو عمیق بلده، خروجی‌های شاهکار از مدل می‌گیره، چون خوب بلده کجای جواب رو قیچی کنه و کجا رو نگه‌داره.پس قصه این نیست که «با وجود هوش مصنوعی، باز هم زحمت بکشیم و یاد بگیریم؟»؛ قصه اینه که یادگیری از «پیدا کردن جواب» رسیده به «تسلط بر قضاوت».حالا که اینطوره، بیا با کمک خودِ هوش مصنوعی یاد بگیریم!شاید خنده‌دار و متناقض به نظر بیاد: همون ابزاری که یاد نگرفتن و تنبلی رو آسون کرده، می‌تونه موتور موشک بشه برای یادگیری سریع‌تر. همه‌چیز به این برمی‌گرده که چطور نگاهش کنی: به چشم یه «ماشین همه‌چیزدانِ پیشگو» یا یه «معلم همراه و کنجکاو»؟همیشه دنبال راحت‌ترین کاریم حتی توی یادگیری.پیشگو فقط جواب رو پرت می‌کنه جلوت و می‌ره پی کارش. اما معلم؟ ازت سؤال می‌پرسه، مچِ گیج‌زدنت رو می‌گیره و دستت رو می‌ذاره درست روی نقطه ضعفت.خبر باحال اینه که این همراه دیجیتالی، چند تا ویژگی داره که هیچ معلم انسانی‌ای توی تاریخ نداشته:خستگی براش شوخیه: ده بار، صد بار بپرس! بگو «اصلاً حالیم نشد، فرض کن یه بچه‌ی هفت‌ساله‌ام، دوباره بگو!» نه اخم می‌کنه، نه کلافه می‌شه و نه بهش برمی‌خوره. سقف صبرش بی‌نهایته (همون چیزی که ما آدما معمولاً ازش خجالت می‌کشیم).می‌تونی بگی از کجای ماجرا شروع کنه: جای اینکه بگی «فلان قضیه رو برام توضیح بده» و یه مشت انشای دایره‌المعارفیِ بی‌روح تحویل بگیری، بگو: «من فلان قسمت‌ها رو بلدم، ولی دقیقاً از فلان فرمول به بعد رشته کلام از دستم در رفت.» حالا توضیحش درست از همون نقطه‌ای شروع می‌شه که پات سر خورده.می‌تونی مجبورش کنی ازت امتحان بگیره: برگ برنده همین‌جاست! یه دستور طلایی بهش بده: «هر بار فقط یک سؤال ازم بپرس، منتظر جوابم بمون و بعد ایراد کارم رو بگو.» با همین یه حرکت، یه گفت‌وگوی خسته‌کننده تبدیل می‌شه به یه رینگ بوکس یادگیری.سر بزنگاه بازخورد می‌ده: منتظر نمی‌مونی تا شب امتحان بفهمی کجای کارت می‌لنگه؛ همون لحظه سوراخ‌های فهمت رو برات علامت می‌زنه.برنامه رو دقیقاً اندازه‌ی تو می‌دوزه: «اسپانیایی برای گلیم از آب بیرون کشیدن توی سفر دوماهه» یه دنیای کاملاً متفاوته با «اسپانیایی برای قبولی در آزمون زبان سفارت».با دست‌فرمون خودت پیش می‌ره: جزوه دست‌نویس کلاست یا همون پی‌دی‌افِ نامرتبی که استاد داده رو بهش بده و بگو: «از روی همین برام درس و تست دربیار.»اما حواست باشه توی این سه تا چاه نیفتی:مفت‌خوری مغزی (مصرف منفعل): اینکه لم بدی و خروجی‌های تر و تمیزش رو تماشا کنی و حس کنی همه‌چیز رو بلدی.چاپلوسی مدل: اگه ازش بپرسی «درست گفتم؟»، خیلی وقت‌ها برای اینکه دلت نشکنه می‌گه: «آفرین! دقیقاً همین‌طوره!» باید شجاع باشی و بهش بگی: «بی‌رحمانه نقدهای جوابم رو بگو.»حواله دادن به بعد: «الان لازمش ندارم، هر وقت گیر کردم می‌پرسم.» این جمله یعنی خداحافظی همیشگی با یادگیری.پنج تا فوت کوزه‌گری که باید آویزه گوش کنی۱. اول خودت زور بزن، بعد برو سراغش: حتی اگه شده یه حدس کج و معوج بزن، بعد بپرس. مغز وقتی با کله می‌خوره به درِ بسته، مشتاق‌تر می‌شه برای شنیدنِ جواب درست و اون مطلب تو ذهنت می‌چسبه.۲. بخواه ازت سین‌جین کنه، نه اینکه برات سخنرانی راه بندازه: تک‌تک سؤال بپرسه و منتظر جوابت بمونه.۳. مچش رو با ترازو بسنج: از حوزه‌ای که خودت توش واردی براش مثال بزن، یا دو تا جواب مستقل بگیر و تفاوت‌هاشون رو دربیار تا مطمئن شی پرت نمی‌گه.۴. بین درس‌ها نفس بکش (فاصله‌گذاری): بیدار موندنِ شب امتحان، مثل فشفشه است؛ یه لحظه روشن می‌کنه و بعد خاموشی مطلق. اما مرورهای کوتاه با فاصله، سال‌ها توی سرت جا خوش می‌کنن.۵. سنگ نشون بذار: «می‌خوام زبانم خوب بشه» فقط یه آرزوی قشنگه؛ «تا آخر بهمن باید بتونم پنج دقیقه بدون تپق درباره کارم حرف بزنم» یه برنامه واقعیه.خب، این وسط سر و کله‌ی «پث‌وایز» از کجا پیدا می‌شه؟همه‌ی این تکنیک‌ها رو گفتیم و خیلی هم شیک و قشنگ بودن؛ اما حقیقت اینه که کی حوصله داره هر روز بشینه حساب‌کتاب کنه که امروز نوبت کدوم مروره، چقدر فاصله افتاده، و درس بعدی باید از کجا شروع بشه؟پث‌وایز دقیقاً برای همین درد متولد شده؛ اسمش هم از هویتش میاد: یعنی نشون دادنِ یه «مسیر» (Path) مطمئن. همون فوت‌های کوزه‌گری بالا، این‌جا کارِ خودِ سیستمه:سنگ‌نشون رو برات می‌ذاره (فوت ۵): بهش می‌گی دنبال چی هستی و روز مصاحبه یا آزمونت کِیه؛ پث‌وایز کل نقشه‌ی راه، از ایستگاه‌ها تا چک‌پوینت‌ها، رو روی تقویم و ساعتِ خودت پهن می‌کنه. اگه هم نمی‌دونی چند مرده حلاجی، یه تعیین سطح دو دقیقه‌ای می‌گیره تا لقمه‌ها رو اندازه‌ی دهنت برداره.سین‌جین، نه سخنرانی (فوت ۱ و ۲): هر درس حدود ۱۲ دقیقه‌ست، پر از تست، تعامل، انیمیشن و نمودار. دستت روی صفحه کار می‌کنه، اول خودت زور می‌زنی و بعد جواب رو می‌بینی؛ نه اینکه یه خروار متن رو چشم‌بسته بخونی.یادای؛ معلم، نه پیشگو: وسط درس گیر کردی؟ نمی‌خواد پاشی بری توی یه تب دیگه یا گوگل رو شخم بزنی؛ همون‌جا از یادای می‌پرسی. تازه اگه بگی «مثال‌ها رو کاربردی‌تر کن» یا «سخت‌ترش کن»، همون ماژول برات از نو کوک می‌شه، بدون اینکه پیشرفت قبلیت دود بشه بره هوا.مرورهایی که سر وقت زنگ خونه رو می‌زنن (فوت ۴): درست قبل از اینکه مغزت شروع کنه به فراموش کردن، یه مرور کوتاه برات می‌فرسته. حساب‌کتاب فاصله‌ها می‌افته گردن سیستم، تو فقط کیفش رو ببر.از جزوه‌ی خودت: یادداشت‌های نامرتب یا پی‌دی‌اف استادت رو آپلود کن؛ پث‌وایز از روی همون‌ها درس، مثال و کوئیز می‌سازه و برای جواب‌هاش به متن خودت ارجاع می‌ده.تمرینِ روز واقعه: وقتی مصاحبه یا آزمونِ مهم نزدیکه، یه امتحان آزمایشیِ زمان‌دار می‌دی، نمره می‌گیری و عرق سردت رو قبل از روز اصلی می‌ریزی تا ببینی کجات می‌لنگه.بقیه‌ش هم هست: استریک روزانه، دوئل با رفقا و اتاق مطالعه‌ی مشترک، تا دلت نیاد زنجیره پاره بشه؛ روی وب، اندروید و مرورگر آیفون؛ و درس‌هایی که یه بار باز کردی، آفلاین هم باز می‌شن.شروعش رایگانه و کارت بانکی نمی‌خواد: همین الان می‌تونی ۳۳ دوره‌ی آماده (۳۹۶ درس کوتاه) رو توی مرورگرت ورق بزنی و خودت ببینی داستان چیه.بخشی از قابلیت‌های پث‌وایز (فقط بخشی!)کلام آخرهوش مصنوعی نیومده که یادگیری رو بفرسته سینه‌ی قبرستون؛ اومده تا مشقتِ «پیدا کردنِ راه» رو برداره. اون کارِ عمیق، جذاب و اصیل یعنی فهمیدن، به چالش کشیده شدن و قدرت قضاوت کردن، هنوز تمام و کمال مالِ خودمونه. تنها فرقش اینه که این بار دیگه توی این مسیر سخت دست‌تنها نیستی، البته به این شرط که هوش مصنوعی رو مثل یه مربی دلسوز بنشونی کنارت، نه یه بت که چشم‌بسته بهش تعظیم کنی.پایه‌ای از همین امروز شروع کنیم؟ فقط بگو کِی و کجا می‌خوای برسی؛ بقیه‌ی مسیر رو بسپار به پث‌وایز.✨ شروع رایگان در پث‌وایزچند تا درس باحال که می‌تونی همین الان یه سر بهشون بزنی:یاد گرفتن هر چیزی، سریع‌تر — چطور هوش مصنوعی رو بکنیم معلم خصوصیِ شیش‌دانگ؟راستی‌آزمایی پاسخ‌ها و بازبینی استدلال مدل — چطور مچِ دروغ‌های شیک هوش مصنوعی رو بگیریم؟همه‌چیز به زمینه برمی‌گرده — چرا وقتی سؤال فله‌ای می‌پرسی، جواب آبکی می‌گیری؟تفکر نقادانه: هنر سنجش و استدلال — ۱۲ درس جمع‌وجور برای اینکه هر ادعایی رو راحت باور نکنی.</description><category>Mehdi Vijeh</category><author>Mehdi Vijeh</author><pubDate>Thu, 29 Oct 2026 07:51:38 +0330</pubDate></item><item><title>کال ‌بک (Callback) چیست و چگونه یک کال بک را پیاده سازی کنیم؟</title><link>https://virgool.ir/@mehdivijeh/کالبکcallback-چیست-و-چگونه-یک-کالبک-را-پیاده-سازی-کنیم-j51reajkqfkm</link><description>در برنامه نویسی از واژه‌های Synchronous(هم‌زمان) و Asynchronous(غیر ‌هم‌زمان) خیلی استفاده می‌شود. شاید معنی این دو واژه خیلی به مفهومی که دارند نزدیک نباشد. مثلا زمانی که کد‌های شما به صورت هم‌زمان نوشته می‌شوند یعنی به ترتیب و پشت هم اجرا می‌شوند و این هیچ ربطی به هم‌زمان اجرا شدن آن‌ها ندارد. مثلا کد زیر را در نظر بگیرید: int a = 20;&#xA;System.out.println(a);&#xA;a = 30;&#xA;System.out.println(a);&#xA;a = 40;&#xA;System.out.println(a);خروجی به ترتیب 20، 30 و 40 خواهد بود و همیشه این خطوط به ترتیب اجرا می‌شوند.اما بعضی وقت‌ها نیاز است تا کدها به شکل غیر هم‌زمان نوشته شوند. مثلا فرض کنید می‌خواهید زمان را از اینترنت لود کنید و به کاربر نشان دهید. فرآیند لود کردن زمان از اینترنت یک فرآیند زمان بر است. پس سعی می‌کنیم این فرآیند را در ترد دیگری اجرا کنیم (یا مجبور به این کار هستیم؛ سیستم عامل اندروید به ما اجازه نمی‌دهد این کار را در ترد ui انجام دهیم). String currentTime = &#34;&#34;&#xA;currentTime = loadCurrentTimeFromInternet();&#xA;System.out.println(currentTime);تابع loadCurrentTimeFromInternet وظیفه گرفتن زمان از اینترنت را داراست. این فرآیند زمان بر است. اگر کد ما مانند مثال به صورت هم‌زمان نوشته شده باشد، برنامه در این خط متوقف می‌شود تا زمان از اینترنت لود شود و سپس خط پرینت اجرا خواهد شد.تا اینجا متوجه شدیم چرا باید برای کارهایی که سرعت پایین تری دارند از برنامه نویسی غیر ‌هم‌زمان استفاده کنیم. اما مشکلی که  این نوع برنامه نویسی ایجاد می‌کند این است که هیچ تضمینی وجود ندارد که کد‌های شما بر ترتیب اجرا شوند. String currentTime = &#34;0&#34; &#xA;AsynchronousClass asynchronousClass = new AsynchronousClass();&#xA;currentTime = asynchronousClass.loadCurrentTimeFromInternet();&#xA;System.out.println(currentTime);در کد بالا تابع loadCurrentTimeFromInternet در ترد دیگری اجرا می‌شود. چون لود کردن زمان از اینترنت زمان‌بر است پس حتما قبل از اینکه کار این متد تمام شود و مقدار return شود خط ‌print انجام می‌شود و قابل حدس است که ما در کنسول زمان را صفر می‌بینیم.یکی از راه‌ حل ها استفاده از ‌callback است.تابع کالبک تابعی است که:1) توسط تابع دیگری صدا زده می‌شود.2) زمانی صدا زده می‌شود که کار تابع اول به اتمام رسیده باشد.پس در برنامه نویسی غیر ‌هم‌زمان می‌توانیم با استفاده از کالبک پس از اتمام کاری که در ترد دیگر انجام می‌شود،‌کار دیگری را انجام دهیم. پس در نتیجه یک فرآیند غیر متوالی را به یک فرآیند متوالی تبدیل کرده ایم.برای پیاده سازی یک کالبک نیاز است تا کار‌های زیر را انجام دهیم:1) تعریف متدی که می‌خواهیم بعد از اتمام فرآیند صدا زده شود در یک اینترفیس2) پیاده‌سازی اینترفیس مرحله قبل در کلاسی که می‌خواهیم پس از اتمام اجرا شود.3) تعریف یک رفرنس از اینترفیس در کلاسی که این فرآیند غیر‌ هم‌زمان را اجرا می‌کند.4) صدا زدن متد در اینترفیس، توسط کلاسی که فرآیند غیر هم‌زمان را اجرا می‌کند.پس برای ساخت کالبک مراحل را به ترتیب طی می‌کنیم:public interface Callback {&#xA;    void methodToCallBack(String time);&#xA;}ساخت یک اینترفیس public class MainActivity extends AppCompatActivity implements Callback {&#xA;&#xA;    @Override&#xA;    protected void onCreate(Bundle savedInstanceState) {&#xA;        super.onCreate(savedInstanceState);&#xA;        AsynchronousClass asynchronousClass = new AsynchronousClass();&#xA;        asynchronousClass.loadCurrentTimeFromInternet();&#xA;    }&#xA;&#xA;    @Override&#xA;    public void methodToCallBack(String time) {&#xA;        System.out.println(time);&#xA;    }&#xA;}پیاده سازی این اینترفیس در کلاس mainpublic class AsynchronousClass {&#xA;&#xA;    private Callback callback;&#xA;&#xA;    public AsynchronousClass(Callback callback) {&#xA;        this.callback = callback;&#xA;    }&#xA;}تعریف یک رفرنس از اینترفیس در کلاسی که این فرآیند غیر‌ هم‌زمان را اجرا می‌کند.public class AsynchronousClass {&#xA;&#xA;    private Callback callback;&#xA;&#xA;    public AsynchronousClass(Callback callback) {&#xA;        this.callback = callback;&#xA;    }&#xA;&#xA;&#xA;    public void loadCurrentTimeFromInternet(){&#xA;        String time = &#34;&#34;&#xA;        Handler handler = new Handler();&#xA;        handler.postDelayed(new Runnable() {&#xA;            @Override&#xA;            public void run() {&#xA;                String time = &#34;18:30&#34;&#xA;                callback.methodToCallBack(time); // صدا زدن متد&#xA;            }&#xA;        }, 2000);// ایجاد تاخیر دو ثانیه ای برای شبیه سازی&#xA;    }&#xA;} صدا زدن متد در اینترفیس، توسط کلاسی که فرآیند غیر هم‌زمان را اجرا می‌کند.در نهایت هر زمان که دیتا از اینترنت لود شد یک متد فراخوانی می‌شود که کارش نمایش زمان است و به این صورت ما تونستیم با استفاده از اینترفیس یک فرآیند غیر ترتیبی را به یک فرآیند ترتیبی تبدیل کنیم.</description><category>Mehdi Vijeh</category><author>Mehdi Vijeh</author><pubDate>Wed, 29 Apr 2020 23:40:01 +0430</pubDate></item></channel></rss>