<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های MimJimSad</title>
        <link>https://virgool.io/feed/@mimjimsad</link>
        <description>گوينده و مجرى، مدرس و علاقمند به برنامه نويسى</description>
        <language>fa</language>
        <pubDate>2026-06-27 12:32:25</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1081496/avatar/YTKpSK.jpg?height=120&amp;width=120</url>
            <title>MimJimSad</title>
            <link>https://virgool.io/@mimjimsad</link>
        </image>

                    <item>
                <title>یک تست ساده، یک باگ واقعی و ۳,۱۳۴ دلار پاداش از گوگل</title>
                <link>https://virgool.io/@mimjimsad/%DB%8C%DA%A9-%D8%AA%D8%B3%D8%AA-%D8%B3%D8%A7%D8%AF%D9%87-%DB%8C%DA%A9-%D8%A8%D8%A7%DA%AF-%D9%88%D8%A7%D9%82%D8%B9%DB%8C-%D9%88-%DB%B3%DB%B1%DB%B3%DB%B4-%D8%AF%D9%84%D8%A7%D8%B1-%D9%BE%D8%A7%D8%AF%D8%A7%D8%B4-%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-uh92rdalsgoh</link>
                <description>اخیراً یه گزارش از یه محقق امنیتی خوندم که واسه من جالب بود؛ نه به خاطر پیچیدگی آسیب‌پذیری، به خاطر سادگی ایده‌ای که پشت کشف اون بود.ماجرا از بررسی یه URL مربوط به بارگذاری تصاویر توی یکی از سرویس‌های گوگل شروع شد.محقق به‌جای اینکه فقط رفتار عادی برنامه رو بررسی کنه، یه سؤال ساده از خودش پرسید:&gt; اگر این ورودی به درستی اعتبارسنجی نشده باشد چه؟برای همین یک Payload ساده از نوع Path Traversal را امتحان کرد:../../../../../../../etc/passwdنتیجه این آزمایش، کشف یه آسیب‌پذیری Local File Inclusion (LFI) بود که تهش باعث شد گوگل این گزارش رو تأیید کنه و ۳,۱۳۴ دلار پاداش Bug Bounty بهش پرداخت بشه. چیزی که از این گزارش یاد گرفتمخیلی وقت‌ا تصور می‌کنیم کشف آسیب‌پذیری‌ها نیاز داره به ابزارهای عجیب، اکسپلویت‌های پیچیده یا دانش خیلی خاص.اما بخش زیادی از موفقیت در Bug Bounty و تست نفوذ، به این برمی‌گرده که:سؤال درست بپرسیم فرضیه‌سازی کنیم رفتارهای غیرمنتظره رو آزمایش کنیمتوی این گزارش، ارزش اصلی در Payload نبود.ارزش اصلی توی این بود که محقق به یه ورودی ساده با نگاه امنیتی نگاه کرد.---یه نکته واسه برنامه‌نویسااگر توی برنامتون:فایل بارگذاری می‌کنینتصویر نمایش می‌دینمسیر فایل رو از ورودی کاربر میگیرینحتماً این موارد رو در نظر بگیرید: اعتبارسنجی ورودی ها استفاده از Allow List محدود کردن دسترسی فایل‌ها عدم اعتماد به مسیرهای ارسال‌شده توسط کاربرخیلی از آسیب‌پذیری‌های مهم، نتیجه یه اشتباه کوچیک توی اعتبارسنجی ورودی هاست.---نهایتا اینکه:چیزی که این گزارش به ما یادآوری می‌کن اینه که:توی امنیت، همیشه پیچیده‌ترین حمله‌ها خطرناک‌ترین نیستن.بعضی وقتا یه سؤال ساده،یه تست ساده،و چند دقیقه کنجکاوی،می‌تونه به کشف یه آسیب‌پذیری واقعی و دریافت ۳,۱۳۴ دلار پاداش از گوگل منجر بشه.---منبع: He Typed “../../../../../../../etc/passwd” After a Google Image URL. Google Paid Him $3,134.برنامه نویس باشید و ازش لذت ببرید.میم جیم صادMimJimSad</description>
                <category>MimJimSad</category>
                <author>MimJimSad</author>
                <pubDate>Wed, 24 Jun 2026 14:53:02 +0330</pubDate>
            </item>
                    <item>
                <title>۵ قابلیت کمتر شناخته‌شده پایتون که می‌تونن کدت رو تمیزتر و کوتاه‌تر کنن</title>
                <link>https://virgool.io/@mimjimsad/%DB%B5-%D9%82%D8%A7%D8%A8%D9%84%DB%8C%D8%AA-%DA%A9%D9%85%D8%AA%D8%B1-%D8%B4%D9%86%D8%A7%D8%AE%D8%AA%D9%87-%D8%B4%D8%AF%D9%87-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%DA%A9%D9%87-%D9%85%DB%8C-%D8%AA%D9%88%D9%86%D9%86-%DA%A9%D8%AF%D8%AA-%D8%B1%D9%88-%D8%AA%D9%85%DB%8C%D8%B2%D8%AA%D8%B1-%D9%88-%DA%A9%D9%88%D8%AA%D8%A7%D9%87-%D8%AA%D8%B1-%DA%A9%D9%86%D9%86-w7kfu59o7f1i</link>
                <description>یکی از جذاب‌ترین ویژگی‌های پایتون اینه که برای خیلی از مسائل روزمره، راه‌حل‌های آماده و تمیزی داره.جالبه که بعضی از این قابلیت‌ها رو حتی  برنامه‌نویس‌هایی که خیلی وقته با پایتون کار می‌کنن  هم کمتر استفاده میکنن.می‌خوایم ۵ تا از اون‌ها رو مرور کنیم :--- 1️⃣ enumerate() — خداحافظی با شمارنده‌های دستیخیلی وقت‌ها اینطوری می‌نویسیم:index = 0
for item in items:
    print(index, item)
    index += 1در حالی که پایتون راه بهتری داره:for index, item in enumerate(items):
    print(index, item)هم خواناتر میشه،هم احتمال خطا کمتر میشه.--- 2️⃣ zip() — حرکت همزمان روی چند تا لیستفرض کنید دوتا لیست دارین:names = [&quot;Ali&quot;, &quot;Sara&quot;, &quot;Reza&quot;]
scores = [90, 85, 95]معمولاً بعضی‌ها با index جلو میرن.اما:for name, score in zip(names, scores):
    print(name, score)کد تمیزتر و پایتونی‌تر میشه. 3️⃣ any() — آیا حداقل یکی برقرار است؟مثلاً:numbers = [0, 0, 0, 5]بررسی اینکه حداقل یک مقدار True وجود داره:print(any(numbers))خروجی:True 4️⃣ all() — آیا همه برقرار هستند؟مثلاً:numbers = [1, 2, 3, 4]بررسی:print(all(numbers))خروجی:Trueبرای Validation خیلی کاربردیه. 5️⃣ Counter — شمارش بدون دردسراز ماژول collections:from collections import Counter
items = [&quot;python&quot;, &quot;java&quot;, &quot;python&quot;, &quot;go&quot;]
print(Counter(items))خروجی:Counter({&#039;python&#039;: 2, &#039;java&#039;: 1, &#039;go&#039;: 1})برای تحلیل داده و لاگ‌ها فوق‌العاده کاربردیه.جمع‌بندیخیلی وقت‌ها حرفه‌ای‌تر شدن  یاد گرفتن ابزارهای جدید نیست.فقط استفاده بهتر از قابلیت‌هایی هست که همین الان داخل زبان موجوده.به نظر من:enumerate()، zip() و Counter از اون ابزارهایی هستن که هر برنامه‌نویس پایتون باید بلد باشه.شما از کدوم یکی بیشتر استفاده می‌کنید؟ یا چه قابلیت کمتر شناخته‌شده‌ای رو پیشنهاد می‌کنید؟برنامه نویس باشید و ازش لذت ببرید.میم جیم صادMimJimSad</description>
                <category>MimJimSad</category>
                <author>MimJimSad</author>
                <pubDate>Sun, 14 Jun 2026 15:51:42 +0330</pubDate>
            </item>
                    <item>
                <title>چطور پروژه تمرینی بسازیم که واقعاً رزومه بشه؟</title>
                <link>https://virgool.io/@mimjimsad/%DA%86%D8%B7%D9%88%D8%B1-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D8%AA%D9%85%D8%B1%DB%8C%D9%86%DB%8C-%D8%A8%D8%B3%D8%A7%D8%B2%DB%8C%D9%85-%DA%A9%D9%87-%D9%88%D8%A7%D9%82%D8%B9%D8%A7%D9%8B-%D8%B1%D8%B2%D9%88%D9%85%D9%87-%D8%A8%D8%B4%D9%87-o8nt6hlky4jh</link>
                <description>یکی از اشتباه‌هایی که بین خیلی از علاقمندان برنامه‌نویسی می‌بینم اینه که:پروژه می‌سازن…ولی پروژه‌شون شبیه «تمرین دوره» می‌مونه، نه چیزی که بشه تو رزومه آورد.واقعیت اینه که فقط کار کردن پروژه کافی نیست.نحوه ارائه و ساختار پروژه هم مهمه.🧠 پروژه رزومه‌ای چه فرقی داره؟پروژه‌ای که فقط برای تمرین ساخته شده معمولاً:README ندارهساختار منظمی ندارهفقط روی سیستم خودت اجرا میشهتوضیح مشخصی از مسئله و راه‌حل ندارهاما پروژه‌ای که رزومه‌ایه:نشون میده چطور فکر می‌کنی، نه فقط چطور کد می‌زنی.✅ چند نکته که پروژه‌ات رو حرفه‌ای‌تر می‌کنه1️⃣ README واقعی بنویسخیلی‌ها این بخش رو جدی نمی‌گیرن.حداقل این‌ها رو بنویس:پروژه چی کار می‌کنه؟چطور اجرا میشه؟چه تکنولوژی‌هایی استفاده شده؟اسکرین‌شات یا نمونه خروجیاگر کسی وارد GitHubت شد،README اولین چیزیه که می‌بینه.2️⃣ ساختار پروژه مرتب باشهپروژه‌ای که همه فایل‌ها داخل یک پوشه ریخته شده:❌ غیرحرفه‌ای به نظر می‌رسه.حتی پروژه ساده هم بهتره:پوشه‌بندی مشخصnaming درستفایل config جداrequirements.txt داشته باشه3️⃣ فقط CRUD ساده نسازخیلی از پروژه‌های دانشجویی فقط:Create / Read / Update / Delete هستن.سعی کن یه مسئله واقعی حل کنی.مثلاً:سیستم مدیریت فایلابزار مانیتورینگ سادهAPI تحلیل دادهautomation کوچکdashboard4️⃣ پروژه‌ات Deploy بشهاگر پروژه فقط روی لپ‌تاپ خودت اجرا میشه،ارزش رزومه‌ای کمتری داره.حتی Deploy ساده:RenderRailwayVercelPythonAnywhereباعث میشه پروژه واقعی‌تر دیده بشه.5️⃣ Git Commitهای تمیز داشته باشاین:final_final_v2_lastfixواقعاً حرفه‌ای نیست 😄Commit خوب:Add authentication middlewareFix input validation bugRefactor API routes6️⃣ کدت قابل فهم باشهرزومه فقط نتیجه نیست؛کسی ممکنه کدت رو هم بخونه.پس:اسم متغیر خوبتوابع کوتاهتکرار کمکامنت منطقیخیلی مهم‌تر از پیچیده‌نویسیه.🎯 جمع‌بندیپروژه تمرینی وقتی ارزشمند میشه که:تمیز باشهقابل اجرا باشهمستندات داشته باشهو یک مسئله واقعی رو حل کنهخیلی وقت‌ها یک پروژه کوچک ولی مرتب،از ده پروژه نصفه‌نیمه ارزش بیشتری داره.برنامه نویس باشید و ازش لذت ببرید.میم جیم صادMimJimSad</description>
                <category>MimJimSad</category>
                <author>MimJimSad</author>
                <pubDate>Fri, 15 May 2026 12:20:07 +0330</pubDate>
            </item>
                    <item>
                <title>وقتی کدمون کار نمی‌کنه، چطوری باگ رو اصولی پیدا کنیم؟</title>
                <link>https://virgool.io/@mimjimsad/%D9%88%D9%82%D8%AA%DB%8C-%DA%A9%D8%AF%D8%AA-%DA%A9%D8%A7%D8%B1-%D9%86%D9%85%DB%8C-%DA%A9%D9%86%D8%AF-%DA%86%D8%B7%D9%88%D8%B1-%D8%A8%D8%A7%DA%AF-%D8%B1%D8%A7-%D8%A7%D8%B5%D9%88%D9%84%DB%8C-%D9%BE%DB%8C%D8%AF%D8%A7-%DA%A9%D9%86%DB%8C%D9%85-op2ju5jsk7xz</link>
                <description>یکی از بزرگ‌ترین اشتباه‌هایی که بین دانشجوهای برنامه‌نویسی می‌بینم اینه که فکر می‌کنن مشکلشون «کدنویسیه».در حالی که اغلب مشکل اصلی چیز دیگه‌ایه:ناتوانی در دیباگ اصولی.فرق برنامه‌نویس معمولی و حرفه‌ای؟نه سرعت تایپ.نه تعداد فریمورک‌هایی که بلده.بلکه توانایی پیدا کردن مشکل.وقتی کد اجرا نمی‌شه، این مسیر رو برو:۱- آروم باش، حدس نزنشروع نکن ده تا تغییر همزمان دادن.Debug یعنی تحلیل، نه شانسی زدن.۲- مشکل رو دقیق بازتولید کن (Reproduce)از خودت بپرس:دقیقاً کجا خطا می‌ده؟با چه ورودی‌ای خراب می‌شه؟همیشه این اتفاق می‌افته یا فقط بعضی وقتا؟اگه نتونی مشکل رو دوباره ایجاد کنی،نمی‌تونی حلش کنی.۳- ورودی‌ها رو بررسی کن (۸۰٪ باگ‌ها همین‌جاست)خیلی وقتا تابع مشکل نداره.داده‌ای که واردش شده اشتباهه.قبل از اینکه منطق برنامه رو متهم کنی،ببین چه داده‌ای واردش شده.۴- از Print هدفمند استفاده کنبد:print(&quot;here&quot;)بهتر:print(&quot;value of b:&quot;, b)Debug یعنی دنبال کردن جریان داده، نه گذاشتن پیام‌های تصادفی.۵- مسئله رو کوچک کناگه پروژه بزرگه:فقط همون تابع رو جدا تست کنوابستگی‌ها رو موقت حذف کنسیستم رو بخش‌بخش بررسی کنهرچقدر مشکل کوچک‌تر بشه، دیدنش ساده‌تر می‌شه.۶- فرضیه بساز و تست کنروش حرفه‌ای اینه:حدس منطقی بزن مشکل کجاستیه تست کوچک بنویسنتیجه رو بررسی کناگه اشتباه بود، فرضیه جدید.این یعنی تفکر مهندسی.۷- وقتی درست شد، دلیلش را بفهمبزرگ‌ترین اشتباه دانشجوها اینه که وقتی مشکل حل شد، دیگه پیگیری نمی‌کنن که چرا اتفاق افتاد.اگر دلیل رو نفهمی،دوباره تکرار می‌شه.جمع‌بندیبرنامه‌نویس قوی کسی نیست که کم خطا بده.کسیه که سریع، منطقی و سیستماتیک خطا رو پیدا کنه.دیباگ کردن یک مهارته.و مثل هر مهارت دیگه ای، با تمرین ساخته می‌شه.برنامه نویس باشید و ازش لذت ببرید.میم جیم صادMimJimSad</description>
                <category>MimJimSad</category>
                <author>MimJimSad</author>
                <pubDate>Fri, 20 Feb 2026 15:27:01 +0330</pubDate>
            </item>
                    <item>
                <title>نگاهی عملی به Detection Engineering با کمک هوش مصنوعی</title>
                <link>https://virgool.io/@mimjimsad/%D9%86%DA%AF%D8%A7%D9%87%DB%8C-%D8%B9%D9%85%D9%84%DB%8C-%D8%A8%D9%87-detection-engineering-%D8%A8%D8%A7-%DA%A9%D9%85%DA%A9-%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-e5pewip3pqfz</link>
                <description>(بدون اغراق، بدون شعار؛ امنیت واقعی)اگه مدتی توی حوزهٔ امنیت کار کرده باشین، احتمالاً این صحنه براتون آشناست:لاگ‌ها از همه‌جا می‌ریزنآلارم‌ها پشت سر همزمان تحلیل‌گر محدودهو false positive ها اعصاب‌خُردکنمعمولاً اینجاست که یکی می‌گه:«بیایم AI اضافه کنیم، حل می‌شه.»ولی در عمل، ماجرا خیلی ساده نیست.محدودیت‌های Detection سنتیمدل‌های کلاسیک تشخیص تهدید معمولاً متکی هستن به:Ruleهای ثابتIOCها و signatureهاالگوهای حمله‌ی شناخته‌شدهاین‌ا هنوزم مهممن — خیلیم مهم.اما مهاجم ها سریع‌تر از ruleها تغییر می‌کنن.Detection صرفاً rule-based معمولاً تو این موارد کم میاره:حملات low-and-slowسوءاستفاده‌های رفتاری (behavioral abuse)تکنیک‌های جدید یا ناشناختههوش مصنوعی دقیقاً کجا کمک می‌کنه؟AI فقط وقتی مفیده که تو جای درست استفاده بشه.بهترین کاربردش وقتیه که:رفتار نرمال کاربر و سیستم رو یاد بگیرهبه‌جای alert صفر و یکی، امتیاز ریسک بدهبه تحلیل‌گر بگه چرا این رفتار مشکوکهAI قرار نیست جای منطق تشخیص رو بگیره.نقشش اینه که نویز رو کم کنه و اولویت بده.تصمیم‌گیر نهایی هنوز انسانه،نه مدل یادگیری ماشین.چرا Python همه‌جا تو این فضا هست؟توی دنیای واقعی Detection Engineering، پایتون نقش چسب رو بازی می‌کنه:پارس و نرمال‌سازی لاگ‌هاFeature engineering برای داده‌های امنیتیساخت سریع prototypeهای تشخیصاتصال مدل‌های ML به SIEM / SOARاینجا Python «زبان هک» نیست.یه ابزار مهندسی تحلیل امنیته.مسیر درست یادگیری این حوزهتجربه می‌گه ترتیب یادگیری خیلی مهمه:اول detection کلاسیک رو بفهم (لاگ، rule، سناریوی حمله)رفتار مهاجم رو یاد بگیر، نه فقط ابزارش رواز AI برای پشتیبانی detection استفاده کن، نه جایگزینیهر alert باید قابل توضیح و قابل ردگیری باشهاگه نتونی توضیح بدی چرا یه alert زده شده،AI هم نجاتت نمی‌ده.جمع‌بندیهوش مصنوعی امنیت رو ساده‌تر نمی‌کنه؛ما رو مجبور می‌کنه دقیق‌تر، منظم‌تر و داده‌محورتر فکر کنیم.اگه درست استفاده بشه،alert overload رو تبدیل می‌کنه به insight قابل اقدام.اگه بد استفاده بشه،فقط نویزِ هوشمندتر تولید می‌کنه.برنامه نویس باشید و ازش لذت ببرید.میم جیم صادMimJimSad</description>
                <category>MimJimSad</category>
                <author>MimJimSad</author>
                <pubDate>Thu, 29 Jan 2026 20:43:49 +0330</pubDate>
            </item>
                    <item>
                <title>وقتی APTها برمی‌گردند، بازار کار امنیت چه پیامی می‌ده؟</title>
                <link>https://virgool.io/@mimjimsad/%D9%88%D9%82%D8%AA%DB%8C-apt%D9%87%D8%A7-%D8%A8%D8%B1%D9%85%DB%8C-%DA%AF%D8%B1%D8%AF%D9%86%D8%AF-%D8%A8%D8%A7%D8%B2%D8%A7%D8%B1-%DA%A9%D8%A7%D8%B1-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%DA%86%D9%87-%D9%BE%DB%8C%D8%A7%D9%85%DB%8C-%D9%85%DB%8C-%D8%AF%D9%87-iokcyotqrjke</link>
                <description>اخبار امنیتی این اواخر  (مثل گزارش‌های The Hacker News درباره فعالیت دوباره APTها) دارن یه نکته مهم رو دوباره یادآوری می‌کنن:تهدید ها پیچیده‌تر نشدن؛ هوشمندتر شدن.بیشتر این حملات هنوز هم بر پایه:فیشینگ های هدفمندسوءاستفاده از ابزارهای خود سیستم (Living-off-the-Land)اسکریپت‌نویسی با Python / PowerShellانجام می‌شه.اما نکته مهم‌تر، پیام شغلی این اتفاق‌هاست 👇🧠 تحلیل شغلیبازار امنیت امروز دنبال کسی نیست که فقط ابزار بلد باشه؛دنبال کسیه که:رفتار مهاجم رو تحلیل کنهزنجیره حمله (Kill Chain) را بفهمهتوانایی داشته باشه که «چرایی» یه Incident رو توضیح بده، نه فقط Alert روبه همین دلیل، نقش‌هایی مثل:SOC AnalystBlue Team EngineerThreat Hunterهمچنان جزو موقعیت‌های پرتقاضا هستند.🐍 نقش Python این وسط چیه؟توی خیلی از این حملات، Python هنوز یک ابزار کلیدیه:برای Automation، Loaderها و تحلیل داده.از دید بازار کار:Python + Security = مزیت رقابتی واقعیاگه تازه‌کار هستی:Python رو فقط برای کدنویسی یاد نگیر؛ برای تحلیل و Automation یاد بگیرLinux و Windows Internals رو جدی بگیرگزارش APTها رو بخون، نه فقط تیترشوناگر Mid یا Senior هستی:Threat Intelligence رو وارد کار روزمره کنروی تحلیل Incident و گزارش‌نویسی فنی تمرکز کنسعی کن دانش را منتقل کنی، نه فقط اجرا کنی برنامه نویس باشید و ازش لذت ببرید.میم جیم صادMimJimSad</description>
                <category>MimJimSad</category>
                <author>MimJimSad</author>
                <pubDate>Mon, 22 Dec 2025 18:17:55 +0330</pubDate>
            </item>
                    <item>
                <title>چرا هر برنامه‌نویس لازم داره حداقل یک‌بار سیستم‌عامل رو از نزدیک لمس کنه؟</title>
                <link>https://virgool.io/@mimjimsad/%DA%86%D8%B1%D8%A7-%D9%87%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D9%84%D8%A7%D8%B2%D9%85-%D8%AF%D8%A7%D8%B1%D9%87-%D8%AD%D8%AF%D8%A7%D9%82%D9%84-%DB%8C%DA%A9-%D8%A8%D8%A7%D8%B1-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84-%D8%B1%D9%88-%D8%A7%D8%B2-%D9%86%D8%B2%D8%AF%DB%8C%DA%A9-%D9%84%D9%85%D8%B3-%DA%A9%D9%86%D9%87-slkinxr0yi9s</link>
                <description>معمولا خیلی از ما برنامه‌نویس‌ها بیشتر وقتمون بین ادیتور، فریم‌ورک‌ها و تسک‌های روزمره می‌گذره.اما یه نکته مهم هست که معمولاً دیر متوجهش می‌شیم:رشد واقعی زمانی اتفاق می‌افته که بفهمیم پشت‌صحنهٔ اجرای کدمون چه خبره.وقتی بدونی سیستم‌عامل چطور پردازش‌ها رو مدیریت می‌کنه، فایل‌ها چطور کنترل می‌شن و شبکه دقیقاً چه‌طور کار می‌کنه، کیفیت کدی که می‌نویسی به‌طور محسوسی بهتر می‌شه.حالا چرا این موضوع مهمه؟چون وقتی زیرساخت رو بشناسی:راحت‌تر و دقیق‌تر Debug می‌کنیفهم بهتری از Performance پیدا می‌کنیایرادهای امنیتی رو زودتر تشخیص میدیتو مسیرهایی مثل DevOps، Cloud و Security خیلی سریع‌تر رشد می‌کنیخلاصه ش اینکه، همین شناخت عمیق‌تره که فرق بین “کدنویس” و “مهندس” رو مشخص می‌کنه.خب حالا از کجا شروع کنیم؟لازم نیست متخصص لینوکس بشی.چند مهارت ساده و پایه‌ای کلی تفاوت ایجاد می‌کنه:دستورات اولیهٔ Shellمدیریت فایل‌ها و Permissionهاآشنایی با Process و Threadدرک مقدماتی از شبکه (Port، Socket، Serviceها)کار با پکیج‌ها و سرویس‌هاهمینا توی هر پروژه و هر زبانی کمکت می‌کنن بهتر تصمیم بگیری.پیشنهادی که همیشه به تازه‌کارها می‌دم:یک VPS کوچیک بگیر.چند سرویس راه بنداز.چیزی رو اشتباهی حذف کن، درستش کن، دوباره تستش کن.این کار خیلی ساده‌ست،اما تجربهٔ واقعی‌ای که بهت می‌ده با هیچ آموزش تئوری قابل مقایسه نیست.در نهایت جمع‌بندی اینه که :اگه برنامه‌نویسی مسیر جدی زندگیته، یاد گرفتن مفاهیم پایهٔ سیستم‌عامل مثل داشتن یه «میان‌بُر حرفه‌ای» عمل می‌کنه.ممکنه زبان‌ها و فریم‌ورک‌ها عوض بشن،اما درک درست از رفتار سیستم‌عامل همیشه یک مهارت پایه و ارزشمند می‌مونه.برنامه نویس باشید و ازش لذت ببرید.میم جیم صادMimJimSad</description>
                <category>MimJimSad</category>
                <author>MimJimSad</author>
                <pubDate>Fri, 12 Dec 2025 17:19:51 +0330</pubDate>
            </item>
                    <item>
                <title>فرصت‌های شغلی لینوکس در ۲۰۲۵ — مهارت‌های پرتقاضا</title>
                <link>https://virgool.io/@mimjimsad/%D9%81%D8%B1%D8%B5%D8%AA-%D9%87%D8%A7%DB%8C-%D8%B4%D8%BA%D9%84%DB%8C-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%AF%D8%B1-%DB%B2%DB%B0%DB%B2%DB%B5-%E2%80%94-%D9%85%D9%87%D8%A7%D8%B1%D8%AA-%D9%87%D8%A7%DB%8C-%D9%BE%D8%B1%D8%AA%D9%82%D8%A7%D8%B6%D8%A7-je64erl1xne2</link>
                <description>سال ۲۰۲۵ یه فرصت بی‌نظیر برای متخصصان لینوکس ایجاد کرده.سازمان‌ها به دنبال آدم هایی هستن که بتونن تخصص لینوکس رو با مهارت‌های Cloud، DevOps، AI یا امنیت ترکیب کنن.🔹 مسیرهای شغلی پرتقاضاCloud Engineer: لینوکس + AWS/Azure/GCP — طراحی و مدیریت زیرساخت ابریDevOps / Platform Engineer: لینوکس، اتوماسیون، Docker/KubernetesAI / MLOps: اجرای مدل‌های یادگیری ماشین روی سرورهای لینوکسCybersecurity: ایمن‌سازی، سخت‌سازی و نظارت بر محیط‌های لینوکس🔹گواهی‌نامه‌ها و مهارت‌های پیشنهادیRed Hat (RHCSA, RHCE, RHCA) — مهارت عملی و معتبرLPIC-1, LPIC-2, LPIC-3 — مدیریت لینوکس بدون وابستگی به فروشندهCompTIA Linux+ — مهارت‌های پایه لینوکسگواهی‌های Cloud / DevOps / Security — ترکیب با لینوکس برای بیشترین تاثیر🔹 نکات کلیدی برای توسعه‌دهنده‌ها و کسانی که دنبال یادگیری هستنلینوکس هنوز هسته اصلی حوزه‌های پرتقاضای فناوریهترکیب لینوکس با Python، Cloud، DevOps یا امنیت یه مزیت بزرگ ایجاد می‌کنهتجربه عملی توی لاب‌های ابری، مدیریت کانتینرها یا pipelines AI ارزش بیشتری نسبت به آموزش نظری داره🔹 چندتا توصیه‌ عملیلینوکس رو خوب یاد بگیر: حتی اصول پایه مثل Shell، مدیریت بسته‌ها و کاربران ارزشمنده.یه مهارت مکمل انتخاب کن: Cloud، DevOps، AI/ML یا امنیت — ترکیبش با لینوکس خیلی قدرت ایجاد می‌کنه.تجربه عملی بساز: یه سرور کوچیک، میکروسرویس یا کانتینر بساز و تمرین کن.گواهی‌نامه‌ها رو مد نظر داشته باش: Red Hat، LPIC یا CompTIA Linux+ می‌تونه مسیرت رو کوتاه‌تر کنه.همیشه یاد بگیر و بروز باش: تکنولوژی سریع تغییر می‌کنه؛ هر ماه یه چیز جدید تمرین کن.💡 در نهایت هم:حتی اگر تازه‌کار هستید، سرمایه‌گذاری روی لینوکس و یه فناوری پرتقاضا (Cloud، DevOps، AI یا امنیت) مسیر حرفه‌ای شما را توی سال ۲۰۲۵ و بعد از اون به شکل چشمگیری جلو می‌بره.🔹منبعاین مطلب بر اساس گزارش Linux Career Opportunities in 2025: Skills in High Demand از سایت LinuxCareers.com تهیه شده.اگه دوست داشتین یه نگاه کامل بهش بندازین:🔗 لینک گزارش: LinuxCareers.comبرنامه نویس باشید و ازش لذت ببرید.میم جیم صادMimJimSad</description>
                <category>MimJimSad</category>
                <author>MimJimSad</author>
                <pubDate>Sun, 30 Nov 2025 17:56:12 +0330</pubDate>
            </item>
                    <item>
                <title>نگاه امنیت‌محور در Python — برداشت‌ها و درس‌هایی از پروژه‌های واقعی</title>
                <link>https://virgool.io/@mimjimsad/%D9%86%DA%AF%D8%A7%D9%87-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D9%85%D8%AD%D9%88%D8%B1-%D8%AF%D8%B1-python-%E2%80%94-%D8%A8%D8%B1%D8%AF%D8%A7%D8%B4%D8%AA-%D9%87%D8%A7-%D9%88-%D8%AF%D8%B1%D8%B3-%D9%87%D8%A7%DB%8C%DB%8C-%D8%A7%D8%B2-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D9%82%D8%B9%DB%8C-ahbrb3f4ci1s</link>
                <description>توی سال‌هایی که با Python کار کردم و کم‌کم وارد دنیای امنیت شدم، به یه چیز مهم رسیدم:فرق یه دولوپر معمولی با یه دولوپر حرفه‌ای فقط سرعت و مهارت کدنویسی نیست؛ نوع نگاهش به ریسک و امینته.🔹 خیلی‌ها Python رو یه زبان «ساده» و «بی‌دردسر» می‌دونن،ولی همین سادگی، اگر بدون ذهنیت امنیتی باشه، می‌تونه تبدیل بشه به یه نقطه‌ضعف واقعی.امروز چندتا از چیزهایی که تو پروژه‌های واقعی یاد گرفتم—و واقعاً ای کاش زودتر یاد می‌گرفتم—رو با شما به اشتراک می‌ذارم:🟣 1) ورودی کاربر شوخی‌بردار نیستاوایل کار فکر می‌کردم چون Python سطح بالاست، خیلی از حملات خودبه‌خود کنترل می‌شن.واقعیت؟ نه!فرقی نمی‌کنه CLI بنویسی، API بنویسی یا یه اسکریپت کوچیک:هر ورودی بدون Validation = یه در باز.بهترین عادتی که می‌تونید از همین امروز شروع کنید:همه ورودی‌ها رو «غیرقابل اعتماد» فرض کنید.🟣 2) امنیت آخر کار نیست—از خط اول شروع میشهیه مدت امنیت رو می‌ذاشتم آخر کار.ولی کم‌کم فهمیدم security باید از همون اول تو سر و کله‌ی کد باشه:قبل از طراحیقبل از انتخاب کتابخونهقبل از merge کردنالان اگر چیزی امن نباشه، از نظر من هنوز «کامل» نیست—even if it works.🟣 3) ابزارها خوبن، ولی ناجی نیستنBandit، Semgrep، Trivy، Linters… همه‌شون عالی‌ان.ولی فقط هشدار می‌دن؛این ما هستیم که باید بفهمیم چرا هشدار مهمه.بعد از دیدن هر هشدار، یه لحظه مکث کنید و بپرسید:اگه من مهاجم بودم، از این نقطه چی می‌تونستم دربیارم؟🟣 4) تجربه عملی از هر آموزشی قوی‌ترهکتاب، دوره، مقاله… همه خوبن و منم همیشه دنبالشونم.ولی هیچ‌چیزی مثل این نیست که یه پروژه واقعی رو خودت بسازی، خرابش کنی، دوباره درستش کنی و ایمنش کنی.تجربهٔ Debug کردن یه مشکل امنیتی، واقعاً چیزیه که هیچ آموزشی جایگزینش نیست.🟣 5) امنیت یه مهارت اضافی نیست، یه جور هویت حرفه‌ایهکم‌کم امنیت برای من تبدیل شد به یه «عادت ذهنی».همون‌طور که موقع نوشتن کد حواست به Performance هست، امنیت هم باید همین‌قدر طبیعی باشه.در نهایت، چیزی که همیشه دوست دارم منتقل کنم اینه:Python فوق‌العاده‌ست، ولی وقتی واقعاً می‌درخشه که همراه با یه نگاه امنیتی باشه.اگر این مسیر برات جدیه، از همین امروز یه تغییر کوچیک شروع کن.همین تغییرهای کوچیکه که بعد از چند ماه، باعث میشه بقیه برای مشورت امنیتی بیان سراغت.برنامه نویس باشید و ازش لذت ببرید.میم جیم صادMimJimSad</description>
                <category>MimJimSad</category>
                <author>MimJimSad</author>
                <pubDate>Thu, 20 Nov 2025 17:04:44 +0330</pubDate>
            </item>
                    <item>
                <title>از امنیت تا یادگیری ماشین — وقتی پایتون دوباره منو غافلگیر کرد</title>
                <link>https://virgool.io/@mimjimsad/%D8%A7%D8%B2-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%AA%D8%A7-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%E2%80%94-%D9%88%D9%82%D8%AA%DB%8C-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%D8%AF%D9%88%D8%A8%D8%A7%D8%B1%D9%87-%D9%85%D9%86%D9%88-%D8%BA%D8%A7%D9%81%D9%84%DA%AF%DB%8C%D8%B1-%DA%A9%D8%B1%D8%AF-zc24oo9sxmob</link>
                <description>این هفته وارد دنیای Machine Learning شدم؛دنیایی که پر از مفهوم‌های جذابه و البته پر از چالش!به عنوان کسی که بیشتر با پایتون در حوزه‌ی امنیت و اتوماسیون کار می‌کردم، برام جالبه ببینم چطور می‌تونم از ML برای تشخیص ناهنجاری‌ها، تحلیل لاگ‌ها و پیش‌بینی حملات استفاده کنم. 🔐اول از همه رفتم سراغ ابزارهای پایه مثل:🐍 pandas برای کار با داده‌ها⚙️ scikit-learn برای مدل‌سازی ساده📊 matplotlib برای مصورسازی نتایججالبه بدونید فقط با چند خط کد می‌شه یه مدل ساده‌ی classification ساخت که مثلاً تشخیص بده کدوم لاگ‌ها رفتار مشکوک دارن.حس می‌کنم ترکیب پایتون + امنیت + یادگیری ماشین قراره آینده‌ی خیلی از ما رو تغییر بده.فعلاً تمرکزم روی مفاهیم پایه مثل:📘 Data Preprocessing📘 Feature Selection📘 الگوریتم‌های ساده مثل KNN و Decision Treeاگر تجربه‌ای در استفاده از ML در امنیت یا تحلیل لاگ دارید، خیلی خوشحال می‌شم بدونم از چی شروع کردید؟ 👇برنامه نویس باشید و ازش لذت ببرید.میم جیم صاد</description>
                <category>MimJimSad</category>
                <author>MimJimSad</author>
                <pubDate>Fri, 31 Oct 2025 17:08:42 +0330</pubDate>
            </item>
                    <item>
                <title>وقتی باگ‌هامون بهمون ایده میدن</title>
                <link>https://virgool.io/@mimjimsad/%D9%88%D9%82%D8%AA%DB%8C-%D8%A8%D8%A7%DA%AF-%D9%87%D8%A7%D9%85%D9%88%D9%86-%D8%A8%D9%87%D9%85%D9%88%D9%86-%D8%A7%DB%8C%D8%AF%D9%87-%D9%85%DB%8C%D8%AF%D9%86-vqgp81tqlsqa</link>
                <description>یه روز یه باگ ساده توی لاگ‌نویسی کل سرویس رو کند کرده بود.فکر می‌کردم multi-threading قاتی کرده، ولی بعد از چند ساعت بررسی فهمیدم داستان یه چیز دیگه‌ست:یه race condition باعث شده بود بخشی از لاگ‌ها به‌صورت async نوشته بشن — و جالبه که همین باعث کاهش محسوس latency شده بود!اونجا بود که یه سؤال تو ذهنم اومد:«اگه این رفتار اشتباهی رو کنترل کنم، می‌تونه تبدیل به یه فیچر واقعی بشه؟»شروع کردم به بازنویسی همون باگ، ولی این بار آگاهانه.نتیجه شد یه ماژول جدید برای async logging که الان تو چند تا سرویس اصلی داره کار می‌کنه.همون باگی که قرار بود fix بشه، شد یه قابلیت جدید.این فقط تجربه‌ی من نبود.توی دنیای نرم‌افزار، بارها و بارها دیدیم که یه خطا، یه اشتباه یا یه رفتار غیرمنتظره تبدیل شده به چیزی بزرگ‌تر از خودش.مثلاً:توی Slack، یه باگ باعث شد نوتیفیکیشن‌ها با تأخیر برسن.تیم به‌جاش تصمیم گرفت اون تأخیر رو هدفمند کنه و نتیجه شد Smart Delivery Delay.توی Twitter، یه خطای محدودیت کاراکتر باعث شد کاربرها بتونن متن‌ها رو نقل‌قول کنن؛ شد Quoted Tweet.توی Photoshop، یه اشتباه در مدیریت history شد نقطه‌ی شروع چیزی که امروز بدونش کار نمی‌کنیم: Undo.همه‌ی این‌ها یه پیام مشترک دارن:باگ‌ها فقط خطا نیستن — گاهی نشونه‌ی مرزهای جدیدن.وقتی یه سیستم از کنترل خارج می‌شه، در واقع داره بهت نشون می‌ده که «یه مسیر جدید» هم وجود داره.گاهی باید به‌جای panic یا quick fix، فقط یه لحظه وایسی و بپرسی:«اگه این رفتار اشتباهی یه قابلیت بود، چه کاربردی می‌تونست داشته باشه؟»خیلی از نوآوری‌های بزرگ، دقیقاً از همین سؤال ساده شروع شدن.پایانبرنامه نویس باشید و ازش لذت ببرید.میم جیم صاد</description>
                <category>MimJimSad</category>
                <author>MimJimSad</author>
                <pubDate>Thu, 16 Oct 2025 16:03:54 +0330</pubDate>
            </item>
                    <item>
                <title>امنیت فقط فنی نیست!</title>
                <link>https://virgool.io/@mimjimsad/%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D9%81%D9%82%D8%B7-%D9%81%D9%86%DB%8C-%D9%86%DB%8C%D8%B3%D8%AA-dknkjioqrmqs</link>
                <description>خیلیا فکر می‌کنن امنیت سایبری فقط یعنی ابزار، کدنویسی یا exploit. اما در عمل، بخش بزرگی از برتری در امنیت به جنبه‌های انسانی، فرایندها و سیگنال‌های رفتاری مربوط می‌شه.یک مهندس امنیت واقعی باید بتونه هم رفتار کاربر رو بخونه، هم نیت مهاجم رو پیش‌بینی کنه، و هم ریسک‌سنجی انجام بده — نه فقط باگ پیدا کنه.مباحث تخصصی (برای مخاطب فنی)مهندسی اجتماعی و فازهای آن: شناسایی reconnaissance، ایجاد اعتماد (pretexting)، اجرای حمله (phishing / vishing) و استقرار (persistence). برای دفاع، باید هر مرحله را با telemetry مناسب پوشش داد.سیگنال‌های رفتاری (Behavioral Indicators): ناهنجاری‌هایی مثل تغییر الگوی لاگین (زمان/محل/پروفایل دستگاه)، افزایش خطاهای احراز هویت، یا درخواست‌های دسترسیِ غیرمعمول که با UEBA/EDR قابل شناسایی‌اند.فناوری‌های موثر برای مقابله انسانی‌محور:MFA مقاوم در برابر فیشینگ (FIDO2 / WebAuthn)DLP با تحلیل محتوا و context-aware policiesUEBA برای تشخیص تغییرات رفتاری و حرکت جانبی (lateral movement)مثال تکنیکی مختصر: مهاجم از طریق فیلد support ticket در سرویس ثالث، تصویر ID آپلود شده کاربر را بیرون می‌کشد → راهکار: رمزگذاری سمت سرویس، سیاست حداقلی دسترسی، و tokenization برای داده‌های حساس.فریم‌ورک‌ها و مَپ‌ها: نقشه‌برداری تهدید به MITRE ATT&amp;CK (Tactics/Techniques) و همخوان‌سازی کنترل‌ها با NIST CSF برای پوشش انسانی و فنی. توصیه‌های عملی (قابل اجرا)پالیسی least-privilege + دوره‌ای مرور دسترسی‌ها.پیاده‌سازی FIDO2 برای سرویس‌های حساس و کنار گذاشتن MFA مبتنی بر SMS.پایش رفتار (UEBA) + EDR + SIEM و تعریف‌ alertهای مبتنی بر ریسک (ex: surge in data exfiltration indicators).سناریوهای tabletop برای آماده‌سازی پاسخ به تهدیدات داخلی و مهندسی اجتماعی.گزارش‌دهی و فرهنگ سازمانی: پاداش‌دهی به گزارش‌های امنیتی داخلی و کانال امن افشا.معیارهای سنجش (KPIs)Mean Time to Detect (MTTD) برای رفتارهای غیرعادیMean Time to Respond (MTTR) به حادثه داخلیتعداد حساب‌هایی که MFA مقاوم دارند (٪)تعداد رخدادهای مسدودشده توسط UEBA/DLP در هر ماهجمع‌بندی:امنیت مؤثر یعنی تلفیق «فناوریِ قوی» با «درک انسانیِ عمیق» و فرایندهای واضح. هر تیمی که هر سه را داشته باشد، واقعاً مقاوم خواهد بود.پایانبرنامه نویس باشید و ازش لذت ببرید.میم جیم صاد</description>
                <category>MimJimSad</category>
                <author>MimJimSad</author>
                <pubDate>Thu, 09 Oct 2025 16:58:40 +0330</pubDate>
            </item>
                    <item>
                <title>امنیت با مدل اعتماد صفر (Zero Trust Security)</title>
                <link>https://virgool.io/@mimjimsad/%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%A8%D8%A7-%D9%85%D8%AF%D9%84-%D8%A7%D8%B9%D8%AA%D9%85%D8%A7%D8%AF-%D8%B5%D9%81%D8%B1-zero-trust-security-zppmkhxqtzey</link>
                <description>🔐 چرا آینده امنیت سایبری بدون اعتماد است؟سال‌های سال مدل امنیتی سنتی اینجوری بود که هر چیزی داخل شبکه قابل اعتماده. اما دنیای امروز عوض شده:کار از راه دوراستفاده گسترده از فضای ابریزیاد شدن دستگاه‌های IoTتهدیدهای پیچیده و حملات داخلیاین شرایط باعث شده مرز بین داخل و خارج شبکه دیگه وجود نداشته باشه و مدل قدیمی امنیتی دیگه جوابگو نباشه. دقیقا اینجاست که Zero Trust Security وارد میشه.🔎 Zero Trust دقیقاً چیه؟مدل اعتماد صفر می‌گوید:«هیچ کاربر، دستگاه یا اپلیکیشنی — چه داخل شبکه چه خارج — نباید پیش‌فرض قابل اعتماد باشد.»هر درخواست دسترسی باید تأیید و اعتبارسنجی شود؛ هر کاربر فقط به منابعی که واقعاً لازم دارد دسترسی دارد.🛠️ اصول کلیدی Zero Trust:1️⃣ تأیید مداوم هویت (Continuous Verification)هر بار که کاربر یا دستگاه می خواد به منبعی دسترسی داشته باشه، هویت و سلامت اون بررسی میشه. MFA، احراز هویت بیومتریک و اعتبارسنجی مداوم نقش کلیدی دارن.2️⃣ کمترین دسترسی (Least Privilege Access)هر کاربر یا سرویس فقط به منابع ضروری دسترسی داره. این کار باعث میشه در صورت نفوذ، مهاجم توانایی اینو نداشته باشه به بقیه منابع دسترسی پیدا کنه.3️⃣ میکرو-سگمنتیشن (Micro-Segmentation)شبکه به بخش‌های کوچک تقسیم می شه؛ در نتیجه، حتی اگه یه بخش هک بشه، مهاجم نمی تونه به راحتی به بقیه بخش‌ها حرکت کنه.4️⃣ مانیتورینگ و تحلیل رفتار (Continuous Monitoring)همه درخواست‌ها، ترافیک‌ها و رفتارها دائماً زیر نظر هستن. لاگ‌گیری و آنالیز بلادرنگ کمک می‌کنه تهدیدها سریع شناسایی بشن.5️⃣ ارزیابی مستمر دستگاه‌ها (Device Posture Assessment)حتی اگه کاربر تأیید شده باشه، وضعیت دستگاهش (به‌روز بودن سیستم‌عامل، آنتی‌ویروس، سطح امنیت) هم بررسی می‌شه.🌟 مزیت‌های Zero Trust Security:کاهش چشمگیر خطر نفوذ داخلیمحدود کردن حرکت مهاجم در شبکهبهتر شدن پاسخ‌گویی به حوادث و افزایش شفافیتکنترل بهتر روی داده‌های حساس و رعایت الزامات قانونیامکان کار امن از هر نقطه (Remote Work)🚀 چطوری پیاده‌سازی رو شروع کنیم؟گام اول: شناسایی دارایی‌ها، کاربران و جریان داده‌هاگام دوم: اعمال احراز هویت چندمرحله‌ای (MFA) و حداقل دسترسیگام سوم: استفاده از میکرو-سگمنتیشن و کنترل دسترسی مبتنی بر نقشگام چهارم: نظارت مداوم و استفاده از SIEM و ابزارهای EDR/XDRگام پنجم: ارزیابی و بهبود مستمر💡 نتیجه‌گیری:Zero Trust Security فقط یه تکنولوژی نیست؛ یک تفکر و فرهنگ امنیتی جدیده. سازمان‌هایی که امروز به سمت این مدل حرکت می‌کنن، در آینده با تهدیدهای سایبری پیچیده آماده‌تر خواهند بود.پایانبرنامه نویس باشید و ازش لذت ببرید.میم جیم صاد</description>
                <category>MimJimSad</category>
                <author>MimJimSad</author>
                <pubDate>Tue, 23 Sep 2025 16:51:58 +0330</pubDate>
            </item>
                    <item>
                <title>۶ حمله مرورگر که باید آماده باشید!</title>
                <link>https://virgool.io/@mimjimsad/%DB%B6-%D8%AD%D9%85%D9%84%D9%87-%D9%85%D8%B1%D9%88%D8%B1%DA%AF%D8%B1-%DA%A9%D9%87-%D8%A8%D8%A7%DB%8C%D8%AF-%D8%A2%D9%85%D8%A7%D8%AF%D9%87-%D8%A8%D8%A7%D8%B4%DB%8C%D8%AF-hbovypgprkbn</link>
                <description>شاید کمتر کسی به خطراتی که امکان داره از طریق مرورگر اتفاق بیوفته توجهی کنه اما باید بدونیم که مرورگر ما می‌تونه بزرگ‌ترین دروازه برای مهاجمان باشه! پس بیاین این ۶ حمله رو جدی بگیریم:1️⃣ فیشینگ حساب‌ها و نشست‌ها: لینک‌ها و صفحات جعلی برای سرقت اطلاعات2️⃣ کپی و جای‌گذاری مخرب: اجرای دستورات خطرناک توسط کاربران فریب‌خورده3️⃣ فیشینگ رضایت (Consent Phishing): درخواست مجوزهای خطرناک برای دسترسی به داده‌ها4️⃣ Man-in-the-Browser (MitB): سرقت اطلاعات یا تغییر داده‌ها در مرورگر5️⃣ Cross-Site Scripting (XSS): تزریق اسکریپت‌های مخرب در سایت‌های معتبر6️⃣ DNS Rebinding: فریب مرورگر برای ارسال درخواست به سرورهای داخلی💡 چجوری محافظت کنیم؟مثل همیشه خیلیییییییی مهمه که کاربران رو آموزش بدیم و آگاهی رو بالا ببریم(این توی همه ی زمینه ها مهمه!)از افزونه‌ها و ابزارهای امنیتی مرورگر استفاده کنیممرورگرها را به‌درستی پیکربندی کنیم و جلوی اجرای اسکریپت‌های ناشناس رو بگیریممرورگر و سیستم‌ها را همیشه به‌روز نگه داریم(میدونم که نه اینترنت خوبی داریم نه حجم درست و حسابی نه حوصله!!! اما لازمه)📌 اگه دوست داشتین خبر رو کامل مطالعه کنید : The Hacker Newsپایانبرنامه نویس باشید و ازش لذت ببرید.میم جیم صادMimJimSad</description>
                <category>MimJimSad</category>
                <author>MimJimSad</author>
                <pubDate>Fri, 19 Sep 2025 16:03:29 +0330</pubDate>
            </item>
                    <item>
                <title>چطور هکرهای اخلاقی حرفه‌ای فکر می‌کنند: ۵ نکته‌ای که کمتر گفته می‌شود</title>
                <link>https://virgool.io/@mimjimsad/%DA%86%D8%B7%D9%88%D8%B1-%D9%87%DA%A9%D8%B1%D9%87%D8%A7%DB%8C-%D8%A7%D8%AE%D9%84%D8%A7%D9%82%DB%8C-%D8%AD%D8%B1%D9%81%D9%87-%D8%A7%DB%8C-%D9%81%DA%A9%D8%B1-%D9%85%DB%8C-%DA%A9%D9%86%D9%86%D8%AF-%DB%B5-%D9%86%DA%A9%D8%AA%D9%87-%D8%A7%DB%8C-%DA%A9%D9%87-%DA%A9%D9%85%D8%AA%D8%B1-%DA%AF%D9%81%D8%AA%D9%87-%D9%85%DB%8C-%D8%B4%D9%88%D8%AF-qomghacxt9og</link>
                <description>وقتی وارد دنیای هک اخلاقی شدم، خیلی زود فهمیدم که این حرفه فقط اجرای ابزارها یا نوشتن کد نیست. هک اخلاقی یعنی داشتن یه طرز فکر متفاوت نسبت به امنیت سیستم‌ها.اینم ۵ نکته کلیدی که تجربه‌ام در این چند سال کار به من آموخت:🧠 درک عمیق سیستم‌ها مهم‌تر از ابزارهاستحتی بهترین ابزارها بدون شناخت ساختار سیستم‌ها بی‌اثرند. همیشه قبل از تست، بفهمید «چرا» و «چطور» سیستم کار می‌کند.🔑 ساده‌ترین روش‌ها رو جدی بگیریددلیل بیشتر حملات پیچیده ضعف‌های ساده ست. اول با روش‌های پایه شروع کنید، بعد سراغ پیچیده‌ها برید.📑 مستندسازی، نه فقط فرم کاغذیثبت دقیق هر مرحله، ابزار استفاده‌شده و نتایج، تضمین می‌کنه که کشف‌های شما قابل استفاده و پیگیری باشن.🤝 اخلاق و مسئولیت همیشه اولویت دارههیچوقت بدون اجازه وارد سیستم نشید. رعایت اخلاق، پایه‌ی حرفه‌ای بودن و اعتبار شماست.📚 یادگیری پایان ندارهامنیت سایبری سریع تغییر می‌کنه. برای باقی موندن در سطح حرفه‌ای، باید دائماً به‌روز باشید و تمرین کنید.پایانبرنامه نویس باشید و ازش لذت ببرید.میم جیم صادMimJimSad</description>
                <category>MimJimSad</category>
                <author>MimJimSad</author>
                <pubDate>Fri, 12 Sep 2025 11:46:06 +0330</pubDate>
            </item>
                    <item>
                <title>هوش مصنوعی و تهدیدات سایبری واقعی</title>
                <link>https://virgool.io/@mimjimsad/%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-%D9%88-%D8%AA%D9%87%D8%AF%DB%8C%D8%AF%D8%A7%D8%AA-%D8%B3%D8%A7%DB%8C%D8%A8%D8%B1%DB%8C-%D9%88%D8%A7%D9%82%D8%B9%DB%8C-h6jh6pxjqqm3</link>
                <description> وقتی ابزارهای مفید خودشون به تهدید تبدیل میشن!چند روز پیش در Hacker News خبری منتشر شد که توجه زیادی رو جلب کرد: یه بدافزار با استفاده از Claude CLI، ابزاری برای تعامل با مدل‌های زبانی Anthropic، تونسته به فایل‌سیستم دسترسی پیدا کنه و اطلاعات حساس رو جمع‌آوری کنه. این خبر یادآوری مهمی داره : که ابزارهای AI، حتی وقتی برای بهره‌وری توسعه‌دهنده‌ها ساخته میشن، می‌تونن به ابزار حمله تبدیل بشن.یکم از جزئیات فنی بدافزاربدافزار با استفاده از Claude CLI به صورت خودکار فایل‌ها و پوشه‌های سیستم رو اسکن می‌کنه.اطلاعات جمع‌آوری شده شامل داده‌های محلی و احتمالا حساسه که می‌تونه برای سوءاستفاده‌های بعدی مورد استفاده قرار بگیره.استفاده همزمان از هوش مصنوعی و CLI باعث شده حمله سریع، هوشمند و هدفمند باشد و تشخیص اون با ابزارهای امنیتی سنتی دشوار بشه.این مدل سوءاستفاده، سطح حمله سنتی رو گسترش داده و نمونه‌ای از تهدیدات مدرنه که قبلا تصورش سخت بود.پیامد و ریسک‌هاش چه چیزهایی هستن؟سطح حمله جدید: ابزارهای AI بخشی از سطح حمله شدن و تیم‌های امنیتی باید تهدیدات جدید رو پیش‌بینی کنن.سرعت و پیچیدگی بالاتر حملات: حملات خودکار با AI سریع‌تر، دقیق‌تر و هدفمندتر شدن.ریسک سازمانی: هر شرکتی که از ابزارهای AI استفاده می‌کنه، در معرض تهدید قرار داره و باید سیاست‌ها و محافظت‌های امنیتی قوی داشته باشه.تأثیر بر اعتماد کاربران: سوءاستفاده از ابزارهای AI می‌تونه اعتماد کاربران به ابزارهای توسعه و خدمات دیجیتال رو کاهش بده.راهکار چیه؟محدودسازی دسترسی (Sandboxing): ابزارهای AI نباید به صورت نامحدود به فایل‌ها یا منابع حساس دسترسی داشته باشنن.مانیتورینگ و هشدار هوشمند: رفتار غیرمعمول ابزارها باید به سرعت شناسایی و تحلیل بشه.طراحی امن از ابتدا (Secure by Design): ابزارهای AI باید از همون اول طوری طراحی بشن که سوءاستفاده از اونها سخت و کم‌خطر باشه.آموزش و آگاهی تیم‌ها: توسعه‌دهنده ها و تیم‌های امنیتی باید با تهدیدات جدید آشنا باشن و روش‌های مقابله با اونها رو یادبگیرن.در آینده چه اتفاقی میوفته؟خب چیزی که مشخصه اینه که با رشد سریع AI، سطح تهدیدات امنیت سایبری پیچیده‌تر میشه. ابزارهایی که امروز مفیدن، فردا می‌تونن به ابزار حمله تبدیل بشن. پس، امنیت سایبری در عصر AI نیازمند نگرش پیشگیرانه، استفاده از ابزارهای مانیتورینگ پیشرفته و استانداردهای طراحی امنه.همچنین باید اشاره کرد که، سازمان‌ها باید یه تعادل دقیق بین بهره‌وری و امنیت برقرار کنن؛ استفاده از ابزارهای AI بدون محافظت مناسب، می‌تونه هزینه‌های سنگین و زیان‌های غیرقابل جبران ایجاد کنه.نظر شما؟بنظر شما با توجه به این پیشرفت ها، آینده امنیت سایبری در دنیای AI چه شکلی میشه؟آیا نیاز به استانداردهای جهانی برای ابزارهای AI داریم؟یا فقط کافیه که شرکت‌ها از همون اول مسئولیت‌پذیر باشن و سیاست‌های امنیتی محکمی اعمال کنن؟خلاصه اینکه :نمیشه شک کرد که هوش مصنوعی فرصت‌های بی‌نظیری ایجاد می‌کنه، اما تهدیدهای اون هم واقعی و جدیه. تیم‌های توسعه و امنیت باید همیشه یه قدم جلوتر از مهاجمان فکر کنن تا از AI به شکل امن و سازنده استفاده بشه.</description>
                <category>MimJimSad</category>
                <author>MimJimSad</author>
                <pubDate>Wed, 27 Aug 2025 18:14:52 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی چندتا سایت مفید برای علاقه مندان به دنیای هک و امنیت</title>
                <link>https://virgool.io/@mimjimsad/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%86%D9%86%D8%AF%D8%AA%D8%A7-%D8%B3%D8%A7%DB%8C%D8%AA-%D9%85%D9%81%DB%8C%D8%AF-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B9%D9%84%D8%A7%D9%82%D9%87-%D9%85%D9%86%D8%AF%D8%A7%D9%86-%D8%A8%D9%87-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D9%87%DA%A9-%D9%88-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-inzingc9c80t</link>
                <description>اگه به هک قانونی، امنیت شبکه یا کلاً هر چیزی که بوی امنیت سایبری بده علاقه دارین، خبر خوب اینه که اینترنت پر از منابع خوب برای یادگیریه. بعضی از این سایت‌ها کلی آموزش رایگان دارن، بعضیاشون تمرین عملی میدن و بعضیا هم جاییه برای پیدا کردن آدمای هم‌فکر خودت هستن. اینجا،  ۸ تا از بهترین سایت‌هایی که تو این حوزه هست رو  معرفی کنم.۱. SANS.orgقدیمی‌ها می‌گن &quot;هر کی از امنیت حرف بزنه، یه جایی اسم SANS رو میاره!&quot; این مؤسسه دوره‌های خیلی تخصصی داره و اگه دنبال حرفه‌ای شدن باشی، یکی از بهترین انتخاب‌هاست.۲. Cybrary.itیه جور کتابخونه آنلاین برای امنیت سایبریه. از دوره‌های مقدماتی گرفته تا پیشرفته، اینجا پیدا میشه.  خیلیاش هم رایگانن.۳. Bugcrowd.comاینجا می‌تونین باگ پیدا کنین، گزارش بدین و جایزه بگیرین! یه جور شکارچی باگ بودن که هم سرگرم‌کننده‌ست هم پول‌سازه.۴. OpenSecurityTraining.infoاین یکی برای دوست دارانه  آموزش‌های عمیق‌تره. مثلاً مهندسی معکوس یا اکسپلویت‌نویسی رو می‌تونین اینجا یاد بگیرین.۵. Offensive-Security.comاسم Kali Linux رو شنیدین؟(اگه نشنیدین هم چیزی رو از دست ندادین!! :)) همون لینوکس معروف هکر ها! خب، این سایت واسه همون شرکته. دوره‌های مثل OSCP که خیلی معروفه رو اینا بهتون آموزش میدن.۶. PentesterLab.comاینجا فقط دنیای تئوری نیست! میاین و توی سناریوهای واقعی تمرین تست نفوذ می‌کنین.۷. ECCouncil.orgاگه دنبال گواهینامه‌های رسمی هستین( نباشین ;)  ) ، EC-Council معروف‌ترینشه. مثلاً CEH رو که همه میشناسن همینا برگزار می‌کنن.۸. Hackerspaces.orgیه جور نقشهٔ جهانیه که نشون میده تو شهر یا کشور شما هکر‌اسپیس کجاست. هکر‌اسپیس یعنی جایی که آدمای باحال جمع میشن، یاد میگیرن، پروژه میزنن و ایده‌هاشونو به اشتراک میذارن.۹. Shodan.ioاین یکی بنظرم خاصه! شادان مثل گوگل نیست که سایت پیدا کنه، میره دنبال دستگاه‌ها و سرویس‌های وصل به اینترنت؛ از وب‌کم و روتر گرفته تا سیستم‌های صنعتی. خیلی‌ها ازش برای تست امنیت استفاده می‌کنن تا ببینن چی بیخودی به اینترنت وصله. البته استفاده بدون مجوز برای هک کردنشون غیرقانونیه!خلاصه اینکه:اگه امنیت سایبری رو جدی گرفتین، ترکیبی از این سایت‌ها می‌تونه براتون یه جادهٔ مستقیم به سمت حرفه‌ای شدن باشه. فقط یادتون باشه که این حوزه مثل باشگاه رفتنه؛ اگه فقط مقاله بخونین و تمرین نکنین، عضلات سایبری‌تون رشد نمی‌کنه!پایانبرنامه نویس باشید و ازش لذت ببرید :)محمد جواد صبرجومیم جیم صادMimJimSad</description>
                <category>MimJimSad</category>
                <author>MimJimSad</author>
                <pubDate>Mon, 11 Aug 2025 19:00:11 +0330</pubDate>
            </item>
                    <item>
                <title>تمرین Api چند نفر الان توی فضا هستند</title>
                <link>https://virgool.io/@mimjimsad/%D8%AA%D9%85%D8%B1%DB%8C%D9%86-api-%DA%86%D9%86%D8%AF-%D9%86%D9%81%D8%B1-%D8%A7%D9%84%D8%A7%D9%86-%D8%AA%D9%88%DB%8C-%D9%81%D8%B6%D8%A7-%D9%87%D8%B3%D8%AA%D9%86%D8%AF-lksl0gvzkoy8</link>
                <description>برای هر برنامه نویسی داشتن دانش در زمینه Api و Api Rest خیلی مهمه. واسه همین میخوایم با یه مثال کوچیک و بامزه یه Api رو استفاده کنیم که بهمون نشون میده در این لحظه چند نفر و چه کسانی در فضا هستند.اول از هرچیزی لینک api رو لازم داریم :http://api.open-notify.org/astros.jsonبعد باید شروع کنیم به کار با پایتون توی هر IDE که دوست داریم.بعد از ساخت فایل پایتونی شروع میکنیم به نوشتن کد:import json
import requests
url = &#039;http://api.open-notify.org/astros.json&#039;
response = requests.get(url)
print(response.status_code)اگر جواب response مساوی با ۲۰۰ شد یعنی تا اینجا ما به api دسترسی پیدا کردیم و همه چی خوبه و ادامه میدیم:data = response.json()
print(data){&#039;people&#039;: [{&#039;craft&#039;: &#039;ISS&#039;, &#039;name&#039;: &#039;Oleg Kononenko&#039;}, {&#039;craft&#039;: &#039;ISS&#039;, &#039;name&#039;: &#039;Nikolai Chub&#039;}, {&#039;craft&#039;: &#039;ISS&#039;, &#039;name&#039;: &#039;Tracy Caldwell Dyson&#039;}, {&#039;craft&#039;: &#039;ISS&#039;, &#039;name&#039;: &#039;Matthew Dominick&#039;}, {&#039;craft&#039;: &#039;ISS&#039;, &#039;name&#039;: &#039;Michael Barratt&#039;}, {&#039;craft&#039;: &#039;ISS&#039;, &#039;name&#039;: &#039;Jeanette Epps&#039;}, {&#039;craft&#039;: &#039;ISS&#039;, &#039;name&#039;: &#039;Alexander Grebenkin&#039;}, {&#039;craft&#039;: &#039;ISS&#039;, &#039;name&#039;: &#039;Butch Wilmore&#039;}, {&#039;craft&#039;: &#039;ISS&#039;, &#039;name&#039;: &#039;Sunita Williams&#039;}, {&#039;craft&#039;: &#039;Tiangong&#039;, &#039;name&#039;: &#039;Li Guangsu&#039;}, {&#039;craft&#039;: &#039;Tiangong&#039;, &#039;name&#039;: &#039;Li Cong&#039;}, {&#039;craft&#039;: &#039;Tiangong&#039;, &#039;name&#039;: &#039;Ye Guangfu&#039;}], &#039;number&#039;: 12, &#039;message&#039;: &#039;success&#039;}بعد از اجرای این خط میتونیم خروجی json رو مثل چیزی که در بالا می بینید شامل تعداد نفرات و اسامی و حتی اسم فضاپیما ها رو ببینیم اما به شکل json . ما از طریق people میتونیم به اطلاعات دسترسی داشتبه باشیم. از طریق name به اسامی. از طریق craft به اسم فضاپیما و از طریق number به تعداد نفرات. برای اینکه راحت تر خونده بشن کافیه ادامه بدیم :for json_response in data[&#039;people&#039;] :
        print(
              f&#039;Craft : {json_response[&quot;craft&quot;]} Name{json_response[&quot;name&quot;]}&#039;
)Craft:ISS ,Name: Oleg KononenkoCraft:ISS ,Name: Nikolai ChubCraft:ISS ,Name: Tracy Caldwell DysonCraft:ISS ,Name: Matthew DominickCraft:ISS ,Name: Michael BarrattCraft:ISS ,Name: Jeanette EppsCraft:ISS ,Name: Alexander GrebenkinCraft:ISS ,Name: Butch WilmoreCraft:ISS ,Name: Sunita WilliamsCraft:Tiangong ,Name: Li GuangsuCraft:Tiangong ,Name: Li CongCraft:Tiangong ,Name: Ye Guangfuاگه خروجی بالا رو دیدین بهتون تبریک میگم. شما الان هم تعداد اسامی و فضاپیما هایی که الان در فضا هستند رو میدونید هم اینکه یه تمرین Api انجام دادید.پایانبرنامه نویس باشید و ازش لذت ببرید :)محمد جواد صبرجومیم جیم صادMimJimSad</description>
                <category>MimJimSad</category>
                <author>MimJimSad</author>
                <pubDate>Fri, 25 Jul 2025 13:38:41 +0330</pubDate>
            </item>
                    <item>
                <title>تجربه‌های واقعی از دنیای هک اخلاقی: چیزهایی که کمتر گفته می‌شه</title>
                <link>https://virgool.io/@mimjimsad/%D8%AA%D8%AC%D8%B1%D8%A8%D9%87-%D9%87%D8%A7%DB%8C-%D9%88%D8%A7%D9%82%D8%B9%DB%8C-%D8%A7%D8%B2-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D9%87%DA%A9-%D8%A7%D8%AE%D9%84%D8%A7%D9%82%DB%8C-%DA%86%DB%8C%D8%B2%D9%87%D8%A7%DB%8C%DB%8C-%DA%A9%D9%87-%DA%A9%D9%85%D8%AA%D8%B1-%DA%AF%D9%81%D8%AA%D9%87-%D9%85%DB%8C-%D8%B4%D9%87-if1syq9iousy</link>
                <description>وقتی وارد دنیای هک اخلاقی شدم، خیلی زود فهمیدم که این کار صرفاً اجرای ابزارهای مختلف یا کد زدن نیست. هک اخلاقی یعنی یک طرز فکر و دیدگاه متفاوت نسبت به امنیت سیستم‌ها. اینجا چند نکته‌ای که طی سال‌ها تجربه به دست آوردم و معتقدم برای هر حرفه‌ای توی این حوزه ضروریه رو باهاتون به اشتراک می‌ذارم:1. درک عمیق سیستم‌ها بر ابزارها اولویت دارهخیلی‌ها فکر می‌کنن فقط داشتن ابزارهای پیشرفته و مدرن کافی‌ست، اما واقعیت اینه که بدون شناخت ساختار سیستم‌ها و پروتکل‌ها، حتی بهترین ابزارها هم کمکی نمی‌کنن. باید بدونی چی رو داری تست می‌کنی و چرا یه آسیب‌پذیری وجود داره.2. همیشه ساده‌ترین و پایه‌ای‌ترین روش‌ها رو جدی بگیرگاهی اوقات پیچیده‌ترین حملات از ساده‌ترین ضعف‌ها نشأت می‌گیرن. یه تست نفوذگر حرفه‌ای اول با روش‌های پایه شروع می‌کنه و بعد اگر لازم بود میره سراغ روش‌های پیچیده‌تر.3. مستندسازی، نه فقط یه فرم کاغذیهثبت دقیق هر مرحله از کار، ابزارهای استفاده‌شده، نتایج و پیشنهادات، کلید حفظ کیفیت و قابل پیگیری بودن گزارشاته. بدون مستندات درست، حتی بهترین کشف‌ها کاربردی نمی‌شن.4. اخلاق و مسئولیت همیشه بالاتر از هر چیزیههیچ وقت بدون اجازه وارد سیستمی نشو. این نه فقط قانونیه، بلکه پایه و اساس حرفه‌ای بودنته. رعایت اخلاق باعث می‌شه کار تو اعتبار پیدا کنه و جایگاهت مستحکم بمونه.5. مسیر یادگیری هیچ وقت تموم نمیشهدنیای امنیت سایبری خیلی سریع تغییر می‌کنه؛ تکنولوژی‌ها، حملات و ابزارها مدام به‌روزرسانی می‌شن. اگه می‌خوای حرفه‌ای بمونی، باید هر روز خودتو به‌روز کنی و از یادگیری دست نکشی.پایانبرنامه نویس باشید و ازش لذت ببرید :)محمد جواد صبرجوmimjimsad</description>
                <category>MimJimSad</category>
                <author>MimJimSad</author>
                <pubDate>Mon, 14 Jul 2025 17:46:27 +0330</pubDate>
            </item>
                    <item>
                <title>۱۲ قانون برای یادگیری برنامه‌نویسی</title>
                <link>https://virgool.io/@mimjimsad/%DB%B1%DB%B2-%D9%82%D8%A7%D9%86%D9%88%D9%86-%D8%A8%D8%B1%D8%A7%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-a3n6zmdkonkp</link>
                <description>۱۲ - کد های دیگران را بشکنید ( خرد کنید)یکی (دقت کنید یکیییی از) از مهم‌ترین کارهایی که باید برای تبدیل شدن از یه تازه‌کار به یه برنامه‌نویس حرفه‌ای انجام بدیم، اینه که یاد بگیریم چجوری کمک بگیریم. همه به کمک نیاز دارن(اصلا هم خجالت نداره)، حتی اونایی که بهشون میگن &quot;خدای برنامه‌نویسی&quot;!اما کمک گرفتن فقط یه سمت قضیه ست و  اینکه چطور از این کمک استفاده کنیم، سرعت پیشرفتت ما رو تعیین می‌کنه. توی سایت‌هایی مثل Stack Overflow، ممکنه خیلی وسوسه بشیم که کدی رو که یکی برامون گذاشته، کپی کنیم و مستقیم استفاده کنیم(حتما بعدشم بگیم خب کار میکنه و دیگه بهش دست نزنیم). برنامه‌ ما هم دقیقاً همونجوری که می‌خواستیم اجرا می‌شه و خوشحال به کار خودمون ادامه می‌دیم(گفتم دیگه!).اما این کار فقط وفقط باعث می‌شه به کدهای دیگران وابسته بشیم، بدون اینکه چیزی یاد بگیریم! دفعه‌ی بعد که یه مشکل مشابه ولی در شرایطی متفاوت پیش بیاد، همون کدی که قبلاً کار می‌کرد، ممکنه دیگه جواب نده(و طبق تجربه قطعا جواب نمیده!). اون موقع چی؟ گیر می‌کنیم!واسه همین یه قانون مهم توی برنامه‌نویسی وجود داره که می‌گه: &quot;هیچ‌وقت کدی رو که نمی‌فهمی، کپی نکن!&quot;پس وقتی با یه تکه کد روبه‌رو می‌شیم که مشکلمون رو حل می‌کنه ولی نمی‌دونیم چطور کار می‌کنه، بهترین کار اینه که خُردش کنیم و قسمت‌به‌قسمت تحلیلش کنیم تا بفهمیمش. چطور یه تکه کد رو واقعاً یاد بگیریم؟مرحله ۱:کد رو توی برنامه‌ مون کپی کنیم. (بله، بله، می‌دونم که گفتم این کار رو نکنیم، ولی صبر داشته باش!)مرحله ۲:مطمئن بشیم که برنامه یا اپلیکیشن ما همون‌جوری که انتظار داشتیم کار می‌کنه. یعنی بررسی کنیم که واقعاً اون تکه کد مشکلمون رو حل کرده یا نه.مرحله ۳:حالا خط به خط اون کد رو حذف کنیم(تنبل نباشیم!).مرحله ۴:بعد از پاک کردن هر خط، ببینیم چی خراب شده. برنامه هنوز اجرا می‌شه؟ چه ارورهایی می‌گیریم؟ حذف اون خط چه تأثیری روی عملکرد برنامه داشته؟(اگه حوصله این کارها رو ندارین انتخاب یه شغل یا مهارت دیگه میتونه مفید تر باشه!)مرحله ۵:حتی اگه فکر می‌کنیم می‌دونیم یه خط از کد چه کاری انجام می‌ده، بازم حذفش کنیم! مهم‌ترین مهارت یه برنامه‌نویس اینه که همیشه فرضیاتش رو تست کنه. چون بهترین حس دنیا وقتیه که واقعیت تأییدت کنه!می‌دونی وقتی /پارتنر /همسر/هر کسی که برات مهمه، اون سه کلمه‌ی جادویی رو می‌گه چه حسی داره؟ &quot;حق با تو بود!&quot;برنامه‌نویسی هم همینه،  حتی شاید بهتر!مرحله ۶:چند خط از کد رو جابه‌جا کنیم. آیا می‌تونیم همون عملکرد رو با ترتیب متفاوتی از خطوط به دست بیاریم؟ چرا این خطوط به این ترتیب نوشته شدن؟با شکستن کد راه‌حل، خط به خط، می‌فهمیم که هر خط دقیقاً چه کاری انجام می‌ده و چرا به این شکل نوشته شده. این روش خیلی بهتر از اینه که کد رو فقط کپی کنیم و امیدوار باشیم که درست کار کنه.وقتی بفهمیم چرا هر کدوم از این خطوط ضروری بودن، دفعه بعد که با مشکل مشابهی روبه‌رو بشیم، می‌تونیم خودمون مشکل رو پیدا کنیم و حلش کنیم. بعد از اینکه توی شکستن کدهای Stack Overflow استاد شدیم، مرحله بعدی اینه که بریم سراغ GitHubگیت هاب ابزاریه که برنامه‌نویسا برای همکاری استفاده می‌کنن، ولی در عین حال یکی از بزرگ‌ترین مخازن کدهای متن‌باز هست.پس چطور می‌تونیم از GitHub برای بهتر شدن استفاده کنیم؟ فرض کنیم می‌خوایم یه کلون اینستاگرام بسازیم، ولی متاسفانه نمی‌دونیم چطور این کار رو انجام بدیم. پس میریم سراغ github.com و سرچ می‌کنیم &quot;Instagram&quot; یا &quot;photo app&quot;. قطعا، یه چیزی به زبان‌های Swift/Objective-C/Java پیدا می‌کنیم که می‌تونیم دانلود کنیم و نگاهی بهش بندازیم.به ساختار برنامه‌شون فکر کنیم(برنامه نویسی همینه: فکر و فکر و بازم فکر). همه‌ی کلاس‌ها، ثابت‌ها، تعاملات بین بخش‌ها رو بررسی کنیم. بهتره کمی تغییرات توی کد ایجاد کنیم. آیا هنوز کار می‌کنه یا خرابش کردیم؟ چرا خرابش کردیم؟(از خراب کردن نترسیم!) آیا لینکی هست که نتونستیم شناسایی کنیم؟ از خودمون سوال های زیادی بپرسم، با روش سقراطی( اینو دیگه برید سرچ کنید) یاد بگیریم. پروژه رو باز کنیم و بفهمیم چطور ساخته شده.خب وقتی این کار رو خوب یاد گرفتیم، مرحله بعدی می‌تونه مهندسی معکوس باشه.اینجوریه که یه پروژه کوچیک توی GitHub پیدا کنیم که توسط یه برنامه‌نویس معتبر ساخته شده، اپلیکیشن رو دانلود کنیم. اجراش کنیم و تمام قابلیت‌هاش رو بررسی کنیم. باهاش بازی کنیم.بعد از صفر بسازیمش و وقتی تموم شد، کد خودمون رو با کد اون‌ها مقایسه کنیم(اینجاست که تجربه معنیش اشکار میشه). آیا می‌تونستیم بهره‌وری بیشتری داشته باشیم؟ آیا راه‌حل‌هایی پیدا کردیم که قبلاً نتونسته بودیم؟تبریک میگم : حالا داری وارد لیگ‌های بزرگ‌تر می‌شی!پایانبرنامه نویس باشید و ازش لذت ببرید :)نویسنده : Dr. Angela Yuبرداشت آزاد و ترجمه : محمد جواد صبرجو</description>
                <category>MimJimSad</category>
                <author>MimJimSad</author>
                <pubDate>Tue, 25 Mar 2025 19:32:32 +0330</pubDate>
            </item>
            </channel>
</rss>