<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های محمدرضا سخایی</title>
        <link>https://virgool.io/feed/@righter</link>
        <description>اگه بار اولیه که تو زندگیت تِر زدی ناراحت نشو، اسمشو بزار ورژن 1.0</description>
        <language>fa</language>
        <pubDate>2026-04-14 08:58:58</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/86470/avatar/hoxHfH.jpg?height=120&amp;width=120</url>
            <title>محمدرضا سخایی</title>
            <link>https://virgool.io/@righter</link>
        </image>

                    <item>
                <title>چرا نیروهای دیجیتال ایرانی، زودتر از دیگران میمیرند؟</title>
                <link>https://virgool.io/@righter/%DA%86%D8%B1%D8%A7-%D9%86%DB%8C%D8%B1%D9%88%D9%87%D8%A7%DB%8C-%D8%AF%DB%8C%D8%AC%DB%8C%D8%AA%D8%A7%D9%84-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86%DB%8C-%D8%B2%D9%88%D8%AF%D8%AA%D8%B1-%D8%A7%D8%B2-%D8%AF%DB%8C%DA%AF%D8%B1%D8%A7%D9%86-%D9%85%DB%8C%D9%85%DB%8C%D8%B1%D9%86%D8%AF-lesidigkz8ys</link>
                <description>با خودت فکر می‌کنی از جنگ دوازده‌روزه و اتفاقات بعدش رد شدی..از تعدیل، بیکاری، ترس و تروماهاش. فکر میکنی حالا میشه برا چند ماه، لااقل پاتو بزاری روی یه زمین سفت تر. ولی هنوز اصل ماجرا رو ندیدی.خیال میکنی &quot;جنگ تموم شد و همه چی برمیگرده به حالت قبل&quot; به خودت میگی &quot;به من چه حاجی.. سرم باید تو کار خودم باشه&quot;اصلا فرض بگیر آدمی هستی که مثل اسب به احساساتش مسلطه. منطقیه. متمرکزه. بی تفاوته. اصلا نه تورم دلار و طلا تکونش میده نه قیمت مرغ و تخم مرغ. نه کم شدن حقوق براش مهمه نه اینکه نسبت به هم صنف های دیگه ش تو جهان، چقدر بی ارزشتر شده. نه اخبار میفهمی نه سیاست، کله ت همیشه خالیه و تازه، اصلا هم به این فکر نکردی که یه هیولایی مثل هوش مصنوعی داره مثل جاروبرقی از رو بازار کارت رد میشه و مثل بولدوزر از روی خودت.اصلا تو یه نِرد بی آزاری، که فقط میخواد سرش تو کار خودش باشه. تو کار زندگیش.+ تموم شد؟ خیلی تأثیرگذار بود. - نه .. هنوز خیلی مونده.قبلا منتهای تو مخیت این بود که چرا اینترنت کنده و چرا همه ش قطع و وصل میشه این نت و VPN . اما این بار با سی روز قطعی اینترنت، وارد دنیای تازه ای میشی. یه سطح جدیدی از رفاه. از حق شهروندی. و تازه، اگه تو همه این سی روز هنوز زنده موندی، اگه هنوز از نظر فیزیکی میتونی کار کنی، اگه نمیخواهی نسبت به چیزی که دور و برت میگذره سوگواری کنی و واکنش نشون بدی، بازم از نظر روانی باید کلی چیز جدید تجربه کنی.نه. این یه قطع شدن عادی نیست. این یه قطعی بدون اعلام قبلیه. یه جور امید الکی هرروزه به وصل دوباره. شنبه ، یکشنبه ، دوشنبه، آخر همین هفته. آخر هفته بعد. پس کی وصل میشه؟ گاهی از اینکه یه VPN ساده پیدا میکردی خوشحال بودی. مثل یه بچه ذوق میکرد. آخ جون الان 3 ساعته که وصله. ولی شب، همونم میپرید. یه وقتایی رو یه اپراتور وصل بود و رو یکی دیگه نه. گاهی تو شرکت وصل بود، تو خونه نه.گاهی رو نت موبایل وصل بود، رو وای فای نه. و گاهی رو یه کشور وصل بود و رو یه کشور دیگه نه. اصلا روی هیچ کشوری. و در تمام این لحظه ها، این تو هستی که داری بین سرویسها، پینگها و کانکشنها مدام آزمون و خطا میکنی. تا جایی که ناخواسته به یه مهندس تست VPN تبدیل شی. کاش لااقل میدونستی این وضعیت قراره &quot;دقیقا&quot; چندروز طول بکشه. کاش میتونستی بدون این همه امید موهوم، آروم یه گوشه بشینی و منتظر روز موعود بمونی. کاش خودت رو انقدر به در و دیوار نمیزدی. ولی کی میدونه، شاید این عذاب، این ناامیدی کش دار، این کلنجارهای بی پایان، دقیقا همون چیزیه که برات طراحی شده . به قول دوستمون : کسی چه می‌داند،شاید این جهان، جهنم جهانی دیگر باشد. فرانتس کافکااگه تو شرکت دولتی با پشتوانه مالی قوی کار میکنی، شاید اوضاعت بهتره. لااقل مطمئنی حقوقت رو سرماه میگیری. یکی از همین شرکتهایی که احتمالا مستقیم یا غیرمستقیم با این اتفاقات، با همین قطع و وصلهایی که داری حرصشو میخوریه در ارتباطه. شاید هم ازش سود میبره. ولی اگه موقع انتخاب شغل به این چیزا حساس بودی، اگه خواستی کارت رو به نوعی به شرافت خودت گره بزنی، و در یه بخش مستقل و آزاد فعالیت کنی، بازی همون بازیه. ولی با درجه سختی بیشتر. بعد از یک ماه، یا شاید بیشتر، اینترنت دوباره «عادی» میشه. به خودت میگی امید داشته باش. صبر. ولی اخبار ... هر روز یک خبر سوگوارانه تازه به چشمت میخوره. یادت میفته که باید از حقیقت فرار کنی، ولی یه دوست، یه پیام، یه ویدئوی ارسالی، دوباره پرتت میکنه ته همون گودال. نگاه نمیکنی. زور میزنی. به پیامهات جواب نمیدی. میخای «عادی» باشی و به روزهای عادی برگردی، ولی این بار اخبار جنگ میان: اصابت موشک، نزدیکی ناو جنگی، مذاکره، تحریم، انرژی هسته‌ای،بمب هسته‌ای. خدایا اون بیرون چه خبره؟ اصن کسی هست که به بدبختی منم فکر کنه؟ یا لااقل اندازه یه سر سوزن حمایت کنه؟سایت‌ها که یکی‌یکی توسط گوگل جریمه میشن. رتبه‌ها سقوط میکنن. کانالهای یوتیوب دیگه دیده نمیشن. درآمدها برنمیگردن. پیجهای اینستاگرامی دیگه بازخورد سابقو ندارن. نه اینسایت دارن نه امنیت و تازه اگر هم بخان دوباره کارو شروغ کنن، خشم عمومی نمیزاره.و تازه سرویسهایی هم که قبلا تو حالت عادی، به یوزرهای ایرانی اجازه ورود نمیدادند، بیشتر و بیشتر میشن. هرروز به بهانه تحریم، از ثبت نام یا ادامه فعالیت محرومت میکنند. بهت برچسب تروریست میزنن. هم از داخل جریمه شدی، هم از خارج. اونم به خاطر چیزهایی که هیچوقت نقشی در اونها نداشتی.اما اون بیرون، دنیا به زرق‌وبرق خودش ادامه میده.در انتظار گرمی، گلدن گلوب، اسکار. ستاره‌ها روی فرش‌های قرمز لبخند میزنن ،دست تکون میدن، با آرایش‌های غلیظ و ژست‌های مصنوعی قهقهه میزنند و گاهی هم برای نمایش انسانیتی که تو ذهنشون دارن، چفیه ای به گردن میندازن و هشتگ درست میکنند برای کشورهایی که تو هرگز جایی درون شون نداری. نداشتی سازمان ملل، یونیسف و باقی سازمان‌ها هم طبق معمول اظهار تأسف میکنن. اظهار نگرانی. اظهار ترس. و کلی اظهار بی‌خاصیت دیگه.و تو می‌مونی و این سؤال ساده: واقعاً کجای این دنیا وایسادم؟ این رنج ها چه معنی ای دارن؟ و اصلا چقدر به این دنیا بدهکارم که باید این روزها رو تحمل کنم؟یاد فیلم هانکه میفتم. یاد  Funny Games و اون همه اتفاقای پی در پی و بدون توضیحی که برای اون خانواده می‌افتاد. یاد پایانش. اونجا که وقتی فکر می‌کنی همه‌چی تموم شده،  اون پسرِ مریض برمیگرده رو به دوربین و به تو لبخند میزنه.Do you want to see how it ends?بگذریم.راستی، این متن رو هم یک برنامه‌نویس ایرانی نوشته. یکی شبیه باقی تولیدای ایرانی. یخچال ایرانی، گاز ایرانی، تلویزیون ایرانی، خودروی ایرانی و ... </description>
                <category>محمدرضا سخایی</category>
                <author>محمدرضا سخایی</author>
                <pubDate>Sat, 21 Feb 2026 14:41:05 +0330</pubDate>
            </item>
                    <item>
                <title>چیکار کنم که برنامه نویس بدی باشم؟</title>
                <link>https://virgool.io/@righter/%DA%86%DB%8C%DA%A9%D8%A7%D8%B1-%DA%A9%D9%86%D9%85-%DA%A9%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D8%A8%D8%AF%DB%8C-%D8%A8%D8%A7%D8%B4%D9%85-yr682vt3miri</link>
                <description>از اونجایی که نصف ملت همه ش عادت دارن به خوردمون بدن که چیکار کنیم تا تو فلان زمینه خوب باشیم، قوی باشیم، چطوری به موفقیت برسیم و همه اینا، من این دفعه وارد تاپیک مورد علاقه خودم شدم تا بگم : چیکار کنیم که بتونیم برنامه نویس بدی باشیم؟به عنوان یه برنامه نویس بد که کلی تجربه مختلف تو بد بودن داره و برای بد بودن تلاش روزانه و مستمری داره، سعی دارم اینجا چندتا از رموز موفقیتم رو به طور خلاصه و تیتروار تقدیمتون کنم.به این امید که هر چه زودتر بتونید وارد انجمن مخفی ما یعنی : تیم برنامه نویس های مزخرف بشید و بعد از یه مدت، این عادتها  تبدیل به روتین های روزانه برنامه نویسی تون بشه.هیچ وقت دنبال یادگیری الگوریتمها، ساختمان داده و مباحث پایه ای نباش :اگه تو هم مثل من حوصله نداری کتابهای پایه ای و اساسی این رشته رو بخونی بهت تبریک میگم. تو میتونی خیلی زود بری سراغ مورد بعدی. واقعاً چه کاریه که آدم بشینه الگوریتم های مختلف رو درک کنه؟ که مثلا توی پروژه های بزرگ و مشکلات performance ی کمکمون کنه؟ یا مثلا ذهنمون رو به یه مرحله بالاتر ببره؟ که بتونیم خودمون از رو یه برنامه نویس بد به یه مهندس نرم افزار تبدیل کنیم که قادره بهینه ترین روشها و پیچیدگی های زمانی رو ارائه بده؟ مسخره نیست آخه خدایی؟ چه کاریه.. نشستم دارم کدم رو میزنم، حالا یه وقت هم گیر کردیم، میزنیم میره، نشد سرچ میکنم. کی این وسط به سرعت برنامه و الگوریتم من کار داره؟ مگه میخام برم تو مصاحبه استخدامی گوگل شرکت کنم؟ والا ...هیچ لازم نیست چیزی که بلد نیستی رو سرچ کنیاین یه مورد رو واقعا دوست دارم، یه انسان قوی، هیچ وقت بی سوادیش رو جار نمیزنه. واقعاً سرچ کردن اونقدرا هم که فکر میکنی چیز مهمی نیست. بالاخره خدا بزرگه. حالا چه کاریه که من برم مهارتهای نگارشی و زبان انگلیسی مو تقویت کنم که سرچ کردنم قوی تر شه؟ یا مگه عقلم کمه که برم دوره های prompting رو یاد بگیرم که توی تعاملم با هوش مصنوعی و باقی ابزارهای جدید کمک کنه؟ یا بیشتر از همه اینها، چه فرقی میکنه که من راه حل مشکلمو بعد یه ساعت پیدا کنم یا یه هفته؟ میگن همه اینا رو با تقویت مهارت های جستجو میشه حل کرد ولی کی باور میکنه؟ هیچ کساگه یه جا ایرادی دیدی که مربوط به تو نیست، راحت از روش رد شواین تیتر رو یه بار دیگه بخون، چون خیلی مهمه. اصلا چه ربطی به من داره که برم خطای یکی دیگه رو درست کنم؟ من همینطوریش، همین که نشستم سرجام و دارم به این شرکت / تیم / پروژه خدمت میکنم خودش پاداش بهشتی داره، دیگه چه کاریه که برم خطاهای نفرات قبلی رو هم رفع کنم؟ این سوسول بازیا دیگه چیه؟ که مثلا کدها خواناتر بشه؟ ایرادات احتمالی بعدی برطرف شه؟ یا چی؟که عادت کنم همیشه برای بهتر کردن کدهام و تمیز و درست بودنشون تلاش کنم؟ بیخیال… قوی باشید. سفت باشید و خیلی حرفه ای خطاهارو بپیچونید.بزار کدهای کثیف و شلوغ قبلی ت انقد رو هم بمونن که بوی گند بگیرنمن عاشق آدمهای کثیف و شلخته م . اگه تو آدمی هستی که توی زندگی شخصی ش هم عادت داره همیشه شلوغ و شلخته باشه و همه چی رو لای هم بچاپونه بهت تبریک میگم. تو این عادت رو براحتی میتونی توی سبک کدنویسی ت هم پیاده کنی.فقط کافیه همیشه اولین راه حلی که به ذهنت میرسه رو کد بزنی و بعد هم بری سراغ تسکهای بعدی. حالا که کسی قرار نیست تو رو ارزیابی کنه یا برات code review بنویسه. چه کاریه که من بخوام تلاش اضافی بکنم؟ مگه قراره بهم اضافه حقوق یا پاداش بدن؟ کدهارو مینویسیم و میریم جلو، فعلا هم که برنامه داره سالم و بدون ایراد کار میکنه، حالا هروقت، اگه یه درصد، یه درصد یه خطایی این وسط بود، میریم وسط اون شلوغیا بالاخره یه جوری مشکلو حل میکنیم. قبلا هم گفتم، خدا بزرگه.یاد بگیر همیشه تسک های مهم رو دیرتر انجام بدی و تسکهای بی اهمیت و کوچیک رو زودتراگه تا اینجا این مطلبو خوندی، متوجه شدی که فلسفه ما توی ساده سازیه. ساده گرفتن همه تسکها، پروژه ها و کارهایی که رو دوشت انداختن. به این فکر کن که مگه چقد زنده ای؟ اصن چرا باید به خودت سختی بدی؟ حرفم اینه که یاد بگیر همیشه کارهای ساده و بی اهمیت رو اول وقت انجام بدی و بزاریش تو اولویتت و کارهایی که پیچیده تر و ترسناک تر به نظر میرسن بندازی اون ته صف. بزار عقب بیفتن. دنبال تحلیل کردن و فکر کردن به راه حل های بزرگ نباش. شاید اصن بعد از گذشت چندروز همه یادشون بره که یه همچین تسکی قرار بود کد زده بشه. نه؟ یه بار امتحان کن و حالشو ببر. بعد هم از نظر علمی ثابت شده که به تعویق انداختن تسکها دوپامین آزاد میکنه :) دیگه چی بهتر از این میخوای؟همه چی رو از روز اول بلد باشیه برنامه نویس بد، هیچوقت برای تقویت مهارتهاش تلاشی نمیکنه. اصلا این جمله سرلوحه زندگیشه. اینکه بگه من هرروز یه بخشی از زمان روزانه مو میزارم برای یادگیری مباحث اساسی و لول آپ کردن خودم یه حرف پوچ و شعاریه. باید اینطوری بگه که : &quot;من توی همین شرکت هستم و حالا حالاها هم جام سفته و کسی هم که ازم چیز بیشتری نمیخواد. میتونم با خیال راحت کارمو انجام بدم. تازه ازم راضی هم هستن. اگر هم نباشن، به جهنم. مگه چقدر حقوق میگیرم که بخوام خودمو تقویت هم بکنم؟ یا اصلا چقدر وقت آزاد دارم که بخوام برای یادگیری برنامه نویسی خرجش کنم؟ من همینجوریش همه چی رو بلدم. از روز اول هم بلد بودم.&quot;پس اگه این صداها تو کله ت وول میخوره و تکرار میشه ، معنیش اینه که باهم توی یه نقطه ایم و میتونیم بریم سراغ مورد بعدی.یاد بگیر همیشه کارهای نفر قبلی یا هم تیمی هاتو بی اهمیت نشون بدیبه به. اصلا اگه بخوام بهت بهترین رازمو بگم، همین یه جمله س. اینکه همیشه وقتی به یه پروژه جدید میخوری، بلد باشی خوب آدمایی که قبل از تو روی اون پروژه کار کردن رو بکوبی. تخریبشون کنی. خلاصه هرچی ایراد داشته و نداشته هست ازشون بگیری و بگی : این کدها که اصلا به درد نمیخوره. اگه من بخوام کار کنم باید همه چی رو از اول بزنم. تنها راهمون همینه.یعنی : یه جوری رفتار کنی که انگار تو تنها کسی هستی که میتونی اون شرکت یا پروژه رو نجات بدی و مثل اسکندر اومدی همه جارو به آتیش بکشی و امپراطوری خودتو راه بندازی. وقتی به مرور تمرین کنی و یاد بگیری که کار قبلی دیگران، یا چه بسا هم تیمی هاتو بی اهمیت نشون بدی، خودت مهم میشی و دیگران بهت توجه بیشتری نشون میدن. بد میگم؟پس به جای تلاش برای &quot;اصلاح&quot; یه پروژه و بهینه کردن کدهای قدیمی، سعی کن همه چی رو &quot;بکوبی و از نو شروع کنی&quot;میدونم این موارد میتونن خیلی بیشتر از این بشن. من اما گزینه های اساسی رو گفتم. اگه همینارو تمرین کنی و توی خودت جا بندازی، به مرور کلی عادتِ بدِ جدیدِ دیگه هم بهت اضافه میشه که میتونه به موفقیتت بیشتر کمک کنه و تو رو جلو بندازه.و مثل همیشه، اگه تو هم ایده جدید یا تجربه مشابهی داری ممنون میشم به من بگی تا به این لیست اضافه کنیم</description>
                <category>محمدرضا سخایی</category>
                <author>محمدرضا سخایی</author>
                <pubDate>Sun, 27 Oct 2024 22:12:00 +0330</pubDate>
            </item>
                    <item>
                <title>چرا دورکاری برای یه برنامه نویس بده؟</title>
                <link>https://virgool.io/@righter/%DA%86%D8%B1%D8%A7-%D8%AF%D9%88%D8%B1%DA%A9%D8%A7%D8%B1%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%DB%8C%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D8%A8%D8%AF%D9%87-qvkeqpuflzej</link>
                <description>اگه احساس کردی که مقاله قبلی (با عنوان چرا دورکاری خوبه) تو رو ترغیب کرده که زودتر کار و دفتر و شغلت رو که سر و شکل حضوری داره ول کنی و بری سراغ دورکاری، حالا میخوام با این یکی مقاله حرفامو پس بگیرم 😶 حقیقتش، دور کاری هم مثل هر چیز دیگه ای هم نکته مثبت داره هم منفی. اگه مواردی که سری قبلی گفتیم موارد مثبتش باشه، این بار میخام به نکات منفیش اشاره کنم.چیزایی که بعد از مدت زمان زیادی از این سبک کار کردن، توی شخصیت و رفتار و روحیاتم به وجود اومد و ذکرشون خالی از لطف نیست.پس بریم ببینیم چرا دورکاری اونقدرا هم خوب نیست؟ارتباطات واقعی تو کمتر میشهخیلی از موقعیت های کاری از دیدن و ارتباطات واقعی بین آدما شکل میگیره.اگه به این جمله اعتقاد داری، پس احتمالا میتونی تمام مشکلات بعدی ای که از دل این جور کار کردن به وجود میاد رو پیش بینی کنی.به طور خیلی خلاصه، وقتی که توی خونه یا دور از یه محیط کار واقعی کار کنی، احتمالا بیشتر وقتا تنها هستی. پس آدمایی که میتونن برات موقعیت های جدید به وجود بیارن رو نمیبینی. باهاشون حرف نمیزنی و همین ممکنه باعث شه تو خیلی از موقعیت های به ظاهر ناچیزی که بعداً کلید ورودت به شرکتهای بزرگتر یا شغلهای تازه بشن رو از دست بدیهمین نبود ارتباطات، ممکنه از نظر اجتماعی تو رو ضعیف کنه. روی روحیه ت تأثیر بزاره و خیلی از حس و حالهای خوبی که از دیدن آدما به دست میاد رو توی وجودت از بین ببره. شاید این موضوع تو ماههای اول خیلی به چشم نیاد، اما نباید فراموش کنیم که آدمیزاد ذاتا یه موجود اجتماعیه و نیاز داره توی جمع قرار بگیره. پس باید این نکته رو خوب توی خودت مدیریت کنی و اجازه ندی دورکاری از تو یه شخصیت منزوی، تنها یا گوشه گیر بسازه که دیگه حوصله ی خودش رو هم نداره. از طرفی باید برای ساختن ارتباطات جدید تلاش بیشتری کنی و دنبال روش های دیگه باشی : مثلا حضور تو محیط های کار اشتراکی، رفتن توی سمینارها و همایشهای مرتبط با کارت و لینک سازی یا عضو شدن توی کانالها و گروه هایی که دارن روی زمینه ها و پروژه های مشترک با تو کار میکنن.درحالی که توی کار حضوری، خیلی از این ارتباطات به صورت ناخودآگاه و هموارتری شکل میگیره.امکانات محیط کاری ت رو باید خودت فراهم کنی :محیط کاری خوب با همه امکاناتش ، اولین چیزیه که باید برای خودت راه بندازی. خوب یعنی چی؟ یعنی جایی که آروم باشه، تمرکزت رو بهم نزنه، خبری از عوامل حواس پرت کن توش نباشه و اینترنت، میز، صندلی و همه چیزای ضروری رو داشته باشه. اگه فکر میکنی با کار کردن توی اتاق خوابت، وسط یه خونه شلوغ میتونی با این قضیه کنار بیای، سخت در اشتباهی.به این فکر کن که ممکنه یهو مجبور شی بری تو یه جلسه آنلاین و دور و برت کلی سر و صداس. نت داغونه و سیستمت هم انقد سنگین شده که داره زیر بار فشار اون همه برنامه میزاد. پس، پیش از اینکه توی یه همچین موقعیت هایی گند بزنی، باید همه چی رو براش مهیا کنی. چرا که ممکنه با یکی دوبار اشتباه اینطوری، شغلت رو از دست بدی. به خصوص وقتی بدونی آدمایی که بهت کار میدن و تو رو به عنوان یه برنامه نویس دورکار استخدام کردن، انتظار دارن اکثر اوقات در دسترس شون باشی و مشکلات دم دستی اینطوری نداشته باشی.وقتی به یه مشکل میخوری، باید سراغ راه حل های جدیدتر بری :خیلی وقتا، خیلی از باگ هایی که توی کدها بهش برمیخوریم، با چارتا سوال و جواب و نشون دادن کد به یه همکار دیگه حل میشه. خیلی وقتا چند دقیقه گپ زدن با یه رفیق میتونه کلی ذهنت رو از بن بستی که توش گرفتاری نجات بده و همه اینا از دل کار کردن توی یه محیط جمعی به دست میاد. میدونم که شاید بگی، خب تو حالت دورکاری هم میتونم کدم رو بفرستم تا دوستم ببینه یا باهاش call کنم، اما واقعیت اینه که ما اساساً توی ناخودآگاهمون، وقتی آدمایی رو کنارمون میبینیم حس امنیت بیشتری داریم و مغزمون بیشتر تمایل به کمک گرفتن رو از خودش نشون میده، درحالیکه دورکاری، خیلی وقتا تو رو توی تنهایی ت مچاله میکنه و بعد از نیم ساعت سرچ بیهوده، یه دفعه به خودت میای و میگی عجب گیری کردم. برای همین به عنوان یه برنامه نویس دورکار، باید استقلال بیشتری رو برای خودت به وجود بیاری و اونقدری مهارت داشته باشی که وقتی گیر یه تسک پیچیده افتادی، به هر ضرب و زوری شده بتونی براش راه حل پیدا کنی چون خیلی وقتا جز خودت، کسی نیست که به دادت برسه. این میتونه تو رو تو بلند مدت قوی تر کنه اما تو کوتاه مدت، خیلی وقتا از هر جور عذاب الهی هم بدتره.دور کاری میتونه به مرور از تو یه شخصیت منزوی / منفعل بسازهاین هم ازون مواردیه که شاید تو روزا و ماه های اول به چشم نیاد، اما خب واقعیت چیه؟ وقتی داری تمام روزت رو به عنوان یه برنامه نویس دورکار سپری میکنی، بخش زیادی از ارتباطات و روابط روزانه ت رو از دست میدی. تو مجبوری بیشتر وقتا خواسته هات رو به جای &quot;بیان کردن&quot; با زبون ، تایپ کنی! شاید عجیب باشه، اما چت کردن های طولانی مدت با همکارا، از تو یه شخصیت متفاوت میسازه. تبدیل تمام واکنش های حسی و رفتاری به پیام های نوشتاری و جایگزین کردنشون با ایموجی ها و کلمات، یه جورایی حس و حال یه انسان واقعی رو توی ما کمرنگ میکنه و این روی شخصیت ما هم موثره.ما به مرور توی ارتباط گرفتن تنبل میشیم، دوست داریم بیشتر از حرف زدن، چت کنیم و حوصله بیرون رفتن از خونه رو نداریم.البته من منزوی بودن رو متفاوت از درونگرایی میدونم، اما منظورم اینه که اگه برای جبران این ارتباطات تلاش نکنی، توی بلند مدت به مشکلات بیشتری میخوری و این اصلا چیز خوبی نیست.اینم بگم که اکثر این موارد به شخصیت و عادت های ما هم بستگی داره. ممکنه خیلی از شما بتونین با یه سری عادتهای جدید، این ضعف هارو جبران کنین و تعادل بین کار توی خونه و زندگی سالم رو برقرار کنین. مثلا من اگه قراره نصف روز توی تنهایی و خلوت کار کنم، باقی روزمو به ورزش و حضور توی جمع و کنار دوستام بگذرونم. یا در کنار سکوت حاصل از این شکل کار کردن، شلوغی های خاص خودمو هم به وجود بیارم. هرروز چندساعتی از خونه بزنم بیرون و برای لینک سازی و ارتباط با آدمای جدید، سراغ محیط های دیگه برم و خلاصه، به شکلی آگاهانه و خلاق این نکات منفی رو جبران کنم. میشه، اما سخته و به هرحال نیاز به یه انرژی تازه داره، پس اگه فکر میکنی حال و حوصله این جور کارها رو نداری، شاید دورکاری برای تو مناسب نیست. چون به هرحال این هم فقط یه انتخابه و مثل هر انتخاب دیگه ای روی خوب و بد داره و باید نکات منفی شو هم پذیرفت.بگذریم.. خلاصه که ببین چی بیشتر به تو حال میده و با روحیات تو سازگاری بیشتری داره.و مثل همیشه :خوشحال میشم اگه تو هم تجربیات مشابهی توی این سبک کار کردن داری، برام بنویسی.</description>
                <category>محمدرضا سخایی</category>
                <author>محمدرضا سخایی</author>
                <pubDate>Sat, 28 Sep 2024 13:17:15 +0330</pubDate>
            </item>
                    <item>
                <title>چرا دورکاری برای یه برنامه نویس خوبه؟</title>
                <link>https://virgool.io/@righter/%DA%86%D8%B1%D8%A7-%D8%AF%D9%88%D8%B1%DA%A9%D8%A7%D8%B1%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%DB%8C%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D8%AE%D9%88%D8%A8%D9%87-hnsbbdztb0sa</link>
                <description>اگه برنامه نویسی هستی که داری به دورکاری فکر میکنی، میخای فریلنسر شی و از توی خونه ت پروژه هارو انجام بدی، یا دلت میخاد با شرکتی قرارداد ببندی که نحوه کارش به صورت ریموت یا دورکاریه، یا همیشه کنجکاو بودی که خب، حالا اگه یه مدت از راه دور کار کنم و دیگه مجبور نباشم هرروز بلند شم برم سرکار، اوضاع چطوریه، این مطلب میتونه یه سری نکته رو تو ذهنت روشن کنه.این شد که گفتم کمی از تجربه های چندسال دورکاری خودم بگم و اینکه اصن حس و حالش چطوریه و باید به چه چیزایی توجه کرد و اصن چرا خوبه که یه برنامه نویس دورکار باشه.من یه چندسالی با یه شرکت خارجی و یه شرکت ایرانی، به شکل دورکاری (و از توی خونه) برنامه نویسی کردم و چیزایی که میگم، براساس تجربه های واقعیه، اگر با این ایده ها موافق نیستی، پس حتما پست بعدی منو بخون با این عنوان که &quot;چرا دورکاری برای یه برنامه نویس بده؟&quot; .. اما اگه موافقی، شاید با من هم عقیده باشی که این مدل کار کردن میتونه خوب باشه و حتی درآمدم روبیشتر کنه. به این دلایل :1- صرفه جویی در زمان یا : آخ جون ، هرروز کلی وقت اضافه دارم  شاید بشه گفت مهمترین فایده ای که دورکاری میتونه داشته باشه صرفه جویی در زمانه. همین یه مورد میتونه کلی خاصیت مفید دیگه برامون به وجود بیاره مثل چی ؟ اینکه بیشتر بخوابم، بیشتر استراحت کنم، بیشتر ورزش کنم، (چمیدونم اصلا بیشتر برم دنبال فسق و فجور)، بیشتر مطالعه کنم و یا هر کار دلخواه دیگه ای که توی تایم آزادم دوست دارم انجام بدم. دورکاری با حذف خیلی از آیتمهایی که رفت و آمد شهری به وجود میاره، مثل ترافیک، آلودگی، مسیر رفت و برگشت به محل کار و همه چیزای اینطوری، باعث میشه کلی از استرس و اعصاب خوردی روزانه مون کم شه. شاید گفتنش ساده باشه، اما اگه یه مدت دورکاری تجربه کنی، از اون همه وقت اضافه ای که از دل این مدل کار کردن برات به وجود میاد متعجب میشی و خب این چیز خیلی خوبیه.2- راندمان بیشتر ← پول بیشتر یا : انقد وقت دارم که میتونم یه عالمه کار کنم روب دوشامبر قلب قلبی در کسب درآمد یه برنامه نویس خیلی موثرهبه همین نسبت، وقتی بتونم با تمرکز بیشتر، از راه دور، و بدون عوامل حواس پرت کنی که توی محل کارم وجود داره، کار کنم، قطعاً راندمانم هم میره بالاتر. در نتیجه یه تسکی که تو یه حالت دیگه چارروزه انجام میدادم حالا میتونه خیلی سریع تر از قبل تموم شه. و این خودش کلی وقت آزاد به من میده و طبیعی هست که وقتی زمان آزاد بیشتری دارم، و کسی دم به دقیقه قرار نیست منو پای سیستم و حین کار چک کنه، بتونم سراغ پروژه های دیگه ای هم برم که یا میتونه شخصی باشه، یا برای یه شرکت دیگه، که این به زبون ساده یعنی پول بیشتر. پس با تعدد کارهای بیشتر، وقت بیشتری دارم و وقت بیشتر یعنی پول بیشتر. واقعن ارزش امتحان کردن نداره؟3- مواجهه کمتر با آدمای رو مُخ یا : از شر آدمای سمی خلاص میشمخیلی از آدما، به خصوص عده زیادی از برنامه نویسا که غالباً درونگرا هستن، از این که هرروز مجبورن با یه مشت آدم خسته کننده، رو مخ، سمی، منفی باف یا حتی احمق سر و کله بزنن خسته میشن. کلی ازشون انرژی میره و با خودشن میگن ای بابا، چطوری از دست این یارو خلاص شم. دورکاری تو رو از حضور در محضر این افراد عزیز دور میداره و این کم چیزی نیست. یهو به خودت میای و میبینی که آخیش، چقد خوب شدم که میتونم بشینم با آهنگ دلخواهم کارمو پیش ببرم و هیچ کس هم نیست دم به دقیقه بیاد بالا سرم مخمو بخوره. یا اون آقا یا خانمی که همه ش میومد تو جمع خوشمزه بازی درمیاورد، دیگه اینجا نیست و خداروشکر که از شر همه شون راحت شدم.4- ساعت کار منعطف تر یا : هروقت دلم بخواد از خواب پا میشماز همه این قبلی ها بهتر، اینه که من حین دورکاری، خیلی وقتا میتونم براساس ساعت کاری دلخواه خودم کارو پیش ببرم. البته این موضوع خیلی به نوع پروژه و قرارداد و آدمایی که باهاشون کار میکنی هم ربط داره، خب خیلیا از همون کله ی صبح میخان جلسه آنلاین بزارن و خیلی به تایمهای اداری مقیّد هستن که شاید منطقی باشه، اما همیشه هم اینطوری نیست و اگه گیر آدمایی بیفتیم که خیلی به تایم کاریمون کاری ندارن و بیشتر تحویل تسک و کار براشون مهمه، میتونیم ازین نعمت بزرگ بهره مند شیم و براساس زمان کاری دلخواهمون کار کنیم. ممکنه یه وقتی مخت کار نکنه و دلت بخواد وسط روز بلند شی بری هوا بخوری، نفس بکشی، یا یه کمی به خودت استراحت بدی تا بعداً راحتتر از پس یه چالش یا تسک پیچیده بربیای، یا حتی مثل یه عده زیادی، حس کنی که شب ها میتونی راندمان بیشتری داشته باشی و کارت رو بهتر انجام بدی، لذا این انعطاف زمانی، دستتو باز میزاره و چی بهتر از این برای جغدهای شب زنده دار. البته که بدیهیه هر مدل کار کردن، باید نظم زمانی خودشو داشته باشه و اگه کلا تو این مقوله ضعیفی و هیچ ساعت شروع و پایان مشخصی نداری، تو هر حالتی قطعاً به مشکل میخوری و این بی نظمی یه جا یقه تو میگیره5- فضای کار دلخواه یا : اونجوری که دلم بخواد میزمو میچینم به به .. فضای کار دلخواه. دفتر، خونه، کافه، فضای کار اشتراکی، جمع شدن تو خونه رفقا یا هر مدل دیگه. همه اینا امکان پذیره چون دیگه کسی قرار نیست بهت بگه که بشین پشت این میز و از جات تکون نخور و هر غلط اضافه ای بکنی من از تو دوربینا دارم چکت میکنم و این حرفا.این بار ازین خبرا نیست. من میشینم توی اتاق خودم، با نور و دما و دکور و چیدمان دلخواهم و خیلی شیک و مجلسی شروع میکنم به کد زدن. اگه همیشه دلت میخواست که یه اتاق کار خفن برا خودت جمع کنی و چندتا مانیتور گنده رو بچسبونی کنار هم و درست وقتی که روی صندلی خوشگلت لم دادی، خروجی برنامه تو ببینی، باید بهت بگم که دورکاری تو رو خیلی به این لحظه نزدیک تر میکنه. اگر هم وُسعِت به این جینگولگ بازیا نمیرسه، کلی کافه و فضای کار باحال و جدید هست که هم میتونه به فضای کاریمون تنوع بده و هم کلی غافلگیرمون کنه. اگه حتی حال و حوصله کافه و این جور محیطا رو هم نداری، لااقل تو اتاق خودت، با یه میز و صندلی کوچیک هم میتونی ایلان ماسک درونت رو فعال کنی و از دور کاریت لذت ببری. و دست آخر، پیش از اینکه این مطلب رو تموم کنم و تو رو دعوت کنم به مقاله بعدی که &quot;چرا دورکاری برای یه برنامه نویس بده؟&quot; (میدونم یه جورایی مرض دارم!) خوشحال میشم اگه تو هم تجربه دورکاری داری، حس و حالتو ازین دوران بگی.</description>
                <category>محمدرضا سخایی</category>
                <author>محمدرضا سخایی</author>
                <pubDate>Tue, 24 Sep 2024 17:14:13 +0330</pubDate>
            </item>
                    <item>
                <title>چه بازیهایی بیشترین زمان برنامه نویسی رو داشتن؟</title>
                <link>https://virgool.io/@righter/%DA%86%D9%87-%D8%A8%D8%A7%D8%B2%DB%8C%D9%87%D8%A7%DB%8C%DB%8C-%D8%A8%DB%8C%D8%B4%D8%AA%D8%B1%DB%8C%D9%86-%D8%B2%D9%85%D8%A7%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%B1%D9%88-%D8%AF%D8%A7%D8%B4%D8%AA%D9%86-kfo7z3dnavyz</link>
                <description>احتمالاً شما هم قبول دارید یکی از لذت بخش ترین کارهایی که یه برنامه نویس میتونه توش مشارکت داشته باشه، بازی سازیه. اون هم نه یه بازی ساده، یه بازی عظیم که سالها وقت صرف تحلیل و تست و پیاده سازیش شده و قراره به بخشی از تاریخ تبدیل شه. برای خود من هم اینطوری بود که تو دوره نوجوونی همیشه دوست داشتم توی تیم برنامه نویسی فیفا باشم و یه سری ازون باگهایی که همیشه روی مخم بود درست کنم. البته بازی سازی و game design اساساً نسبت به شاخه های دیگه یه کمی مهجورتره و لزوماً اون جذابیتی که به عنوان Player از یه بازی میبریم رو نداره. سر و کله زدن با کدها و تست چندین و چندباره و تحلیل و آنالیز و هزار تا کار دیگه توی یه تیم خیلی بزرگ، صبر و حوصله و تجربه بالایی میخواد که خودش یه بحث دیگه س. اما ازین حرفها که بگذریم، این بار خواستم به یکی از سوالایی که برای خودمم پیش اومده بود جواب بدم و این مطلب رو بنویسم که :چه بازیهایی توی تاریخ گیم، طولانی ترین زمان کدنویسی رو داشتن؟پیش بینی شما چیه؟ بریم ببینیم:5- Final Fantasy XVفاینال فانتزی نه فقط یه بازی، که یه پدیده سرگرم کننده جهانیه که میلیونها هوادار، فن پیج و افسانه درموردش ساخته شده. این ازون چیزاییه که باید به قول طرفدارا فاینال فانتزی باز باشی تا بفهمیش. اما، از ژاپنی جماعت کمتر از این هم انتظار نمیره. اینکه بشینه سالها با صبر و حوصله کاری رو به نحو احسنت انجام بده و درنهایت به یه شاهکار جاودانه برسه. اتفاقی که برای سری فاینال فانتزی هم افتاده و نسخه XV (15م!) این مجموعه، با صرف زمان 10 سال، رتبه 5م فهرست مارو به خودش اختصاص داده. فاینال فانتزی جزو بازیهای اکشن نقش آفرینی به حساب میاد و به طور خیلی خلاصه داستان وارث یه تاج و تخته که الماسشو دزدیدن و حالا قراره برای انتقام گیری و بازپس گرفتن داراییش بره کلی مبارزه کنه و دشمنارو بکشه. البته که همه بازیها داستانهای یه خطی این شکلی دارن اما وقتی بحث سناریونویسی، شخصیت پردازی و سایر جنبه ها و جزئیات هنری میاد وسط، تازه میفهمیم یه شاهکاری مثل فاینال فانتزی چه مرزهای بزرگی رو جا به جا کرده.به جز این، نسخه 15م بازی هم با فروش بیش از 10 میلیون نسخه به یکی از پرفروش ترین بازیهای تمام دوران تبدیل شده تا به طور مشترک مورد استقبال گیمرها و منتقدها قرار بگیره.زبان ساخت بازی : ++C (دیگه نبینم کسی c++ رو مسخره کنه)موتور گرافیکی : Luminous (که منحصراً توسط خود شرکت سازنده بازی یعنی square enix ساخته شده)فروش جهانی : بیش از ده میلیوننمره منتقدین : 81/100 از طرف سایت metacritic4- PREYرتبه چهارم این فهرست اختصاص داره به بازی قدرنادیده PREY. احتمالا خیلی از کسایی که بازیهای شوتر اول شخص رو با سری Call Of Duty میشناسن، کمتر اسمی از PREY به گوششون خورده، اما این بازی یکی از بهترین نمونه های این سبک به شمار میره و البته که بازخوردهای بسیار خوبی هم از منتقدا و گیمرهای حرفه ای گرفته. لذا قبل از هرچیز به عنوان یه گیمر پیشنهاد میکنم حتماً این بازی مربوط به سال 2017 رو یه دور تست کنید. اما فارغ از اینها، نکته خفن ماجرا اینه که تیم طراحی بازی و کمپانی Arkane Studio چیزی درحدود 11 سال صرف طراحی این بازی کردن. 11 سال واقعا شوخی نیست و یه بخش مفیدی از عمر آدمیزادو شامل میشه اما کمالگرایی و وسواس این تیم، که البته نتیجه بخش هم بوده وادارشون کرده که این همه زمان رو صرف طراحی این بازی کنن.بازی به طور خلاصه داستان یه عده آدمه کنجکاوه که تصمیم میگیرن برن فضا و یه ایستگاه فضایی جدید رو کشف کنن و به مرور شخم بزنن تا از ته و توی همه چیزش سردربیارن (که این بخش شخم زدنش به عهده ماست). حالا این وسط با کلی موجود عجیب و دشمنان متخاصم و اینها هم روبرو میشن که طبیعیه اما، از لحاظ بکر بودن موضوع و محیط بازی و روند داستان واقعاً نوآوری های زیادی وجود داره که آدمو کنجکاو میکنه حداقل تو عالم گیم هم که شده یه بار یه ایستگاه فضایی رو از نزدیک ببینه. نه؟زبان برنامه نویسی : ++C (حال میکنید؟)موتور گرافیکی : Cry Engine (برای توسعه) و id Tech 5 (برای تکمیل نهایی بازی)فروش جهانی : بیش از هفت میلیون (غیررسمی)نمره منتقدین : 82/100 و تو همین مایه ها3- Diablo IIIجونم به استودیوی Blizzard که اسمش کلا دهن پرکنه و احتمالا همه مون از بدو طفولیت که با کامپیوتر آشنا شدیم، اول اسم Blizzard رو دیدیم، بعد وارکرفت و بعد ویندوز. اما Blizzard به جز مجموعه عظیم Warcraft که فقط یه کتاب باید درموردش نوشت، شاهکار دیگه ای به اسم Diablo رو خلق کرده که توی همون سبک و سیاق قرار میگیره و به اصطلاح مربوط به ژانر Hack and Slash ه. اما بد نیست بدونید که قسمت سوم این بازی با فروش 3.5 میلیون نسخه ظرف 24 ساعت تا مدتها رکورد پرفروش ترین بازی تاریخ در یک روز رو در دست داشته و با فروش 12 میلیون نسخه پرفروش ترین بازی سال 2012 شده. که البته با احتساب فروش نسخه های تکمیلی ش (فقط تا سال 2015)، این رقم همینطور بالاتر و بالاتر میره.حالا فکر میکنید چندسال زمان صرف طراحی این بازی شده؟ 11 سال. به نظرتون ارزششو نداره؟زبان برنامه نویسی : C++ (جونم)موتور گرافیکی : Custom 3d engine (موتور گرافیکی ای که خود blizzard به صورت اختصاصی برای این بازی ساخته)فروش جهانی : بیش از سی میلیون (تا سال 2021)نمره منتقدین : 88/100 از metacritic2- Motherدر دورانی که بشر هنوز به گیم به مفهوم امروزیش اعتقاد نداشته و وقتشو سرگرم کشف نفت و جنگ و کشورگشایی و این مسخره بازیا میکرده، یه عده آدم خلاق و دلسوز ژاپنی، با چشمهای ریزبینشون تصمیم گرفتن 12 سال صرف ساخت یه بازی به اسم Mother بکنن که مخصوص کنسول Nintendo بوده. حالا داستان بازی چیه؟ هیچی.. شما یه مبارز دوبعدی هستی! که با شمشیر و چوب و این چیزا میری یه سری جک و جونور رو میکشی، از جادو استفاده میکنی، یه کم از خونت کم میشه، بعضی وقتا میمیری و خلاصه که مراحل رو رد میکنی و بازی تموم میشه.حالا اگه شما اسم بازی رو سرچ کنی و عکساشو ببینی میگی مگه میشه کسی بشینه اینو بازی کنه؟ بله و جالبه بدونید که این بازی انقد طرفدارای زیادی داره که حاضر بودن برای ساخت نسخه های بعدیش کلی طومار و امضا و پول جمع کنن و به اصطلاح حمایت مادی شو به عهده بگیرن تا میراث بازی حفظ بشه. حالا چطوریه که امروز mother به عنوان یه بازی کالت و کلاسیک شناخته میشه سوالیه که جوابش بعد از یه دور بازی کردن به دست میاد، به علاوه درنظر گرفتن سال ساخت بازی، تأثیری که روی بازیهای نسل بعد از خودش مثل همین سری Final Fantasy گذاشت و البته ایده های گوناگونی که توی قصه و روند بازی به وجود آورد.بماند که اصلا بحث فرهنگی بازی سازی توی ژاپن، اونم توی دورانی که کشور با هزارتا بدبختی اقتصادی روبروئه و به نظر اولویت های دیگه ای داره چقد کار خفن و جالبیه. اونم وقتی که این همه سال صرف ساخت بازیهایی مثل super Mario ، castelvania و همین mother کنی که همه شون امروزه به عنوان شاهکارهای بازی سازی شناخته میشن.زبان برنامه نویسی : Assembly و Cموتور گرافیکی : اون موقع موتورگرافیکی اصن به مفهوم امروزی وجود نداشته (ولی باز با اینحال یه چیز اختصاصی درست کردن)فروش جهانی : نامشخص (احتمالا به خاطر زمان ساختش، اما اگه برم ژاپن حتماً میپرسم)نمره منتقدین : 89/100 از metacritic1- Duke Nukem foreverو بالاخره رتبه 1 این فهرست میرسه به Duke Nukem III : foreverقبل از معرفی بازی، متأسفانه باید بگم که این بازی علی رغم 15 سال (معادل پانزده سال!) زمانی که صرف تولیدش شده به خوبی نسخه های قبلی ش نیست، تا نشون بده که همیشه صرف زمان زیاد دلیلی برای بهتر بودن نمیشه و توجه به هزارتا نکته دیگه هم ضروریه. اما به جز این، سری سوم Duke فروش خوبی داشته که قطعاً به خاطر نسخه های قبل از خودش بوده. بعید میدونیم کسی اسم خودشو گیمر بزاره و تا به حال چیزی از آقای Duke Nukem نشنیده باشه. شخصیتی که به عنوان یکی از شناخته شده ترین قهرمان های دنیای بازیسازی شناخته میشه و به خاطر لحن تند و تیز (و بی ادب)، داستانهای عجیب، پر خشونت و گیم پلی خاصش محبوبیت بسیار بالایی بین گیمرها داره. حالا یه عده زیادی هم گفتن که بازی بیش از حد خشنه و تصویر خیلی بدی از زنان و .. نشون میده و کلا محتوای نامناسبی داره که منم به شدت موافقم، اما بدبختانه بیشتر بازیهای مطرح دنیا ازین مسائل دارن (باز حداقل rockstar با ساخت read dead یه خورده محتوای GTA رو شُست برد، بقیه چی؟)خلاصه که Duke تأثیر پررنگی روی بازیهای اکشن شوتر اول شخص گذاشته و تا سالها سردمدار این سبک بوده. بیخود نیست که خیل عظیمی از بازیهای این سبک، همه به نوعی وامدار این مجموعه شناخته میشن و البته تأثیرات خود بازی بر روی فرهنگ عامه آمریکا و شوخی هاش با سبک و استایل ابرقهرمانهای هالیوودی کم نیست، تا جایی که فقط تا سال 2001، رقم فروش مجموعه آثار Duke به همراه همه متعلقاتش به بیش از 1 میلیارد دلار برسه.زبان برنامه نویسی : میشه گفت Cموتور گرافیکی : Unreal engine 2.5 + موتورگرافیکی اختصاصی خودشونفروش جهانی : حدود 3.5 میلیون نسخهنمره منتقدین : 54/100 از metacritic (حقته! حالا هی بشین محتوای خاکبرسری تولید کن)</description>
                <category>محمدرضا سخایی</category>
                <author>محمدرضا سخایی</author>
                <pubDate>Wed, 02 Aug 2023 12:04:28 +0330</pubDate>
            </item>
                    <item>
                <title>چطور تماشای سریال Better Call Saul به تقویت مهارت هام کمک کرد؟</title>
                <link>https://virgool.io/@righter/%DA%86%D8%B7%D9%88%D8%B1%DB%8C-better-call-saul-%D8%A8%D9%87-%D8%AA%D9%82%D9%88%DB%8C%D8%AA-%D9%85%D9%87%D8%A7%D8%B1%D8%AA-%D9%87%D8%A7%D9%85-%DA%A9%D9%85%DA%A9-%DA%A9%D8%B1%D8%AF-seqzs5ffs2c3</link>
                <description>به عنوان آدمی که اصلاً اهل سریال دیدن نیست و خیلی روی این موضوع گارد داره، بعد از چندوقت به خودم اومدم و دیدم که کل 6 فصل سریال معظم Better Call Saul رو که سرشار از لذت و رنج (حاصل از زخم بستر) بود تموم کردم و اصن نفهمیدم چی شد و چطور زمان انقد زود گذشت. البته من سابق بر این سریال، تجربه دیدن یک سریال دیگه هم داشتم که اونم طبیعتاً Breaking Bad بود.اما الان قصدم مقایسه این دوتا کار و پرداختن به جنبه های هنری و دستاوردها و جوایز و اینا نیست، بلکه ریزتر شدن توی جزئیات انسانی هست که به عنوان یک شخصیت داستانی/ سینمایی بینهایت برام آموزنده و جذاب بوده و اون کسی نیست جز Saul Goodman.ساول / Saul (یا همون جیمی مک گیل عزیز) ، به عنوان یک فروشنده حرفه ای، چرب زبون، دغل کار، خوش قلب (درآخر!) و البته وکیل جنایی بسیار خفنی که به شکل شدیدی مارو با خودش همراه میکنه تا قصه زندگیش رو از بدو شروع به کار تا حرفه ای شدن ببینیم، یکی از کاملترین و پرداخت شده ترین شخصیت هاییه که در طول زندگیم و بین کلی اثر ادبی و سینمایی دیدم.&quot;FYI, Old People Adore Me.&quot;اما برای منِ برنامه نویسی که چندتا از ضعفهای بزرگش ارتباطات، مذاکره و soft skill هاس، دیدن رفتارهای Saul Goodman، تبدیل به آموزش کاملی از تقویت مهارت های ارتباطی و تجاری شد و این بود که تصمیم گرفتم، این بار از یه زاویه متفاوت و با پرداختن به این دسته از خصوصیات Saul این مطلب رو بنویسم، اما این خصوصیات چیه ؟قدرت مذاکره : بخش زیادی از جذابیت Saul، به خاطر قدرت بالای او در متقاعد سازی آدمها و قانع کردنشون بود. به یاد بیارید تمام لحظه هاییکه رو توی راهروهای دادگاه مشغول سر و کله زدن با قاضی های مختلف میشد و انقدر ایده های مختلفی برای تخفیف جرم و تغییر زاویه دید قاضی داشت تا درنهایت بتونه بهترین حکم ممکن رو به دست بیاره. Saul هیچ وقت کم نمیاورد، بعد از هرشکست، سراغ نقشه جدیدی میرفت. از ضایع شدن نمیترسید و انقدر جسارت داشت تا خودش رو هر اندازه ای که لازمه نرم کنه تا به هدف نهایی ای که بالاتر از خودش میدید برسه. برای همین بود که قاضی (که سر سخت ترین افراد برای مذاکره بودن) رئیس کمپانی، رهبران کارتل های مواد مخدر و حتی پیرزنهای خسته ی پرونده Sandpiper رو با روشهای مختلف و مختص خودش راضی میکرد و دست آخر همونطور که خودش میگفت : این Saul هست که همیشه برنده بیرون میاد.&quot;S&#x27;all Good, Man.&quot;قدرت انعطاف بالا : ساول، به راحتی میتونست خودش رو با شرایط سختی که توش گرفتاره منطبق کنه. به عنوان یه شخصیت جسور و جاه طلب، این ویژگی کاملا ضروری به نظر میرسه و نشون میده که پیش از هرچیز، باید بتونی در کمترین زمان ممکن خودت رو با شرایط سازگار کنی. از فصل اول سریال تا قسمت آخر، Saul این ویژگی رو به بهترین شکل ممکن نشون میده. مثلا توی فصل اول، وقتی میفهمه پلیس نمیتونه خانواده کلاهبردار رو پیدا کنه، حاضر میشه خودش تمام محدوده جنگلی رو پیاده گز کنه تا دست آخر اونارو توی یه چادر مسافرتی ببینه.وقتی به مدت یک سال از وکالت محروم میشه سراغ مشاغل دیگه ای میره، وقتی آگهی های تبلیغاتیش مشتری نداره سر و شکلشون رو تغییر میده و وقتی به عنوان یه فروشنده موبایل در خلوت ترین شعبه ممکن قرار میگیره، تصمیم میگیره خودش مستقیماً سراغ مشتریها بره و هزار تا مثال دیگه که حتماً به یاد دارید. Saul نسبت به موقعیتها و مشکلات ریز و درشتش گارد نداره و این برای من که به سادگی با آدمها و شرایط دچار مشکل میشم و پوسته سختی توی ذهنم ایجاد کردم، فوق العاده بود.&quot;Perfection Is The Enemy Of Perfectly Adequate.&quot;مهارت های ارتباطی : اغراق نیست که بگیم Saul خدای هنر ارتباط و فروش بود. از زبان بدن و به کارگیری فن بیان تا کلمه ها و اصطلاحات بامزه و پر تنوعی که لحظه به لحظه از ذهنش خارج میشد و متناسب با شرایط به کار میبرد، همه و همه برای من به یک Masterclass آموزش مهارت های ارتباطی تبدیل شده بود و خوشبختانه نویسنده های سریال، انقدر توی شخصیت پردازی و نمایش این لحظات دقیق و پرجزئیات بودن که بتونم به کاربردی بودنشون توی زندگی واقعی ایمان بیارم و توشون غرق شم.مطمئنم شما هم با من موافقید که چندتا از جذاب ترین لحظه های سریال، مربوط به صحنه هایی بود که Saul و Kim، سراغ آدمای پولدار و پرادعا میرفتن و با سرهم کردن یه قصه خیالی و البته مهارت بالاشون توی بداهه گویی و مذاکره، طرفِ حسابشون رو حسابی تیغ میزدن و کلی کیف میکردن.تبلیغات :ساول استاد تبلیغات هدفمند بود و در دورانی که هنوز ملت با دیدن VHS و CD سرگرم میشدند و اوج تبلیغات یک شرکت، به چندین ثانیه آگهی کسل کننده لا به لای فیلمها و بیلبوردهای ساده ختم میشد، نشون داد که چقدر بلده از این ظرفیت به نفع نمایش و معرفی خودش استفاده کنه و چقدر خوب، تغییرشون بده.چه در قسمتهای اول که برای تحقیر هاوارد، حاضر شد لباس و فرم و ژست اون رو تقیلد کنه و خودش رو به عنوان وکیل اول شهر جا بزنه (یا صحنه ای که مرد آویزون به بیلبورد رو به شکل هماهنگ شده ای نجات داد و از یه فیلمبردارِ خواست این لحظه رو ثبت کنه و به عنوان یه گزارش واقعی بفرسته برا تلویزیون تا خودشو قهرمان ماجرا نشون بده) تا فصلهای بعد که تیم تبلیغاتی خودش رو از بین چندتا دانشجوی آماتور سینما و تئاتر انتخاب کرد و فرت و فرت تیزر ساخت، فقط چند نمونه از این فرایند بودن. اگرچه گاهی این تبلیغات خنده دار و مضحک میشد اما هدف مورد انتظار رو به خوبی برآورده میکرد و البته، هنر Saul این بود که اونارو با کمترین هزینه و سریعترین زمان ممکن میساخت. (نکته ای که همیشه به فیلمسازای تازه کار هم میگن) و بعدتر که به عنوان یه وکیل نسبتاً مرفه شناخته شد، همه اونها رو ارتقا داد.یکی از بهترین تبلیغات Saul که همیشه توی ذهن من میمونه مربوط میشه به زمانی که بهش شغل فروشندگی موبایل توی خلوت ترین شعبه شهر رو دادن و وقتی میفهمه هیچ کس حاضر نیست حتی تا نزدیکی شعبه هم بیاد، یهو به فکرش میرسه که این جمله تبلیغاتی رو روی شیشه های شعبه رنگ کنه (نمونه عالی کپی رایتینگ برای نجات برند)راستشو بخواید، Saul انقدر توی تبلیغ و معرفی خودش موفق بود که من هنوزم فکر میکنم یه همچین آدمی، اون سر دنیا مشغول وکالته و هر زمان که به مشکل بخورم میتونم بهش زنگ بزنم (Better Call Saul)استقامت، پشتکار و جاه طلبی:مشکلی که خیلی وقتا با فیلم ها، سریال ها و شخصیت های اصلی شون داریم اینه که اونها رو دور از خودمون میبینیم. یه جورایی برامون باورپذیر نیستن و گاهی انقدر خفن و غیرعادی رفتار میکنن که نمیتونیم با زندگی خودمون تطبیقشون بدیم. اینجا ازین خبرا نیست. مسیری که Saul برای موفقیت خودش طی کرده انقدر دقیق و پرجزئیات به تصویر کشیده میشه که مو لای درزش نمیره. حالا چرا گفتم استقامت ؟چون اگه این شخصیت انقدر کله شق و سرسخت نبود که این سریال تا 6 فصل طول نمیکشید و به سادگی توی همون قسمتهای اول تموم میشد. نه؟ Saul میتونست سالها به عنوان یه کارمند بخش انبار، شغل خودشو به عنوان تحویل دهنده نامه حفظ کنه. میتونست قبولی توی رشته حقوق رو سقف آرزوهاش قرار بده یا بعدتر، وقتی که به عنوان یه وکیل، توی یکی از بهترین شرکتهای حقوقی، پشت بهترین میز و وسایل اداری دنیا نشست ، خودش رو همونجا بازنشست کنه ولی این بشر ول کن ماجرا نبود! اون بیشتر و بیشتر میخواست و اگرچه، بارها سر این موضوع شکست خورد و آسیب دید (و حتی در نهایت هم به فرجام خوبی نرسید، اسپویل نمیکنم بقیه شو ?) اما هرگز پشیمون نشد و اصلامگه میشه این همه تلاش و استقامت رو تحسین نکرد؟لذا به عنوان آدمی که به سختی و به زور اسلحه حاضرم از نقطه امنم بیرون بزنم، رفتار Saul  رو برای خودم غبطه برانگیز میدونم (و الان هم دلم براش تنگ شده ?)در آخر خواستم بگم که این مطلب، میتونه به کمک شما خیلی طولانی تر بشه. اما قبل از اون،اول از همه به عنوان یه برنامه نویس و کمی سینه فیل (که خیلی بهتر از سینه ی مرغه) پیشنهاد میکنم که حتی اگه اهل فیلم و سریال نیستید و وقتتون رو صرف این کارا نمیکنید (که بسیار هم منطقی هست) از دیدن این سریال نگذرید و حتماً تورقی درش بکنید، اگه اهلش هستید که زودتر ببینید و اگر هم کارو دیدید که قطعاً کلی حرف برای گفتن دارید (که لطفاً برام بنویسید تا کیف کنیم حسابی)و دوم اینکه مطالب مشابه زیادی درمورد ایده های تجاری Saul توی نت وجود داره که اینارو هم میشه در تکمیل این متن خوند و ازین قراره :6-things-better-call-saul-can-teach-you-about-findingcontent-marketing-saul-goodmansell-it-like-saul-goodmanlearning-how-to-be-good-from-the-bad-guys</description>
                <category>محمدرضا سخایی</category>
                <author>محمدرضا سخایی</author>
                <pubDate>Mon, 03 Jul 2023 12:19:03 +0330</pubDate>
            </item>
                    <item>
                <title>چرت و پرتهایی که درمورد برنامه نویسی به شما میگن</title>
                <link>https://virgool.io/@righter/%DA%86%D8%B1%D8%AA-%D9%88-%D9%BE%D8%B1%D8%AA%D9%87%D8%A7%DB%8C%DB%8C-%DA%A9%D9%87-%D8%AF%D8%B1%D9%85%D9%88%D8%B1%D8%AF-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%A8%D9%87-%D8%B4%D9%85%D8%A7-%D9%85%DB%8C%DA%AF%D9%86-k4c7oa9qh3cr</link>
                <description>چندوقت پیش فک میکردم قبلتر، وقتی که هنوز برنامه نویسی برام خیلی جدی نشده بود و مطمئن نبودم که میتونم به عنوان شغل آخرم انتخابش کنم، چه چیزایی روی مخم بوده که نمیزاشته این مهارت رو جدی بگیرم.یا بیشتر از اون، وقتی تو روزای اول، مشغول یادگیریش بودم چه حرفایی رو شنیدم که بعداً برام مشخص شد چرت و پرت بوده و لزوماً تأثیری توی کیفیت کار من نداره. من همه این افکار و جملات رکیک رو تحت عنوان &quot;چرت و پرتهایی که درمورد برنامه نویسی میگن&quot; دسته بندی کردم و دوست دارم شما هم توی تکمیل این لیست منو کمک کنید. پس بریم به سراغ این جملات :دیگه از سن تو گذشته / دیگه خیلی دیر شده..حالا ازینا ازینا یک دو سه چارنه ربطی نداره. خیلی از آدمها هستن و بودن و خواهند بود که توی سنین بالای 30 سال این کارو شروع کردن و رفته رفته توش پخته شدن. اگرچه طبیعیه که با بالارفتن سن، شانس پیدا کردن شغل برای کارهای تمام وقت کمتر میشه و این درمورد همه مشاغل صدق میکنه، اما لزوماً مانعی برای شروع این کار نیست. علاوه براینکه با زیاد شدن کارهای پروژه ای، مشاوره ای و فریلنسری، شما همیشه میتونید خودتون رو به عنوان یه نیروی حرفه ای و آماده به کار نشون بدید و این هیچ ربطی به سن و سال نداره.یکی از بهترین جوابهایی که درمورد این سوال خوندم، برای یکی از کاربرای quora بود:  I am so sick of people who are barely out of the womb asking if it&#x27;s too late to do something. I am 45 for pete&#x27;s sake and I&#x27;m just now learning! I&#x27;m the one who should be asking if it&#x27;s too late. Why do people keep asking this question?! As long as you&#x27;re breathing and your brain is functioning and you have the desire, you can do whatever you want!باید ریاضیت خوب باشهحالا حتماً هم باید همه این معادلات رو روی تخته سیاه مینوشتناگرچه هیچکدوم از یادگیری ریاضیات دل خوشی نداریم اما دراین مورد یادگیری مفاهیم پایه ای علم کامپیوتر مثل ساختار داده ها، الگوریتمها، گرافها و ... که میتونه به نوعی به برخی از شاخه های ریاضیات ، هندسه و گسسته مرتبط باشه مهمه. خیلی هم مهمه. اما به جز اون، اگر منظور از ریاضی، مشتق و انتگرال و مزخرفات دیگه ای هستن که توی دانشگا و دبیرستان و مدرسه خوندیم، والا بعید میدونم. باز حالا هرجور صلاحه.این زبان ، از همه زبانها بهتره / الان فلان زبان رو بورسه / اینو که یادگیری دیگه تمومههیچ زبانی بهتر از HTML نیستاین هم ازون حرفاست. البته که هرسال با گسترش برنامه نویسی و معرفی شدن زبانها و فریمورک های جدید، یکیشون ترند میشه و به قول معروف اسمش همه جا رو میگیره، اما این به این معنی نیست که باقی زبان ها هم بیکار نشستن و دارن بازارشونو از دست میدن. چیزی که مشخصه اینه که: حرفه ای بودن و حرفه ای شدن توی هر زبانی، همیشه مارو با مشتریهای دست به نقدی روبرو میکنه که حاضرن پول خوبی بابت مهارت مون بدن.پس اگر هم میبینیم به خاطر نیاز بازار، تقاضا برای استخدام برنامه نویس فلان زبان بیشتر از زبان های دیگه میشه، لزوماً دلیلی برای بهتر بودنش نیست.  هر زبانی به واسطه ویژگی ها و امکاناتش (مثل قابلیتهای توسعه هوش مصنوعی، امنیت، سرعت، concurrency، گسترده بودن Library ها، open source بودن، cross-platform و هزار تا موضوع دیگه) قراره نیازهای مشخصی رو برطرف کنه و خب، طبیعیه که هیچ وقت نمیتونه همه مشکلات رو حل کنه. پس، نگران نباشید و راهی که دوست دارید رو پیش برید و البته بد هم نیست که همیشه نیم نگاهی به تکنولوژیها و زبانهای جدید داشته باشید و از ویژگیهاشون استفاده کنید.برای اینکه یاد بگیری باید بری دانشگاچیزی که انتظار میره از استادت بشنویخداروشکر، زمان نشون داد که دانشگا، برای عده کثیری از برنامه نویسا، چیزی جز اتلاف وقت نبوده. (میتونید خودتون بپرسید ?) درسهای پراکنده و نامرتبط، عدم پیوستگی مطالب، سرفصل های قدیمی و کسل کننده ای که گویا جز برای استاد همون کلاس، هیچ بازار کار تعریف شده ای نداره و هزار تا چیز دیگه که خودتون توی دانشگاه دیدین و احساس کردین که اینجا دارید وقتتونو تلف میکند. پس به نوعی این جمله هم بی ربطه. اما از جنبه مثبت ماجرا، گاهی وقتا دانشگاه میتونه فرصت آشنایی با آدمهای جدید، لینک شدن به اونها و تیمهاشون رو به ما بده که خب روی مسیر کاری آینده مون هم موثره (اگرچه این موضوع هم مستقیماً ربطی به دانشگاه نداره و دانشگاه هنوز هم بزرگترین منبع اتلاف وقته، اما خب باید به نیمه پر لیوان هم نگاه کرد). به علاوه اینکه، هنوز هم هستن استادها و دانشگاه های زیادی که مارو با مباحث پایه ای مهم (مثل الگوریتم و ... که قبلا هم گفتیم ضروریه) و منابع خوب آشنا میکنن و به قول یه بنده خدایی ، دریچه های روشنی رو در ذهنمون میگشایند (برای من که نگشایید) لذا ازین لحاظ نقش مثبتی در روند یادگیریمون دارن.برنامه نویسی خسته کننده س / یکنواخته و فلانمثل هر شغل دیگه ای، برنامه نویسی هم میتونه خسته کننده باشه، هم جذاب و پرچالش و این کاملا به خود ما بستگی داره. طبیعیه که انجام پیوسته کارهای روتین و یکنواخت، روحمون رو به مرور فرسوده کنه و بهمون حس ناامیدی بده، تا جایی که حتی دلمون بخواد اصن این شغلو برای همیشه کنار بزاریم اما دلیلش خود شغل نیس، بلکه نحوه انجام دادنشه.چه بسا درگیر شدن با چالشهای جدید، ورود به پروژه هایی که میتونن مهارت مون رو تقویت کنن و تیمهایی که مارو مجبور به پیشرفت میکنن، نه تنها باعث جذابیت این شغل میشن ، بلکه در بلند مدت علاقه و اشتیاق مون رو به این کار افزایش میدن و کاری میکنن که در کنار سختی های خاص اون دوران، به یک جور رضایت مطلوب و آرام بخشی برسیم که احساس کنیم راهمون رو اشتباه نرفتیم.البته این رو هم باید درنظر گرفت که برنامه نویسی شغلیه که نیاز به نشستنهای طولانی مدت، تفکرهای عمیق، کدنویسی های زیاد و سر و کله زدن با کدهای کثیف زیادی داره که ممکنه مناسب هر شخصیتی نباشه، پس بهتره پیش از اون خودمون و علاقه مندیهامون رو بشناسیم و بعد وارد این شغل بشیم. خوشبختانه این روزها تست های شخصیت شناسی و شغلی زیادی توی اینترنت هست (مثل سایت کاربوم، truity، 16personalities و ...) که میتونن مارو کمک کنن.و مورد آخر هم اینکه، برنامه نویسی ممکنه آسیب های روحی زیادی رو هم به آدما وارد کنه که این هم ناشی از ویژگی های این شغله و ریشه در تنهایی، درگیری های ذهنی زیاد و منفی نگری ای داره که به واسطه عدم استراحت و تفریح به اندازه یا عدم اختصاص دادن زمان کافی برای خودمون و بالاتر از همه روحمون به وجود میاد. (شاید سر زدن به یه روانشناس خوب باشه)اما اصلاً کدوم شغله که حتی یه ذره هم به جسم مون آسیب نزنه؟ (ازینجا به بعد دیگه بحث فلسفی میشه و میریم توی این سوال که اصن برا چی داریم کار میکنیم؟)</description>
                <category>محمدرضا سخایی</category>
                <author>محمدرضا سخایی</author>
                <pubDate>Thu, 29 Jun 2023 17:48:22 +0330</pubDate>
            </item>
                    <item>
                <title>کتابهایی که برای یادگیری برنامه نویسی به کار میاد (4)</title>
                <link>https://virgool.io/@righter/%DA%A9%D8%AA%D8%A7%D8%A8%D9%87%D8%A7%DB%8C%DB%8C-%DA%A9%D9%87-%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-%D8%A8%D9%87-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%D8%A7%D8%AF-4-dd5jpuv111ui</link>
                <description>اما توی قسمت چهارم معرفی کتابا (که دیگه ایشالا قسمت آخر باشه) ، این بار هم سراغ 3 تا کتاب مهم میریم که باز توی تغییر نگاه ما به حرفه برنامه نویسی و تبدیل مون از یه برنامه نویس خوب به یه مهندس نرم افزار یا یه junior به Senior حرفه ای نقش مهمی داره. ازونجایی که ممکنه خیلی از ما این کارو صرفاً یه جور کدزدن روزانه و تبدیل کدها به یه پروژه کوچیک ببینیم، خوندن این تیپ کتابا میتونن مارو با مفاهیم مهمتری که بخشی از فرایند تولید نرم افزار (به خصوص نرم افزارهای بزرگ) هستن آشنا کنه و راهمون رو برای ورود به پروژه های بزرگتر و پیچیده تر و تیم های خفن تر هموار کنه و البته یه انگیزه قوی برای ادامه این راه بهمون بده.حالا بریم برای کتاب اول:Code Complete: A practical handbook of software construction (Steve McConnell) قهوه س یا نوشابه؟ هرچی هست خیلی  سیاهه :0این دفعه برای اینکه خودمم کمتر حرف بزنم، یه راست مقدمه خود کتابو میزارم که شامل جمله های آدمای مهم درمورد این کتاب و نویسنده ش میشه. به نظرم این خودش حق مطلبو ادا میکنه.“An excellent guide to programming style and software construction.” —Martin Fowler, Refactoring“Steve McConnell’s Code Complete . . . provides a fast track to wisdom for programmers. . . His books are fun to read, and you never forget that he is speaking from hard-won personal experience.” —Jon Bentley, Programming Pearls, 2d ed.“This is simply the best book on software construction that I&#x27;ve ever read. Every developer should own a copy and read it cover to cover every year. After reading it annually for nine years, I&#x27;m still learning things from this book!” —John Robbins, Debugging Applications for Microsoft .NET and Microsoft Windows“Today’s software must be robust and resilient, and secure code starts with disciplined software construction. After ten years, there is still no better authority than Code Complete.”—Michael Howard, Security Engineering, Microsoft Corporation; Coauthor, Writing Secure Code“A comprehensive examination of the tactical issues that go into crafting a well-engineered program. McConnell’s work covers such diverse topics as architecture, coding standards, testing, integration, and the nature of software craftsmanship.” —Grady Booch, Object Solutions“Steve McConnell’s seminal book Code Complete is one of the most accessible works discussing in detail software development methods. . . .” —Erik Bethke, Game Development and Production“A mine of useful information and advice on the broader issues in designing and producing good software.” —John Dempster, The Laboratory Computer: A Practical Guide for Physiologists and Neuroscientists“This is simply the best book on software construction that I&#x27;ve ever read. Every developer should own a copy and read it cover to cover every year. After reading it annually for nine years, I&#x27;m still learning things from this book!” —John Robbins, Debugging Applications for Microsoft .NET and Microsoft Windowsاما کتاب دوم : The Pragmatic Programmer: Your Journey to Mastery (Dave Thomas, Andy Hunt)کتاب بی نظیر دیگه ای که نیاز به معرفی داشت، Pragmatic Programmer یا برنامه نویس عملگراست. همونطور که از اسم کتاب هم مشخصه، اینجا قراره با راهکارها و نصیحت های بسیار به دردبخوری روبرو بشیم که توی این حرفه و مراحل مختلف کار باهاشون روبرو هستیم. این کتاب اساساً با رویکرد عملگرایی و تمرینا و مثالهای مختلفی که بهمون میده، سعی داره مارو با جنبه های مختلف این کار آشنا کنه و بهره وری مون رو بیشتر کنه. موضوعات کتاب از بهینه سازی کدها و نحوه کدنویسی اصولی، تا ارتباط با اعضای تیم و مدیریتش، تیم ورک، اهمیت مطالعه و بروز بودن و خیلی مسائل دیگه رو دربر میگیره و به خاطر نثر بسیار روون و گیراش، نکته های کلیدی زیادش که هنوز هم بعد سالها مصداق داره و و مثالهای گویایی که زده، سعی داره نشون بده که برنامه نویسی صرفاً یه امر ذهنی و فکری نیست و اصلا موقع تمرین و کار و رفع باگهاست که قابل یادگیریه. برای همین کل رویکرد کتاب بیشتر روی تمرینها میچرخه و ازین جهت، خیلی به دردبخوره و بیخود هم نیست که خیلیا خوندنشو توصیه کردن.Working Effectively with Legacy Code (Michael Feathers)و بالاخره کتاب آخر : چطور با کدهای Legacy بهتر سر و کله بزنیم. اگه پیش ازین توی سازمانتون با کدهای Legacy روبرو شدید و عزای اینو گرفتید که چطوری به سمت معماری جدید انتقالش بدید یا آپدیتش کنید، این کتاب دقیقاً خوراک شماست. ازونجایی که بحث بهینه کردن و بروز کردن کدهای قدیمی یکی از مهمترین مسائلیه که به عنوان یه برنامه نویس حرفه ای نیاز به یادگیریش داریم و یه جایی بالاخره یقه مون رو میگیره، کتاب دقیقاً دست روی این نقطه خاص گذاشته و با سرفصل های مختلفی که مرتبط با code refactoring, maintaining و سر و کله زدن با bug های قدیمی هست + مثالهای پرتعدادش، مثل یه مربی باتجربه مارو کمک میکنه.یکی از مفاهیم مهمی که اینجا معرفی میشه بحث code sensing ه، با این توضیح که چطوری درمورد کدهای قدیمی اطلاعات جمع کنیم و از ساختارش سردربیاریم تا بتونیم به کمک اونا نقاط شکست یا درزهایی که قابل تقسیم شدن به بخشهای کوچکتر هستن رو پیدا کنیم. چرا که اساساً چالش اصلی توی این فرایند، نحوه تقسیم بندی پروژه به سرویسهای کوچکتر و بخشهای مجزاست که کم از عمل جراحی قلب و عروق نداره. این کتاب خیلی فصل داره و پیشنهاد میکنم حتماً یه تورقی توش بکنید (چون اگه اینجا همه فصلهارو بزارم خیلی دیگه شلوغ میشه) و خلاصه که بسیار تحسین شده و از برنامه نویس جماعت تا معمار و لید و پروداکت تو کَفِش موندن. دیگه منم این مجموعه پست رو ادامه نمیدم، همینارو فعلا بخونیم بسه تا روز امتحان. (اگه تازه عمرمون کفاف بده اینارو تموم کنیم.)</description>
                <category>محمدرضا سخایی</category>
                <author>محمدرضا سخایی</author>
                <pubDate>Tue, 20 Jun 2023 15:43:59 +0330</pubDate>
            </item>
                    <item>
                <title>کتابهایی که برای یادگیری برنامه نویسی به کار میاد (3)</title>
                <link>https://virgool.io/@righter/%DA%A9%D8%AA%D8%A7%D8%A8%D9%87%D8%A7%DB%8C%DB%8C-%DA%A9%D9%87-%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-%D8%A8%D9%87-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%D8%A7%D8%AF-3-bzm3tx65lk6a</link>
                <description>اما توی قسمت سوم معرفی کتابهای به درد بخور برای برنامه نویس جماعت، این دفعه سراغ سه تا کتاب تازه تر رفتم. این 3 تا کتاب، فارغ از stack ها و زبان برنامه نویسی ای که دارید باهاش کار میکنید، میتونه به شما یه دید تازه نسبت به مشتریا و کار روزانه تون بده. چیزی که به شخصه برای خودم خیلی حیاتی بود و بعد از یه مدت زیادی درجا زدن، احساس کردم که مشکلات کاریم ریشه از یه جای دیگه داره و با هرروز کد زدن و اعصاب خورد کردن نمیتونم حلشون کنم. حالا، برای اینکه بیشتر از این سربسته نگم، بزارید یه راست برم سراغ معرفی این 3 تا کتاب محبوب :حتی توی یونان باستان هم  فلاسفه، به خاطر عدم آشنایی با سافت اسکیل، میزدن همدیگرو صاف میکردن1- Soft Skills : The Software Developer’s Manual  (John Sonmez)لابد همه مون زیاد دیدیدیم برنامه نویسای خفنی رو که با وجود مهارتها، تخصص و دانش بالاشون توی کار، به اون جایگاهی که میخواستن نرسیدن یا از جایگاه فعلی شون راضی نباشن. کسایی که لزوماً بی دست و پا و بی تجره نیستن و اتفاقا تجربه خوبی هم دارن و چه بسا خودمون هم جزوشون باشیم. در این حالت ما توی 2 تا دسته جا میگیریم : - یه دسته که بعد سالها کار هنوز حاضر نیست انتقادی رو بپذیره و فکر میکنه خودش همیشه درست میگه و بقیه باید به حرفش گوش کنن (حالا چون براش دلایل تکنیکال داره و ...) که یه جورایی اصلاح ناپذیره، + یه دسته هم کسایی که فهمیدن ای بابا، چرا با این همه تجربه، هنوز نمیتونن دستمزدی که حقشون هست رو بگیرن، بلد نیستن حرفشون رو خوب منتقل کنن و احساس میکنن یه جای کارشون میلنگه اما نمیدونن چطوری حلش کن! که خوشبختانه اصلاح پذیرن و مشکلشون یه چیزه : ضعف در soft skillsدرمورد soft skills کلا خیلی حرفا زده شده و اتفاقا منم همیشه دنبال مطالب مرتبط با این موضوع هستم (من جمله توی خود ویرگول) اما این کتاب با سرفصلهای آشناش نشون میده که این ضعف توی برنامه نویسا یه چیز جهانیه و فقط مربوط به یه فرهنگ یا کشور نیست. اگرچه اینجا درمورد تمام راهکارها صحبت نشده، اما توی بخش ارتباط با مدیر و مشتری خیلی تکنیکهای خوبی رو یاد میده.2- Think Like a Programmer: An Introduction to Creative Problem Solving (V. Anton Spraul)Programming isn’t just about syntax and assembling code—it’s about problem solving, and all good programmers must think creatively to solve problems  V. Anton Spraulکتاب دوم ، چطور مثل یه برنامه نویس فکر کنیم، به شکل جالبی ما رو با راهکارهایی برای تغییر شیوه فکر کردن و حل مسئله مون روبرو میکنه. ازین لحاظ میشه گفت کتاب برای خیلی از رشته های دیگه هم جوابگوئه و همونطور که توی عنوانش هم مشخصه، کلاً قراره درمورد شیوه حل مسئله به ما بگه.یه جمله معروفی از لینکن هست که میگه :اگه شیش ساعت برای قطع کردن یه درخت وقت داشته باشم، چار ساعت اولشو صرف تیز کردن تبرم میکنم.این تیز کردن تبر، برای ما، دقیقاً حکم همون فکر کردن به مسئله و درک مشکل رو داره. اگه به این جمله دقیق بشیم، این آقای لینکن میگه به جای اینکه زرتی بپری و کد زدنتو شروع کنی، چقد بهتره که قبلش خوب فکر کنی و بتونی به یه راه حل مناسب برسی تا هم احتمال بروز خطا کم شه، هم اینکه کار توی زمان کمتری به نتیجه برسه. و خب چه ابزاری میتونه به ما توی تیز کردن تبر کمک کنه؟ مهارت حل مسئله. این کتاب دقیقاً دست گذاشته روی این نقطه و چقد خوبه که بعد از فهمیدن ضرورتش، یه سر هم به سرفصلهاش بزنیم :1- Introduction2- Strategies for problem solving3- Pure puzzles4- Solving problems with arrays5- Solving problems with pointers and dynamic memory6- Solving problems with classes7- Solving problems with recursion8- Solving problems with code reuse9- Thinking like a programmerکتاب محبوب بنده3- Becoming a better programmer (Pete Goodliffe)کتاب محبوب من، از انتشارات درجه یک oreilly یه راهنمای درجه یک از تمام چیزاییه که لازمه تا آخر مسیر کاریمون به عنوان یه برنامه نویس به یاد داشته باشیم. این کتاب انقد صمیمانه و روون مسائل مختلف فنی و کاری رو بهمون یاد میده که میتونیم مثل یه راهنما یا Mentor همیشه کنار دستمون بگیریم و طی سالهای مختلف، هربار به یه گوشه ش سر بزنیم و مرورش کنیم.کتاب اساساً با مسائل مرتبط با کدنویسی و الگوهایی برای کدهای بهینه و تمیز حرف میزنه اما لا به لاش نکته هایی هست که حاصل تجربه بیست و چندساله نویسنده ایه که سالها توی بزرگترین شرکتهای دنیا کار کرده و حالا اومده چکیده دانشش رو از طریق ااین درسها به ما رسونده. من از تصویرهای این کتاب هم خیلی خوشم میاد. خیلی خلاقانه و بامزه ن و خیلی از مفاهیم رو به شکل ساده تری منتقل کردن که به نظرم یکی از حُسن های بزرگ این کتابه.اما این سری به جای معرفی سرفصلا، بزارید چندتا از عکسهای کتاب رو اینجا بزارم که با حس و حالش آشنا شید و زودتر برید سراغش:</description>
                <category>محمدرضا سخایی</category>
                <author>محمدرضا سخایی</author>
                <pubDate>Fri, 16 Jun 2023 14:42:26 +0330</pubDate>
            </item>
                    <item>
                <title>کتابهایی که برای یادگیری برنامه نویسی به کار میاد (2)</title>
                <link>https://virgool.io/@righter/%DA%A9%D8%AA%D8%A7%D8%A8%D9%87%D8%A7%DB%8C%DB%8C-%DA%A9%D9%87-%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-%D8%A8%D9%87-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%D8%A7%D8%AF-2-sl2bpp7bysas</link>
                <description>خب، بعد از قسمت اول و معرفی سه گانه معروف عمو باب، حالا وقتشه بریم سر وقت یه سری کتاب دیگه. البته دوست دارم اول یه سری به اون سه تا کتاب قبلی بزنید و بعد بیاید اینجا، اما اگه حالشو ندارید، بازم بد نیست، که اسم این کتابهارو به خاطر بسپاریم و یه روزی یا یه شنبه ای (که هیچوقت نمیاد) بریم برای مطالعه ش.ببین به بچه تو این سن چی دادن کتابهای این سری رو براین اساس آوردم که میتونید مثل یه مرجع یا دایره المعارف یه گوشه بزارید و هروقت که نیاز دارید یه مبحثی رو مرور کنید برید سراغش. به خصوص برای تایم قبل از مصاحبه ها و تایمهایی که احساس کردیم یه چیزیو فراموش کردیم و اگه بخایم هی با سرچ کردن پیداش کنیم، بیشتر گیج میشیم (چون توی این کتابا همه مباحث مرتب و یه دست کنار هم اومدن و ذهنو آشفته نمیکنن)کتابهای امروز به این ترتیب هستن :Design Patterns : Elements of Reusable Object Oriented Softwareاز قدیم گفتن، کتاب هر چه بهتر، طرح جلدش زشت تریکی از مباحثی که اکثرمون توش ضعف داریم و همیشه برای خوندنشون دنبال یه فرصت میگردیم، همین بحث design pattern هاست. خیلیا میگن که به خاطر زیاد بودن منابع مرتبط با این موضوع و نقصهاشون، هیچ جای درست و حسابی برای مرور و یادگیری این بحث وجود نداره. (که منم با این موضوع موافقم، چون اصلا دیزاین پترن چیزیه که متأسفانه هیچ وقت جدی گرفته نمیشه و نهایتش برای مصاحبه و چارتا جای اینطوری مجبوریم بریم سروقتش)خلاصه، یه سری نویسنده مهربون (Erich Gamma, Richard Helm, Ralph  Johnson, and John Vlissides که به گنگ چارنفره معروفن!) تصمیم گرفتن این کتابو بنویسن و توش به معرفی و توضیح کامل 23تا دیزاین پترن مهم بپردازن (که چیزی هم دیگه از قلم نیفته). انصافاً هم بسیار روون و خوب همه چیو توضیح دادن و خوبیش اینه که هرآنچه لازمه درمورد این پترنها بدونیم، یکجا و کنار هم جمع آوری شده. لذا علاوه بر اینکه میشه هرزمانی بهش سر زد، میشه بدون ترتیب هم مطالعه ش کرد و برای مرور مباحث و حتی همون مصاحبه های شغلی هم بسیار کاربردیه.کتاب اومده توی 5 تا بخش، پترنهارو دسته بندی کرده و هر بخش به معرفی کامل پترن، نحوه پیاده سازیش با مثال، تأثیرش روی برنامه و کاربردش حرف زده. این بخشها شامل این موارد میشن:یک - معرفی (که کلا درمورد خود دیزاین پترن، کاربرد، هدف و نقشش توی توسعه نرم افزار صحبت کرده)دو -  Creational Patternsسه - Structural Patternsچار - Behavioral Patterns (که بیشتر پترنها توی این دسته قرار گرفتن)و پنج - ضمیمه و لغت نامه (برای اینکه راحتتر بتونید به هر پترن دسترسی پیدا کنید میشه ازینجا سرچ کرد)اما کتاب بعدی  :این یکی دیگه از همین جلد شروع کرده به درس دادن و نزاشته اصن لباسمونو عوض کنیمIntroduction to Algorithms  (Third Edition)چه بسیارند انسانهایی که سالها به کدنویسی مشغول گشته و هنوز سرگشته راه حق مانده اند. راهی که از دل الگوریتمها میگذرد - انجیر به روایت هلویه چیزی که مدتها بهش فکر میکردم و برام سوال بود اینه که اساساً تفاوت یه مهندس نرم افزار یا به برنامه نویس چیه؟ و چیزی که بهش رسیدم این بود : مهارت حل مسئله. که از دل چی میاد؟ الگوریتمها.الگوریتمها به ما یاد میدن که بتونیم برای برنامه و کدمون تصمیم های گنده بگیریم و بهینه سازی خفن انجام بدیم. باعث میشن قدرت فکر کردنمون رشد کنه و چند پله توی کار بالا بریم. (تازه این ویژگیها از نظر اخلاقیه، از نظر حرفه ای که صد در صد باید آشنا شیم دیگه. نه؟)این کتابِ خوب و بسیار توصیه شده (که توسط  Thomas H. Cormen, Charles E. Leiserson, Ronald Rivest, Clifford Stein نوشته شده و  درمیان خیل کتابهای مشابه برای همین موضوع طلاس) همون طور که اسمش داره داد میزنه، میخاد مارو با انواع الگوریتمها آشنا کنه.کتاب اومده مباحثش رو توی هفت فصل دسته بندی کرده و این هفت تا فصل میشن :یک - مبانی (که یه جورایی مقدمه س و درمورد نقش الگوریتمها و تأثیرشون توی سرعت محاسبات برنامه میگه)دو - Sorting and Order Statisticsسه - Data Structures (صرفاً درمورد انواع ساختار داده ای میگه که توی الگوریتمها قراره نامبرده بشن)چار - Advanced Design and Analysis Techniquesپنج - Advanced Data Structures (همون بحث ساختار داده ها که حالا کاملتر میشه مثل معرفی Van Emde Boas Trees)شیش - Graph Algorithmsهفت - Selected Topics که به الگوریتمهای مرتبط با multi thread و تحلیلشون میپردازهدر پایان کتاب هم برای درک بهتر مباحث، یه بار به طور خلاصه درمورد لگاریتم و پیچیدگی زمانی و انواعشون گفته که دیگه ازین بابت هم مشکلی نداشته باشیم. دستشون درد نکنهتا یادم نرفته، اینم بگم که سایت coursera هم یه دوره بسیار خوب و رایگان برای آشنایی با الگوریتمها داره که میتونید به عنوان مکمل این کتاب داشته باشیدLearn Enough Git to Be Dangerousخلاقانه و مختصر و مفید (قابل توجه دو جلد قبلی)کتاب سوم که عاشق عنوانش هستم، (انقد گیت یاد بگیر تا توش خفن شی) درمورد gitه. این روزا کمتر پروژه ای رو میبینیم که git توش نباشه و یه جورایی برامون مثل نون شبه. هرجا میریم هست و همیشه موقعی که میخایم کارمونو تحویل بدیم باید از git کسب اجازه کنیم. (گیت هم که معرف حضور هست :  یه ورژن کنترل که به برنامه نویسا اجازه میده به صورت دسته جمعی روی یه پروژه کار کنن و تغییرات همدیگرو متوجه بشن و توی کار هم گند نزنن و اگر هم گند بزنن بدونن به کی باید فحش بدن) برای خودم، سالها طول کشید تا بالاخره راضی شم از git استفاده کنم و الان که بهش فکر میکنم، نبودنش یه جورایی برام غیرممکنه.توی این کتاب از آقای Michael Hartl (که اخیراً فهمیدم به صورت کاملاً آنلاین هم میشه خوندش و براش سایت زدن) ، قراره با انواع دستورها و کدهایی که توی git نیاز داریم آشنا شیم و باز از لحاظ دسته بندی و نحوه توضیح بسیار معرکه س.</description>
                <category>محمدرضا سخایی</category>
                <author>محمدرضا سخایی</author>
                <pubDate>Mon, 12 Jun 2023 17:24:19 +0330</pubDate>
            </item>
                    <item>
                <title>کتابهایی که برای یادگیری برنامه نویسی به کار میاد (1)</title>
                <link>https://virgool.io/@righter/%DA%A9%D8%AA%D8%A7%D8%A8%D9%87%D8%A7%DB%8C%DB%8C-%DA%A9%D9%87-%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-%D8%A8%D9%87-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%D8%A7%D8%AF-1-j4fju8arr6pr</link>
                <description>یکی از بهترین عادت‌هایی که هر برنامه نویسی میتونه داشته باشه کتاب خوندنه. کتاب، علی رغم ظاهر ساده و محتوای نوشتاریش، هنوز هم کارایی داره و چه بسا، بهترین منبع برای یادگیری عمیق موضوعاتیه که آموزش های کمی براش وجود داره. کتاب میتونه مارو بی واسطه با خودش درگیر کنه و تجربه سالها فعالیت یه نویسنده رو در قالب جملات شُسته رفته و موجز بهمون برسونه.و خب کتاب‌های حوزه نرم افزار هم همینطوره. کمتر آدم متخصص و معماری رو میشه پیدا کرد که توی مسیر یادگیریش حداقل یه بار گذرش به یه کتاب نیفتاده باشه.اما این وسط، کتاب‌هایی هم هستن که حکم جزوه درسی رو برای هر برنامه نویسی دارن و خوندنشون جزو اوجب واجباته. توی این مطلب که به زودی ادامه دار میشه، میخام با سه گانه معروف رابرت سی مارتین شروع کنم. آقای مارتین که بین اهل فن به عمو باب هم معروفه، یکی از بهترین مولفین و متخصصین حوزه نرم افزاره که بیش از 50 ساله داره با کتابها، مقاله ها و سخنرانیاش این حرفه رو پیش میندازه و اولین کسی هست که متدلوژی agile رو به ما معرفی کرده.ایشون سه کتاب بسیار شناخته شده و پرخواننده داره که اینا هستن :1- Clean Code : A Handbook of Agile Software Craftsmanshipبه به. چقد طرح جلد دوست داشتنی و خلاقانه سخوشبختانه، ما انقدر صبح تا شب با کدهای کثیف سر و کار داریم که کلا مفهوم کد تمیز از ذهنمون رفته. چه بسا اصن همه این سالها توی این توهم بودیم که خیلی کارمون درسته و کدی که زدیم، بهترین کد عالمه و کور شه هرکی نتونه ببینتش. اما عمو باب چه کرده؟ ایشون سالها قبل کتابی نوشته به اسم Clean Code یا کد تمیز : &quot;کتابچه ای برای استادی در تولید نرم افزار های چابک&quot; و توش ما رو با مهمترین اصول نوشتن کدهای خوانا، تمیز و حرفه ای آشنا کرده.حالا کد تمیز چیه؟ اگه بخوایم به زبون ساده بگیم یعنی کدی که تر تمیزه، آدمو مجبور به فحش دادن نمیکنه، میشه برای برناه نویس غایبش یه فاتحه ای چیزی خوند، قابل تست و ویرایش، خوانا و بدون عیب و ایراده و خلاصه که از هر کدی که میشه نوشت، بهتره. یا به قول استاد شب پره : این کدی که میگم کد نیست، این کد مثه اون کد نیست، اگه کده مثه اون کد نیست، هیچ کدی مثه این کد نیستاستاد مارتین اینجا میگه که اگه یه سری اصول رو موقع کدنویسی رعایت کنی میتونی به یه همچین دستاوردی برسی و طی فصل های مختلف، مارو با این اصول آشنا میکنه. فصلهای کتاب به صورت تیتروار میشن اینا :فصل یک :  که درواقع معرفی کتابهدو : کد تمیز چیه؟سه : نام گذاری صحیح به چه صورتیه؟چهار : چطوری function های تمیز و خوب بنویسیمپنج : چطوری کامنت بنویسیمشیش :  Formatting یا قالب بندی تیکه کدها یعنی چی؟هفت :  Boundaries یا نحوه استفاده از پکیجها، کتابخونه ها و همه کدهای external چجوریاس؟هشت :  Unit test نوشتن به چه درد میخوره؟و نه : که درمورد سیستمهای مقیاس وسیع و اینا حرف میزنه.به نظر من که این عنوانها خیلی هیجان انگیزن. ضمن اینکه میشه فهمید کتاب به مفاهیمی فراتر از کدنوشتن ساده میپردازه و به صورت کلی قراره مارو به درک کاملتری از تولید یه نرم افزار اصولی و برنامه خوب برسونه.و اینکه این کتاب انقد مفید و کاربردیه و انقد به زبون ساده و روونی مفاهیم رو میگه که میشه چندین و چندبار خوند، بهش رجوع کرد و مثل یه دستور زبان، کنار دست خودمون قرار داد. خلاصه که اگه هنوز سراغش نرفتید، تا دیر نشده یه کمی شو بخونید و دیگه کم کم بهش معتاد میشید.2- Clean Architectureاستاد حاضر نیست یه قرون خرج طرح جلدها بکنه و همه رو عین هم میزنه. عکسِ کهکشان هم که طبیعتاً از گوگل دانلود شده عمو باب که کلاً ول کن clean بازی نیست و گفته که میخاد تمام مفاهیم خلفت رو از منظر clean بودن به ما یاد بده و بعد ازین دنیا بره. لذا کتاب دوم درمورد معماری تمیزه. این کتاب هم خوشبختانه یکی از تأثیرگذارترین و مهمترین کتابهای این حرفه س و لذت خوندنش مثه لذت خوردن موزه.این جا، استاد با یه نگاه وسیعتر به مبحث طراحی، راهکارهایی ارائه میده برای تولید نرم افزارهایی با ویژگیهای مهمی مثل maintainability، testability و separation of concerns (من کلا نمیدونم کِی باید این term هارو کِی ترجمه کرد و کِی نه. ضمن اینکه خودم همیشه حس کردم کتاب تخصصی اساساً به زبون اصلی معنا میده و ترجمه ش همیشه یه چیزایی رو خوب نمیرسونه. اما حالا معنای این کلمات به فارسی فک کنم بشه : استقرارپذیری، قابل تست بودن و دارای قابلیت جداسازی نگرانیها! – درمورد این آخری سرچ کنید نگرانی تون میره)خلاصه که با خوندن این کتاب میتونیم یاد بگیریم که اصن چطور یه نرم افزار رو طراحی کنیم. فارغ از اینکه حالا زبون برنامه نویسی و فریمورک و این جور مسائل چی هستن.فصلهای کتاب به ترتیب اینا هستن :یک : معرفی ، که میگه اصلا چرا باید معماری رو بلد باشیم و به چه دردمون میخورهدو : Paradigm Overview که قراره با سه تا از مهمترین معماریهای نرم افزاری یعنی معماری لایه ای، معماری پیاز و شش ضلعی آشنا بشیم.سه : Programming Paradigms : اینجا با مفاهیمی مثل OOP و برنامه نویسی component-based و functional آشنا میشیمچهار : اصول اولیه طراحی معماری نرم افزار مثل use case، entity و...پنج : Design Principles and Patterns : اصول SOLID و Dependency Injectionشیش : Component Principles : آشنایی با مفهوم Component و نحوه پیاده سازیشهفت :  Case Study تمرین همه مفاهیم قبلی با مثالهای واقعیاین یکی کتاب هم ازون مدلاس که میشه بدون ترتیب خوند. خلاصه که اگه دوست داری نگاه و تخصصت رو نسبت به این حرفه ارتقا بدی و به درجات بالاتری از عرفان برسی، بدون شک باید با مفاهیم معماری آشنا شی و شروع به یادگیریش کنی.3- Clean Coder کتاب سوم، علی رغم شباهت زیاد عنوانش با کتاب اولی، دست گذاشته روی مفاهیم اخلاقی و حرفه ای کار ما به عنوان یه برنامه نویس. اینکه من به عنوان یه آدم این کاره، چه اصولی رو باید توی کارم بلد باشم تا بتونم خودمو حرفه ای نشون بدم. منظور از اصول هم، صرفاً مفاهیم تئوریک نیست، بلکه soft skill ها و مهارتهایی هست که مکمل اوناست.لذا ازین لحاظ، کتاب میتونه بسیار مهم و تر و تازه باشه و یه تکون حسابی به تفکرات ما نسبت به این کار بده. (ازونجایی که خیلیها مثل خود من توی Soft skill ضعف دارن، بی نهایت میتونه کاربردی باشه)عنوان های جذاب هر فصل اینطوریه :یک : Professionalism: اصن حرفه ای بودن یعنی چی؟دو : Saying No : اهمیت نه گفتن، که اصن فراتر از این کار به عنوان یه مهارت رفتاری خیلی خفن شناخته میشهسه : Saying Yes: هرچقد باید خوب نه بگی، خوب هم باید بله بگی. چراشو اینجا میگهچهار :  Coding : این فصل رو میشه به نوعی چکیده خیلی فشرده کتاب اول هم دونستپنج : TDD یا Test Driven Development که خیلی مهمه و یه بحث جداگونه س (توی ویرگول هم مطالب خیلی خوب زیادی درموردش نوشتن)شیش :  Practicing: چرا کار ما بدون تمرین فایده نداره؟هفت : Acceptance Testingهشت : مدیریت زماننه : نحوه تخمین زدن نیازمندی های پروژهده :  Pressure یا چطوری فشار کاریمونو مدیریت کنیمیازده :  Collaboration، تعامل ، تیم ورک و همکاری با بقیه بر و بچ تیمو دوازده :  Teams and Project : که میشه فصل آخر و مارو با چندتا از متدلوژی های مهم و نقشهای اون آشنا میکنهاستاد میگه تمیز بودن رو اول از خودمون شروع کنیم این کتاب انقد مثالهای خوب و کاربردی توش داره که اصن حد نداره و مهمتر از همه اینا، میتونه نگاه مارو نسبت به شغلمون عوض کنه. اینکه اساساً حرفه ای بودن و اصولی کار کردن چه ویژگیهایی رو میطلبه.همه این کتابها به سادگی از توی اینترنت قابل پیدا کردنه و پیشنهاد میکنم به قول استاد یه تورّقی توشون بکنید.و اگر هم پیش ازین با این کتابها آشنا بودید، اولاً مارو حلال کنید، دوماً خوشحال میشم شما هم یه لیست از کتابهای مفیدتون رو برام بنویسید.</description>
                <category>محمدرضا سخایی</category>
                <author>محمدرضا سخایی</author>
                <pubDate>Mon, 12 Jun 2023 11:53:52 +0330</pubDate>
            </item>
                    <item>
                <title>آهنگهایی که موقع برنامه نویسی به کار میاد</title>
                <link>https://virgool.io/@righter/%D8%A2%D9%87%D9%86%DA%AF%D9%87%D8%A7%DB%8C%DB%8C-%DA%A9%D9%87-%D9%85%D9%88%D9%82%D8%B9-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%A8%D9%87-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%D8%A7%D8%AF-pmxvnkghnoo3</link>
                <description>یکی از عادتهای روزانه جالبی که ممکنه خیلی از ما برنامه نویسها داشته باشیم، گوش کردن به موزیک حین کار کردنه. گاهی این عادت انقدر مهم میشه که خیلیامون حاضریم گرونترین هدست / هندزفری بازار رو بخریم تا بتونیم اون موزیکِ لامصب رو با بالاترین کیفیت ممکنه گوش بدیم که البته منطقی هم هست.موزیک خوب، روح آدمو جلا میده، گاهی وقتا تو رو از یه حالت بد درمیاره و خیلی جاها هم چنان تمرکزی بهت میده که با مصرف نیم کیلو شیشه و هر کوفت دیگه ای هم نمیتونی تجربه ش کنی (منظورم شیشه ایه که والتر وایتِ فقید دست مردم میداد).اینه که، به عنوان کسی که تقریبا سالهاس هرروز کدنویسی رو همراه با گوش کردن به آهنگهای مختلف انجام میدم، دوست داشتم تجربه مو توی این زمینه هم بنویسم. اینکه چه موزیکهایی بیشتر به کارم کمک کرده و چه الگویی پشتشون بوده که تونستم بعد سالها روشون حساب کنم، توی playlist روزانه م بزارم و ازشون لذت ببرم.این من نیستم. این جا هم فضای کار اشتراکی باغ کتاب نیست!حالا، اگه بخام یه دسته بندی گنده از انواع این آهنگا داشته باشم ، این سه تارو دارم : 1- Classical music :BE, FE , Product Manager + QA while thinking of why it should happen again!موسیقی کلاسیک، همونطوری که از اسمش هم پیداست، کلاً کلاس داره. چه گوش کردنش، چه حفظ کردن اسم آهنگسازاش چه هرچی که بهش مربوط هست. یعنی شما قشنگ میتونی بری تو یه مهمونی و بگی من موسیقی کلاسیک گوش میدم، بعد یهو ببینی موقع شام برات برنج میکشن و ته دیگ میزارن و این داستانا). من هم یادم نمیاد چی شد که از یه جایی دیگه کلاً چسبیدم به موسیقی کلاسیک و خوشبختانه حس کردم که موقع کدنویسی هم چقد به کارم میاد. به خصوص موقع انجام تسکهای روتینی که نه خیلی پیچیده ن، نه اونقدر ساده که بشه بدون فسفر سوزوندن انجامشون داد.اما آهنگسازهای محبوب من (بدون ترتیب) این عزیزان هستن.ChopinVivaldiBeethovenMozartاما موقع گوش دادن به چندتا چیز هم این وسط توجه میکنم :بعضی از آلبوما و آهنگهای این بزرگان به صورت اپرا هست (به خصوص موزارت) و ممکنه توشون یه خواننده ای هم بخونه. که ترجیحاً من ازشون رد میشم و بی کلام هارو انتخاب میکنم.اگه یه آهنگی خیلی دیگه فاز دارک و غمگین کننده ای بده ازش میگذرم. درواقع بهتره بگم، بعضی آهنگها، چنان موسیقی محسور کننده ای دارن که خیلی راحت تو رو تحت تأثیر قرار میدن و ممکنه فرایند فکر کردن رو (حین کد زدن) یه کمی مختل کننبعضی آهنگها هم انقدر از در و دیوار پخش شدن که وقتی دوباره گوش میکنیم ، کلا یاد یه چیز دیگه میفتیم و باز هم یادمون میره که مشغول کاریم (مثلا سونات مهتاب بتهوون یا خیلیهای دیگه) اینه که باز سعی میکنم ازینا صرف نظر کنم (اگرچه خیلی دوستشون دارم و ترجیح میدم یه وقت دیگه گوش کنم)اما چون بعضی ازین بزرگان هزاران هزار آهنگ دارن، برای شروع میشه آلبومهایی که شامل بهترین آهنگهای هر آهنگساز هست رو پخش کرد (مثل bests of chopin و ...) و با منتخبهاشون شروع کرد. یا variations که باز ترکیب جالبی از آهنگهارو کنار هم قرار داده. (مثلا Mozart Variations)بزن زنگو2- Peaceful Pianoدسته دوم، که اخیرا، بیشتر از کلاسیکها هم سراغشون میرم، کلاً آهنگهای آرام بخشه، به خصوص اونایی که با پیانو نواخته میشن. من حساب کردم این آهنگها چندتا چیز خوب دارن که باعث میشن به کارم کمک کننمثل غالبِ موسیقیهای کلاسیک، بی کلامهتنوع آهنگسازها خیلی بیشتره و احتمال اینکه تو یه آهنگ رو قبلا شنیده باشی کمتره (که به نظرم خودش نکته مثبتیه)همونطور که اسمش داره میگه آرام بخشه و خیلی ملایم میتونه استرسی که به واسطه کارمون پیش میاد، کم کنه و حتی، موقع فکر کردن به یه راه حل جدید، یه جورایی boost مون کنه و فکرمون رو بندازه توی یه سراشیبی دلچسبی که از سر تا تهش ایده های جدیده. (حالا اگه دستت بازه میتونی در کنارش یه دم نوش هم برا خودت دم کنی)البته این موارد درمورد کلاسیکها هم صدق میکنه، اما لازم بود حتماً بگم که جا نمونه :)برای پیدا کردن این مدل آلبومها، میتونید همین عبارت Peaceful Piano رو سرچ کنید، خیلی از سایتها (که ویرگول نمیزاره لینکشونو اینجا بزارم) یه عالمه آلبوم از این دسته دارنکاری که برنامه نویس میکنه vs. چیزی که کاربر میبینه 3- Jazzموسیقی جَز (یا جاز!) ، به خصوص برای درس خوندن، شارژ شدن و آرامش گرفتن خیلی کار راه اندازه. بهتره بگم یه جور موسیقی عصرگاهیه، یعنی عصرا که دیگه انگار نمیکشی و مخت میخاد رد بده میتونی بری سراغش. چرا اینطوریه؟من فکر کنم اساساً جز کلا انرژیکه و خیلی خوب میتونه بهت انگیزه بده تا با یه انرژی تازه کارهارو پیش ببری، ضمن اینکه جنس این انرژی و ریتم، طوری نیس که کلا بخای بلند شی و سرتو بکوبی تو دیوار و کف بدی بیرون، یعنی در کنار این وجه انرژیک بودن، خیلی از خصوصیات مثبتی که توی موارد قبلی گفتیم رو هم توی خودش داره (البته به جز jazz های با کلام و ...)برای پیدا کردن آلبومها، خیلی راحت میشه با سرچ عبارتهایی مثل jazz for study یا Jazz café music به یه عالمه نمونه خوب رسید و بعد اگه کیف کردید که همین مسیرو برید جلوموسیقی Jazz خودش کلی تاریخ و حرف پشتش داره (که منم بلد نیستم!) اما ما فقط درمورد وجه مفیدش برای برنامه نویسی گفتیموقتی ناهار تُن ماهی دارمحالا به جز این دسته بندی، چندتا چیز دیگه هم یادم افتاد که خدمتتون عرض کنم : معمولاً وقتی گوشم به یه سری ازین آهنگها عادت میکنه، سعی میکنم توی دفعات بعدی باز هم همونارو گوش بدم، اگرچه شاید بعد از چندروز، به نظر خسته کننده بیاد، اما توی تثبیت اون آرامش و تمرکزی که موقع کار لازم دارم خیلی کمکم میکنه و یه الگوی مشخص رو توی ذهنم جا میندازه که با منطقهای برنامه نویسی جور درمیاد (چه تفسیر خفنی شد!)اگر بخوام سراغ یه آلبوم یا آهنگساز جدید برم، معمولا توی وقتهای خلوت تر اینکارو میکنم (به همون دلیل قبلی) یا حتی وقتهای آزاد. اینطوری فرصت میکنم یه بار آهنگ رو با لذت و دقت بیشتری برای خودم مرور کنم و بعد از اینکه احساس کردم بهم حس خوبی میده، بیارمش توی لیست آهنگهای روزانهفارغ از همه اینها، به نظرم گوش کردن به موسیقی فاخر (به خصوص قطعات شاهکار کلاسیک) به روحمون جلا میده. انگار که چند پله از زمین جدا میشیم و میریم بالاتر و به یه جور حس تعالی خیلی خوبی میرسیم که توی کمتر فعالیتی میشه پیداش کرد. منظورم یه جور ارزش قائل شدن برای خودمون و گوشهامون و این حرفاس. حالا باز هم خوددانی!طبیعیه که با وجود همه این الگوها، باز هم کلاً با بعضی آهنگها حال نکنیم و دوست نداشته باشیم بهشون گوش بدیم. دراونصورت میتونیم بریم سراغ چیزای دیگه. و اتفاقا به نظرم یکی از ویژگی های جالب موسیقی همینه که برای ما تصاویر و حس ها و لحظه های به خصوصی رو تداعی میکنه. گاهی یه موسیقی که برای خیلیها حس غمگینی رو به وجود میاره، ممکنه یه نفر دیگه رو یاد یه جشن به خصوص یا چیز دیگه ای بندازه و بالعکس، پس :اگر احساس میکنی که بعضی آهنگها فکرت رو میبرن به یه نقطه یا لحظه به خصوص، بهتره توی فرایند کار کردن سراغشون نری. چون میتونن مارو خیلی راحت خیره کنن به گوشه ای از دیوار و کاری کنن تا مدتها مثل مجسمه به یه نقطه زل بزنیم. (کاری که خوراک برنامه نویس جماعته)این من هستم، اینجا هم فضای کار اشتراکی باغ کتابه!راستی، این پست و دسته بندی های توش صرفاً براساس حسِ شخصی من بوده، به علاوه یه کمی تحقیقی که در مورد صحتشون داشتم که تا حدود زیادی همین بوده، اما به هرحال ممکنه این آهنگها روی همه ما جواب نده و این خیلی طبیعیه. پس منم خوشحال میشم اگه شما فهرست شخصی خودتون رو برام بنویسید :)</description>
                <category>محمدرضا سخایی</category>
                <author>محمدرضا سخایی</author>
                <pubDate>Tue, 06 Jun 2023 17:51:47 +0330</pubDate>
            </item>
                    <item>
                <title>حق های برنامه نویسی (قسمت سوم)</title>
                <link>https://virgool.io/@righter/%D8%AD%D9%82-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-%D8%B3%D9%88%D9%85-uwxoq98csjtf</link>
                <description>در ادامه دو پست قبلی، حالا توی قسمت سوم با چندتا جمله مهم دیگه از آدمای مهم دیگه روبرو میشیم. ممکنه پیش از این با این جمله ها روبرو شده باشید اما من سعی کردم به یه شکل جدید بهشون نگاه کنم و جالبه که مرور اینا، برای خودمم هربار شکل و معنای کاملتری پیدا میکنن. خلاصه که این جملات پایان بازی داره و انقد موجز و پر نکته س که میشه همیشه بهشون رجوع کرد و ازشون یاد گرفت. نظر شما چیه؟سورس کد مثل یه جوک میمونه، اگه مجبور به توضیحش شدید، پس اصلا خوب نوشته نشده. (کوری هاوس)آقا سورس کد که توضیح دادن نمیخواد. اگه کار میکنه که بزار کار کنه، اگر هم ایراد داره که برو درستش کن. والا!اما به جز این، حتما دیدین تیکه کدهایی رو که کار هم میکنه اما هرچقدر سر و تهشو میگردی نمیفهمی اصن چه اتفاقی توش افتاده. اسم متغیرها بد انتخاب شده (که این خیلی رومخه)، کدها ترتیب مشخصی نداره، کامنت نخورده و اصلا یه چیزه شخمی و درهم برهمه. بعد به اونی که اینا رو پیاده کرده میگی این چیه؟ میگه نگران نباش. داره کار میکنه اگر هم نفهمیدی بگو من برات توضیح میدم (که این خودش از فحش بدتره).عزیزم لازم نکرده. به قول بزرگ دیگری leave the code better than you found itلذا وظیفه داریم همیشه بهترین و کاملترین نسخه ای رو که در توان داریم (درحد سوادمون یعنی) پیاده کنیم و کارو گردن یکی دیگه نندازیماگه به کامپایلر دروغ بگید، بعدا انتقامش رو ازتون میگیره! (هنری اسپنسر)دروغ که کلا چیز بدیه o: ولی اینکه چطوری میشه به کامپایلر دروغ گفت خودش بحث جداییه و مفصلی که میشه جداگونه درمورش حرف زد. اما به طور خلاصه، استاد داره هشدار میده که آقا از اول کارتو درست انجام بده. اینکه بخای با اما و اگر و قسم و آیه‌ یه برنامه رو جلو ببری و تستارو شانسی رد کنی یه جا کارت گیر میفته و دیگه هیچی.. باید از اول هی برگردی عقب ببینی کجارو گند زدی و همه چیو درست کنی.گفتنش ساده س ولی اِنقدر زیاد، اِنقدر زیاد این معضل توی تیم های برنامه نویسی دیده میشه که حد نداره. و حتی اکثر اوقات، فرد نابلدی که به اشتباه یا با پارتی بازی یا هرچیزی توی یه موقعیت حساس قرار گرفته، با این سبک کار کردن و سهل انگاریش کل زحمت بقیه رو به باد داده و ما کِی اینو می‌فهمیم؟ وقتی که طرف از تیم جدا میشه و به اصطلاح فلنگو میبنده و میره.یه برنامه نویس خوب کسیه که وقتی میاد از یه خیابون یه طرفه عبور کنه، هردو طرف رو نگاه میکنه (داگلاس لیندر)اگه فکر میکنی برنامه نویس خوبی هستی، برو یه خیابون شلوغ یه طرفه تو شهرت پیدا کن و بعد صبر کن ببین غریضه ت چیکار میکنه.اگر یه طرفو نگاه میکنی که باید روی خودت کار کنی و تو یه بیسوادی :) اگه دوطرفو نگاه میکنی که روحت به همراهت استاد قرین رحمت و شیر پدر، نان مادر حلالتاما اگه مثل عده کثیری اصن نگاه نمیکنی و همین که احساس میکنی دور و برت خلوته، زارت از خیابون رد میشی، واقعا چطور حوصله کردی تا قسمت سوم رو بخونی؟ برگرد به زندگیت آقا جان.اما واقعا، این داستان توی کارِ ما هم صدق میکنه. رجوع میدم به همون داستان تست نویسی و تست کردن مداوم برنامه که فقط آدمهای اهل دل حالِ انجامشو دارن. و یا کلی کار کوچیک دیگه که درنهایت به کاهش احتمال خطا کمک میکنه و کلی ثواب داره. آدمای این شکلی همونایی هستن که به طور حتم دوطرف خیابون رو هم نگاه میکنن و استاد این جمله رو به اونها تقدیم کرده.صحبت کردن رو ولش کن. کدت رو نشون بده (لینوس توروالدز)محبوب ترین جمله من از بین تمام این جملات، همین یه دونه س که استاد بزرگ، خالق لینوکس، مردی از خطه نیویورک، گفتن و همه مارو به تفکر واداشتن.ضمنا پیشنهاد میکنم هر تیم لید، مدیرپروژه یا هر مدیری که قراره با برنامه نویسهای زیردستش سر و کله بزنه، یه دونه بنر ازین جمله درست کنه و بچسبونه پشت سرش که هرکی خواست بیاد سراغش حساب کار دستش بیاد.و خطاب به برنامه نویس جوون، اگه گند زدی تو کد و به مشکل خوردی، باز این جمله رو سرلوحه کارت کن. حرف زدن رو ولش کن، برو تو خود کد.من برنامه نویس توپی نیستم. من فقط یه برنامه نویس خوبم که عادت‌های توپی داره (کنت بک)به به. چقدر تواضع و فروتنی در این جمله ریخته. پر از حکمت و لطافت و طبع والا و توانمندی.لابد درمورد اهمیت عادت‌ها شنیدید و کم نیستن کتاب‌های خوب و بدی که درمورد عادت‌ها حرف زدن. عادت همه چیو تو یه آدم می‌سازه و حتی فکر کردن و ایده پردازی و کارهای انتزاعی و خلاقانه ای که به نظر از دل یه الهام یا لحظه خاص به ذهنمون میرسه حاصل همین عادت‌هاس. اما برای برنامه نویس جماعت، که هرروز باید یه کار مشخص و از قبل تعیین شده رو انجام بده عادت چندبرابر مهم تر هم میشه. اینکه چقدر به پیشرفت خودش فکر کنه، دانشش رو هرروز، حتی در حد 2 صفحه مطالعه بیشتر کنه و سعی کنه اشتباهات قبلی شو کمتر انجام بده، راس ساعت مشخصی کار رو شروع و تموم کنه، تمرکزش رو برروی تسکها بزاره و کلی عادت ریز و بسیار ساده دیگه، میتونه بعد از مدتی اونو به یه غول واقعی مبدل کنه.و جالبه که وقتی توی سبک زندگی آدمهای خبره هم ریز میشیم میبینیم که دقیقا همینه. اونا کارای عجیبی نمیکنن، بلکه فقط کارهای ساده رو به شکل عجیبی تکرار میکنن.اول مشکل رو حل کنید، بعد کد بزنید (جان جانسون)از انیشتین نقل شده که :اگه بخام مشکلی رو حل کنم که 1 ساعت برای حلش زمان نیاز باشه، 55 دقیقه شو صرف فکر کردن به مشکل و 5 دقیقه روصرف فکر کردن به راه حل میکنم.ازین بابت، میشه این جمله رو به این معنا هم تفسیر کرد که درک کامل مسئله‌، پیش از شروع پیاده سازیش، میتونه خیلی خیلی زیاد، مفید و مهم باشه و خروجی کار رو توی زمان کمتر و به شکل بهینه تری به ما بده. چه بسا که خیلی ازاوقات، مشکل ما حین پیاده سازی یه ویژگی، ناشی از کمبود دانش یا تجربه مون نیست و بیشتر به خاطر اینه که هنوز خوب مسئله رو درک نکردیم. یا حتی بدتر ازون، گاهی به خاطر همین کم توجهی و شتاب بیش از حد، باگی رو به وجود آوردیم که ممکنه چندماه بعد خودشو نشون بده و در اون زمان، رفع و رجوعش چندین و چندبرابر زمان بیشتری رو بطلبه.لذا درک این موضوع و تبدیلش به یه عادت همیشگی بی نهایت اثرگذاره. همونطور که انيشتين هم پیشنهاد کرده. (دیگه انیشتین شوخی نیست که)</description>
                <category>محمدرضا سخایی</category>
                <author>محمدرضا سخایی</author>
                <pubDate>Mon, 05 Jun 2023 10:36:34 +0330</pubDate>
            </item>
                    <item>
                <title>حق های برنامه نویسی (قسمت دوم)</title>
                <link>https://virgool.io/@righter/%D8%AD%D9%82-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%88%D9%85-v67tuapuazg8</link>
                <description>بعد از قسمت اول، و استقبال چشمگیری که از این مجموعه پست شد (به لایکها توجه کنید!) ما هم گفتیم بریم سراغ ادامه این جملات.مهمترین ویژگی یه برنامه اینه که آیا هدف کاربر رو برآورده میکنه یا نه؟ (تونی هور)ازونجایی که قرار نیست واسه دل خودمون برنامه بنویسیم و تازه بعید هم هست دراین حالت بهمون پول بدن، لازمه همیشه یه کاربر نهایی یا یوزر بیچاره هم درنظر داشته باشیم که قراره ازین برنامه استفاده کنه. خب، این که خیلی تابلوئه. اما واقعاً ما، چند درصد مواقعی که داریم روی یه پروژه کار میکنیم به کاربر برنامه هم فکر می‌کنیم؟ یا حتی مهمتر ازون موقع انتخاب یه شرکت برای شروع کار..طبیعتاً یکی از مهمترین عواملی که میتونه توی انگیزه دادن به ما برنامه نویسا نقش مثبت داشته باشه همین هدف برنامه س. اینکه خروجی اون چقدر داره بازخورد مثبت میگیره، برای چه کاربری داره نوشته میشه و چندتا یوزر داره؟و اینکه، آیا ما صرفا یه پیاده کننده خواسته های مدیر تولید هستیم یا دوست داریم تاثیر مثبتی روی خروجی برنامه بزاریم؟به نظرم فکر کردن به این موضوع و درک بیشتر خروجی نهایی کاربر هم توی نحوه کار کردن ما و هم توی میزان لذتی که از کارمون می‌بریم به شدت مؤثره.یکی از مفیدترین روزهام وقتی بود که 1000 خط کد رو پاک کردم (کن تامپسون)1000 خط؟ مگه داریم! اگرچه ما نمیدونیم استاد کل 1000 خط رو توی یه لحظه پاک کرده (و احتمالا روی کیبورد خوابش برده) یا به مرور. ولی هرچی که هست حتی فکر کردن به حذف این همه کد به درد نخور لذت بخشه. خب قبلا هم درمورد اهمیت این کار گفتیم و میدونیم جز اینکه خوانایی برنامه رو بالا میبره، روی عملکرد، سرعت و کلی پارامتر دیگه هم تاثیر داره. ضمنا موقع پاک کردن کدها، حتما یه لیوان آب قند هم بزارید بغل دستتون.نمیشه بدون یه تیم عالی، یه نرم افزار عالی داشته باشید (جیم مک کارتی)آقا تیمِ خوب، همه چیزه. تیم که خوب باشه از توش پول خوب درمیاد، از توش زن و زندگی درمیاد (مخصوصا برنامه نویس جماعت) و اطلاعات و دانش و هرچی که باید زودتر توی این کار یاد بگیریم. اینا همه مال تیم خوبه. و شاید با من موافق باشید که گاهی آدم باید خیلی خوش شانس باشه تا یه تیم خوب گیرش بیاد.اینه که من میگم تا میشه سعی کنیم توی انتخاب اون گروه و شرکت و پروژه حساسیت به خرج بدیم و بعد واردش بشیم، چرا که یهو میریم توی یه تیم / شرکت و همینطوری زرتی یکسال یا بیشتر از عمرمون رو اونجا میگذرونیم، بی اینکه بدونیم میتونستیم تو چه جای بهتری باشیم. و این خیلی روی مسیر کلی کارمون هم تاثیر میزاره.هیچ وقت نمی‌تونید بفهمید یه برنامه نویس داره چیکار میکنه تا اینکه دیگه خیلی دیر شده (سیمور کری)این جمله رو هر مدیری باید قاب کنه بزنه رو دیوار اتاقش. نه؟ و واقعاً چه توصیفی کاملتر از این برای برنامه نویس جماعت؟ که حتی بعد 20 سال هم نمیشه به طور کامل اونا رو شناخت و پیش بینی کرد.اصلاً برنامه نویس جماعت ازون دسته موجوداتیه که حتی توی سنگین ترین بازجویی ها و سخت ترین شکنجه ها لب از لب باز نمیکنه تا یا گندِ کارش دربیاد و مجبورت کنه خودتو آتیش بزنی یا بزنه چارتا فیچر خفن رو یهو از تو آستین دربیاره و تو رو در بهت، حیرت و سکوت، رها کنه.و لابد این رو هم شنیدید که این جماعت، شباهت غیرقابل انکاری به قاتلهای زنجیره ای هم داره و به نظرم خداروشکر که هنوز پاشون به خلاف باز نشده!منم همیشه دوست داشتم نظر بقیه رو درمورد این جمله بدونم و اساساً بفهمم ریشه این رفتارای حرص دربیار ما برنامه نویسا چیه؟ هوم؟سادگی یه برنامه یکی از شرایط قابل اطمینان بودنشه (ادسخر دیکسترا)میگن سادگی هرچیزی از دل میلیونها پیچیدگی دیگه درمیاد. یه تابلوی نقاشی به ظاهر ساده خبر از اوج مهارت یه نقاش باتجربه میده.یه داستان خیلی روون، دلنشین و ساده، نشون دهنده تسلط بسیار زیاد نویسنده به کارشه و توی برنامه ها هم، برنامه ای که به سادگی (از دید کاربر) خواسته هارو به انجام میرسونه و هدف کاربر رو برآورده میکنه، از دل هزاران خط کد تست شده و هزاران برنامه نویسِ له شده دراومده و انقدر خوشگل و سبک مقابل ماست.(یاد دیوار چین افتادم و دلم برای خودمون سوخت! میدونید که حین ساخت دیوار چین چندهزار کارگر اون وسط مُردن و لای دیوارها دفن شدن تا کار عقب نیفته. مثل کدهای پروژه ای که آدمهای قبلی زدن و رفتن و هیچ رد و نشونی از خودشون به جا نزاشتن، تا ما راحت روشون قدم بزاریم)پ. ن : استاد ادسخر با این اسم تو دل برو، یکی از شناخته شده ترین افراد حوزه کامپیوتره که تو هر کتاب تئوریکی اسمی ازش هست. از الگوریتم و ساختار داده تا رياضیات و..</description>
                <category>محمدرضا سخایی</category>
                <author>محمدرضا سخایی</author>
                <pubDate>Sun, 04 Jun 2023 10:57:33 +0330</pubDate>
            </item>
                    <item>
                <title>حق های برنامه نویسی (قسمت اول)</title>
                <link>https://virgool.io/@righter/%D8%AD%D9%82-%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84-p85muflkpqxt</link>
                <description>قبلترها، توی یه گوشه از سیستمم یه مجموعه عکس داشتم درمورد جملات قصار برنامه نویسی از آدمای موفقی که توی داستان نرم افزار و اینا فعالیت دارن و خب، اگرچه شاید به اندازه ما هم کد نزدن، اما انصافاً حرفاشون حق بوده و خودمم هربار بعد از مرور مجددشون، میبینم اوووف ، چقدر این حرف تازگی داره و من خوب بهش توجه نکردم. لذا جا داشت که این مطلب رو به عنوان مجموعه اول از حق های برنامه نویسی نام گذاری کنم. حالا بریم ببینیم این بزرگان چیا میگفتن :کد حذف شده، کد دیباگ شده س (جف سیکل)حق اول. غیر از اینه؟ اگه بدون فکر کردن و دیباگ کردن کدت رو پاک میکنی که اصن اینجا چیکار میکنی لامصب؟ تو خودت باید یه پیج جدا از جملات حق برای خودت راه بندازی اما اگر دیباگ میکنی و بعد از کلی مشقت و سختی و حساسیت و استرس، چندخط کد کهنه رو میریزی دور، همینجا از طرف مردم کشورم بهت خسته نباشید میگم و دستت رو میبوسم. حقیقتاً یکی از بهترین فعالیتها برای بهبود کارایی و خوانا کردنیه تیکه کد، که به قول معروف باقیات صالحات کار ما هم به حساب میاد، دور ریختن کدهای قدیمی و کهنه س. پس بهش توجه کنیمگاهی اوقات لازمه کدتون رو رها کنید و بزارید به حال خودش بمونه (جویس ویلر)آخ آخ. چقد این جمله رو دوس دارم. نمیدونم چندبار برای شما این اتفاق افتاده که روی یه مسئله ای گیر کردید و هرچقدر تقلا میکنید انگار بیشتر توی اون مردابِ خودساخته فرو میرید و هیچ راهی برای حلش پیدا نمیکنید. خب توی برنامه نویسی که ماشالا هنر حل مسئله س، ممکنه هرروز این اتفاق بیفته و هرچی چنگ به خودت بزنی و موهاتو بکنی و به در و دیوار مشت بکوبی فایده ای نداره (که نداره)، درعوض میتونی بلند شی و بری یه کمی قدم بزنی تا ذهنت باز شه و خب، نکته مثبت ماجرا اینجاس که بعد از این استراحت کوتاه، وقتی برمیگردی سرکار، میبینی که بله، به یه راه حل رسیدی و مشکلت حل شده. یا حتی انقدر تو اون لحظه تحت فشار بودی که اصن همه این مشکلات به خاطر یه سوتی خیلی کوچیک و مسخره اتفاق افتاده که خودت هم از دیدنش خجالت زده ای. (مثلا break point رو جای اشتباهی گذاشتی یا یه مقدار رو خیلی تابلو اشتباه پاس دادی ...)البته این هم بسیار پیش میاد (به خصوص برای خودم) که روی اون مشکل قفلی میزنیم و هرچی هم با بیل و کلنگ میزنن تو سرمون که بابا ولش کن، پاشو بیا یه هوا بخور، ول کن نیستیم و میگیم نه! من باید اینو حل کنم و اونجاست که توی همون مرداب گرفتار میشیم. لذا جا داره با با تمرین و جدی گرفتن این ماجرا، این راهکارو توی ذهنمون جا بندازیم.برای کدِ بد کامنت ننویسید، برید درستش کنید (برایان کرنیگان)قابل توجه بچه خوشگلا. عمو اون کد رو باید درست کنی، داستان نوشتن و این بازیا دیگه قدیمی شده، ما خودمون ختم روزگاریم و الخ.حالا داستان چیه، اگه یه خورده کلی تر به این جمله نگاه کنیم میبینیم که خیلی وقتا دچار این مسئله میشیم. از یه کدی میترسیم و به هزار بهونه میخایم از درست کردنش فرار کنیم، اما حاضریم با جنگولک بازی و شکل و نمودار کشیدن برای اون از زیر کار دربریم. همین موضوع درمورد تست نوشتن هم پیش میاد. قبول دارید؟ طرف حاضره به هزار زبون زنده دنیا فانکشنش رو توضیح بده اما زورش میاد تست بنویسه. داداش تست بنویس ما خودمون بلدیم بریم بخونیم.خب. بریم سراغ جمله بعدی تا بیشترازین قاطی نکردیمزبانی که نحوه نگاه شما رو به برنامه نویسی تغییر نده ارزش یادگیری نداره (آلن پرلیس)البته استاد اینجا یه کمی تند گفته و در این حد هم نیست. اما اگه شما هم مثل من با استاد موافقید که چه بهتر. واقعاً وقتی میخایم روزها و شبامون رو با یه زبان بگذرونیم و به شکل رمانتیکتر، باهاش زندگی کنیم، طبیعیه که باید موقع انتخابش دقت کنیم و کلی از خصوصیاتش بهره ببریم تا درنهایت بفهمیم که چقد به کارمون میاد. اتفاقی که مشابهش برای من هم افتاد، درحالیکه تا سالها زبان اصلی برنامه نویسیم سی شارپ بود، و به شدت طرفدار سرسختش بودم به توصیه یه دوست رفتم با golang آشنا شدم و الان کلا نظرم برعکسه. (البته که تابلوئه همه زبانها خوبن و هرکدوم خاصیت خودشون رو دارن اما منظور توی کاربرد و نحوه کدنویسی مونه که شاید بخشیش هم شخصی باشه). و خب ازون زمان به بعد، اساساً درک مسئله م به شدت تغییر کرد. به جز اینکه، جایی توی یه انجمن برنامه نویسی از یه برنامه نویس خیلی پیر خوندم که گفته بود، سعی کنید هر دوسال لااقل با یه زبان جدید آشنا شید و یه کمی باهاش کار کنید (حتی اگه نمیخاید به طور کامل بهش مهاجرت کنید) و خب این حرف خیلیهای دیگه هم هست (خیلی دوست دارم نظر و تجربه های شما رو هم بدونم)آزمایش منجر به شکست میشه و شکست، منجر به درک (برت روتن)اول اینکه این آقای برت روتن، مهندس هوافضاس و تا حالا یه خط هم کد نزده، اما خب اینکه دلیل نمیشه.دوم اینکه نمیدونم این جمله تو بحث هوافضا چقد جواب میده، مثلاً فک کن یه سری آدمو میفرستن فضا، بعد اونا همونجا گیر میکنن یا موشکشون میتَرَکه که این میشه یه شکست، ولی اون بدبختا دیگه بعدش چیو باید درک کنن؟  (درکم از هوافضا در همین حده)ولی خب، خوشبختانه توی کامپیوتر و کدنویسی به گمونم اونقدری خطرناک نیست، لذا این جمله کبیر رو اینجا آوردیم. ضمن اینکه فکر میکنم همینطوره. چقدر چیزهایی که یاد گرفتیم مدیون کدهای پرخطا، تستهای شکست خورده (شکست خورده به ترجمه failed!) و حتی تسکهایی بوده که پیش از شروع، حتی جرأت انجام دادنشو نداشتیم ؟پس بیاید این جمله رو یه کمی تغییر هم بدیم و اصلا بگیم :هرچی بیشتر اشتباه میکنی، بیشتر تجربه میکنی و هرچی بیشتر تجربه میکنی، بیشتر میفهمی. (هرچی هم بیشتر بفهمی بیشتر بهت پول میدن!)دو راه برای نوشتن برنامه های بدون خطا وجود داره، ولی راه سوم از همه اونا بهتره (آلن پرلیس)وای خدایا کاش میشد صدای خنده رو هم یه جوری نوشت. من این جمله رو به شدت دوست دارم. استاد مارو دعوت کرده بریم دنبال راه سوم که البته نمیدونم کجاس (شاید منظورش این بوده که تنها بریم خونه ش :o )اما حالا که دو جمله از آلن پرلیس گفتیم، بد هم نیست بگیم که ایشون به خاطر دستاوردهای فراوان در توسعه زبان های برنامه نویسی، اولین برنده جایزه معتبر تورینگ بوده و الان هم به گمونم بیشتر از 30 ساله که فوت کرده (خدایش بیامرزد)</description>
                <category>محمدرضا سخایی</category>
                <author>محمدرضا سخایی</author>
                <pubDate>Fri, 02 Jun 2023 20:12:06 +0330</pubDate>
            </item>
                    <item>
                <title>و در ابتدا مُشتری بود ... (قسمت اول)</title>
                <link>https://virgool.io/@righter/%D9%88-%D8%AF%D8%B1-%D8%A7%D8%A8%D8%AA%D8%AF%D8%A7-%D9%85%D9%8F%D8%B4%D8%AA%D8%B1%DB%8C-%D8%A8%D9%88%D8%AF-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84-kcrw2aw4qz3r</link>
                <description>وای چه نکته عالی ای گفتید قربانبله، عرض کنم که بنده به عنوان یه برنامه نویس، مدت نسبتاً زیادی رو به صورت فریلنسر فعالیت میکردم.خب، با خودم فکر میکردم اینطوری هم میتونم بیشتر پول دربیارم هم اگر مستقیم و بی واسطه با مشتری رو در رو بشم، خیلی سریعتر و راحتتر میتونم همه نیازهاشو بفهمم و کار رو اونطوری که دوس دارم جلو ببرم، ضمن اینکه دیگه نیازی به دستور گرفتن از کسی نبود و پولها هم مستقیم به حسابم واریز میشد. اگرچه این مسیر لذتهای خودش رو داشت اما همیشه مشکلات خیلی خیلی زیادی هم درونش بود که در ظاهر و ابتدای اون مشخص نمیشد. یعنی منم نمیدونستم اصلا!اما... فارغ از خوب یا بد بودن فریلنسری یا کار کردن به صورت آزاد تو این حرفه (منظورم دقیقاً طراحی و برنامه نویسی سایته) تو این چندسال با مشتریها یا کارفرماهای زیادی روبرو شدم که هرکدوم تیپ و منش و اخلاق و مسخره بازیای خودشونو داشتن و من هم متناسب با این تیپ هربار روش خاصی رو پیش میگرفتم که گویا در راه رسیدن به پروژه و عقد قرارداد موثر بود.لذا تصمیم گرفتم ازین به بعد، اینجا، هر بار یکی از این تیپهارو معرفی کنم و کمی درمورد قلق هاشون بگم. پیش و بیش از هرچیز بگم که ممکنه این توصیفات و روشها نادرست بوده و به کارتون نیاد، چه بسا زودتر شما رو به فنا بده (که حالا بد هم نیست)، ولی خب یه بارم امتحان کنید شاید کار کرد.اما بگذریم ازین مقدمه طولانی.بریم سراغ تیپ یک. مشتریهای گنده گو {..}که گویا سهم بیشتری از بازار رو اشغال کردن، ایشان وقتی میان سر قرار (مثلا تو دفتر شما) یه کت شلوار نسبتاً مرتب دارن که برحسب قدرت به صورت نزولی از تیره و سیاه شروع میشه میرسه به آبی نفتی و بعد خاکستری. (اگه قرمز بود احتمالا اون میخاد برا شما سایت طراحی کنه!) پیرهن میرهن هم حالا شما بگو چارخونه، یا سفید یا هر چیزی که دربرابر کت حرفی برای گفتن نداشته باشه. (چون اصل اون کته س و پیرهن حمالیشو میکنه)query for this type of customer : 
select * from db.customers 
where range_coat in (&#039;meshki&#039; , &#039;abi_nafti&#039; , &#039;khakestari&#039;) 
and pirhan != null 
و صورت تراشیده یا با ریش مرتب و کوتاه، دستها تر تمیز و کم مو (یه چند پره مو جلوی مچ روییده) ، چشمها بدون گودی (منم یه خورده اغراق میکنم!) دهن هم به مثابه انبار خشابهایی از پرسونال برندینگ و هرآنچه او را صاحب خفن ترین کسب و کار دنیا در سال 2021 نشان بده. که درواقع قراره از لحظه شروع صحبت، شما رو تیر بارون کنه.مو و اینا هم آراسته ، دیگه عرض کنم سوییچ داره صد در صد، 206 یا یه ماشین بهتر، (ولی نه در حد شاسی بلند چون اگه شاسی بلند داشت نمیومد با شما قرارداد ببنده) و ساعت و ماسک سیاه (در دوران کرونا) . لذا وقتی میرسن پشت میز ماسک رو زود درمیارن، میزارن کنار موبایل آیفون و کیف پول و همون سوییچه. (خیلی خوشگل کنار هم چیده میشن ولی فوق العاده بی ربط)اما اینا اصلا مهم نیست، حتی حرفهای ایشون هم خیلی مهم نیست، فعلا مهم توجه شما به دستا و چشماست. وقتی نشستید جلوشون، فقط به چشما و دستها نگاه کنید. دستها اولش خیلی شیک درهم گره خورده، اما به محض اینکه شما بگید بفرمایید من درخدمتم، یهو از هم میجهه و در هوا به شدت به حرکت درمیاد، متناسب با جملاتی که از برند و کارش میگه (که طبیعتاً خالی بندیه) اونهارو مثل ماهیتابه ای در حال تفت کره تکون میده و اگه بخواد همه چیز باکلاستر شه گاهی از زبونش برای مرطوب کردن لب پایینی استفاده میکنه (ووق!) و چشمها چی؟ چشمها گاهی درشت میشه، گاهی ریز، یه وقتایی هم اصن نمیفهمیدم چی شددستا رو خوب بپاییدحالا ما باید چیکار کنیم؟ هیچی. فقط سکوت.یعنی یه لبخند مسخره بنداز رو صورتت و بزار استاد خوب خودشو خالی کنه. و اگه برنامه نویس هستی بهتره بگیم تمام حرفهاشو کامنت کن (یعنی یه // بنداز اول حرفهاش تا لحظه ای که چاییشو خورد و گفت حالا شما بفرمایید دوباره ازینا بنداز تهش // دیگه سینتکس کامنت رو متناسب با زبانت تغییر بده)و به دستها و چشمهاش خوب دقت کن. یعنی درحینی که داره از عظمت مجموعه و دستاورهاش میگه، کمی دهن رو به نشانه تعجب باز کن و اگه خیلی میخای مسخره تر بشی بگو Wow. (که لامصب جواب هم میده)یعنی میخام بگم سعی کن بعد از هر جمله یه ری اکشن داشته باشی و یه کلمه ای مثل عجب، جداً؟ نه بابا! خیلی جالبه، درود بر شما یا خیلی عجیبه بگی. یا خب تابلوئه که وقتی یه جوک یا یه خاطره میگه یک خنده صدادار از خودت بکنی که سقف دهنت رو نشون اون بده.پس، تا اینجای کار خوب همینکارها رو بکن، تا جلوتر بگیم که مثلا چه سوالایی از ایشون بپرسیم یا چطوری بفهمیم که استاد اصلا چه نیازهایی برای سایتش داره یا اصلا چی میخاد؟ (اگرچه اینهارو خیلی بهتر از من دیگرون توضیح دادن من فقط تخصصم تو ری اکشنه)و اینکه اگر هم شما تجربه مشابهی داری چه خوب که به منم بگی که باهم sync &amp; updateشیم. پس فعلا شب بخیر</description>
                <category>محمدرضا سخایی</category>
                <author>محمدرضا سخایی</author>
                <pubDate>Sun, 02 Jan 2022 18:35:25 +0330</pubDate>
            </item>
                    <item>
                <title>Scalability یا چطور Scale بشم</title>
                <link>https://virgool.io/@righter/scalability-%DB%8C%D8%A7-%DA%86%D8%B7%D9%88%D8%B1-scale-%D8%A8%D8%B4%D9%85-xoljva3n5rzh</link>
                <description>جا داره حین نوشتن اولین مطلب ویرگولی درمورد رشته کاریم از پدر و مادر، اساتید دانشگاهی، مربیان باشگاهی، فامیلهای درجه یک و دو و لگاریتمی و حامیان معنوی (نه مادی) خودم که دوست داشتن دست از مسخره بازی بردارم تشکر کنم. تمنا دارم درصورت عدم رضایت از مطالب ذیل و فوق و بعدی، بنده رو با فحش رهنمون نکنید و بهم فرصت بیشتری بدید. باشد که مقبول گردیمیکی از 5 ویژگی اساسی در سیستمهای توزیع شده Scalability یا مقیاس پذیریه. که البته چیز بسیار خوبی هم هست. به چه معنا؟به این معنا که یک سیستم، process یا شبکه بتونه متناسب با حجم درخواستها (که ماشالا همیشه رو به افزایشه) خودش رو گسترش بده. حالا بد نیست اول بگیم چرا باید یه سیستم مقیاس پذیر باشه، به دلیل افزایش این چند مورد :حجم داده هایی که درونش هستحجم کارهایی که ازش خواسته میشهحجم تراکنشهایی که داره انجام میدهو کلی حجم دیگهو خب باید حواسمون هم باشه که این مقیاس پذیری عملکرد سیستم رو کاهش نده و روی فعالیت کلی اثر منفی نزارهمثلا توی یه شبکه، مقیاس پذیری حاصل از جدا کردن ماشینها، باعث کندی سرعت اون نشه و اصلا هدف از این کار اینه که ما بتونیم بار رو به شکل مساوی بین گره هامون تقسیم کنیماما scaling به دو صورت صورت میگیره :1) Horizontal2) VerticalHorizontal میگه که بیا با افزایش تعداد سرورهات منابع سیستم رو گسترش بده و Vertical میگه بیا به همون یه سروری که داری منابع قویتری تخصیص بده (حالا میخاد رم باشه ، سی پی یو باشه یا آب هویج مشکلی نیست)حالا اینا چه فرق هایی دارن ؟Horizontal : خب ساده تره دیگه، اینکه بیایم سرورهامون رو افزایش بدیم، به ما قابلیت dynamic scaling هم میده و احتمال کاهش Down time سیستم هم خیلی بالاترهاماVertical : چون قراره روی منابع همون سرور کار کنه که درگیره و دستش بنده، محدودیتهای بیشتری هم داره و احتمال down time هم هست دیگه اینکه Horizontal Scaling رو میشه به شکل خوبی به کمک دیتابیسهای NoSql مثل MongoDb و Cassandra انجام داد و Vertical Scaling هم به کمک دیتابیس های relational مثل MySQL و باقی دوستاناینم عکسش!</description>
                <category>محمدرضا سخایی</category>
                <author>محمدرضا سخایی</author>
                <pubDate>Wed, 27 Oct 2021 21:32:39 +0330</pubDate>
            </item>
            </channel>
</rss>