<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Ahmad Abdollahzadeh</title>
        <link>https://virgool.io/feed/@ahmadabd13741112</link>
        <description>یک برنامه نویس و علاقمند به تکنولوژی، اپن سورس و فلسفه. آدرس لینکداین: https://www.linkedin.com/in/ahmad-abdollahzade-848421147</description>
        <language>fa</language>
        <pubDate>2026-06-16 13:16:37</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/34548/avatar/k0dQ4L.png?height=120&amp;width=120</url>
            <title>Ahmad Abdollahzadeh</title>
            <link>https://virgool.io/@ahmadabd13741112</link>
        </image>

                    <item>
                <title>🚀 عصر جدید توسعه محصول: چرا MVP های ساده دیگر کافی نیستند؟</title>
                <link>https://virgool.io/@ahmadabd13741112/%D8%B9%D8%B5%D8%B1-%D8%AC%D8%AF%DB%8C%D8%AF-%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D9%85%D8%AD%D8%B5%D9%88%D9%84-%DA%86%D8%B1%D8%A7-mvp-%D9%87%D8%A7%DB%8C-%D8%B3%D8%A7%D8%AF%D9%87-%D8%AF%DB%8C%DA%AF%D8%B1-%DA%A9%D8%A7%D9%81%DB%8C-%D9%86%DB%8C%D8%B3%D8%AA%D9%86%D8%AF-iavarhk4kie4</link>
                <description>چشم‌انداز توسعه محصول در طول دهه گذشته اساساً تغییر کرده است. استراتژی زمانی موفق &quot;انتخاب چند ویژگی ساده برای یک MVP&quot; (حداقل محصول پذیرفتنی) امروزه به طور قابل توجهی چالش‌برانگیزتر شده است. این تغییر ناشی از نیروهای بازار و فناوری به هم پیوسته‌ای است که استانداردها را برای آنچه یک محصول &quot;حداقلی&quot; قابل دوام را تشکیل می‌دهد، افزایش داده‌اند.۱. زمینه تاریخی: زمانی که MVP های ساده رونق گرفتنددر روزهای اولیه روش استارتاپ ناب (Lean Startup) – که توسط اریک ریس رواج یافت – رویکرد MVP انقلابی بود. در آن زمان:چشم‌انداز دیجیتال کمتر اشباع شده بود: کاربران نسبت به لبه‌های ناهموار محصولات بخشنده‌تر بودند.مزیت اولین بودن: صرفاً ارائه یک محصول کاربردی به بازار می‌توانست مزیت رقابتی قابل توجهی ایجاد کند.مثال‌ها: شرکت‌هایی مانند دراپ‌باکس با یک ویدیوی توضیحی ساده موفق شدند و ایر بی‌ان‌بی مفهوم خود را با اجاره دادن آپارتمان خود اعتبارسنجی کرد.در آن دوره، پذیرندگان اولیه انتظارات حداقل عملکرد را داشتند و از آزمایش مفاهیم جدید هیجان‌زده بودند و خود را بخشی از سفر نوآوری می‌دانستند.۲. انتظارات بالای کاربران در سال‌های ۲۰۲۴-۲۰۲۵کاربران امروزی انتظارات بسیار متفاوتی دارند که ناشی از سال‌ها مواجهه با محصولات دیجیتال باکیفیت است.انتظارات از روز اول: کاربران انتظار دارند که از همان روز اول، حتی از محصولات در مراحل اولیه، آشنایی یکپارچه، رابط‌های بصری و عملکرد بلادرنگ داشته باشند.درک ناقص بودن: وقتی یک MVP ناقص یا با طراحی ضعیف به نظر می‌رسد، کاربران آن را به عنوان &quot;مرحله اولیه&quot; نمی‌بینند، بلکه آن را ناقص یا غیرحرفه‌ای می‌دانند.افزایش آستانه UX: آستانه تجربه کاربری (UX) قابل قبول به شدت افزایش یافته است. تحقیقات نشان می‌دهد سازمان‌هایی که استراتژی‌های UX قوی دارند، تا سال ۲۰۲۵ سه تا پنج برابر از رقبا بهتر عمل خواهند کرد.از تمایز تا ضرورت: راحتی، شخصی‌سازی و شفافیت، که زمانی متمایز کننده بودند، اکنون به یک امر ضروری تبدیل شده‌اند.نکته کلیدی: &quot;در دنیایی از گزینه‌های نامحدود، قابل دوام بودن کافی نیست. شما باید از روز اول ارزشمند باشید.&quot;۳. اشباع بازار و فشار رقابتیچشم‌انداز رقابتی به طرز چشمگیری تشدید شده است.اشباع آسان: راه‌اندازی یک MVP ساده در بازارهای اشباع‌شده امروزی، الگویی آسان برای کپی کردن و بهبود به رقبا می‌دهد – به‌ویژه با هوش مصنوعی و پلتفرم‌های بدون کد که تکثیر محصول را تسریع می‌کنند.ضرورت تمایز: در بازارهای اشباع‌شده، رشد تنها از طریق گرفتن سهم بازار یا ایجاد تقاضای جدید از طریق نوآوری حاصل می‌شود. این امر تمایز محصول را ضروری می‌کند نه اختیاری.شکست به دلیل عدم تقاضا: آمارها نشان می‌دهند ۴۲٪ از استارت‌آپ‌ها به دلیل تقاضای ناکافی بازار شکست می‌خورند. یک MVP ساده که تمایز واضحی ندارد، برای جلب توجه تلاش خواهد کرد.۴. شتاب فناوری و مفهوم کامل بودنپیشرفت سریع فناوری و هوش مصنوعی، ساخت سریع‌تر و باکیفیت‌تر محصولات را ممکن کرده، اما در عین حال انتظارات را نیز بالا برده است.پیچیدگی مورد انتظار: MVP های مدرن به طور فزاینده‌ای شامل شخصی‌سازی مبتنی بر هوش مصنوعی، تجزیه و تحلیل پیشرفته و ادغام‌های یکپارچه شخص ثالث هستند – قابلیت‌هایی که زمانی پیشرفته محسوب می‌شدند.از MVP به MLP/MVE: این مفهوم به &quot;حداقل محصول دوست‌داشتنی&quot; (MLP) یا &quot;حداقل تجربه پذیرفتنی&quot; (MVE) تکامل یافته است که بر ایجاد ارتباطات عاطفی و تجربیات لذت‌بخش تأکید دارند.اهمیت کامل بودن هسته: یک MVP باید در حل مشکل اصلی که به آن می‌پردازد، کامل باشد. چالش در تمایز بین سادگی و ناقص بودن نهفته است.تأثیر برداشت اولیه: یک MVP ضعیف اجرا شده می‌تواند به برند شما آسیب برساند. کاربران اولیه که چیزی دست و پا گیر را تجربه می‌کنند، فکر نمی‌کنند که &quot;این یک آزمایش است&quot; - آنها فکر می‌کنند &quot;این شرکت نیازهای من را درک نمی‌کند.&quot;۵. پیامدهای استراتژیک برای مدیران محصول مدرناین تغییر به معنای کنار گذاشتن اصول MVP نیست، بلکه مستلزم تطبیق آنها با واقعیت‌های فعلی بازار است. مدیران محصول مدرن در استراتژی مدرن باید:تعادل بین سرعت و محتوا: تمرکز از &quot;حداقل&quot; به &quot;معنی‌دار&quot; تغییر کند – ساخت ساده‌ترین نسخه‌ای که همچنان ارزش و تعامل واقعی ایجاد می‌کند.اولویت‌بندی استراتژیک: به جای ویژگی‌های تصادفی، ویژگی‌هایی را شناسایی کنید که مستقیماً به نقاط درد اصلی می‌پردازند و ارزش قابل اندازه‌گیری ارائه می‌دهند.سرمایه‌گذاری بر UX از روز اول: تجربه استفاده از ویژگی‌های محدود باید شهودی، جذاب و به اندازه کافی صیقل داده شده باشد تا با استانداردهای معاصر مطابقت داشته باشد.تمایز معنادار: MVP شما باید به وضوح گزاره ارزش منحصر به فرد خود را بیان و نشان دهد.استفاده از فناوری‌های توانمندساز: از هوش مصنوعی و ادغام‌های شخص ثالث برای تسریع توسعه بدون قربانی کردن کیفیت استفاده کنید.</description>
                <category>Ahmad Abdollahzadeh</category>
                <author>Ahmad Abdollahzadeh</author>
                <pubDate>Tue, 28 Oct 2025 17:17:04 +0330</pubDate>
            </item>
                    <item>
                <title>تفاوت Clean Architecture و معماری 3-Layer</title>
                <link>https://virgool.io/codenevis/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-clean-architecture-%D9%88-%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C-3-layer-zplh2fex5vio</link>
                <description>اما در این مقاله قصد داریم به بررسی معماری سه لایه بپردازیم. این معماری به طور منطقی کد برنامه شما را به سه قسمت جدا می کند. بیایید ببینیم این لایه ها چیست و چه وظایفی دارند.معماری Three-layer:لایه UI یا Representation layer: این لایه ای است که کاربر مستقیماً با آن تعامل دارد. این لایه یک رابط کاربری است، مکانیزمی برای دریافت ورودی از کاربر. ممکن است شامل controllers و view models و همچنین views باشد که رابط کاربری را تشکیل می‌دهند (صفحات استاتیک HTML، جاوا اسکریپت).لایه منطق کسب و کار یا Business logic layer: این لایه شامل مجموعه ای از اجزا است که وظیفه پردازش داده های دریافتی از لایه UI را بر عهده دارند. تمام منطق کاربردی لازم، تمام محاسبات را پیاده سازی می کند. با پایگاه داده تعامل دارد و نتیجه پردازش را به لایه UI منتقل می کند.لایه دسترسی به داده یا  Data access layer: مدل های داده را ذخیره می کند. همچنین کلاس های خاصی را برای کار با فناوری های مختلف دسترسی به داده ها مانند ORM میزبانی می کند.نکته مهم در اینجا این است که این لایه ها چگونه به یکدیگر وابسته هستند. Data access layer مستقل از لایه های دیگر است. Business logic layer به Data access layer و Representation layer به Business logic layer بستگی دارد. می توانید آن را با جهت فلش های موجود در نمودار بالا ببینید.این بدان معناست که داده‌ها و نحوه نگهداری آن‌ها مهم‌ترین بخش برنامه است. این به این دلیل است که بیشتر برنامه به Data access layer است و هرگونه تغییر در فناوری های این لایه مستلزم تغییر در لایه های دیگر است.جدای از آن، باید توجه داشت که Representation layer نمی‌تواند مستقیماً با Data access layer تعامل داشته باشد. این کار فقط از طریق لایه منطق تجاری قابل انجام است.معماری تمیز یا Clean Architecture:معماری تمیز نیز معماری لایه ای است. دامنه لایه (Entities) در مرکز قرار دارد که توسط لایه برنامه (Use Cases) احاطه شده است. لایه بیرونی شامل پورت ها و آداپتورهایی است که برنامه را با سیستم های خارجی (وب، DB، UI) از طریق کنترلرها، مخازن و ارائه کننده ها تطبیق می دهند.این معماری دامنه محور است. مدل دامنه را در مرکز برنامه قرار می دهد. مدل دامنه هم رفتار و هم داده ها را در بر می گیرد اما تعامل با پایگاه داده را تعریف نمی کند. تداوم و ارائه مدل دامنه فقط جزئیاتی هستند که تا حد امکان دورتر هستند.در این معماری هر لایه، به لایه ی داخلی تر وابسته بوده و به آن  دسترسی دارد. لایه های داخلی هیچ Reference و اشاره ای به لایه های بالاتر  ندارند. هرچند می توانند با ارسال Event آن ها را از وقوع رویدادی باخبر  کنند. همانطور که در شکل مشاهده می کنید لایه ی Entity، داخلی ترین لایه  بوده و به هیچ لایه ی بیرونی وابستگی ندارد.لایه Entities:قوانین كسب و كار سیستم های بزرگ را احاطه می كنند. Entityها می توانند یک  کلاس یا Object باشند که دارای متد هم هست و هم می توانند فقط شامل ساختار  خود موجودیت باشند.لایه Use Cases:این لایه شامل business rule های مختص هر application می باشد. این  business rule ها در واقع همان use case و قوانین تعاملات کاربر نهایی با  سیستم می باشد. این use case ها همانند یک هماهنگ کننده (Orchestrate)  جریان داده به entity ها یا از entity ها عمل می کنند. این لایه نباید هیچ  تاثیری در وضعیت مربوط به entity ها داشته باشد. کار این لایه صرفا هماهنگ  کردن جریان داده به Entity ها یا از Entity ها بر اساس Business Rule و Use  Case ها می باشد. موارد خارجی مانند UI یا Database نیز نباید تغییری بر  لایه Use Case داشته باشد. این لایه از چنین نگرانی هایی جدا شده است. با  این حال ما انتظار داریم تغییرات در عملکرد برنامه روی Use case ها و  بنابراین نرم افزار موجود در این لایه تأثیر بگذارد. اگر جزئیات یک Use  Case تغییر کند، مطمئناً برخی از کدهای این لایه تحت تأثیر قرار می گیرند.لایه Interface Adapter:برنامه موجود در این لایه مجوعه ای از Adapter ها است که وظیفه تبدیل Data  قابل استفاده در لایه های use case و entity را به فرمت مناسب external  tools ها مانند Database یا Web و برعکس برعهده دارد. Viewها و Controllerها در اینجا قرار دارند.لایه Framework and Drivers:بیرونی ترین لایه به طور کلی از framework ها و ابزارهایی مانند بانک  اطلاعاتی، Web Framework و غیره تشکیل شده است. جزییات اصلی کار ما اینجا  هست و اینجا پیاده سازی خواهد شد. پیاده سازی UI جزئیات است، Database  جزئیات است.</description>
                <category>Ahmad Abdollahzadeh</category>
                <author>Ahmad Abdollahzadeh</author>
                <pubDate>Thu, 21 Dec 2023 17:14:40 +0330</pubDate>
            </item>
                    <item>
                <title>تجربیات مصاحبه های شغلی من به عنوان برنامه نویس</title>
                <link>https://virgool.io/@ahmadabd13741112/%D8%AA%D8%AC%D8%B1%D8%A8%DB%8C%D8%A7%D8%AA-%D9%85%D8%B5%D8%A7%D8%AD%D8%A8%D9%87-%D9%87%D8%A7%DB%8C-%D8%B4%D8%BA%D9%84%DB%8C-%D9%85%D9%86-%D8%A8%D9%87-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-ed7y7sgjyboq</link>
                <description>با سلاممن احمد عبدالله‌زاده هستم و قصد دارم در این مطلب تجربیات البته اندک خودم در مصاحبه‌ی شغلی را به عنوان برنامه نویس با شما به اشتراک بگذارم.لطفا نظرات و تجربیات مرتبط خود را در بخش کامنت ها بیان کنید تا به مطلب اضافه گردد تا با کمک هم بتوانیم منبعی خوب برای آموزش مصاحبه فراهم آوریم. هدف کارفرما از مصاحبه:سنجش سطح فنی شماسنجش شخصیت شماسنجش میزان صداقت شماسنجش میزان آگاهی شما از حق و حقوقتانسنجش آورده و میزان تاثیر گذاری و سود شما....به خاطر داشته باشید که فرایند استخدام فرایندی دو طرفه است و علاوه بر شرکت,  شما نیز باید از شرایط استخدام در شرکت راضی باشید.معمولا در ابتدا از شما می‌خواهند خودتان را معرفی کنید.نکته:‌ بسیار با اعتماد بنفس و با لباس رسمی و مرتب در مصاحبه حاضر شوید.نکته: در بیان توانایی های خودتان اغراق نکنید و صادق باشید.نکته: در هنگام بیان هر کدام از تجربیات شخصی خودتان نقاط قوت آن تجربه و چالش هایی که با آن روبرو شده اید را بیان کنید.نکته: هرگز از شرکت قبلی خود بدگویی نکنید.نکته: نشان دهید بسیار منعطف هستید و توانایی بالای در یادگیری چیزهای جدید در زمان کم و حل مشکلات دارید.در جواب به این سوال خودتان  (تحصیلات, تجارب کاری مرتبط, علایق و ...) را شرح داده و از زیاده گویی بپرهیزید.مثلا: یک سال تجربه در حوزه‌ی ... در شرکت ... دارم که تکنولوژی های مورد استفاده من در این شرکت ... بودند و من در این شرکت روی پروژه های ... کار کردم و با چالشهای ... روبرو شدم.یک سال یه عنوان مربی در آموزشگاه ... مشغول بوده‌ام که در آنجا مباحث ... را تدریس کرده و به روش‌های تدریس مسلط شده‌ام و در محیط کار نیز می‌توانم در راستای افزایش سطح علمی همکارانم موثر باشم.....سپس ممکن است در مورد تفریحات و علایق شخصی شما سوال می‌شود تا شخصیت فردی شما را بسنجند.نکته: صادقانه پاسخ دهید اما روی نکاتی که شما را فردی با‌برنامه, اجتماعی, فعال و پرانرژی نشان می‌دهند بیشتر تاکید کنید.در زمان آزادم به مطالعه فلسفه و تقویت زبان انگلیسی می‌پردازم.به گوش دادن پادکست علاقه دارم.به وبلاگ نویسی علاقه دارم و در ویرگول فعالم همچنین ۲ کتاب کوچک در مورد برنامه نویسی نوشته ام.شبی یک صفحه کتاب ترجمه میکنم.با دوستانم به پیاده روی و کافه میرویم.کوهنوردی در صبح زود را دوست دارم.زمانی را برای پیشرفت در زمینه ی تخصصی ام و زمانی را برای یادگیری تکنولوژی های جدید میگذارم.....همیشه سوالی در مورد حقوق مدنظر شما و انتظارات شما از شرکت پرسیده می‌شود.سعی کنید به این سوال پاسخ دقیق ندهید و حقوق مورد نظر خود را بیان نکنید زیرا یا ممکن است از حقوق پیشنهادی خود شرکت کمتر باشد که در این صورت شما متضرر خواهید شد یا آنقدر از حقوق مدنظر شرکت بیشتر باشد که فرصت استخدام را از دست بدهید.در عوض از شرکت بخواهید چارت خود برای تایین حقوق را در اختیار شما قرار دهد یا حداقل شمارا از معیار تعیین حقوق (ساعت کاری,  تخصص, تجربه و ...) آشنا کند تا بتوانید حقوق خود را بسنجید.هرگز بدلیل وعده هایی که ممکن است شرکت به شما بدهد مانند همکاری در آینده و ... به حقوق کمتر از حق خود قانع نشوید.نکته: حقوق دیگر برنامه نویسان به شما مربوط نیست و نگویید هرچه به بقیه میدهید به من هم بدهید.نکته: هدف شما از استخدام روی حقوق شما می‌تواند موثر باشد.کسب تجربه یا رزومه, یادگیری,  مهاجرت  و … میتواند شما را به حقوق کمتر قانع کند.به خاطر داشته باشید که حقوق شما از میزان آورده شما برای شرکت تامین می‌شود.اگر تجربه ی کاری ندارید میتوانید با حقوق پیشنهادی شرکت سه ماه کار کنید و بعد از سه ماه قرار دادی جدید ببندید.همچنین سوالات مد نظر خود را از شرکت بپرسید:در مورد سیستم مورد استفاده شما در شرکت صحبت کنید و یا سیستم شخصی برای شرکت کار نکنید(هیچ کارگری آچار و ابزار مورد استفاده در کارخانه را خودش تهیه نمی‌کند).در مورد مرخصی سوال کنید.در مورد اضافه کاری و پاداش سوال کنید.از بیمه سوال کنید.در مورد افزایش حقوق سالیانه سوال کنید.در مورد محیط کار و همکارانتان سوال کنید.....ممکن است از شما سوالات شخصی بپرسند تا میزان صداقت شما را بسنجند.جوابی برای سوالاتی از قبیل سوالات زیر داشته باشید.چند تا دوست دختر داری.سیگار میکشی یا نه.یکی از شکست های زندگیتو بگو.یکی از موفقیت های زندگیتو بگو.چنتا از چالشهایی که با همکارانت در موقعیت های شغلی قبلی داشته ای را بگو. چندتا از چالشهایی که در کار برای شما پیش آمده را بگو و اینکه چگونه از پس آن مشکلات بر آمده ای. ....سعی کنید طوری به این سوالات پاسخ دهید که نشان دهید انسان صادقی هستید در عین حال در این موارد زیاده روی هم نمی‌کنید.معمولا در آخر از سوالات شما از شرکت می‌پرسند.همانطور که گفتم فرایند استخدام فرایندی دو طرفه است پس تمام سوالات مد نظرتان که در مراحل قبل به آن پرداخته نشده است را از کارفرما بپرسید. برای مثال:در مورد سیستم مورد استفاده شما در شرکت صحبت کنید و یا سیستم شخصی برای شرکت کار نکنید.در مورد مرخصی سوال کنید.در مورد اضافه کاری و پاداش سوال کنید.از بیمه سوال کنید.در مورد افزایش حقوق سالیانه سوال کنید.آیا شرکت برای افزایش سطح من برنامه ای دارد یا برای پیشرفت من زمانی را مدنظر گرفته؟آیا شرکت امکاناتی برای رفاه من در شرکت مد نظر دارد؟آیا شرکت یا کارمندان شرکت باعث افزایش تجربه‌ی من در شرکت می‌شوند.محیط شرکت دوستانه است یا رسمی؟همچنین نشان دهید در استخدام و مصاحبه جدی هستید و کیفیت و سطح شرکت و کارمندان شاغل در شرکت در استخدام برای شما شرط است و حتما قبل از مصاحبه در مورد شرکت تحقیق کنید:آدرس شرکت را بپرسید.آدرس سایت و زمینه هایی که شرکت در آنها فعال است را بپرسید.آدرس لینکدین شرکت را بپرسید و رزومه ی شرکت و کارمندان شرکت را چک کنید.بپرسید تیم شما چند نفره است تا از بزرگی یا کوچکی شرکت مطلع شوید.از تجربه ی کارمندان شرکت بپرسید.در سایت هایی مثل JOBGUY در مورد شرکت تحقیق کنید......</description>
                <category>Ahmad Abdollahzadeh</category>
                <author>Ahmad Abdollahzadeh</author>
                <pubDate>Sat, 31 Jul 2021 16:52:12 +0430</pubDate>
            </item>
                    <item>
                <title>گام به گام در برنامه نویسی پیش می‌رویم</title>
                <link>https://virgool.io/@ahmadabd13741112/%DA%AF%D8%A7%D9%85-%D8%A8%D9%87-%DA%AF%D8%A7%D9%85-%D8%A8%D8%A7-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%AC%D9%84%D9%88-%D9%85%DB%8C-%D8%B1%D9%88%DB%8C%D9%85-crhhzo72dpkg</link>
                <description>با سلاممن احمد عبدالله‌زاده هستم و قصد دارم در این مطلب در رابطه با گام هایی که هر برنامه نویس باید در ابتدای مسیر برنامه نویسی خودش محکم بردارد صحبت کنم.ابتدا می‌توانید  در این مطلب در مورد دلایل اهمیت یادگیری برنامه‌نویسی مطالعه کنید و سپس به چگونگی یادگیری صحیح و اصولی برنامه نویسی بپردازیم. https://vrgl.ir/toNEM امیدوارم براتون مفید باشه :-)برنامه نویسی علمی نیست که آنرا یاد بگیرید، علمیست که باید آنرا درک کنید.برای درک برنامه نویسی ابتدا باید شیوه‌ی حل مسئله را بگونه‌ای که برای کامپیوترها قابل فهم باشد یاد بگیریم.کامپیوترها مانند مغز انسان توانایی درک و حل مسئله را ندارند و باید تک تک مراحل مورد نیاز برای حل یک مسئله را به آن بدهیم تا بتواند آنرا حل کند.در نتیجه، برای درک برنامه نویسی ابتدا باید شیوه‌ی حل مسئله را بیاموزیم، در واقع باید یاد بگیریم چگونه یک مسئله‌ را به مسائل کوچکتر بشکنیم سپس هرکدام از مسائل کوچکتر را حل کرده و از تجمیع پاسخ های بدست آمده جواب نهایی را بدست آوریم که این فرایند طراحی الگوریتم نام دارد. الگوریتم مجموعه‌ای متناهی از دستورالعمل‌ها است، که به ترتیب خاصی اجرا می‌شوند و  مسئله‌ای را حل می‌کنند. به عبارت دیگر یک الگوریتم، روشی گام به گام برای  حل مسئله است.برنامه نویسی چیزی نیست جز هنر حل مسئله یا طراحی الگوریتم.برای یادگیری اصولی برنامه نویسی باید چند گام را به ترتیب برداریم:طراحی فلوچارتانتخاب اولین زبان برنامه نویسیبا تمرین دست های خود را به کد آلوده کنیدخواندن کد دیگراندر ادامه به توضیح آنها میپردازیم.۱. طراحی فلوچارتالگوریتم‌ها دارای پیچیدگی‌های مختلفی هستند و پیاده‌سازی کد مربوط به هرکدام ممکن است کوتاه و یا طولانی و شامل دستورات پیچیده باشد. برای فهم بهتر یک الگوریتم برنامه‌نویسی و نحوه عملکرد آن می‌توان از فلوچارت (FlowChart) استفاده کرد. فلوچارت نمایشی گرافیکی از فرایند یک برنامه است و از مجموعه شکل‌های قراردادی تشکیل شده که به کمک آن‌ها می‌توان دستورات را به ترتیب ترسیم نموده و روند یک الگوریتم را ساده‌سازی کرد. کشیدن فلوچارت مربوط به قبل از شروع برنامه‌نویسی است و وابستگی به نوع زبان برنامه‌نویسی ندارد. فلوچارت‌ها در تعیین روند اجرای دستورات و تعیین ورودی و خروجی برنامه نقش مهمی دارند.در واقع فلوچارت به شما می‌آموزد چگونه یک مسئله را تحلیل و آنرا به اجزای کوچکتر شکسته و حل کنیم.همچنین فلوچارت به شما منطق پشت برخی دستورات برنامه نویسی که در تمام زبان های برنامه نویسی مشترک هستند و در واقع بخشی از منطق برنامه نویسی را میسازند (مانند if، for, ...) را می‌آموزد ودرک دستورات برنامه نویسی را برای شما آسان می‌کند.لازم نیست برای حل هر مسئله برنامه نویسی فلوچارت آنرا رسم کنید، رسم فلوچارت برای افزایش قدرت حل مسئله در شما در ابتدای دوران برنامه نویسی شماست و بعد از مدتی استفاده از آن را کاملا کنار خواهید گذاشت.مثال: فلوچارت برنامه ای که 10 بار عبارت Hello World را چاپ کند. ۲. انتخاب اولین زبان برنامه نویسیپس از یادگیری فلوچارت‌‌ها نوبت به یادگیری یک زبان برنامه نویسی است تا با استفاده از آن مسائلی که در فلوچارت بصورت شماتیک حل کرده‌ایم را کد نویسی کنیم.اما کدام زبان برنامه نویسی را انتخاب کنیم؟زبان‌های C، CPP، C-sharp، Python، Rust و ... هر کدام می‌توانند انتخاب مناسبی باشند، اما برای انتخاب اولین زبان‌ برنامه نویسی زبانی مناسب است که فارق از تمرکز و درگیری با مباحث تخصصی و پیچیده‌ی برنامه نویسی (مانند شی گرایی، اشارگرها، برنامه نویسی موازی و ...) و یا بدون درگیری با انواع داده‌ها‌‌(integer، string و ...) بتوان با استفاده از آن صرفا روی حل مسئله تمرکز کرد تا توان حل مسئله در ما تقویت شود. برای یادگیری یک زبان برنامه نویسی میتوانید از فیلم های آموزشی پولی یا رایگان موجود استفاده کنید یا برای تسلط بیشتر به مستندات آن زبان (برای مثال برای مستندات پایتون به اینجا مراجعه کنید) رجوع کنید.زبانی مثل پایتون می‌تواند بهترین انتخاب باشد. پایتون یک زبان برنامه‌نویسی شیءگرا، تفسیری، سطح بالا، و همه منظوره است. فلسفه اصلی طراحی پایتون «خوانایی بالای کد» است.ساختار زبانی و دیدگاه شیءگرا در پایتون به گونه‌ای طراحی شده‌است که به برنامه‌نویس امکان نوشتن کد  منطقی و واضح (بدون ابهام) را برای پروژه‌های کوچک و بزرگ می‌دهد.کلمات کلیدی و اصلی این زبان به صورت حداقلی تهیه شده‌اند و در مقابل کتابخانه‌هایی که در اختیار کاربر است بسیار وسیع هستند. تمام این ویژگی ها پایتون را به زبانی ساده برای یادگیری در عین حال کاربردی و پر استفاده تبدیل کرده است که در طیف وسیعی از گرایش ها و شاخه‌های رشته های مختلف (از رشته کامپیوتر گرفته تا دیگر رشته‌های مهندسی و یا حتی شاخه‌های پزشکی) استفاده می‌شود.پس از یادگیری اولین زبان برنامه نویسی خود، یادگیری یک زبان جدید می‌تواند بسیار آسان تر باشد و وقت کمتری نیز از شما بگیرد زیرا اکثر مباحث برنامه نویسی در زبان‌های برنامه نویسی مختلف مشابه بوده و فقط تکرار شده اند.برای انتخاب زبان برنامه نویسی بعدی خود به راهنمای انتخاب زبان برنامه نویسی مراجعه کنید.مثال: کد پایتون برنامه ای که 10 بار عبارت Hello World را چاپ کند(مثال فلوچارت بالا).count = 0
while count &lt; 10:
        print(&amp;quotHello world&amp;quot)
        count = count + 1پس از یادگیری برنامه نویسی و افزایش قدرت طراحی الگوریتم در خودتان می‌توانید سراغ یادگیری فریمورک های مختلف برنامه نویسی بروید تا بتوانید از قدرت یک فریمورک در توسعه‌ی نرم افزار خود استفاده کنید.۳. با تمرین دست های خود را به کد آلوده کنیدمتاسفانه اکثر افرادی که می‌گویند به برنامه نویسی علاقه ندارند یا در آن بی استعداد هستند از تمرین فراری اند و صرفا به دنبال یادگیری از طریق دیدن فیلم آموزشی یا شرکت در کلاس های آموزشی هستند و متاسفانه جسارت یا حوصله‌ی نشستن پشت کیبورد کامپیوتر و حل مسائل حتی ساده را هم ندارند.تمرین مداوم، حل مسائل مختلف، خواندن کد دیگران، مطالعه ی مداوم تنها راه تضمینی  برنامه نویس شدن هستند. سعی کنید با حل مسائل  برنامه نویسی و حتی حل یک مسئله به روش ها و با زبان‌ های مختلف برنامه نویسی ذهن خود را به شیوه‌ی حل مسائل به سبک کامپیوتر عادت دهید.همانطور که با تماشای فوتبال فوتبالیست نمی‌شوید صرفا با تماشای فیلم آموزشی نیز برنامه نویس نخواهید شد.بر خلاف فلوچارت، تمرین و حل مسائل و پروژه های برنامه نویسی باید در تمام دوران برنامه نویسی شما ادامه پیدا کند و تا آخر عمر برنامه نویسی خود باید آنرا ادامه دهید.سایت های زیادی برای تمرین و برگذاری مسابقات برنامه نویسی وجود دارد، برای مثال می‌توانید به leetcode مراجعه کنید.همچنین تمرین و حل مسائل مختلف شما را با انواع Error های برنامه نویسی آشنا می‌کند و سرعت شما را در حل و عبور از آنها را بالا می‌برد.یک پیشنهاد این است که بعد از دیدن یک فیلم آموزشی یا خواندن کتاب خودتان مثال های زده شده در کتاب یا فیلم آموزشی را حل کنید.۴. خواندن کد دیگرانیکی از موثر ترین راههای پیشرفت در برنامه نویسی خواندن کد دیگران و شرکت در پروژه های آنهاست.سایت‌های github و gitlab معروف ترین سایت‌ها برای قرار دادن پروژه های اپن سورس است که می‌توانید از آنها برای خواندن کد های دیگر برنامه نویسان و پروژه های شرکت ‌های بزرگ حوزه‌ی تکنولوژی و مشارکت در آنها، همچنین قرار دادن کدهای خودتان استفاده کنید.برای استفاده از این دو سایت بهتر است ابتدا کار با گیت (git) را بیاموزید.گیت (git)  یک نرم‌افزار کنترل نسخه و از مدل نرم‌افزارهای آزاد و متن‌باز برای بازنگری کد منبع توزیع شده و مدیریت منبع کد است که برای دنبال کردن تغییر فایل‌های  کامپیوتری و دنبال کردن کارهای انجام شده روی آن‌ها توسط افراد مختلف است.  هدف اولیه این نرم‌افزار برای استفاده در پروژه‌های نرم‌افزاری بوده‌است ولی می‌توان از آن تنها برای دنبال کردن تغییر فایل‌ها هم استفاده کرد.به عنوان یک برنامه نویس حتما کار با git را یادبگیرید و همچنین در سایت‌های github و gitlab فعال باشید.</description>
                <category>Ahmad Abdollahzadeh</category>
                <author>Ahmad Abdollahzadeh</author>
                <pubDate>Thu, 13 May 2021 12:03:31 +0430</pubDate>
            </item>
                    <item>
                <title>سرچ حرفه‌ای در Google (مخصوص حرفه‌ای ها و برنامه نویسان)</title>
                <link>https://virgool.io/@ahmadabd13741112/%DA%86%D8%B7%D9%88%D8%B1-%D8%AF%D8%B1-%D8%B3%D8%B1%DA%86-%DA%AF%D9%88%DA%AF%D9%84-%D8%AD%D8%B1%D9%81%D9%87-%D8%A7%DB%8C-%D8%B4%D9%88%DB%8C%D9%85%D9%85%D8%AE%D8%B5%D9%88%D8%B5-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%D8%A7%D9%86-tuogkbpbzww3</link>
                <description>با سلاممن احمد عبدالله‌زاده هستم و قصد دارم در این مطلب سرچ حرفه‌ای در گوگل رو توضیح بدم که باعث میشه سرچ خیلی مو‌ثر تری داشته باشیم و خیلی دقیق تر سرچ کنیم.امیدوارم براتون مفید باشه :-)اگه برنامه نویس باشین حتما میدونین که سرچ صحیح چقدر میتونه به شما در برنامه نویسی کمک کنه، در واقع بدون اغراق بگم برنامه نویسی بدون گوگل کردن غیرممکنه.اگه این مطلب نظرتون رو جلب کرد میتونید راجع به دورک نویسی(Google Hacking) هم مطالعه کنید که استفاده از سرچ گوگل در پیدا کردن آسیب پذیری های وبسایت‌‌‌ها است. اگه استقبال می‌کنید بزودی خودم یه مطلب راجع بهش منتشر کنم ; ))۱. سرچ با اجبار مطابقت دقیق:برای ایجاد اجبار در جستجوی دقیق عبارت سرچ شده از عملگر &quot; در اطراف عبارت مورد نظر خود استفاده کنید.۲. استفاده از عملگر AND :استفاده از عملگر AND فقط نتایجی را برمی‌‌گرداند که شامل نتایج مشترک هر دو قسمت عملگر AND باشند. ۳. استفاده از عملگر OR :استفاده از عملگر OR فقط نتایجی را برمی‌‌گرداند که شامل نتایج یکی از عبارات دو طرف عملگر OR باشند. ۴. استفاده از عملگر - (منها) :استفاده از عملگر - نتایجی را برمی‌گرداند که شامل نتایج عبارت مقابل عملگر - نباشند.۵. استفاده از عملگر (*):عملگر (*) به معنی همه چیز است، یعنی گوگل بجای عملگر مورد نظر در عبارت هر چیزی را که بشود قرار میدهد و سپس نتایج مورد نظر را برمی‌گرداند.۶. سرچ درون یک وبسایت خاص:میتوانید عبارتی را فقط درون یک وبسایت سرچ کنید.در مثال زیر گوگل کلمه رونالدو را فقط در سایت varzesh3.ir سرچ می‌کند.۷. استفاده از عملگر filetype:می توانید از این ویژگی بسیار مفیدی استفاده کنید که به یافتن نوع خاصی از مطالب  کمک می کند.برای مثال برای پیدا کردن نسخه pdf یک مطلب در مورد آموزش css عبارت آورده شده در تصویر را سرچ کنید. ۸. استفاده از عملگر .. :سرچ در محدوده ای از اعداد با استفاده از عملگر ..۹. استفاده از عملگر &quot;before&quot;:عملگر before نتایجی را برمی‌گرداند که مربوط به قبل از یک تاریخ خاص هستند.۱۰. استفاده از عملگر &quot;after&quot;:عملگر after نتایجی را برمی‌گرداند که مربوط به بعد از یک تاریخ خاص هستند.منبع:‌ سایت markodenic </description>
                <category>Ahmad Abdollahzadeh</category>
                <author>Ahmad Abdollahzadeh</author>
                <pubDate>Sun, 25 Apr 2021 18:58:44 +0430</pubDate>
            </item>
                    <item>
                <title>بخشی از ترجمه مقاله (بررسی تبعیض جنسی با بازی آنلاین)</title>
                <link>https://virgool.io/Sedayezan/%D8%A8%D8%AE%D8%B4%DB%8C-%D8%A7%D8%B2-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%D9%85%D9%82%D8%A7%D9%84%D9%87-%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D8%AA%D8%A8%D8%B9%DB%8C%D8%B6-%D8%AC%D9%86%D8%B3%DB%8C-%D8%A8%D8%A7-%D8%A8%D8%A7%D8%B2%DB%8C-%D8%A2%D9%86%D9%84%D8%A7%DB%8C%D9%86-in0oxpmgzrse</link>
                <description>تبعیض جنسی: مردان عملکرد و و میزان رفتار دوستانه یا خصمانه خود در برابر زنان را بر اساس کارگردانی زن تقسیم می‌کنند.برگرفته از مقاله:Insights into Sexism: Male Status and Performance Moderates Female Directed Hostile and Amicable Behaviourچکیده:نابرابری جنسیتی و رفتارهای جنسیتی تقریباً در همه محل های کار رایج است و در محیط های آنلاین بیداد می کند.اگرچه  تحقیقات زیادی برای درک رفتارهای جنسیتی انجام شده است ، اما ما تقریباً  هیچ نظریه ای در مورد اینکه این رفتار چیست و افراد آغازگر آن کیستند، نداریم.اگرچه  تئوری ساخت گرایی اجتماعی استدلال می کند که جنسیت گرایی پاسخی است به  زنانی که وارد یک عرصه مردسالار می شوند، اما این دیدگاه توضیح نمی‌دهد که  چرا فقط زیرمجموعه ای از مردان چنین رفتاری دارند.ما استدلال می کنیم  که درک واضح تری از رفتار جنسیتی می تواند از طریق یک دیدگاه تکاملی بدست  آید که تفاوت های تکامل یافته در رقابت درون جنسی را در نظر می گیرد.ما  فرض کردیم که ایجاد اختلال در سلسله مراتب مردان توسط زنان ، باعث رفتار  خصمانه مردان با عملکرد ضعیف می شود که با حضور زنان بیشترین  موقعیت  را از  دست می دهند. برای آزمایش این فرضیه ، ما از یک بازی ویدیویی اول شخص شوتر  آنلاین استفاده کردیم که علائم تسلط را از بین می برد اما اطلاعاتی در مورد  جنسیت ، عملکرد فردی و مهارت ارائه می دهد. ما نشان می دهیم که بازیکنان  با مهارت پایین نسبت به یک هم تیمی با صدای زن خصمانه ترند ، مخصوصاً هنگام  عملکرد ضعیف. در مقابل ، بازیکنان با مهارت پایین در یک سناریوی مشابه  مطیعانه نسبت به یک بازیکن با صدای مرد رفتار می کردند. این تفاوت در رفتار  جنسیت محور با عملکرد ضعیف بازیکن کانونی شدیدتر شد. ما فکر می کنیم که  مردان با عملکرد ضعیف تر خصومت زنانه را افزایش می دهند تا از دست دادن  وضعیت و موقعیت خود که بدلیل ورود یک زن به صحنه رقابت می باشد را به حداقل  برسانند.در مقابل ، رفتار بازیکنان با مهارت بالاتر نسبت به یک زن  نسبت به یک هم تیمی مرد مثبت تر بوده است. از آنجا که بازیکنان با مهارت  بالاتر ترس کمتری از سازماندهی مجدد سلسله مراتبی دارند ، ما استدلال می‌کنیم که این مردان در تلاش برای حمایت و جلب توجه بازیکنان زن رفتار مثبت ‌تری دارند. نتایج ما با ارائه برجسته ای از اهمیت در نظر گرفتن یک چشم انداز تکاملی هنگام کاوش در عواملی که خصومت مردان را نسبت به زنان تحت  تأثیر قرار می دهد ، روشن ترین تصویر از رقابت بین جنسی تاکنون را ارائه می‌دهد.مقدمه:برابری جنسیتی در حال حاضر یکی از موضوعات داغ مورد بحث  در تمام رشته های علمی ، ایدئولوژی های سیاسی و مذهبی و محیط های کاری  است. اگرچه بسیاری از مباحث علمی چگونگی غلبه بر نابرابری های جنسیتی را  بررسی می کنند ، اما آنها بیانگر این است که ما در مورد عوامل ایجاد کننده  رفتارهای جنسیتی و افراد تحریک کننده آن شناخت کمی داریم.درک این عوامل  برای دستیابی به برابری کاملاً ضروری است. اگرچه بسیاری از جامعه شناسان و  فمینیست ها استدلال می کنند که تبعیض جنسی فقط از طریق تئوری ساخت گرایی  اجتماعی قابل بررسی است ، اما چنین دیدگاهی فرض می کند که رفتار جنسیتی فقط  توسط محیط های اجتماعی و فرهنگی تعیین می شود ، با نادیده گرفتن تنوع  بیولوژیکی. از همان منظر ، یک رویکرد بیولوژیکی به تنهایی اهمیت  تعاملات اجتماعی را نادیده می گیرد. ما استدلال می کنیم که درک بسیار واضح  تری از رفتار جنسیتی با استفاده از نظریه تکاملی بدست می آید زیرا این امر  شامل دو دیدگاه اجتماعی و زیست شناختی است. از منظر تکاملی ، رقابت بین جنسیتی معمول است و یکی از قوی ترین نیروهای شکل دهنده تفاوت های جنسی است.این  امر در انسان نیز صادق است و این واقعیت که درگیری های مستقیم تا حد زیادی توسط مردان  انجام شده است می تواند به توضیح تفاوت های جنسیتی در ساختار  بدن کمک کند. به روشی مشابه ، این اختلافات جنسی بیولوژیکی همچنین  استراتژی های رقابتی خاص جنسیت را شکل داده. از آنجا که دسترسی یک مرد به  همسران با توجه به موقعیت او در سلسله مراتب تعیین می شود ، برای مردان مهم  است که سلسله مراتب سلطه ای را که از طریق سیگنال های آشکار سلطه اعمال می  شود ، درک کنند و از آن استفاده کنند. در مقابل ، هیچ مدرکی وجود ندارد که  نشان دهد تناسب زن با موقعیت او در سلسله مراتب تعیین می شود ، و این  موضوع برای زنان از اهمیت کمتری برخوردار است.بعلاوه ، از آنجا که  درگیریهای مستقیم برای زنان نسبتاً هزینه بر است ، زنان معمولاً از  استراتژیهای رقابتی ظریف تری استفاده می کنند که وضعیت اجتماعی رقبا را  کاهش می دهد و تلافی جویی را به حداقل می رساند. با وجود این اختلافات جنسیتی تاریخی در رقابت ، مردان و  زنان در حال حاضر به موقعیت های شغلی یکسان افتخار می کنند و با یکدیگر  رقابت می کنند. فضای رقابتی مدرن به گونه ای تغییر شکل داده است که وضعیت  فردی توسط معیارهای عملکردی تعیین می شود که عمدتاً با اختلافات فیزیکی  ارتباط ندارند. با این وجود ، اختلافات جنسیتی در درک سلسله مراتب و  رفتارهای مرتبط با مذاکره درباره آنها می تواند افزایش خصومت تجربه زنان در  سناریوهای رقابتی را توضیح دهد. در هیچ کجا این امر بیشتر از محیط های  آنلاین که اختلافات جسمی بی نتیجه است ، مشهود نیست ، با این حال زنان بیش  از چهار برابر نظرات منفی از مردان دریافت می کنند. بازی های ویدئویی  کاملاً از لحاظ زیست شناختی و محیط های رقابتی اجتماعی ساخته می شوند و در  نتیجه فرصتی منحصر به فرد برای بررسی نحوه رقابت بین جنسیتی در رفتارها و  نگرش های فردی در انسان فراهم می کنند. به عنوان مثال ، در یک نظرسنجی اخیر  توسط انجمن نرم افزار سرگرمی گفته شده است که زنان و مردان به طور مساوی  بازی های ویدیویی رقابتی انجام می دهند. از آنجا که این مسابقات مجازی  تهاجمی می تواند نتایج عصبی ، فیزیولوژیکی و رفتارهای معنی داری را ایجاد  کند ، این نتایج ممکن است به موازات نتایج واقعی فیزیکی باشد ، اگرچه  مسابقات به برتری جسمی احتیاج ندارند زیرا نتایج با توجه به زمان پاسخ و  ظرفیت شناختی تعیین می شود تا قدرت بدنی . با این وجود ، به چند دلیل ،  بازی های ویدیویی همچنان سنگر کلیشه ها و نابرابری های جنسی هستند. اول ،  مردان اغلب از نظر گرافیکی به عنوان پرخاشگر و ابرمردانه تصویر می شوند ،  در حالی که زنان به روشی بیش از حد جنسی شده به تصویر کشیده می شوند و  بیشتر اوقات به عنوان لکه های ناراحت به تصویر کشیده می شوند. دوم ، شواهد  حکایتی نشان می دهد که مردان بیشتر از زنان بازی های آنلاین رقابتی انجام  می دهند (یا حداقل ممکن است زنان هنگام بازی از صحبت کردن اجتناب کنند) که  برخی بازی ها را &quot;بازی پسران&quot; می دانند. محیط جنسی شده همراه با مردانی که  اکثریت صوتی غالب آنها هستند ، فضایی را نشان می دهد که بی شباهت به بسیاری  از محیطهای کاری کنونی نیست که زنان می توانند کمتر از 10٪ نیروی کار حرفه  ای را نمایندگی کنند. این نشان می دهد که بازی های ویدیویی آنلاین رقابتی  ممکن است یک پدیده مشترک باشد که زنان با آن روبرو می شوند. علاوه بر این ،  این واقعیت را تقویت می کند که زنان در حال ورود به یک عرصه رقابتی تحت  سلطه مردان هستند ، جایی که آنها باید به طور مستقیم در یک سلسله مراتب  سلطه آشکار به رقابت بپردازند ، نه مسیر غیرمستقیم که از طریق تاریخ تکامل  به آن عادت کرده است.برای کاوش در توضیحات ساخت گرایانه اجتماعی و  تکاملی در مورد رفتارهای جنسیتی ، بررسی می کنیم که چگونه عملکرد فردی و  وضعیت اجتماعی بر رفتار مردانه با استفاده از یک بازی ویدیویی آنلاین اول  شخص، Halo 3 تأثیر می گذارد. طبق نظریه ساخت گرایی اجتماعی، مردان  رفتارهای جنسیتی را در برابر زنان انجام می دهند تا آنها را از صحنه مرد  سالاری (یعنی واكنش شدید) بیرون کنند. بنابراین تئوری ساخت گرایی اجتماعی  پیش بینی می کند که بازیکنان مرد کانونی باید نسبت به یک زن (عضو گروه)  نسبت به یک هم تیمی با صدای مرد ، بدون توجه به عملکرد یا وضعیت بازیکن در  بازی ،منفی تر باشند.در مقابل ، نظریه تکاملی نشان می دهد که رفتارهای  جنسیتی در پاسخ به تهدید موقعیت مرد در سلسله مراتب است که این تهدید  موقعیت دسترسی او به همسران بالقوه را محدود می کند. بنابراین نظریه تکاملی  پیش بینی می کند که رفتار یک مرد باید از نظر وضعیت و عملکرد تعدیل شود ،  به طوری که فقط مردان با سطح پایین تر که با تشکیل یک سلسله مراتب با معرفی  یک رقیب زن بیشترین احتمال را برای از دست دادن موقعیت خود دارند ، با  بازیکنان زن خصومت خواهند داشت. این همچنین پیش بینی می کند که مردان با  وضعیت بالاتر باید دفعات نظرات منفی را کاهش دهند و دفعات نظرات مثبت خود  را افزایش دهند زیرا بازیکنان با صدای زن یک همسر بالقوه را نشان می دهند.نظریه تکامل همچنین پیش بینی ثانویه ای در مورد تعاملات زن و مرد می کند:  دفعات اظهارنظرهای مثبت و منفی باید از یک پاسخ سلسله مراتبی معمول پیروی  کند به گونه ای که عملکرد ضعیف تر و وضعیت پایین تر ، رفتار تسلیم آمیز را  برانگیزد (مثبت تر و اظهارات منفی کمتر).</description>
                <category>Ahmad Abdollahzadeh</category>
                <author>Ahmad Abdollahzadeh</author>
                <pubDate>Wed, 21 Apr 2021 15:16:08 +0430</pubDate>
            </item>
                    <item>
                <title>آیا برای برنامه نویس شدن نیاز است به دانشگاه برویم ؟!!</title>
                <link>https://virgool.io/@ahmadabd13741112/%D8%A2%DB%8C%D8%A7-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D8%B4%D8%AF%D9%86-%D9%86%DB%8C%D8%A7%D8%B2-%D8%A7%D8%B3%D8%AA-%D8%A8%D9%87-%D8%AF%D8%A7%D9%86%D8%B4%DA%AF%D8%A7%D9%87-%D8%A8%D8%B1%D9%88%DB%8C%D9%85-jlpjipnimcwi</link>
                <description>با سلاممن احمد عبدالله‌زاده هستم و قصد دارم در این مطلب در مورد اهمیت و مزایای رفتن به دانشگاه برای برنامه‌نویسان صحبت کنم.البته این مطلب می‌تونه برای دانشجویان تمامی رشته‌ها مفید باشه.امیدوارم براتون مفید باشه :-)این مطلب شامل توصیه‌ها و تجربیات من به علاقمندان به برنامه‌نویسی است که بر سر دو راهی رفتن یا نرفتن به دانشگاه قرار گرفته‌اند.بازار کار برنامه‌نویسی به گونه‌ای است که بدون نیاز به مدرک دانشگاهی میتوان در آن مشغول به کار شد و بصورت شرکتی یا پروژه محور کسب درآمد کرد که یکی از موضوعاتی که باعث می‌شود خیلی از برنامه‌نویسان فکر  رفتن به دانشگاه را از سر خود بیرون کنند یا در رفتن یا نرفتن به دانشگاه دودل باشند همین موضوع است یا به دانشگاه نرفتن بزرگان دنیای کامپیوتر مثل بیل گیتس یا استیو جابز اشاره می‌کنند در صورتی که آنها به دانشگاه رفته سپس از دانشگاه استفأ داده‌اند، البته هزاران مورد هم می‌توان مثال زد که به دانشگاه نرفته یا از آن استفأ داده‌اند و موفق نشده اند.همچنین از برخی برنامه‌نویسان خیلی زیاد می‌شنوید که برای یادگیری برنامه‌نویسی و حتی ورود به دیگر گرایشات رشته کامپیوتر (شبکه یا هوش مصنوعی و ...) نیازی به شرکت در دانشگاه ندارید و دانشگاه فقط وقت ما را تلف می‌کند و با دیدن فیلم‌های آموزشی یا با استفاده از آموزشگاه‌های برنامه نویسی که مثل قارچ همه جا رشد کرده‌اند در زمان کمتری می‌توان وارد بازار کار این رشته شد. خلاصه این موضوعات باعث اضطراب خیلی از برنامه‌نویسان قبل از کنکور می‌شود که اصلا زمان مناسبی برای اضطراب داشتن نیست.در این مطلب راجع به چهار موضوع صحبت خواهم کرد که تجربیات شخصی هستند:امکاناتی که دانشگاه در اختیار من قرار داد.آشنایی با گرایش‌ها و شاخه‌های رشته‌ی کامپیوتر و مسیر‌ها و انتخاب‌های بیشتر برای ادامه‌ی راه در این رشته.تاثیرات دانشگاه روی ویژگی‌های فردی شخصیتی من.چرا مدرک دانشگاهی نیاز است؟امکاناتی که دانشگاه در اختیار من قرار داددانشگاه محیط بسیار مناسب و ایده‌ آلی برای دانشجویانی است که به دنبال پیشرفت و یادگیری هر چه بیشتر علم و دانش هستند. نمی‌گویم هر کسی وارد دانشگاه شود حتما پیشرفت می‌کند اما برای کسانی که برای پیشرفت علمی یا تحصیلی و یا حتی در زمینه‌ی شغلی خود هدف گذاری کرده و تلاش می‌کند دانشگاه می‌تواند بسیار مفید باشد و امکاناتی را در اختیار دانشجویان قرار دهد که در هیچ جای دیگر به راحتی بدست نمی‌آید.اول از همه اساتید:من در دانشگاه اساتید بسیار خوبی داشتم که دارای تجربیات زیاد و سطح بالای علمی بودند، تجربیاتی که به راحتی بدست نمی‌آیند و می‌توان از آنها به عنوان میانبری برای رسیدن به موفقیت استفاده کرد. ارتباط با اساتیدم و استفاده از تجربیات آنها به من در پیدا کردن مسیر آینده‌‌ی شغلی‌ام کمک زیادی کرد. اساتیدی که هنوز هم با‌ آنها در ارتباطم و رابطه‌ی استاد شاگردی ما به رابطه‌ی دوستی تبدیل شده است.البته برای ایجاد ارتباط با اساتید دانشگاه باید از خودتان شوق و علاقه‌ی زیادی به یادگیری نشان دهید بدلیل اینکه ممکن است اساتید بدلیل حجم زیاد پروژه‌های شخصی،  کلاس‌های زیاد و داشتن دانشجویان بسیار نتوانند برای تمام دانشجویان وقت کافی و یکسان بگذارند و مسلما برای دانشجویان سمج و پر تلاش وقت بیشتری میگذارند پس اگر می‌خواهید حداکثر استفاده را از تجربیات اساتید خود بکنید باید پاشنه‌ی در اتاق آنها را از جا در بیاورید.دوم امکانات دانشگاه:من به همراه یکی از اساتیدم مشغول به کار روی پروژه‌های مختلفی در آزمایشگاه دانشگاه شدیم که طراحی و ساخت  چند دستگاه اندازه‌گیری برای بررسی میزان دما و رطوبت خاک برای همکاری در یکی از پروژه‌های  پژوهشی دانشگاه با همکاری رشته‌ی مهندسی آب و مهندسی مکانیک بود که در آن از چند میکروکنترلر و بردهای ARDUINO و ESP و چندین سنسور استفاده می‌شد. من و استادم به عنوان تیم کامپیوتر در این پروژه حضور داشتیم و برنامه‌نویسی روی بردها را انجام میدادیم.این پروژه و یکی دو پروژه‌ی دیگر باعث شد من علاوه بر کسب تجربه‌ی کار در محیط‌های تیمی و همچنین آشنایی با نرم‌افزارهایی مانند Git و Trello، کار با میکروکنترلرها، کسب تجربه در برنامه‌نویسی روی داده‌های حجیم و کانفیگ و راه اندازی سرور لینوکس تا حدودی علاقه‌ی خودم را برای ادامه‌ی مسیر شغلی‌ام پیدا کردم.از نظر من مشارکت در اینگونه پروژه‌ها به شما در فهم دلیل و منطق وجود بسیاری از دروس دانشگاهیتان که شاید خیلی با آنها ارتباط برقرار نمی‌کنید کمک می‌کند همچنین باعث افزایش یادگیری شما می‌شود. برای مثال در یکی از این پروژه‌ها بود که برای اولین بار بصورت کاربردی از برنامه‌نویسی موازی(Parallel programming) استفاده کردم یا کاربرد پایه‌ی وقفه(Interrupt) در CPU را دیدم.همچنین برای اولین بار در این پروژه‌ها بود که مجبور به نوشتن پروپوزال شدم.سوم استفاده از تجربیات دانشجویان دیگر و ترم بالایی‌ها:زندگی خوابگاهی و معاشرت با دیگر دانشجویان مخصوصا ترم بالایی‌ها به من خیلی کمک کرد از جمله روش‌های آنها برای یادگیری.برای مثال استفاده از فیلم‌های آموزشی (اولین بار با سایت‌هایی مانند udemy, coursera, edx و ... از طریق یکی از ترم بالایی هایم آشنا شدم)خواندن کتاب‌ها و مقالات زبان اصلی که باعث شد از همان ترم‌های اول به اهمیت یادگیری زبان‌انگلیسی پی ببرم و در یادگیری آن تلاش کنم.آشنایی با سیستم عامل لینوکس توسط یکی از دوستان عزیزم بنام نوید بود که به شما هم پیشنهاد می کنم که حتما کار کردن با لینوکس را یاد بگیرین زیراکه هم برای شما ایجاد شغل می‌کند، یکی از اولین تجربه های کاری من که بابتش پول دریافت کردم در همین حوزه یعنی سیستم ادمین لینوکس بود البته یادگیری لينوکس باعث افزایش احتمال استخدام شما در دیگر مشاغل هم می‌شود. (توضیحات کاملتر در مورد درآمد با لینوکس را در اینجا مطالعه کنید.) و  هم در مقاطع بالاتر از لیسانس ممکنه بهش نیاز پیدا کنین و دیگه زمان و فرصت مناسب برای یادگیری لینوکس رو نداشته باشین و البته شمارو وارد دنیای زیبایی می‌کنه و کلی ازش لذت میبرین.با دیدن دانشجویانی که در کنار تحصیل مشغول به کار در زمینه‌های برنامه‌نویسی بودند من‌ هم تصمیم گرفتم در کنار تحصیل مشغول به کار شوم که هم باعث کسب درآمد و تجربه‌ی من شد و هم باعث  تقویت رزومه‌ی کاری من شد.اولین تجربه‌ی کاری من ترم چهار بود که البته باعث کاهش معدل من هم شد(برای برخی دانشجویان تمرکز روی معدل و داشتن معدل بالا از همه چیز مهم‌تر است که البته من اصلا اینجوری نبودم و تجربه‌ی کاری هم خیلی برای من اهمیت داشت).آشنایی با گرایش‌ها و شاخه‌های رشته‌ی کامپیوتر و مسیر‌ها و انتخاب‌های بیشتر برای ادامه‌ی راه در این رشتهتنوع دروس ارائه شده در دانشگاه باعث آشنایی دانشجویان با گرایش‌های رشته‌ی کامپیوتر (مهندسی نرم‌افزار، هوش مصنوعی، شبکه‌های کامپیوتری، امنیت و ...) می‌شود.برای مثال من در دوران لیسانس دروس:مبانی برنامه‌نویسی، برنامه‌نویسی شی‌گرا، برنامه‌نویسی پیشرفته و ... را گذراندم که باعث آشنایی من با زبان‌های برنامه‌نویسی مختلف و مباحث مختلف برنامه‌نویسی مثل اشاره‌گرها و شی‌گرایی شد.دروس شبکه و آزمایشگاه شبکه باعث آشنایی من با گرایش شبکه‌های کامپیوتری شد.طراحی الگوریتم باعث آشنایی من با انواع الگوریتم‌ها و علم شیرین طراحی الگوریتم شد.نظریه زبان‌‌ها، پردازش تصویر، پردازش گفتار و دروس مربوط به پردازش سیگنال‌های دیجیتال باعث آشنایی من با هوش‌ مصنوعی شد.مدار منطقی و معماری کامپیوتر باعث آشنایی من با مباحث معماری کامپیوتر شد.در دروس مرتبط با مباحث مدیریتی متوجه شدم چقدر توجه به این دروس و پیشرفت در آنها می‌تواند در ساختن و اداره‌ی یک شرکت موفق موثر باشد.و غیره ...هر کدام از این دروس علاوه بر آموزش مفاهیم پایه و ایجاد درک و فهم از ساختار و نحوه عملکرد کامپیوتر و نرم‌افزار باعث آشنایی دانشجویان با گرایش‌های مختلف رشته‌ی کامپیوتر می‌شود. برای مثال فردی را در نظر بگیرید که به واسطه‌ی مطالعات، علاقه‌ی شخصی یا راهنمایی دیگران میلی به ادامه‌ی تحصیل در دانشگاه را ندارد. اگر علاقه‌ی او در طراحی نرم‌افزار باشد آیا هرگز متوجه‌ی علاقه‌ی خودش یا وجود گرایش‌های دیگر مثل هوش‌مصنوعی یا شبکه‌های کامپیوتری می‌شود ؟!!!احتمالا نهتاثیرات دانشگاه روی ویژگی‌های فردی شخصیتی مندوران دانشگاه بدلیل زندگی در شرایط خوابگاهی و زندگی گروهی، مباحث درسی سنگین‌تر به نسبت دبیرستان، حضور جنس مخالف، ارتباط با دانشجویانی از شهر‌های دیگر با فرهنگ‌ها، روش‌های زندگی و مذاهب و ادیان مختلف، علاقه به کار در کنار تحصیل و ... باعث ایجاد تحول و تغییر در طرز فکر من، افزایش روابط اجتماعی، افزایش تحمل سختی‌ها و افزایش قدرت برنامه‌ریزی و هدف گذاری در من شد.زندگی خوابگاهی:زندگی خوابگاهی برای من تجربه‌ی بسیار جالب و مفیدی بود. من در طول دوران دانشگاه ۴ بار اتاق عوض کردم و حدودا با ۳۰ دانشجوی دیگر هم اتاقی بودم. با افرادی از شمال تا جنوب کشور با طرز زندگی و علایق متفاوت، با گویش‌ها و زبان‌‌های و حتی با ادیان و مذاهب مختلف با خودم زندگی کرده‌ام که تجربه‌ی جالب و تکرار نشدنی در زندگی من به حساب می‌آید.این تجربه در وهله اول باعث شد من دوستان صمیمی زیادی در سراسر کشور پیدا کنم که هنوز هم با آنها در ارتباطم و حتی با برخی از آنها بصورت خانوادگی هم ارتباط داریم.زندگی با چند نفر دیگر در یک اتاق کوچک باعث می‌شود شما و هم اتاقی هایتان در بعضی مسائل با هم اختلاف نظر داشته باشید مثلا یکی بچه‌ی جنوب کشور است و همیشه دوست دارد کولر اتاق روشن باشد و دیگری مخالف است یا بعضی میخواهند شب‌ها زود بخوابند ولی بعضی دیگر میخواهند تا صبح بیدار باشند، یکی دوست دارد صدای فیلم یا آهنگ را بدون هنسفری گوش دهد که باعث ایجاد مزاحمت برای دیگران می‌شود، بعضی ها در اتاق سیگار میکشند و خلاصه مشکلات از این قبیل.مواجهه با این مشکلات باعث شد صبر و تحمل من بسیار بالا برود و بتوانم خودم را با زندگی در شرایط مختلف وفق دهم و خودم را برای مواجهه با مشکلات و افراد مختلف در آینده آماده کنم که این تجربیات در دوران سربازی نیز خیلی به من کمک کرد.حضور دو جنس مخالف کنار یکدیگر:در ایران دانشگاه اولین مکانیست که هر دو جنس مونث و مذکر  بصورت قانونی و پذیرفته شده کنار یکدیگر قرار می‌گیرند، با هم در کلاس درس و امتحان حضور می‌یابند، گاهی با هم درس می‌خوانند، با هم بیرون می‌روند و بیشتر از قبل با هم آشنا می‌شوند و خلاصه دانشگاه اولین محیطی است که این دو جنس که در ایران بین انها دیوارها و پرده‌های زیادی کشیده شده فارق از تمام موانع و مخالفت‌ها می‌توانند با هم ارتباط برقرار کنند و یکدیگر را بیشتر بشناسند.که به نظر من این فرصت را از دست ندهید.افزایش قدرت برنامه‌ریزی و هدف گذاری برای آینده:در دانشگاه دروس به نسبت دبیرستان سخت‌تر، حجم کتاب‌ها بیشتر و پروژه ها و تمرینات خیلی سنگین‌تر می‌شوند و برای من که علاقه داشتم در کنار درس کار هم بکنم و همچنین بدلیل زندگی در شرایط خوابگاهی و پر سروصدا محیط خیلی مناسبی هم برای درس خواندن نداشتم برنامه‌ریزی و تقسیم بندی زمانم بسیار مهم بود.همین موضوع باعث شد من در زندگی شخصی هم آدم منظم‌تر و با برنامه‌تری شوم.چرا مدرک دانشگاهی نیاز است؟مهاجرت، شغل، موقعیت اجتماعی و حتی سربازی از جمله دلایلی هستند که داشتن حداقل یک مدرک دانشگاهی را الزامی می‌کنند.مهاجرت:یکی از آسان‌ترین روش‌های مهاجرت، مهاجرت تحصیلی است که این روش مهاجرت بسیاری را علاقمند به حضور در دانشگاه می‌کند و تهیه یک مدرک دانشگاهی می‌کند. البته من به شخصه خیلی هم طرفدار مهاجرت نیستم.دلیل بعدی یافتن شغل است: شاید بگویید مگر برای اشتغال در برنامه‌نویسی هم نیاز به داشتن مدرک دانشگاهی داریم ؟؟؟برای برخی شرکت‌ها و ادارات دولتی یا خصوصی بلهبسیاری از شرکت‌ها برای استخدام شعار license-less می‌دهند که یعنی برای استخدام اهمیتی به مدرک تحصیلی نمی‌دهند و سطح علمی و ویژگی های شخصی فرد ملاک استخدام است اما هنوز هم بیشتر شرکت‌ها در داخل و یا حتی خارج از ایران برای استخدام شرط داشتن مدرک تحصیلی را مطرح می‌کنند. همچنین برای استخدام در ادارات دولتی هم این شرط وجود دارد. شاید بدلیل حقوق پایین طرفدار کار در ادارات دولتی نمی‌باشید اما برخی ادارات دولتی هم وجود دارند که حقوق و مزایای قابل توجهی دارند.البته برای پسرها داشتن مدرک تحصیلی می‌تواند دوران سربازی را آسان‌تر کند. https://vrgl.ir/dRke0 حال خودتان تصمیم بگیرید که حضور در دانشگاه چقدر می‌تواند برایتان مفید باشد :))مطالب مشابه: https://vrgl.ir/RTctL  https://vrgl.ir/toNEM  </description>
                <category>Ahmad Abdollahzadeh</category>
                <author>Ahmad Abdollahzadeh</author>
                <pubDate>Fri, 16 Apr 2021 13:54:36 +0430</pubDate>
            </item>
                    <item>
                <title>دوران سربازی یک برنامه‌نویس</title>
                <link>https://virgool.io/coderlife/%D8%AF%D9%88%D8%B1%D8%A7%D9%86-%D8%B3%D8%B1%D8%A8%D8%A7%D8%B2%DB%8C-%DB%8C%DA%A9-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-vnrxgaadykuj</link>
                <description>با سلاممن احمد عبدالله‌زاده هستم و قصد دارم در این مطلب در مورد تجربیات خودم به عنوان یک برنامه‌نویس و برای برنامه نویسان در دوران سربازی بگم.امیدوارم براتون مفید باشه :-)مطلب در perceptبیوگرافی‌ای از من در این رشته:ورود من به رشته کامپیوتر از سال ۱۳۹۳ همزمان با ورودم به دانشگاه در رشته مهندسی نرم‌افزار بود. https://vrgl.ir/I3wjb از همون اول به برنامه نویسی و اپن سورس علاقمند شدم.ترم اول را با پایتون شروع کردیم و همزمان با راهنمایی‌ بچه های ترم بالایی شروع به یادگیری لینوکس کردم  که پیشنهاد میکنم اگه میخواین وارد این رشته بشین حتما یادگیری لینوکس رو به برنامه هاتون اضافه کنین چون هم میتونه ایجاد فرصت شغلی بکنه که اولین شغل رسمی من که بابتش پول دریافت کردم هم مرتبط با لینوکس یعنی لینوکس سیستم ادمین بود البته یادگیری لينوکس باعث افزایش احتمال استخدام شما در دیگر مشاغل هم می‌شود. (توضیحات کاملتر در مورد درآمد با لینوکس را در اینجا مطالعه کنید.) و هم اینکه در مقاطع بالاتر از لیسانس ممکنه بهش نیاز پیدا کنین و دیگه زمان و فرصت مناسب برای یادگیریش رو نداشته باشین و البته شمارو وارد دنیای زیبایی می‌کنه و کلی ازش لذت میبرین.بعد از پایتون ترم دو رو به یادگیری زبان‌های C و CPP گذروندیم که باعث آشنایی ما با مباحث اشاره‌گرها و کمی برنامه نویسی نزدیک‌تر به سخت افزار شد.ترم سوم با یادگیری زبان C Sharp با مباحث کاربردی شی‌گرایی آشنا شدیم و کم‌کم به سمت Thread ها رفتیم. من با C Sharp هم مدتی مشغول به کار بودم (در زمینه windows form application )به مرور  تا آخر دوره ی لیسانس  javascript, کار با برد ARDUINO و FPGA رو هم کار کردیم.چند درس در زمینه‌ی هوش‌مصنوعی مثل پردازش تصویر و پردازش گفتار کار کردیم که اکثرا با زبان‌های متلب و پایتون کار می‌کردیم.آشنایی با شبکه‌های کامپیوتری و ساختمان‌های داده و … هم بسیار مفید بود.دوران لیسانس و تجربه اندوزی در  این مباحث باعث آشنایی من با تعدادی از شاخه‌های رشته‌ی کامپیوتر شد، در واقع در دوران لیسانس بود که علاقه‌ی خودم رو در بین گرایش های رشته‌ی کامپیوتر پیدا کردم.من خودم شدیدا مشتاق به یادگیری بودم و به صورت خودخوان طراحی سایت با php laravel و python django رو هم یاد گرفتم و به‌صورت پروژه محور درآمدی هم ازشون داشتم. https://vrgl.ir/RTctL تا دوران لیسانس تموم شد و دقیقا موقعی که میخواستم بصورت جدی و تمام وقت وارد بازار کار بشم به معضلی برخورد کردم به اسم سربازی.اصلا بریم سربازی یا نه؟نظرات میتونه متفاوت باشه و نظر  من اینه که رفتنش بهتر از نرفتنش هست به چند دلیل:اول اینکه آدم از آینده خودش خبر نداره، ممکنه الان بگید ما که وارد بازار کار آزاد می‌شیم و نیازی به کارت پایان خدمت نداریم ولی در آینده معلوم نیست با چه فرصت شغلی یا فرصت کار در یک کشور خارجی یا حتی کار در یک پست دولتی با حقوق معقول مواجه بشیم و آیا نیازی به پایان خدمت داریم یا نه؟!!! دوم اینکه قوانین سربازی در ایران دائما در حال تغییره و مشخص نیست که تا چند سال آینده برای چه فعالیت هایی در ایران نیاز به کارت پایان خدمت داریم و برای چه کار هایی نیازی به کارت پایان خدمت نداریم.پس در مجموع از نظر من رفتن به سربازی کار معقول‌تر یا کم ریسک‌تری به نظر میرسه.چه تفاوتی بین کسی که بصورت بومی و غیر بومی به خدمت گرفته میشن هست؟افرادی که در شهر محل زندگی خودشون دوران سربازی رو می‌گذرونن دسترسی خیلی بیشتری به اینترنت و کامپیوتر‌ دارن و خیلی راحت تر می‌تونن کار کنن یا خودشونو برای کار بعد از سربازی یا ادامه تحصیل  آماده کنن.اول از همه سعی کنید امریه بشید یا در یکی از پادگان های شهر محل سکونت خودتون پذیرش بگیرید تا در بعد از ساعت کاری به اینترنت دسترسی داشته باشین و دانش خود را بروز نگه داشته و از دنیای برنامه نویسی و  تکنولوژی فاصله نگیرید.ولی اگه شهر دیگه ای هم افتادین میتونید با خوندن کتاب های مرتبط که بعضیاشونو معرفی میکنم و استفاده از روز های مرخصی تا حدی خودتون رو نزدیک به این حوزه نگه دارین و کلا ریست نشین.البته فرصت خوبی برای تقویت زبان انگلیسی و یا خواندن کتاب‌هایی که در گذشته خیلی فرصت خوندنشونو نداشتین هم هست (من خودم در مورد خیلی از زمینه‌هایی که دوست داشتم در موردشون حداقل کمی اطلاعات داشته باشم مثل فلسفه و جامعه‌شناسی مطالعه کردم که خیلی هم برام مفید بود و بهشون علاقمند شدم)چه فعالیت هایی من انجام دادم تا کمتر از این حوزه فاصله بگیرم ؟اگه مثل من در شهری به جز شهر محل سکونت خودتون خدمت می‌کنید و دسترسی به لپتاپ و اینترنت ندارین خواندن کتا‌‌ب‌هایی که مستقیما با آموزش یک زبان برنامه‌نویسی خاص یا یک فریم‌ورک خاص میپردازه نمیتونه موثر باشه چون برای یادگیری درست یک زبان برنامه‌نویسی یا فریم‌ورک نیاز به لپتاپ و اینترنت دارین تا مطالب را تست کنید ولی در عوض خواندن کتاب‌هایی که به آموزش مفاهیم پایه‌ی برنامه نویسی یا مفاهیم مدیریت میپردازه خیلی می‌تونه مفیدتر باشه.هر بار که به مرخصی میاین تمرین کد نویسی کنید و مثال های ساده اما دارای الگوریتم های اصیل و معروف رو حل کنید.شرکت در مسابقات برنامه نویسی هم میتواند مفید باشد.برای این کار سایت leetcode بسیار مفید است.بصورت دوره‌ای روی تخصص های خود کار کنید و آنها را رها نکنید.یک پیشنهاد بسیار عالی:اگر مسلط به فریم ورک خاصی هستید یا در زمینه‌ای تخصص دارید از ابتدای شروع سربازی یک پروژه‌ی شخصی برای خود تعریف کنید و مرخصی به مرخصی آنرا کاملتر کنید.این کار مانع از فراموشی تخصص شما می‌شود.کتاب‌های Clean Code, Clean Coder, Clean Architecture و Refactoring رو که در مورد مفاهیم مختلف برنامه‌نویسی توضیح میدهند رو مطالعه کردم:۱. کتاب Refactoring:کتاب Refatoring در مورد بهبود طراحی کد موجود است. این روند تغییر یک سیستم نرم افزاری است به گونه ای که رفتار خارجی کد را تغییر ندهد ، اما ساختار داخلی آن را بهبود بخشد. با refactoring حتی می توانید یک طراحی بد را بدست آورید و دوباره آن را به یک طراحی خوب تبدیل کنید. این کتاب بحث کاملی در مورد اصول بازسازی (Refactoring) را شامل می شود ، از جمله اینکه کجا می توان فرصت ها را برای Refactoring پیدا کرد و نحوه تنظیم تست های مورد نیاز را ذکر کرد. همچنین کاتالوگ بیش از ۴۰ مورد اثبات شده با جزئیات مربوط به زمان و دلیل استفاده از آن و دستورالعمل های گام به گام برای اجرای آن و نمونه ای از نحوه کار این کتاب وجود دارد. این کتاب با استفاده از جاوا به عنوان زبان اصلی آن نوشته شده است ، اما ایده ها برای هر زبان OO قابل استفاده هستند.۲. کتاب Clean Code:کتاب Clean Code به سه قسمت تقسیم شده است. اولی اصول ، الگوها و روش های نوشتن کد تمیز را توصیف می کند. قسمت دوم شامل چندین مورد موردی در زمینه افزایش پیچیدگی است. هر مطالعه موردی تمرینی برای تمیز کردن کد  است که دارای برخی از مشکلات به یک صدا سالم و کارآمد است. بخش سوم بازپرداخت است: یک فصل واحد شامل لیستی از اکتشافات و &quot;بو&quot; هایی که هنگام ایجاد مطالعات موردی جمع شده است. نتیجه یک دانش بنیان است که نحوه تفکر ما هنگام نوشتن ، خواندن و تمیز کردن کد را توصیف می کند.۳. کتاب Clean Coder:این کتاب رفتار برای برنامه نویسان حرفه ای ، رشته ها ، فنون ، ابزارها و شیوه های ساخت نرم افزار واقعی را معرفی می کند. این کتاب با مشاوره عملی همراه است  در مورد همه چیز ، از تخمین و کدگذاری تا refactoring و آزمایش. این بسیار بیشتر از تکنیک را پوشش می دهد: این مربوط به نگرش است. مارتین نشان می دهد که چگونه می توان با افتخار ، عزت نفس و افتخار به توسعه نرم افزار نزدیک شد. خوب کار کنید و تمیز کار کنید صادقانه ارتباط برقرار کنید و تخمین بزنید. با وضوح و صداقت با تصمیمات دشوار روبرو شوید. و درک کنید که دانش عمیق مسئولیت عمل را به همراه دارد.۴. کتاب Clean Architecture:این کتاب با بهره گیری از بیش از نیم قرن تجربه در محیط های نرم افزاری از هر نوع قابل تصوری ، به شما می گوید که چه انتخاب هایی را انجام دهید و چرا برای موفقیت شما حیاتی است. همانطور که انتظار داشتید از عمو باب انتظار داشته باشید ، این کتاب با راه حل های مستقیم و بی معنی برای چالش های واقعی روبرو می شود  آنهایی که پروژه های شما را می سازند یا خراب می کنند.۵. برای طراحی الگوریتم کتاب clrs رو خوندم.۶. کتاب دیتابیس‌های سیلبرشاتس رو برای مرور مفاهیم طراحی دیتابیس خوندم.۷. برای تقویت زبان انگلیسی با خواندن کتاب‌هایی مانند  504 essential words  و چند رمان انگلیسی خوندم.۸. خواندن انواع روش‌های مدیریت پروژه مانند:AgileScrumKanbanLeanWaterfallSix SigmaPMI/PMBOKبازار کار چه تغییراتی در دوران سربازی من کرد؟بازار کار تغییر چندانی در زمان کمتر از ۲ ساله‌ی سربازی من نکرد و می‌تونم بگم حدودا ۸۰% یا ۹۰٪ به همون روال باقی موند البته در زمینه هایی که من کار میکردم و بجز تغییرات کمی در زمینه ی سیستم ادمین لینوکس مثل اضافه شدن برخی تکنولوژی‌ها یا آمدن ورژن جدیدتر برخی نرم‌افزارها یا فریم‌ورک‌ها حداقل من هنوز تغییر زیادی ندیدم و اگه بتونید مطالعه خودتونو در زمان سربازی حفظ کنید فکر نمی‌کنم بعد از سربازی به بیشتر از ۱ ماه زمان برای ریکاوری نیاز داشته باشین.امیدوارم این مطلب مورد توجهتون قرار گرفته باشه و بتونه یکم از استرس های قبل از رفتن به سربازیتون کم کنه. </description>
                <category>Ahmad Abdollahzadeh</category>
                <author>Ahmad Abdollahzadeh</author>
                <pubDate>Wed, 24 Mar 2021 18:37:46 +0430</pubDate>
            </item>
                    <item>
                <title>حل چالش‌های Natas (۰ تا ۴)</title>
                <link>https://virgool.io/@ahmadabd13741112/%D8%AD%D9%84-%DA%86%D8%A7%D9%84%D8%B4-%D9%87%D8%A7%DB%8C-natas-%DB%B0-%D8%AA%D8%A7-%DB%B4-nuyrzshsfb75</link>
                <description>با سلاممن احمد عبدالله‌زاده هستم و قصد دارم در این مجموعه از مطالب به حل مجموعه چالش‌های  Natas از سایت  OverTheWire بپردازم.حل و توجه به نکات این چالش‌ها میتواند به‌شما در طراحی وبسایت‌ها و نرم‌افزار‌های امن‌تر کمک کند. من بعد از دیدن چندتا از فیلم های جادی شروع به حل این مجموعه کردم که برای من بسیار جالب و مفید بود.امیدوارم براتون مفید باشه :-)چالش ناتاس از ۳۴ مرحله تشکیل شده که برای رفتن به هر مرحله باید رمز اون مرحله رو از مرحله قبل بدست بیارین.چالش را از این صفحه شروع کنید:https://overthewire.org/wargames/natas/natas0.htmlپیدا کردن رمز Natas0یوزنیم و پسورد مرحله صفر به این صورته:نکته‌ی مورد نظر این مرحله احتمالا نشان دادن عدم امنیت بالای یوزرنیم و پسورد ساده و یکسان است.احتمالا دیده‌اید که افراد زیادی از رمز ساده مانند ۱۲۳۴۵۶ یا admin و ... استفاده می کنند که حدس زدن آنها بسیار ساده است.یوزرنیم و پسورد پیچیده تری برای خود انتخاب کنید که قابل حدس نباشد.Username: natas0
Password: natas0
URL:      http://natas0.natas.labs.overthewire.orgپیدا کردن رمز Natas1در صفحه‌ی Natas0 باید دنبال یوزرنیم و پسورد Natas1 باشیم.گاهی برنامه نویسان هنگام ساخت نرم‌افزار خود اطلاعات مهم و حیاتی مانند پسورد قسمت‌های مهم یا پسورد دیتابیس را بصورت کامنت در کد خود قرار می‌دهند و فراموش می‌کنند که آنرا حذف کنند.در این مرحله می‌توانید با کلیک راست روی صفحه و زدن گزینه‌ی Inspect Element(Q) در کد HTML یوزرنیم و پسورد مرحله‌ی ۱ را پیدا کنید. Username: natas1
Password: gtVrDuiDfck831PqWsLEZy5gyDz1clto
URL:      http://natas1.natas.labs.overthewire.orgپیدا کردن رمز Natas2در صفحه‌یNatas1 باید دنبال یوزرنیم و پسورد Natas2 باشیم.در این مرحله برنامه‌نویس کلیک راست روی صفحه را قفل کرده تا هکر به کد صفحه دسترسی نداشته باشه اما این کار باعث بالا رفتن امنیت سایت نشده زیرا براحتی میتوان با زدن شورت‌کات CTRL+u به سورس صفحه دسترسی پیدا کرد و رمز مرحله‌ی بعد رو کشف کرد.Username: natas2
Password: ZluruAthQk7Q2MqmDeTiUij2ZvWy2mBi
URL:      http://natas2.natas.labs.overthewire.orgپیدا کردن رمز Natas3در صفحه‌ی Natas2 باید دنبال یوزرنیم و پسورد Natas3 باشیم.در این مرحله عبارت چیزی در این صفحه نیست را مشاهده میکنیم. پس از بررسی سورس کد صفحه هیچ کامنتی که حاوی یوزرنیم و پسورد مرحله‌ی بعد باشد مشاهده نمی‌شود. اما یک img_tag جلب توجه میکند:&lt;img src=&amp;quotfiles/pixel.png&amp;quot&gt;با بررسی آدرس /files/ متوجه‌ی فایل users.txt می‌شویم که حاوی اطلاعات مربوط به مرحله‌ی بعد است.نتیجه: فایل حاوی اطلاعات مهم خود را در آدرسی که کاربر بتواند به آن دسترسی پیدا کند قرار ندهید.Username: natas3
Password: sJIJNW6ucpu6HPZ1ZAchaDtwd7oGrD14
URL:      http://natas3.natas.labs.overthewire.orgپیدا کردن رمز Natas4در صفحه‌ی Natas3 باید دنبال یوزرنیم و پسورد Natas4 باشیم.با بررسی سورس کد این مرحله این عبارت به چشم می‌خورد:&lt;!-- No more information leaks!! Not even Google will find it this time... --&gt;با اندکی بررسی در اینترنت متوجه می‌شویم که ربات‌های گوگل هنگام بررسی صفحات هر وبسایت از فایل robots.txt/ عبور کرده و آنرا بررسی نمی‌کنند. این موضوع ممکن است باعث شود برنامه نویس این فایل را برای قرار دادن اطلاعات مهم وبسایت خود انتخاب کند تا با سرچ در گوگل این اطلاعات  پیدا نشوند اما یکی از اولین فایل‌هایی که یک هکر بررسی می‌کند همین فایل است.نتیجه: هرگز اطلاعات مهمی که می‌خواهید از دسترس هکرها دور باشند را در این فایل قرار ندهید.با بررسی آدرس http://natas3.natas.labs.overthewire.org/robots.txt این صفحه را مشاهده می‌کنیم:حال با بررسی مسیر /s3cr3t/ فایل users.txt که حاوی پسورد مرحله‌ی بعد است را میبینیم.Username: natas4
Password: Z9tkRkWmpt9Qr7XrR5jWRkgOU901swEZ
URL:      http://natas4.natas.labs.overthewire.orgدر پست‌های بعد به حل ادامه‌ی مراحل این چالش می‌پردازیم.</description>
                <category>Ahmad Abdollahzadeh</category>
                <author>Ahmad Abdollahzadeh</author>
                <pubDate>Tue, 23 Mar 2021 15:31:32 +0430</pubDate>
            </item>
                    <item>
                <title>آمار بازدید پست‌های من در سال ۹۹</title>
                <link>https://virgool.io/@ahmadabd13741112/%D8%A2%D9%85%D8%A7%D8%B1-%D8%A8%D8%A7%D8%B2%D8%AF%DB%8C%D8%AF-%D9%BE%D8%B3%D8%AA-%D9%87%D8%A7%DB%8C-%D9%85%D9%86-%D8%AF%D8%B1-%D8%B3%D8%A7%D9%84-%DB%B9%DB%B9-cy5h4gfm6s1j</link>
                <description>در طول تاریخ از اعداد استفاده کردیم تا اغلب داد و ستد کنیم و آن‌چیزی که شمردنی است را بشماریم. برای هر عدد واحد درست کردیم تا عددهای زندگی قاطی نشوند و از اعداد، شفاف‌تر استفاده کنیم؛ مثلا وقتی می‌گوییم ده هزار تومان به پول اشاره داریم و وقتی می‌گوییم ده هزار بلیط به بلیط!روز به روز که در زندگی جلو‌تر رفتیم عددها فرقی نکردند ولی این واحدها بودند که زیاد شدند. واحد کریپتو، واحد اصله درخت، واحد فاصله و …«واحد» یک توافق عمومی است برای شمردن؛ تا همانطور که گفتم شمردن‌ها قاطی نشود. مشاهده افراد دارای ثروت (اجتماعی یا مالی) به من ثابت کرده اینکه چه چیزی را بشماریم از اینکه چطور بشماریم مهم‌تر است. هرکس با واحد خاصی مسائل زندگی را می‌شمارد. اینطور به نظرم آمده که مشخص کردن واحد یعنی مشخص کردن اینکه من در زندگی برای چه چیزهایی ارزش قائلم و می‌خواهم چه چیزهایی را در زندگی بشمارم. https://cdn.virgool.io/annual-report/1399/bcw7tmxntfyu-h0MlD.mp4 اعدادی که بدون واحد ثبت کردمبه ویدیویی که ویرگول برایم ساخته که نگاه می‌کنم میبینم که در سال ۹۹، من در مجموع ۹۸۶ کلمه در ویرگول نوشتم و منتشر کردم و مخاطبین، پست‌های من را ۱۲ مرتبه پسندیدند و  ۳ بار هم نظر خود را روی پست‌های من به اشتراک گذاشتند. در سال ۹۹، ۶ نفر در ویرگول من را دنبال کردند تا پست‌های بعدیم را بخوانند. این اعداد نشان میدهند من کاری کرده‌ام. هرکدام به واحدی وصل هستند. از خودم می‌پرسم من کدام واحد را شمارش کرده‌ام؟ کدامیک از واحدهای بالا از همه برای من مهم‌تر است؟ ادامه ویدیو را می‌بینم.آمار از اثر بیرونی می‌گویندطبق آمار پست‌های من ۹۰۶ بار خوانده شدند و ۱۳۹,۱۰۵ ثانیه صرف مطالعه آنها شده است، که با توجه به جمعیتی که در ایران به اینترنت دسترسی دارند، ویرگول به من می‌گوید که توانستم  ۰/۰۰۱۹۰۷۱۱۵ ثانیه، سرانه مطالعه دیجیتال کشور را بالا ببرم.از طرف دیگر ویرگول به من می‌گوید که اگر قرار بود پست‌هایم را چاپ و به دست تک تک خوانندگان برسانم باید ۲,۶۷۶ کاغذ مصرف می‌کردم.آن عددهای کوچک ابتدای ویدیو حالا تبدیل شده‌اند به عددهای بزرگ به اینکه من جلوی مصرف این تعداد کاغذ را گرفتم یا به اینکه من  ۰/۰۰۱۹۰۷۱۱۵ ثانیه، سرانه مطالعه دیجیتال کشور را جابه جا کرده‌ام. واحد این عددها برای من ملموس‌تر است.واحد نوشتن چیست؟همه عددهای بالا و همینطور اثر بیرونی که روی خوانندگان و همینطور در مقیاس بزرگتر طبیعت و جامعه اطرافم گذاشتم اعدادی هستند که من دوستشان دارم و به آنها افتخار می‌کنم. اگر چنین ویدیویی دست شما نیز رسید به شما بابت تک تک اعداد تبریک می‌گویم.اثر هر نوشته تا حدودی معلوم است، اگر بنویسید جلوی قطع درخت را می‌گیرید، به سرانه مطالعه کشور اضافه می‌کنید و خوانندگانی جذب می‌کنید که شما را از طریق نوشته‌هایتان می‌شناسند و …به نظرم می‌رسد که نوشته‌های من و شما واحد ندارند ولی اثر بیرونی دارند.</description>
                <category>Ahmad Abdollahzadeh</category>
                <author>Ahmad Abdollahzadeh</author>
                <pubDate>Mon, 22 Mar 2021 20:31:05 +0430</pubDate>
            </item>
                    <item>
                <title>رمزگذاری Electronic Code Book (ECB)</title>
                <link>https://virgool.io/@ahmadabd13741112/electronic-code-book-ecb-nt84ytcqogq7</link>
                <description>Block Cipher Modes Of Operationبا سلاممن احمد عبدالله‌زاده هستم و قصد دارم در این مطلب یک روش رمزگذاری بنام Electronic Code Book (ECB) رو معرفی کنم.امیدوارم براتون مفید باشه :-)الگوریتم های رمزگذاری بر اساس نوع ورودی به دو دسته تقسیم می شوند: رمز بلوک و رمز عبور جریان.  رمز بلوک(‌Block Cipher)  بلوک های داده را با اندازه ثابت پردازش می کند. معمولاً اندازه پیام از اندازه بلوک بزرگتر است. از این رو ، پیام طولانی به یک سری بلوک پیام پی در پی تقسیم می شود ، و رمز به صورت یکبار بر روی این بلوک ها کار می کند.کتاب کد الکترونیکی(ECB) ساده ترین حالت رمزگذاری بلوک است زیرا بصورت مستقیم هر بلوک از ورودی را دریافت کرده و بصورت بلوک های رمزنگاری شده برمیگرداند. به طور کلی ، اگر اندازه یک پیام بزرگتر از بیت باشد ، می تواند به چند بلوک تقسیم شود و به همین ترتیب تکرار شود.این حالت ساده ترین روش پردازش مجموعه ای از بلوک های پیام ذکر شده به ترتیب است.عملکردابتدا اولین بلوک از متن را می گیرد و آن را با کلید رمزگذاری می کند تا اولین بلوک متن رمز را تولید کند.  او سپس بلوک دوم متن ساده را می گیرد و همان روند را با همان کلید دنبال می کند و غیره.در حقیقت ، برای یک کلید داده شده از نظر فنی می توانیم برای همه بلوک های متن ساده ممکن یک کتاب کد از متن های رمز ایجاد کنیم. سپس رمزگذاری فقط به دنبال متن ساده مورد نیاز است و متن رمز متناسب را انتخاب می کند. بنابراین ، این عملیات مشابه واگذاری کلمات کد در یک کتاب کد است.آنالیز مدل ECBدر واقع ، هر داده کاربردی معمولاً دارای اطلاعات جزئی است که می توان حدس زد. به عنوان مثال می توان دامنه حقوق را حدس زد. متن رمزگذاری شده از ECB می تواند به مهاجم اجازه دهد كه متن ساده را با آزمون و خطا حدس بزند اگر پیام متن ساده قابل پیش بینی باشد.به عنوان مثال ، اگر متن رمزگذاری شده از حالت ECB برای رمزگذاری رقم حقوق شناخته شده باشد ، تعداد اندکی از آزمایشات به مهاجم اجازه می دهد این رقم را بازیابی کند. به طور کلی ، ما نمی خواهیم از یک رمز عبور قطعی استفاده کنیم ، بنابراین از حالت ECB نباید در اکثر برنامه ها استفاده شود. مزیت های استفاده از ECBمیتوان ورودی را بصورت موازی (Parallel) رمز نگاری کرد در نتیجه یک روش سریع برای رمز نگاری است.معایب استفاده از ECBبدلیل وجود رابطه بین متن رمز شده و ورودی امکان تحلیل متن رمز شده وجود دارد.منابع:Geeks for GeeksWikiPediatutorialspoint</description>
                <category>Ahmad Abdollahzadeh</category>
                <author>Ahmad Abdollahzadeh</author>
                <pubDate>Mon, 22 Mar 2021 20:06:44 +0430</pubDate>
            </item>
                    <item>
                <title>معرفی ماژول ایجاد ارائه‌ impress.js</title>
                <link>https://virgool.io/@ahmadabd13741112/%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D8%A7%D8%B1%D8%A7%D8%A6%D9%87-%D8%A8%D8%A7-impressjs-enpl9qvnxlkh</link>
                <description>با سلاممن احمد عبدالله‌زاده هستم و قصد دارم در این مطلب یک تکنولوژی جذاب که میتونه جایگزین پاورپوینت بشه رو معرفی کنم.امیدوارم براتون مفید باشه :-)&quot;آیا شما هم حوصله آن همه ارائه مبتنی بر اسلایدها را ندارید؟&quot;&quot;آیا فکر نمی کنید ارائه هایی که در مرورگرهای مدرن ارائه می شود نباید محدودیت های اسلایدهای کلاسیک را کپی کند؟&quot;&quot;آیا می خواهید مخاطبان خود را با تجسم خیره کننده صحبت های خود تحت تأثیر قرار دهید؟&quot;اگر شما هم از کار کردن با نرم‌افزار‌هایی مانند Microsoft PowerPoint یا Google Slides و یا LibreOffice Impress خسته شده‌اید یا می‌خواهید ارائه‌ای با ظاهری متفاوت از ارائه‌‌ی دیگران داشته باشید پیشنهاد می‌کنم تا پایان این مقاله با ما همراه باشید.در این مطلب قصد دارم به معرفی نرم‌افزار impress.js بپردازم:این یک ابزار ارائه است که از ایده پشت prezi.com الهام گرفته شده و مبتنی بر قدرت تبدیل و انتقال CSS3 در مرورگرهای مدرن است که به شما امکان ایجاد هرگونه اسلاید با هرگونه امکانی از قبیل انواع چرخش, ایجاد فضاهای سه بعدی, انواع رنگ بندی و حرکت به طرفین بدون هیچ محدودیتی را می‌دهد.تنها محدودیت شما در impress.js خلاقیت شماست.پیش نیازها:دانش ابتدایی در HTML5دانش ابتدایی در CSS3دانش ابتدایی در JAVASCRIPTمقدار زیادی خلاقیت و ذوقپس از یادگیری پیش‌نیازهای ذکر شده:سری به سایت معرفی impress.js بزنید و دموی معرفی impress.js که خود با استفاده از ماژول impress.js طراحی شده است را ببینید. این یک مثال و طراحی ساده با استفاده از impress.js است که می‌توانید سورس کد آن را اساس طراحی‌های خودتان قرار دهید.برای دانلود سورس impress.js به صفحه‌ی گیت‌هاب آن مراجعه کنید: impress.js github</description>
                <category>Ahmad Abdollahzadeh</category>
                <author>Ahmad Abdollahzadeh</author>
                <pubDate>Sat, 07 Nov 2020 17:05:18 +0330</pubDate>
            </item>
                    <item>
                <title>نکاتی که باید قبل از رفتن به آموزشی سربازی بدانیم</title>
                <link>https://virgool.io/@ahmadabd13741112/%DA%86%DB%8C%D8%B2%D9%87%D8%A7%DB%8C%DB%8C-%DA%A9%D9%87-%D8%A8%D8%A7%DB%8C%D8%AF-%D9%82%D8%A8%D9%84-%D8%A7%D8%B2-%D8%B1%D9%81%D8%AA%D9%86-%D8%A8%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%DB%8C-%D8%B3%D8%B1%D8%A8%D8%A7%D8%B2%DB%8C-%D8%A8%D8%AF%D8%A7%D9%86%DB%8C%D9%85-zeykhufc6ksk</link>
                <description>نیازمندی های سربازبا سلاممن احمد عبدالله‌زاده هستم و قصد دارم در این مطلب به نیازمندی های سرباز در دوران آموزشی یعنی مطالبی که بهتر است قبل از رفتن به دوره‌ی آموزشی سربازی بدانید بپردازم.امیدوارم براتون مفید باشه :-)اول از همه می‌خواستم اینو بگم که درسته این دوران سختی‌های زیادی داره اما وقتی بعد از این دوران به گذشته نگاه می‌کنی میبینی که یکی از بهترین دوران‌های زندگیت بوده که شاید بعد از اون سالها حسرتش رو بخوری و شاید لازم باشه هر کسی تجربش کنه پس سخت نگیرین و ازش لذت ببرین و سعی کنید دوستان جدیدی پیدا کنید.(برای خود من آشنا شدن با آدمای جدید از همش لذت‌بخش تر بود و دوستان خیلی صمیمی‌ پیدا کردم که بعد از آموزشی هم هنوز باهاشون در ارتباطم).موضوعی که قبل از رفتن به آموزشی مشکل خودم بود و الان هم خیلی از سربازان این مشکل رو دارن اینه که نمیدونن قبل از رفتن به پادگان آموزشی چه وسایلی رو همراه خودشون ببرن یا چه وسایلی‌رو پادگان بهشون تحویل میده.من آموزشی خودم در پادگان آیت ا... خاتمی یزد بودم و الان هم سرباز پادگان آموزشی ولیعصر آباده هستم و فکر می‌کنم اطلاعات خوبی در مورد پادگان‌های آموزشی سپاه دارم.اول وسایلی که پادگان به شما تحویل میده:(در هر دو پادگان خاتمی و ولیعصر خیلی زود وسایل تحویل داده می‌شه و نمیخواد نگران دیر رسیدن وسایل به دستتون باشید)سه دست لباس کار نظامی (یک دست برای سربازان امریه)تعدادی صابونتعدادی پودر لباسشوییشامپواورکت نظامی (به سربازان امریه تحویل داده نمی‌شود)تعدادی جورابتعدادی ملحفه سفیدرو بالشتیواکس و فرچهتعدادی خمیر دندانتعدادی شورتتعدادی زیرپوشحوله حمامحوله دست و صورتکلاه گرمتعدادی کلاه نظامیدستکش گرمچفیهمهرقران مجیدپوتین نظامیقندلباس گرم زیر(شلوار گرم و پیراهن گرم)کمربندنظامیدمپاییخمیردندان و مسواکلوازمی که حتما همراه داشته باشید:مقادیری پول نقدیک کارت بانکی دارای رمز دوم (برای تلفن زدن از کارت بانکی استفاده می‌شود پس اقدام به خرید کارت تلفن نکنید)قاشق و چنگال شخصیلیوان شخصیکش مشکی دو یا سه مترسنجاق قفلی بیست یا سی عددگتر ساق پا (از فروشگاه‌های لوازم شکاری خریداری شود)لیف حمامقفل آویز برای کمددستمال کاغذی ساعت مچی(ترجیها زنگ دار) نکاتی که باید بدانید:از آوردن تلفن همراه(موبایل) خودداری کنید زیرا اجازه استفاده از آن را نخواهید داشت.پادگان خاتمی یزد تلفن‌های همراه ما را تحویل گرفت اما پادگان ولیعصر آباده تحویل نمی‌گیرد و باید آنهارا به خانه پست کنید که بهتر است اصلا تلفن همراه خود نیاورید.۲. یک ملحفه یا پتوی مسافرتی همراه خود داشته باشید تا روی ملحفه اصلی خود پهن کنید و از کثیف شدن آن جلوگیری کنید.۳. می‌توانید آجیل یا شکلات همراه خود داشته باشید اما از آوردن تخمه خودداری کنید.۴. می‌توانید انواع ویتامین را همراه خود داشته باشید.۵. همراه داشتن یک ورق قرص ضد حساسیت که به خود من خیلی کمک کرد.۶. همراه داشتن کرم نرم‌کننده یا وازلین هم خالی از لطف نیست.۷. همراه داشتن پماد آد هم میتونه کمک کنه چون معمولا پای بچها توی پوتین تاول میزد یا کبود میشد البته برای من اتفاق نیوفتاد.۸. قبل از رفتن موهای سرتون رو کوتاه کنین(برای دیپلم و پایین‌تر در مراکز آموزش ۱۰ و سرباز و سرجوخه در حین خدمت ۱۰  تا ۱۶، همچنین فوق دیپلم و بالاتر در مراکز آموزش ۱۶ و افسر و درجه دار حین  خدمت ۱۶ تا ۲۰)لازم است بدانید بهداری و داروخانه در پادگان وجود دارد و نیازی نیست انواع قرص و دارو‌ها را همراه خود بیاورید.در این ایام بدلیل شیوع بیماری کرونا ماسک همراه داشته باشد.یک نکته هم که لازم دونستم بگم که مبادا فراموش کنید اینه که شماره تلفن افرادی رو که ممکنه بخواین باهاشون صحبت کنید رو همراه خودتون داشته باشین.</description>
                <category>Ahmad Abdollahzadeh</category>
                <author>Ahmad Abdollahzadeh</author>
                <pubDate>Fri, 07 Aug 2020 11:45:29 +0430</pubDate>
            </item>
                    <item>
                <title>برنامه نویسی و دلایل یادگیری برنامه نویسی برای تمام انسان ها</title>
                <link>https://virgool.io/fboard/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%88-%D8%AF%D9%84%D8%A7%DB%8C%D9%84-%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%D8%B1%D8%A7%DB%8C-%D8%AA%D9%85%D8%A7%D9%85-%D8%A7%D9%86%D8%B3%D8%A7%D9%86-%D9%87%D8%A7-qtnaejkz8toz</link>
                <description>استاندارد‌های برنامه‌نویسبا سلاممن احمد عبدالله‌زاده هستم و قصد دارم در این مطلب در دلایل اهمیت برنامه نویسی صحبت کنم که برگرفته از کتاب استاندارد‌های برنامه‌نویسی نوشته خودم هست صحبت کنم.امیدوارم براتون مفید باشه :-)از دلایل اهمیت برنامه‌نویسی:زبان برنامه‌نویسی به زبان مشترک آینده تبدیل خواهد شد.پیشرفت هوش‌مصنوعی، اینترنت‌اشیا و بسیاری  دیگر از تکنولوژی‌هایی که با استفاده از برنامه‌نویسی بوجود آمده‌اند باعث  اتوماتیک‌سازی شدن کارها و همچنین بیکارشدن هزاران نفر شده‌اند، اما این  پیشرفت‌ها موقعیت‌های شغلی بسیاری را نیز بوجود آورده‌اند.در دنیای امروزه که رایانه به عضوی جدایی‌ناپذیر از زندگی روزمره ما تبدیل  شده است دانستن برنامه‌نویسی بسیار با اهمیت است.فرقی نمی‌کند در چه رشته دانشگاهی تحصیل  می‌کنید یا مشغول کار در چه زمینه‌ای هستید, دانستن برنامه‌نویسی می‌تواند  شما را در خلق ایده‌های جدید برای پیشرفت در کارها یا آماده کردن و تحلیل  مقالات علمی کمک کند و یا باعث افزایش سرعت پیشرفت علمی یا کاری شما شود.یادگیری برنامه‌نویسی فقط برای سازندگان نرم افزار‌ها نیست.همانطور که استیو جابز می‌گوید :تمام مردم باید برنامه‌نویسی یاد بگیرند، چون برنامه‌نویسی به شما یاد می‌دهد که چگونه فکر کنید.فرقی نمی‌کند در چه زمینه‌ای مشغول به کار هستید دانستن برنامه‌نویسی باعث برتری شما نسبت به دیگران می‌شود.این گفته ی لیلا سِکا مدیر ارشد در Salesforce (شرکت سان‌فرانسیسکویی که در زمینه‌ی پرداش ابری فعالیت می‌کند) می‌باشد،  او همچنین در مصاحبه‌ای با بیزینس انسایدرز اذعان کرد که ندانستن  برنامه‌نویسی از بزرگ‌ترین اشتباهات زندگی اوست.لیلا سکا همچنین می‌گوید:کد و برنامه‌نویسی، زبان کامپیوتر است؛ من  می‌خواهم با کامپیوتر صحبت کنم و زبانش را یاد بگیرم. یادگیری برنامه‌نویسی  باعث موفقیت بیشتر در کار من خواهد شد.امروزه  پیشرفت تکنولوژی و نفوذ آن در دیگر  زمینه‌های علمی شما را ملزم می‌کند  که حتی اگر توسعه دهنده‌ نرم‌افزار  نیستید شروع به یادگیری برنامه‌نویسی و  مفاهیم ابتدایی تکنولوژی‌هایی  مانند api, web, cloud  و ... کنید.اما این کار چه سودی می‌تواند داشته باشد؟افزایش خلاقیتیادگیری تکنیک حل مشکلدرک بهتری از تکنولوژیتوانایی در گفتار تخصصیدانستن برنامه‌نویسی می‌تواند به شما کمک کند  که راهکاری برای ساده کردن بخشی از کارهایی که روزانه انجام می‌دهید طراحی  کنید یا ایده‌ای را که مدتها در ذهن دارید را پیاده‌سازی کنید و یا تحلیل  کنید که چقدر یک ایده  قابل پیاده‌سازی است و همچنین چه هزینه ای برای اجرا  نیاز دارد.چرا کد نویسی بصورت استاندارد توصیه میشود؟کدنویسی بصورت استاندارد فقط توصیه نمی‌شود بلکه ضروری و لازم است.نرم‌افزار‌های بزرگ و پرکاربرد توسط یک شخص و  در زمان اندکی ساخته نشده‌اند, یک نرم‌افزار از اولین روزی که شروع به رشد  می‌کند تا وقتی که به بلوغ میرسد و مورد استفاده همگان قرار می‌گیرد هر روز  بزرگ و بزرگتر می‌شود , بارها تغییر می‌کند, برنامه‌نویسان مختلفی روی آن  کار می‌کنند و حتی ممکن است بارها بازنویسی شود.اگر کدها درهم باشند, نام متغیرها, توابع و  دیگر اجزای کد بی‌معنی باشد هرگز یک نرم افزار رشد نمی‌کند زیرا درک و فهم  کد دیگران سخت و وقت گیر خواهد شد. در این شرایط  حتی فهم وتغییر کدی که  مدتی قبل خودمان نوشته‌ایم نیز بسیار دشوار خواهد بود.اگر لینوس توروالدز در هنگام  نوشتن کرنل لینوکس کدی نامرتب و غیر‌استاندارد می‌نوشت هرگز کرنل لینوکس  به نقطه‌ای که در حال حاضر در آن قرار دارد می‌رسید؟ هرگزدر این شرایط استفاده از یک استاندارد جامع واجب است.رعایت استانداردها باعث ایجاد کدی مرتب, قابل فهم و حرفه‌ای می‌شود.برای شروع و یادگیری برنامه نویسی به این مطلب مراجعه کنید: https://vrgl.ir/RTctL برگرفته از کتاب استانداردهای برنامه نویسی: https://ahmadabd.gitbooks.io/pp-standards/content/ </description>
                <category>Ahmad Abdollahzadeh</category>
                <author>Ahmad Abdollahzadeh</author>
                <pubDate>Sun, 13 Oct 2019 11:02:15 +0330</pubDate>
            </item>
            </channel>
</rss>