<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>پست‌های انتشارات سون لرن</title>
        <link>https://virgool.io/7Learn/feed</link>
        <description>با آموزش های برنامه_نویسی و طراحی_وب، از شروع یادگیری تا استخدام در بازار فناوری در کنارتان هستیم</description>
        <language>fa</language>
        <pubDate>2026-04-15 10:43:47</pubDate>
        <image>
            <url>https://files.virgool.io/upload/publication/vxf8ns3pjzm7/27zirt.jpg</url>
            <title>سون لرن</title>
            <link>https://virgool.io/7Learn</link>
        </image>

                    <item>
                <title>اگر یک برنامه نویس تازه کار هستید لطفا مطالعه کنید</title>
                <link>https://virgool.io/7Learn/%D8%A7%DA%AF%D8%B1-%DB%8C%DA%A9-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D8%AA%D8%A7%D8%B2%D9%87-%DA%A9%D8%A7%D8%B1-%D9%87%D8%B3%D8%AA%DB%8C%D8%AF-%D9%84%D8%B7%D9%81%D8%A7-%D9%85%D8%B7%D8%A7%D9%84%D8%B9%D9%87-%DA%A9%D9%86%DB%8C%D8%AF-qjaxemvmbugr</link>
                <description>اگر اول راه هستید به بیشترین چیزی که نیاز دارید تجربه و مهارت هست. مهارت در حین کسب تجربه بدست می آید. پس بیاید درباره ی ساخت تجربه ی جدید صحبت کنیم. ۱- از پذیرش پروژه ها و موقعیت های شغلی جدید نترسید. شاید در قسمتی از کار مهارت کافی را نداشته باشید, این مورد را ذکر کنید و برای انجام آن اشتیاق نشان دهید. برای کسب تجربه باید از منطقه ی امن خودتان بیرون بیایید. لطفا این کار را انجام دهید. اما حس نکنید در اول راه میتوانید معجزه کنید. همیشه با افراد سنیور مشورت کنید. هدف من از بیان این مطلب ایجاد یک حس اشتیاق برای انجام کار های جدید و یادگیری چیز های جدید بود. اما همیشه منطقی باشید. شما باید پاسخگو باشید. ۲- یادگیری عمیق داشته باشید. هیچ وقت کپی پیستر نباشید تا فقط کاری انجام شود. دلیل آن کار را هم یادبگیرید. این خیلی مهم است. البته عمل به این نکته واقعا کار سختی است. معمولا زمان کمی برای انجام کاری داریم و همیشه اشتیاق آن را داریم که کار را خوب انجام دهیم و حسابی تشویق شویم اما کمی بیشتر زمان بگذارید. لطفا این کار را انجام دهید. ۳- بطور پیوسته در حال مطالعه و یادگیری باشید. حتی اگر سرتان خیلی شلوغ بود بعنوان استراحت این کار را انجام دهید. در دورهمی ها و مسابقات برنامه نویسی شرکت کنید که تجربه ی چندین ماه را میتوانید در زمان کمی کسب کنید. همین طور مطالعه و تماشای کنفرانس های مربوط به حوزه ی کاری خودتان میتواند بسیار کمک کننده باشد. لطفا این کار را انجام دهید.در آخر باید این نکته را ذکر کنم که هر چقدر هم خوب کار کنید و هر چقدر بهتر شوید باز هم جا برای پیشرفت هست. زمانی که یک جا بیاستید خبری از پیشرفت نخواهد بود. پس به حرکت ادامه دهید.ویدیو  زیر را هم در همین رابطه با همکاری مجموعه ی سون لرن تهیه کردیم. دیدن این ویدیو خالی از لطف نیست. https://www.aparat.com/v/Oha8Q </description>
                <category>سون لرن</category>
                <author>مهدی گیلانپور</author>
                <pubDate>Tue, 12 Mar 2024 16:00:18 +0330</pubDate>
            </item>
                    <item>
                <title>نقش یک مهندس تست نرم‌افزار</title>
                <link>https://virgool.io/7Learn/%D9%86%D9%82%D8%B4-%DB%8C%DA%A9-%D9%85%D9%87%D9%86%D8%AF%D8%B3-%D8%AA%D8%B3%D8%AA-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-euegxzuudckk</link>
                <description>نقش یک مهندس تست نرم‌افزار در سازمان بسیار اساسی و حیاتی است. این نقش از مراحل ابتدایی تا پایانی فرآیند توسعه نرم‌افزار اهمیت دارد. در زیر، وظایف و نقش‌های یک مهندس تست نرم‌افزار را توضیح می‌دهم:1. برنامه‌ریزی و طراحی آزمون: یک مهندس تست نرم‌افزار در مرحله برنامه‌ریزی و طراحی آزمون مشارکت دارد. او با تحلیل نیازمندی‌ها و مشخصات فنی، طرحی برای آزمون‌های مورد نیاز ایجاد می‌کند تا اطمینان حاصل شود که تمامی قسمت‌های نرم‌افزار به درستی تست شوند.2. پیاده‌سازی آزمون: مهندس تست نرم‌افزار مسئولیت اجرای آزمون‌ها را بر عهده دارد. او تست‌های مختلف را اجرا می‌کند، نتایج را ثبت می‌کند و هر گونه خطایی را که پیدا می‌کند، به توسعه دهندگان گزارش می‌دهد تا بتوانند آن را برطرف کنند.3. استقرار و نگهداری آزمون: مهندس تست نرم‌افزار همچنین مسئولیت استقرار و نگهداری آزمون‌ها را دارد. او باید مطمئن شود که آزمون‌ها به درستی در محیط‌های توسعه، آزمایش و عملیاتی اجرا می‌شوند و همچنین نگهداری و به‌روزرسانی آنها را برعهده دارد.4. تحلیل و گزارش خطاها: مهندس تست نرم‌افزار مسئولیت تحلیل و گزارش خطاهای زمان تست را دارد. او باید هر گونه خطایی که پیدا می‌کند را با دقت تجزیه و تحلیل کند، دلیل آن را مشخص کند و گزارش آن را به تیم توسعه ارائه دهد تا بتوانند آن را برطرف کنند.5. همکاری با توسعه دهندگان: مهندس تست نرم‌افزار باید به خوبی با توسعه دهندگان همکاری کند. او باید با آنها در مورد نیازمندی‌ها، طراحی‌ها و خطاها هماهنگ شود و به اشتراک گذاری اطلاعات مورد نیاز برای بهبود کیفیت نرم‌افزار کمک کند.6. توسعه و بهبود فرآیندهای تست: مهندس تست نرم‌افزار باید به طور مداوم به توسعه و بهبود فرآیندهای تست مشغول باشد. او باید فرآیندهای تست را بازبینی کرده، نقاط ضعف را شناسایی و راهکارهای بهبود را ارائه دهد تا بهبود کیفیت نرم‌افزار حاصل شود.در کل، مهندس تست نرم‌افزار نقش بسیار مهمی در تضمین کیفیت و عملکرد مطلوب نرم‌افزارها دارد و بدون وجود این نقش، امکان ارائه یک نرم‌افزار پایدار و با کیفیت به کاربران امکان‌پذیر نخواهد بود.در ویدیوی زیر که با همکاری مجموعه آموزش برنامه نویسی سون لرن تهیه شده است، میتوانید به صورت کامل توضیحاتی که در مقاله دادم را مشاهده کنید. https://www.aparat.com/v/YslQX </description>
                <category>سون لرن</category>
                <author>فهیمه شفیعی</author>
                <pubDate>Mon, 19 Feb 2024 13:04:06 +0330</pubDate>
            </item>
                    <item>
                <title>پنج نکته که ما رو به عضوی قابل اعتماد در سازمانمون تبدیل می‌کنه</title>
                <link>https://virgool.io/7Learn/%D9%BE%D9%86%D8%AC-%D9%86%DA%A9%D8%AA%D9%87-%DA%A9%D9%87-%D9%85%D8%A7-%D8%B1%D9%88-%D8%A8%D9%87-%D8%B9%D8%B6%D9%88%DB%8C-%D9%82%D8%A7%D8%A8%D9%84-%D8%A7%D8%B9%D8%AA%D9%85%D8%A7%D8%AF-%D8%AF%D8%B1-%D8%B3%D8%A7%D8%B2%D9%85%D8%A7%D9%86%D9%85%D9%88%D9%86-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D9%85%DB%8C-%DA%A9%D9%86%D9%87-fkc728nadfdn</link>
                <description>سلام سلامشاید تاحالا براتون اتفاق افتاده باشه که بخواهید به یک فرد قابل اعتماد و تاثیر گذار در سازمانتون تبدیل بشید یا افرادی رو سراغ دارید که در سازمانتون بسیار قابل اعتماد و کلیدی هستند.من هم مثل خیلی از افراد وقتی برای اولین بار وارد تیم سازمانیم شدم، یکی از مواردی که همیشه دلم می‌خواست تجربه کنم این بود که من رو به عنوان یک فرد قابل اعتماد بشناسن.تبدیل شدن به فردی قابل اعتماد امری زمان بره که باید فاکتورهای مختلف رو رعایت کنید.من اینجام که به شما نکاتی رو بگم که میتونه خیلی بهتون کمک کنه.1. تعهد پذیریداشتن صفت تعهد پذیری، نخستین و یکی از مهم ترین ویژگی‌هایی هست که شما را در همه مراحل زندگیتون به اهدافتون می‌رسونه و موضوع بحثمون هم از قاعده مسثتنی نیست.به عنوان مثال هنگامی که مدیر و یا همکارتون به شما کاری را میسپارد و یا در جلسه‌ای هستید و برای روزهای جاری تیمتون برنامه ریزی می‌کنید، تعهد پذیر بودن نسبت به کاری که باید انجام بدید شمارو در ذهن‌ها تبدیل میکنه به فردی مسئولیت پذیر که منجر میشه به کسب اعتماد بیشتر از سمت همکارهایتان.اینکه شما نسبت به کارهاتون متعد و مسئولیت پذیر باشید و برای به سرانجام رسوندنش همه تلاشتون رو کنید، باعث میشه خیال باقی افراد تیمتون از شما راحت باشه؛ حتی وقتی به نتیجه دلخواه نرسید!!!2. داشتن اعتماد به نفس برای انجام کارهافرض کنید یک روزی همکارتون یک کاری در حیطه وظایفتون رو بهتون میسپاره. مثلا ازتون میخواد یک تغییری در بخشی از کدهای پروژه ایجاد کنید.حالا فرض کنید کاری که ازتون خواسته شده، کاری باشه باشه که اولین باری هست که می‌خواهید انجام بدید و تاحالا تجربه‌ای نداشتید.در ابتدا مهم ترین کاری که لازم هست انجام بدید اینه که نگید &quot;نه نمیتونم انجامش بدم&quot; !!!!این جمله اگر از سر عدم اعتماد به نفس شما بیاد، بدترین تاثیر ممکن رو خواهد گذاشت.اگر شرایط تیمتون به شکلی بود که می‌تونستید از همکار یا مدیرتون وقت کافی رو برای انجام بگیرید، حتما با آغوش باز به سمت این تسک برید.این کار شما باعث میشه هم ترس شما برای انجام کار جدید کاهش پیدا کنه، هم یک چیز جدیدی را تجربه کردید و هم اعتماد به نفس و جاه طلبی شما به دیگران نشان داده شود.3. مشکلاتتون رو مطرح کنیدیکی از رفتارهای رایج در سازمان‌ها این هست که افراد از بیان مشکلات خودشون شونه خالی می‌کنند و آن‌ها را مطرح نمی‌کنند.این رفتار نه تنها باعث میشه چیزی حل نشه، بلکه احساس بد و نفرت در شما نسبت به پیرامونتون ایجاد می‌کنه که خودش مشکل دیگری رو به سایر مشکلات اضافه ‌می‌کنه.حتی اگر موقع انجام کارهاتون به مشکل خوردید، بیاید و مطرحش کنید و درگیر رابطه عاطفی با کارتون نشید و با خودتون فکر نکنید که الان انجامش میدم، بذار یه ذره دیگه وقت بذارم و غیره …با کارهای در دست اقدامتون ، رابطه عاطفی نسازید. چون به جز از دست رفتن وقت نتیجه دیگری نخواهید گرفت.قبل اینکه باتلاق مشکلات شمارو غرق کنه، شما روی مشکلات چیره بشید و با مدیر و یا همکارتون مطرحش کنید.4. از دیگران کمک بگیریدکمک خواستن اصلا نشانه ضعف نیست. ختم کلام !!!!هرچقدر تجربه افراد بیشتر میشه، گارد و حالت تدافعی بیشتری نسبت به کمک گرفتن از دیگران دارن. مثلا با خودمون فکر می‌کنیم که من خودم میتونم به تنهایی از پسش بر بیام و نیازی به کمک دیگران ندارم.در صورتی که با یک کمک گرفتن ساده از دیگران می‌تونیم هم سریع‌تر و هم خلاقانه‌تر مسائل رو حل کنیم و تازه با زاویه دید جدیدی نسبت به مسئله آشنا بشیم.برخلاف تصور اشتباه خیلی از افراد، نه تنها کمک خواستن نشانه ضعف شما نیست بلکه به دیگران نشان میده که شما روحیه کار تیمی دارید و اصلا متکلم وحده و خود مختار نیستید و این یک امتیاز مثبت برای شماست که شمارو به فردی قابل اعتماد در سازمانتون تبدیل کنه.5. بیش از اندازه کار نکنیدیکی از ویژگی‌های سمی افراد در سازمان، زیاد کار کردن آن‌هاست و یکی از ویژگی‌های سازمان سمی، درخواست کار بیشتر از نیروها و تبدیل اون به یک ویژگی مثبت و آرمانیست. زیاد کار کردن شما شاید در کوتاه مدت نتیجه بخش باشه؛ ولی در دراز مدت شمارو تبدیل می‌کنه به فردی منزوی.شما برای ادامه مسیر شغلیتون به انرژی کافی نیاز دارید. یکی از مواردی که به داشتن انرژی شما کمک می‌کنه، داشتن بالانس لازم بین کار و زندگی شخصیتونه.اگر خودتون رو با کار بیشتر فدا کنید؛ به دلیل اینکه هم انرژی و انگیزه لازم رو برای ادامه مسیر نخواهید داشت و هم الگوی بدی برای دیگر افراد خواهید بود؛ لاجرم کنار گذاشته می‌شوید.کار کردن زیاد از حد شما در یک سازمان سالم، بدترین ویژگی هست که شما می‌تونید داشته باشید.در ویدیوی زیر که با همکاری مجموعه آموزش برنامه نویسی سون لرن تهیه شده است، کمی از تجربیات خودم رو با شما به اشتراک گذاشتم و از چالش‌ها و نکاتی که منجر به بالا رفتن اعتماد سازمانی میشه صحبت کردم.پس باهم بریم ویدیو رو مشاهده کنیم و نظراتمون رو به اشتراک بذاریم. https://www.aparat.com/v/9J0sz </description>
                <category>سون لرن</category>
                <author>امیرحسین مقدم</author>
                <pubDate>Tue, 13 Feb 2024 19:39:05 +0330</pubDate>
            </item>
                    <item>
                <title>راهنمای جامع ChatGPT ویژه برنامه نویسان</title>
                <link>https://virgool.io/7Learn/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%A7%D8%B2-%DA%86%D8%AA-%D8%AC%DB%8C-%D9%BE%DB%8C-%D8%AA%DB%8C-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%DA%A9%D9%86%DB%8C%D9%85%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C-%D9%85%D8%A8%D8%AA%D8%AF%DB%8C-ib19pxagqr3l</link>
                <description>مدل‌های زبان طبیعی توسعه یافته به دلیل توانایی بالا در تولید متن‌های خودکار و تبادل اطلاعات متنی، ابزار قدرتمندی برای انجام انواع وظایف متنی شده‌اند. یکی از مدل‌های معروف در این زمینه، مدل چت جی پی تی (ترنسفورمر تولیدگر از پیش آموزش‌دیده) است. این مقاله به شما راهنمایی می‌کند که چگونه از مدل چت جی پی تی برای بهره‌برداری بهتر و موثرتر از توانمندی‌های آن استفاده کنید، در عین حال به محدودیت‌ها و نکات مهمی که باید در نظر داشته باشید توجه خواهد شد.قبل از مطالعه ادامه مقاله، میتوانید ویدیو من را در رابطه با نکات فنی ChatGPT ویژه برنامه نویسان که با همکاری مجموعه آموزش برنامه نویسی سون لرن تهیه شده است را مشاهده کنید.   https://www.aparat.com/v/FQzjw نکات مهم در استفاده از ابزار ChatGPT ۱. محدودیت‌های مدل چت جی پی تیمدل چت جی پی تی یک مدل زبانی بوده که دارای محدودیت‌هایی است که باید آن‌ها را در نظر بگیرید. این محدودیت‌ها عبارتند از:· تولید محتوای خلاف اخلاقی: مدل چت جی پی تی ممکن است در صورتی که با دستوراتی نادرست یا خلاف اخلاق تغذیه شود، متن‌هایی خلاف اخلاق تولید کند. بنابراین، درخواست‌هایی که ممکن است منجر به تولید محتوای نامناسب شوند، باید اجتناب شود.· بی دقتی: مدل چت جی پی تی در برخی موارد ممکن است پاسخ‌های نادرستی ارائه دهد یا به درستی به دستورات پیچیده و یا ناواضح پاسخ ندهد.(همه چیز بر مبنای احتمالات بنا شده) بنابراین، برای وظایف حساس و مهم، باید دقت مدل را با دقت مورد بررسی قرار دهید.· نگرانی‌های امنیتی: اگر مدل چت جی پی تی به اطلاعات حساس دسترسی داشته باشد، ممکن است به دلیل نقض امنیت اطلاعات مشکلاتی ایجاد شود. بنابراین، به اطمینان از امنیت مدل و اطلاعات حساس اطلاعات توجه کنید و پسورد های خود را با آن به اشتراک نگذارید.۲. اجتناب از تغییر موضوع و کانتکستیکی از مسائل مهم در استفاده از مدل چت جی پی تی این است که به اصطلاح &quot;تغییر موضوع&quot; یا &quot;کانتکست سوئیچینگ&quot; را اجتناب کنید. به عبارت دیگر، بهتر است هنگام استفاده از مدل چت جی پی تی در یک پنجره مشخص، در یک موضوع خاص بمانید و تغییر موضوع را به حداقل برسانید. این اقدام به دقت و کیفیت پاسخ‌های مدل کمک می‌کند و جلوگیری می‌کند که مدل به صورت نامرتبط به موضوعات مختلف پاسخ دهد.۳. استفاده از مدل چت جی پی تی برای پروتوتایپ‌هایکی از مصارف اصلی مدل چت جی پی تی، پروتوتایپ‌ها و تولید ایده‌های اولیه است. با استفاده از مدل چت جی پی تی، می‌توانید سریعاً متون گوناگون را تولید کرده و ایده‌های خود را بررسی کنید. این ابزار مفیدی برای توسعه مفاهیم و مدل‌های نخستین است.۴. افزایش سرعت کار و اجتناب از کارهای ناآشنامدل چت جی پی تی قادر به تولید متن به صورت خودکار و سریع است. از این ابزار برای افزایش سرعت کار و اتمام وظایف متنی به طور موثر استفاده کنید. همچنین باید از کارهایی که تجربه و دانش کافی را ندارید، اجتناب کنید تا جلوی خطاها و مشکلات ناخواسته را بگیرید.۵. توانایی ترجمه کدمدل چت جی پی تی قادر به ترجمه متون به زبان‌های مختلف است، از جمله ترجمه کدهای برنامه‌نویسی. این توانایی می‌تواند در تسهیل تبادل اطلاعات بین توسعه‌دهندگان از زبان‌های مختلف و در توسعه نرم‌افزارهای بین‌المللی مفید باشد.جمع بندیمدل چت جی پی تی (ترنسفورمر مولد از پیش آموزش‌دیده) ابزاری قدرتمند برای تولید متن‌های خودکار و تبادل اطلاعات متنی است. با توجه به محدودیت‌ها و نکات مطرح شده در این مقاله، می‌توانید به بهره‌وری بیشتر از این ابزار بپردازید و در کارهای متنی خود از توانمندی‌های آن بهره‌برداری کنید. همچنین، اجتناب از تغییر موضوع، افزایش سرعت کار، و اجتناب از کارهای ناآشنا از جمله نکات مهمی هستند که باید به آن‌ها توجه کنید تا استفاده بهینه از هوش مصنوعی ChatGPT داشته باشید.</description>
                <category>سون لرن</category>
                <author>Mohammad Reza Yoosefiha</author>
                <pubDate>Tue, 16 Jan 2024 20:03:18 +0330</pubDate>
            </item>
                    <item>
                <title>چقدر دانشگاه در تعیین آینده منِ برنامه‌نویس تاثیر داره؟</title>
                <link>https://virgool.io/7Learn/%DA%86%D9%82%D8%AF%D8%B1-%D8%AF%D8%A7%D9%86%D8%B4%DA%AF%D8%A7%D9%87-%D8%AF%D8%B1-%D8%AA%D8%B9%DB%8C%DB%8C%D9%86-%D8%A2%DB%8C%D9%86%D8%AF%D9%87-%D9%85%D9%86%D9%90-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D8%AA%D8%A7%D8%AB%DB%8C%D8%B1-%D8%AF%D8%A7%D8%B1%D9%87-k95cmiidtl39</link>
                <description>این چند وقته سردرگمی زیادی در میان کسایی که تازه میخوان مسیرشون رو توی دنیای برنامه‌نویسی شروع کنن دیدم و دوس داشتم کمی درباره این مسئله صحبت کنم. واقعیتش این چند ساله، برنامه‌نویسی طرفدار های زیادی پیدا کرده و بخاطر همین هم بهای بیشتری بهش داده میشه و خب کسی که تازه میخواد وارد این مسیر بشه با تعداد زیادی زبون برنامه‌نویسی، تکنولوژی ، دوره‌های برنامه نویسی، بوت کمپ، و حتی رشته‌های دانشگاهی مواجه میشه و خب آدم‌هایی رو هم می‌بینه که بدون گذروندن حتی یکی از اینها یا با گذروندن همه اینجا به چیزی که میخواستن رسیدن! و این سوال خب چیکار کنم؟ کدوم برای من بهتره؟ شروع تمام سردرگمی ها میشه. قبل از اینکه ادامه مقاله رو بخونی پیشنهاد می‌کنم اول این ویدیو که به همکاری مجموعه آموزش برنامه نویسی سون لرن تهیه شده رو ببینی . https://www.aparat.com/v/WNw0J کسی که تازه 18 سالشه، 5 سال آیندشو چطور می‌بینه؟دنیای کامپیوتر و برنامه‌نویسی، برعکس بقیه رشته‌های دیگه بخصوص مهندسی، نیاز به سخت‌افزار یا ابزارهای مخصوص و گرون قیمت برای شروع کار نداره. با ساده ترین لپ‌تاپ یا کامپیوتر که ارزون‌تر از یک تلفن‌همراه هوشمند هستند میتونید مسیر خودتون رو شروع کنید. پس چیزی که مهمه محتوا و زمانی هست که برای تمرین و یادگیری میذاریم. پس مهم ترین چیز برای کسی که میخواد تازه شروع کنه محتوایی هست که یاد میگیره و زمانی هست که برای یادگیری و تمرین میذاره.آدم بخواد واقع‌بین باشه، ما هرچقدر هم تلاش کنیم؛ کنترلی بر روی آینده خودمون نداریم چراکه پارامتر های زیادی روی اتفاقات آینده تاثیرگذار هست. یعنی حتی 20درصد یا 50درصدشو بخوایم کنترل کنیم هیچ وقت 100 درصد نمیشه.آدم نمیدونه فرداش قراره چطور بشه و من نمیتونم هیچ وقت بگم حتما تا دوسال آینده این مباحث رو یادمیگیرم، نه کمتر نه بیشتر. برای همین همیشه یک برنامه کوتاه مدت داریم و میگیم به احتمال زیاد به اکثر اون چیزی که میخوایم میرسیم و در کنارش یک برنامه بلند مدت داریم که صرفا کلیت مسیر ما رو مشخص میکنه و چیزی که در اون مسیر اتفاق میوفته اکثرا واکنش ما به اتفاق های محیطه، نه چیزی که برنامه‌ریزی کردیم.حالا کسی که 18 سالشه چطور میتونه مطمئن باشه و به خودش بگه اگه من توی 23 سالگی بخوام به فلان سطح برسم حتما حتما باید این مسیر رو برم؟متغیرهای بیرونی و درونیباید قبول کنیم آدم‌ها با هم متفاوت هستن. درسته که شباهت‌های زیادی رو میتونیم توی همدیگه ببینیم اما کوچکترین تفاوت‌ها خیلی وقت‌ها میتونن مسیر دونفر رو کاملا متفاوت کنن. این تفاوت‌ها فقط شامل متغیرهای درونی ما نمیشوند، خانواده‌ایی که توش بدنیا اومدیم، شهری‌ که توش زندگی میکنیم، اگر سر کنکور مریض شده بودیم! و خیلی مثال های دیگه که اون‌ها هم کنترلشون دست‌ ما نیست و توی زندگی همه پیش میان. همه‌ی اینها دست به دست هم میدن که یک طورایی خیال مارو راحت کنن که اگر یک شخصی با یک روشی به چیزی که میخواست رسید، لزوما اگه اون مسیر رو ما نرفتیم دلیل بر این نیست که اشتباه کردیم. پیشبینی آِینده تقریبا غیرممکنه. پس بیایم به اون مسیری که در لحظه داریم طی میکنیم و با تحقیق و تجربه‌های قبلی بهش رسیدیم ایمان داشته باشیم و دلسرد نشیم.آیا برای برنامه‌نویس خوب شدن، به دانشگاه، آموزشگاه، بوت‌کمپ و .. نیاز هست؟جواب این سوال بله و خیر نیست. بیاید یک مثال بزنم. آدمی که بره بهترین دانشگاه ولی به 100% درس‌ها توجه نکنه توی مسیر کاریش پیشرفت میکنه یا آدمی که دانشگاه نرفته ولی حالا بخاطر تجربه‌هایی که داشته یا تلاش خودش برای یادگیری اکثر اون مباحث رو یادگرفته و باهاشون تجربه داشته؟ قطعا جواب دومی هستش. دانشگاه، بوت‌کمپ، آموزشگاه، کارآموزی، ... همه نقش کاتالیزگر رو دارن. یعنی شما وارد محیطی میشید که از قبل افرادی انرژی مصرف میکنند که شما برای درک یک سری مطالب انرژی کمتری مصرف کنید.بیایم واقع‌بین باشیم، توی دانشگاه مفاهیم بسیار ارزشمندی آموزش داده میشه که حتی طرح خود سرفصل‌ها باعث میشه با مفاهیمی که قبلا هیچ ایده‌ایی در موردشون نداشتیم آشنا بشیم و حتی اگر بدترین اساتید رو هم داشته باشیم خودمون میتونیم از این فرصت برای یادگیری استفاده کنیم، اگر استاد خوبی هم داشته باشیم چه عالی! اما باز هم چیزی که این وسط تاثیر بیشتری میذاره اینه ما باید تلاش کنیم و انرژی مصرف کنیم چون دانشگاه به تنهایی کافی نیست. بوت‌کمپ چطور؟ پکیج‌های آموزشی چطور؟ واقعیت اینه این‌ها هم تفاوت آنچنانی ایجاد نمیکنند مگر همراه باشند با تلاش و تمرین ما.چیزی که دانشگاه رو با بقیه متمایز میکنه این هست توی محیط آکادمیک توسط اساتیدی که دانش آکادمیک دارند یاد میگیریم و هضم کردن مطالب تئوری، که پیش‌نیاز یک مهندس نرم‌افزار هستند، برای ما راحت تر میشود. ( البته سربازی رو هم نباید نادیده گرفت، بخصوص برای پسرها)چیزی که پکیج‌های آموزشی رو با بقیه متمایز میکند این هست که یک دوره برای مثال پروژه محور با تمرکز روی مهارت های برنامه نویسی آشنایی ما با تکنولوژی‌های مورد استفاده در بازار کار را بیشتر میکند و آشنایی و استفاده از این تکنولوژی‌ها برای ما راحت تر میشود.چیزی که بوت‌کمپ رو با بقیه متمایز میکند این هست علاوه‌ بر یادگیری تکنولوژی‌های روز بازار، در محیطی مشابه محیط کاری soft skills خودمون رو تقویت میکنیم و آماده برای کارکردن به عنوان یک نیروی تازه‌کار، در شرکت‌ها میشویم.تاثیر دانشگاه بر مهاجرت و استخدامبرای استخدام شدن در شغل‌های رایج توسعه وب، موبایل و نرم‌افزار، اکثرا شرکت‌ها مدرک دانشگاهی یا معادل آن تجربه کاری میخواهند. حالا هستند شرکت‌هایی که مدرک برای آنها الزامی هست. شما اگر تجربه و مهارت کافی داشته باشید میتونید بدون مدرک چه در ایران و چه در خارج ایران (اگر مسئله خدمت حل شده باشد) کار کنید چون در نهایت دانشگاه نقش کاتالیزوری دارد که به افزایش دانش و مهارت شما میخواهد کمک کند.باید واقع بین باشیم، دانشگاه و ادامه تحصیل میتواند ساده‌ترین روش برای مهاجرت باشد، بخصوص برای کسایی که به ادامه تحصیل کشورهایی مثل کانادا و آمریکا علاقه‌مند هستند. مهاجرت کاری در کشورهای اروپایی اتفاقا بسیار شدنی هست اما در کشورهای آمریکای شمالی مقداری سخت‌تر.سخن آخرهمه این‌ها را گفتم که بگم اگر هدفی دارید براش تلاش کنید، تجربه دیگران بسیار ارزشمند هست اما اگر تجربه آنها متفاوت از مسیر شما بود دلسرد نشوید، خیلی منطقی هست که آدم‌ها تجربیات مختلفی داشته باشند. و به این نکته نیز توجه کنید که هرگز خودتان را با فرد دیگری مقایسه نکنید، شما قرار است ورژن ارزشمندی از خودتان باشید نه افراد دیگر.</description>
                <category>سون لرن</category>
                <author>محمد حسینی راد</author>
                <pubDate>Mon, 25 Dec 2023 21:38:27 +0330</pubDate>
            </item>
                    <item>
                <title>بریم سمت معماری مایکروسرویس یا نه؟!</title>
                <link>https://virgool.io/7Learn/%D8%A8%D8%B1%DB%8C%D9%85-%D8%B3%D9%85%D8%AA-%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C-%D9%85%D8%A7%DB%8C%DA%A9%D8%B1%D9%88%D8%B3%D8%B1%D9%88%DB%8C%D8%B3-%DB%8C%D8%A7-%D9%86%D9%87-g5r82pbhwxrp</link>
                <description>تو دنیای امروز خیلی ترند شده که معمولا هرکسی یه محصول تکنولوژی توسعه میده و کمی از عمرش میگذره یا حتی از همون اولش، میخواد بره سمت معماری مایکروسرویس و سیستمی که توسعه دادن رو به یک سیستم توزیع شده تبدیل کنن! افرادی که دانش مهندسی نرم افزار دارن یا توی این رشته تحصیل کردن در جریان هستن که این مفهوم درباره ی چه چیزی صحبت میکنه و احتمالا باهاش روبرو هم شدن. اما در کل ما چند روش برای توسعه و راه اندازی سیستم های نرم افزاری داریم که دوتا از معروف ترین هاش معماری مونولیتیک (Monolithic architecture) و معماری مایکروسرویس (Microservice) هستن. قبل از اینکه ادامه مطلب رو بخونید پیشنهاد میدم ویدیو زیر که با همکاری مجموعه سون لرن تهیه شده رو ببینید بعد ادامه مطلب رو مطالعه کنید: https://www.aparat.com/v/tz21x از اوایل تاریخ توسعه ی نرم افزار معمولا نرم افزارها رو به صورت مونولیتیک یا مجتمع توسعه میدادن و کل قسمت ها و ماژول ها روی یک پروژه ی مشترک پیاده سازی و اجرا میشد. در نتیجه معمولا هم همه چیز روی یک سرور اجرا میشد و پاسخ درخواست های دریافتی رو میداد. بعد از مدتی که تعداد کاربران فعال روی اینترنت بیشتر شد و محصولات نرم افزاری هم مشتری های بیشتری برای پاسخ دادن پیدا کردن، شرکت هایی که الان دیگه بزرگ تر شده بودن دیدن که انگار نمیشه مثل قبل صرفا با افزایش منابع سرور ها، قدرت و توانایی عملکرد نرم افزار هارو بهتر کرد که بتونن درخواست های بیشتری رو پاسخ بدن. مثلا نمیشه مدام رم یا پردازنده یا بقیه ی منابع سرور رو اضافه کنیم و اصطلاحا Vertical Scaling یا افزایش مقیاس عمودی منطقی نبود.  اصولا ما دو نوع مقیاس بندی داریم: عمودی و افقی یا همون Horizontal and vertical scaling. در کل وقتی که نیاز داریم نرم افزارمون منابع بیشتری داشته باشه و به کاربران بیشتری پاسخ بده، مجبوریم که به نوعی منابع اون محصولمون رو افزایش بدیم. در حالت عمودی یا ورتیکال به سادگی میشه با افزایش منابع فیزیکی سرور یا به اصطلاح سرور بزرگ تر گرفتن این مشکل رو تا حدودی رفع کرد که البته کاملا منطقی هست. اما از جایی به بعد نرم افزار ما انقدر ممکنه بزرگ بشه که دیگه نشه روی یک سرور مدام این منابع رو ببریم بالا و اینجوری ما یک سرور خیلی بزرگ داریم که ممکنه مشکلات بزرگی برای ما به وجود بیاره و ریسک هایی رو برای کسب و کارها ممکنه به دنبال داشته باشه مثل خطر از بین رفتن اطلاعات یا ایجاد گلوگاه (Bottleneck) که میتونه عملکرد و سرعت نرم افزار مارو تحت تاثیر قرار بده.با پیشرفت دنیای نرم افزار و بزرگ تر شدن کسب و کارها، اومدن و دنبال راه حل هایی برای این مشکلات گشتن و دیدن که میشه به جای یک سرویس بزرگ که روی یک سرور داره کار میکنه، همون سرویس رو شکست به بخش های کوچک تر و هر ماژول یا سرویس کوچیک رو میشه روی سرور های جداگانه اجرا کرد و اینطوری وظایف هر بخش رو جداگانه به خود همون سرویس بسپاریم و این سرویس ها در عوض با همدیگه در ارتباط باشن و اطلاعاتی که لازم دارن رو رد و بدل کنن (Inter service communication). با این روش میشه فشاری که به کل سیستم میاد رو تا حدودی بین سرویس های کوچیک تری که داریم تقسیم کرد که سیستممون بتونه در تئوری به درخواست های بیشتری پاسخ بده و تحمل فشار بالاتری داشته باشه. چرا گفتم تئوری؟ چون همیشه هم اینطور نیست و ممکنه خود مایکروسرویس مشکلات دیگه ای رو هم ایجاد کنه که ممکنه در معماری متمرکز وجود نداشته باشه!مزیت دیگه ی مایکروسرویس اینه که وقتی تیم های شرکت ها خیلی بزرگ میشن و تعداد توسعه دهنده ها و در کل افرادی که روی سرویس کار میکنن خیلی زیاد میشه، اگر معماریمون مونولیت یا متمرکز باشه ممکنه توی کار این تیم ها به مشکلاتی بخورن مثلا وابستگی بین تیم ها زیاد بشه و زمان تلف شده برای توسعه ی سرویس ها خیلی بالا بره چون ممکنه هر تیم نتونه به صورت مستقل روی بخش مربوط به خودش کار کنه و یا مجبور باشه مدام منتظر کار بقیه بمونه یا اصطلاحا به تداخل (Conflict) برخورد کنن. اما اگر معماری مایکروسرویس باشه(البته اگر درست و اصولی پیاده بشه!) هر تیم به صورت تقریبا مستقل میتونه روی سرویس های خودش کار کنه و حتی به صورت مستقل ریلیز انجام بده و تغییرات خودش رو زودتر و مستقل از بقیه وارد مدار کنه که کاربران بتونن استفاده کنن. در حالی که توی معماری متمرکز ممکنه مثلا برنامه ی ریلیز شرکت دو هفته یکبار باشه و این باعث میشه که حتی اگر یک تیم کارش رو هم انجام داده باشه نتونه تا زمان ریلیز مشترک شرکت، تغییراتش رو بفرسته بالا و اصطلاحا روی محیط پروداکشن بره! از خوبی ها گفتیم از چالش های مایکروسرویس هم بگیم! یکی از چالش هایی که ممکنه تیم هایی که مایکروسرویس کار میکنن بهش برخورد کنن مدیریت منابع مخصوصا منابع انسانیه! چون سرویس هایی که جدا میکنیم بخاطر مستقل بودنشون میتونن هر کدوم با یک زبان برنامه نویسی جدگانه یا حتی با دیتابیس ها و در کل با ابزار های متفاوتی توسعه داده بشن و توی مایکروسرویس این انعطاف وجود داره. اما برای مثال وقتی برای یک سرویس یک زبان یا ابزار خاصی رو انتخاب میکنیم ممکنه بعدا برای پیدا کردن نیروی کار متخصص و جایگزین کردن نیروی انسانی به چالش بخوریم. مثلا ما در حال حاضر برای این سرویس جدید ممکنه نیروی متخصص داشته باشیم اما اگر نیروی مورد نظر ما به هر دلیلی قصد قطع همکاری با شرکت رو داشته باشه نیازمند جایگزینیش خواهیم بود و اینجاست که مخصوصا توی جایی مثل ایران ممکنه برای این کار به دردسر دچار بشیم و نیرویی که میخوایم رو نتونیم در زمان مناسب پیدا کنیم. دومین چالش مهم اینه که بدونیم چطوری و با چه حساب و کتابی هر سرویس رو جداسازی کنیم! بهتره که اول از نظر کسب و کار به سرویس ها و ماژول هامون نگاه کنیم و با همفکری و تحلیل های دقیق اقدام به جداکردن محدوده ی سرویس های مختلف کنیم. اگر حساب شده سرویس هارو جدا نکنیم بعدا ممکنه متوجه بشیم که برای مثال دو سرویسی که جدا کردیم منطقا نباید جدا میبودن و جدا کردنشون بر خلاف تصور باعث تضعیف عملکرد یا باعث افزایش وابستگی بین تیم ها شده! پس باید خیلی روی نحوه ی جدا کردن سرویس ها تحقیق کنیم و بی گدار به آب نزنیم. همین مساله برای خود من پیش اومده و توی دنیای واقعی در یکی از شرکت هایی که کار میکردم این مورد پیش اومد و وقتی که در پروسه ی تفکیک سرویس ها بودیم بعد از جلسه های فراوان متوجه شدیم که جداکردن یک سرویس که قصد تفکیکش رو داشتیم کار درستی نبود و بعد از شنیدن نظرات مختلف و با ارائه ی دلیل و تحلیل، تصمیم گرفتیم که این کار رو نکنیم!چالش دیگه ای که در معماری مایکروسرویس وجود داره و ممکنه کار مارو کمی سخت تر بکنه بحث Tracing هست که ما توی معماری مونولیت راحت تر میتونیم این کار رو انجام بدیم. وقتی کل سرویس های ما روی یک پروژه هستن و ما هر تکه از پروژه رو جداگانه اجرا نکردیم و کل پروژه با یک ابزار متمرکز توسعه داده شده، ردیابی خطاهایی که داره در سیستم رخ میده راحت تره و همه چیز دم دست ما داره اتفاق می افته و لاگ میشه. اما وقتی ما معماری مایکروسرویس داریم، درخواست هایی که داخل سیستم ما میان از مسیر های مختلفی داخل سیستم ما عبور میکنن و هر سرویس به صورت جداگانه پردازش های مخصوص خودش رو روی اون درخواست انجام میده و ردیابی خطاها در محیط مایکروسرویس به سادگی مونولیت اتفاق نمی افته و به ابزارهای مخصوصی مثل open tracing نیاز داریم که بتونه امکان ردیابی توزیع شده یا همون Distributed Tracing رو به ما بده. به همین خاطر ممکنه تشخیص و برطرف کردن خطاها و مشکلات سیستم سخت تر و زمان بر تر بشه چون پیچیدگی سیستم ما بسیار بالاتر رفته!زیرساخت مایکروسرویس نیاز به ابزارهایی داره که در حالت عادی معمولا مورد نیاز نیستن مثل service mesh   یا انواع ابزار های message queue و ... که تمام این ابزارها نیاز به صرف هزینه ی نگهداری دارن و ما به طور خاص ممکنه تیمی رو برای نگهداری همین ابزار ها نیاز داشته باشیم. به همین دلیل بهتره قبل از رفتن به سمت مایکروسرویس منابع این کار رو داشته باشیم. در اکثر مواقع توسعه ی ورتیکال و همون افزایش منابع زیرساخت و همون مونولیت نگه داشتن سرویس کار منطقی تر و عقلانی تری هست!در آخر هم اینکه، در دام ترند ها گرفتار نشین و صرفا بخاطر ترند شدن خودتون و تیمتون رو گرفتار کلی هزینه و چالش نکنین. با تحلیل و تحقیق پیش برین و فقط در صورتی به مهاجرت به مایکروسرویس فکر کنین که توجیه خوبی براش پیدا کرده باشین :)</description>
                <category>سون لرن</category>
                <author>AYUB</author>
                <pubDate>Mon, 18 Dec 2023 17:50:26 +0330</pubDate>
            </item>
                    <item>
                <title>اهمیت اولویت بندی زمانی در افزایش بهره وری در کار</title>
                <link>https://virgool.io/7Learn/productivity-at-work-n69llx4zatty</link>
                <description>به عنوان یک مهندس نرم‌افزار، راهنمایی در میان پیچیدگی‌های مدیریت پروژه و مواجهه با وقفه‌های غیرمنتظره و تسک های خارج برنامه، مهارتی است که می‌تواند نقش موثری در تصمیم‌گیری در موفقیت یا شکست تحویل پروژه داشته باشد. در این نوشته، به دنبال راهکارهای عملی برای مدیریت وقفه‌ها و حفظ تمرکز بر وظایف اصلی و پراهمیت می‌رویم.چالش اصلیتصور کنید چند هفته است که در حال کار بر روی یک پروژه مهم هستید و یک ددلاین فشرده برای تحویل آن وجود دارد. با این حال، شما به طور مکرر توسط تسک های غیرمنتظره، مانند دیباگ های تسک های قبلی یا درخواست‌ها از سوی تیم‌های دیگر، متوقف می‌شوید. وظیفه‌ی شما، مدیریت این وقفه‌ها در کنار تمرکز بر پروژه اصلی و رسیدن به ددلاین است.راه حل۱. اولویت‌بندی وظایفبرای موفقیت در یک پروژه ابتدا باید وظایف محول شده در پروژه را بررسی کرد و بر مبنا اهمیت هر یک از وضایف، آنها را طبقه بندی و اولویت بندی نمود. شما باید به عنوان یک مهندس نرم افزار توانایی تشخیص وضایف حیاتی را از وضایف کم اهمیت داشته باشید و به وضایفی اولویت بالاتری دهید که به اهداف پروژه کمک شایانی کند.۲. ارتباط مستمر با اعضای تیمارتباط مؤثر یکی از اصول اساسی در مدیریت وقفه‌هاست. با ایجاد و حفظ ارتباطات و ارائه تحلیل‌های دائمی در مورد موانع، تیم شما نه تنها اهمیت پروژه فعلی را روشن می‌کند بلکه نشان می‌دهد چگونه وقفه‌ها ممکن است تأثیرگذاری بر زمان‌بندی و موفقیت کلی پروژه داشته باشند. این درک، پایه ایجاد یک محیط کاری حمایتی است و منجر به هماهنگی و پیشگیری از مشکلات احتمالی می‌شود.۳. زمان‌بندی وقفه‌هابه جای اینکه به طور مداوم به وقفه‌ها واکنش نشان دهید، به شیوه‌ای پیشگیرانه عمل کنید و زمان‌های خاصی را برای حل مسائل فوری در نظر بگیرید. بخشی از زمان در برنامه خود را برای چالش‌های غیرمنتظره تخصیص دهید. به این صورت که بخش بزرگی از زمان مفید را برای پروژه هدف و بلوک مشخصی از زمان را برای بررسی موارد خارج از برنامه اختصاص دهید.۴. استفاده از تکنیک‌های مدیریت زمانبرای افزایش تمرکز بر پروژه، از تکنیک‌های مدیریت زمان بهره ببرید. برای من، تکنیک پومودورو که شامل دوره‌های کاری کوتاه و متمرکز با استراحت‌های کوتاه است، باعث نظم بیشتر و حفظ تمرکز روی پروژه شده است. اختصاص دادن بلوک های زمانی مختلف و هدف گذاری های کوتاه مدت برای هرکدام نیز یک استراتژی قدرتمند است که به شما این امکان را می‌دهد که در هر زمان، بدون هیچ گونه حواشی، مفید ترین بهره وری را داشته باشید.۵. استفاده از راهکار های Agileاستفاده از روش‌های Agile مانند اسکرام، می‌تواند یک چارچوب ساختارمند برای مدیریت وقفه‌ها فراهم کند. طبیعت پخته توسعه Agile، تغییرات و وظایف غیرمنتظره را با انعطاف بیشتری جذب و مدیریت می‌کند و این امکان را فراهم می‌کند که بدون فاصله گرفتن از اهداف پروژه، بتوانید مسائل پیش بینی نشده را کنترل کنید.۶. یادگیری و تطبیق مداومرویکرد فعال در یادگیری مداوم با استفاده از تجربیات مختلف و کمک گرفتن از افراد سنیور، شما را برای مواجهه با چالش‌ها به طور مؤثر تر مجهز می‌کند. علاوه بر این، انطباق‌پذیری در برابر تغییر، نشانه‌ای از یک مهندس سنیور با تجربه است. با قرار گرفتن در محیط پویا، شما میتوانید براساس اهداف شخصی و همچنین در جهت اهداف شرکت، تغییراتی را در فلوی کاری خود داشته باشید.در راستای اولویت بندی زمانی، با همکاری مجموعه آموزش برنامه نویسی سون لرن ویدیویی را تحت عنوان تجربه طلایی تهیه کردیم که به صورت خلاصه به تجربه کاری خودم در شرکت دیجی کالا اشاره کرده ام ، تماشا این ویدیو کوتاه خالی از لطف نیست! https://www.aparat.com/v/PjVq3 خلاصهبطور خلاصه، برای یک مهندس نرم‌افزار، موفقیت در یک پروژه به مدیریت استراتژیک وابسته است. اولویت‌بندی وظایف حیاتی، برقراری ارتباط مؤثر با ست‌های کاری به منظور حل وقفه‌ها، زمان‌بندی هوشمند و بهره‌گیری از تکنیک‌های مدیریت زمان چون تکنیک پومودورو، به افراد کمک کرده تا تمرکز خود را حفظ کنند و در نهایت تاثیر مفیدی بر روی موفقیت پروژه داشته باشند.</description>
                <category>سون لرن</category>
                <author>AmirHossein Rnj</author>
                <pubDate>Mon, 11 Dec 2023 21:58:12 +0330</pubDate>
            </item>
                    <item>
                <title>چگونه در پروژه های Large Scale نرم افزاری؛ فشار و استرس خود را کنترل کنیم؟</title>
                <link>https://virgool.io/7Learn/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%AF%D8%B1-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%87%D8%A7%DB%8C-large-scale-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%DB%8C-%D9%81%D8%B4%D8%A7%D8%B1-%D9%88-%D8%A7%D8%B3%D8%AA%D8%B1%D8%B3-%D8%AE%D9%88%D8%AF-%D8%B1%D8%A7-%DA%A9%D9%86%D8%AA%D8%B1%D9%84-%DA%A9%D9%86%DB%8C%D9%85-npxkcqdqucqy</link>
                <description>مدیریت استرس در بحران هاقطعی یا عدم ارایه سرویس در برخی پروژه های نرم افزاری حتی به اندازه ی چند ثانیه ضررهای مالی و غیرمالی زیادی را می تواند برای سازمان ها ایجاد کند. در چنین پروژه هایی میزان استرس ممکن است نسبت به پروژه های دیگر تا حد زیادی بالاتر باشد، مخصوصا در زمان Down Time.آیا شما آخرین قطعی سرویس جستجوی گوگل را به یاد می آوردید؟یا آخرین قطعی سرویس gmail را به یاد می آورید.البته گاها شاهد Down Time های مقطعی و منطقه ای در برخی از سرویس های مهم و بزرگ در سطح ایران و جهان بوده ایم. مثلا برخی از پیامرسان ها و شبکه های اجتماعی بوده اند که برای دقایقی و ساعاتی دچار قطعی و عدم سرویس دهی به کاربران شده اند.برای پروژه هایی با این سطح از گستردگی جغرافیای و زمانی قطعی سرویس برابر با نارضایتی کاربران و ضررهای مالی خواهد بود، با فرض اینکه مشکل در سطح تیم نرم افزاری باشد، تک تک دقایق از لحظه وقوع این اتفاق حیاتی بوده و مدیریت تیمی و فردی در چنین شرایطی از اهمیت بسزایی برخوردار است.از سوی مقابل در چنین شرایطی قطعا سطح استرس بالا بوده و مدیریت فردی اهمیت پیدا میکند. شاید یکی از تفاوت های یک مهندس سینیور و جونیور کنترل استرس در شرایط بحرانی باشد.من در این ویدیو که با همکاری مجموعه سون لرن تهیه شده است از تجربیاتم در این مورد گفته ام. خوشحال خواهم شد که شما هم از تجریبات و نظراتتون در این حوزه برام بنویسید. در ادامه هم میتونید با من همراه باشید تا با اثرات استرس و راهکارها کنترلش اطلاعات بیشتری کسب کنید. https://www.aparat.com/v/JO5iH قبل از اینکه راهکارها را بررسی کنیم باید استرس را تعریف کنیم و ببنیم چگونه رخ می دهد و چه اثراتی روی موجودات زنده دارد.در برابر شرایط استرس زا، ناگهانی و دشوار محیط اطراف، واکنش هایی در بدن جانداران تکامل یافته، که شانس بقا را افزایش دهد. گورخری زخمی که یک شیر او را تعقیب میکند، ترشح هورمون استرس مجموعه تغییراتی را بدن او ایجاد میکند. برای خون رسانی بهتر تپش قلب افزایش می یابد، فعالیت سیستم گوارشی، معده، و همچنین فرآیندهای طولانی مثل رشد متوقف میشود. سیستم ایمنی بدن نیز در حالت آماده باش است. اکسیژن و گلوکز بیشتری به مغز می رسد تا هوشیاری بالا باشد. برای سبک شدن هنگام فرار، تخلیه غیر ارادی مثانه و حتی روده بزرگ ممکن است اتفاق بیفتد. تولید گلوکز از چربی افزایش پیدا می کند و تولید انسولین قطع می شود. مغز به سلولهای چربی فرمان می دهد که انسولین را نادیده بگیرند. تمامی این واکنشها به بیشترین شدن شانس گورخر زخمی کمک می کند. تفاوت آدمی با حیوانات اینجاست که آدمی نه فقط برای بقا بلکه در اثر عوامل روانی و اجتماعی و حتی در نتیجه فکر کردن هم میتواند استرس را تجربه کند. فرایندی که میتواند مزمن و پرتکرار شود و به راحتی به تغییر تعادل بدن، اصطحلاک سیستم روانی و عصبی، به هم خوردن سیستم تنظیم چربی و  قند خون و همچنین قلب و عروق، و بروز بیماریهایی که پیش زمینه آن وجود دارد منجر شود. وجود مستمر  هورمون استرس، کورتیزول، سیستم کنترل قند خون و تعادل چربی/گلوکز را به هم میریزد و بسته به ژنتیک و خصوصیات فردی میتواند باعث چاقی یا لاغری شود.فرد ممکن است به انسولین مقاوم شود و بدن برای جبران انسولین بیشتری تولید کند و شانس ابتلا به دیابت را افزایش دهد. زخم معده ناشی از یک نوع باکتری است که بعد از ورود به سیستم گوارشی به تدریج در دیوارههای معده خراشهایی را ایجاد میکند که اسید معده وارد آن میشود.در بسیاری این باکتری منجر به بیماری نمی شود اما استرس یکی از عواملی است که تاثیر بزرگی در شروع زخم معده دارد.این نوشته از این لینک آمده که برگرفته از فصول اول کتاب Stress and Your Body است.بنابراین برای کسانی که در شرایط های استرس زا و بحرانی مشغول به کار هستند کنترل استرس امری بسیار ضروری است. چرا که استرس هم باعث افت کارایی افراد می شود و هم اثرات مخربی بر سلامت انسان خواهد داشت. به طور خاص در پروژه های نرم افزاری اثرات استرس می تواند منجر به مشکلات زیر شود:  کاهش تمرکز و خلاقیتافزایش خطاها و اشتباهاتکاهش انگیزه و رضایت شغلیافزایش تعارضات و اختلافاتاختلال در ارتباط و همکاری درستافزایش بیماری‌ها و غیبت‌هاکاهش اعتماد و اعتبارافزایش هزینه‌ها و تاخیرهاو اگر شما با پروژه هایی با مشخصات زیر سر و کار دارید احتمالا در یک محیط استرس زا مشغول به کار هستید:پیچیدگی بالا و تعدد روابط بین اجزای نرم‌افزارنیازمندی‌های متغیر و نامشخصمحدودیت‌های زمانی و هزینه‌ایتعدد و تنوع ذی‌نفعان و انتظارات آن‌هانوآوری و ابتکار فنی و تکنولوژیکرقابت و فشار بازارتغییرات محیطی و قانونی هر فردی باید بررسی کند که کدام یک از مولفه های محیطی و فردی برای وی وجود دارد تا بتواند تا حدی آنها را کنترل کند، البته بخشی از آن به محیط بستگی دارد که سازمان ها و مدیران در آن نقش بیشتری دارند.در ادامه بطور کلی در مورد کنترل استرس در دو سطح سازمانی، مدیریتی و سطح فردی بحث خواهیم کرد.وظایف سازمانی و مدیریتیبرخی نکات در صورتیکه از قبل در سطح سازمان ها و تیم های نرم افزاری رعایت شوند امکان بروز شرایط استرس زا کاهش می یابد اما به صفر نخواهد رسید. وجود نقشه راه و پلن اجرایی برای پروژه ها در جهت تولید سیستم های با کیفیتایجاد فرایند هایی همچون Postmortemداشتن انواع مختلف تست و درصد پوشش مناسبداشتن روش های مدیریت پروژه و مدیریت تسک مدونکنترل سلامت تیم و دریافت فیدبک از اعضای تیمتعیین وظایف و انتظارات بصورت شفاف برای افرادتعیین Deadline واقعی و کارشناسی شدهایجاد فرهنگ سازمانی و تیمی مناسب برگزاری رویدادهایی مانند Team Building در جهت بهبود ارتباطات بین فردی و بین تیمیایجاد توازن بین کار و زندگی برای افراد سازمانایجاد فرهنگ قدردانی در تیم ها و سازمانپرهیز از ایجاد فضای کاری پر فشار تدوین برنامه ها و رویدادهای توسعه فردی در سازمانراهکار های فردیباید بدانیم بخشی از استرس شرایط بحرانی طبیعی بوده و ماهیت شرایط استرس زا اینگونه است در نتیجه حذف کامل هیجان در چنین شرایطی بسیار سخت بوده و هدف ما کنترل شرایط، کاهش استرس و رفع مشکل در سریع ترین حالت ممکن می باشد تمرکز و تسلط : دقیقه 90 فینال لیگ قهرمانان اروپاست و یک ضربه پنالتی برای تیم شما اعلام شده که اگر گل بشه برنده اید. شما اگر طرفدار پروپاقرص باشید کافی ست یک ساعت هوشمند به دست ببندید و ببینید استرس شما در آخرین نقطه اش قرار داره. حالا فرض کنید اون بازیکنی که پشت توپه تا پنالتی بزنه چقدر استرس داره. با توجه به مواردی که از بخش های قبل بهش اشاره کردیم داشتن استرس برای این بازیکن برابر با کاهش بسیار زیاد کارایی بوده که موجب بروز اشتباه در انجام کار می شود و نتیجه ی آن ضرر تیمی و فردی است. شاید در یک سیستم نرم افزاری بزرگ هم با چنین شرایط مشابهی مواجه شویم. وظیفه مدیران تمرکز و تسلط و کنترل تیم و وظیفه اعضا کنترل وضعیت با تمرکز و تسلط بالای روی سیستم می باشد. زمانی که شما تمرکز بالایی دارید می توانید برنامه ریزی کنید، تصمیم درست بگیرید و عمل کنید. پس همیشه به یاد داشته باشید یکی از تفاوت های افراد سینیور و جونیور کنترل شرایط و تمرکز در سخت ترین موقعیت ها می باشد، چرا که در موقعیت های ساده همه ی افراد می توانند تمرکز و تسلط داشته باشند. مهارت افراد در این مورد با تمرین و کسب تجربه افزایش می یابد.برنامه ریزی و تقسیم وظایف: با توجه به محدودیت زمانی ممکن است در چنین شرایطی هماهنگی های تیمی کاهش یابد و در نتیجه برنامه ریزی دشوار خواهد بود. و در صورت عدم برنامه ریزی صحیح ممکن است برخی افراد روی بخش های یکسانی کار کنند یا از ظرفیت همه افراد به درستی استفاده نشود. لازم است افراد سینیور تیم در کنار راهبر تیم کنترل شرایط را در دست گرفته و یک برنامه ریزی مناسب و سریع برای شرایط بحرانی داشته باشند و طبق برنامه ریزی انجام شده و وظایف مشخص به سمت حل مشکلات حرکت کنیم.استفاده از تکنیک های ایجاد آرامش: برای آرام کردن ذهن و بدن خود و کاهش اثرات منفی استرس می توانید از تکنیک آرام سازی یا تمرین ذهن آگاهی استفاده کنید. همانطور که در بخش های قبلی اشاره کردیم در شرایط استرس زا نوع فعالیت بدن برای مقابله با شرایط بحرانی تغییر پیدا می کند و معمولا ضربان قلب بالا می رود. تمریناتی مانند تمرینات تنفسی می تواند به شما کمک کند تا سیستم عصبی خود را آرام کرده و ضربان قلب و فشار خون خود را کاهش دهید. می توانید انواع مختلفی از تمرینات تنفسی مانند تنفس عمیق، تنفس شکمی یا تنفس متناوب از سوراخ بینی را امتحان کنید.فضای حمایتی در تیم: یکی از مواردی که تا حدودی باعث کاهش استرس موجودات زنده در شرایط استرس زا می شود حمایت شدن است. همیشه این جمله را از افراد بزرگ شنیده ایم که در سخت ترین شرایط برخی حامیان روحی موجب شده اند که آنها بتوانند مسیر خود را ادامه دهند. در صورتی که فضای تیم به معنای واقعی حمایتگرانه باشد، هم استرس اعضا کمتر خواهد بود و هم اعضا انرژی بیشتری خواهند داشت. پس سعی کنید یک Supportive team member باشید.کنترل اشتباهات: در شرایط بحرانی به علت عدم وجود تمرکز کافی، امکان رخداد اشتباهات بعدی بسیار محتمل است. پس سعی کنید حالت های محتمل هر راه حل احتمالی را یک بار بررسی نموده و مطمئن شوید این راه حل درست بوده و مشکلات جدیدی ایجاد نخواهد شد.به دنبال مقصر نگردید: یکی از مواردی که در شرایط آشفته و بحرانی اتفاق می افتد این است که افراد به جای تمرکز روی حل مسئله و رسیدن به یک شرایط پایدار به دنبال مقصر می گردند. پیدا کردن مقصر در چنین وضعیتی نه تنها مشکلی را حل نمی کند بلکه در بین اعضای تیم احساس عدم اطمینان و اعتماد به نفس ایجاد می نماید، پس اولویت اول و آخر باید حل مشکل با تمام قدرت باشد.از اتفاقات درس بگیریم: در صورتی که ما از یک اتفاق و اشتباه درس نگیریم آن اتفاق تبدیل به تجربه نخواهد شد، به عقیده بسیاری از روانشناسان، انسان ها معمولا از سخت ترین اتفاقات بزرگترین درس ها را می گیرند. در واقع بین کسب تجربه و سختی اتفاق ارتباط مستقیم وجود دارد، این گزاره بدین معنا نیست که ما سعی کنیم مرتکب اشتباهات بزرگ شویم اما حتما باید از این اشتباهات درس بگیریم و حتی آن را مستند کنیم تا در صورت وقوع اتفاقات مشابه بتوانیم از تجریبات مشابه استفاده نماییم.من در این مقاله سعی کردم تجربیات خود از شرایط استرس زا و بحرانی را با شما به اشتراک بگذارم. امیدوارم این مطلب برای شما مفید بوده باشد و دوست دارم شما هم مواردی که تجربه کرده اید را در بخش نظرات با من به اشتراک بگذارید.</description>
                <category>سون لرن</category>
                <author>حامد نعیمایی</author>
                <pubDate>Mon, 04 Dec 2023 22:34:28 +0330</pubDate>
            </item>
                    <item>
                <title>هم راستا کردن افراد سازمان با خود</title>
                <link>https://virgool.io/7Learn/%D9%87%D9%85-%D8%B1%D8%A7%D8%B3%D8%AA%D8%A7-%DA%A9%D8%B1%D8%AF%D9%86-%D8%A7%D9%81%D8%B1%D8%A7%D8%AF-%D8%B3%D8%A7%D8%B2%D9%85%D8%A7%D9%86-%D8%A8%D8%A7-%D8%AE%D9%88%D8%AF-mfmdwjuwdibr</link>
                <description>مطمئنا شما هم تا کنون در شرایطی قرار گرفته‌اید که در زندگی حرفه‌ای و یا شخصیتان نیاز به هم‌راستا کردن افراد مختلف با نظرتان را داشته باشید. افرادی که الزاما دیدگاه شبیه به شما را ندارند ولی شما به هر‌حال نیاز به تایید آن‌ها دارید.برای من در محیط کاری بار‌ها پیش آمده که وظیفه بررسی و تصمیم سازی در مورد یک موضوع فنی بر عهده‌ی من گذاشته شده است. برای اجرای تصمیمات و ایده‌ها نیاز به تایید و گاها هم‌راستا کردن افراد مختلفی در سازمان بوده است. برای مثال در برهه ای از زمان نیاز به جذب نیروی فنی داشتم که می‌بایستی واحد مالی و مدیرعامل مجموعه تایید می‌کرد؛ یا از منظر فنی نیاز به تغییراتی در کمپین های مارکتینگی داشتیم که منجر به تغییر استراتژی بازاریابی می‌شد، حال در هر یک از حالات مجبور بودم تا رضایت افرادی را در سازمان جلب کنم!اوایل، من با همه‌ی افراد مثل اعضای فنی تیمم صحبت می‌کردم و انتظار داشتم که متوجه مطالب من و اهمیت اجرای این موارد باشند. نیاز به توضیح نیست که این اتفاق نمی‌افتاد و اکثر مواقع با درب بسته مواجه می‌شدم. پس از مدتی متوجه شدم که یک حلقه اتصال میان من و آن اشخاص مورد نیاز وجود دارد و آن هم ایجاد زبان و دغدغه مشترک بین ما بود.به عنوان مثال تیم بازاریابی برایشان اهمیت ندارد که مثلا معماری فنی سیستم های من به چه صورت باشد یا من چگونه آن برنامه را توسعه بدهم؛ تنها برایشان این مسئله مهم است که سایت و اپلیکیشن زیر بار فشار ترافیک بالا کاربران در کمپین های تبلیغاتی تاب بیاورد یا همچنین برای منابع انسانی هزینه های جذب نیرو و مواردی از این قبیل مهم است نه مثلا افزایش نرخ کلیک بر روی یک دکمه در سایت؛ بنابرین اینجاست که باید به زبان مشترک روی می آوردم و با آنان با زبان خودشان صحبت می‌کردم تا به نتیجه درست می‌رسیدم.یکی از مهم ترین اصول در هر مذاکره‌ای از نگاه من این است که فراموش نکنیم که همه همانطوری که ما به موضوعات نگاه می‌کنیم نگاه نمی‌کنند و نیاز است که بتوانیم دغدغه‌های آن‌ها را هم رفع کنیم.در ویدیوی زیر که با همکاری مجموعه سون لرن تهیه شده است بطور مفصل از تجربیاتم در این مورد صحبت کردم. خوشحال می‌شوم که شما هم ببینید و نظراتتون را با من به اشتراک بگذارید. https://www.aparat.com/v/9Jj5b </description>
                <category>سون لرن</category>
                <author>سینا بختیاری</author>
                <pubDate>Tue, 21 Nov 2023 12:17:55 +0330</pubDate>
            </item>
                    <item>
                <title>چگونه یک فرانت اند کار حرفه ای شویم؟</title>
                <link>https://virgool.io/7Learn/%DA%86%DA%AF%D9%88%D9%86%D9%87-%DB%8C%DA%A9-%D9%81%D8%B1%D8%A7%D9%86%D8%AA-%D8%A7%D9%86%D8%AF-%DA%A9%D8%A7%D8%B1-%D8%AD%D8%B1%D9%81%D9%87-%D8%A7%DB%8C-%D8%B4%D9%88%DB%8C%D9%85-qx4kogezmhnt</link>
                <description>چگونه برنامه نویس فرانت اند شویمبسیاری از ما هنگامی که می‌خواهیم یک توسعه دهنده در زمینه‌ای خاص شویم، نمی‌دانیم باید از کجا شروع کنیم. یک نقشه راه کمک می‌کند تا آمادگی بهتری نسبت به زمینه‌هایی که قرار هست بیاموزیم و در آنها حرفه‌ای شویم کسب کنیم. در این مقاله سعی کرده‌ایم تا به شما بگوییم چگونه میتوان یک فرانت اند کار حرفه ای شد و از این روش کسب درآمد میلیونی داشت. در گام اول به صورت مختصر مروری بر مفاهیم و منابع Front-End خواهیم داشت. در گام دوم و سوم مباحث آموزشی و منابع را بررسی کرده، در گام چهارم و پنجم بر حوزه‌های شغلی و زمان موردنیاز برای شروع کار در این حوزه صحبت خواهیم کرد. در گام آخر نیز حوزه‌های کاربری بعد از مسلط شدن بر Front-End را معرفی خواهیم کرد.گام اول: دانشنامه‌ی Front-End ، پیش‌نیازها و مفاهیم پایهفرانت اند و اهمیت آنفرانت اند یا  Front-End ، به قسمت قابل مشاهده‌ی وب سایت (نرم‌افزار) توسط کاربران می‌گویند. هدف از طراحی سایت این است که اطمینان حاصل شود که وقتی کاربران سایت را باز می‌کنند، اطلاعات را به گونه‌ای مشاهده می‌کنند که به راحتی قابل خواندن و مرتبط هستند. در واقع باید تدبیری اندیشید تا کدهای غیر قابل فهم برای کاربران را در قالب ظاهری گرافیکی و بصری به آن‌ها نمایش داد تا بتوانند به راحتی از بخش‌های مختلف سایت استفاده کنند. بخش فرم‌های ورودی اطلاعات، صداها، تصاویر، ویدیوها و به صورت کلی هر چیز دیگری که برای کاربر قابل درک باشد، جزو این اطلاعات قرار می‌گیرند.این مسئله با این واقعیت پیچیده‌تر است که کاربران اکنون از دستگاه‌های متنوعی با اندازه و وضوح صفحه نمایش متفاوت استفاده می‌کنند؛ بنابراین طراح مجبور می‌شود هنگام طراحی سایت، این جنبه‌ها را مورد توجه قرار دهد. آنها باید اطمینان حاصل کنند که سایت آنها به درستی در مرورگرهای مختلف (مرورگر متقاطع)، سیستم عامل‌های مختلف و دستگاه‌های مختلف (چندسکویی) ظاهر می‌شود که به برنامه ریزی دقیق از طرف توسعه دهنده احتیاج دارند.فرانت اند به دو بخش اصلی طراحی وب و توسعه رابط کاربری تقسیم می‌شود. در بخش طراحی وب، طراحان با نرم افزار‌های گرافیکی مانند فتوشاپ ظاهر سایت را طراحی می‌کنند. اما بخش توسعه رابط کاربری مربوط به پیاده سازی ظاهر سایت در قالب کدهای HTML ، CSS و    Javascript  است. زبان‌های برنامه نویسی که در فرانت به کار می‌روند، سمت کاربر یا Client – side می‌باشند. بنابراین کدهای نوشته شده در فرانت در مرورگر کاربر پردازش و اجرا می‌شوند. این بدین معنی است که کاربر به راحتی به این کدها دسترسی مستقیم دارد و می‌تواند آن‌ها را مشاهده کند. فرانت اند با بخش بک اند (Back-end) در ارتباط مستقیم است و تاثیر بسیاری بر روی تجربه کاربری (UX) دارد.مرورگرهای وب (Web browsers)یک مرورگر وب نرم‌افزاری است که برای بازیابی، ارائه و اطلاعات جغرافیایی در اینترنت استفاده می‌شود. به طور معمول، مرورگرهای وب روی کامپیوتر دسکتاپ یا لپ‌تاپ، تبلت، یا تلفن اجرا می‌شوند، اما با پیشرفت فناوری، امروزه یک مرورگر ممکن است در مورد هر چیزی (مانند وسایل خانه از جمله یخچال، تلویزیون و … ) یافت شود. معمول‌ترین مرورگرهای وب که به ترتیب اغلب مورد استفاده قرار می‌گیرند:کروم (chrome)سافاری (Safari)اینترنت اکسپلورر (Internet Explore)فایرفاکس (Firefox)لبه (Edge)تجربه‌ی کاربری (User Experience)تجربه کاربری یا UX  یکی از مسائل مهم و ضروری است که در موفقیت وب سایت / اپلیکیشن یا سایر محصولات بسیار تاثیرگذار است. در گذشته طراح با فتوشاپ یا هر برنامه طراحی دیگر و با سلیقه خود و با فکر اینکه خروجی یک طرح با ظاهر زیبا باشد، اقدام به طراحی سایت یا اپلیکیشن می‌نمود. اما حالا چنین راهی نه تنها درست نیست بلکه احتمال شکست را در هدفی که داریم قوت می‌بخشد. تصور کنید سایت سفارش غذایی را طراحی کردید که ظاهری بسیار زیبا دارد. اما کاربر نمی‌تواند تمامی مراحل را به درستی طی کند و غذای خود را سفارش دهد. اگر وب سایت شما برای کاربر تجربه ای خوبی را رقم نزند در این بازار رقابتی وب و اپ، کاربر به سمت وب سایت یا اپلیکیشن رقیب شما خواهد رفت چرا که با استفاده آن تجربه بهتری نسبت به اپ یا وب سایت شما داشته است. آموزش تجربه کاربری فقط طراحی رابط نیست و موارد گسترده‌تری را شامل می‌شود. عده ای به اشتباه طراحی رابط کاربری (UI) را با تجربه کاربری یکی می‌دانند که این یک برداشت اشتباه است. تجربه کاربری یک موضوع گسترده‌تر می‌باشد که موارد بسیار مهمی را شامل می‌شود. مواردی که بایستی در طراحی محصول، سایت، اپ یا … در نظر گرفته شود.اگر شما هم به مباحث برنامه نویسی فرانت اند علاقه‌مندید پیشنهاد ما دوره آموزش برنامه نویسی طراحی وب سون لرن است ، این دوره پرفروش ما توسط یکی از بهترین اساتید برنامه نویسی طراحی وب تهیه شده است . برای اطلاعات بیشتر به صفحه دوره مراجعه نمایید.بک اند (Backend)برنامه نویسی بک اند به بخشی از یک وب سایت یا نرم افزار می‌گویند که برای کاربران قابل مشاهده نیست. به عبارتی دیگر هسته و مغز یک سایت است که وظیفه‌ی کنترل منطق آن را بر عهده دارد. سایت‌های دینامیک به برنامه نویس Backend نیاز دارند تا منطق سایت را به وسیله زبان‌های برنامه نویسی پیاده‌سازی کنند. کاربران به کدهای نوشته‌شده در بک اند دسترسی ندارند و نمی‌ توانند آن‌ها را مشاهده کنند. این بخش از سایت مانند قسمتی از کوه یخ است که در زیر سطح آب قرار گرفته است. سمت سرور با بخش سمت کاربر ارتباط مستقیم دارد و به اجزایی که در رابط کاربری طراحی شده‌اند جان می‌بخشد. برنامه نویس Back-end باید اطلاعات را متناسب با اهداف مختلف از پایگاه‌داده دریافت کند و در صورت نیاز پس از پردازش به کاربر نمایش دهد. بنابراین Back-end از دو بخش منطق سایت و پایگاه داده تشکیل شده است.برای مطالعه ادامه مقاله چگونه فرانت اند کار شویم همین حالا کلیک کنید .</description>
                <category>سون لرن</category>
                <author>سون لرن</author>
                <pubDate>Mon, 29 May 2023 16:54:07 +0330</pubDate>
            </item>
                    <item>
                <title>ماجرا جنجالی شبکه جهانی پایتون + پایتون چیست؟</title>
                <link>https://virgool.io/7Learn/%D9%85%D8%A7%D8%AC%D8%B1%D8%A7-%D8%AC%D9%86%D8%AC%D8%A7%D9%84%DB%8C-%D8%B4%D8%A8%DA%A9%D9%87-%D8%AC%D9%87%D8%A7%D9%86%DB%8C-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%DA%86%DB%8C%D8%B3%D8%AA-fcvhhbqzf2fd</link>
                <description>چند روز پیش گردهمایی 1 درصد دانشمندان برتر جهان با رییس جمهور بود که فردی به نام داوود میرگنجی صحبتی را مطرح کرد که باعث رسانه ای شدن آن و در مرکز توجه قرار گرفتن آن شد به نحوی که حجم سرچ این عبارت در مدت زمانی محدود بسیار افزایش یافت .حال اصل این ماجرا شبکه جهانی پایتون چیست ؟فیلمی که در آن داوود دومیری گنجی استاد دانشگاه نوشیروانی بابل و یکی از دانشمندان یک درصد برتر جهان می‌گوید: «پیشنهاد من با یک نرم‌افزار جهانی است تحت عنوان پایتون. پایتون کارهای مختلفی انجام می‌دهد، در حوزه پزشکی متحول می‌کند، چهار سال آینده را پیش‌بینی می‌کند که چه سرطانی در واقع طرف دارد. ما در حوزه سیاست چنین مشکلی داریم آقای رییس‌جمهور، چرا؟ چون آینده‌ای که باید پیش‌بینی کنیم را نداریم. چه اتفاقی در کشورهای آینده منطقه خواهد بود، نداریم. ولی با شبکه‌های جهانی پایتون می‌توانیم. در زمینه نظامی می‌توانیم. در زمینه‌های اقتصادی می‌توانیم. در زمینه رشد تورم که حضرت آقا فرمودند می‌توانیم در آن زمینه کار کنیم. چگونه می‌توانیم شبکه عصبی یا هوش مصنوعی که در بدن ما وجود دارد، هر نقطه‌ای از بدن ما تیغ بزنیم کاملا بقیه جاها خودش را نشان می‌دهند. ما به طریقی باید این مجموعه به هم متصل باشیم.»چگونه ماجرا شبکه جهانی پایتون ترند شد؟اگر در ابزار https://trends.google.com واژه &quot;پایتون&quot; را جستجو کنیم به سادگی میتوانیم متوجه افزایش حجم جستجو این کلمه به نسبت روزهای قبل و بعد آن شویم به نحوی که افراد زیادی در جامعه که پایتون را نمی‌شناختند در گوگل جستجو کردند که پایتون چیست و چه کاربرد هایی دارد . در زیر نمودار گوگل ترند این واژه را می‌بینیم.نمودار ترند شبکه جهانی پایتوندر نمودار دو منطقه را با دایره قرمز رنگ مشخص کردیم که دایره قرمز رنگ پایین نشان دهنده تاریخ انتشار ویدیو جنجالی است و دایره قرمز رنگ بالایی زمانی است که دیگر تب و تاب جستجو این کلمه افت کرده است.حال با این اوصاف اندکی درباره زبان برنامه نویسی پایتون چیست؟اولین و مهمترین ویژگی این زبان «سادگی و آسانی» آن می‌باشد. این ویژگی آموزش برنامه نویسی پایتون را به یکی از بهترین گزینه‌ها برای انتخاب کسانی تبدیل کرده است که قصد دارند برای اولین بار به آموزش برنامه نویسی بپردازند. پایتون را خیلی سریع می‌توانید یاد بگیرید و به سرعت کدنویسی را با آن شروع کنید. اما اشتباه نکنید، سادگی پایتون به معنای ضعیف بودن آن نیست، بلکه python یک زبان برنامه نویسی مفسری، چندمنظوره و سطح بالاست که از شی گرایی و برنامه نویسی ساختار یافته به طور کامل پشتیبانی می‌کند.از این زبان برنامه نویسی به طور گسترده در دنیا استفاده می‌شود و برای آن فرقی نمی‌کند که هدف شما از استفاده آن ایجاد وب اپلیکیشن و برنامه نویسی دسکتاپ است و یا حتی برنامه نویسی هوش مصنوعی و یادگیری ماشینی، این زبان به بهترین نحو از عهده تمام آن‌ها بر خواهد آمد و به ‌جرات می‌توان ادعا کرد که در دیگر زمینه‌های برنامه‌ نویسی شما را تنها نخواهد گذاشت. برای اینکه بدانید که مهمترین ویژگی‌های پایتون چیست که آن را به چنین زبان قدرتمندی تبدیل کرده است، باید با ساختار آن آشنا شوید.زبان برنامه نویسی پایتون چه ویژگی هایی دارد؟پایتون زبانی قدرتمند و منعطف است که ساختاری بسیار منظم و کدنویسی در آن بسیار راحت است. این زبان برنامه نویسی تمرکز زیادی روی خوانایی کدها دارد، به طوری که هر کسی می‌تواند به راحتی کدهای این زبان را بخواند و با آن ارتباط برقرار کند. همانطور که اشاره شد، پایتون از انواع روش‌های برنامه نویسی مثل پروسه‌ای، تابعی و البته شیء گرایی پشتیبانی می‌کند. همین مورد باعث شده که در پروژه‌های بزرگ و حساس روی پایتون حساب باز کنند.مفسری بودن این زبان یعنی کدهای پایتون خط به خط توسط مفسر ترجمه می‌شوند. مفسر پایتون برای سیستم عامل‌های مختلف وجود دارد. وظیفه این مفسر تبدیل کدهای پایتون به زبان ماشین و سپس اجرای آن‌ها است. بسیاری از توزیع‌های لینوکس به طور پیشفرض پایتون و مفسر آن را دارند و شما بدون نیاز به انجام هیچ اقدامی می‌توانید کدنویسی را در این سیستم عامل شروع کنید. همچنین فایل نصبی نسخه ویندوز و سیستم عامل مک‌ هم از سایت پایتون قابل دانلود است.ویژگی زبان برنامه نویسی پایتونهر نرم افزار یا ابزار جدید که معرفی می‌شود، برای انتشار از یک پروانه یا مجوز (License) استفاده می‌کند. این مجوزها ماهیت برنامه را مشخص می‌کنند و به بقیه نشان می‌دهند که چطور باید از نرم افزار استفاده کرد. مثلا نرم افزارهای آزاد 4 سطح آزادی را به برنامه نویس تضمین می‌دهند و لایسنس GPL این چهار سطح را در خود جا داده است. 4 سطح آزادی که نرم افزارهای آزاد باید از آن پیروی کنند عبارتند از:کاربران بتوانند نرم افزار را به هر منظوری استفاده کنند.کابران بتوانند نرم افزار را تغییر دهند و به سورس کد برنامه دسترسی داشته باشند.کاربران بتوانند یک نسخه از نرم افزار را بازنشر کنند.دیگر کاربران بتوانند نسخه‌های بازنشر شده را ویرایش کرده و دوباره انتشار دهند.پایتون تحت پروانه اختصاصی خودش به نام PSFL یا Python Software Foundation License منتشر می‌شود. این مجوز کاملا مشابه مجوز GPL است، اما در بند چهارم سخت‌گیری کمتری برای بازنشر نرم افزارها در نظر گرفته است. به همین دلیل توسعه دهندگان به راحتی برای این زبان کتابخانه‌های زیادی طراحی کرده اند و به لطف آن‌ها پایتون کتابخانه‌های مشهوری دارد که در توسعه و پیشرفت آن نقش مهمی ایفا کردند. این کتابخانه‌ها بودند که پایتون را محبوب‌تر کرده و پای این زبان را به حوزه‌های مختلفی مثل طراحی سایت، طراحی اپلیکیشن، هوش مصنوعی و داده کاوی باز کردند.جمع بندیهرچند که آقای میرگنجی در رابطه با پایتون اشتباهات فاحشی داشت اما خوب است این راهم بدانیم که به قول ضرب الامثل معروف &quot; عدو شود سبب خیر اگر خدا داند&quot; این اتفاق باعث شد تا افراد زیادی در رابطه با پایتون بیشتر جستجو کنند و شاید از میان افرادی هم باشند که علاقه مند به یادگیری آن شوند .در همین راستا مجموعه سون لرن ، دوره ای تحت عنوان متخصص پایتون دارد که درآن شما طی فرایند دوره و پشتیبانی های آن تبدیل به یک برنامه نویس پایتون وب خواهید شد . برای اطلاع بیشتر به صفحه دوره سر بزنید.</description>
                <category>سون لرن</category>
                <author>سیدمحمدجوادتقوی</author>
                <pubDate>Thu, 20 Apr 2023 13:32:02 +0330</pubDate>
            </item>
                    <item>
                <title>الگوریتم در برنامه نویسی چیست و چه کاربردی دارد؟</title>
                <link>https://virgool.io/7Learn/%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D9%87-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%D8%AF%D8%A7%D8%B1%D8%AF-acsuakciqzpu</link>
                <description>الگوریتم چیستبشر در طول زندگی خود با مشکلات بسیاری مواجه می‌شود که ممکن است بسیاری از آن‌ها بارها تکرار شوند. برای حل کردن مشکلاتی که چندین بار با آن‌ها مواجه شده‌ایم، ثبت و دسته‌بندی راه حل‌های مشخص کمک می‌کند که بتوانیم سریع‌تر و مطمئن‌تر با مسائل تکراری برخورد کنیم. ما به این راه حل‌های تست‌شده و مطمئن، الگوریتم می‌گوییم. در این مطلب یاد می‌گیریم که الگوریتم چیست و در برنامه نویسی چه مفهومی دارد و با انواع آن آشنا می‌شویم.معنی و تعریف الگوریتم چیست؟ما معمولاً برای حل مشکلات به دنبال ساده‌ترین و سریع‌ترین راه‌حل‌ها هستیم. سال‌ها است که علم با یافتن پاسخ سؤالات خود و استفاده از آن‌ها در پیشامدهایی که الگوی تکراری دارند، اهداف خود را پیش می‌برد و سریع‌تر از انتظار ما رازهای طبیعت را از دل آن بیرون می‌کشد. راه‌حل‌هایی که تست‌شده و مطمئن هستند و می‌توانند سوالاتی با مفاهیم یکسان را حل کنند، الگوریتم نامیده می‌شوند. ریشه کلمه الگوریتم از نام خوارزمی دانشمند ایرانی به دست آمده است.اگر بخواهیم معنی الگوریتم را در زمینه ریاضیات و علوم کامپیوتر بررسی کنیم، می‌توان گفت الگوریتم‌ها مجموعه فرایندهایی هستند که به کمک آن‌ها می‌توان بسیاری از مسائل برنامه‌نویسی را به‌راحتی حل کرد. به‌عنوان‌مثال الگوریتم یک موتور جستجو را در نظر بگیرید. الگوریتم موتور جستجو گوگل به‌طور ساده این‌گونه ست که عبارت تایپ شده شما را دریافت کرده و آن را در پایگاه داده‌های خود جستجو می‌کند.سپس صفحات وب مربوطه را پیداکرده و به شما نشان می‌دهد. این روند کلی از ایجاد سؤال تا رسیدن به پاسخ یک الگوریتم محسوب می‌شود. استفاده از الگوریتم‌ها در کاهش هزینه‌های مالی و زمانی یک پروژه اهمیت زیادی دارد. الگوریتم‌ها با انجام سلسله اقدامات مشخصی و در ازای گرفتن ورودی تعریف‌شده، نتیجه‌ای مطابق انتظار به ما خواهند داد.یک الگوریتم چگونه کار می‌کند؟دنیای کامپیوتر پر از کلمات کلیدی مانند هوش مصنوعی، ابررایانه، یادگیری ماشین، محاسبات کوانتومی و خیلی از لغات دیگر است اما شاید در این میان، کلمه الگوریتم جزو یکی از واژگان پرتکرار و معروف در علم کامپیوتر است.در کلی‌ترین مفهوم، یک الگوریتم مجموعه‌ای از دستورالعمل‌ها است که به رایانه می‌گوید، چگونه مجموعه‌ای از حقایق جهان را به اطلاعات مفید تبدیل کند. مرتب‌سازی مجموعه اعداد گرفته شده، یافتن مسیرها از طریق نقشه و حتی نمایش اطلاعات بر روی صفحه نمایش نمونه‌هایی از اجرای یک الگوریتم خاص هستند.پوشیدن لباس در هنگام صبح و آماده شدن برای رفتن به محل کار و یا دانشگاه یکی از مثال‌هایی است که از اجرای یک الگوریتم ساده در مغز انسان نشأت می‌گیرد. اما اگر قرار باشد این روند را یادداشت کنید و به یک کودک 5 ساله آموزش دهید، چگونه آن را انجام می‌دادید؟ پاسخ این سوال به روشی دقیق، ساختار الگوریتم را تشکیل می‌دهد.اگر به مباحث الگوریتم نویسی و برنامه نویسی علاقه مندید پیشنهاد میکنیم به صفحه دوره الفبای برنامه نویسی سر بزنید و از این دوره شروع به یادگیری برنامه نویسی کنید.ویژگی های الگوریتمورودی‌ها به خوبی تعریف شده باشند : ورودی داده‌ای است که در طول محاسبات برای تولید خروجی توسط کدهای دستوری مصرف می‌شود. یک الگوریتم باید دارای ورودی‌های کاملاً تعریف شده باشد که در آن نوع داده، میزان دریافتی و نحوه ورود آن‌ها توسط الگوریتم به طور واضح مشخص است.خروجی‌ها به خوبی تعریف شده باشند : خروجی داده‌های حاصل از محاسبه (نتیجه مورد نظر شما) است. یک الگوریتم باید یک یا چند خروجی کاملاً تعریف شده داشته باشد و با خروجی مورد نظر مطابقت داشته باشد. میزان سنجش دقت خروجی مستلزم داشتن اطلاعاتی نظیر نوع داده، مقدار و نحوه نمایش آن است. (اگر الگوریتم دارای چند خروجی باشد باید خصوصیات هریک از آن‌ها به طور کاملاُ مشخص تعیین شده باشد.)واضح و بدون ابهام : الگوریتم باید دارای قطعیت باشد و هر یک از مراحل آن از همه جهات روشن و جزئیات هر مرحله مشخص شود (از جمله نحوه رسیدگی به خطاها). قطعیت یعنی مشخص کردن توالی عملیات برای تبدیل ورودی به خروجی. این الگوریتم باید شامل همه چیزهای کمی باشد و نه کیفی. اگر خودتان در مورد آن ابهام دارید، نمی توانید انتظار داشته باشید که کامپیوتر چیزی را بفهمد!امکان‌پذیر : الگوریتم باید ساده، عمومی و کاربردی باشد تا بتوان با منابع موجود آن را اجرا کرد. اگر الگوریتم دارای مراحل زائد و غیرضروری باشد آن را عملاً بی‌اثر و ناکارآمد خواهد کرد. درحال پختن غذا هستید و سبزیجاتی را که در دستور غذا استفاده نشده‌اند، خرد می‌کنید و این کار عملاً اتلاف وقت است.متناهی بودن : هر الگوریتمی باید در نهایت متوقف شود و توقف به این معناست که یا الگوریتم خروجی مورد انتظار را تولید کرده و یا جوابی برای آن مسئله پیدا نکرده است. بهرحال الگوریتم ها بایستی پس از طی تعداد محدودی از مراحل خاتمه پیدا کنند و زمان اجرای آن‌ها محدود باشد و پس از گذشت زمانی معقول خاتمه یابد.مستقل از زبان : الگوریتم طراحی‌شده باید مستقل از زبان باشد، یعنی بصورت مجموعه‌ای از دستورالعمل‌های ساده‌ای باشد که قابلیت پیاده‌سازی در هر زبان برنامه‌نویسی را داشته باشد و در عین حال خروجی یکسانی را بدهد.پیچیدگی زمانی و مکانیساختار منطقی الگوریتم‌ها چیست؟الگوریتم‌ها با توجه به ساختار منطقی که دارند در 3 دسته جا می‌گیرند:دنباله ای (Sequence): ساختاری مرحله به مرحله، که ترتیب گام‌ها برای رسیدن به پاسخ در آن مشحص است.شاخه ای(Branching): این الگوریتم‌ها طبق قانون اگر-آنگاه در ریاضیات کار می‌کنند. به این صورت که پس از تعیین شرط، پاسخ با توجه به نتیجه شرط تعیین می‌شود.حلقه ای (Loop): الگوریتم‌های حلقه ای یا تکراری، در تعداد دفعات مشخصی شرطی را در پروژه اعمال می‌کنند و پس از تمام شدن فرایند، برنامه را پایان می‌دهند.انواع الگوریتم‌ها از نظر نوع مسئلهانواع الگوریتم هاالگوریتم‌ها دارای نقش مهمی در برنامه‌نویسی و حل مسئله هستند و از لحاظ کارایی و با توجه به نوع مسئله انواع مختلفی دارند که ما در این بخش به بررسی تعدادی از آن‌ها می‌پردازیم.الگوریتم بازگشتی (Recursive)الگوریتم‌های بازگشتی حالت پایه یا به اصطلاح base case مسئله را حل کرده و سپس با استفاده از این جواب، به حل مسائل تودرتو می‌پردازند. درواقع مسئله به چند بخش کوچک شکسته می‌شود که با استفاده از پاسخ مرحله قبل، مسئله بعدی قابل‌حل است. یکی از معروف‌ترین مسائل بازگشتی، تابع فاکتوریل (factorial) است. در کد زیر عبارت If x is 0 حالت پایه محسوب می‌شود:Fact(x)    If x is 0           return 1     return (x*Fact(x-1))الگوریتم دینامیک (Dynamic)از الگوریتم‌های پویا یا دینامیک می‌توان برای محاسبه بخشی از برنامه و استفاده از پاسخ آن، در مسائل آینده استفاده کرد. یعنی از پاسخ‌های یک بخش، می‌توانید برای حل مسائل دیگر نیز بهره برد. دنباله فیبوناچی از الگوریتم‌های دینامیک استفاده می‌کند:Fib(n)    if n=0	    return 0	else	    prev_Fib=0,curr_Fib=1	repeat n-1 times  /*if n=0 it will skip*/	    next_Fib=prev_Fib+curr_Fib   	    prev_Fib=curr_Fib	    curr_Fib=new_Fib	return curr_Fibالگوریتم برگشت به عقب (Backtracking)الگوریتم‌ عقب‌گرد به دنبال پیدا کردن سرنخ‌های امیدبخشی است تا بهینه‌ترین جواب را پیدا کند. این شیوه برای حل مسائل درخت فضای آن مسئله را ایجاد کرده و تعیین می‌کند کدام گره امیدبخش است. الگوریتم‌های عقب‌گرد از علامت‌هایی برای بیان اینکه یک راه‌حل کاندید به حل مسئله نمی‌انجامد استفاده می‌کنند.مثلاً در ساخت درخت فضای حالت یک سؤال، اگر شاخه‌ای از درخت جواب بهینه‌ای در پی نداشته باشد، علامت‌گذاری می‌شود تا در عمق زیاد بررسی نشود و به جای آن، شاخه امیدبخش‌تر بررسی می‌شود. البته شاخه اول به‌طورکلی هرس نمی‌شود بلکه موقتاً کنار گذاشته می‌شود تا در صورت پیدا نکردن بهینه‌ترین جواب در شاخه دیگر، مجدداً به آن بازگردیم.الگوریتم تقسیم و حل (Divide and conquer )الگوریتم‌های تقسیم و حل ابتدا مسئله را با توجه به نوع آن، چند بخش کوچک‌تر تقسیم کرده و به حل آن‌ها می‌پردازند. سپس از ترکیب پاسخ بخش‌های کوچک‌تر، پاسخ کلی مسئله به‌دست می‌آید. برخی از روش‌های مرتب‌سازی مانند مرتب‌سازی ادغامی (Merge Sort) و مرتب‌سازی سریع (Quick Sort) نیز از این دسته الگوریتم‌ها محسوب می‌شوند.به‌عنوان مثال مرتب‌سازی ادغامی ابتدا آرایه‌ای از مقادیر ورودی را دو قسمت کرده و به‌صورت بازگشتی، دوباره هر قسمت را دو قسمت می‌کند. این روند آن‌قدر ادامه پیدا می‌کند تا اعداد در دسته‌های کوچک‌تر صعودی یا نزولی مرتب شوند. سپس از ادغام زیر بخش های کوچک، آرایه مرتب‌شده‌ی بخش‌های بزرگ‌تر به‌ دست می‌آید.الگوریتم حریصانه (Greedy)الگوریتم‌های حریصانه به دنبال جستجوی بهینه‌ترین پاسخ ممکن هستند اما لزوماً در هر مسئله‌ای، نمی‌توانند بهینه‌ترین پاسخ را پیدا کنند اما یکی از جواب‌های بهینه را به شما معرفی خواهند کرد. البته برخی مسائل هم به‌طورکلی پاسخ بهینه ندارند که به آن‌ها مسائل NP complete می‌گویند. در شیوه حریصانه در هر مرحله عنصری که بر مبنای معیارها بهترین به نظر می‌رسد، بدون توجه به انتخاب‌هایی که قبلاً انجام شده یا در آینده انجام خواهد شد، انتخاب می‌شود.مسئله خرد کردن سکه‌ها یکی از مثال‌های معروف در به‌کارگیری الگوریتم حریصانه است. این مسئله می‌گوید فرض کنید که شما باید مبلغی مثلاً 36 تومان را با سکه‌های 20 تومانی، 10 تومانی، 5 تومانی و 1 تومانی پرداخت کنید به طوری که کمترین تعداد سکه را بپردازید. کمترین تعدادی که بتوان با آن 36 تومان را پرداخت کرد پاسخی بهینه برای مسئله ما خواهد بود که در اینجا، برداشتن یک سکه از هر 4 مدل است.الگوریتم بروت فورس (Brute force)الگوریتم جستجوی جامع یا بروت فورس تمامی راه‌حل‌های احتمالی را بررسی می‌کند تا بتواند بهینه‌ترین پاسخ را پیدا کند. در این الگوریتم بهینه‌ترین پاسخ با ویژگی “ارضا کردن شرط مسئله” سنجیده می‌شود و به همین دلیل بیشتر برای مسائل کوچک کاربرد دارد. این الگوریتم در رمزگشایی نیز کاربرد زیادی دارد و عملکرد آن به‌گونه‌ای است که تمامی کلیدها را چک می‌کند تا به جواب برسد. داده‌کاوی نیز زمینه دیگری برای استفاده از این نوع الگوریتم‌ها است.کاربرد الگوریتم چیست ؟در این مقاله به صورت کامل به این پرسش پرداختیم که الگوریتم چیست و به معرفی انواع الگوریتم‌ها پرداختیم ، در این قسمت می‌خواهیم بگوییم الگوریتم چه کاربردی دارد ؟ در زیر به برخی از کاربردهای الگوریتم‌ها اشاره می‌کنیم:ساده سازی و نظم دهی : یکی از مهم‌ترین کاربردهای الگوریتم‌ها ساده سازی و نظم دهی به فرامینی است که ما قرار است به کامپیوتر بدهیم و برنامه نویسی کنیم.سرعت در پیاده سازی : الگوریتم‌ها چون از قبل فرایند تولیدشان مشخص است بنابرین سرعت پیاده سازی آنها بسیار بالا است.فهم بهتر از کد نویسی: ما الگوریتم‌ها را ایجاد میکنیم تا بهتر بتوانیم کدنویسی را فهم کنیم.جمع بندیالگوریتم‌های کاربردی زیادی در ریاضیات و علوم کامپیوتر وجود دارند که ما به‌طور خلاصه به معرفی تعدادی از آن‌ها پرداختیم. تسلط بر الگوریتم ها اهمیت زیادی برای برنامه نویسان و به‌ویژه Back-End کارها دارد زیرا می‌تواند نقطه قوتی برای استخدام در شرکت‌های معتبر باشد. فلوچارت‌ها و الگوریتم‌ها ازجمله پیش‌نیازهای یادگیری برنامه‌نویسی هستند.منابع : https://7learn.com/blog/what-is-algorithmhttps://www.konkurcomputer.ir/الگوریتم-چیست.html</description>
                <category>سون لرن</category>
                <author>سون لرن</author>
                <pubDate>Wed, 22 Feb 2023 11:54:49 +0330</pubDate>
            </item>
                    <item>
                <title>چرا زبان برنامه نویسی php را باید یاد بگیریم ؟</title>
                <link>https://virgool.io/7Learn/%DA%86%D8%B1%D8%A7-%D8%B2%D8%A8%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-php-%D8%B1%D8%A7-%D8%A8%D8%A7%DB%8C%D8%AF-%DB%8C%D8%A7%D8%AF-%D8%A8%DA%AF%DB%8C%D8%B1%DB%8C%D9%85-ax0danwagvjc</link>
                <description>هر چه از اهمیت زبان برنامه نویسی php بگوییم شاید کم باشد ، بالاخص در سالهای اخیر به دلیل رشد بیش از پیش وردپرس اهمیت یادگیری این زبان برنامه نویسی بک اند بیشتر و بیشتر شده است . در این مقاله همراه ما باشید تا از جهات مختلف php را بررسی کنیم و بگوییم چرا این زبان برنامه نویسی مهم است و آینده درخشان تری خواهد داشت و بهتر است برای یادگیری آن از همین الان اقدام کنید .زبان برنامه نویسی PHP چیست؟اهمیت یادگیری phpحالا که با یکدیگر تاریخچه زبان برنامه نویسی PHP را مرور کردیم و فهمیدیم این زبان چگونه ساخته شده است و تا به امروز دستخوش چه تغییراتی بوده است، نوبت می‌رسد تا برگردیم به اولین سوال خود تا بدانیم PHP چیست و یک تعریف کامل و جامع از آن داشته باشیم.پی اچ پی یک زبان تفسیرشونده است که اساس و بنیان آن طراحی و ایجاد صفحات پویای وب بوده است. به عبارتی دیگر، کسانی که وظیفه کدنویسی سایت را بر عهده دارند با استفاده از زبان PHP قادر خواهند بود وب اپلیکیشن‌هایی طراحی کنند که به صورت تعاملی می‌باشند. منظور از تعاملی بودن وجود قابلیت هایی مانند سطوح دسترسی مختلف برای کاربران، امکان ثبت‌نام در سایت، پنل کاربری ، ذخیره اطلاعات کاربران و بسیاری از امکانات دیگر است که امروزه در تمامی سایت‌های امروزی مشاهده می‌کنیم.از نقاط قوت این زبان می‌توان به وجود فریمورک‌های بسیار قدرتمند و محبوبی هم چون لاراول و سیمفونی، دارا بودن بیش از 80% از سهم بازار وب ، متن باز و رایگان بودن ، جامعه بزرگ و پشتیبانی خوب اشاره کرد. از طرفی PHP توانسته است خودش را به عنوان یکی از محبوب‌ترین زبان‌های برنامه نویسی در حوزه طراحی وب معرفی کند.آینده زبان PHPزبان PHP با عرضه‌ی نسخه‌ی هفتم در سال 2015، توانست در جهت کسب رضایت کاربران و افزایش ثبات در حوزه‌ی وب، قدم بزرگی بردارد. برخی این نسخه از زبان PHP را یکی از بهترین به‌روزرسانی‌های یک زبان برنامه نویسی به حساب می‌آورند. از جمله تغییرات مهم این نسخه می‌توان به بهبود عملکرد، کاهش استفاده از حافظه تا حدود 50% و افزایش چشمگیر سرعت اجرای آن (حدودا دو برابر) اشاره کرد. با بررسی این موضوع می‌توان این‌گونه برداشت کرد، که تیم توسعه‌ی PHP بر روی بهبود عملکرد این زبان تمرکز کرده‌اند.یادگیری PHP چقدر زمان میبرد؟یادگیری php چقدر زمانبر هست؟پاسخ این سوال با پاسخ اینکه یادگیری PHP چقدر زمان می‌برد یکسان است: همه چیز به خودتان بستگی دارد. باید بتوانید بهینه‌ترین حالت یادگیری خود را پیدا کرده و آن را برای فهم PHP به کار گیرید.به طور کلی توصیه می‌شود تا در ابتدای یادگیری PHP، سینتکسها و نوشتار اولیه و مفاهیم پایه PHP (از قبیل تعریف متغیرها) را یاد بگیرید، سپس به سرعت وارد یک پروژه ساده ساده شوید و همزمان با پیاده سازی بخش‌های مختلف آن، دانش خود را کامل کنید. همچنین سایت‌های معتبر زیادی وجود دارد که می‌توانید برای آموزش زبان PHP از آنها کمک بگیرید. یوتیوب (رایگان) و یودمی (غیررایگان و به زبان انگلیسی) دو وب سایت پرطرفدار در این زمینه هستند.آیا می‌توان PHP را در یک ماه یاد گرفت؟بله، یادگیری PHP در یک ماه نیز امکان پذیر است؛ اما برای اینکار به دانش قبلی در حوزه کدنویسی نیاز دارید. در کنار آن باید صبر و پشتکار زیادی را در این یک ماه از خود نشان داده و تمام وقت و تمرکز خود را روی یادگیری PHP بگذارید. البته توجه کنید که تسلط بر تمامی موارد موجود در PHP در یک ماه ممکن نیست، اما با تلاش خود و انتخاب یک منبع یادگیری مناسب در این مدت می‌توانید اصول اولیه زبان PHP را یاد بگیرید.آشنایی با زبان برنامه نویسی PHP و کنار آمدن با چالش یادگیری یک ماهه آن می‌تواند واقعا دشوار باشد؛ زیرا اغلب به همراه PHP نیاز دارید تا با مفاهیم پایگاه داده (مانند MySQL) شیوه راه اندازی آن و اتصال کدهای PHP با بخش پایگاه داده را نیز یاد بگیرید.میزان استفاده از زبان PHP توسط برنامه‌ نویسانیکی دیگر از جنبه‌های مهمی که خبر از افول یک زبان می‌دهد، کاهش میزان استفاده از زبان در پروژه‌ها و حتی مهاجرت برنامه ‌نویسان به زبانی دیگر است. مسلما این اتفاق کاهش درخواست شغلی این زبان و تعداد علاقه‌مندان به یادگیری آن را نیز به ‌دنبال خواهد داشت.اما اخیرا در سایت داروین، آماری بررسی شده است که نشان می‌دهد میزان تقاضای مشاغل مرتبط با زبان PHP در دو سال اخیر با شیب ملایمی در حال رشد بوده است. فعالیت مستمر جامعه‌ی برنامه‌ نویسان PHP و افزایش تعداد علاقه‌مندان به یادگیری این زبان، تضمین دیگری برای پابرجا بودن PHP در آینده است.آینده زبان PHP – میزان محبوبیت زبان PHPمحبوبیت زبان PHP پارامتر دیگری است که جایگاه آن را تثبیت می‌کند. بر اساس آمار رسمی سایت W3Techs، بیش از 83.1% از وب سایت‌های دنیا با زبان PHP توسعه یافته‌اند که این نشان‌ دهنده‌ی نفوذ بالای این زبان در زیرساخت‌های وب است. حتی اگر این زبان برنامه‌نویسی در آینده‌ای نزدیک رو به افول باشد، مدت زمان زیادی طول می‌کشد تا استفاده از آن کاهش یابد و کدهای PHP با کدهای زبان دیگری جایگزین شوند.از سوی دیگر، حدود 35% از وب سایت‌های جهان با استفاده از سیستم مدیریت محتوای وردپرس توسعه یافته‌اند که این CMS محبوب بر پایه‌ی زبان PHP توسعه داده شده است. جذابیت وردپرس، داشتن جامعه‌ی برنامه ‌نویسان فعال و این قابلیت که وب‌مسترها می‌توانند بدون دانش فنی از آن بهره ببرند، از جمله مواردی هستند که باعث توسعه و محبوبیت بیشتر زبان PHP می‌شوند.از طرفی دیگر، بیش از 70% از وب سایت‌های موجود در ایران، از جمله لیدرهای بازار وب (اسنپ، اسنپ فود، نت برگ، دیجی‌کالا، الوپیک و…) زبان برنامه نویسی PHP را به عنوان زبان اصلی خود انتخاب کرده‌اند. این موضوع نشان دهنده‌ی این است که دامنه‌ی کاربرد PHP در حوزه‌ی وب بسیار زیاد و فراگیر می‌باشد.آینده زبان PHP – انعطاف‌پذیری زبان PHPانعطاف پذیری زبان PHP مزایا و معایب خاص خود را دارد. شاید بتوان گفت ساختار منعطف این زبان به‌گونه‌ای است که امکان کدنویسی کثیف را تا حد زیادی برای برنامه‌نویس فراهم می‌کند که یکی از دلایل آن، html embedded بودن زبان است. اتفاقی که میزان استفاده از PHP را در پروژه‌های شخصی افزایش داده و ممکن است در ابتدای مسیر یادگیری خوشایند افراد تازه‌کار باشد، در حالی که حتی این افراد نیز می‌بایست استانداردهای کدنویسی را از همان ابتدا رعایت کنند.البته چنین انعطافی هزینه‌ی یادگیری زبان یا به اصطلاح Learning Curve را نیز کاهش داده است که باعث جذب افراد بیشتری به این زبان می‌‌شود.در مقابل PHP، زبانی مانند جاوا از انعطاف کمتری برخوردار است و برنامه‌نویس را ملزم به استفاده از اصول شی‌گرایی و رعایت قواعد خود می‌کند. این ساختارمندی در زبان جاوا، آن را تبدیل به گزینه‌ی مناسبی برای استفاده در پروژه‌های بزرگ سازمانی کرده است.جمع بندیزبان PHP یک زبان مفسری متن باز، رایگان، انعطاف‌پذیر، مقیاس پذیر، پرسرعت و امن می‌باشد. درصد بالایی از وب سایت‌ها و وب اپلیکیشن‌های موجود در سطح اینترنت با استفاده از زبان PHP توسعه یافته‌اند و حتی بسیاری از سیستم‌های مدیریت محتوای محبوب نیز از این زبان قدرت گرفته‌اند. بنابراین نیازی نیست در مورد منسوخ شدن این زبان نگرانی داشته باشیم.حتی در صورتی که پس از گذشت چندین سال، برای این زبان جایگزین دیگری پیدا شود و این اتفاق رخ دهد نیز در صورتی که بر مفاهیم مستقل و اصلی برنامه نویسی تسلط داشته باشیم، به راحتی و در مدت زمان کوتاهی می‌توانیم زبان جدید را بیاموزیم و از آن در پروژه‌های خود استفاده کنیم. تاکنون هیچ کدام از نشانه‌های منسوخ شدن در زبان PHP مشاهده نشده است و بروزرسانی‌های جدید توسط جامعه‌ی قدرتمند PHP به‌طور منظم منتشر می‌شود؛ علاوه بر این، روز به روز شاهد گسترش استفاده از PHP و افزایش تعداد علاقه‌مندان به یادگیری این زبان هستیم.در این مقاله به علت ها و چرایی های اهمیت یادگیری زبان php پرداخته شده است در زیر به ما بگویید به نظر شما چرا باید این زبان را یادبگیریم و چرا این زبان می تواند پولساز باشد؟</description>
                <category>سون لرن</category>
                <author>سون لرن</author>
                <pubDate>Mon, 20 Feb 2023 12:33:46 +0330</pubDate>
            </item>
                    <item>
                <title>فلاتر یا جاوا ؛ برای برنامه نویسی کدامیک بهتر است؟</title>
                <link>https://virgool.io/7Learn/%D9%81%D9%84%D8%A7%D8%AA%D8%B1-%DB%8C%D8%A7-%D8%AC%D8%A7%D9%88%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%DB%8C-%DA%A9%D8%AF%D8%A7%D9%85%DB%8C%DA%A9-%D8%A8%D9%87%D8%AA%D8%B1-%D8%A7%D8%B3%D8%AA-xg2igubjbiny</link>
                <description>برای برنامه نویسی اندروید فلاتر بهتر است یا جاواتوسعه اپلیکیشن‌های تلفن همراه – به خصوص برای سیستم عامل اندروید - یکی از زمینه‌های محبوب برنامه نویسی است که فرصت‌های هیجان انگیزی را در اختیار توسعه دهندگان قرار می‌دهد. از گذشته تا کنون، اغلب برنامه نویسانی که قصد دارند تا برنامه نویسی اندروید را شروع کنند، به سراغ زبان‌هایی مانند جاوا می‌روند. اما یادگیری اصول اولیه این زبان برنامه نویسی برای افراد تازه‌کاری که قبلا تجربه کدنویسی نداشتند، تاحدودی دشوار و زمانبر است.در همین راستا شاهد معرفی فریمورک‌های جدید و پیشرفته برای کاهش سختی‌ها و پیچیدگی‌های ساخت برنامه برای اندروید هستیم. در میان این فناوری‌های نوظهور، فلاتر (Flutter) از سایر رقبا قدرتمندتر و محبوب‌تر ظاهر شده است. اما کدام یک بهتر است؟ فلاتر یا جاوا ؟ در این مطلب قصد داریم به بررسی ویژگی‌های جاوا و فلاتر بپردازیم و ببینیم که به عنوان یک توسعه دهنده اندروید، باید آموزش فلاتر را انتخاب کنید یا به دنبال آموزش برنامه نویسی اندروید با جاوا باشید. تا انتهای مقاله همراه ما باشید چرا که یک پیشنهاد شگفت انگیز برایتان داریم.معرفی زبان برنامه نویسی جاواجاوا توسط سان مایکروسیستمز که در حال حاضر مالک اوراکل است، توسعه داده شده است. جاوا اغلب به عنوان بهترین زبان برنامه نویسی اندروید شناخته می‌شود و به دلیل قدرتمند بودن، برنامه نویسان زیادی در سراسر جهان از آن استفاده می‌کنند. این زبان به طور خاص برای کاهش وابستگی‌های زمان پیاده سازی طراحی شده است و همین ویژگی جاوا را سریع، ایمن و قابل اعتماد می‌کند.زبان برنامه نویسی جاوا امکان ساخت هر برنامه‌ای در هر زمینه‌ای را فراهم می‌کند، با بسیاری از محیط های نرم افزاری و سخت افزاری همخوانی دارد و از انواع مختلف سیستم عامل مانند OS X، اندروید، ویندوز، لینوکس و... پشتیبانی می‌کند. برنامه‌های نوشته شده با زبان جاوا با سیستم عامل ارتباط برقرار کرده و به طور مستقیم از سخت افزار استفاده می‌کنند. برخی از برنامه‌های نوشته شده با جاوا عبارتند از: اسپاتیفای (Spotify)توییتر (Twitter)سیگنال (Signal)ویژگی ها زبان جاواویژگی‌های زبان جاواجاوا یکی از قدیمی ترین و محبوب ترین زبان‌های برنامه نویسی مبتنی بر شی گرایی است. جاوا ویژگی‌های زیادی دارد که باعث می‌شود برنامه نویسان مختلفی جذب آن شوند. در ادامه برخی از این ویژگی‌ها را معرفی می‌کنیم.نوشتار زبان جاوا: دستور زبان جاوا بر پایه C++ است و یادگیری آن باعث می‌شود تا برنامه نویسان مفاهیم اصلی کدنویسی را بهتر درک کنند و یادگیری عمیق تری در برنامه نویسی داشته باشند. به همین دلیل یادگیری جاوا مقرون به صرفه و استقرار مطالب برای توسعه‌دهندگان آسانتر است.پلتفرم مستقل: برخلاف زبان‌های دیگر مانند C و C++ که در ماشین‌های مخصوص خودشان پلتفرم کامپایل می‌شوند، کدهای جاوا پس از نوشتن می‌توانند در هر محیط سخت‌افزاری یا نرم‌افزاری مستقر شوند. این سازگاری به این دلیل است که جاوا یک پلتفرم مبتنی بر نرم افزار است که بر روی سایر محیط های مبتنی بر سخت افزار اجرا می‌شود.مدیریت حافظه قوی: فقدان نشانگرهای صریح و جمع‌آوری خودکار زباله که به صورت پشت سر هم در ماشین مجازی جاوا (JVM) کار می‌کنند تا اشیایی را که دیگر استفاده نمی‌شوند حذف کنند. همچنین به عنوان برنامه نویس به ویژگی‌هایی مانند مکانیسم های بررسی نوع و مدیریت استثنا دسترسی خواهید داشت.امنیت در زمان اجرا: برنامه‌های جاوا اساساً در داخل محیط امن ماشین مجازی اجرا می‌شوند که جاوا را به یک پلتفرم توسعه به نسبت امن تبدیل می‌کند.مزایای استفاده از جاواجاوا یکی از قدیمی ترین و محبوب ترین زبان‌های برنامه نویسی مبتنی بر شی گرایی است. به دلیل آنکه جاوا عمر بیشتری را به نسبت به سایر زبان‌های برنامه نویسی داشته است، نه تنها برای ساخت برنامه‌های اندرویدی مفید است بلکه کارهای مختلفی می‌توانید با آن انجام ‌دهید. وجود مجموعه‌ای غنی از کتابخانه‌ها در زبان جاوا به توسعه و نگهداری برنامه‌های کاربردی وب، موبایل و دسکتاپ کمک می‌کند. پس اگر جاوا بلد باشید، عناوین شغلی بسیار متنوعی در انتظار شماست.همچنین چندین سال است که این زبان در بسیاری از موسسه‌ها و دانشگاه‌های جهان تدریس می‌شود. بالا بودن تعداد برنامه نویسان جاوا باعث شده تا این زبان انجمن‌های (Community) بسیار گسترده‌ای در سطح جهان داشته باشد. برخی از مزایای جاوا عبارتند از:برای ساخت اپلیکیشن‌های بومی اندروید مناسب است.از آنجایی که خود اندروید براساس جاوا ساخته شده است، کتابخانه‌های جاوای زیادی برای کمک به شما وجود دارد.وجود ارث بری و قوانین شی گرایی به همراه Dependency Injection قدرت کدنویسی را افزایش می‌دهد.توسعه‌ی پروژه‌های بزرگ در جاوا آسان‌تر است.امکان ماژوله سازی کدها و استفاده مجدد در بخش های دیگر از پروژه وجود دارد.همانطور که گفتیم جاوا کارایی و امنیت بالایی دارد.جاوا از اجرای چند نخی (Multi-threading) پشتیبانی می‌کند.معایب استفاده از جاواهمانند هر زبان برنامه نویسی، جاوا نیز دارای معایب مخصوص به خود است. برخی از این معایب عبارتند از:جاوا یک زبان بسیار سنگین است، به این معنی که شما کدهای بسیار بیشتری را می‌نویسید و این احتمال خطا و باگ را افزایش می‌دهد.یادگیری تمام اصول آن زمانبر است؛ به خصوص برای افرادی که قبلا کدنویسی نکرده‌اند.جاوا به دلیل محدودیت‌های زبانی، در طراحی API اندروید دارای مشکلاتی است.جاوا در مقایسه با زبان‌های برنامه نویسی دیگر به حافظه بیشتری نیاز دارد.معرفی فلاترعلی رغم شهرت بی چون و چرای جاوا به عنوان یک زبان برنامه نویسی، مدت‌ها بود که برنامه نویسان اندروید به یک چارچوب مدرن‌تر برای توسعه برنامه نیاز داشتند. گوگل با معرفی فلاتر (Flutter) این خلاء را پر کرد. فلاتر یک چارچوب کیت توسعه نرم‌افزار رابط کاربری است و با در نظر گرفتن توسعه بین پلتفرمی(Cross Platform) ساخته شده است. این ویژگی به توسعه‌دهندگان، طراحان و برنامه‌نویسان اجازه می‌دهد تا برنامه‌های موبایل مدرن برای اندروید و iOSطراحی کنند.معرفی زبان برنامه نویسی فلاترزبان رسمی برنامه نویسی در فلاتر دارت (Dart) است، اما فلاتر با زبانهای برنامه نویسی زیادی تعامل دارد: توسعه دهندگانی که به زبان‌های سی (C) و سی پلاس پلاس (C++) مسلط هستند نیز می‌توانند برنامه‌های بومی تلفن همراه، دسکتاپ و حتی برنامه های پیشرفته تحت وب را بسازند. به همین دلیل بازار کار فلاتردر حال گسترش است.ویژگی‌های فلاترروز به روز توسعه دهندگان بیشتری از فلاتر به عنوان چارچوب جدیدتر و بهتر برای توسعه برنامه های تلفن همراه استقبال می‌کنند. برنامه‌هایی که با استفاده از فلاتر ساخته شده‌اند، روان‌تر و کارآمدتر عمل می‌کنند و از نظر عملکرد، یک تجربه برنامه تقریباً بومی را ارائه می‌دهند. فلاتر دارای ویژگی‌های زیادی است که در ادامه درمورد آنها صحبت می‌کنیم:متن باز: فلاتر که توسط گوگل توسعه داده شده است، یک چارچوب رایگان و منبع باز است که می‌تواند توسط توسعه دهندگان برای توسعه برنامه‌های مختلف (به خصوص برای سیستم عامل تلفن همراه) استفاده شود.کراس پلتفرم: کدهایی که یک بار در فلاتر نوشته می‌شوند را می‌توان بدون نگرانی در مورد سازگاری، نگهداری و در پلتفرم‌های مختلف مستقر کرد و این باعث می‌شود فرآیند توسعه برنامه از نظر زمان و هزینه به صرفه باشد.حداقل کد: زبان برنامه نویسی دارت از کامپایلرهای AOT و JIT برای افزایش زمان راه اندازی کلی و تسریع عملکرد برنامه استفاده می‌کند. همچنین با به روز رسانی ابزارهای ساخت رابط کاربری (UI) سعی می‌کند تا بدون صرف منابع برای توسعه یک رابط جدید، روند توسعه را سریعتر کند.بارگذاری مجدد در لحظه: بدون شک یکی از محبوب ترین ویژگی‌های فلاتر، Hot Reload است که به توسعه دهندگان این امکان را می‌دهد تا هر تغییری را که در کد ایجاد می‌کنند، فوراً و در لحظه مشاهده کنند. از آنجایی که تغییرات در برنامه در زمان واقعی قابل مشاهده است، توسعه دهندگان می‌توانند هر گونه خطا را فورا شناسایی و برطرف کنند.ابزارک‌ها: فلاتر دو مجموعه محبوب از ویجت‌ها، یعنی کوپرتینو و متریال یوآی را ارائه می‌دهد که می‌توانند طرح‌های سفارشی خاصی را ایجاد کنند تا تجربه‌ای بدون اشکال را در همه پلتفرم‌ها ارائه دهند.ویژگی ها و مزیت های فلاتر نسبت به جاوامزایای استفاده از فلاتر به نسبت جاواهدف توسعه دهندگان فلاتر، سریع‌تر کردن روند کدنویسی برای برنامه نویسان است. یک برنامه نویس فلاتر قطعا سرعت بیشتری در نوشتن کد دارد و به همین دلیل است که توسعه دهندگان زیادی فلاتر را دوست دارند. سایر مزایای فلاتر عبارتند از:فلاتر به راحتی قابل استقرار است.همانطور که گفتیم با اجرای سریع می‌توان خطاها را راحتتر شناسایی کرد.برنامه‌ها فوق العاده روان اجرا می‌شوند.در حقیقت با اینکه دارت یک زبان به نسبت جدید است، ابزاری بسیار همه کاره و رقیب قدرتمندی برای ری اکت نیتیو (React Native) است.یادگیری دارت آسان است.برای ساخت برنامه‌های دارای معماری MVP مناسب است.فلاتر در مقایسه با سایر چارچوب ها کارآمدتر عمل می‌کند، ارزان تر است و با پلتفرم های مختلفی سازگار است.بازار کار فلاتر عالی است و موقعیت‌های شغلی فلاتر روز به روز در حال افزایش است.معایب استفاده از فلاترجامعه برنامه نویسان فلاتر هنوز جوان است و منابع یادگیری محدود هستند، بنابراین یافتن پاسخ برای سوالات می‌تواند کمی دشوار باشد. با این حال، با افزایش محبوبیت آن، منابع و جامعه به مرور زمان گسترش خواهد یافت.سایر معایب فلاتر به شرح زیر می‌باشد:از آنجایی که فلاتر به نسبت جدید است، دسترسی محدودی به کتابخانه‌های SDK فراهم می‌کند و قابلیت‌های موجود را برای یک توسعه‌دهنده محدود می‌کند. البته با گذر زمان این ایراد در حال برطرف شدن است.از آنجایی که فلاتر هنوز نوپا است، پیدا کردن توسعه دهندگان باتجربه به عنوان منتور تیم کمی دشوار است.یادگیری دارت برای افرادی که با نوشتار جاوا یا ++C خو گرفته‌اند، کمی دشوار است.زبان برنامه نویسی دارت در فلاترجاوا بهتر است یا فلاتر؟ کدامیک را یاد بگیریم؟توسعه اپلیکیشن‌های اندرویدی گزینه خوبی برای رسیدن به موفقیت در کسب وکار شما است اما انتخاب بهترین زبان برنامه نویسی اندروید بسیار دشوار است. جاوا یا فلاتر در حوزه‌های خود بسیار خوب کار می‌کنند. اما تفاوت عمده بین این دو جامعه کاربران آن است. فلاتر انتخاب اول برنامه نویسی برای نسل جدید است و جاوا طرفداران قدیمی خود را دارد.تا قبل از ظهور فلاتر برای بسیاری از برنامه نویسان واضح بود که جاوا بهترین است؛ چرا که از گذشته تا کنون وجود داشت و همه آن را تحسین می‌کردند. اما پس از فلاتر، این اعتقاد مطلق به جاوا تا حدودی متزلزل شد و برنامه نویسان شروع به پرسیدن این سوال از خود کردند که از میان فلاتر یا جاوا کدام یک بهتر است؟  برای پاسخ به این پرسش باید این دو را از جهات گوناگون بررسی کنیم.جاوا بهتر است یا فلاترچند پلتفرمیفلاتر یک ابزار بومی چند پلتفرمی است که سریعتر و چشمگیرتر کار می‌کند. با توجه به نیازهای برنامه نویسان و فناوری موجود فعلی، فلاتر با ویژگی‌های پیشرفته برای توسعه برنامه‌های چندپلتفرمی موبایل و وب به عنوان انتخاب اول شناخته می‌شود. در صورتی که ساخت برنامه‌های چندپلتفرمی با جاوا زحمت دوچندانی را می‌طلبد.ساخت رابط کاربریوجود طراحی متریال، ویجت های سفارشی و پشتیبانی تعاملی باعث شده است که محبوبیت فلاتر در جامعه توسعه دهندگان بالاتر رود. اما جاوا با اینکه حدود دو دهه قدمت دارد، بیشتر به دلیل محبوبیت گذشته اش بسیار مورد استفاده قرار می‌گیرد و همچنان فاقد ابزارهای مدرن توسعه است و در ارائه طرح های ظاهری و رابط کاربری بسیار ضعیف عمل کرده است.شروع یادگیریممکن است شما در شروع راه برنامه نویسی باشید. دارت و فلاتر یکی از گزینه‌های خوب یادگیری است و به شما کمک می‌کند تا در زمان کمتری پروژه‌های متنوعی را انجام دهید. اما یادگیری اصول جاوا پیچیده تر است و به نسبت زمان بیشتری نیاز دارد.بازار کاربیشترین فایده یادگیری دارت، بازار کار فلاتر است. به خصوص اگر قصد به دست آوردن درآمد بالا را دارید چه در داخل و چه در خارج از کشور، یادگیری فلاتر می‌تواند مزایای زیادی برای شما داشته باشد. نیروی متخصص فلاتر نسبتا کمتر از سایر حوزه‌ها است. پس  اگر تسلط خوبی بر فلاتر داشته باشید، یافتن موقعیت شغلی فلاتر برای شما کار بسیار ساده‌ای خواهد بود. یادگیری فلاتر برای کسانی که بر زبان برنامه نویسی دارت تسلط دارند مزیت بزرگی محسوب می‌شود و شرکت‌ها را برای استخدام آنها وسوسه می‌کند.درآمد برنامه نویس فلاترمنابع و مستندات در فلاتر و جاواجاوا به دلیل جامعه کاربران قدیمی خود، دارای مستندات، تیم قوی و به روز رسانی مداوم ایمن تر است. پس اگر مشتاق تعامل با برنامه نویسان کهنه کار هستید شاید بهتر باشد کار توسعه اپلیکیشن های اندروید را با جاوا شروع کنید. اما از طرفی دوره‌های‌ آموزش فلاتر زیادی نیز درحال تدوین است. فلاتر طرفداران زیادی دارد و در بسیاری از موارد پاسخ سوالهای خود را به راحتی پیدا می‌کنید.جمع بندی و پیشنــهاد شگفـــت انگــــیزبا تمام تفاسیر و مستنداتی که در مقاله بیان کردیم به نظر می‌رسد هم گوگل علاقه بسیار زیادی به توسعه برنامه نویسی اندروید با فلاتر دارد هم بازار کار ایران و خارج کشور تمایل بسیار زیادی برای جذب نیرو برنامه نویس فلاتر دارد.در همین راستا مجموعه آموزش برنامه نویسی سون لرن برای شما دوره ای جامع و کاملا پروژه محور تدارک دیده است که می توانید با شرکت در این دوره و گذراندن تمام مراحل و امتحانات به یک برنامه نویس فلاترِ مناسب با بازار کار ایران یا خارج از کشور تبدیل شوید.همین حالا می توانید در دوره آموزش فلاتر سون لرن با کد تخفیف flutter-vrgl که مخصوص شما کاربرانی است که مقاله را مطالعه کرده اید شرکت کنید.(توجه داشته باشید که مدت زمان و تعداد استفاده از کدتخفیف محدود می باشد پس سریعا اقدام نمایید).</description>
                <category>سون لرن</category>
                <author>سون لرن</author>
                <pubDate>Tue, 06 Dec 2022 12:29:29 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی 10 تا از بهترین زبان های برنامه نویسی اندروید</title>
                <link>https://virgool.io/7Learn/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-10-%D8%AA%D8%A7-%D8%A7%D8%B2-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D8%B2%D8%A8%D8%A7%D9%86-%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-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-cwhputcuctd4</link>
                <description>معرفی بهترین زبان برنامه نویسی اندرویدتاکنون به این فکر کردید که چند بار در روز از اپلیکیشن‌ها استفاده می‌کنید؟ امروزه تقریبا برای هر نیاز احتمالی انسان، یک برنامه در تلفن همراه شما وجود دارد. بنابراین، تعجبی ندارد که تقاضا برای تولید اپلیکیشن‌های موبایل از زمان اختراع گوشی‌های هوشمند، همواره در حال افزایش بوده است. در همین راستا طراحی و ساخت برنامه‌های موبایل و بخصوص برنامه نویسی اندروید، یکی از حوزه‌های محبوب میان توسعه دهندگان است. اما آیا به صورت جداگانه باید آموزش برنامه نویسی را فرابگیرید؟ بهترین زبان برنامه نویسی اندروید چیست؟ بهترین منابع آموزش برنامه نویسی اندروید چیست؟در بسیاری از انجمن‌های برنامه نویسی، بحث‌های گوناگونی درباره اینکه بهترین زبان برنامه نویسی اندروید چیست شده است. در این مقاله، ما در مورد زبانهای برنامه نویسی مناسب برای توسعه اندروید بحث خواهیم کرد، درمورد لزوم آموزش فلاتر صحبت می‌کنیم و در پایان چند نکته مهم برای انتخاب بهترین زبان برنامه نویسی اندروید با شما به اشتراک می‌گذاریم تا بتوانید سریع‌تر در این زمینه مشغول به کار شوید. اگر در ابتدای راه شروع برنامه نویسی هستید و یا به عنوان یک پدر یا مادر دوست دارید فرزندتان برنامه نویسی در این حوزه را یاد بگیرد، این مقاله به شما کمک می‌کند تا بفهمید از کجا باید شروع کنید.انواع اپلیکیشن‌های موبایلقبل از انتخاب بهترین زبان برنامه نویسی اندروید برای محصول موبایل خود، بهتر است با انواع مختلف برنامه‌های موبایل موجود در بازار آشنا شوید:برنامه‌های بومی: این اپلیکیشن‌ها بومی نامیده می‌شوند زیرا به زبان برنامه نویسی بومی اندروید نوشته شده اند. زبان بومی سیستم عامل اندروید، جاوا است، در حالی که زبان بومی  Objective-C و سوییفت مخصوص iOS است.برنامه‌های وب –اپ:  این برنامه‌ها وب سایت‌هایی هستند که شباهت زیادی به برنامه‌های بومی دارند. برای استفاده از آن، داشتن یک مرورگر بر روی دستگاه و داشتن یک اتصال اینترنتی کافی است. اغلب وب- اپلیکیشن‌ها با جاوا اسکریپت و فریمورک‌های آن مانند ری اکت و انگولار نوشته می‌شوند. برنامه های ترکیبی (کراس پلتفرم): اپلیکیشن های ترکیبی ترکیبی از وب و اپلیکیشن های بومی هستند و به صورت میان پلتفرمی (هم در موبایل، هم در وب و هم در دسکتاپ) دردسترس هستند. می‌توانند در گوگل استور و اپ استور قرار بگیرند و سپس در مرورگر اجرا شوند.انواع اپلیکیشن های موبایلزبان‌های برنامه نویسی اندرویدهمانطور که در بخش قبل گفتیم، در گذشته تنها جاوا به عنوان زبان بومی توسعه دهندگان اندروید به حساب می‌آمد تا بالاخره زبان کاتلین به عنوان زبان رسمی توسعه اندروید معرفی شد. این دو زبان برای برنامه نویسی اندروید بسیار قدرتمند هستند و اغلب برنامه نویسان برای ورود به حوزه توسعه تخصصی اپلیکیشن‌های اندروید حداقل یکی از این دو را یاد می‌گیرند.اما جالب است بدانید که توسعه دهندگان برنامه‌های اندروید نه تنها با جاوا و کاتلین، بلکه با به کارگیری زبان‌های برنامه نویسی دیگر نیز کدنویسی می‌کنند. این گروه از برنامه نویسان جمعیت کمتری از توسعه دهندگان اندروید را نسبت به گروه قبلی تشکیل می‌دهند و برنامه‌های ساخته شده توسط آنها اغلب توسط یک واسط به یک فایل apk تبدیل می‌شود.در ادامه هر یک از این زبان‌های برنامه نویسی را معرفی می‌کنیم تا بتوانید بهتر انتخاب کنید که بهترین زبان برنامه نویسی اندروید برای شما چیست.جاوازبان جاوا به نسبت به سایر زبان‌های برنامه نویسی در حوزه اندروید، پراستفاده ترین و پرکاربردترین می‌باشد. این محبوبیت به سبب قدمت بالای جاوا در توسعه برنامه‌های اندروید است (از سال 2008 تاکنون). بسیاری از برنامه های موجود در فروشگاه گوگل استور با جاوا ساخته شده است و از طرفی زبان برنامه نویسی جاوا پشتیبانی شده‌ترین زبان توسط گوگل است. در کنار همه این موارد، جاوا دارای یک جامعه آنلاین عالی برای پرسش و پاسخ سوالات فنی برنامه نویسی و پشتیبانی همه جانبه در صورت بروز مشکلات مختلف توسعه اندروید است.با این حال باید دقت کنید که جاوا یک زبان پیچیده برای افراد مبتدی است؛ زیرا شامل موضوعات پیچیده‌ای مانند سازنده‌ها، استثناها و خطاها، اشاره‌گرها و... است. اما در مجموع، جاوا یک زبان برنامه نویسی عالی برای تجربه لذت کامل توسعه اپلیکیشن‌های اندروید است.کاتلین بهتر است یا جاوا؟کاتلینکاتلین در سال ۲۰۱۷ به عنوان زبانی برای کمک به جاوا معرفی شد؛ زیرا کاتلین می‌تواند با جاوا همکاری کند و بر روی ماشین مجازی جاوا به راحتی اجرا شود. تا اینکه در سال 2019 گوگل کاتلین را زبان رسمی برای توسعه برنامه های اندروید اعلام کرد. کاتلین یک زبان برنامه نویسی میان پلتفرمی نیز می‌باشد و در عین حال می‌تواند به عنوان جایگزینی برای جاوا در توسعه برنامه‌های اندروید مورد استفاده قرار گیرد.از تفاوت‌های قابل توجه کاتلین با جاوا می‌توان گفت که کاتلین ویژگی‌های اضافی زبان جاوا مانند خطاهای اشاره گر صفر را حذف کرده است. همچنین کاتلین لزوم نوشتن سمی کالن (علامت ;) در پایان هر خط از کد را برداشته است. به طور خلاصه، کاتلین در مقایسه با جاوا برای مبتدیان بسیار ساده‌تر است و می‌توان از آن به عنوان یک نقطه عطف برای توسعه برنامه های اندروید نیز استفاده کرد.پایتونعلاقه مندان توانسته اند یکی از محبوب‌ترین زبان‌های برنامه نویسی یعنی پایتون را برای توسعه اندروید سازگار کنند. این کار با استفاده از کتابخانه کیوی (Kivy) و BeeWare امکان پذیر شده است.کیوی یک کتابخانه متن باز برای ساخت اپلیکیشن های میان پلتفرمی از جمله برای اندروید و iOS است. BeeWare نیز مجموعه‌ای از ابزارهای پراستفاده رابط کاربری برای ساخت برنامه‌های مخصوص اندروید است. درگذشته توسعه دهندگان اندروید که برنامه‌های موبایل را به زبان برنامه نویسی پایتون می‌نوشتند، بسیار نادر بودند؛ با این حال روز به روز به تعدادشان افزوده می‌شود و در جوامع آنلاین برنامه نویسی، پشتیبانی خوبی دارند.زبان برنامه نویسی پایتون برای اندرویدسی (C) و سی پلاس پلاس (C++)با استفاده از کیت توسعه بومی اندروید (NDK) می‌توانید با زبانهای برنامه نویسی C و C++ هم برای سیستم عامل اندروید برنامه بنویسید. در حالی که C++ در برخی موارد برای توسعه برنامه های اندروید مفید است، اما راه اندازی آن بسیار دشوارتر است و انعطاف پذیری بسیار کمتری دارد. به همین دلیل اغلب برای پیاده سازی بخش کوچکی از برنامه اندرویدی از این دو زبان استفاده می‌کنند.همچنین ممکن است به دلیل افزایش پیچیدگی خود زبان سی پلاس پلاس، به باگ‌های بیشتری برخورد کنید و در اینجا جامعه کاربران به نسبت به دو زبان جاوا و کاتلین کوچکتر است و کاربران فعالیت کمتری دارند. بنابراین اگر به عنوان یک مبتدی شروع به کار می‌کنید یا می‌خواهید به صورت تخصصی به ساخت برنامه‌های اندروید بپردازید، بهتر است به سراغ C++ نروید، زیرا به میزان کافی نتایج زحمات و تلاش‌های خود را نمی‌بینید.زبان‌های برنامه نویسی وب _ اپلیکیشنتا این زمان که در حال نگارش این مقاله هستیم، حدود ۱۰ زبان برنامه نویسی برتر و چارچوب های مناسب برای توسعه برنامه‌های وب _ اپلیکیشن معرفی شده است. شاید برایتان این سوال ایجاد شده باشد که با وجود زبان‌های قدرتمند بومی حوزه اندروید، چرا باید به پیاده سازی وب _ اپلیکیشنها فکر کنید؟برنامه‌های تحت وب کاربردهای بی‌شمار و مزایای زیادی دارند. این برنامه‌ها نیاز به نصب یا به روزرسانی توسط کاربر ندارند، در هر پلتفرمی با مرورگر قابل دسترسی اند و چندین کاربر اجازه دسترسی به یک نسخه مشابه برنامه را دارند. همین باعث شده است که امروزه اغلب کسب و کارها برای توسعه برنامه‌های خود به سراغ وب _ اپلیکیشن‌ها بروند. در ادامه چند زبان پرکاربرد این حوزه که به شما اجازه خروجی گرفتن برنامه اندرویدی را نیز می‌دهد معرفی می‌کنیم.دارت و فلاترنادیده گرفتن زبان برنامه نویسی دارت در شرایط امروزی بسیار سخت و تقریبا غیرممکن است. دارت یک زبان برنامه نویسی متن باز است که از قضا زبان اصلی فریمورک فلاتر نیز به شمار می‌رود و بی‌تردید می‌توان آن را جزو یکی از بهترین زبان های برنامه نویسی اندروید به حساب آورد.دارت و فلاتر یکی از بهترین زبان برنامه نویسی اندرویدفلاتر این روزها بسیار محبوب است؛ زیرا با استفاده از آن می‌توانید در زمان بسیار کمی برنامه‌های کاربرپسند برای هر سه پلتفرم وب، دسکتاپ و موبایل توسعه دهید. در حقیقت نکته کلیدی استفاده از دارت این است که توسط گوگل به عنوان یک زبان بهینه سازی شده برای مشتری و برای توسعه برنامه‌های سبک در هر پلتفرمی طراحی شده است. دارت عمدتاً روی آسان‌تر کردن توسعه رابط کاربری برای توسعه‌ دهندگان به همراه ویژگی‌هایی مانند Hot-Reload تمرکز دارد. این ویژگی به برنامه نویسان اجازه می‌دهد تغییرات را در زمان کدنویسی و در لحظه مشاهده کنند. پس اگر به دنبال کدنویسی سریع برای برنامه سبک خود هستید، بد نیست که آموزش فلاتر را دنبال کنید.جاوا اسکریپتزبان برنامه نویسی جاوا اسکریپت در تمام مرورگرها کار می‌کند و می‌تواند با برنامه‌هایی ترکیب شود که در اینترنت به صورت سایت نیستند. بزرگترین مزیت جاوا اسکریپت این است که دارای فریمورک‌های گوناگون و بسیار قدرتمندی است. برخی از محبوب ترین این فریمورک‌ها عبارتند از: ویو جی اس (Vue.js)، انگولار (Angular)، ری اکت (React) و ری اکت نیتیو (React Native) که منحصرا برای توسعه برنامه‌های تحت موبایل استفاده می‌شود. بسیاری از این فریمورک‌ها برای پیاده سازی منطق‌های پیچیده درون سازمانی مناسب هستند.از طرفی جاوا اسکریپت ارتباط تناتنگی با HTML و CSS دارد و برنامه نویسانی که قصد ساخت برنامه‌های اندرویدی تحت وب را دارند، باید بر این دو زبان نیز مسلط باشند. یادگیری مواردی مانند جی کوئری نیز می‌تواند به کارتان سرعت ببخشد. جی کوئری (JQuery) یک کتابخانه سریع و کوچک جاوا اسکریپتی است که ویژگی‌های مفیدی برای پیاده سازی وب –اپلیکیشن‌ها دارد.جاوا اسکریپت در برنامه نویسی اندرویدزبان‌های برنامه نویسی کراس پلتفرمگفتیم که اپلیکیشن‌های کراس پلتفرم یکبار کدنویسی شده و سپس برای چندین پلتفرم به صورت جداگانه خروجی گرفته می‌شوند. ویژگی جالبی است، اینطور نیست؟ برای مثال برنامه‌ای مانند تاکسی اینترنتی را درنظر بگیرید. این برنامه باید روی هر دستگاه و پلتفرمی قابل اجرا باشد. حال تصور کنید که اگر برای هر پلتفرم به صورت جداگانه کدنویسی انجام شود چقدر زمان و بودجه باید صرف کنید!در ادامه یک زبان برنامه نویسی و یک ابزار محبوب این حوزه را معرفی می‌کنیم. البته شما می‌توانید از توسعه دهندگان وب و وب - اپلیکیشنها برای برنامه نویسی برنامه‌های چندپلتفرمی استفاده کنید و برنامه نهایی را در مرورگر خروجی بگیرید. در اصل برنامه‌های کراس پلتفرم و وب –اپ از لحاظ نتیجه کار بسیار به هم شبیه هستند و تنها در اجرا با هم کمی فرق دارند.سی شارپ (C#)زبان سی شارپ از لحاظ قواعد کاملا شبیه به جاوا است؛ بنابراین برای توسعه اپلیکیشن‌های اندروید ایده آل است. سی شارپ هم مانند جاوا دارای سیستم جمع آوری زباله (garbage collector) است و باعث می‌شود تا از حافظه به صورت بهینه استفاده شود. همچنین سی شارپ نوشتار تمیزتر و ساده تری نسبت به جاوا دارد که کدنویسی با آن را نسبتا آسان‌تر می‌کند.پیش از این، بزرگ ترین اشکال سی شارپ این بود که برنامه‌های نوشته شده با این زبان با استفاده از چارچوب دات نت تنها می‌توانست در سیستم عامل ویندوز اجرا شود. اما با معرفی زامارین، این امکان برای برنامه نویسان به وجود آمد تا برای پلتفرم‌های دیگر از جمله اندروید، بتوانند کدنویسی کنند و از برنامه خود خروجی بگیرند.برنامه نویسی اندروید به صورت کراس پلتفرمکرونا (Corona)دقت کنید که این کرونا به کل با ویروس همه گیر شده جهانی متفاوت است! Jکرونا یک کیت توسعه نرم افزار است که می‌تواند برای طراحی و ساخت برنامه های اندروید نیز استفاده شود. برنامه نویسی در این کیت با استفاده از زبان Lua انجام شود. این کیت زبان برنامه نویسی Lua را با اندروید استودیو (محیط رسمی کدنویسی و توسعه برنامه‌های اندرویدی) ترکیب می‌کند تا بتوانید از ویژگی‌های اندروید بومی استفاده کنید.همانطور که متوجه شدید Lua در مقایسه با جاوا کمی محدود است، اما باید توجه داشته باشید که یادگیری آن بسیار ساده‌تر است. همچنین هرچند کرونا برای ایجاد برنامه‌های گرافیکی و بازی‌ها از آن استفاده می‌شود اما به هیچ وجه محدود به این حوزه نیست.بهترین زبان برنامه نویسی اندروید چیست ؟در بخش‌های قبل زبانهای برنامه نویسی مختلفی را برای توسعه اپلیکیشن‌های اندرویدی معرفی کردیم. داشتن ایده‌ای از زبانهای برنامه نویسی برای ساخت اپلیکیشن‌های موبایل نه تنها برای توسعه دهندگان، بلکه برای مشتریانی که می‌خواهند فرایندهای پروژه را بهتر درک کنند و بدانند کدام زبان را برای پروژه های آینده خود بهتر انتخاب کنند، بسیار مفید است.مانند هر حوزه برنامه نویسی دیگری، بهترین زبان برنامه نویسی اندروید را باید با توجه به اهداف خود و ابزارهای موردنیازتان انتخاب کنید. امروزه، زبان های برنامه نویسی زیادی برای انتخاب وجود دارند. میزان پیچیدگی برنامه‌ اندرویدی هدف، میزان زمانی که برای یادگیری و متخصص شدن در یک حوزه دارید، پشتیبانی جوامع آنلاین برای حل مشکلات فنی و اینکه آیا بعدها برنامه شما قرار است برای باقی پلتفرم‌ها قابل اجرا باشد یا خیر همگی عواملی هستند که در هنگام انتخاب بهترین زبان برنامه نویسی اندروید باید به آنها توجه کنید.جمع بندیهیچ کس به آینده روشن توسعه اپلیکیشن‌های موبایل و زبان های برنامه نویسی اندروید شک ندارد؛ روزهایی که کسب و کارها می‌توانستند کاربران موبایل را نادیده بگیرند، گذشته است. به همین دلیل در این مقاله درمورد توسعه برنامه‌های اندروید و انتخاب بهترین زبان برنامه نویسی اندروید صحبت کردیم. اگر می‌خواهید یک اپلیکیشن موبایل بسازید که توجه کاربران را به خود جلب کند، باید با انتخاب بهترین زبان برنامه نویسی اندرویدبراساس معیارهای گفته شده کار را شروع کنید. روی ابزارهای طراحی UX مناسب و رفع نیازهای کاربران تمرکز کنید تا یک برنامه قوی، نوآورانه و مطلوب برای نیازهای کسب وکار خود بسازید.در همین راستا بسیار مهم است که چه مسیری را برای یادگیری برنامه نویسی انتخاب می‌کنید. برای یافتن مسیر مناسب و شروع کار می‌توانید از دوره آموزش برنامه نویسی استفاده کنید. همانطور که در متن اشاره کردیم برای یادگیری فلاتر نیز می‌توانید از آموزش فلاتر و برای یادگیری توسعه اندروید می‌توانید از آموزش برنامه نویسی اندروید کمک بگیرید.</description>
                <category>سون لرن</category>
                <author>سون لرن</author>
                <pubDate>Wed, 09 Nov 2022 12:28:11 +0330</pubDate>
            </item>
                    <item>
                <title>بهترین دوره آموزش جنگو (Django) در ایران</title>
                <link>https://virgool.io/7Learn/%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%AC%D9%86%DA%AF%D9%88-django-%D8%AF%D8%B1-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86-txegtw5w08ht</link>
                <description>بهترین دوره آموزش جنگوافرادی که اسم زبان برنامه نویسی پایتون را شنیده باشند به خوبی می‌دانند که چقدر این زبان کاربردهای متعددی دارد ، از دنیا وب و اسکرپینگ بگیر تا دنیا زیبا اندروید و ... در این مقاله بسیار مختصر و کوتاه می‌خواهیم به معرفی یکی از بهترین دوره های آموزش جنگو در ایران که محبوب ترین فریم ورک پایتون به حساب می‌آید بپردازیم.قبل از هرچیز میخواهیم کمی درباره جنگو صحبت کنیم که چیست و چه کاربردی دارد . پس با ما تا انتهای مقاله همراه باشید.فریم ورک جنگو(Django) چیست؟جنگو یکی از فریم ورک‌های مبتنی بر وب و سطح بالا در پایتون است  که مبتنی بر معماری (Model-View-Template) یا MVT می‌باشد. فریم ورک، مجموعه استانداردها و چارچوب هایی است که به برنامه نویسان در توسعه بهتر کدها کمک می‌کند. جنگو رایگان و منبع باز (Open Source) است، اسناد زیادی دارد و برای برنامه نویسان با تجربه، نقطه امنی در توسعه اپلیکیشن‌های مبتنی بر وب محسوب می‌شود.این فریم ورک در سال 2003 و توسط یک تیم نرم افزاری فعال در حوزه پشتیبانی سایت‌های خبری توسعه یافت. این گروه با  دسته بندی کدهای نوشته شده و استفاده از دیزاین پترن‌های مختلف، زمینه توسعه فریم ورک جنگو و معرفی آن را در سال 2005 فراهم کردند. جنگو تلاش می‌کند ساخت سایت را ساده کند و مشکلات تعامل با پایگاه داده‌ها را کاهش دهد. در این فریم ورک تلاش شده که همه اجزا در ارتباط با هم بوده و قابل استفاده مجدد باشند.مطالعه بیشتر : معرفی 10 تا از بهترین زبان های برنامه نویسی اندرویدجنگو چه کاربردی دارد؟همان طور که گفتیم هدف استفاده از جنگو، ساده سازی فرایند طراحی وب و اپلیکیشن است. دو استراتژی مهم در جنگو قابلیت توسعه سریع و فلسفه دوباره انجامش نده (Do not Repeat Yourself) هستند. توسعه سریع به این معنی است که می‌توان چند بخش از پروژه را به طور همزمان انجام داد و فلسفه DRY به منظور استفاده مجدد از کدها و کاهش حجم کدهای تکراری است.این فریم ورک پیوسته درحال به روزرسانی است و پکیج‌های خود را در اختیار کاربران قرار می‌دهد تا تجربه خوبی در استفاده از جنگو داشته باشند و از تغییرات آن اذیت نشوند. جنگو ساختاری منعطف و البته سنگین دارد و با اینکه در انواع پروژه‌ها قابل استفاده است اما بیشتر مناسب پروژه هایی است که قصد توسعه و گسترش دارند. بنابراین برای پروژه هایی که موقت و کوچک هستند ممکن است استفاده از جنگو بهینه نباشد. بسیاری از اپلیکیشن‌های مطرح جهان مانند اینستاگرام، پینترست، یوتیوب و غیره بر پایه این فریم ورک طراحی شده اند.در ادامه به معرفی بهترین دوره آموزش جنگو می‌پردازیم.بهترین دوره اموزش جنگو چیست؟حال که مقدمه ای از جنگو را گفتیم ، حالا می‌رویم سر پرسش اصلی که بهترین دوره آموزش جنگو در ایران کدام دوره است. برای پاسخ به این سوال باید به 3 مورد اشاره کنیم : مورد اول استاد دوره : استاد دوره آموزش جنگو (دوره متخصص پایتون وب) سون لرن آقای حسین رمضان پور هستند ، ایشون هم اکنون مدیر فنی در شرکت اَپتک هستند و بیش از 5 سال سابقه در زمینه برنامه نویسی پایتون دارند . از دیگر رزومه های ایشون برنامه‌نویس Back-End در شرکت روان ارتباط عصر است که میتوان به عنوان یکی از شاخص ترین فعالیت های ایشون به حساب آورد.مورد دوم نتایج و خروجی های دوره : دوره آموزش جنگو سون لرن یکی از پرفروش ترین دوره های سون لرن در 2 سال اخیر بوده است ، این دوره خروجی های بسیار زیاد و کاملا متناسب با بازار کار ایران و خارج از کشور را داشته و از همین روی افراد زیادی روزانه در این دوره ثبت نام میکنند.پشتیبانی دوره : دوره آموزش جنگو سون لرن توسط 3 پشتیان خبره و کاربلد مدیریت می‌شود ، افرادی که هر یک به نوبه خود رزومه و قدرت بالایی در انتقال مفاهیم دارند ، پشتیبانی این دوره یکساله بوده و شما را در مسیر یادگیری فریم ورک جنگو یاری میکنند.برای شرکت در دوره آموزش جنگو سون لرن کافیست روی لینک قرار داده شده کلیک کنید و در بهترین دوره آموزش جنگو ایران شرکت کنید ، لازم به ذکر است که قبل از شرکت در دوره میتوانید از مشاوران سون لرن به صورت رایگان کمک بگیرید.</description>
                <category>سون لرن</category>
                <author>سون لرن</author>
                <pubDate>Wed, 02 Nov 2022 13:25:27 +0330</pubDate>
            </item>
                    <item>
                <title>زبان برنامه نویسی دارت (Dart) چیست؟ و چه کاربردی دارد؟</title>
                <link>https://virgool.io/7Learn/%D8%B2%D8%A8%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%AF%D8%A7%D8%B1%D8%AA-dart-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D9%87-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%D8%AF%D8%A7%D8%B1%D8%AF-l30q4rplxml0</link>
                <description>گوگل تقریبا در تمام بخش‌های تکنولوژی، حداقل یک محصول ارائه کرده و حرفی برای گفتن دارد. در سال 2011، گوگل وارد حوزه‌ های  برنامه نویسی شد تا در این بازار هم سهمی برای خودش داشته باشد. زبان برنامه نویسی دارت به طور خلاصه راهکار گوگل برای حل مشکلات رایج جاوا اسکریپت است. دارت در گذشته بیشتر توسط خود گوگل به کار گرفته می‌شد و نتوانست تا مدت‌ها بین برنامه نویسان محبوبیت زیادی پیدا کند. اما با معرفی فریم ورک Flutter و قابلیت ساخت اپلیکیشن‌های موبایل با دارت، توسعه‌دهندگان کم کم از آن استقبال کردند. در این مقاله بررسی می‌کنیم که زبان برنامه نویسی دارت چیست و چه کارهایی با آن می‌توان انجام داد؛ با ما همراه باشید.زبان برنامه نویسی دارت چیست؟دلیل اصلی به وجود آمدن زبان دارت، انجام کارهایی بود که با جاوا اسکریپت، انجام دادن آن‌ها بسیار دشوار بود. جاوا اسکریپت را تقریبا در همه جا می‌توان استفاده کرد. جاوا اسکریپت زبانی است که از مدت‌ها قبل در کنار HTML و CSS برای رندر کردن صفحات وب استفاده می‌شد. این زبان، بعدها با معرفی Node.js پای خودش را به برنامه نویسی سمت سرور باز کرد. فیسبوک نیز با معرفی React و React Native نقش مهمی در موفقیت جاوا اسکریپت ایفا کرد و این قدرت را به برنامه نویسان داد که با جاوا اسکریپت، برنامه‌های موبایل را توسعه دهند.جاوا اسکریپت از سال‌ها قبل توسط برنامه نویسان استفاده می‌شده است و هم اکنون نیز به عنوان یک زبان پایدار و آسان شناخته می‌شود. تنوع کتابخانه‌ها و فریمورک‌های جاوا اسکریپت بسیار زیاد است و توسعه‌دهندگان می‌توانند از کدهای آماده و از پیش نوشته شده نیز استفاده کنند.در مقابل، زبان دارت جدیدتر است و برای کسانی که خارج از گوگل قرار دارند تازگی دارد، اما هنوز به آن پختگی و جاافتادگی جاوا اسکریپت نرسیده است. با وجود مستندسازی قوی گوگل، هنوز هم فروم‌های قدرتمندی برای برنامه نویسان دارت وجود ندارد که مشکلاتشان را برطرف کنند. از طرفی، ساختار کدنویسی و شباهتی که دارت به زبان‌های C و جاوا دارد، به توسعه‌دهندگان قدیمی کمک می‌کند تا راحت‌تر با آن ارتباط برقرار کنند.مطالعه بیشتر : معرفی 10 تا از بهترین زبان های برنامه نویسی اندرویدزبان دارت به چند روش اجرا می‌شود؟3 روش کلی برای اجرای کدهای زبان دارت وجود دارد. اولین راه کامپایل کدهای دارت به جاوا اسکریپت است. اما این کار به چه شکلی انجام می‌شود؟ همانطور که گفتیم، یکی از کابردهای دارت در برنامه نویسی تحت وب است. وقتی کدی که به زبان دارت نوشته‌اید در مرورگر کاربر اجرا می‌شود، کامپایلر dart2js، این کدها را تبدیل به جاوا اسکریپت می‌کند و کاربر نتایج را می‌بیند. کامپلایر دارت در اکثر مرورگرهای جدید پشتیبانی می‌شود. حتی گاهی وقت‌ها از کدهای خالص جاوا اسکریپت هم سریع‌تر اجرا می‌شود.یک حالت دیگر، استفاده‌ی مستقل از زبان دارت است. کافی است پکیج SDK این زبان را روی سیستم خود نصب کنید و در محیط خط فرمان، خروجی کدهای خود را ببینید. درون این SDK، ابزارهای متنوعی وجود دارد که با زبان دارت نوشته شده‌اند و مهم‌ترین آن، ماشین مجازی دارت یا Dart VM است. همچنین، کامپایلر dart2js، پکیج منیجر pub و کتابخانه‌های استاندارد و متنوع که به کاربر اجازه می‌دهند یک سیستم کامل مثل وب سرور را بسازد، نیز در این SDK موجود هستند.دارت در کجا استفاده می‌شود؟امروزه زبان‌های چند منظوره محوبیت زیادی دارند. در واقع شما فقط یک زبان برنامه نویسی را یاد می‌گیرید اما می‌توانید در پلتفرم‌ها و حوزه‌های مختلف از آن زبان استفاده کنید. نقطه‌ی عطف دارت زمانی بود که گوگل یک از یک فریمورک توسعه‌ی اپلیکیشن موبایل به نام Flutter رونمایی کرد. با کمک فلاتر می‌توانید برای Android و iOS اپلیکیشن بسازید و پشتیبانی یک شرکت قدرتمند یعنی گوگل را داشته باشید.اگر شما هم به برنامه نویسی اندروید علاقه‌مندید ما پیشنهاد می‌کنیم به صفحات آموزش فلاتر و آموزش برنامه نویسی اندروید با جاوا سر بزنید و اطلاعات لازم درباره این دو دوره آموزشی را کسب کنید.کاربرد دیگر زبان دارت در طراحی صفحات وب است. همانطور که قبلا هم با جاوا اسکریپت همین کار را می‌کردیم. شاید برایتان سوال پیش بیاید که چرا از خیر جاوا اسکریپت قدیمی و ثابت شده بگذریم و سراغ دارت برویم؟ در پاسخ می‌توان گفت که دارت در تلاش است مشکلات جاوا اسکریپت را حل کند. جاوا اسکریپت تا قبل از ES6 نمی‌توانست از شی گرایی پشتیبانی کند و دارت به طور پیش‌فرض این قابلیت را دارد. همینطور چون در جاوا اسکریپت هنگام کار با Ajax یا تکنیک‌های دیگر با مفهوم Prototype سروکار داریم، ممکن است گاهی به مشکل خورده و کار کمی دشوار شود.سرویس Angular Dart یکی از معروف‌ترین سرویس‌های زبان‌های دارت به حساب می‌آید. یک فریم ورک وب قدرتمند که در کارنامه‌ی خود، محصولاتی مثل Google Adwords را دارد. این فریم ورک شبیه به Angular است با این تفاوت که با زبان Dart نوشته شده است.مثال معروف سلام دنیا با زبان برنامه نویسی دارتحال نگاهی به سینتکس این زبان می‌اندازیم و چند کد ساده را اجرا می‌کنیم. اگر زبان C را بشناسید، با دیدن سینتکس دارت ذهنتان به سمت این زبان می‎رود. می‌دانیم که معروف‌ترین مثال برای شروع یک زبان، چاپ سلام دنیا (!hello world) بر روی صفحه نمایش است. پس بیایید به کمک دارت به دنیا سلام کنیم.برای مطالعه مقاله روی لینک زیر کلیک کنید : https://7learn.com/blog/dart-programming-language</description>
                <category>سون لرن</category>
                <author>سون لرن</author>
                <pubDate>Tue, 01 Nov 2022 13:46:56 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش رایگان PhpStorm 2022</title>
                <link>https://virgool.io/7Learn/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-phpstorm-2022-qn5rkpr8pm3x</link>
                <description>آموزش رایگان نرم افزار phpstorm 2022امکانات محیط توسعه یکپارچه PhpStorm به قدری زیاد هستند که برای یادگیری تمامی این قابلیت‌ها باید آموزش ببینیم. بنابراین، آموزش نرم افزار PhpStorm یکی از نیازهای برنامه‌نویسان تازه‌کار و حتی کارکشته است. PhpStorm یک ویرایشگر حرفه‌ای کد PHP است که کار برنامه نویسی را بسیار لذت بخش کرده و سرعت کدنویسی را بالا می‌برد. ما در این مقاله، سعی کرده‌ایم به صورت فشرده، اموزش PhpStorm را به صورتی قابل قبول، در اختیار شما قرار دهیم. اگر به یادگیری نحوه کدنویسی با PhpStorm علاقه دارید و می‌خواهید ترفندها و کلیدهای میانبر Phpstorm را بشناسید، تا انتهای این مقاله با وب سایت آموزش برنامه نویسی سون لرن همراه باشد.نرم افزار PhpStorm چیست؟نرم افزارPhpStorm را میتوان بهترین ide برای php دانست.این نرم افزار ، محیط یکپارچه برنامه نویسی (IDE) برای توسعه‌دهندگان وب و PHP است که توسط شرکت JetBrains طراحی شده است. این IDE از PHP نسخه‌های 5.3 به بالا پشتیبانی می‌کند.نرم افزار JetBrains PhpStorm یک محیط برنامه نویسی مبتکرانه و چند سکویی است، که در چند سال اخیر، به محبوبیت آن افزوده شده است. PhpStortm، محیطی کامل و یک انتخاب مناسب برای کار کردن با Drupal، Symfony، Laravel، WordPress، Zend Framwork، Joomla، CakePHP و سایر فریم‌ورک‌های PHP است.شرکت JetBrains، تمام ویژگی‌های WebStorm و نیز پشتیبانی کامل از PHP و پایگاه داده را در PhpStorm گنجانده است. WebStorm، یک IDE دیگر این شرکت است که برای توسعه‌دهندگان جاوا اسکریپت طراحی شده است. PhpStorm با تهیه‌ی نمودارهای قابل ویرایش کلاس UML برای کد PHP، توسعه‌دهندگان را در درک کد و تغییر آسان آن یاری می‌کند.اگر شما هم به مباحث برنامه نویسی php علاقه مندید پیشنهاد میکنیم در دوره آموزش php سون لرن شرکت نمایید و از امکانات این دوره یعنی پشتیبانی حرفه ای سالانه بهره‌مند شوید.نرم افزار PhpStorm از چه زبان‌هایی پشتیبانی می‌کند؟این نرم افزار از زبان‌های PHP، HTML5، CSS، JavaScript و XML به طور کامل پشتیبانی می‌کند. این زبان‌ها با کمک افزونه‌هایی که به همراه IDE نصب می‌شوند، پشتیبانی می‌شوند و به صورت پیش‌فرض فعال هستند. پشتیبانی از سایر زبان‌ها برنامه نویسی را می‌توانید از طریق نصب پلاگین یا افزونه، اضافه کنید. برای نصب پلاگین مسیر زیر را دنبال کنید:File &gt; Settings &gt; Plugins &gt; Marketplaceویژگی‌های PhpStorm – نرم افزار ویرایشگر حرفه‌ای phpاین برنامه را میتوان به عنوان یک IDE، یک محیط حرفه‌ای برنامه نویسی، در اختیار توسعه‌دهندگان وب و PHP قرار می‌دهد. این محیط برنامه نویسی، دارای ویژگی‌های کاربردی بسیاری است که در ادامه چند ویژگی مهم آن را معرفی می‌کنیم.محیط کامل برای توسعه: بیشتر توسعه‌دهندگان PHP علاوه بر PHP با HTML، CSS، JavaScript و سایر زبان‌های برنامه نویسی نیز کار می‌کنند. PhpStorm، با خدماتی نظیر تکمیل خودکار کد و برجسته‌سازی سینتکس، کار با همه‌ی زبان‌های برنامه نویسی را برای توسعه‌دهندگان PHP آسان می‌کند.پشتیبانی از چندین فریم‌ورک پی‌اچ‌پی: اگر شما با فریم‌ورک‌های PHP کار می‌کنید، PhpStorm یک گزینه‌ی مناسب و انتخابی عالی برای شما است. این IDE به طور مؤثر با بسیاری فریم‌ورک‌ها همانند Laravel، CakePHP، Symfony2 و Yii و… سازگاری کامل دارد.یکپارچه‌سازی عالی کنترل نسخه: PhpStorm به طور کامل از طیف وسیعی از سیستم‌ کنترل نسخه (version control system) پشتیبانی می‌کند. از مهم‌ترین سیستم‌های کنترل نسخه‌، می‌توان از Git و GitHub نام برد که برنامه‌نویسان می‌توانند از داخل این IDE دستورات آن‌ها را اجرا کنند.علاوه بر این، PhpStorm به خوبی از FTP پشتیبانی می‌کند و می‌تواند ظرف چند ثانیه کدهای نوشته شده را در یک سرور راه دور بارگذاری کند.پشتیبانی از پایگاه داده: PhpStorm، ابزارها و ویژگی‌های کمکی زیادی برای کار کردن با SQL و پایگاه داده در پروژه‌های شما را فراهم می‌کند. این IDE به پایگاه داده متصل می‌شود، داده‌های جداول را ویرایش، کوئری‌ها را اجرا و حتی الگوها را با نمودارهای UML تجزیه و تحلیل می‌کند.اشکال‌زدایی و تست کد: اشکال‌زدایی بدون پیکربندی، کار دیباگ کردن برنامه‌ها را آسان می‌کند. با Xdebug و Zend Debugger می‌توانید برنامه‌ها را رخ‌نمانگاری (Profiling) کنید و اطلاعات جمع شده را در PhpStorm بررسی کنید. PHPUnit نیز از توسعه و اجرای تست‌های واحد (unit tests) پشتیبانی می‌کند.حداقل سیستم مورد نیاز برای نصب PhpStormبرنامه PhpStorm یک نرم افزار کاربردی، با ابزارها و امکانات مختلفی است که برای استفاده‌ی بهینه از آن، نیاز به حداقل مشخصات سیستمی دارد. در زیر می‌توانید حداقل سیستم مورد نیاز برای نصب PhpStorm را مشاهده کنید:2 گیگابایت رم4 گیگابایت فضای خالیسیستم‌عامل 64 بیتی:ویندوز 8 به بالامک‌اواس 10.13 به بالالینوکس هر توزیعی که از KDE، Gnome و Unity DE پشتیبانی می‌کند.رزولوشن تصویر 768 * 1024آموزش راه‌اندازی و نصب PhpStormبرنامه PhpStorm یک محصول پولی و غیر رایگان است که JetBrains امکان استفاده‌ی 30 روزه رایگان آن را فراهم آورده است. برای دانلود و نصب این IDE کافی است به سایت JetBrains مراجعه کرده و PhpStorm مربوط به سیستم‌عامل خود را دانلود کنید.در ادامه، مراحل نصب و راه‌اندازی PhpStorm را برای شما توضیح می‌دهیم.برای مطالعه ادامه مقاله روی لینک زیر کلیک کنید :https://7learn.com/blog/phpstorm-tutorial</description>
                <category>سون لرن</category>
                <author>سون لرن</author>
                <pubDate>Tue, 11 Oct 2022 12:56:05 +0330</pubDate>
            </item>
                    <item>
                <title>برنامه نویسی Node.js چیست و چه کاربردی دارد ؟</title>
                <link>https://virgool.io/7Learn/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-nodejs-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D9%87-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%D8%AF%D8%A7%D8%B1%D8%AF-qqdrj3xrqxvz</link>
                <description>امروزه جاوا اسکریپت در جاهای مختلف حضور دارد و کارهای متنوعی با آن انجام می‌شود. هرچند جاوا اسکریپت را کنار HTML و CSS هسته وب می‌دانند اما از این زبان سطح بالا و مفسری به جزء وب در ساخت اپلیکیشن‌های موبایل، بازی‌های رایانه ای، برنامه‌های دسکتاپ و غیره نیز استفاده می‌شود. از مدت‌ها قبل یکی از آرزوهای برنامه نویسان جاوا اسکریپت این بود که بتوانند کدهای خود را به جز مرورگر کاربر در سمت سرور هم اجرا کنند. یعنی به کمک جاوا اسکریپت بتوانند ظاهر و منطق سرویس تحت وب خود را در کنار هم ایجاد کنند و دیگر برای برنامه نویسی سمت سرور سراغ زبان هایی مثل PHP یا Ruby نروند. یکی از محیط‌های هایی که به برنامه نویسان اجازه می‌دهد کدهای جاوا اسکریپت خود را سمت سرور اجرا کنند، Node.js می‌باشد. در این آموزش بررسی می‌کنیم که Node.js چیست و چه کاربردهایی دارد.نود جی اس (Node.js) چیست ؟نود جی اس یک پلتفرم سمت سرور مبتنی بر موتور جاوا اسکریپت گوگل کروم (V8 Engine) می‌باشد. Node.JS تمام چیزهایی که برای اجرای یک برنامه نوشته شده به زبان جاوا اسکریپت را نیاز دارید برایتان فراهم می‌کند. آقای Ryan Dahl در سال 2009 Node.JS را معرفی کرد تا نشان دهد جاوا اسکریپت قدرتمند‌تر از این حرف‌ها است که فقط برای پویاسازی صفحات وب در فرانت اند استفاده شود. در واقع به کمک Node.js زبان برنامه نویسی جاوا اسکریپ به جای اجرا درمرورگر در محیط سرور اجرا می‌شود. Node.js به شما اجازه می‌دهد به آسانی و سادگی برنامه‌های تحت شبکه مقیاس پذیر و بزرگ بنویسید.جاوا اسکریپت از سال 1995 در حال پیشرفت بود. هر چند این زبان تا مدت‌ها قبل حضور موفقی در سمت سرور نداشت و و تلاش هایی که توسط برنامه نویسان انجام شده بود، به مرور زمان از ذهن توسعه دهندگان دیگر محو می‌شد. تا اینکه با معرفی نود جی اس در سال 2009 مهره برگشت و به مرور زمان جاوا اسکریپت بیشتر و بیشتر در سمت سرور مورد استفاده قرار گرفت.اگر شما هم به برنامه نویسی Node.js علاقه مندید و قصد دارید این مسیر را حرفه ای ادامه دهید پیشنهاد می‌کنیم در دوره آموزش node js سون لرن شرکت نمایید و از پشتیبانی یکساله دوره بهره‌مند شوید.نود جی اس فریم ورک نیستقبل از اینکه بدانیم Node.js چیست بهتر است درباره این صحبت کنیم که نود جی اس چه چیزهایی نیست. نود جی اس یک فریم ورک جاوا اسکریپت نیست. فریم ورک به مجموعه ای از کتابخانه‌ها و استانداردها گفته می‌شود که کار با یک زبان خاص را آسان‌تر کرده و مانع انجام کارهای تکراری و یکنواخت توسط برنامه نویس می‌شوند.فریم ورک‌های زیادی با زبان جاوا اسکریپت طراحی شده اند و در بخش‌های مختلف مورد استفاده قرار می‌گیرند. برخی از فریم ورک‌های معروف جاوا اسکریپت عبارتند از: Angular، React، Meteor.js، Vue.js و غیره. استفاده از این فریم ورک‌ها تا حد زیادی کارایی و امنیت محصول ما را بالا برده و درمقابل هزینه‌ها را هم کاهش می‌دهد.پس دقت داشته باشید که Node.js فریم ورک نبوده و تعریف دقیق آن “محیط اجرایی” یا “run-time environment” می‌باشد. در واقع نود جی اس کمی فراتر از فریم ورک رفته و دامنه کاربردهای آن کمی بیشتر از فریم ورک می‌باشد. Node.js محدود به برنامه‌های تحت وب نبوده و می‌توان از آن در ساخت میکروکنترلر ها، Rest APIها، بسته‌های سیستم عامل، رباتیک و حتی در مراحل پیشرفته در ساخت برنامه برای هواپیمای بدون سرنشین نیز استفاده کرد.چرا باید از Node.js استفاده کنیم؟نود جی اس بازدهی و انعطاف بالایی داردنود در کنار V8 engine از زبان برنامه نویسی C++ استفاده کرده و سرعت بسیار بالایی دارد. هم V8 هم Node.js به صورت مرتب آپدیت شده و با قابلیت‌های جدید جاوا اسکریپت هماهنگ می‌شوند، همینطور بازدهی آنها بالاتر رفته و مشکلات امنیتی آنها نیز برطرف می‌شود. همینطور به دلیل استفاده از زبان جاوا اسکریپت انتقال فایل JSON (متداول‌ترین قالب انتقال داده در وب) به طور پیش فرض بسیار سریع خواهد بود.نود جی اس کراس پلتفرم استپلتفرم هایی مثل Electron.js یا NW.js به شما اجازه می‌دهند با نود جی اس برنامه‌های دسکتاپ بسازید. به این ترتیب می‌توانید برخی از کدهای برنامه تحت وب خود را در محیط ویندوز، لینوکس و مک اواس استفاده کنید. در واقع به کمک نود جی اس، همان تیمی که روی نسخه وب محصول کار می‌کنند، بدون نیاز به دانش تخصصی در زبان‌های C# یا Objective C یا سایر زبان هایی که برای ساخت برنامه‌های Native به کار می‌روند، می‌توانند یک برنامه دسکتاپ بسازند.نود جی اس می‌تواند با میکروسرویس‌ها ترکیب شوداکثر پروژه‌های بزرگ در اول کار ساده بودند و در یک نسخه MVP معرفی شده بودند. اما به مرور زمان این سرویس‌ها بزرگتر شده و نیاز به اضافه کردن قابلیت‌های جدید در آنها حس می‌شد. گاهی وقت‌ها بزرگ شدن سرویس و اضافه کردن امکانات جدید به محصول می‌تواند برای تیم توسعه دهندگان تبدیل به یک کابوس شود. اما یک راه حل مناسب برای حل این مشکل استفاده از میکروسرویس است. میکروسرویس کمک می‌کند برنامه خود را بخش‌های کوچک تقسیم کنید که هر بخش می‌تواند توسط تیم متفاوت و حتی زبانی متفاوت نوشته شود. نود جی اس در کار با میکروسرویس‌ها عملکرد بسیار خوبی دارد.نود جی اس چه کاربردهایی دارد؟کاربرد های نود جی اسساخت برنامه‌های تک صفحه ای (SPA)برنامه SPA مخفف single-page app بوده و برنامه هایی گفته می‌شود که تمام بخش‌های آن در یک صفحه پیاده سازی می‌شود. از SPA بیشتر برای ساخت شبکه‌های اجتماعی، سرویس‌های ایمیل، سایت‌های اشتراک ویدئو و غیره استفاده می‌شود. یکی از معروف‌ترین سایت هایی که به این شکل ساخته شده است، سرویس اشتراک ویدئو یوتیوب است. از آنجایی که نود جی اس از برنامه نویسی نامتقارن یا asynchronous به خوبی پشتیبانی می‌کند، برای ساخت برنامه‌های SPA انتخاب خوبی به حساب می‌آید.ساخت برنامه‌های RTAبرنامه RTA مخفف real-time app می‌باشد. یعنی برنامه هایی که به صورت لحظه ای دارای تغییرات مختلفی هستند. به احتمال زیاد قبلا با این نوع برنامه‌ها کار کرده اید. برای مثال Google Sheets، Spreadsheets یا Slack از این دست برنامه‌ها هستند. در کل برنامه‌های تعاملی، ابزارهای مدیریت پروژه، کنفرانس‌های ویدئویی و صوتی و سایر برنامه‌های RTA عملیات‌های سنگین ورودی/خروجی انجام می‌دهند.ساخت چت رومیکی از معروف‌ترین نمونه‌های برنامه RTA چت روم‌ها و پیام رسان‌ها هستند. احتمالا روزانه از پیام رسان و چت روم‌های مختلف استفاده می‌کنید و دوست دارید یک چت روم برای خودتان بسازید. در واقع نود جی اس یک انتخاب عالی برای این کار است. اگر قصد ساخت چنین محصولی را دارید، باید به موارد مختلفی مثل تحمل ترافیک زیاد کاربران، سبک بودن محصول، سرعت بالای ارسال پیام‌ها وغیره توجه داشته باشید. تمام این موارد به کمک نود جی اس و یک فریم ورک جاوا اسکریپت مثل Express.js در سمت سرور قابل پیاده سازی است.ادامه مقاله را در لینک منبع آن مطالعه کنید : https://7learn.com/blog/what-is-nodejs</description>
                <category>سون لرن</category>
                <author>سون لرن</author>
                <pubDate>Thu, 06 Oct 2022 13:05:31 +0330</pubDate>
            </item>
                    <item>
                <title>فریم ورک فلاتر (flutter) چیست و چه کاربردهایی دارد؟</title>
                <link>https://virgool.io/7Learn/%D9%81%D8%B1%DB%8C%D9%85-%D9%88%D8%B1%DA%A9-%D9%81%D9%84%D8%A7%D8%AA%D8%B1-flutter-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%DA%86%D9%87-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%D9%87%D8%A7%DB%8C%DB%8C-%D8%AF%D8%A7%D8%B1%D8%AF-pevclsiqamcx</link>
                <description>فریم ورک فلاتر چیستفلاتر یک فریم ورک متن باز برای ساخت اپلیکیشن‌های موبایل است. این کتابخانه توسط شرکت گوگل در سال 2017 معرفی شد و در مقایسه با React یا سایر فریم ورک‌های ساخت اپلیکیشن مبتنی بر موبایل عمر زیادی ندارد. فلاتر با زبان برنامه نویسی دارت نوشته شده است، یک زبان چندمنظوره و شی گراء که هنوز آنطور که باید و شاید بر سر زبان‌ها نیفتاده و محبوبیت زیادی ندارد. با یادگیری زبان دارت و فریم ورک فلاتر می‌توانید برای اندروید و iOS اپلیکیشن بسازید. جالب است بدانید علی بابا، یکی از بزرگترین شرکت‌های چینی در دنیا به فلاتر اعتماد کرده و اپلیکیشن خود را با این فریم ورک ساخته است. در این مطلب بررسی خواهیم کرد که فریم ورک Flutter چیست و چه کاربردهایی دارد.می‌دانیم که زبان اصلی برنامه نویسی اندروید، جاوا است و برنامه نویسان iOS هم از Swift برای توسعه اپلیکیشن‌های موبایلی استفاده می‌کنند. جاوا پیچیدگی‌های خاص خودش را دارد و شاید کار با آن به اندازه زبان‌هایی مثل پایتون یا جاوا اسکریپت راحت نباشد. همین مساله باعث شده که سایر زبان‌ها هم برای توسعه برنامه‌های موبایلی به کار گرفته شوند. مثلا React یک راه حل نسبتا آسان برای ساخت اپلیکیشن‌های موبایل مبتنی بر جاوا اسکریپت است. یا فلاتر که یک پیاده‌سازی خوب از زبان دارت است.به نظر می‌رسد گوگل می‌خواهد سرویس‌های مختلف خود را به هم مرتبط کند و عطش این شرکت برای برای تصاحب بازارهای مختلف تمامی ندارد. گوگل بعد از اندروید و موفقیت بی سابقه آن روی یک پلتفرم جدید به نام Fuchsia کار می‌کند. یک سیستم عامل جدید که برخلاف اندروید مبتنی بر هسته لینوکس نیست و از یک ریزهسته جدید به نام Zircon استفاده می‌کند. همینطور زبان دارت و یک فریم ورک به نام Flutter که قرار بود پلی برای ورود برنامه‌های موبایل به سیستم عامل جدید گوگل یعنی Fuchsia باشد را معرفی کرد.اگر شما هم به برنامه نویسی اپلیکیشن های موبایل علاقه مند هستید پیشنهاد ما شرکت در دوره آموزش فلاتر سون لرن است چرا که این دوره توسط یکی از بهترین اساتید ایران تهیه شده است و از طرفی پشتیبانی یکساله سون لرن را دارد.مزایای استفاده از فریم ورک فلاتردر این قسمت، صرف نظر از اینکه رقبای فلاتر چه امکاناتی دارند و بدون مقایسه کردن این فریم ورک با آنها، به بررسی مزایای فلاتر پرداخته‌ایم.بازدهی مناسب: با توجه به اینکه فلاتر Cross Platform است، می‌توانید با آن هم برای اندروید هم برای iOS اپلیکیشن بسازید. به این شکل هم در زمان و هم در هزینه‌های خود صرفه جویی خواهید کرد.کدهای دارت بدون نیاز به مدل OEM به کدهای Native تبدیل می‌شوند. چون داخل فلاتر این مدل قرار دارد.توسعه سریع و آسان: یکی از جذاب‌ترین قابلیت‌های فلاتر Hot Reload نام دارد. فرض کنید در محیط اندروید استدیو در حال ساخت اپلیکیشن هستید. برای تست برنامه خود آن را در یک شبیه‌ساز اجرا می‌کنید. بعد احساس می‌کنید که یک بخشی از کد نیاز به تغییر دارد، تغییر خود را اعمال کرده و می‌بینید که بدون نیاز به ریستارت کردن شبیه ساز تغییرات اعمال شده قابل مشاهده هستند. این تکنیک در تغییر UI، اضافه کردن قابلیت جدید و دیباگ کردن پروژه بسیار به برنامه نویس کمک می‌کند.یادگیری فلاتر و کار با آن آسان است. اگر قبلا با زبان‌های شی گرا (OOP) کار کرده باشید، شروع کار خیلی آسان خواهد شد. حتی اگر هیچ شناختی روی زبان‌های برنامه نویسی ندارید، زبان دارت به خوبی توسط گوگل مستندسازی شده و یک زبان سطح بالا به حساب می‌آید. می‌توانید با دارت کار کرده و بعد وارد دنیای فلاتر شوید.سازگاری: از آنجایی که ابزارهای مورد استفاده ما (Widgets) بخشی از برنامه ما حساب می‌شوند نه پلتفرم یا سیستم عاملی که روی آن اجرا می‌شوند، در فلاتر وابستگی زیادی به نوع سیستم عامل یا نسخه آن نداریم. این یعنی پروژه ما احتمالا روی نسخه‌های مختلف یک سیستم عامل به درستی اجرا می‌شود و کار ما در تست محصول سبک‌تر است.هم فریم ورک فلاتر هم زبان برنامه نویسی دارت، اوپن سورس بوده و همچنین به طور رایگان ارائه می‌شوند. همینطور مستندسازی قدرتمند یادگیری آنها را آسان‌تر می‌کند. وجود انجمن‌های متنوع در ما این اعتماد را به وجود می‌آورد که برنامه نویسان زیادی هنگام وجود مشکل می‌توانند به ما کمک کنند.مطالعه بیشتر : معرفی 10 تا از بهترین زبان های برنامه نویسی اندرویدمحبوبیت فلاتر چقدر است؟مزایا و معایب فریم ورک فلاترفقط یک ماه بعد از انتشار اولین نسخه پایدار از Flutter، تعداد 50 هزار ستاره برای این پروژه جدید گوگل در گیت هاب ثبت شد. همینطور در یک نظرسنجی آنلاین که توسط تیم تحقیقاتی فلاتر انجام شد، 93% شرکت‌کنندگان اعلام کردند که از این فریم ورک “بسیار راضی” و “راضی” هستند. این عدد نسبت به 92% که در جولای 2018 ثبت شده بود 1% بالاتر است.بازار اصلی محصولات اندرویدی Google play store می‌باشد و اپل هم از مارکت اختصاصی خود به نام App Store استفاده می‌کند. در طول مقاله گفتیم که فلاتر خیلی محبوب نیست و حالا با آمار و ارقام آن را ثابت می‌کنیم. تا امروز 5% برنامه‌های منتشر شده در گوگل پلی و اپ استور با فلاتر ساخته شده‌اند. فلاتر هم برای iOS استفاده می‌شود هم برای Android و 81% برنامه نویسان پروژه‌های خود را برای هر دو پلتفرم منتشر کرده‌اند. اما در یک اقدام عجیب نزدیک به 12% برنامه‌ها فقط برای اندروید و 7% آنها فقط برای iOS ساخته شدند. به نظر می‌رسد این گروه از برنامه نویسان بیشتر در حال تست فلاتر بودند.جمع بندیدر این مطلب بررسی کردیم که فلاتر چیست و چه کاربردی دارد. Flutter یک فریم ورک یا Moblie SDK متن باز و رایگان بوده که توسط شرکت گوگل در سال 2017 معرفی و عرضه شده است. فلاتر از زبان برنامه نویسی دارت قدرت گرفته و به برنامه نویسان کمک می‌کند با یک زبان واحد (دارت) برای اندروید و آی اواس اپلیکیشن بسازند. همانطور که آینده زبان دارت در هاله‌ای از ابهام قرار دارد، مشخص نیست فلاتر هم در آینده به چه سرنوشتی دچار شود. اما هنوز هم به خاطر مزایایی که دارد می‌تواند یک انتخاب ایده‌آل برای ساخت برنامه‌های ساده و متوسط موبایلی باشد. اگر با فلاتر کار کرده‌اید خوشحال می‌شویم تجربیات خود را با ما در سون لرن به اشتراک بگذارید.منبع مقاله : https://7learn.com/blog/what-is-flutter</description>
                <category>سون لرن</category>
                <author>سون لرن</author>
                <pubDate>Tue, 04 Oct 2022 11:17:54 +0330</pubDate>
            </item>
            </channel>
</rss>