<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های مسترباگ</title>
        <link>https://virgool.io/feed/@mrbug_ir</link>
        <description>سماع قلمی حول برنامه‌نویسی، امنیت و دنیای آنالوگ https://mrbug.ir</description>
        <language>fa</language>
        <pubDate>2026-06-07 01:31:43</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/134013/avatar/rDUDa4.png?height=120&amp;width=120</url>
            <title>مسترباگ</title>
            <link>https://virgool.io/@mrbug_ir</link>
        </image>

                    <item>
                <title>چگونه ذهن آدم‌ها را تغییر دهیم؟</title>
                <link>https://virgool.io/@mrbug_ir/soghrat-nwt4x08kcl1q</link>
                <description>بیایید روراست باشیم؛ همه ما حداقل یک‌بار در مهمانی‌های خانوادگی، در جلسه با همکاران یا زیر پست‌های شبکه‌های اجتماعی، وارد بحثی شده‌ایم که در آن کاملاً حق با ما بوده است. با هیجان تمامِ آمار، ارقام و منطق را روی میز ریخته‌ایم، اما نتیجه چه شده؟ طرف مقابل نه تنها قانع نشده، بلکه گاردش را بسته‌تر کرده و روی موضع اشتباهش پافشاری بیشتری کرده است!در علم روان‌شناسی به این پدیده «اثر نتیجه‌معکوس» (Backfire Effect) می‌گویند. وقتی شما اطلاعاتی را به زور وارد مغز کسی می‌کنید، ذهن او احساس خطر می‌کند و برای دفاع از هویت خود، دیواری آجری به دور باورهایش می‌کشد.اما خبر خوب این است که یک پیرمرد پابرهنه و دوست‌داشتنی در یونان باستان، حدود ۲۴۰۰ سال پیش راهِ دور زدن این دیوار آجری را پیدا کرده است. به دنیای شگفت‌انگیز «روش سقراطی» خوش آمدید؛ هنری که به جای دیکته کردن حقیقت، آن را از درون خود آدم‌ها بیرون می‌کشد.💡 سقراط: خرمگس آتن و قابله‌ی ذهن‌هاسقراط آدم عجیبی بود. او هیچ کتابی ننوشت و ادعا می‌کرد «هیچ‌چیز نمی‌داند». او در کوچه و بازار آتن راه می‌رفت، یقه آدم‌های مهم و مدعی را می‌گرفت و با پرسیدن سوالات ساده اما کشنده، آن‌ها را به چالش می‌کشید. (به همین دلیل خودش را &quot;خرمگس آتن&quot; می‌نامید که اسبِ تنبلِ جامعه را بیدار می‌کند!)سقراط خودش را یک معلم نمی‌دانست، بلکه معتقد بود یک «مامای فکری» است. او می‌گفت: «همان‌طور که مادرم به زنان در به دنیا آوردن بچه‌هایشان کمک می‌کند، من هم به ذهن آدم‌ها کمک می‌کنم تا ایده‌ها و حقیقت‌هایی که در درونشان پنهان است را بزایند.»فرمول طلایی روش او در دو کلمه خلاصه می‌شود: نگو، بپرس!🕵️‍♂️ کالبدشکافی یک ذهن: تکنیک ۳ مرحله‌ای سقراطاگر می‌خواهید این روش را مثل یک نینجای ارتباطی پیاده کنید، باید یاد بگیرید که گفتگوی خود را از این سه ایستگاه روانی عبور دهید:۱. نقش آدمِ کنجکاو را بازی کن (جهل سقراطی)هرگز با جمله «تو اشتباه می‌کنی» شروع نکنید. در عوض، وانمود کنید که موضوع را کاملاً درک نکرده‌اید و به کمک نیاز دارید. این کار باعث می‌شود طرف مقابل احساس برتری کند، گارد دفاعی‌اش را پایین بیاورد و با اعتمادبه‌نفس شروع به توضیح دادن کند.مثال: «چقدر جالب. من تا حالا از این زاویه به ماجرا نگاه نکرده بودم. می‌تونی بیشتر برام توضیح بدی که دقیقاً چرا این‌طور فکر می‌کنی؟»۲. ایجاد زلزله‌ی فکری (اِلِنخوس یا کشف تناقض)حالا که او ادعایش را پهن کرد، وقت آن است که با سوالاتِ ظریف، پایه‌های منطق او را بلرزانید. شما با پرسیدن سوالاتی درباره استثناها و پیامدها، کاری می‌کنید که شخص خودش متوجه شکاف‌ها و تناقضاتِ حرفش بشود. اینجا مرحله‌ای است که در روان‌شناسی به آن «شوک فکری» (Aporia) می‌گویند؛ لحظه‌ای که شخص مکث می‌کند و می‌گوید: «اوه... راستش تا حالا به اینجاش فکر نکرده بودم!»۳. تولد یک ایده جدید (ماماگری)حالا که ذهن او از تعصب کورکورانه خالی شده و فهمیده که شاید همه چیز را نمی‌داند، وقتِ بازسازی است. باز هم جواب را لقمه نکنید! با سوالات هدایت‌کننده، کمک کنید تا خودش به نتیجه‌گیری جدید و منطقی‌تری برسد. وقتی خودش به جواب برسد، با تمام وجود از آن دفاع خواهد کرد، چون آن را کشفِ خودش می‌داند!🛠 جعبه‌ابزار شما: دقیقاً چه سوالاتی بپرسیم؟برای اینکه بتوانید یک گفتگوی سقراطیِ جذاب داشته باشید، این قالب‌های سؤالی را همیشه در جیبتان داشته باشید:سوالات شفاف‌ساز (کندن لایه اول):«دقیقاً منظورت از کلمه &quot;آزادی&quot; (یا هر کلمه دیگری) چیه؟»«میشه یه مثال عینی و واقعی از چیزی که می‌گی برام بزنی؟»سوالاتِ جستجوگر شواهد (درخواست فکت):«چه تجربه یا اتفاقی باعث شد به این نتیجه برسی؟»«آیا داده یا تحقیقی هست که این موضوع رو تأیید کنه؟»تستِ تصادف یا سناریوی فرضی (چالش منطق):«فرض کن شرایط دقیقاً برعکس بود، اون‌وقت چی؟»«اگر حرف تو درسته، پس چطور در فلان موقعیت، نتیجه کاملاً متفاوت شد؟»سوالات پیامد و عواقب (نگاه به آینده):«فکر می‌کنی اگر همه آدم‌ها اینطوری رفتار کنن، چه اتفاقی برای جامعه میفته؟»«این تصمیم در کوتاه مدت خوبه، اما ۵ سال دیگه چه تأثیری روی کارت می‌ذاره؟»🎬 یک شبیه‌سازی روزمره: گفتگوی سقراطی در عملبیایید فرض کنیم همکار شما (علی) معتقد است: «پول همه‌چیز است و تنها راه خوشبختی، ثروتمند شدن است.»شما اگر بخواهید نصیحت کنید، احتمالاً می‌گویید: &quot;نه بابا، سلامتی مهم‌تره، استیو جابز با اون همه پول نتونست سرطانش رو درمان کنه!&quot; (و علی بلافاصله گارد می‌گیرد و ده‌ها مثال از آدم‌های بی‌پولِ بدبخت می‌آورد).اما بیایید روش سقراطی را امتحان کنیم:شما (با لحن کنجکاو): «علی، خیلی‌ها این حرف رو می‌زنن. منظورت از &quot;خوشبختی&quot; دقیقاً چیه که فقط با پول به دست میاد؟» (گام ۱: شفاف‌سازی)علی: «خب معلومه! خوشبختی یعنی آرامش داشتن، اینکه دغدغه قسط و اجاره خونه نداشته باشی و بتونی هرجا دلت خواست سفر کنی.»شما: «موافقم که نداشتن دغدغه مالی عالیه. اما فرض کن فردا تو یک قرعه‌کشی ۱۰۰ میلیارد تومن برنده بشی، ولی به خاطر یک بیماری، نتونی از تخت بیای پایین و هیچ دوستی هم نداشته باشی که کنارت باشه. آیا با اون ۱۰۰ میلیارد احساس خوشبختی می‌کنی؟» (گام ۲: تست تصادف و سناریوی فرضی)علی (با کمی مکث): «خب نه... اونطوری که فایده نداره. سلامتی و خانواده هم باید باشن.» (رسیدن به شوک فکری و کشف تناقض)شما: «پس اگر درست متوجه شده باشم، پول به تنهایی مساوی با خوشبختی نیست، بلکه یک &quot;ابزار&quot; برای راحتیه، درسته؟ به نظرت حالا چطور می‌تونیم فرمول خوشبختی رو دقیق‌تر تعریف کنیم؟» (گام ۳: ماماگری و تولد ایده جدید)علی: «آره انگار پول شرط لازمه اما کافی نیست. احتمالاً ترکیبِ سلامتی، روابط خوب و امنیت مالی همون خوشبختیه.»نتیجه؟ علی خودش، خودش را قانع کرد. بدون هیچ دعوا و بحثی!🚀 این «سوپرپاور» کجاها به درد می‌خورد؟این روش باستانی امروز بیش از هر زمان دیگری زنده است و در مدرن‌ترین بخش‌های زندگی کاربرد دارد:روان‌درمانی و کوچینگ: در رفتاردرمانی شناختی (CBT)، روان‌شناسان با همین سوالات، افکار سمی و افسرده‌کننده مراجعین (مثل &quot;من هیچ‌وقت موفق نمی‌شم&quot;) را به چالش می‌کشند تا خود فرد به غیرمنطقی بودن ترس‌هایش پی ببرد.در مدیریت و رهبری کسب‌وکار: مدیران هوشمندِ امروزی رئیس‌بازی درنمی‌آورند. وقتی کارمندی با یک مشکل نزد آن‌ها می‌آید، به جای دادنِ راه‌حل می‌پرسند: «خودت چه راه‌هایی رو برای حلش بررسی کردی؟ مزایا و معایب هرکدوم چیه؟» این کار باعث پرورش تفکر انتقادی و استقلال کارمندان می‌شود.تربیت فرزند: وقتی نوجوان شما می‌گوید «مدرسه رفتن هیچ فایده‌ای نداره»، به جای سخنرانی درباره اهمیت علم، از او بپرسید: «جالبه، چی شد که به این نتیجه رسیدی؟ فکر می‌کنی آدم‌هایی که شغل‌های مورد علاقه تو رو دارن، مسیرشون رو از کجا شروع کردن؟»🎯 حرف آخرروش سقراطی نیازمند یک ویژگی مهم است: صبر.تغییر دادن ذهن انسان‌ها مثل باز کردن یک گره کور است؛ با کشیدن و زور زدن فقط گره را سفت‌تر می‌کنید. باید آرام‌آرام و با پرسیدن سوالات درست، گره را شل کنید. دفعه بعد که در یک بحث داغ گرفتار شدید، نفس عمیقی بکشید، لبخند بزنید و به جای پرتاب کردن یک «جواب»، یک «سوال» جذاب هدیه بدهید!</description>
                <category>مسترباگ</category>
                <author>مسترباگ</author>
                <pubDate>Tue, 19 May 2026 10:30:45 +0330</pubDate>
            </item>
                    <item>
                <title>ایکیگای: راز ژاپنی‌ها برای زندگی طولانی</title>
                <link>https://virgool.io/@mrbug_ir/ikigai-qmwabvekvomm</link>
                <description>ایکیگایکتاب «ایکیگای: راز ژاپنی‌ها برای زندگی طولانی و شاد» (Ikigai: The Japanese Secret to a Long and Happy Life) نوشته‌ی هکتور گارسیا و فرانسس میرالس، یکی از پرفروش‌ترین کتاب‌ها در زمینه توسعه فردی و سبک زندگی است. نویسندگان این کتاب برای یافتن راز طول عمر و شادکامی ژاپنی‌ها، به روستای «اوگیمی» در جزیره اوکیناوای ژاپن (جایی که بیشترین تعداد افراد بالای ۱۰۰ سال را دارد) سفر کردند.مفهوم مرکزی این کتاب «ایکیگای» (Ikigai) است؛ واژه‌ای ژاپنی که می‌توان آن را به «دلیلی برای بودن» یا «دلیلی برای صبح بیدار شدن» ترجمه کرد. در ادامه، خلاصه کامل و ساختاریافته‌ی این کتاب را می‌خوانید:۱. مفهوم ایکیگای؛ نقطه تلاقی چهار عنصربر اساس این کتاب، ایکیگایِ هر فرد در نقطه تقاطع چهار دایره اصلی زندگی قرار دارد. برای رسیدن به رضایت عمیق، باید فعالیتی را پیدا کنید که هر چهار ویژگی زیر را داشته باشد:آنچه دوستش دارید: کارهایی که به شما احساس شادی و رضایت می‌دهند (اشتیاق شما).آنچه در آن مهارت دارید: استعدادها و توانمندی‌هایی که در آن‌ها عالی هستید (حرفه شما).آنچه جهان به آن نیاز دارد: خدمتی که می‌توانید به جامعه و دیگران ارائه دهید (رسالت شما).آنچه بابتش می‌توانید پول دریافت کنید: راهی که بتوانید از طریق آن امرار معاش کنید (شغل شما).نکته کلیدی: اگر کاری را دوست دارید و در آن مهارت دارید اما پولی برایش دریافت نمی‌کنید، احساس رضایت دارید اما فقیر خواهید بود. اگر پول دریافت می‌کنید و مهارت دارید اما جهان به آن نیازی ندارد، احساس پوچی خواهید کرد. ایکیگایِ واقعی زمانی رخ می‌دهد که این چهار بخش در تعادل باشند.۲. رازهای طول عمر در اوکیناوا (سبک زندگی)نویسندگان با مصاحبه با افراد بالای ۱۰۰ سال در اوکیناوا، متوجه شدند که عمر طولانی آن‌ها فقط ژنتیکی نیست، بلکه ریشه در سبک زندگی آن‌ها دارد:قانون «هارا هاچی بو» (Hara Hachi Bu): این یک اصل تغذیه‌ای باستانی در ژاپن است که می‌گوید: «فقط تا زمانی غذا بخور که ۸۰ درصد احساس سیری می‌کنی.» ژاپنی‌ها هرگز معده خود را کاملاً پر نمی‌کنند، زیرا هضم غذای زیاد انرژی بدن را می‌گیرد و روند پیری سلول‌ها را تسریع می‌کند.مفهوم «موآی» (Moai): موآی به معنای گروه‌های دوستی غیررسمی و حمایتی است. افراد در اوکیناوا از کودکی در گروه‌های کوچک محلی عضو می‌شوند و تا آخر عمر از نظر عاطفی و مالی از یکدیگر حمایت می‌کنند. احساس تعلق به جامعه، بزرگترین سپر در برابر استرس و افسردگی است.ورزش ملایم اما مستمر: آن‌ها ورزش‌های سنگین و طاقت‌فرسا انجام نمی‌دهند. به جای آن، تحرک ملایم و روزمره دارند (مثل پیاده‌روی، باغبانی و انجام تمرینات کششی صبحگاهی ).۳. تجربه «غرقگی» (Flow) در کاریکی از مفاهیم مهم کتاب، ترکیب ایکیگای با حالت «غرقگی» (مفهومی از روانشناس میهای چیکسِنت‌میهایی) است. وقتی شما در حال انجام ایکیگایِ خود هستید، زمان را فراموش می‌کنید و کاملاً در لحظه و کار خود غرق می‌شوید.توصیه کتاب: برای رسیدن به حالت غرقگی، از انجام چند کار هم‌زمان (Multitasking) خودداری کنید، عوامل حواس‌پرتی (مثل گوشی موبایل) را حذف کنید و روی کارهایی تمرکز کنید که نه آن‌قدر آسان‌اند که خسته‌کننده باشند و نه آن‌قدر سخت‌اند که اضطراب‌آور شوند.۴. مفاهیم ذن و پذیرش ناملایماتکتاب به مفاهیم فلسفی ژاپنی نیز می‌پردازد که به تاب‌آوری روانی کمک می‌کنند:وابی-سابی (Wabi-Sabi): یافتن زیبایی در نقص‌ها و چیزهای ناتمام. این دیدگاه به ما می‌آموزد که کمال‌گراییِ آزاردهنده را کنار بگذاریم.ایچی-گو ایچی-ئه (Ichi-go Ichi-e): درک این موضوع که هر لحظه و هر دیداری در زندگی فقط یک بار اتفاق می‌افتد و هرگز دقیقاً تکرار نخواهد شد. پس باید در لحظه حال زندگی کرد و قدر آن را دانست.ده قانون طلایی ایکیگایدر پایان کتاب، نویسندگان تمام یافته‌های خود را در قالب ۱۰ قانون کلی برای داشتن یک زندگی طولانی، شاد و معنادار خلاصه می‌کنند:۱. همیشه فعال بمانید و هرگز بازنشسته نشوید: کسانی که از انجام کارهایی که دوست دارند دست می‌کشند، هدف زندگی خود را از دست می‌دهند.۲. شتاب‌زدگی را کنار بگذارید: زندگی با عجله کیفیت را پایین می‌آورد. وقتی آرام قدم بردارید، مسیر زندگی طولانی‌تر و زیباتر می‌شود.۳. شکم خود را کامل پر نکنید: همان قانون ۸۰ درصد (هارا هاچی بو).۴. دوستان خوب در کنار خود داشته باشید: برای گپ زدن، اشتراک‌گذاری غم‌ها و شادی‌ها و رویاپردازیِ با هم.۵. برای تولد بعدی خود روی فرم بمانید: بدن انسان برای حرکت ساخته شده است. ورزشِ ملایم هورمون‌های شادی را ترشح می‌کند.۶. لبخند بزنید: یک نگرش شاد نه تنها برای خودتان آرامش‌بخش است، بلکه دوستان بیشتری را به سمت شما جذب می‌کند.۷. با طبیعت پیوند دوباره برقرار کنید: حتی اگر در شهر زندگی می‌کنید، زمان‌هایی را برای بازگشت به طبیعت و شارژ دوباره روح خود اختصاص دهید.۸. شکرگزار باشید: از هر چیزی که روز شما را روشن می‌کند (هوا، غذا، دوستان و خانواده) قدردانی کنید.۹. در لحظه زندگی کنید: افسوس گذشته را نخورید و از آینده نترسید. امروز تمام چیزی است که دارید.۱۰. از ایکیگای خود پیروی کنید: درون شما اشتیاقی وجود دارد؛ یک استعداد منحصر‌به‌فرد که به روزهای شما معنا می‌بخشد و شما را به سمت جلو می‌راند. اگر هنوز آن را پیدا نکرده‌اید، ماموریت فعلی شما جستجو برای یافتن آن است.</description>
                <category>مسترباگ</category>
                <author>مسترباگ</author>
                <pubDate>Tue, 12 May 2026 14:13:38 +0330</pubDate>
            </item>
                    <item>
                <title>استراتژی بقا برای توسعه‌دهندگان در عصر هوش مصنوعی</title>
                <link>https://virgool.io/@mrbug_ir/dev-survival-mhsbszakilsh</link>
                <description>ما تا همین چند سال پیش، اگه می‌تونستیم یه کد تر و تمیز بنویسیم و روی یکی دو تا فریم‌ورک مسلط بودیم، کارمون راه می‌افتاد و راحت پیشرفت می‌کردیم. ولی بیاید روراست باشیم؛ با اومدن این مهمون خونده عزیز که هوش مصنوعی نام داره دیگه قوانین بازی داره تغییر میکنه.توی این پست میخوام از دید یه مدیر فنی تازه کار یه استارتاپ خیلی تازه کار تر، تجربیاتی که توی این مدت سر و کله زدن با هوش های مصنوعی و طبیعی داشتم رو بگم.این تغییرِ جایگاه، تجربه‌های خیلی جالبی برام داشت. تو این مدت با پوست و استخونم حس کردم که الان دیگه عیارِ یه برنامه‌نویس، فقط به سرعتِ «کد زدنش» نیست. هوش مصنوعی الان می‌تونه تو چند ثانیه پیچیده‌ترین الگوریتم‌ها رو برامون بنویسه، اما یه کار هست که هیچ‌وقتِ هیچ‌وقت نمی‌تونه انجام بده:مسئولیتِ کدی که نوشته رو گردن بگیره!این ۸ موردی که در ادامه می‌خونید، صرفاً درددل‌ها و تجربه‌های ملموسِ من از این مسیرِ جدیدن. اگه می‌خواید تو این عصرِ هوش مصنوعی، تو هر تیمی(علل خصوص استارتاپی) که هستید یه مهره‌ی کلیدی و غیرقابل‌جایگزین بمونید، پیشنهاد می‌کنم این چند تا ویژگی رو تو خودتون تقویت کنید:۱. تعصب روی زبان و ابزار؟ بندازش دور!یادتونه قدیما چقدر تو گروه‌های تلگرامی سر اینکه پایتون بهتره یا پی‌اچ‌پی، ریکت خفن‌تره یا ویو ، با هم کل‌کل می‌کردیم؟ راستش رو بخواید تو دنیای پرسرعت و بی‌رحم استارتاپیِ امروز، جمله‌ی «من فقط فلان کاره هستم» دیگه یه مزیت تخصصی نیست؛ بلکه یه ترمز دستیِ بزرگه!استارتاپ یعنی تغییر مداوم و دست‌وپنجه نرم کردن با چالش‌های جدید. ممکنه امروز کل بک‌اند رو با Node.js بالا آورده باشیم، اما ماه بعد برای یه میکرو سرویسِ خاص که نیاز به پردازش وحشتناک سریع داره، مجبور بشیم بریم سراغ Go .برنامه‌نویسِ خفنِ امروز، کسی نیست که سینتکس و توابعِ یه زبان خاص رو مثل طوطی حفظ باشه؛ کسیه که «مفاهیم پایه» و «معماری» رو با گوشت و خونش درک کرده. می‌دونه ساختار داده‌ها چیه، شی‌گرایی چطور کار می‌کنه، یا مثلا کی باید از صف (Queue) استفاده کرد.اینجاست که این مهمون عزیز (هوش مصنوعی) وارد عمل میشه. فرض کنید شما سال‌ها پایتون زدید و حالا تیم گیر افتاده و باید یه تسک سمت فرانت‌اند (با جاوااسکریپت) زده بشه. قدیما باید می‌رفتید یه دوره ۴۰ ساعته می‌دیدید یا دو هفته داکیومنت می‌خوندید. اما الان؟ کافیه به ChatGPT یا Claude بگید: «ببین، من منطق این کار رو با پایتون بلدم. می‌خوام دقیقاً همین حلقه و شرط‌ها رو تو جاوااسکریپت پیاده کنم. معادلش برام بنویس و سینتکسش رو توضیح بده.»بوم! هوش مصنوعی تو چند ثانیه ابزارِ جدید رو به زبونی که شما می‌فهمید یادتون میده. شما با تکیه بر همون دانشِ الگوریتمیِ پایه‌تون، تو یکی دو روز می‌شید یه برنامه‌نویسی که کارِ تیم رو راه می‌ندازه. پس ابزارها و زبان‌ها رو فقط به چشم «آچار» نگاه کنید.برنامه‌نویسی که انعطاف‌پذیر باشه و با کمک هوش مصنوعی سریع خودش رو با تکنولوژیِ روز وفق بده، تو هر استارتاپی رو هوا می‌زننش!۲. گلیمت رو از آب بکش بیرون!هوش مصنوعی خیلی باهوشه، ولی یه نقطه‌ضعف بزرگ داره: به شدت «پاستوریزه» است! یعنی برای اینکه یه خروجیِ درست‌وحسابی بهت تحویل بده، باید دقیق‌ترین، شفاف‌ترین و ترتمیزترین دستور (Prompt) رو براش بنویسی.بنابراین، اگه قراره با دیدنِ اولین ارورِ ناشناخته، یا شفاف نبودنِ یه تسک، سریع دست از کار بکشید و منتظر بمونید تا یکی بیاد مثل یه معلم خط‌به‌خط راهنمایی‌تون کنه، عملاً دارید با ابزاری رقابت می‌کنید که تو صدمِ ثانیه جواب‌ها رو پیدا می‌کنه؛ و تو این رقابت، ربات‌ها از پیش برنده‌ن!به دنیای واقعیِ استارتاپ‌ها خوش اومدید؛ جایی که اصلاً از پرامپت‌های شُسته‌رُفته خبری نیست! تو یه استارتاپِ واقعی (مخصوصاً اونایی که تازه دارن شکل می‌گیرن)، صورت‌مسئله‌ها همیشه گنگ، نامفهوم و پر از ابهامن. مدیر فنی یا لیدِ تیم (که الان مثلاً من باشم و هزار تا دغدغه‌ی دیگه رو سرم ریخته) اصلاً وقت نداره یه تسک رو مثل یه ماشین براتون دیکته کنه.فرض کنید داریم روی یه محصول مدیریت دارایی‌های شبکه کار می‌کنیم. تسکی که به شما داده میشه صرفاً یه جمله‌ست تو گروه شرکت یا یه تیکتِ نصفه‌نیمه تو جیرا: «بچه‌ها، یه سرویس بک‌اند می‌خوایم که شبکه داخلی رو مدام اسکن کنه، سیستم‌ها رو پیدا کنه و اگه پورت خطرناکی باز بود یا آسیب‌پذیری داشت، تو سیستم ثبتش کنه.»همین!اگه اینو دقیقاً به هوش مصنوعی بگی هنگ می‌کنه، چون پر از ابهامه. رنج آی‌پی‌ها رو از کجا بخونه؟ با چه پروتکلی اسکن کنه؟ بریم سراغ ابزارهای اوپن‌سورس و اسکریپت‌ها یا خودمون لاجیکش رو بنویسیم؟ کلمه‌ی «پورت خطرناک» اینجا یعنی چی؟ اگه اسکنِ یه آی‌پی تایم‌اوت (Timeout) داد، برنامه کرش کنه یا لاگ بندازه و بره سراغ بعدی؟ معماری دیتابیس چطور باشه که مدام داده‌ی تکراری ذخیره نکنیم؟اینجاست که مرز بین یه «کدنویسِ ساده» و یه «توسعه‌دهنده‌ی حرفه‌ای» مشخص میشه. برنامه‌نویسِ خفن کسیه که:این ایده‌ی خام رو تحویل می‌گیره و خودش با سر می‌ره تو دلِ ابهام.معماری رو تو ذهنش حلاجی می‌کنه.می‌ره ابزارهای اوپن‌سورسِ اسکنِ شبکه رو بررسی می‌کنه.داکیومنت‌ها رو شخم می‌زنه.دو سه تا سوالِ کلیدی و دقیق از تیم می‌پرسه تا نیازمندی‌ها رو شفاف کنه.و تهش یه خروجی کار راه‌انداز تحویل میده.شما زمانی غیرقابل‌جایگزین می‌شید که بتونید تو تاریکیِ ابهاماتِ یه پروژه، خودتون مسیر رو روشن کنید.۳. ناجی روزهای بحرانی: وقتی سرور می‌خوابه!عیارِ شما تو روزهای آفتابی و وقتی کدهاتون روی سیستم خودتون (Localhost) مثل ساعت کار می‌کنه، مشخص نمیشه. عیار واقعیِ یه برنامه‌نویس دقیقاً همون لحظه‌ای معلوم میشه که یه دیپلوی جدید رفتیم و یهو سرور ارور ۵۰۰ می‌ده، دیتابیس قفل (Deadlock) کرده، نوتیفیکیشن‌های خطا داره رگباری میاد و گوشی مدیرعامل داره زنگ می‌خوره!تو این لحظاتِ پرالتهاب و اورژانسی، هوش مصنوعی فقط یه صفحه چتِ بی‌خیاله! اون نمی‌تونه استرسِ تیم رو حس کنه یا مدیریت بحران کنه. یه «کدنویسِ ساده» تو این شرایط دستپاچه میشه، می‌ترسه، یا بدتر از اون، شروع می‌کنه به مقصر پیدا کردن: «کد من رو سیستم خودم درست بود، حتماً مشکل از سرور و بچه‌های زیرساخته!» یا «تقصیر فلانیه که کد منو تایید کرد!».اما اینجاست که می‌رسیم به همون جمله‌ی طلاییِ مقدمه: گردن گرفتنِ مسئولیت! یه توسعه‌دهنده‌ی خفن و مسئولیت‌پذیر، تو روزِ بحران دنبال مقصر نمی‌گرده. آستین‌ها رو بالا می‌زنه، نقشِ یه مدیر بحران رو بازی می‌کنه، سریع میره سراغ ابزارهای مانیتورینگ و لاگ‌ها، ریشه‌ی خرابی رو پیدا می‌کنه و تا سیستم رو دوباره سر پا نکنه و یه نفس راحت نکشه، بی‌خیال نمیشه (حتی اگه باگ رو یکی دیگه از بچه‌های تیم نوشته باشه).شما با نوشتنِ الگوریتم‌های خفن قهرمان نمی‌شید، بلکه روزی که سایت رو از کما درمیارید، تبدیل می‌شید به همون مهره‌ی کلیدی‌ای که هیچ رباتی نمی‌تونه جاش رو بگیره.۴. فن بیان و دمو کردن: مترجمِ کدهات برای آدمیزاد باش!خیلی از ما برنامه‌نویس‌ها فکر می‌کنیم وظیفه‌مون فقط اینه که هدفون بذاریم تو گوشمون، خیره بشیم به مانیتور تاریکِ ادیتورمون و با زبون ماشین‌ها حرف بزنیم. اما بذارید یه حقیقت تلخِ بیزینسی رو بهتون بگم:خفن‌ترین، بهینه‌ترین و تمیزترین کدی که نتونید ارزشش رو به آدم‌های غیرفنی ثابت کنید، دوزار نمی‌ارزه!هوش مصنوعی می‌تونه تو چند ثانیه یه اسکریپت عالی بنویسه که پرفورمنس رو ببره بالا، اما اون رباتِ بیچاره اصلاً نمی‌فهمه «بیزینس» یا «کسب‌وکار» یعنی چی! اون نمی‌فهمه کدی که نوشته چطور قراره برای استارتاپ پول دربیاره، هزینه‌ی سرورها رو کم کنه یا تجربه کاربر رو بهتر کنه. ولی شما به عنوان یه انسانِ هوشمند، باید اینو بفهمید.فرض کنید یه ماهِ تمام روی یه معماری پیچیده برای سیستم کشینگ (Caching) یا تغییر ساختار دیتابیس کار کردید تا سرعت ریکوئست‌ها بالا بره. روزی که قراره خروجیِ کار رو برای کارفرما، سرمایه‌گذار یا حتی مدیرعاملِ غیرفنی‌تون دمو (Demo) کنید، اگه بخواید براشون از پیچیدگی‌های Redis، میکروسرویس‌ها و Big O الگوریتمتون حرف بزنید، همون دقیقه اول وسط حرفاتون خوابشون می‌بره (یا کلافه میشن)!شما باید بتونید اون منطقِ پیچیده‌ی فنی رو به یه زبونِ ساده، جذاب و تجاری ترجمه کنید. مثلاً باید با اعتمادبه‌نفس بگید: «با این تغییری که ما تو زیرساخت دادیم، سرعت لود شدنِ سایت برای کاربرِ نهایی ۳ برابر شده؛ و این یعنی ریزش مشتری‌هامون تو صفحه‌ی پرداخت قراره نصف بشه و فروشمون بره بالا.»برنامه‌نویسی که بتونه بیاد پای تخته یا تو یه جلسه آنلاین، محصول رو به زیبایی دمو کنه و از دستاوردش دفاع کنه، به مدیرهاش ثابت می‌کنه که صرفاً یه «تایپیستِ کد» نیست؛ بلکه می‌تونه تصویرِ بزرگ‌تر و «ارزش تجاریِ» محصول رو ببینه.کسی که بتونه هم با کامپیوترها عالی حرف بزنه و هم ارزشِ کارش رو به آدم‌ها ثابت کنه، مهره‌ایه که هیچ استارتاپی جرئت نمی‌کنه از دستش بده.۵. احترام به وقتِ تیمیه توسعه‌دهنده‌ی پخته، کدی تحویل میده که خوندنش برای بقیه راحت باشه. قبل از تحویلِ کار، خودش رو جای یوزر می‌ذاره و سناریوهای مختلف رو تست می‌کنه، لاجیکِ پیچیده‌ش رو کامنت‌گذاری می‌کنه و مستنداتِ تر و تمیزی می‌نویسه. بلوغِ حرفه‌ای یعنی همکارتون با دیدنِ PR شما، خیالش راحت باشه که یه کدِ قرص و محکم قراره به پروژه اضافه بشه، نه یه بمبِ ساعتی!تو دنیای واقعیِ استارتاپ‌ها، ما تو یه جزیره‌ی متروکه و تو خلأ کد نمی‌زنیم. کدی که امروز شما می‌نویسید، فردا قراره توسط یه همکارِ دیگه خونده بشه، تو جلسات Code Review بررسی بشه یا اصلاً چند ماه بعد یکی دیگه بیاد روش یه فیچرِ جدید توسعه بده.بذارید خیالتون رو راحت کنم؛ هوش مصنوعی می‌تونه تو یه چشم به هم زدن صدها خط کد براتون جنریت کنه. ولی آیا اون ربات می‌فهمه که همکارتون (که قراره این کد رو بخونه) چقدر ممکنه از دیدن متغیرهای بی‌معنی یا منطق‌های درهم‌پیچیده (Spaghetti Code) سردرد بگیره؟ معلومه که نه! هوش مصنوعی هیچ دغدغه‌ای برای «خستگیِ ذهنیِ بچه‌های تیم» نداره، اما شما به عنوان یه انسان و یه هم‌تیمی، باید داشته باشید.فرض کنید یه تسک داشتید و باید فیلترهای بخش جستجوی سایت رو می‌زدید. می‌رید از یه ابزار هوش مصنوعی کمک می‌گیرید، یه تیکه کد کپی می‌کنید و بدون اینکه خودتون با دقت بخونیدش یا یه بار درست‌وحسابی تستش کنید، می‌فرستید واسه تایید و می‌رید سراغ کار بعدی. بعد همکارِ ارشدِ شما باید دو ساعت وقت بذاره تا رمزگشایی کنه ببینه اصلاً اون متغیر temp2 اون وسط داره چیکار می‌کنه، یا چرا این کد رو حالت موبایل کرش می‌کنه!اینجاست که دوباره می‌رسیم به همون بحثِ «گردن گرفتن مسئولیت». وقتی کدی که فرستادید مدام به خاطر ارورهای پیش‌پاافتاده، نداشتنِ کامنت یا رعایت نکردنِ استانداردهای کدنویسیِ تیم برگشت می‌خوره، پیامش برای مدیرتون این نیست که «تسک سخت بود»؛ پیامش اینه که «من احترامی برای وقت بقیه قائل نیستم».۶. هوش مصنوعی دلسوزِ کاربر نیست، تو باش!هوش مصنوعی دقیقاً همون چیزی رو براتون کد می‌زنه که بهش می‌گید؛ مثل یه سربازِ بی‌نهایت مطیع! اما هیچ‌وقتِ هیچ‌وقت برنمی‌گرده بگه: «رئیس، اگه این دکمه‌ی انصراف رو با این رنگ قرمز بذاریم دقیقاً بغلِ دکمه‌ی تایید، کاربر تو حالت موبایل با انگشت شستش اشتباهی می‌زنه روش و کل فرمش پاک میشه!»تو یه استارتاپ، ما قرار نیست فقط «ماشینِ تبدیل قهوه به کد» یا «تیکت‌بندِ حرفه‌ای» باشیم! هوش مصنوعی دغدغه‌ی تجربه‌ی کاربر (UX) و موفقیت بیزینس رو نداره، ولی شما باید داشته باشید. شما مسئول این هستید که فیچری که زدید، واقعاً به دردِ آدمی که پشت مانیتور نشسته بخوره.اما چطور این «دید محصولی» رو تو خودمون تقویت کنیم؟ این ۴ تا کار رو به روزمره‌تون اضافه کنید:قبل از «چگونه؟»، بپرسید «چرا؟»: تا یه تسک میاد زیر دستتون، سریع نرید سراغ اینکه &quot;با کدوم لایبرری بزنمش؟&quot;. اول از مدیر محصول یا لیدِ تیم بپرسید: &quot;این فیچر اصلاً قراره چه دردی از بیزینس دوا کنه؟&quot; وقتی هدف بیزینسی رو بدونید، خودتون راه‌حل‌های ساده‌تر و بهتری براش پیشنهاد می‌دین.غذای سگ خودتون رو بخورید (Dogfooding): محصول رو فقط تو محیط لوکال و لپ‌تاپ‌های قدرتمند خودتون تست نکنید. اپلیکیشن خودتون رو بریزید رو گوشیتون و تو مترو با اینترنتِ ضعیف باهاش کار کنید. اونجاست که تازه با گوشت و خونتون می‌فهمید فلان فرمِ ثبت‌نام چقدر رو اعصابه!با بچه‌های پشتیبانی رفیق بشید: ما برنامه‌نویس‌ها معمولاً تو غار خودمونیم. ولی اگه هفته‌ای نیم ساعت برید تیکت‌های پشتیبانی یا کامنت‌های کافه‌بازار/گوگل‌پلی رو بخونید و ببینید ۲۰ نفر سر پیدا کردنِ یه دکمه گیج شدن، دفعه‌ی بعد کدها رو بی‌خودی پیچیده نمی‌کنید.کالبدشکافیِ رقبا: اپ‌های موفق رو نصب کنید و اصلاً به این فکر نکنید که استکِ تکنولوژیشون چیه؛ فقط به «مسیر کاربر» (User Flow) دقت کنید. ببینید چطور با کمترین کلیک، کاربر رو به هدف می‌رسونن و همون الگوها رو تو کار خودتون پیاده کنید.کسی که این دید رو داشته باشه، فقط کد نمی‌زنه، بلکه دلسوزانه مسئولیتِ محصولی که ساخته رو گردن می‌گیره.۷. نگهبانِ لبه‌های پرتگاه (Edge Cases) باش، کد پاستوریزه به درد روز مبادا نمی‌خوره!هوش مصنوعی استادِ بی‌بدیلِ نوشتنِ کدهای «مسیر سبز» یا همون Happy Path است. یعنی کدی تحویلت می‌ده که اگه همه‌چیز تو ایده‌آل‌ترین حالتِ ممکن باشه، کاربر دقیقاً همون دکمه‌ای رو بزنه که ما می‌خوایم و اینترنت هم سرعتش نور باشه، عین ساعت کار می‌کنه.اما تو دنیای بی‌رحم استارتاپ‌ها، کاربران اصلاً شبیه ربات‌های منظم نیستن و سرورها هم همیشه حالشون خوب نیست!بذارید یه مثال بزنم. فرض کنید یه API ساختی برای اعمالِ کد تخفیف کمپینِ شب یلدا. هوش مصنوعی کدش رو تر و تمیز برات می‌نویسه: «چک کن کد معتبر باشه، تخفیف رو روی سبد خرید اعمال کن، و یکی از ظرفیتِ کدهای مجاز کم کن.» عالیه نه؟اما یه برنامه‌نویسِ باتجربه که ذهنش برای گیر دادن به «لبه‌های پرتگاه» و سناریوهای وحشتناک تربیت شده، همون لحظه ترمز رو می‌کشه و می‌گه: «اگه یه کاربرِ زرنگ بیاد و تو یه هزارم ثانیه ۵۰ تا ریکوئستِ همزمان برای یه کد تخفیف بفرسته چی؟ (همون باگِ معروفِ Race Condition). آیا سیستم ما قبل از اینکه دیتابیس آپدیت بشه، هر ۵۰ تا تخفیف رو اعمال می‌کنه و استارتاپمون رو تو یه شب به خاک سیاه می‌شونه؟»یا مثلاً اگه ترافیک سایت یهو ۱۰ برابر شد چی؟ اگه کاربر به جای اسمش، تو فیلدِ ثبت‌نام یه تیکه اسکریپتِ مخرب (XSS یا SQL Injection) وارد کرد چی؟هوش مصنوعی این «پارانویا و ترسِ سازنده» رو نداره. اون سناریوهای مرزی و بحرانی رو پیش‌بینی نمی‌کنه، مگه اینکه شما خط‌به‌خط بهش دیکته کنید. اینجاست که دوباره برمی‌گردیم به همون اصلِ گردن گرفتنِ مسئولیت. مدیرِ شما (و کلِ بیزینس) ازتون انتظار نداره فقط کدی بنویسید که تو روزهای آفتابی کار کنه؛ ازتون توقع دارن سیستمی طراحی کنید که تو بدترین طوفان‌ها، ترافیک‌های یهویی و زیرِ دستِ عجیب‌ترین کاربرها هم دوام بیاره.پیش‌بینی کردنِ این سناریوهای عجیب‌وغریب و زره‌پوش کردنِ سیستم، کارِ یه ذهنِ انسانِ باتجربه، خلاق و دلسوزه که فراتر از یه خروجیِ ساده‌ی چت‌بات فکر می‌کنه.۸. دستِ بقیه رو بگیر: گرگ تنها نمیخوایم!سرعت کد زدنِ شما هر چقدر هم بالا باشه، به گرد پای هوش مصنوعی نمی‌رسه. هوش مصنوعی می‌تونه جوابِ یه ارورِ پیچیده رو تو یه ثانیه بده، اما آیا می‌تونه بشینه کنارِ یه کارآموز (Junior) تازه‌کار که از استرسِ پاک شدنِ دیتابیسِ تستی دستاش داره می‌لرزه، آرومش کنه و با حوصله بهش یاد بده چطور مشکل رو قدم‌به‌قدم دیباگ کنه؟ نه! هوش مصنوعی فقط «کد» میده، ولی یه هم‌تیمیِ خفن، «طرزِ فکر مهندسی» رو یاد می‌ده.تو دنیای مهندسی نرم‌افزار یه اصطلاحِ خیلی معروف (و البته یه خورده دارک) داریم به اسم «Bus Factor». مفهومش اینه: حداقل چند نفر از اعضای تیم باید برن زیر اتوبوس (یا یهو استعفا بدن، مریض بشن و غیب بشن) تا کلِ پروژه متوقف بشه و استارتاپ به خاک سیاه بشینه؟بعضی از برنامه‌نویس‌ها فکر می‌کنن اگه فوتِ کوزه‌گری رو پیش خودشون نگه دارن، مستندات ننویسن و تنها کسی باشن که می‌دونه فلان میکروسرویسِ حیاتی چطور کار می‌کنه، برای خودشون «امنیت شغلی» خریدن. یعنی تلاش می‌کنن Bus Factor تیم رو روی عددِ خطرناکِ ۱ نگه دارن! اما واقعیت اینه که از دید مدیریت، این آدما نه تنها یه مهره‌ی ارزشمند نیستن، بلکه در درازمدت تبدیل می‌شن به یه گلوگاه (Bottleneck) و یه بمبِ ساعتی برای بیزینس.یه مهندسِ نرم‌افزارِ پخته، کسیه که وقتی یه تکنولوژی یا پترنِ جدید رو یاد می‌گیره (حتی به کمک همون هوش مصنوعی)، با داکیومنت نوشتن، بررسی کدهای همدیگه (Code Review) و آموزش دادن به جونیورها، دانشش رو تو کل تیم پخش می‌کنه تا سیستم به یک شخصِ خاص وابسته نباشه.این دقیقاً همون نقطه‌ی اوجِ گردن گرفتنِ مسئولیته. شما تو یه تیمِ موفق، فقط مسئولِ کدهای خودتون نیستید؛ شما در قبالِ رشدِ تیمی که توش کار می‌کنید هم مسئولید. یادتون باشه، یه برنامه‌نویسِ خفن و ۱۰ ایکس (10x Developer) واقعی، کسی نیست که ۱۰ برابر بقیه کد می‌زنه؛ کسیه که با آموزش و منتورینگ، سطحِ بقیه‌ی بچه‌های تیم رو می‌کشه بالا و از خودش یه «رهبرِ فنیِ» غیرقابل‌جایگزین می‌سازه.💡 حرف آخردوستان عزیزم، در این دوره و زمانه، «سینیور شدن» به تعداد سال‌های کاریِ شما ربطی ندارد؛به میزانِ باری بستگی دارد که می‌توانید از روی دوشِ سیستم و مدیرتان بردارید.لوح بقا در عصر هوش مصنوعی</description>
                <category>مسترباگ</category>
                <author>مسترباگ</author>
                <pubDate>Wed, 18 Feb 2026 17:08:39 +0330</pubDate>
            </item>
                    <item>
                <title>چگونه مغز ما را فریب می‌دهد؟ سفری به دنیای &quot;تفکر، سریع و کند&quot;</title>
                <link>https://virgool.io/@mrbug_ir/thinking-fast-and-slow-summary-noipwbujuuh4</link>
                <description>آیا تا به حال به این فکر کرده‌اید که چرا گاهی اوقات تصمیماتی عجولانه می‌گیرید یا چرا در برابر برخی اطلاعات، مقاومت نشان می‌دهید؟ دنیل کانمن، روانشناس و برنده جایزه نوبل اقتصاد، در کتاب تحول‌آفرین خود به نام «تفکر، سریع و کند» (Thinking, Fast and Slow)، پرده از پیچیدگی‌های ذهن انسان برمی‌دارد و نشان می‌دهد که چگونه دو سیستم فکری مجزا، تمام قضاوت‌ها و انتخاب‌های ما را شکل می‌دهند. در این پست وبلاگ، این مفاهیم کلیدی را به شکلی ساده و کاربردی بررسی می‌کنیم.معرفی دو سیستم فکری: خلبان خودکار در برابر خلبان ماهرکانمن معتقد است که ذهن ما با دو سیستم کاملاً متفاوت کار می‌کند:سیستم ۱: خلبان خودکار (تفکر سریع، شهودی و ناخودآگاه)این سیستم مسئول واکنش‌های فوری، غریزی و بدون تلاش است. سیستم ۱ همیشه فعال است و به سرعت الگوها را تشخیص می‌دهد و نتیجه‌گیری می‌کند. این همان سیستمی است که وقتی:مثال واقعی: صدای بلندی می‌شنوید و ناگهان برمی‌گردید.مثال واقعی: چهره عصبانی دوستتان را تشخیص می‌دهید.مثال واقعی: به سوال 2+2 بلافاصله جواب می‌دهید 4.سیستم ۱ فوق‌العاده کارآمد است و به ما کمک می‌کند تا در دنیای پرسرعت امروز، به سرعت تصمیم بگیریم و زنده بمانیم. اما دقیقاً به خاطر همین سرعت، مستعد خطاها و سوگیری‌های شناختی است.سیستم ۲: خلبان ماهر (تفکر کند، منطقی و آگاهانه)این سیستم نیاز به تلاش، تمرکز و استدلال عمیق دارد. سیستم ۲ زمانی وارد عمل می‌شود که سیستم ۱ قادر به حل مسئله نباشد یا نیاز به تجزیه و تحلیل دقیق‌تری باشد. این همان سیستمی است که وقتی:مثال واقعی: در حال حل یک مسئله پیچیده ریاضی (مثلاً 17×23) هستید.مثال واقعی: برای یک تصمیم مهم شغلی، تمام جوانب را می‌سنجید.مثال واقعی: در یک محیط شلوغ، روی صدای خاصی تمرکز می‌کنید.سیستم ۲ دقیق‌تر است، اما چون انرژی ذهنی زیادی مصرف می‌کند، ذهن ما تمایل دارد تا حد امکان از آن استفاده نکند و کار را به سیستم ۱ بسپارد.سوگیری‌های شناختیمشکل از جایی شروع می‌شود که سیستم ۱ با وجود ناکارآمدی در یک موقعیت خاص، به کار خود ادامه می‌دهد و سیستم ۲ &quot;تنبلی&quot; می‌کند و آن را بررسی نمی‌کند. اینجاست که سوگیری‌های شناختی وارد عمل می‌شوند؛ خطاهای سیستماتیک در تفکر که قضاوت‌های ما را تحت تأثیر قرار می‌دهند.بیایید چند نمونه از این سوگیری‌ها را بررسی کنیم:سوگیری خوش‌بینی (Optimism Bias): تمایل به دست کم گرفتن احتمال وقوع اتفاقات بد برای خودمان و دست بالا گرفتن احتمال وقوع اتفاقات خوب.مثال واقعی: بسیاری از افراد سیگاری به این باورند که هرگز به سرطان ریه مبتلا نمی‌شوند، حتی اگر از مضرات سیگار آگاه باشند. یا کارآفرینان جدید، احتمال شکست کسب و کار خود را به شدت دست کم می‌گیرند و به موفقیت‌های بزرگ خوش‌بین هستند. این سوگیری می‌تواند به تصمیمات مالی یا سلامتی نامناسبی منجر شود.اثر قاب‌بندی (Framing Effect): نحوه ارائه اطلاعات (چارچوب‌بندی) می‌تواند بر تصمیم‌گیری ما تأثیر بگذارد، حتی اگر اطلاعات عینی یکسان باشد.مثال واقعی: تصور کنید دو نوع گوشت برای فروش وجود دارد:گوشت A: حاوی &quot;۸۰% گوشت خالص&quot; است.گوشت B: حاوی &quot;۲۰% چربی&quot; است.بیشتر مردم گوشت A را ترجیح می‌دهند، با وجود اینکه هر دو توصیف دقیقاً به یک محصول اشاره دارند. &quot;گوشت خالص&quot; چارچوب مثبتی ایجاد می‌کند، در حالی که &quot;چربی&quot; چارچوب منفی دارد و این امر سیستم ۱ ما را تحت تأثیر قرار می‌دهد.خطای توهم شناخت (Illusion of Understanding): ما اغلب فکر می‌کنیم که رویدادهای گذشته را بهتر از آنچه واقعاً می‌توانیم درک کنیم، شناخته‌ایم. این اتفاق معمولاً پس از وقوع یک رویداد خاص رخ می‌دهد.مثال واقعی: پس از سقوط بازار سهام، بسیاری از کارشناسان و مردم عادی ادعا می‌کنند که سقوط &quot;قابل پیش‌بینی&quot; بود و &quot;همه‌اش مشخص&quot; بود. در واقعیت، قبل از وقوع، چنین پیش‌بینی‌ای بسیار دشوار یا ناممکن بوده است. ذهن ما دوست دارد داستانی منسجم بسازد که همه چیز را توضیح دهد و این کار باعث می‌شود به گذشته نگاه کنیم و فکر کنیم که همیشه همه چیز را می‌دانستیم.خودداری از تلاش شناختی (Cognitive Ease): انسان‌ها ترجیح می‌دهند از مسیرهایی بروند که نیاز به کمترین تلاش ذهنی دارند.مثال واقعی: در هنگام پر کردن فرم‌ها، اگر سوالات به صورت پیچیده یا با فونت ناخوانا باشند، احتمال خطا یا رها کردن فرم بیشتر می‌شود. چون سیستم ۲ برای پردازش این اطلاعات باید انرژی بیشتری صرف کند، مغز تمایل به اجتناب دارد.سوگیری تأیید (Confirmation Bias): به دنبال آنچه می‌خواهیم بشنویم.توضیح: ما تمایل داریم اطلاعاتی را جستجو، تفسیر و به خاطر بسپاریم که باورهای قبلی ما را تأیید کند.مثال واقعی: فردی که معتقد است یک برند خاص گوشی موبایل بهترین است، بیشتر به دنبال نقدها و نظرات مثبتی می‌گردد که این دیدگاه را تقویت کند و نقدهای منفی را نادیده می‌گیرد.اثر لنگر (Anchoring Effect): گرفتار اولین عدد.توضیح: ذهن ما به اولین اطلاعاتی که دریافت می‌کند (لنگر) چسبیده و بقیه قضاوت‌ها را بر اساس آن تنظیم می‌کند، حتی اگر آن اطلاعات بی‌ربط باشد.مثال واقعی: در یک مذاکره، اگر فروشنده ابتدا قیمت بسیار بالایی را پیشنهاد دهد، حتی اگر بعداً تخفیف زیادی هم بدهد، آن قیمت اولیه (لنگر) باعث می‌شود قیمت نهایی برای خریدار معقول‌تر به نظر برسد.ترس از دست دادن (Loss Aversion): درد از دست دادن بیشتر از لذت به دست آوردن.توضیح: انسان‌ها به شدت از ضرر کردن متنفرند و درد از دست دادن چیزی، معمولاً دو برابر لذت به دست آوردن همان چیز است.مثال واقعی: افراد ممکن است سهام زیان‌ده خود را برای مدت طولانی نگه دارند، به این امید که به قیمت خریدشان برگردد تا از ضرر جلوگیری کنند، در حالی که ممکن است فرصت‌های سودآور دیگری را از دست بدهند.سوگیری در دسترس بودن (Availability Heuristic): وقتی آسان به ذهن می‌آید، پس محتمل است.توضیح: ما رویدادهایی را که راحت‌تر به ذهنمان می‌آیند (مثلاً به دلیل خبرسازی زیاد یا تجربه‌های شخصی) محتمل‌تر یا رایج‌تر ارزیابی می‌کنیم.مثال واقعی: پس از دیدن اخبار مکرر درباره حملات کوسه، ممکن است فردی از شنا در دریا بترسد، در حالی که احتمال مرگ بر اثر حمله کوسه بسیار ناچیز است و احتمالاً احتمال مرگ بر اثر تصادف رانندگی (که کمتر به آن فکر می‌کند) بسیار بیشتر است.خود تجربه‌گر در برابر خود به یادآورنده: کدام مهم‌تر است؟کانمن به این نکته نیز اشاره می‌کند که ما دو &quot;خود&quot; داریم:خود تجربه‌گر: کسی که لحظه به لحظه احساسات و تجربیات را در زمان حال درک می‌کند.خود به یادآورنده: کسی که تجربیات گذشته را به خاطر می‌آورد و از آن‌ها درس می‌گیرد و برای آینده تصمیم می‌گیرد.جالب اینجاست که &quot;خود به یادآورنده&quot; اغلب بر تصمیمات ما برای آینده تأثیر بیشتری دارد، حتی اگر خاطرات ما با تجربه واقعی متفاوت باشد.مثال واقعی: فرض کنید به تعطیلاتی رفته‌اید که ۹ روز آن فوق‌العاده بوده، اما در روز آخر یک اتفاق بد (مثل گم شدن پاسپورت) رخ داده است. وقتی از شما درباره این سفر می‌پرسند، &quot;خود به یادآورنده&quot; شما ممکن است بیشتر روی خاطره بد روز آخر تمرکز کند و کلیت سفر را منفی ارزیابی کند، در حالی که &quot;خود تجربه‌گر&quot; شما ۹ روز لذت‌بخش را پشت سر گذاشته بود.چگونه بهتر تصمیم بگیریم؟کتاب «تفکر، سریع و کند» به ما می‌آموزد که ذهن ما کامل نیست و مستعد خطا است. با این حال، هدف کانمن زیر سوال بردن هوش ما نیست، بلکه آگاهی‌بخشی است. با درک این دو سیستم و سوگیری‌های شناختی:آگاه باشید: اولین قدم، شناخت این سیستم‌ها و سوگیری‌هاست. وقتی با یک تصمیم مهم روبرو می‌شوید، مکث کنید و بپرسید: آیا سیستم ۱ من در حال فریب دادن من است؟از سیستم ۲ استفاده کنید: در مواقع حساس، آگاهانه سیستم ۲ خود را فعال کنید. سوال بپرسید، اطلاعات بیشتری جمع‌آوری کنید، و از دیدگاه‌های مختلف به مسئله نگاه کنید.به شهود محض اعتماد نکنید: هرچند شهود می‌تواند مفید باشد، اما برای تصمیمات مهم مالی، شغلی یا زندگی، همیشه آن را با استدلال منطقی سیستم ۲ بررسی کنید.در نهایت، «تفکر، سریع و کند» به ما یادآوری می‌کند که برای بهبود تصمیماتمان، لازم نیست نابغه باشیم، کافیست درک کنیم که ذهنمان چگونه کار می‌کند و در مواقع ضروری، آگاهانه ترمز کنیم و بیشتر فکر کنیم.</description>
                <category>مسترباگ</category>
                <author>مسترباگ</author>
                <pubDate>Wed, 16 Jul 2025 14:41:48 +0330</pubDate>
            </item>
                    <item>
                <title>چگونه از برنامه‌نویسی کسب درآمد کنیم؟</title>
                <link>https://virgool.io/@mrbug_ir/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%A7%D8%B2-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%DA%A9%D8%B3%D8%A8-%D8%AF%D8%B1%D8%A2%D9%85%D8%AF-%DA%A9%D9%86%DB%8C%D9%85-lk3u0lznxzg1</link>
                <description>اگه تازه وارد دنیای برنامه‌نویسی شدی، حتماً کلی سؤال توی ذهنت داری، مثلاً اینکه چطوری از این مهارت هیجان‌انگیز پول دربیارم؟ نگران نباش، تو تنها نیستی! خیلی از برنامه‌نویس‌های حرفه‌ای هم یه روزی دقیقاً همین سؤال رو از خودشون پرسیدن.برنامه‌نویسی یه جاده پرپیچ‌وخم اما با مقصد طلاییه که پر از فرصت‌های بی‌نهایته. برنامه‌نویسی مثل یه کلید جادوییه که می‌تونه درهای یه دنیای پر از فرصت‌های هیجان‌انگیز رو به روت باز کنه! اگه تازه وارد این دنیا شدی و فکر می‌کنی &quot;خب، حالا چطور از این مهارت پول دربیارم؟&quot;، نگران نباش! تو تنها نیستی و ما قراره تو این پست باهم یه نقشه راه بکشیم که بتونی قدم به قدم به درآمد از برنامه‌نویسی برسی. پس آماده باش، چون قراره با چندتا ایده باحال و کاربردی، مسیرت رو روشن کنیم!۱. کی به پول می‌رسم؟ سؤال میلیون دلاری! 💰شاید اولین چیزی که ذهنت رو درگیر کرده اینه: &quot;بالاخره کی می‌تونم پول دربیارم؟&quot; این سؤال کاملاً طبیعیه! خبر خوب اینه که رسیدن به درآمد از برنامه‌نویسی یه مسیر طولانی و نشدنی نیست، اما خب، یک شبه هم اتفاق نمی‌افته.مثل هر مهارت دیگه‌ای، برنامه‌نویسی هم نیاز به زمان و تلاش (خاک خوری) داره. هرچی بیشتر تمرین کنی و پروژه‌های کوچیک بگیری، سریع‌تر به اون نقطه می‌رسی که اولین دستمزدهات رو توی حسابت ببینی. شاید چند ماه طول بکشه تا پروژه‌های اولیه رو بگیری و تجربه کسب کنی، اما مطمئن باش وقتی شروع کنی، دیگه خبری از توقف نیست! اولین درآمدت مثل یه سوخت جت عمل می‌کنه و بهت انگیزه میده تا با سرعت بیشتری پیش بری.۲. چطور وارد بازار کار بشم؟ اولین قدم‌ها رو محکم بردار! 🚀فکر می‌کنی برای ورود به بازار کار برنامه‌نویسی حتماً باید یه رزومه خفن داشته باشی یا توی یه شرکت بزرگ استخدام بشی؟ درست فکر میکنی خیلی مواقع. شاید هم اصلاً این‌طور نباشه! برای شروع، می‌تونی از پروژه‌های کوچیک شروع کنی. این پروژه‌ها بهت کمک می‌کنن هم تجربه کسب کنی و هم یه نمونه کار (پورتفولیو) برای خودت بسازی. دنبال جایی برای کاراموزی هم باش.سایت‌های فریلنسری مثل Upwork، Freelancer و حتی سایت‌های ایرانی مشابه، بهترین جا برای شروع هستن. می‌تونی اونجا پروژه‌های کوچیک رو بگیری و کم‌کم مهارت‌ها و تجربه‌هات رو گسترش بدی. حتی پروژه‌های خیلی کوچیک هم می‌تونن تو رو به بازار معرفی کنن و اولین فرصت‌ها رو برات فراهم کنن. یادت باشه، هر پروژه کوچیک، یه پله برای رسیدن به پروژه‌های بزرگ‌تره!۳. فریلنسری یا شرکت؟ کدوم راه بهتره؟ 🤔یکی از بهترین راه‌ها برای کسب درآمد از برنامه‌نویسی، فریلنسریه. فریلنسری یعنی اینکه به جای استخدام شدن توی یه شرکت، می‌تونی پروژه‌های مختلف رو از مشتری‌های گوناگون بگیری و مستقل کار کنی. این کار آزادی زیادی بهت میده، مثلاً می‌تونی زمان کاریت رو خودت تنظیم کنی یا از هرجایی که دوست داری کار کنی.البته فریلنسری چالش‌های خاص خودش رو هم داره؛ باید بتونی خودت رو به بازار معرفی کنی، مشتری جذب کنی و پروژه‌ها رو به موقع تحویل بدی. ولی برای شروع، عالیه! می‌تونی همین حالا سری به سایت‌های فریلنسری بزنی و پروژه‌های کوچیک رو قبول کنی تا هم دستت راه بیفته و هم تجربه کسب کنی.در کنار فریلنسری، وقتی تجربه‌هات بیشتر شد، می‌تونی به فکر استخدام توی شرکت‌های بزرگ‌تر هم باشی. هر دو مسیر مزایای خودشون رو دارن و تو می‌تونی با توجه به اهداف و سبک زندگیت، بهترین رو انتخاب کنی.۴. ایده خودمو بزنم و پولدار شم؟ رؤیای شیرین! 💡شاید به این فکر می‌کنی که یه ایده خفن پیدا کنی و یه استارتاپ راه بندازی تا یه شبه میلیاردر شی. خب، این یه رؤیای شیرینه، ولی مهم‌تر از خود ایده، اجرا و تلاش توئه!اگه ایده‌ای داری که فکر می‌کنی می‌تونه مشکل یه عده رو حل کنه یا بازار خوبی داشته باشه، چرا که نه؟! شروع کن! می‌تونی با ساختن یه اپلیکیشن ساده یا وب‌سایت کوچیک شروع کنی و با جذب کاربر، کم‌کم درآمد کسب کنی. فقط یادت باشه که راه‌اندازی استارتاپ زمان و هزینه می‌بره و ممکنه اولش سود زیادی نداشته باشه. اما اگه با علاقه و پشتکار دنبالش باشی، ممکنه یه روزی ایده تو به یه موفقیت بزرگ تبدیل بشه! اینم در نظر داشته باش که باید هم تیم خوبی داشته باشی هم سرمایه خوبی. کم پیش میاد که بدون این دوتا اصلا بشه یه ایده رو به جایی رسوند.۵. رزومه برنامه‌نویسی چطور باید باشه؟ کارت ویزیت تو! 📄رزومه تو، کارت ویزیت تو توی دنیای برنامه‌نویسیه! به جای اینکه فقط روی مدارک تحصیلی و دوره‌هایی که گذروندی تمرکز کنی، بهتره پروژه‌هایی که انجام دادی و مهارت‌هایی که داری رو بولد کنی.اگه هنوز تجربه کاری زیادی نداری، اشکالی نداره! می‌تونی پروژه‌های شخصی خودت رو توی رزومه‌ت بیاری. حتی اگه پروژه‌های کوچیک باشن، باز هم نشون میدن که تو آدم عملگرایی هستی و می‌تونی کد بنویسی. پس هر چیزی که ساختی، هرچقدر هم ساده، توی رزومه‌ت بنویس! نحوه رزومه نوشتن هم زیاد هست تو اینترنت با یه جستجو به دست میاد.۶. بدون نمونه کار، جایی منو قبول نمی‌کنن؟ 😥این سؤال خیلی از تازه‌کارهاست، و جوابش اینه که نمونه کار واقعاً مهمه! نمونه کار مثل یه پرونده عملیه که نشون میده تو چقدر بلدی و چه کارهایی می‌تونی انجام بدی.اگه هنوز هیچ پروژه‌ای نداری، اصلاً نگران نباش. می‌تونی همین الان شروع کنی به ساخت پروژه‌های کوچک شخصی. مثلاً یه وب‌سایت ساده برای خودت بساز یا یه اپلیکیشن کوچیک که یه مشکل خاص رو حل کنه. کارفرماها دنبال این هستن که ببینن تو چطور مهارت‌هات رو توی دنیای واقعی نشون دادی و چطور ازشون برای حل مشکلات استفاده کردی. هر پروژه کوچیک، یه قدم به سمت داشتن یه نمونه کار قوی‌تره.۷. چطور نمونه کار بسازم؟ از همین الان شروع کن! 🛠️برای ساخت نمونه کار، نیازی نیست دنبال پروژه‌های پیچیده باشی. همین حالا می‌تونی چندتا پروژه شخصی جذاب برای خودت تعریف کنی:یک وب‌سایت ساده: با استفاده از HTML، CSS و JavaScript یه وب‌سایت شخصی برای خودت بساز یا یه صفحه معرفی برای مهارت‌هات طراحی کن.یک اپلیکیشن موبایل ساده: اگه به برنامه‌نویسی موبایل علاقه داری، با React Native یا Flutter یه اپلیکیشن ساده مثل یه ماشین‌حساب یا لیست کارهای روزانه بساز.یک ابزار آنلاین: فکر کن ببین چه مشکلی وجود داره که می‌تونی با یه ابزار آنلاین ساده حلش کنی. مثلاً یه ابزار تبدیل واحد، یه ماشین‌حساب پیشرفته، یا یه اپلیکیشن یادداشت‌برداری.مشارکت در پروژه‌های اوپن‌سورس: اگه به برنامه‌نویسی متن‌باز علاقه داری، می‌تونی توی پروژه‌های اوپن‌سورس (Open Source) مشارکت کنی. این کار هم بهت تجربه میده و هم رزومه‌ت رو قوی می‌کنه.پروژه‌هایی که خودت می‌سازی، حتی اگه کوچیک باشن، اعتماد کارفرماها رو جلب می‌کنن و بهت کمک می‌کنن تا اولین گام‌های ورود به بازار کار رو برداری.۸. آموزش مداوم: هیچ‌وقت از یادگیری دست نکش! 🧠دنیای برنامه‌نویسی هر روز در حال تغییره و تکنولوژی‌های جدید میان و میرن. اگه می‌خوای همیشه توی این بازی بمونی و فرصت‌های خوبی داشته باشی، باید همیشه در حال یادگیری باشی. این یعنی:کتاب بخونید و ویدئو آموزشی ببینید: منابع آموزشی آنلاین و آفلاین بی‌شماری وجود دارن. از یوتیوب و کورس‌سرا گرفته تا کتاب‌های تخصصی، همه اینا می‌تونن بهت کمک کنن.با ترندهای جدید آشنا بشید: ببینید چه زبان‌های برنامه‌نویسی یا فریم‌ورک‌هایی الان پرطرفدار هستن (مثلاً هوش مصنوعی، بلاکچین، توسعه وب با React و Vue.js).توی کامیونیتی‌ها شرکت کنید: به گروه‌های تلگرامی، دیسکورد یا فروم‌های برنامه‌نویسی بپیوندید. اونجا می‌تونی سؤال بپرسی، تجربه کسب کنی و حتی با بقیه برنامه‌نویس‌ها شبکه‌سازی کنی.یادت باشه، سرمایه‌گذاری روی خودت و یادگیری مداوم، بهترین راه برای پیشرفت و افزایش درآمدت توی برنامه‌نویسیه.۹. شبکه‌سازی: ارتباطات طلاست! 🤝شاید فکر کنی برنامه‌نویسی فقط نشستن پای کامپیوتر و کد زدنه، اما این فقط نصف ماجراست! شبکه‌سازی (Networking) یکی از مهم‌ترین مهارت‌هایی هست که می‌تونه درها رو به روی تو باز کنه.در رویدادها و همایش‌ها شرکت کنید: حتی اگه آنلاین باشن، این فرصت‌ها رو از دست نده. می‌تونی با افراد حرفه‌ای آشنا بشی، از تجربیاتشون استفاده کنی و حتی فرصت‌های کاری پیدا کنی.در لینکدین فعال باشید: یک پروفایل حرفه‌ای بسازید، با برنامه‌نویس‌های دیگه ارتباط برقرار کنید و تجربیاتتون رو به اشتراک بگذارید. خیلی از فرصت‌های شغلی از طریق همین شبکه پیدا میشن.پروژه‌های مشترک انجام بدید: با بقیه برنامه‌نویس‌ها روی پروژه‌های کوچک کار کنید. این کار هم مهارت‌های تیمی تو رو تقویت می‌کنه و هم یه عالمه تجربه بهت میده.داشتن ارتباطات قوی می‌تونه بهت کمک کنه تا سریع‌تر فرصت‌های شغلی پیدا کنی و با چالش‌های برنامه‌نویسی راحت‌تر کنار بیای.۱۰. صبر و پشتکار: کلید موفقیت! 💪راه‌اندازی هر کسب‌وکاری، یا حتی ورود به هر حرفه‌ای، نیاز به صبر و پشتکار داره، برنامه‌نویسی هم از این قاعده مستثنی نیست. ممکنه توی مسیر با چالش‌های زیادی روبرو بشی: کدهات کار نکنن، پروژه‌هات به مشکل بخورن، یا حتی ناامید بشی.از شکست‌ها درس بگیرید: هر باگی که پیدا می‌کنی یا هر پروژه‌ای که موفق نمیشه، یه فرصت برای یادگیریه.هدف‌گذاری کنید: اهداف کوچک و قابل دسترس برای خودت تعیین کن و مرحله به مرحله بهشون برس.ناامید نشید: اگه الان نمی‌تونی یه پروژه بزرگ بگیری یا درآمد زیادی نداری، اشکالی نداره. هر برنامه‌نویس حرفه‌ای از همین نقطه شروع کرده.موفقیت توی برنامه‌نویسی یه ماراتنه، نه یه دوی سرعت! پس صبور باش، پشتکار داشته باش و هیچ‌وقت از تلاش دست نکش.</description>
                <category>مسترباگ</category>
                <author>مسترباگ</author>
                <pubDate>Mon, 07 Jul 2025 11:44:28 +0330</pubDate>
            </item>
                    <item>
                <title>جادوی لحظات: خلاصه کتاب The Power of Moments</title>
                <link>https://virgool.io/@mrbug_ir/%D8%AC%D8%A7%D8%AF%D9%88%DB%8C-%D9%84%D8%AD%D8%B8%D8%A7%D8%AA-%D8%AE%D9%84%D8%A7%D8%B5%D9%87-%DA%A9%D8%AA%D8%A7%D8%A8-the-power-of-moments-guos9ylrehcs</link>
                <description>تا حالا شده یه لحظه خاص، یه خاطره، یه اتفاق کوچیک، یهو مسیر زندگی‌تون رو عوض کنه؟ کتاب &quot;قدرت لحظه‌ها&quot; از Chip &amp; Dan Heath دقیقا درباره همین موضوعه: چطور لحظات کوتاهی که هم به‌یادماندنی و هم معنادار هستن، می‌تونن ما رو متحول کنن؟چرا این کتاب مهمه؟&quot;قدرت لحظه‌ها&quot; به ما یاد میده که لازم نیست منتظر بمونیم تا لحظات خاص خودشون اتفاق بیفتن. ما می‌تونیم آگاهانه لحظات به‌یادماندنی و معنادار رو خلق کنیم و زندگی‌مون رو به شکل دلخواه خودمون شکل بدیم. چه در روابط شخصی، چه در کسب‌وکار و چه در زندگی شخصی، این کتاب به ما کمک می‌کنه تا با خلق لحظات ارزشمند، تاثیر مثبت و ماندگاری بر جای بذاریم.این کتاب رو بخونید اگه:می‌خواهید روابط قوی‌تری بسازید.به دنبال معنا و هدف در زندگی‌تون هستید.می‌خواهید تاثیر مثبتی بر دیگران داشته باشید.می‌خواهید لحظات زندگی‌تون رو به‌یادماندنی‌تر کنید.داستان چیه؟ذهن ما مثل یه فیلم‌بردار آماتور عمل می‌کنه! وقتی یه تجربه رو مرور می‌کنیم، تمام جزئیات رو ضبط نمی‌کنه، بلکه روی چند لحظه کلیدی تمرکز می‌کنه:گذار: تغییرات مهمنقاط عطف: بهترین لحظاتدره : لحظات سخت و دردناکاین لحظات تعیین کننده هستند و باید سعی کنیم حداکثر استفاده رو ازشون داشته باشیم. اما چطوری؟ اول بیاید دقیق این لحظات رو بشناسیم:گذارگذارها، لحظاتی هستن که نشان‌دهنده یک تغییر بزرگ در زندگی ما هستند. این لحظات می‌تونن هم هیجان‌انگیز و هم ترسناک باشن. مهم اینه که این تغییرات رو بپذیریم و برای آینده برنامه‌ریزی کنیم. مثل فارغ‌التحصیل شدن از دانشگاه، شروع یه شغل جدید، ازدواج، مهاجرت به یه شهر یا کشور جدید، بازنشستگی و ...نقاط عطفبهترین لحظات: برنده شدن در یک مسابقه، گرفتن نمره عالی در امتحان، ازدواج با عشقتون، تولد فرزندتون، رسیدن به یه هدف بزرگ.بدترین لحظات: از دست دادن یه عزیز، یه تصادف وحشتناک، از دست دادن شغل، شکست در یه پروژه مهم.قله‌ها، لحظاتی هستن که احساسات ما رو به شدت برانگیخته می‌کنند. چه احساسات مثبت (مثل شادی و غرور) و چه احساسات منفی (مثل غم و اندوه). این لحظات به دلیل شدت احساسی که دارن، در حافظه ما ثبت می‌شوند.درهپستی‌ها، لحظاتی هستن که با چالش‌ها، شکست‌ها و ناراحتی‌ها همراه هستند. این لحظات ممکنه دردناک باشن، اما می‌تونن فرصتی برای یادگیری و رشد هم باشن. مهم اینه که چطور با این لحظات برخورد می‌کنیم . مثل یه پروژه سخت و طاقت‌فرسا، یه بیماری طولانی‌مدت، یه دوره افسردگی، یه شکست عشقی و ...دره ها رو باید پر کرد اگر شد حتی به قله تبدیل بشن. مثلا شرکت دیزنی برای اینکه مردم از انتظار کشیدن توی صف‌های طولانی خسته میشدن یکسری هنرمند استخدام کرد که مردم رو سرگرم کنند ...چطور لحظات فوق‌العاده خلق کنیم؟تعالی E - Elevation : فراتر رفتن از روال عادی، ایجاد تجربه‌ای که حواس ما رو به شدت درگیر کنه و احساسات ما رو برانگیزه. این عنصر باعث می‌شه لحظه مورد نظر از بقیه لحظات زندگی‌مون متمایز بشه.افتخار P - Pride : احساس رضایت از خودمون به خاطر انجام یه کار ارزشمند، غلبه بر یه چالش یا کمک به دیگران. این عنصر باعث می‌شه اعتماد به نفس ما افزایش پیدا کنه و احساس قدرت کنیم.بینش I - Insight : رسیدن به یه درک جدید از خودمون، از دیگران یا از دنیای اطرافمون. این عنصر باعث می‌شه نگاه ما به زندگی تغییر کنه و دیدگاه جدیدی پیدا کنیم.ارتباط C - Connection :  ایجاد پیوند عمیق با دیگران، احساس تعلق به یه گروه یا یه جامعه، درک این که ما بخشی از یه چیز بزرگتر هستیم. این عنصر باعث می‌شه احساس تنهایی نکنیم و بدونیم که کسانی هستند که به ما اهمیت میدن.۱. تعالی:هدف: ایجاد لحظاتی که از روزمرگی فراتر برن و ما رو درگیر و شاد کنن.حس‌ها رو تقویت کنید:از حواس پنجگانه برای ایجاد تجربه‌ای غنی‌تر استفاده کنید.مثال: یه رستوران می‌تونه با نورپردازی مناسب، موسیقی دلنشین و عطر خوشایند غذا، فضایی به‌یادماندنی ایجاد کنه. یه شرکت می‌تونه از یه لوگوی زیبا، رنگ‌های جذاب و بسته‌بندی باکیفیت برای محصولاتش استفاده کنه تا حس خوبی به مشتری منتقل کنه.ریسک رو بالا ببرید:اضافه کردن یه عنصر رقابت، بازی، اجرا، مهلت یا تعهد عمومی می‌تونه فشار مثبتی ایجاد کنه که لحظه رو خاص‌تر کنه.مثال: یه تیم فروش می‌تونه یه مسابقه بذاره و به کسی که بیشترین فروش رو داشته باشه جایزه بده. یه معلم می‌تونه از دانش‌آموزان بخواد که یه ارائه عمومی داشته باشن.روال رو بشکنید:انتظارات رو زیر پا بذارید و یه سورپرایز کوچیک ایجاد کنید. این کار باعث میشه افراد به روال‌های عادی فکر کنن و از تجربه‌های جدید لذت ببرن.مثال: یه هتل می‌تونه به طور تصادفی به بعضی از مهمون‌ها یه ارتقا اتاق رایگان بده. یه شرکت هواپیمایی می‌تونه یه اعلامیه ایمنی خنده‌دار پخش کنه (مثل Southwest Airlines).۲. بینش:هدف: ایجاد لحظاتی که باعث میشن ما چیزهای جدیدی درباره خودمون و دنیای اطرافمون یاد بگیریم.به مخاطب اجازه بدید خودش به نتیجه برسه:به جای اینکه جواب رو آماده تحویل بدید، افراد رو هدایت کنید تا خودشون به نتیجه برسن.مثال:یک مدیر به جای گفتن &quot;این کار رو اینطوری انجام بده&quot;، میپرسه &quot;به نظرت چه راه حلی برای این مشکل وجود داره؟حقیقت رو بهشون نشون بدید:مشکل یا ضرری رو که قبلاً متوجهش نبودن رو بهشون نشون بدید.مثال: یه شرکت می‌تونه به مشتری‌ها نشون بده که چطور محصولشون می‌تونه مشکل خاصی رو حل کنه.اونها رو به چالش بکشید تا برای درک عمیق‌تر تلاش کنن:افراد رو در موقعیت‌های جدید قرار بدید که اونها رو مجبور کنه از منطقه امن خودشون خارج بشن.مثال: یه شرکت می‌تونه کارمندانش رو به یه کنفرانس بفرسته یا اونها رو در پروژه‌های جدیدی شرکت بده.۳. افتخار:هدف: ایجاد لحظاتی که باعث میشن ما احساس کنیم به بهترین نسخه خودمون تبدیل شدیم.از دیگران قدردانی کنید:یه تشکر ساده، یه تعریف صادقانه یا یه جایزه کوچیک می‌تونه تاثیر زیادی داشته باشه.مثال: یه مدیر می‌تونه به طور شخصی از کارمندانش تشکر کنه یا بهشون یه پاداش کوچیک بده. یه شرکت می‌تونه یه مراسم تقدیر از کارمندان برگزار کنه.نقاط عطف رو بیشتر کنید:اهداف بزرگ رو به اهداف کوچیک و قابل دسترس تقسیم کنید و هر بار که به یکی از این اهداف رسیدید، جشن بگیرید.مثال: یه نویسنده می‌تونه برای خودش یه مهلت تعیین کنه که هر هفته یه فصل از کتابش رو تموم کنه. یه دونده می‌تونه برای خودش یه برنامه تمرینی با نقاط عطف مشخص تعیین کنه.شجاعت رو تمرین کنید:از منطقه امن خودتون خارج بشید، با ترس‌هاتون روبرو بشید و کارهایی رو انجام بدید که قبلاً فکر می‌کردید نمی‌تونید انجام بدید.مثال: یه فرد خجالتی می‌تونه سعی کنه با یه غریبه صحبت کنه. یه فردی که از سخنرانی می‌ترسه می‌تونه یه ارائه عمومی داشته باشه.۴. ارتباط:هدف: ایجاد لحظاتی که ما رو به دیگران پیوند میدن و باعث میشن احساس کنیم بخشی از یه چیز بزرگتر هستیم.معنای مشترک خلق کنید:همه رو به یه هدف مشترک متصل کنید و نشون بدید که چطور کار هر فرد به تحقق این هدف کمک می‌کنه.مثال: یه شرکت می‌تونه ماموریتش رو به طور واضح بیان کنه و نشون بده که چطور کار هر کارمند به این ماموریت کمک می‌کنه.روابط رو عمیق‌تر کنید:به حرف‌های دیگران با دقت گوش بدید، همدلی کنید و نشون بدید که بهشون اهمیت میدید.مثال: یه دوست می‌تونه به دوستش که در حال گذروندن یه دوران سخت هست، گوش بده و بهش نشون بده که درکش می‌کنه.لحظات رو مهم جلوه بدید:کاری کنید که افراد احساس کنن بخشی از یه چیز بزرگتر هستن و اینکه حضورشون مهمه.مثال: یه رهبر می‌تونه به کارمندانش نشون بده که چطور کارشون به جامعه کمک می‌کنه.آماده‌اید زندگی‌تون رو &quot;EPIC&quot; کنید؟</description>
                <category>مسترباگ</category>
                <author>مسترباگ</author>
                <pubDate>Thu, 17 Apr 2025 12:10:16 +0330</pubDate>
            </item>
                    <item>
                <title>چگونه مدیر خوبی باشیم؟ خلاصه کتاب The motive</title>
                <link>https://virgool.io/@mrbug_ir/themotive-qwat7evvfgru</link>
                <description>تا حالا به این فکر کردید چه چیزی یه مدیر رو از یه ناظر ساده، به یه رهبر الهام‌بخش و تاثیرگذار تبدیل می‌کنه؟ من همیشه به دنبال پیدا کردن این  بودم و خوشحالم که یه منبع عالی پیدا کردم که جواب خیلی از سوالاتم رو داد: کتاب &quot;The Motive: Why So Many Leaders Abdicate Their Most Important Duty&quot; (انگیزه: چرا اینقدر از رهبران از مهمترین وظیفه خود شانه خالی می‌کنند).توی این پست، می‌خوام یه خلاصه جمع و جور از این کتاب  رو باهاتون به اشتراک بذارم و بهتون بگم چطور می‌تونید یه مدیر واقعاً خوب باشید و تیم‌تون رو به قله‌های موفقیت برسونید!یه نکته مهم قبل از هر چیز: انگیزه، ریشه هر عملکردیه!کتاب  به یه مفهوم اساسی تاکید می‌کنه: انگیزه شما از رهبری چیه؟ آیا دنبال کسب قدرت و ارتقای جایگاه خودتون هستید، یا قلباً می‌خواید به تیم‌تون کمک کنید تا به بهترین عملکردشون برسن و در مسیر رشد قرار بگیرن؟ این کتاب، این دو نوع انگیزه رو اینطوری دسته‌بندی می‌کنه:۱. انگیزه پاداش: مدیرایی که بیشتر به فکر منافع شخصی خودشون هستن ارتقای شغلی، افزایش حقوق، شهرت.۲. انگیزه مسئولیت: مدیرایی که حس مسئولیت در قبال رشد و موفقیت تیم‌شون دارن و موفقیت تیم براشون در اولویته.خب، حالا بریم سراغ ۵ راهکار عملی و کاربردی که  بهتون کمک می‌کنن یه مدیر خوب باشید:۱. یه تیم رهبری رویایی بسازید: درست مثل تیمی از ابرقهرمانان!تصور کنید دارید یه تیم از ابرقهرمانان جمع می‌کنید. هر کدوم یه قدرت خاص دارن و با هم متحد میشن تا دنیا رو نجات بدن. توی تیم رهبری هم دقیقا همینه! یه تیم رهبری خوب، تیمی هست که:اعضاش به هم اعتماد دارن و از نشون دادن ضعف‌هاشون نمی‌ترسن. وقتی همه راحت باشن، ایده‌های خلاقانه‌تری مطرح میشن!به جای اینکه از بحث و اختلاف نظر فرار کنن، ازش به عنوان فرصتی برای رسیدن به راه حل‌های بهتر استفاده می‌کنن. بحث‌های سازنده، موتور محرک نوآوری هستن.به تصمیمات گروهی متعهد هستن، حتی اگه باهاش مخالف باشن. وحدت و هماهنگی، کلید پیروزیه.مسئولیت‌پذیر هستن و از سرزنش کردن دیگران خودداری می‌کنن. اشتباهات فرصتی برای یادگیری و رشد هستن.بیشتر از منافع خودشون، به فکر موفقیت کلی سازمان هستن. تیم باید در اولویت باشه!۲. زیردستانتون رو مثل یه باغبان ماهر، پرورش بدید: با عشق و صبر!یه باغبان ماهر، به گیاه‌هاش نور کافی میده، خاک‌شون رو غنی می‌کنه، علف‌های هرز رو از بین می‌بره و با عشق و صبر، بهشون کمک می‌کنه تا شکوفا بشن. شما هم باید با زیردستانتون همینطور رفتار کنید! یعنی:به طور منظم باهاشون در ارتباط باشید و از چالش‌ها و فرصت‌هاشون باخبر بشید. بهشون نشون بدید که دغدغه‌مند هستید.بهشون بازخورد سازنده و به موقع بدید و کمکشون کنید تا عملکردشون رو بهتر کنن. مثل یه مربی دلسوز، راهنماییشون کنید.فرصت‌های رشد و توسعه براشون فراهم کنید و بهشون کمک کنید مهارت‌هاشون رو ارتقا بدن. بهشون فضا بدید تا پتانسیل‌های خودشون رو شکوفا کنن.اونها رو تشویق و ترغیب کنید تا به اهداف سازمان برسن و بهشون انگیزه بدید. نقاط قوت‌شون رو برجسته کنید و از موفقیت‌هاشون قدردانی کنید.بهشون اعتماد داشته باشید و بهشون اجازه بدید که تصمیم بگیرن و بهشون قدرت تصمیم‌گیری بدید. اعتماد، پایه‌ و اساس یه رابطه کاری قویه.آیا زیردستانتون احساس می‌کنن که شما واقعاً بهشون اهمیت میدید و به پیشرفتشون اهمیت می‌دید؟۳. از گفتگوهای سخت نترسید: چون شجاعت، رمز رشده!هیچکس دوست نداره توی موقعیت‌های ناخوشایند قرار بگیره، اما یه مدیر خوب باید شهامت روبرو شدن با گفتگوهای سخت و چالش‌برانگیز رو داشته باشه. این گفتگوها شامل:ارائه بازخورد منفی. مهم اینه که این کار رو با لحنی محترمانه و سازنده انجام بدید و بر رفتار تمرکز کنید، نه شخصیت.حل تعارضات. باید بتونید بین افراد صلح و آشتی برقرار کنید و به راه‌حل‌های برد-برد برسید.تصمیم‌گیری‌های سخت. گاهی مجبورید تصمیماتی بگیرید که ممکنه باعث ناراحتی بعضی از افراد بشه، اما به نفع سازمان هست. آیا شما از روبرو شدن با این موقعیت‌ها فرار می‌کنید، یا شجاعانه باهاشون مقابله می‌کنید و دنبال راه‌حل‌های سازنده می‌گردید؟۴. جلسات رو تبدیل به سلاح مخفی کنید نه یه کابوس تکراری!جلسات می‌تونن ابزاری قدرتمند برای پیشبرد اهداف باشن، اما اگه درست برگزار نشن، فقط اتلاف وقت و انرژی هستن. یه جلسه خوب، جلسه‌ایه که:به طور منظم و با یه دستور کار مشخص برگزار میشه. همه باید بدونن قراره در مورد چی صحبت بشه و هدف از جلسه چیه.وقت رو به درستی مدیریت می‌کنید و از حاشیه‌روی و اتلاف وقت جلوگیری می‌کنید. بهینه‌سازی زمان، نشونه احترام به وقت دیگرانه.همه اعضا رو به مشارکت فعال تشویق می‌کنید و بهشون فرصت میدید نظرشون رو بیان کنن. تنوع دیدگاه‌ها، به تصمیمات بهتری منجر میشه.در پایانش به یه توافق مشخص میرسید و اقدامات بعدی رو تعیین می‌کنید. جلسه باید یه نتیجه ملموس داشته باشه.به نتایج ملموس و قابل اندازه‌گیری منجر میشه و تاثیر مثبتی بر عملکرد تیم و سازمان داره. باید بدونیم که جلسه واقعاً تاثیرگذار بوده. آیا جلسات شما واقعاً مفید و سازنده هستن، یا فقط یه سری حرف تکراری و بی‌نتیجه هستن؟۵. پیام‌های مهم رو هی تکرار کنید: مثل یه آهنگ ماندگار!یه مدیر خوب، مثل یه دی‌جی حرفه‌ای عمل می‌کنه! مدام یه آهنگ رو پلی نمی‌کنه، اما آهنگ‌های اصلی و مهم رو بارها و بارها پخش می‌کنه تا همه ملودی و شعرش رو حفظ کنن! شما هم باید ارزش‌ها و پیام‌های مهم سازمان رو بارها و بارها به کارمندانتون یادآوری کنید. آیا مطمئنید که همه کارمنداتون از ارزش‌ها و اهداف سازمان خبر دارن و در راستای اونها حرکت می‌کنن؟</description>
                <category>مسترباگ</category>
                <author>مسترباگ</author>
                <pubDate>Sun, 23 Mar 2025 15:44:14 +0330</pubDate>
            </item>
                    <item>
                <title>چگونه از کارفرما سوال بپرسیم</title>
                <link>https://virgool.io/@mrbug_ir/best-questions-to-ask-employer-p6x8h8smsnnk</link>
                <description>اگر آدمی هستید که توی حیطه کامپیوتر مشغول کارید احتمالا بارها براتون داستان اینکه شخصی(کارفرما) با یک ایده میلیون دلاری که میتونه دنیا رو عوض کنه پیش شما میاد و درخواست میکنه که یه پروژه نرم‌افزاری براش بزنید(سایت، اپ و ...) و چون زیاد به دنیای نرم‌افزار آشنا نیست باید براش توضیح بدید که راه و چاه چیه که با علم و دانایی هرچه بیشتر وارد پیاده‌سازی پروژه بشه. همچنین شما به عنوان پیمانکار باید برای تخمین زمان و هزینه‌ای که اون پروژه داره یکسری اطلاعات داشته باشید و توی جلسه اول بپرسید تا فضا برای جفتتون نورانی بشه. در ادامه یکسری سوال لیست شده که باید از کارفرما پرسیده بشه تا طرفین قضیه وارد بازی بشن و کارفرما با این اطلاعاتی که هنوز از ایده خودش نمیدونه بتونه یک RFP شایسته و بایسته برای ایده نابش بنویسه.یا اگر شما فکر میکنید که ایده یه پروژه نرم افزاری دارید و ممد‌‌آقا که تو کار برنامه‌نویسی و نصب حرفه‌ای ویندوزه رو تازه از تور کویر پیدا کردید و قراره بهش ایدتون رو توضیح بدید تا به صورت مشارکتی براتون کد بزنه و بعدا سهام بگیره. لطفا قبل از اینکه به ممد‌آقا چیزی بگید یکبار جواب این سوالات رو با خودتون مرور کنید که توی توضیح ایدتون اینا هم باشه.لیست سوالات۱. پروژه به چه هدفی می‌پردازد؟۲. چه مشکلات و نیازهای خاصی در کسب و کار شما وجود دارد که این پروژه باید حل کند؟۳. چه کسانی از این نرم‌افزار استفاده خواهند کرد؟ چه تعداد هستند؟ بعد از چه مدت چه افزایشی پیدا میکنند؟۴. ویژگی‌ها و عملکردهای اصلی مورد انتظار چیستند؟۵. چگونه کاربران با نرم‌افزار تعامل خواهند داشت؟ آیا نیاز به رابط کاربری خاصی وجود دارد؟۶.لطفاً محدودیت‌هایی که ممکن است بر پیشرفت پروژه تأثیر بگذارند را توضیح دهید. به عنوان مثال، محدودیت‌های زمانی یا مالی یا محدودیت‌های مرتبط با تکنولوژی مورد استفاده در پروژه.۷. چه معیارهایی برای انجام موفقیت‌آمیز پروژه در نظر گرفته شده است؟۸. گامهای اصلی انجام پروژه چیست؟ گام‌های مهم و مراحل اجرایی که برای تحقق اهداف پروژه لازم است، مشخص کنید. به عنوان مثال، ترتیب پیاده سازی ویژگی‌های نرم افزار.۹. کدام افراد مسئولیت اجرای پروژه را بر عهده دارند؟ چه نقش‌هایی در پروژه تعیین شده‌اند؟۱۰. آیا این نرم‌افزار باید با سیستم‌ها یا خدمات دیگر تعامل داشته باشد؟۱۱. آیا امکانات امنیتی خاصی از جمله ورود چند مرحله‌ای در نظر گرفته شده است؟۱۲. چگونه اطلاعات در این نرم‌افزار ذخیره، بازیابی و مدیریت می‌شوند؟۱۳. چقدر این پروژه باید با تغییرات آینده تطابق داشته باشد؟ قابلیت پروژه برای انطباق با محیط تغییرات و نیازمندی‌های آینده اشاره دارد. توانایی ایجاد یک base قابل توسعه، افزودن و تغییر در آینده برای پشتیبانی از تغییرات کسب و کار و نیازمندی‌های جدید را مورد بررسی قرار می‌دهد. این توانایی ممکن است شامل انعطاف‌پذیری در معماری، استفاده از استانداردهای باز، و ایجاد راهکارهایی برای تغییرات بیشتر در آینده باشد. (هرچقدر این معماری باز تر و انتزاعی تر باشه قاعدتا هزینه بیشتری میبره تا الان فقط یه چیزی بیاریم بالا که فقط کار کنه)۱۴. فرآیند ارتباطات و اطلاع‌رسانی با تیم پیاده‌سازی و کارفرما چگونه خواهد بود؟</description>
                <category>مسترباگ</category>
                <author>مسترباگ</author>
                <pubDate>Fri, 26 Jan 2024 17:36:22 +0330</pubDate>
            </item>
                    <item>
                <title>10 چیزی که کاش به عنوان دانشجوی کامپیوتر می‌دانستم</title>
                <link>https://virgool.io/newdima/10-%DA%86%DB%8C%D8%B2%DB%8C-%DA%A9%D9%87-%DA%A9%D8%A7%D8%B4-%D8%A8%D9%87-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%DB%8C%DA%A9-%D8%AF%D8%A7%D9%86%D8%B4%D8%AC%D9%88%DB%8C-%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1-%D9%85%DB%8C-%D8%AF%D8%A7%D9%86%D8%B3%D8%AA%D9%85-xonluyko1vvh</link>
                <description>می با جوانان خوردنم باری تمنا میکندمن علیرضام و از اولین کدی که  نوشتم حدود ۱۰ سالی میگذره و الان فهمیدم اون اوایلی که کامپیوتر و برنامه نویسی رو شروع کردم  یکسری کارها رو باید میکردم نکردم و یکسری ها رو کردم و خوب بوده. موضوعاتی که در ذهنم مهم بود رو شمردمشون دیدم ععع ۱۰ تا شدن و خوراک یک تیتر زرد جنجالیه. دقت کنید که اینها صرفا تجربه منه و من فکر میکنم توی زندگی من اینا درست یا غلط بوده و ممکنه توی زندگی شما کلا فرق کنه. اشاره به داستان شتری که رفت توی آب و گفت آب تا زانوی منه و روباه هم دنبالش رفت و غرق شد. زانو ماهم شاید هم اندازه نباشه خلاصه.۱.کامپیوتر صرفا یک ابزاره این همه نقش در آینه اوهام افتادمن همیشه تصورم این بود که رشته کامپیوتر و در نمای بالاتر شغلهای مربوط به کامپیوتر خیلی خفنن و بقیه رشته‌ها باید بیان مارو طلا بگیرن. فاز هکری و اینا هم مال فیلماس الانا دیگه  وقتی واقعا یک جارو هک هم بکنم اونقدرا هالیوودی نمیشه. ما شبیه به بقیه مهندسی‌ها و بقیه کارهای فنی هستیم نه چیزی فراتر. همینطور که ابزار نجار اره هستش ابزار ما هم کامپیوتره. درسته که ما شعارمون اینه که قراره دنیا رو جای بهتری برای زندگی بکنیم ولی خب بقیه انسانها هم دارن همینکارو میکنن. فقط دستامون کثیف نمیشه و در سرما گرمیم و در گرما سرد. میتونیم از توی خونه کار کنیم. ولی آیا اینها واقعا مزیته؟ خلاصه که قبلا میبالیدم و الان فهمیدم چیزی برای بالیدن وجود نداره. لکن اگر شما اگر ببالی خوشحال تری، ببال.۲.کار فقط یک بعد زندگیهکه واقف است که چون رفت تخت جم، بر باد؟ما برای تحمل زندگی  به دنبال معنی دادن بهش هستیم. معنی‌ای که من به زندگی میدادم کار کردن یا موفق شدن در کار یا پیدا کردن فلان تخصص یا یادگرفتن بیسار تکنولوژی بود. با گذشت زمان دیدم که نه. این معنی‌ای که به زندگی دادم مفهومی نداره. من دارم صرفا به چرخ‌دنده‌ای کاراتر برای شخص/سازمان دیگه‌ای میشم که درواقع اون داره با به خدمت گرفتن من به زندگیش معنی میده. درسته که با افزایش تخصص درآمدم هم میره بالاتر ولی خب فهمیدم که نیومدم تو این جهان که کار(هکر بشم، سنیور بشم، استارتاپ بزنم، میلیاردر بشم) کنم.۳.کار کردن با استارتاپ ها و مفت کشیروزی تَفَقُّدی کن درویش بی‌نوا راسیس برخی از همکلاسی‌ها و دوستانم رو یادمه که وقتی من اون اوایل دانشجویی برای یادگیری و کسب علم و دانش برده نظام سرمایه‌داری میشدم و اربابان زورگو منو به خدمت میگرفتن و در ازای یاددهی ارزنی سواد، اندک حقوقی هم نمیدادن، میگفتن که نه ما نمیریم مفت برای کسی کار کنیم. دوست داریم استارتاپ خودمون رو داشته باشیم و از بله قربان گویی و اینا خوشمون نمیاد. حالا چه کسی داره این حرفا رو میزنه؟ یه جوجوی ۱۸ ساله سس ترم که  دغدغه اصلیش اینه پایتون از سی بهتره چون تهش نمیخواد ; بذاری. این حرفها شاید برای کسی که ۱۰ سال تجربه داشته باشه کاملا صحیح باشه.توصیه من به شما جوانان اینه که اولویت اصلی تون رو بذارید روی یادگیری نه پول. و اکثر مواقع کار در استارتاپ ها شما رو خیلی رشد میده و باعث میشه که رزومه‌سازی کنید و برای کار برای اربابان دونه‌درشت‌تر قدم بردارید.برای استارتاپ زدن هم زیاد عجله‌ای نکنید وقتی چیزی بلد نیستید. البته اگر پول ندارید. با پول شاید بتونید متخصص هارو بخرید.۴.افتادگی آموز نشکنی تا خویش را، از دوست کی یابی نشانبه دلیل فاز مدرنیته و جنگولک‌بازی های رشته کامپیوتر هر کسی که تازه بیاد توش و دکمه RUN برنامه‌ای که نوشته رو بزنه فکر میکنه ماتریکس زمانه و همه باید برن زیرش یا ازش فاصله بگیرن. به خاطر همین غرور کاذب و مسخره که گریبانش رو گرفته در تعامل با جامعه نرم‌افزاری شکست میخوره. تعامل با افراد با تجربه یکی از کلید های موفقیت افراد تازه کاره که معمولا چه توی شرکت چه تیم چه حتی توی گروه‌ها یا انجمن‌هایی که عضو هستیم باهم برخورد میکنیم یا سوال میپرسیم. وقتی تواضع کافی رو نداشته باشید و هی بر ناقوس بلدم بلدم بکوبید افرادی که مشتی و سنیور هستن زیاد حس و حال سر و کله زدن با شما رو نخواهند داشت و دلیلی بر این نمیبنن که شما رو از تاریکی جهل برهانن. پس مودب باشید، سلام کنید، شاخ بازی درنیارید و این لینک لامصب چگونه سوال بپرسیم رو بخونید.۵.چگونه در ۳۰ سالگی فلج نشویمپیرم و گاهی دلم یاد جوانی می‌کندبرخلاف اکثر کارهای دیگه ما کارمون طوریه که همش نشستیم زل زدیم به صفحه مانیتور. باید یه فکری به حال کمر، گردن، چشم‌ها و سایر نقاط انجام داد که وقتی به سن ۳۰ رسیدیم از کار نیفتن. هر یک ساعت کار پا شید از روی صندلی و یه تکونی به خودتون بدید. از این اپهای Pomodro طور هم برای مدیریت زمان و تفریح وسط کار میتونید استفاده کنید. خلاصه که سرچ کنید راه‌های زیادی برای ورزش بین کار وجود داره که من متخصصش نیستم و نمیدونم. فقط میدونم افراد زیادی وجود دارن که از نظر جسمی داغون شدن بعد از مدتی که کار کردن. حالا تازه اینا سلامت فیزیکیه.۶.افشردگی در این شبِ سیاهم گم گشت راهِ مقصودما وقتی فکر میکنیم تا کد بزنیم نمیدونم مغزمون  فشرده میشه یا چی که یسری  فعل و انفعالاتی صورت میگیره که افسردگی بر کلیت و تمامیت ما سایه می‌افکنه و برای نورانی سازی دوباره این موضوع باید چاره‌ای اندیشیده بشه. سلامت روحی روانی از چیزهایی که که واقعا عجیب غریبه و یقه خیلیا رو دیدم که گرفته. گاهی وقتا فقط لازمه که  سریال مسترروبات رو نبینی گاهی هم باید ارتباط با یه انسان واقعی رو بیشتر کنی جا اینکه تفریحاتت هم بشه بازی های تو کامپیوتر.  یه مدت که کار کنی و یسری تفریحایی که دوستداری یا ورزش یا هرچیزی که حال درونیت رو خوب میکنه رو چاشنی کار نکنی به مرور زمان قله‌های افسردگی رو یکی پس از دیگری فتح خواهی کرد. من تضمین میکنم. آدمهای زیادی هم میشناسم که تضمین میکنن :)۷.شاخه به شاخه شربتی از لبِ لعلش نچشیدیم و بِرَفتمن در طی این سالیان بارها و بارها فیلد کاریم رو عوض کردم. فکر کنم ۴ بار توی ۴ تا حوزه مختلف به صورت رسمی کارآموز بودم :) مدام حس میکردم که کاری که میکنم و بلدم از من کوچکتره و من باید کارهای بزرگتری انجام بدم. یا گاهی وقتی یه چیز جدید میشنیدم که بلد نبودم استرس عقب افتادن از دیگران یا تکنولوژی بهم دست می‌داد ( تازه فهمیدم بهش میگن FOMO ) وقتی شما یک یا دوسال توی یک زبان کار میکنی تقریبا دیگه دستت میاد بازی چطوریه و به خودت میای میبینی همش داری کپی پیست میکنی و حس پوچی بهت دست میده. این حس به این دلیل به آدم دست میده که قبلش فکر میکردی که قراره دائم حل مسئله انجام بدی و با تفکر خلاقانه ت ۲ صدم ثانیه یه الگوریتم رو بهتر کنی و خلاصه  دنیا رو به جای بهتری برای زندگی تبدیل کنی اما یهو سیلی(در بهترین حالت) واقعیت رو میخوری. توجه داشته باش که  بقیه شغل‌ها هم تقریبا همینه مثلا کارمند بانک چه کار هیجان انگیزی در طول روز انجام میده مگه؟ چارتا فرم پرینت میگیره و  امضا میکنه دیگه.  توصیه میکنم کتاب های پاداش و چرا کار میکنیم رو بخونید. میشه از همون کپی پیست های ساده هم لذت برد و حتی بهش معنی داد، فقط باید راهش رو پیدا کنید. البته که همیشه اینطوری نیست گاهی واقعا لازمه شغلتون رو عوض کنید یا حتی فیلدی که توش مشغولید. بهتره قبل از پریدن از شاخه میوه شو بچینید و بعد برید سراغ شاخه بعدی.۸.شبکه سازی قفس با دوستان خوشتر ز باغ و بوستان  سعی کنید آدم‌های زیادی رو بشناسید و آدم‌‌های زیادی شما رو بشناسن. هر چقدر هم خفن باشید توی زیرزمین تاریک خونتون پادشاهی فایده‌ای نداره. ابزار این کار بستگی به خودتون داره هر طور حال میکنید. اینا رو من دیدم که ملت برای شبکه سازی انجام میدن:وبلاگ نویسی (فارسی/انگلیسی/توییتر/ویرگول/...)آموزش چیزی که بلدید به هر نحو (متنی/تصویری/رایگان/پولی/...)مشارکت روی پروژه های متن باز (گیتهاب منطقا)پاسخ به سوالات دیگران (انجمن‌ها/گروه‌ها/استک‌اورفلو/...)آدم‌هارو به چشم نردبون نگاه کردنگزینه آخر رو خیلیا انجام میدن که جالب نیست. فرض کن که ما به خاطر سودی که یک نفر برای ما داره  باهاش تیریپ رفاقت بریزیم و بعد اینکه کارمون باهاش تموم شد پا روش بذاریم و بریم سراغ پله بعدی. شرم بر شما اگر اینکارو بکنید. جمله زیر تو ذهنتون باشه که: آدمها رو دوست‌داشته باشید و از چیزها استفاده کنید چون برعکس جواب نمیده.Love People, Use Things: Because the Opposite Never Works۹.چی یاد بگیرم زودتر پولدار شمیک دست جام باده و یک دست زلف یارتکنولوژی و ابزار اونقدرها مهم نیست که دائم سرش بحث کنیم که کدوم بهتره و مال من خفن تره و دندون من تیزتره. لینوکس از ویندوز بهتره یا مثلا php آشغاله یا js مزخرفه. این بحثها باعث میشه شمایی که تازه وارد این حرفه شدی گیج بشی که کدوم بلخره بهتره و کدوم رو یادبگیری. نگران این هستی که وقتت رو نذاری و پسفردا متخصص یک آشغال بشی و شغلت کار با زباله باشه :) اگر تازه میخوای بیای تو بازی کل این بحثا رو بیخیال شو و بچسب به یک چیز و یادش بگیر. حالا چطوری بفهمی که کدوم رو انتخاب کنی؟ سوال خوبیه:جواب سر راست و سادش اینه که یه سر به سایت جابینجا یا هر سایت شغل‌یابی دیگه بزنی ببینی که اون تکنولوژی که میخوای یاد بگیری چقدر خواهان داره همین. مثلا فرض کنیم  توی فرانت موندی بین react و vue ،کافیه ببینی  شرکتهایی که فرانت نیاز دارن بیشتر کدوم رو میخوان. تمااااام. نکته قابل توجه اینه که وقتی شما تکنولوژی یک حوزه رو یاد میگیری(مثلا front-end) یادگرفتن بقیه تکنولوژی های اون حوزه دیگه حتی از  آب خوردن هم راحتتره. بالفرض که بهتر بود vue رو یاد میگرفتی جای react مهم نیست بعد یک سال که فهمیدی به راحتی میری یادش میگیری. در یک کلام همه این بحثا که کی از کدوم بهتره چرت و پرته. در کلامی هم همش درسته چون هر ابزاری را برای کاری ساختند و اگر شما بیای با انبردست کار فازمتر رو انجام بدی احتمالا میگی که انبردست خیلی به درد نخوره. ۱۰.فیلمهای آموزشی یا کارگردانیتا سبزهٔ خاک ما تماشاگه کیستتوی قسمت قبل گفتم که یاد گرفتن یک تکنولوژی جدید از آب خوردن هم راحتتره امااااا....وقتی راحته که سر چشمه باشی نه اینکه توی کویر مرنجاب دنبال آب زندگانی باشی و با خوردنش یهو جاودانه بشی. نکاتی که برای یادگیری چیزهای جدید یا شروع این ماراتون باید مدنظرت باشه ایناس:بهتره که آموزشها و منابع انگلیسی رو ببینی بلخره سر چشمه اونجاس اما اگر زبانت به قدر کافی خوب نیست اول زبانت رو خوب کن بعد بیا سراغ کامپیوتر :) بلخره دیر نباشد زمانی که برسه و به خاطر بلد نبودن زبان اذیت بشی.حالا اومدیم و شما میخواستی فارسی یادبگیری، نری از هر کسی که روی پکیجهاش ۵۰ درصد تخفیف گذاشته بود و اینستاگرامش ۵۰ هزارتا دنبال‌کننده داشت همینطوری الکی چیزی بخریاااا. اولش خوب تحقیق کن که چه منبعی برای یادگیری هر تکنولوژی مناسبههرچقدر چیزی گرون‌تر باشه الزاما بهتر نیست. لازم نیست برای یادگیری html پاشید حتما کلاس فلان موسسه رو شرکت کنید رایگان توی اینترت بگردید چیزای خوبی پیدا میشه.موقع دیدن فیلمهای آموزشی به مانیتور زل نزنید و تخمه بشکونید. فیلم سینمایی نیست که باید هنگامی که کار عملی انجام میشه شما هم انجام بدید وگرنه صرف فیلم دیدن احتمالا ازتون کارگردان خوبی میسازه نه کدنویس.از آموزشهایی استفاده کنید که تمرین و کوییز و پروژه و ... زیادتر داره. هر چقدر بیشتر دستتون آلوده بشه به ابزار بهتره.اگر هیچی از برنامه‌نویسی نمیدونید میتونید به کانال یوتیوب من سر بزنید و از اول فیلما رو ببینید.پایانخوشحالم که تا اینجای مطلب رو خوندید (یا اسکرول کردید) امیدوارم مفیده بوده باشه براتون. اگر نظری داشتید حتما با من به اشتراک بذارید و برای دانشجوجوهای کامپیوتر هم بفرستید تا متنبه بشن :) خیلی دوست داشتم این مطلب رو با chatgpt بنویسم ولی فایده نداشت! هنوز مونده بتونه مث ما از کلمات مناسب استفاده کنه.</description>
                <category>مسترباگ</category>
                <author>مسترباگ</author>
                <pubDate>Wed, 05 Apr 2023 05:18:30 +0330</pubDate>
            </item>
                    <item>
                <title>هک اپهای بانکی ایران - بخش اول</title>
                <link>https://virgool.io/fboard/%D9%87%DA%A9-%D8%A7%D9%BE%D9%87%D8%A7%DB%8C-%D8%A8%D8%A7%D9%86%DA%A9%DB%8C-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-pqlhtlz0ymvi</link>
                <description>من علیرضام. برنامه‌نویسم و کنارش به جای هنر، امنیت رو ادامه دادم. اگر یادتون باشه چند وقت پیش خبر دزدی از بانک ملی سر صدای زیادی کرد. داشتم با خودم فکر میکردم که اگر دزدها به همین راحتی میان تو بانک و امانات مردم رو میدزدن آیا رابطه‌ای بین امنیت فیزیکی و  امنیت سایبری بانکها وجود داره؟اما فکر کردن مثل خیلی وقتای دیگه فایده‌ای نداشت به خاطر همین دست به کار شدم. امنیت اپهای بانکی هم مثل امنیت فیزیکی داستان‌های خودش رو داره و در چندین لایه ممکنه تعریف بشه. مثلا دیوارهای محکمی داشته باشه، دوربین و حسگر های قدرتمندی برای ورود داشته باشه یا اینکه هرکسی اجازه ورود به بخش های حساس رو نداشته باشه و...توی قسمت اول قراره ۱۰ عامل امنیتی خیلی بیرونی ۱۸  اپ بانکی( کشور عزیزمون )ایران رو باهم بررسی کنیم و ببینیم دیوارهاش چقدر محکمه اما (Spoiler Alert) رد شدن از این دیوارها و پیچش دوربینهای نظارتی و نگهبان‌ها و تعقیب و گریز با پلیس رو توی قسمت‌های بعدی بررسی خواهیم نمووود. بعد از خوندن این پست:میفهمیم که بانکها چقدر به امنیتشون (مال مردم) اهمیت میدن.کدوم بانک از همه امن‌تره و کدوم...نکات فنی راجع به امنیت اپهای اندرویدی فرا خواهیم  شاید گرفت.هشدارکلیه مطالب و تحقیقات جنبه آموزشی داشته بدون نقض حریم خصوصی و افشا اطالاعات محرمانه اپلیکیشنها انجام شده است. مسئولیت هرگونه سو‌ استفاده و نقض حریم خصوصی با استفاده از مطالب، بر عهده شماست.امنیت هر بانک از ۱۰در صورت داشتن هر مکانیزم امنیتی خاص، اپ مورد نظر یک امتیاز مثبت دریافت کرده و بالاترین امتیاز مربوط به بانک ملی و سینا هست. به دلیل اینکه مکانیزم‌های امنیتی وزن برابری ندارند، مثلا نمیشه گفت که امنیت بانک ملی با سینا باهم برابره و اینجاست که 7 با 7 برابر نیست!به طور کلی اگر از من بپرسید دو تا از امنترین بانکها رو نام ببر قطعا خواهم گفت ملی و ملت و ضعیفترین ها هم طبق نمودارها مشخصه. حالا ببنید آیا رابطه‌ای بین میزان دانلود هر اپ توی کافه‌بازار و میزان امنیت وجود داره؟ 
برای اینکه دقیقتر مشخص بشه که هر عدد چه مفهومی داره، باید بدونیم هر بانک چه چیزهایی داره و چه چیزهایی نه.تصویر از خیلی بالااینجا به تفکیک معلوم میشه مثلا بانک ملی که در مرحله قبل امتیاز 7 گرفته بود یعنی چی. اگر اعداد سطر بانک ملی رو باهم جمع بزنیم عدد نهایی بدست میاد. که 0 یعنی اون مکانیزم رو نداشته و 1 یعنی داشته.ممکنه بپرسید که چرا این ویژگی هارو بررسی کردی و فلان ویژگی رو بررسی نکردی و چرا 10 تا؟ بعد از مدتی تامل پاسخ کوبنده &quot;نمیدانم&quot; را خواهم داد! هیچ پشتوانه علمی برای اینکه ثابت کنه دقیقا این 10 مورد دیوار ابتدایی امنیت اپهای اندرویدی هستند وجود نداره اما طبق اندک تجربه احتمالا خیلی هم پر بیراه نمیگم :) از طرفی هم اینجا چون داریم راجع به بانک صحبت میکنیم من ویژگی‌هایی رو در نظر گرفتم که بیشتر مربوط به دزد جماعت باشه. اگر راجع به مثلا اپ دیگری بود شاید حریم خصوصی کاربر از اهمیت خیلی بیشتری برخوردار بود.(مثلا اینکه آیا اپلیکیشن مورد نظر، لیست نرم‌افزارهای نصب شده را برای خود جمع‌آوری می‌کند یا خیر)اما شاید هنوز هم برای خیلی‌ها واضح نباشه که این مکانیزم‌ها چی هستن و اصلا به چه دردی میخورن و اگر نباشن چی میشه مگه و اصلا چطوری میتونیم بفهمیم اینا رو. توی مرحله بعد قراره به صورت تک تک این مکانیزم های امنیتی رو بررسی کنیم.از اینجا به بعدش دیگه دستمون بیشتر به کامپیوتر و امنیت و... آلوده خواهد شد.شیرجه عمیق فنیبریم ببینیم این ۱۰ عامل چیه و هرکدوم از اپها کدوم امتیازها رو گرفتن. البته که چون این عوامل به مثابه اون دیوارهای اولیه‌س و هنوز توی بانک نرفتیم، اینطور نیست که اگر این دیوارها سست باشه الزاما دزدی از بانک راحته. ممکنه دیواراش موش داشته باشن و دزدی که از موش میترسه نتونه واردش بشه. 1- تشخیص شبیه‌ساز اندرویدییا همون emulator detection  خودمون. همینطور که میدونید یه سری نرم‌افزارها وجود دارن که دستگاه‌‌های اندرویدی رو شبیه‌سازی میکنن و شما میتونید توی کامپیوتر شخصی خودتون یه اندروید هم داشته باشید.( یکی از خوبا Genymotion هست) اگر رعایت نشهاما چون این شبیه‌سازها دسترسی Root دارند و اگر دستگاهی این دسترسی رو داشته باشه خطرات امنیتی زیادی رو ممکنه متوجه کاربر بکنه. با داشتن این دسترسی همه جای سیستم قابل مشاهده و ویرایش میشه و فرض کنید اگر این اپ بانکی خوش خط و خال ما یه باگ ریز داشته باشه که مهاجم بتونه دسترسی به فایل بگیره. اگر این دسترسی به کل سیستم(همان Root) نباشه فقط به یسری جاهای خاص رو میتونه ببینه اما با وجود این دسترسی کل سیستم رو میتونه مدیریت کنه. اندکی شاید بزرگنمایی کردم خوندن این مقاله میتونه مفید باشه.حالا توی نمودار زیر: 1 به معنای اینه که اپ میفهمیده که توی محیط شبیه ساز اجرا شده و از اجرای اپ خودداری کرده.0 به این معناس که اپ هیچی نفهمیده و اصلا براش مهم نبوده که کجا اجرا میشه.0.5 به این معناس که فهمیده توی شبیه‌سازه و به کاربر هشدار هم داده اما گفته به من ربطی نداره اگر اپ رو اجرا کنی همه مخاطرات امنیتیش به عهده خودته کاربر عزیزم. اپها برای امن سازی خودشون میان یه حرکاتی انجام میدن که بفهمن آیا توی محیط شبیه ساز اجرا شدند یا مثل آدمیزاد روی یه گوشی اندرویدی مادرزاد. از طرف دیگه محققان امنیتی(یا شاید دزدان بالقوه) معمولا از این شبیه‌ساز ها استفاده میکنن و کمتر کاربر عادی بانکی پیدا میشه که روی شبیه‌ساز بخواد تراکنش بانکی انجام بده :)متاسفانه یا خوشبختانه این نرم‌افزارهای شبیه ساز نمیتونن به صورت صددرصد همه چیز رو شبیه سازی کنن و به خاطر همین موضوع، اگر یکسری اطلاعات سیستمی رو بخونیم متوجه خواهیم شد که الان توی چه محیطی هستیم مثلا این میتونه تابعی باشه که داره تشخیص میده:چگونه در خانه انجام دهیمبعد از نصب شبیه ساز مثلا genymotion اپ  را با drag&amp;drop روی آن پرت کرده تا نصب شود. پس از اجرا اگر هشداری مشاهده نمودید و از اپ خارج شد به معنی 1 میباشد :)2- تشخیص دسترسی Rootبه جز شبیه‌ساز که دسترسی Root داره ما می‌تونیم روی دستگاه‌های مادرزاد اندرویدی خودمون هم این دسترسی رو داشته باشیم.به طور پیشفرض اندرویدهای که در دست ماست در واقع دست ما نیست. خیلی جاهاش محدود شده که ما رو از مخاطرات امنیتی حفظ کنه. اما این بشر دوپا محدود شدنی نیست و گاهی دلش میخواهد امنیت را فدای آزادی کند. مثلا شما میتوانید با Magisk که از سلاطین Root توی اندرویده به این آزادی برسید. اینجا هم توضیحات نمودارش مثلا مورد اوله که تشخیص شبیه‌ساز بود. 1 به معنای اینه که اپ میفهمیده که گوشی روت شده و از اجرای اپ خودداری کرده.0 به این معناس که اپ هیچی نفهمیده و اصلا براش مهم نبوده که روت هست یا نه.0.5 به این معناس که فهمیده که روته و به کاربر هشدار هم داده اما گفته به من ربطی نداره اجرا کن بره.دسترسی روت آتشی در گوشی برپا میکنه که برنامه‌ نویس زبل  از رو همین گرما به راحتی میتونه بفهمه این آتش، قراره یه روزی خرمنش را به باد دهد. چنتا از این تغییرات به عنوان مثلا:توانایی اجرای دستور suنصب چیزایی مثل com.noshufou.android.suتغییر permissionهای پوشه های /system /data /dev و کلی داستان دیگه که توی این لینک میتونید ببینید.چگونه در خانه انجام دهیمیک گوشی روت شده توسط مثلا Magisk را برداشته و پس از نصب اگر برنامه به درستی اجرا شد یعنی این کار برای برنامه اهمیتی نداشته!3- مخفی کردن روت با magiskفکر کردید بازی با چهارتا تشخیص اینکه چه پوشه‌ای عوض شده یا چه اپی نصب شده تموم میشه؟ نه آقا نه. دوستان روت کننده که بلد بازی هستند وقتی دیدن تقریبا همه اپهای بانکی اگر ببینن گوشی روت بشه اجرا نمیشن، دست به اقدام بدی زدند که من ندیدم تاحالا بشه اونو هم فهمید و دورش زد. با خلق zygisk که یکی از افزونه های سلطان magisk ه و  اینجا میتونید نحوه نصبش روی دستگاه روت شده خودتون رو ببینید، شما قادرید که انتخاب کنید کدام اپها نفهمن گوشی شما root شده. اینکه با چه مکانیزمی این کار انجام میشه از حوصله این مقاله خارجه (اینکه منم کامل بلدش نیستم بی تاثیر نیست) و هیچ کدوم از اپهامون هم متوجه این قضیه نشدن و نمره صفر گرفتن. البته همونطور که گفتم من تا حالا ندیدم اصلا بشه این رو فهمید، اگر اطلاعی در این زمینه دارید بهم بگید خلاصه :)4- تشخیص fridaخب خب، frida یکی از قدرتمندترین ابزارهایی که من میشناسم. برای تحلیل پویا(در مقابل تحلیل ایستا که تحلیل و مهندسی معکوس کدهای برنامس در حالتی که هنوز حتی نصبش هم نکردیم) استفاده میشه یعنی وقتی برنامه در حال اجراس میشه یه تغییراتی توی توابع و متغیرها داد که عمل دلخواه مهاجم رو انجام بده(در واقع رم رو تغییر میده) حالا چون این ابزار عزیز برای اجرا شدن نیاز به root داره اکثرا گفتن که خب چون ما root رو بررسی کردیم دیگه اینو بیخیال ( چون که 100 آید 90 هم پیش ماست).اما بانک ملت و سینا من رو تحت تاثیر قرار دادن چرا که به صورت جدا این بزرگوار رو بررسی کردن چون حواسشون هست که توی یه سناریو خاص میشه بدون اینکه گوشی root باشه frida رو به نکاح اپلیکیشن درآورد.چگونه در خانه انجام دهیمابتدا یه گوشی یا شبیه ساز روت شده نیاز دارید سپس مثل این لینک برید جلو و frida رو کانفیگ کنید. بعدش فقط کافیه یکبار اپ رو با frida اجرا کنید و اگر اجرا شد یعنی برای اپ مهم نیست. اما یه نکته ریزی هم هست که باید توسط frida دورش بزنید و اون Root detection ه که توی مرحله قبل گفتیم. این کارها با RMS (که در واقع داره از frida استفاده میکنه) خیلی راحتتره.5- وجود SSL-Pinتبریک میگم دوستان! تمام اپهای بانکی ما SSL-Pin دارند. اما خب حالا که چی؟به طور خیلی ساده اگر بخوام بگم SSL-Pin یه مکانیزم امنیتی برای ارتباط با سروره که نمیذاره کسی اون وسط(یعنی بین گوشی و سرور) به شنود ترافیک بپردازه. چنتا راه داره که مثلا یکیش اینطوریه که میاد کلید عمومی سرور رو بررسی میکنه، اگر با اونی که مدنظر خودشه(معمولا توی اپ هارد کد شده) یکسان نباشه، خطا میده و هیچ ارتباطی برقرار نمیشه. برای اطلاع بیشتر این رو بخونید خوبه. چگونه در خانه انجام دهیمبرای تست این مورد احتیاج داریم یه پروکسی سرور داشته باشیم. بعد این پروکسی رو روی اندرویدمون ست کنیمو بعد بینگوووو. تمام ترافیک از پروکسی ما رد میشه و میتونیم ببنیم کی به کیه و چی به چیه. ابزاری که معمولا استفاده میشه burp suit هستش که توی این لینک میتونید نحوه استفادش رو ببینید. اگر وقتی پروکسی رو ست کردید ترافیک رو دیدید یعنی ssl-pin نداره اما اگر با هرگونه اروری مواجه شدید(مثلا من خودم فقط روی login بانکها تست کردم) یعنی بعععله بچه ها حواسشون بوده.6- چک کردن integrityاین یکی که دیگه خیلی باید آشنا باشه. integrity یک از اضلاع مثلث توی امنیته که به CIA معروفه. توی اندروید مفهومش اینه که آیا این اپی که داره اجرا میشه همونی هست که باید باشه و کسی تغییرش نداده؟ اگر واقعا خودشه که هیچی و اگر تغییر کرده نباید بذاریم اجرا بشه چون کاربر به این اپ اعتماد کرده و ممکنه هرکاری این اپ بگه کاربر فقط بگه چشم!چون خیلی راحت میشه اپی که فایل apk ش موجوده رو دستکاری کرد و دقیقا با همون اسم و رسم اما با ویژگی های خیلی بدافزارگونه راهی بازار کرد و کاربر از همه جا بی خبر بیاد صرفا با دیدن اسم اپ، سریع نصبش کنه.البته که اونی که اپ رو داره دستکاری میکنه خب اگر واقعا این کاره باشه این بخش چک کردن integrity هم پاک میکنه و با خیال راحت کار رو جلو میبره، ولی خب کار از محکم کاری هیچ‌وقت عیب نمیکنه!یکی از روشهای چک کردن همچین چیزی هم اینطوریه که میان از فایل برنامه یه hash میگیرن(md5/sha1/...) بعد موقع اجرا هم باز اینکار رو انجام میدن اگر یکی نبود یعنی بعععله برنامه رو مهاجم عوض کرده و اونی نیست که قرار بوده باشه. توی اندروید میشه از signature برنامه هم استفاده نمود.چگونه در خانه انجام دهیمفرایندش نسبتا سادس. من اومدم اول یه Apk studio  نصب کردم که فرایند رو راحتتر کنم. به طور کلی اول اپ رو باز میکنم، بعد یه چیزی مثل permission ها رو توی manifest اضافه یا کم میکنم. بعد باید اپ رو sign کرد. بعد build ش کرد به apk و اونو نصب کرد و تمام. اگر گیر داد یعنی بعععععله بچه ها حواسشون بوده:)7- پک شدنیکی از مکانیزمهای خیلی جالب که مهاجم رو به زحمت زیادی میندازه استفاده از packer هاست. این بزرگوار میاد تمام کدهای برنامه رو رمز میکنه و زمان اجرا اونها رو رمزگشایی و اجرا میکنه. وقتی به صورت ایستا و مهندسی معکوس اپ رو باز کنید چیز خاصی دستگیرتون نخواهد شد  و  اصلا هدفش اینه که تحلیل ایستا رو فلج کنه.  بانو توی این ارایه ای که داشتن توی black hat 2018 توضیحاتی در این مورد میدن. واقعا برام عجیب بود که بانک ملی داره از این روش استفاده میکنه. حقیقتش رو بخواید فکر نمیکردم اصلا. دمشون گرم.چگونه در خانه انجام دهیماین یکی اندکی شاید برای تازه کارها قابل فهم نباشه اما من توضیخ مختصری میدم. ابتدا باید از manifest برنامه main activity رو پیدا کنیم. معمولا پکرها(اونهایی که من دیدم) میان از همینجا تمام کارهای مربوط به رمزنگاری رو انجام میدن و احتمالا چندجا هم از کدهای native استفاده کنن. در واقع شما توی این اکتیویتی اثری از حیات نمیبینید و یه مشت چرت و پرتی که توسط انسان زیاد قابل خوندن نیست اورده شده و بقیه اکتیویتی ها هم اصلا انگار نیستن که بشه بررسی شون کرد.8- رمزنگاریهرجا سخن از امنیت باشه مگه میشه رمزنگاری و دوستاش نباشن؟ توی اندروید یسری اطلاعات قراره به صورت محلی روی گوشی ذخیره بشه و همچنین یسری اطلاعات قراره با سرور رد و بدل بشه. اگر این اطلاعات رمز بشن و فرستاده یا ذخیره بشن و موقع بازیابی هم رمزگشایی بشوند، میگوییم دمتان گرم.من اینجا فقط از رمزنگاری بین اپ و سرور پرده برداشتم و فقط هم از طریق لاگین بانک. به بقیه ترافیک کاری نداشتم چون توی همشون که حساب ندارم که بتونم اصلا تست کنم. اگر از رمزنگاری توی این ارتباط استفاده کرده باشند باید بهشون احسنت گفت چرا که تحلیل ترافیک رو یک مرحله سخت‌تر میکنند. شما فرض کن با کلی بدبختی میای میرسی به ترافیک، بعدش میبینی ای دل غافل که حالا رمز هم شده باید کلی بیل بزنی تا بتونی رمزگشاییش هم بکنی. بله فقط بانک ملت. شیر است.چگونه در خانه انجام دهیمبساط burp suit رو دوباره باید بیارید بالا. اما چون همشون ssl-pin داشتن اول باید اون رو دور بزنید. از RMS برای اینکار استفاده شود. بعدش فقط کافیه یک بار با اپ لاگین کنید. اگر نام کابری و رمزعبور رو تونستید توی ترافیک ارسالی ببینید یعنی نه خیر رمزنگاری کنسله.9- استفاده از Obfuscationیکی دیگه از کارهایی که تحلیل ایستا رو قراره به کام مهاجم تلخ کنه وارد میشود. یسری کتابخونه و افزونه وجود داره که موقع کامپایل برنامه، باعث میشه اسامی متغیرها، توابع، کلاسها و پوشه‌ها و ... به اسامی مزخرف تغییر پیدا کنه مثلا a,b,c و ... اینجور چیزها که همه چیزها رو شبیه به هم میکنه و تحلیلگر دیگه از روی اسم تابع نمیتونه بفهمه کارش چیه و باید بشینه کل کدهاش رو بخونه تا دقیق بفهمه. البته کارش به همین تغییر اسم محدود نمیشه و اون خفنتر هاش کارهایی دیگه مثل اضافه کردن کدهای اضافی و پیچیده‌تر کردن کد  و... هم انجام میدن. چگونه در خانه انجام دهیمبعد از باز کردن اپ توی jadx-gui و پیدا کردن main activity اگر اسامی متغیرها، توابع یا پوشه های اطراف نا معقول بود یا تک حرفی و دوحرفی و چند حرفی با تکرار زیاد بود بدونید که بعععله بچه ها کارشون رو انجام دادند.10- کدهای Nativeبه صورت عادی کدهای موجود در برنامه‌های اندرویدی java/kotlin هستن که با توجه به ویژگی این زبانها مهندسی معکوس و تبدیل آنها به کد نسبتا شبیه به کدی که برنامه‌نویس نوشته کار سختی نخواهد بود.اما گاها برای performance بیشتر یا امنیت بیشتر میان از c/c++ استفاده میکنن که تحلیل و مهندسی معکوس این کدها به سادگی کدهای جاوا نخواهد بود. حالا فرض کنید که یکی از مکانیزمهای امنیتی را به استفاده از کدهای native پیاده سازی کرده باشند‌(مثلا ssl-pin) حال مهاجم کارهای به مراتب بیشتری را باید برای دور زدن آن مکانیزم امنیتی انجام دهد. من در اینجا برای اینکه خیلی به حریم خصوصی اپها وارد نشم صرف دیدن کدهای native رای آری به صندوق این مرحله انداختم، اما کار درستتر این است که ببینیم آیا مکانزیم امنیتی بوده که به صورت native نوشته شده باشد یا خیر. به همین خاطر false/positive ممکن است در این آزمایش زیاد از حد بوده باشد.چگونه در خانه انجام دهیمایزی. فایل apk را مانند یک فایل زیپ از حالت فشرده خارج کنید. اگر پوشه‌ای به اسم lib مشاهده کردید یعنی بلخره جایی از برنامه از کدهای native استفاده شده است. حالا یا صرفا برای فشرده سازی یک عکس بوده یا واقعا یکی از مکانیزم‌های امنیتی به این صورت نوشته شده تا کار مهاجم را سختتر کند.نتیجهخیلی زود به نظر میرسه که بخوایم نتیجه گیری کنیم که آیا بانک‌ها به امنیتشون اهمیت میدهند آنقدری که باید یا نه اما میشه گف تا همین قسمت و صرف نظر از بقیه ابعاد امنیت، بانک ملی و ملت فراتر از انتظار من ظاهر شدند و اینکه چرا نباید همه اپهای بانکی حداقل 9 امتیاز داشته باشن وقتی واقعا خیلی قرار نیست بهشون پیچیدگی پیاده‌سازی اضافه کنه؟ نکته دیگه هم اینکه تمام ابعادی که بررسی شد توسط یک آدم کاردان قابل دور زدنه و اینطوری نیست که اگر اپی بیاد از اینا استفاده کنه یعنی 100 درصد امنیت داره. صرفا هرکدوم باعث میشه که حمله به تاخیر بیفته یا مثلا برخی از مهاجمین غیر کاردان از ادامه کار صرف نظر کنن.کارهای آیندهمن خیلی دوست‌داشتم این آموزشهای انجام در خانه به صورت ویدیویی باشه اما به خاطر داستان‌ها نقض حریم خصوصی بانکها بیخیال شدم. اگر بانکی بیاد به من اوکی بده میتونم به صورت عمیقتری بررسی  و منتشر کنم.قسمتهایی بعدی این پست بنظرم خیلی میتونه داستان درست کنه و فعلا قصد ادامشو ندارم. نتیجه‌گیری اصلی رو بعد از چند قسمت تحلیل اینطوری فرض کنید عجب چیزی بشه! اگر پیشنهادی داشتید که چطوری میشه عمیق تر بانک‌ها رو بررسی و منتشر کرد بدون اینکه واقعا هکشون نکرد خوشحال میشم که بهم بگید‌:)دوست دارم که این کارها روی با یکسری چیزهای دیگه مثل تمرکز روی حریم خصوصی کاربران تا تمرکز روی دزدی، ترکیب کنم و روی فروشگاه‌های آنلاین ایران، خدمات فروشی های ایران، ابزارهای پرطرفدار ایران و ... انجام بدم. من به هیچکدوم از حرفهایی که اینجا گفته شده 100 درصد اطمینان ندارم پس لطفا شما هم نداشته باشید و اگر جایی ایرادی میبینید واقعا بهم بگید.در ضمن اگر به مباحث امنیتی  توی اندروید علاقه‌مندید میتونید از طریق مخزن زیر به یادگیری بپردازید: https://github.com/Ralireza/Android-Security-Teryaagh </description>
                <category>مسترباگ</category>
                <author>مسترباگ</author>
                <pubDate>Fri, 26 Aug 2022 12:47:18 +0430</pubDate>
            </item>
                    <item>
                <title>فریلنسر یا کارمند | چوبی با دو سر طلایی</title>
                <link>https://virgool.io/@mrbug_ir/%D9%81%D8%B1%DB%8C%D9%84%D8%B3%D9%86%D8%B1-%DB%8C%D8%A7-%DA%A9%D8%A7%D8%B1%D9%85%D9%86%D8%AF-%DA%86%D9%88%D8%A8%DB%8C-%D8%A8%D8%A7-%D8%AF%D9%88-%D8%B3%D8%B1-%D8%B7%D9%84%D8%A7%DB%8C%DB%8C-uy7ldfi8gr1z</link>
                <description>کارمندی بهتره یا فریلنسری؟ بستگی داره. (هر جوابی با بستگی داره شروع شد مطمئن باشید قرار نیست جواب خاصی به شما داده بشه) از قدیم‌الایام به قول معروف(هم جدید است هم منکر) گفته اند که:هرکسی را بهر کاری ساختند *** بعد از هرکاری به او انداختندبین این دو نوع بردگی که این‌بار گریبان سفید‌پوستا رو هم گرفته به سهولت نمیشه قضاوت کرد چون ممکنه هر گروه با کفش های اون گروه سگ‌دو نزده باشه. ولی این بازیکن که راقم سطوره تجربه جفتش رو با حفظ سمت داشته و با بی‌باکی هر چه تمام‌تر به تخریب هر یک از دو گروه با یک دستگاه &quot;بلدوزر کاترپیلار&quot; می‌پردازد.خیلی نرم و آهسته به سراغ معایب فریلسنر بودن می‌رویم که مبادا ترک بردارد:سخته فریلنسر شدناگر فریلنسر شدیم چیا رو نداریم:نداشتن &quot;ولکام&quot; پکیجنداشتن &quot;ماه گرد&quot; پکیجنداشتن &quot;سال گرد&quot; پکیجنداشتن &quot;یلدا&quot; پکیجنداشتن &quot;نوروزتان پیروز&quot; پکیجنداشتن &quot;گودبای (30k)&quot; پکیجنداشتن &quot;کیک‌مالی در صورت متولد&quot; پکیجنداشتن &quot;ایول و مرسی که اومدی سر کار&quot; پکیجنداشتن &quot;امروز دیدم ناراحتی برات شکلات خریدم&quot; پکیجنداشتن &quot;ععع خودکار جدید خریدی شام میریم بیرون شیرینی بده&quot; پکیجنداشتن &quot;خش و بش منابع انسانی با هر بنی بشری در شرکت به منظور ماله‌کشی&quot; پکیجنداشتن &quot;ما یک خانواده‌ایم و همیشه باید نوشابه خانواده بخوریم و پول هم خبری نیست&quot; پکیجنداشتن &quot;مثل نجیب حیوانی این ۱ ماه رو کار کردی و شبا نخوابیدی تا من گردنم کلفت‌تر بشه&quot; پکیج کارداشتن تا کارمندی تنها یک &quot;داشتن&quot; و &quot;مندی&quot; فاصله بوده  که کمتر از ۴ انگشت است. حال چرا سخته کارمند شدن:سخته کارمند شدناگر کارمند شدیم دچار فقدان چیا میشیم:فقدان  &quot;اینم تا شب بزن برام بفرست &quot;فقدان  &quot; میدم یکی برام با ۲۰۰ تومن بزنه&quot; فقدان  &quot;هر شب پیام توی واتساپ که:سلام خوبی؟&quot; فقدان  &quot;هرروز ۷ صبح تماس که : مهندس چه خبر از پروژه؟ فقدان  &quot;مهندس فکر کن پروژه خودته دیگه هرچی توان داری بذار&quot;فقدان  &quot;یه ایده دارم نااابی: همون سایت دیجیکالا با این تفاوت که فقط ...&quot;فقدان  &quot; چقدر میگیرید ایده من رو پیاده‌سازی کنید؟ منتهی من ایدم محرمانس نمیتونم بهتون بگم&quot;فقدان   &quot;پروژه کانفیگ فضای ابری با لود ۱۰ میلیون درخواست درثانیه و کارفرما میگه شما که بلدید یه وردپرس میزنید و راحت ما هم سردرنمیاریم و حسابی پیاده می‌شیم.&quot;اگر شما هم از میزان طلای شغل خود آگاهی دارید در کامنت بنگارید .</description>
                <category>مسترباگ</category>
                <author>مسترباگ</author>
                <pubDate>Fri, 17 Dec 2021 12:11:30 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش برنامه‌نویسی از زمین‌خاکی</title>
                <link>https://virgool.io/@mrbug_ir/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%A7%D8%B2-%D8%B2%D9%85%DB%8C%D9%86-%D8%AE%D8%A7%DA%A9%DB%8C-jqz9sb9jhdnf</link>
                <description>اگر فقط در حد روشن/خاموش کامپیوتر رو بلدید و دوست‌دارید بدونید توی کامپیوتر چه خبره و برنامه‌نویسی چه شکلیه، این دوره برای شما ساخته شده! شروع ماجراداستان از اونجایی شروع میشه که چندتا از دوستام که رشته‌شون کامپیوتر نبود بهم گفتن بهمون برنامه‌نویسی یاد بده، همزمان بچه‌های فامیل هم وارد بازی شدن و از همه جالب‌تر پدرم هم تازه بازنشت شده و دید من همش مشغول کارم و میگم نرسیدم به فلان پروژه و اینا بهم گفت خوب به من هم یاد بده که کمکت کنم :)و اما من  با حفظ همه سمت‌ها، توی هنرستان کامپیوتر هم دارم تدریس می‌کنم و امسال قراره کلی دوست جدید پیدا کنم و بهشون برنامه‌نویسی یاد بدم. گفتم که بیام یه همچین دوره‌ای ضبط کنم که نه سیخ بسوزه نه کباب (کاربرد این ضرب‌المثل بعیده اینجا باشه) و مطالبی که توی کلاس آماده میکنم رو یکبار هم جلوی دوربین و بندوبساط آنلاین بیارم که بقیه هم ازش استفاده کنن.خلاصه شروع  این دوره &quot;برنامه‌نویسی از زمین‌خاکی&quot; از امروز یعنی 23 مهر ۱۴۰۰ شروع میشه و قراره هر هفته حداقل یک ویدئوی آموزشی در youtube و instagram بارگذاری بشه. اولیش که به مراسم روضه خوانی برای جلسه اول و معارفه هستش رو منتشر کردم:آدرس لینک فیلم :    https://youtu.be/QhkSaWjw--Aهر هفته یک الی چند نشانه از این دوره رو میتونید توی جاهای زیر پیدا کنید:1.یوتیوب 2.اینستاگرامهدفخب هدف بعد از قرب الهی اینه که در اوج سادگی مفاهیم اولیه و ثانویه و ثالثیه برنامه‌نویسی  رو از زمین خاکی ترین سطح ممکن برای همه افراد زیر بگیم :هنرجویان رشته کامپیوتر پایه دهمترم‌اولی های رشته کامپیتور دانشگاهعلاقه‌مندان به رشته کامپیوترناعلاقه‌مندان رشته کامپیوتر (جذب حداکثری)مسیر نسبتا مشخصاز صفر و یک کامپیوتر شروع میکنیمبعد نرم افزار بعد الگوریتم و فلوچارتبعد شیرجه میزنیم توی زبان cبعد با شیب ملایمی وارد c# می‌شیمبعد جوری که کسی متوجه نشه می‌ریم توی python :)چرا چندتا زبان رو کار میکنیم حالا؟ اولا که همزمان قرار نیست چندتا زبان رو کار کنیم.دوما قرار نیست توی هرکدوم خیلی عمییییق بشیم.سوما میخوایم این رو جا بندازیم که یادگرفتن یه زبان جدید خیلی کار سختی نخواهد بود وقتی مفاهیم اصلی رو بلدیم!خب دیگه خیلی توضیخ نمیدم قراره حرفا رو توی فیلم بزنم.همچنین بسیار خرسند میشم اگر بازخوردی نقدی چیزی هست بهم بگید برای بهتر شدن دوره چون به شدت توی نور و صدا و تصویر ( و شاید تدریس و برنامه نویسی ) تازه کار هستم :)ایمیل : irMrBug@gmail.com</description>
                <category>مسترباگ</category>
                <author>مسترباگ</author>
                <pubDate>Fri, 15 Oct 2021 15:40:28 +0330</pubDate>
            </item>
                    <item>
                <title>نقشه‌ راه امنیت اندروید</title>
                <link>https://virgool.io/@mrbug_ir/android-security-roadmap-drwxxunxptgf</link>
                <description>نحوه سلوک در امنیت نرم‌افزارهای اندرویدی چگونه است؟ از کجا باید شروع کرد؟ چه ابزارهایی نیاز است؟ سرفصل‌های امنیت اندروید چیاس؟یا به زبان دیگر، گوشی دوستمو چطوری هک کنم؟من در این پست سعی کردم تجربیات خودم رو در زمینه امنیت اندروید و راهی که باید طی بشه تا آدمی بتونه برای انجام کارهای حرفه‌ای توی این رشته مثل تست‌نفوذ اپلیکیشن‌های اندرویدی یا فعالیت در باگ‌بانتی، گام برداره رو مختصر توضیح بدم که بفهمید ماجرا از چه قراره و صبح به شب رو با چه مباحثی باید به هم بدوزید.این نقشه‌راه، چون از زمین خاکی شروع کرده، مخصوص توسعه‌دهندگان اندروید یا مهندسین امنیت نیست بلکه میتونه یک سیب‌زمینی خام رو به سرمنزل مقصود امنیت اندروید برسونه البته که بسیار سفر باید تا پخته شود خامی.اگر سیب‌زمینی نیستید و هرجایی حس کردید که مباحث رو بلدید گام بلندتری برداشته و به عدد بعدی بروید.قرار نیست که با یک‌بار طی کردن این منازل به صورت آبشاری بتونید به خبرگی در این زمینه برسید بلکه باید به صورت agile این چرخه رو بارها و بارها با تمرین و تجربه هرکدوم به آرامی طی کنید.توجه:سرفصلهای با رنگ زرد = حتما باید بدونیدسرفصلهای با رنگ نارنجی = بدونید جای دوری نمیرهسرفصلهای بارنگ خاکستری = حال داشتید بدونیدپیشنهاد میکنم اول یک دور سرفصل‌های با رنگ زرد رو مطالعه کنید و تا آخر برید و به ترتیب نارنجی و سپس خاکستری دورهای بعدی رو طی کنید. اینطوری مباحث براتون کاربردیٰ‌تر میشن و بهتر توی ذهن می‌مونن.فایل pdf,svg و png نقشه‌ رو در مخزن گیتهاب قراردادم و به زودی تمام این مباحث رو میتونید از اونجا پیگیری کنید.(لینک آموزشی، ابزارها، کورسها، باگها و … )دیگه مقدمه کافیه بریم سراغ اصل مطلب که توی ۷ ایستگاه شما رو به دامنه کوه امنیت اندروید خواهد رساند. بعد از نگاه انداختن به عکس زیرش هم ببینید اونجا هر منزل رو توضیح دادم. برای دیدن عکس با کیفیت اصلی به اینجا مراجعه کنید.۰- پیش‌نیازهانقطه صفر مرزی که زمین خاکی این منازل ۷ گانه هستش و اگر باهاشون آشنایی ندارید حتما همینجا کمپ کنید چون در ادامه مسیر برای شما … مواد لازم : زبان‌برنامه نویسی، شبکه و رمزنگاری.از زبان شروع کنید. همه زبان هایی که نوشتم توی امنیت اندروید نیازتون میشه اما سختش نکنید با جاوا شروع کنید و برید جلو. هروقت بقیش نیاز شد یادمی‌گیرید. کمال گرا نباشید چون کمالی وجود نداره شبکه هم وقتی نیازه که اندروید میخواد با سرور ارتباط بگیره و شما قراره یکسری بلاها سر این ترافیک بیارید. خیلی مهمه که بدونید این ارتباط چطوری داره برقرار میشه و از کجا آمده‌است و آمدنش بهر چه بوده .رمزنگاری که یکی از باحال‌ترین مباحث این بخشه. اگر چیزی ازش نمیدونید خوش به حالتون. قراره کلی بعد جدید به زندگی‌تون اضافه بشه. با اندکی جستجو میشه فهمید کلیت داستان چیه. فقط وارد مباحث ریاضیش نشید فعلا. به قول معروف دید بلک باکسی بهش داشته باشید تا بعد.۱- طراحی و معماری اندرویدشما اگر بخواید کلید بسازید باید با تمام اجزای قفل آشنایی دیرینه‌ای داشته باشید. وقتی ندونیم سیستم چطوری ساخته شده چطور میخوایم هکش کنیم؟ اینجا زیاد وقتتون رو نخواهد گرفت برای شروع. فقط باید بدونیم این لایه ها چطوری روهم سوار شدن اما کاربرد مستقیمی نداره توی ادامه کار. اما اگر ندونید و بیخیالش بشید خیلی نمیفهمید دارید چیکار میکنید اما آره اون کاره قابل انجام هست. من اگر بودم بیخیال این تئوریجات نمی‌شدم. البته اگر توسعه‌دهنده اندروید هستید قاعدتا باید تا مرحله ۴ رو بدونید اگر نه آسیاب این چند مرحله رو به نوبت بچرخونید.۲- اجازه‌هااندروید هم مثل هر سیستم دیگه‌ای یکسری سطح دسترسی‌ها داره و کاربران مجاز نیستند به هر قسمت دسترسی داشته باشند. یکی از حملات خیلی پرکاربرد که درآینده خواهید دید مربوط به همین بزرگواره. این هم میتونه تئوری کار بشه هم عملی. عملیش اینطوریه که سریع یه ویژوال استدیو نصب کنید و شروع کنید تست کردن permission ها. البته این کار هم نکنید اوکیه. قدرت تصورتون باید خوب باشه. این رو بدونید که کجاها اجازه میخواد و به چه چیزهایی میشه permission اضافه کرد.۳- کامپوننت‌های اصلی اپلیکیشندر این قسمت دعوت میکنم از شما تا با قطعات اصلی هر برنامه در اندروید آشنا بشید. هیچ برنامه اندرویدی وجود ندارد که نیازمند حداقل یکی از این کامپوننت ها نباشه. در واقع آجر های خونه اندرویدی هستن این عزیزان. فهم خیلی اهمیت پیدا میکنه توی این قسمت. سعی کنید چنتا فیلم هم از توسعه این آجر ها و نحوه کارکردشون ببینید. یه قسمت core api هم من بهشون اضافه کردم که بعدها توی مهندسی معکوس خیلی به کار میاد. هرچقد اینها رو عمیق تر بخونید راحتتر میفهمید اپ داره چیکار میکنه بعدها. ولی الان خیلی روش وقت نذارید در حد مرور و کلیت و … بعدا برگردید روش یا هروقت نیاز شد. برای یادگیری عجله نکنید.۴- ارتباط با سروراندروید و مافیها ( آنچه در آن ) به عنوان کلاینت مورد استفاده قرار میگیرد. اگر این کلاینت ما بخواد با سرور (کدهای back-end مثل php,node, … ) ارتباط بگیره باید امنیتش تامین بشه. با کتابخونه‌هایی که اسفاده میشه و نحوه پیاده سازی مکانیزم‌های امنیتی شون آشنا بشیید. حتما کار با ابزار رو مخصوصا burp suite رو اوستاش کنید . کار عملی نباشه فایده چندانی نداره. اینجا اون شبکه ای که خوندید به کارتون خواهد اومد. این نشون میده شما وقتی جیک جیک مستونتون بوده فکر زمستون هم بودید. البته زمستون اصلی رو هنوز ندیدید.۵- تحلیل ایستاحالا تازه رسیدیم به هک‌ترین قسمت ماجرا. تا الان دید خوبی نسبت به سیستم پیدا کردیم و میتونیم بفهیمیم چی مال کجاست و ما کی هستیم. برای تست امنیتی قسمتهای مختلف اندروید از دو روش تحلیل استفاده میشه. ایستا و پویا.تحلیل ایستا در خلاصه ترین تعریف میشه تحلیلی که اپ مورد نظر در حال اجرا نیست و ما میتونیم اپ رو روی pc مورد نقد و بررسی (عنایت) قرار بدیم. یکسری ابزار خیلی معروف اینجان که اگر با مفاهیم کامپایل و دیکامپایل و … آشنا نباشید کار از پیش نخواهید برد. در این قسمت هم تاکیدم روی اینه که لطفا عملی باشید، چرا که قصر فردوس به پاداش عمل می‌بخشند( امیدوارم طرفدار مصرع بعدش نباشید)مهندسی معکوس (reverse engineering) هم میگن به این قسمت که البته میتونه تحلیل پویا رو هم شامل بشه. کدها یا جاوا و کاتلین هستن یا c و c++ . گزینه دو اندکی سخت‌تره. پس فعلا بیخیالش بشید بنظرم و بعدها روش وقت بذارید چون ابزارهاش هم کلا متفاوتن.۶- تحلیل پویاو شیش. تحلیل پویا نامداره. یعنی تحلیلی که نیازه اپلیکیشن در حال اجرا باشه و انگولکهای ما در قبال اپ، توی زمان اجرا و روی RAM صورت بگیره. اینجا جاییه که واقعا آدم به خودش غره میشه چون خیلی حرکات زیبا و جاداری میشه زد. درواقع میتونم بگم دزد و پلیس بازی بیشتر از این مرحله شروع میشه. برنامه نویس ها میان کارایی انجام بدن که جلوی هکر رو بگیرن بعد هکر کارایی انجام میده که اونا رو دور بزنه. روز به روز هم روش جدید و روش دورزدن جدید.زیبایی اونجایی شروع میشه که با تحلیل ایستا به یکسری اطلاعات میرسیم و برای انجامش باید بریم سراغ پویا جان. بعد دوبراه با پویا یه حرکتی میزنیم بر میگردیم توی ایستا. معمولا توی دنیای واقعی از ترکیب این روش ها استفاده میشه. ابزار خیلی زیاده ولی من اصلی هارو آوردم فعلا و الکی شلوغ بشه آدم نمیفهمه بره سراغ کدوم. مغز متفکر ابزاریه به اسم frida و هر چقدر از زیباییه این بگم کم گفتم. من حتی از زیبایی این ابزار میتونم به زیبایی خالق این ابزار هم پی ببرم. پس خوب یادش بگیرید.۷- حملات و باگ‌هااگر تا الان خسته نشدید باید اعتراف کنم که خیلی جان سخت هستید. دمتون گرم. چیزهایی که تا الان از داستان فهمیدید حکم ماهیگیری رو داشته. خوشحال نشید. شما هنوز نمیدونید ماهی چیه اصلا.اگر تا الان خسته نشدید باید اعتراف کنم که خیلی جان سخت هستید. دمتون گرم. چیزهایی که تا الان از داستان فهمیدید حکم ماهیگیری رو داشته. خوشحال نشید. شما هنوز نمیدونید ماهی چیه اصلا.ماهی انواع حملات و باگهایی هست که شما باید توی تست های امنیتی تون که تا الان یاد گرفتید ازشون استفاده کنید. خوندنش یه چیزه و پیداکردنش چیز دیگه ای. طعم حلوا رو وقتی میتونید درک کنید که خودتون بخوریدش. این قسمت خیلی به کار توسعه‌دهندگان اندروید هم خواهد اومد. میتونن راحت بفهمن که از کجاها باگ میخورن و در واقع حکم کدنویسی امن رو داره.حرف آخرهمینطور که اول مسیر گفتم باید مداوم این مراحل از صفر تا ۷ طی بشه و با یکبار دور زدن نمیشه به جایی که باید آدمی برسه، رسید. و توجه داشته باشید فقط وقتی میتونید این مباحث رو یادبگیرید و ازش کسب درآمد کنید که به طور عملی انجام داده باشید و درگیر پروژه های واقعی شده باشید. در واقع این سرفصلها شما رو تا دامنه‌ی کوه میبره و تجربه عملی شما رو به قله کوه نزدیک تر.خب حالا اگر بپرسید که آخه ما که تازه کاریم کسی بهمون پروژه نمیده باید بگم که به تعداد اپهایی که روی گوگل پلی هست شما پروژه واقعی دارید  البته بهتره که خواستون به داستانای قانونی هم باشه.برای شروع میتونید از آزمایشگاه هایی که برای تمرین تست نفوذ اندروید ساخته شده استفاده کنید(مثل این و این) یا وارد یک برنامه باگ‌بانتی بشید. ctf ها هم میتونه محک خوبی برای یادگیری باشه.سوالی که پیش میاد اینه که خب این مباحث رو از کجا یاد بگیریم؟ جواب اینه که با جستجو. البته من هم توی این مخزن قراره تمام منابع لازم و ابزارها و آدم هایی که نیاز هست برای این سفر، جمع آوری کنم و تنها چیزی که نیازداشته باشید زمان و صبر باشه.یک کانالی هم هست که تشکیل دادم برای خودم و توی پروژه های خودم وقتی به مبحثی جالب و آموزشی خوب برخورد میکنم اونجا میذارم. البته مباحثش شاید به درد همین الانتون نخوره ولی در آینده‌ای نه چندان دور بهش میرسید.اگر سوالی هم مربوط به هرقسمت از مسیر داشتید توی کامنتها بپرسید.مخزن گیتهاب: https://github.com/Ralireza/Android-Security-Teryaagh پست پیشنهادی برای وارد شدن به دنیای امنیت: https://vrgl.ir/mUaP1 </description>
                <category>مسترباگ</category>
                <author>مسترباگ</author>
                <pubDate>Fri, 09 Jul 2021 19:06:33 +0430</pubDate>
            </item>
                    <item>
                <title>کدنویسی امن + فیلم</title>
                <link>https://virgool.io/@mrbug_ir/%DA%A9%D8%AF%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%A7%D9%85%D9%86-%D9%81%DB%8C%D9%84%D9%85-ghdy3agd4ain</link>
                <description>دالان امنیتمهم نیست که توسعه‌دهنده چه زبانی هستید و با چه تکنولوژی ای مشغول به کارید ! نقش این ویدئو، گذاشتن عینک امنیتی بر چشمان همه‌ی توسعه‌دهنده هایی که دوست دارن نرم افزارایی که تولید میکنن در بهترین سطوح امنیت باشه و قراره دروازه‌ای باشه تا اونها رو به دالان پر پیج و خم امنیت راهنمایی کنه.این آموزش برای چه کسانی مناسبه؟برنامه‌نویس‌هایی که دوست دارن راجع به امنیت یه چیزایی بدونن.علاقه‌مندان به امنیت که تازه شروع کردن.علاقه‌مندان به برنامه‌نویس‌ها و امنیت‌کارها که دنبال یه بحث مشترکن:)اولین قدم اینه که کدهامونو طوری بنویسیم که آسیب‌‌پذیری هیچ وقت به وجود نیاد و برای اینکار امنیت رو وارد مراحل SDLC مون می‌کنیم.بعدش نیازه که اندکی کاربردی تر ظاهر بشیم و دقیقا بفهمیم که کد امن چه شاخصه هایی داره و از چه اجزایی تشکیل شده، ‌داستانایی مثل:Input validationAuthenticationPassword managementError handlingLoggingMemory managementو هرکدوم رو best practice هاشو باهم بررسی می‌کنیم. حالا وقتش رسیده ببینیم که اگر موارد بالا رو به خوبی رعایت نکنیم ممکنه درگیر چه حملاتی بشیم. اگر دنبال این هستید که یکم راجع به حملات سایبری سر دربیارید و بدونید چی به چیه این قسمت مخصوص شماست.اول میایم دونه دونه این حملات رو بررسی میکنیم تا با مفاهیم کلیش آشنا بشید و بعدش دفاع هایی که کمک میکنه اون حملات کاهش پیدا کنن .‌Brute-forceMITMSQL injectionRATCode injectionCommand injectionXSSCSRFSocial engineeringلینک ویدئو در آپارات : https://www.aparat.com/v/IEhFTلینک مطلب در مموری لیکز: https://memoryleaks.ir/where-to-start-secure-coding/لینک اسلایدها: https://slides.com/alirezarezaie/secure-coding-5457c2</description>
                <category>مسترباگ</category>
                <author>مسترباگ</author>
                <pubDate>Tue, 24 Nov 2020 15:35:15 +0330</pubDate>
            </item>
                    <item>
                <title>خلاصه کتاب clean code + فیلم</title>
                <link>https://virgool.io/fboard/%D8%AE%D9%84%D8%A7%D8%B5%D9%87-%DA%A9%D8%AA%D8%A7%D8%A8-clean-code-%D9%81%DB%8C%D9%84%D9%85-o8k24pbl9sah</link>
                <description>برآن شدیم تا خلاصه‌هایی که تاکنون از کتاب clean code منتشر کردیم رو در قالب یک ارائه یک ساعتی به همراه کلی مثال کاربردی ، جمع و جور کنیم. فصولی که توی این ارائه هست :Meaningful NamesFunctionsCommentsFormattingError HandlingBoundariesUnit TestsClassesلینک گیتهاب تیکه کدهای موجود در ارائه :https://github.com/Ralireza/clean-code-summaryلینک اسلاید:https://slides.com/alirezarezaie/clean-code/fullscreenلینک آپارات: https://www.aparat.com/v/OWYp7 </description>
                <category>مسترباگ</category>
                <author>مسترباگ</author>
                <pubDate>Sat, 18 Jul 2020 17:16:46 +0430</pubDate>
            </item>
                    <item>
                <title>خلاصه کتاب clean code - بخش هشتم</title>
                <link>https://virgool.io/@mrbug_ir/cleancode-part8-mxujgx3kuiaw</link>
                <description>وزش سنت در گیسوی مدرنیتهجوگیرساختن مخاطب برای خواندن تا تهتوی این فصل چنتا اصل خوب و شیک برای نحوه نوشتن کلاس هامون توی کد، اومده. اگر از طرفدارای پر و پا قرص برنامه نویسی شی گرا هستید و تا الان حس میکردید کلاس هاتون کلاس کاری مناسب رو نداشتن، این فصل مخصوص شماست !فصل دهم - ClassesEncapsulationبه طور معمول استیل کار ما اینه که توی کلاس همه چیز رو پرایوت نگه داریم ولی خب خیلی نباید روش تعصب داشت. گاهی مجبوریم بعضی از توابع رو برای تست هاشون دسترسی بدیم . اوکیه.Classes Should be Smallشاهد کول بازیای نویسنده هستیم همچنان:قانون اول: کلاس ها باید کوچولو باشنقانون دوم: کلاس ها باید کوچولوتر از قانون اول باشن حتی !The Single Responsibility Principleهر کلاس باید یک مسئولیت داشته باشه دلیلش هم اینه که فقط یک دلیل باید باعث بشه که کد کلاس عوض بشهCohesionتعداد متغیرهای کلاس باید کم باشه و توابع کلاس نباید بیشتر از یکی دوتا ازین منغیر هارو تغیر بدن در طی  طول عمر با برکتشون ! اینطوری تر تمیز تر و به قول عمو، منسجم تره .Maintaining Cohesion Results in Many Small Classesحالا کی به این نقطه میرسیم که کدامون منسجم و درست باشه ؟ وقتی کلاس های عریض و طویل رو بشکنیم به کلاس های کوچولو. وقتی کوچیک باشن هم تعداد متغیرها کمتر میشن و هم میشه توابعی نوشت که فقط یکی دوتا از متغیر هارو تغیر بده.Organizing for changeدر اکثر سیستم ها، متاسفانه تغییر زیاد اتفاق میفته چون نیازمندی عوض میشه و قاعدتا کد هم باید عوض بشه (لعنت)  و این تغیرات ممکنه کاری کنن که صبح از خواب بیدار بشی ببینی دیگه هیچ چیز کار نمیکنه ( چه بد جایگاهی است ! ) حالا برای کمتر کردن این فجایع انسانی توصیه میشه که abstract classes, داشته باشیم و جزئیات رو ببریم توی پیاده سازی . اینطوری وقتی تغیری هم بوجود بیاد فقط توی اون پیاده سازی کلاس و توابعشه نه اون استخون بندی اصلی. اینطوری از گزند تغیرات ریشه ای که ریشه انسان رو میزنه در امانیم .وبسایت: https://mrbug.irاینستاگرام: https://www.instagram.com/mrbug_irتوییتر: https://www.twitter.com/mrbug_irتلگرام: https://www.t.me/mrbug_ir https://virgool.io/@mrbug_ir/%D8%AE%D9%84%D8%A7%D8%B5%D9%87-%DA%A9%D8%AA%D8%A7%D8%A8-clean-code-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-l47w7ybbafgw </description>
                <category>مسترباگ</category>
                <author>مسترباگ</author>
                <pubDate>Sun, 31 May 2020 19:04:03 +0430</pubDate>
            </item>
                    <item>
                <title>خلاصه کتاب clean code - بخش هفتم</title>
                <link>https://virgool.io/@mrbug_ir/cleancode-part7-fawdsuo7prgr</link>
                <description>وزش سنت در گیسوی مدرنجوگیرساختن مخاطب برای خواندن تا تهدر این برهه تاریخی حساس میریم سراغ unit test. چطوری برای کدامون تمیز تست بنویسیم که در این دنیا و هم آن دنیا سرافراز باشیم؟ باهم بخونیم ببینیم این قوانین و اصول چی میتونه باشه. البته اگر برنامه نویسید و هنوز نمیدونید unit test چیه، حتما اول بخونید یکم راجع بهش بعد بیاید سر میز مذاکره این پست.فصل نهم - Unit TestsThe Three Laws of TDDقانون اول:تا زمانی که failing unit test ننوشتید کدتون به درد production نمیخورهقانون دوم :کدهایی بزنید که اون تست های fail شده توش اوکی بشنقانون سوم:حالا که کدها درست شدن و تستی fail نشد تبریک میگم، کد برای production آمادسClean Testsاگر تست ها رو تمیز نگه ندارید از دستشون میدید. این مثل بقیه جاها نیست که هرچی به تمیزی به محلی کنید اون بیشتر ترغیب بشه. تست تمیز نباشه فایده نداره. خوانایی تست ها مهمترین عنصر تمیزی در تست میباشد .One Assert per testتوی هر تستی دنبال یه چیز باشید، با یه دست نمیشه چنتا هندونه برداشت. برای بعدا هم که بخواید تست هارو امتحان کنید متوجه میشید که ععع خب این تست کارش این بود.در ضمن همچین چیزی کمک میکنه تا توابعی هم که قراره بنویسید کوتاه تر باشن و اون داستنای فصول پیشین بهتر رعایت بشن.F.I.R.S.TFast  تست ها باید سریع باشند.Independient      تست ها نباید به هم وابسته باشند.Repeatable      تست باید قابلیت تکرار پذیری توی هر سیستمی رو داشته باشه.Self-Validating      خروجی تست باید آره یا نه باشه.داستان تعریف نکنید توی خروجی تست مرسی.Timely قبل از کد زدن باید تست ها نوشته بشن که کد بیاد تست هارو ارضا کنه وگرنه بعد از زدن کد تستش خیلی سخت میشه.وبسایت: https://mrbug.irاینستاگرام: https://www.instagram.com/mrbug_irتوییتر: https://www.twitter.com/mrbug_irتلگرام: https://www.t.me/mrbug_ir https://virgool.io/@mrbug_ir/%D8%AE%D9%84%D8%A7%D8%B5%D9%87-%DA%A9%D8%AA%D8%A7%D8%A8-clean-code-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-l47w7ybbafgw </description>
                <category>مسترباگ</category>
                <author>مسترباگ</author>
                <pubDate>Fri, 29 May 2020 06:39:26 +0430</pubDate>
            </item>
                    <item>
                <title>خلاصه کتاب clean code - بخش ششم</title>
                <link>https://virgool.io/@mrbug_ir/cleancode-part6-viiklk9jkxvk</link>
                <description>وزش سنت در گیسوی مدرنیتهجوگیرساختن مخاطب برای خواندن تا تهبه ندرت پیش میاد که افسار کل نرم افزاری که داریم مینویسیم دست خودمون باشه. بلخره کپی پیستی از این ور اون ور باشه یا اضافه کردن یه کتابخونه یک فرد عاشق دنیای متن باز یا حتی گاهی استیل اینه که از سیستمی که بقیه بچه های شرکت زدن استفاده کنیم. توی این فصل میخوایم یادبگیریم که چطور با این جور مواقع تمیز برخورد کنیم.فصل هشتم - BoundariesUsing Third-Party Codeهمیشه اونی که اره کدها و اینترفیس هارو طراحی میکنه سعی میکنه کدی بزنه که جهان شمول باشه و همه بتونن ازش استفاده کنن . اما اون عزیزی که حالا میخواد از این کدها استفاده کنه یک نیاز خاص داره و شاید دقیقا همون کد به کارش نیاد. گاهی توی استفاده از کد ملت نیاز داریم که یک لایه دیگه بهش اضافه کنیم و طبق نیاز های خودمون یه بازنویسی کوچیک انجام بدیم روش. مثلا فرض کنید که هنرمند اولیه کد یه کلاس sensor به ما داده که نوعی map هستش.Map sensors = new HashMap();حالا ما هروقت بخوایم همچین چیزی رو به کلاس sensor پاس بدیم اول باید یبار cast کنیم :Sensor s = (Sensor)sensors.get(sensorId);این میره رو مخ آدمی. فک کن صدجا میخوای ازش استفاده کنی و هردفه هم باید cast کنی. به خاطر همین کار خفنی که میشه انجام داد اینه که بیای کلاس sensor رو اینطوری بنویسی به راحتی :public class Sensors {private Map sensors = new HashMap();public Sensor getById(String id) {return (Sensor) sensors.get(id);}}دیگه الان بدون درد وخونریزی میشه هرچقد که بخوای sensor  تعریف کنی و لذت ببری !Exploring and Learning Boundariesوقتی میخوایم از کد یه بابایی استفاده کنیم به خودمون میگیم که ایول، کلی کار رو این کتابخونه داره برام انجام میده و چقدر من توی زمان صرفه جویی میکنم ععهههه.ولی خب واقعیت ماجرا اینه که یادگرفتن کدهای ملت ممکنه زمان‌بر باشه و اینکه بخوای با کدای خودت خوب چفت بشه باید تلاش زیادی بکنی. میفرماید که به جایه اینکه با آزمون و خطا بیای یه کد خارجی رو امتحان کنی ببینی چطوریه تا با صرف زمان زیادی به جواب برسی بیا نیازمندیات از کد رو پیدا کن و واسش تست بنویس. اینکار باعث میشه بعدا هم که به خطایی چیزی برخوردی بفهمی مشکل خودتی و به هنرمند کد بیرونی ناسزا نگی.Learning Tests Are Better Than Freeخداوکیلی بیاید برای کدهای بیرونی که توی پروژه ازش استفاده میکنید تست بنویسید و مطمئن باشید که هیچ هزینه ای نخواهد داشت بلکه این کمک رو به شما میکنه که وقتی با مشت های گره کرده این تست ها به استقبال ورژن بعدی اون کد بیرونی برید به راحتی میتونید بفهمید که آيا اصن باید ورژنتونو آپدیت کنید یا نه اصلا رو همینی که هستید خوبه و نسخه جدید دیگه نیازهای شما رو پر پر کرده.Using Code That Does Not Yet Existچیزهایی که از کد ملت میدونیم رو از اونهایی که نمیدونیم سوا کنیم. یکجاهایی هست که بهشون برمیخوریم توی کتابخونه های مختلف که هنوز از یک بخشش سر درنمیاریم یا هنوز اون بخش طراحی درستی نشده. اونجاهاس که باید یدونه interface برا دل خودمون بنویسیم تا فعلا کد کار کنه تا بعدا که تونستیم بهترش کنیم.Clean Boundariesاز جمله چیزهایی که توی این کدهای خارجی رخ میده تغییره. نرم افزار خوب نرم افزاریه که وقتی یه چیزی در درونش تغییر کرد بتونه با کمترین هزینه خودشو وفق بده. وقتی از کد ملت استافده میکنیم حواسمون به این نکته باشه که پسفردا اگر اون کتابخونه تغییر کرد بشه با کمترین تغییر پروژه رو اوکی کرد.وبسایت: https://mrbug.irاینستاگرام: https://www.instagram.com/mrbug_irتوییتر: https://www.twitter.com/mrbug_irتلگرام: https://www.t.me/mrbug_ir https://virgool.io/@mrbug_ir/cleancode-part7-fawdsuo7prgr  https://virgool.io/@mrbug_ir/%D8%AE%D9%84%D8%A7%D8%B5%D9%87-%DA%A9%D8%AA%D8%A7%D8%A8-clean-code-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-l47w7ybbafgw </description>
                <category>مسترباگ</category>
                <author>مسترباگ</author>
                <pubDate>Fri, 22 May 2020 17:34:18 +0430</pubDate>
            </item>
                    <item>
                <title>خلاصه کتاب clean code - بخش پنجم</title>
                <link>https://virgool.io/@mrbug_ir/cleancode-part5-razx2fvrzl1i</link>
                <description>وزش سنت در گیسوی مدرنیتهجوگیرساختن مخاطب برای خواندن تا تهکنترل ارورها کاریه که همه ما به طور روزمره انجام میدیم. میشه گفت با هر خط کدی که زده میشه داریم احتمال بروز خطا رو افزایش میدیم. با اینکه کنترل خطا یه چیز خیلی مهمه اما گاهی کلا منطق کد روی کنترل خطا پیش میره و دیگه منطقی وجود نداره.  کار بسی غلطیه. در ادامه میخونیم که بهترین راه هندل کردن ارور ها چیه.فصل هفتم - Error HandelingUse Exceptions Rather Than Return Codesاون زمانی که طفل بودیم زبان های برنامه نویسی Exception نداشتن و داشتن با سیلی شماره ارور صورتشون رو سرخ نگه میداشتن. مثل زبان سی که وقتی کد رو میزنی برای هندل کردن ارور ها باید بیای بگی اگر ارور شمارش ۴ بود بیا اینکارو بکن اگر ۱۰ بود بیا اینکارو بکن. اصن یه وضعی. وسط کد سی به خودت میگی خب این تابعو بذار خودم ننویسم و بیام از چیزای آماده استفاده کنم، ولی غافل ازینکه تابع آماده هم مفت به کسی نمیدن، هر تابعی یکسری شماره ارور داره که باید از توی داکیومنت ببینی .الان هم ملت ازونا استفاده میکنن ولی به دلیل ناخوانایی کد و زبان های جدیدی که اومدن مرض نداریم ازونا استفاده کنیم . عشق است Exceptions.Write Your Try-Catch-Finally Statement Firstهمیشه بعد از بردن نام خدا اول باید try catch ، بعد بیایم توش کدامون رو بنویسیم. ارور همیشه در کمینه . دوستی بود همیشه کل main رو میذاشت تو try catch .Provide Context with Exceptionsهر Exception ی که پیش میاد باید انقدر دقیق لاگ گذاشته باشیم که بفهمیم دقیقا کجای کد داره به مشکل میخوره. قشنگ لاگ های مشتی و متفاوت برای ارور های مختلف بنویس که پسفردا سگ  صاحابشو بشناسه تو کد.لازم نیست که توضیح بدم سگ اروره و صاحاب Exception ؟Don&#x27;t Return Nullخروجی توابعی که مینویسی رو هیچوقت null  نذار مسلمون. ملتی که میخوان از تابعت استفاده کنن همیشه باید یه شرط الکی چک کن ببینن تابع جناب عالی null هست یا نه . به جاش از همین Exception های عزیز استفاده کن.Don&#x27;t Pass Nullیعنی واقعا انسان های ذی شعوری هستند که به ورودی تابع null بدن؟ چرا خب ؟وبسایت: https://mrbug.irاینستاگرام: https://www.instagram.com/mrbug_irتوییتر: https://www.twitter.com/mrbug_irتلگرام: https://www.t.me/mrbug_ir https://virgool.io/@mrbug_ir/cleancode-part6-viiklk9jkxvk  https://vrgl.ir/PexH7 </description>
                <category>مسترباگ</category>
                <author>مسترباگ</author>
                <pubDate>Fri, 08 May 2020 18:13:15 +0430</pubDate>
            </item>
                    <item>
                <title>خلاصه کتاب clean code - بخش چهارم</title>
                <link>https://virgool.io/@mrbug_ir/cleancode-part4-bzqm0rfoggpv</link>
                <description>وزش سنت در گیسوی مدرنیتهجوگیرساختن مخاطب برای خواندن تا تهبعد از خوندن این فصل خیلی کوچیک، میفهمید فرمت کد تمیز و فاصله ها و فضای خالی چقدر باشه و چطوری باشهفصل پنجم – FormattingVertical Formattingفایل های با حجم کمتر قطعا خوندنشون راحتتره. توصیه میشه که هر فایل از کد در بهترین حالت بیشتر از ۵۰۰ خط نباشه. هرکه بامش بیش برفش بیشتر ( برف اینجا میزان نفهمیدنه )The Newspaper Metaphorخوندن کد از بالا به پایین هم دقیقا شبیه خوندن روزنامه اس. از بالا شروع میکنی انتظار میره که همون بالا عناوین مشتری پسند گذاشته بشه که مشتری رغبت کنه تا آخر بخونه اون حادثه زرد ژورنالیست رو.روزنامه هم شامل متن های مختلفه که اونا کنار هم میتونن یه روزنامه رو تشکیل بدن. اگر کل روزنامه همش یه مطلب طولانی باشه دیگه کسی حال نداره بخونه .Vertical Openness Between Conceptsبین هر مفهوم جدیدی که توی کد نوشته میشه باید یه خط خالی بذاری واسه هوا خور یا گربه رو. اون بیچاره ای که داره کد رو میخونه راحتتر باهاش ارتباط بگیره. مثلا دوتا تیکه کد زیر رو نگاه کنید  کلاتون رو قاضی کنید انصافا کدومش رو انسان حال میکنه بخونه:حال نکنندهحال کنندهVertical Distanceمتغیرها باید نزدیک جایی که استفاده میشن، تعریف بشن وچون توابعمون خیلی کوچیکه معمولا همون اول تابع متغیرها رو تعریف میکنیم. بین تعریف متغیر واستفاده ازش فاصله بندازیم روا نیست آقاجان.اینکه تو بعضی زبان ها باید اون بالا متغیر های سراسری رو تعریف کنی اوکیه و این قانون شاملش نمیشه.Dependent Functionsوقتی ممد نزدیکت باشه صداش میکنی . توی کد هم وقتی تابعی داره یک تابع دیگه رو صدا میزنه باید نزدیک هم باشن.Horizontal Formattingیه فاصله شرعی و منطقی در عرض هم باید باشه که در این دور و زمونه خود ide انجام میده برامون.Indentationکد بدون ایندنت هم هرکی بزنه ...Team Rulesهرکه با یه استایل کدزنی حال میکنه ولی وقتی کار تیمی بشه همه تیم باید به یک صراطی مستقیم بشن تا کل کد یکپارچه بشه.وبسایت: https://mrbug.irاینستاگرام: https://www.instagram.com/mrbug_irتوییتر: https://www.twitter.com/mrbug_irتلگرام: https://www.t.me/mrbug_ir https://virgool.io/@mrbug_ir/%D8%AE%D9%84%D8%A7%D8%B5%D9%87-%DA%A9%D8%AA%D8%A7%D8%A8-clean-code-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-l47w7ybbafgw  https://virgool.io/@mrbug_ir/cleancode-part5-razx2fvrzl1i </description>
                <category>مسترباگ</category>
                <author>مسترباگ</author>
                <pubDate>Sat, 25 Apr 2020 02:24:59 +0430</pubDate>
            </item>
            </channel>
</rss>