<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های مهدی احمدی</title>
        <link>https://virgool.io/feed/@m_24422171</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-04-15 05:19:46</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/739568/avatar/EZKeJq.jpg?height=120&amp;width=120</url>
            <title>مهدی احمدی</title>
            <link>https://virgool.io/@m_24422171</link>
        </image>

                    <item>
                <title>برنامه نویسی و کارمندی</title>
                <link>https://virgool.io/@m_24422171/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%88-%DA%A9%D8%A7%D8%B1%D9%85%D9%86%D8%AF%DB%8C-dbkkur5sjcro</link>
                <description> شما می‌توانید همزمان با شغل اداری‌تان در برنامه‌نویسی موفق شوید، البته به شرطی که از زمانتان به درستی استفاده کنید، برنامه‌ریزی منظم داشته باشید و انگیزه‌ی کافی برای پیشرفت داشته باشید. همچنین مهم است که از فشار اضافی دوری کنید و فرآیند یادگیری را به شکلی تدریجی و لذت‌بخش دنبال کنید.</description>
                <category>مهدی احمدی</category>
                <author>مهدی احمدی</author>
                <pubDate>Thu, 26 Dec 2024 01:06:46 +0330</pubDate>
            </item>
                    <item>
                <title>چطوری کمبود اعتماد به نفس در برنامه‌نویسی  رو جبران کنیم ...؟</title>
                <link>https://virgool.io/@m_24422171/%DA%86%D8%B7%D9%88%D8%B1%DB%8C-%DA%A9%D9%85%D8%A8%D9%88%D8%AF-%D8%A7%D8%B9%D8%AA%D9%85%D8%A7%D8%AF-%D8%A8%D9%87-%D9%86%D9%81%D8%B3-%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-%D8%B1%D9%88-%D8%AC%D8%A8%D8%B1%D8%A7%D9%86-%DA%A9%D9%86%DB%8C%D9%85-jn1ymlaa0wbd</link>
                <description>اگر در زمینه برنامه‌نویسی نرم‌افزار اعتماد به نفس ندارید، نگران نباشید؛  این مشکل برای بسیاری از افرادی که وارد این حوزه می‌شوند، رایج است. در  اینجا به برخی دلایل و راهکارهایی برای افزایش اعتماد به نفس شما در  برنامه‌نویسی اشاره می‌کنم:دلایل کمبود اعتماد به نفس در برنامه‌نویسیعدم تجربه کافی:هر کس که تازه به دنیای برنامه‌نویسی وارد می‌شود، ممکن است احساس عدم کفایت کند، به خصوص اگر تازه کار باشد.تجربیات منفی:تجربیات قبلی در پروژه‌های شکست‌خورده یا مشکلات غیرمنتظره می‌تواند به کاهش اعتماد به نفس منجر شود.مقایسه با دیگران:مقایسه خود با برنامه‌نویسان مجرب و حرفه‌ای می‌تواند احساس ناکامی را ایجاد کند.ترس از اشتباه کردن:ترس از خطا و عواقب آن باعث می‌شود که افراد hesitant باشند و در نتیجه اعتماد به نفس کمتری داشته باشند.راهکارهای افزایش اعتماد به نفس در برنامه‌نویسییادگیری مداوم:به طور مداوم مهارت‌های جدید یاد بگیرید. از دوره‌های آنلاین، کتاب‌ها و ویدئوهای آموزشی استفاده کنید تا دانش خود را گسترش دهید.انجام پروژه‌های کوچک:با شروع از پروژه‌های کوچک و ساده، تجربه کسب کنید. هر موفقیتی، هرچند کوچک، اعتماد به نفس شما را افزایش می‌دهد.پاسخ به سوالات در انجمن‌ها:در انجمن‌های برنامه‌نویسی مانند Stack Overflow شرکت کنید. با پاسخ  دادن به سوالات دیگران، دانش خود را تقویت کرده و احساس توانمندی کنید.توسعه پروژه‌های شخصی:روی پروژه‌های شخصی خود کار کنید. این پروژه‌ها می‌توانند بر اساس علایق شما باشند و کمکی به رشد مهارت‌های شما کنند.یادداشت‌برداری از پیشرفت‌ها:پیشرفت‌های خود را یادداشت کنید و موفقیت‌های کوچک را جشن بگیرید. این کار به شما احساس پیشرفت و اعتماد به نفس می‌دهد.کتاب و منابع مطالعه:کتاب‌هایی درباره روانشناسی اعتماد به نفس و موفقیت در برنامه‌نویسی  بخوانید. این منابع می‌توانند به شما انگیزه و راهنمایی‌های مفیدی بدهند.دوستان و شبکه‌های حرفه‌ای:با دیگر برنامه‌نویسان ارتباط برقرار کنید. از تجربیات آن‌ها بیاموزید و به مشاوره و راهنمایی‌های آن‌ها گوش دهید.خطا کردن را طبیعی بدانید:به یاد داشته باشید که خطا بخش طبیعی فرآیند یادگیری است. هر اشتباهی فرصتی برای یادگیری است.نتیجه‌گیریافزایش اعتماد به نفس در برنامه‌نویسی فرآیندی زمان‌بر است،  اما با صبر و ممارست می‌توانید به بهبود آن دست یابید. به یاد داشته باشید  که هر متخصصی روزی تازه‌کار بوده و شما نیز می‌توانید با یادگیری و تجربه  به آنچه می‌خواهید برسید.</description>
                <category>مهدی احمدی</category>
                <author>مهدی احمدی</author>
                <pubDate>Sun, 11 Aug 2024 08:20:50 +0330</pubDate>
            </item>
                    <item>
                <title>Event Loop چیست؟</title>
                <link>https://virgool.io/@m_24422171/event-loop-%DA%86%DB%8C%D8%B3%D8%AA-hk26gf6ze76r</link>
                <description>Event Loop جاوا اسکریپت اولین فرا خوانی را در صف callback می گیرد و به محض خالی شدن آن را به Call Stack اضافه می کند.کد جاوا اسکریپت به صورت اجرا تا تکمیل اجرا میشود، به این معنی که اگر Call Stack در حال اجرای برخی از کدها باشد، Event Loop مسدود میشود و تا زمانی که استک دوباره خالی نشود، هیچ فرا خوانی از صف اضافه نخواهد شد.به همین دلیل مهم است که Call Stack را با اجرای وظایف محاسباتی مسدود نکنید.اگر کد زیادی را اجرا کنید یا صف callback خود را مسدود کنید، وب سایت شما پاسخگو نخواهد بود زیرا نمی تواند کد جاوا اسکریپت جدیدی را اجرا کند.کنترلکنندههای رویداد، مانند onscroll، وقتی فعال میشوند، وظایف بیشتری را به صف callback اضافه میکنند. به همین دلیل است که شما باید این callback ها را حذف کنید، به این معنی که آنها فقط در هر x ms اجرا می شوند.خودتان ببینیدکد زیر را به کنسول مرورگر خود اضافه کنید. همانطور که پیمایش می کنید، می توانید مشاهده کنید که چند وقت یکبار اسکرول کردن callback چاپ scroll صورت می گیرد. = () =&gt; console.log(&#039;scroll&#039;);setTimeout &#40;fn, 0&#41;اگر بخواهیم برخی کارها را بدون مسدود کردن thread اصلی برای مدت طولانی اجرا کنیم، میتوانیم از رفتاری که در بالا توضیح داده شد به نفع خود استفاده کنیم.قرار دادن کد ناهمزمان خود در یک callback و تنظیم setTimeout روی 0ms به مرورگر این امکان را میدهد که کارهایی مانند بهروزرسانی DOM را قبل از ادامه اجرای کال بک انجام دهد.صف جاب و کد ناهمزمان (asynchronous) چیست؟در نمای کلی که در ابتدا نشان دادم، یک ویژگی اضافی را که دانستن آن مهم است کنار گذاشتم.علاوه بر صف کال بک، صف دیگری وجود دارد که به طور انحصاری پرومیس ها را میپذیرد، صف جاب (job queue) است.پرومیس ها در جاوااسکریپت: یک جمع بندی سریعEcmaScript 2015 (یا ES6) اولین بار پرومیس ها را معرفی کرد، حتی اگر قبلاً در Babel در دسترس بوده است. اگر هنوز تفاوت بین اکما اسکریپت را با جاوااسکریپت را درک نکرده اید این مقاله می تواند در درک آن به شما کمک کند.Promise ها روش دیگری برای مدیریت کدهای ناهمزمان به غیر از استفاده از callbacks است. آنها به شما این امکان را می دهند که به راحتی توابع ناهمزمان را بدون اینکه به چیزی که به آن جهنم کال بک ها یا هرم عذاب گفته می شود ختم شوید.setTimeout&#40;(&#41; =&gt; {
  console.log(&#039;Print this and wait&#039;);
  setTimeout&#40;(&#41; =&gt; {
    console.log(&#039;Do something else and wait&#039;);
    setTimeout&#40;(&#41; =&gt; {
      // ...
    }, 100);
  }, 100);
}, 100)با پرومیسها، این کد میتواند بسیار خواناتر شود:// A promise wrapper for setTimeout
const timeout = (time) =&gt; new Promise(resolve =&gt; setTimeout&#40;resolve, time&#41;);
timeout(1000)
  .then(() =&gt; {
    console.log(&#039;Hi after 1 second&#039;);
    return timeout(1000);
  })
  .then(() =&gt; {
    console.log(&#039;Hi after 2 seconds&#039;);
  });این کد با دستور async/wait خواناتر به نظر می رسد:const logDelayedMessages = async () =&gt; {
  await timeout(1000);
  console.log(&#039;Hi after 1 second&#039;);
  await timeout(1000);
  console.log(&#039;Hi after 2 seconds&#039;);
};

logDelayedMessages();این خلاصهای سریع از نحوه عملکرد پرومیسها بود، اما در این مقاله، عمیقتر به این موضوع نمیپردازم. در صورتی که می خواهید در مورد آنها بیشتر بدانید، مقاله پرومیس ها در جاوااسکریپت را بررسی کنید.پرومیس ها در کجا جای می گیرند؟چرا من اینجا از پرومیس ها صحبت می کنم؟ با در نظر گرفتن تصویر بزرگتر، پرومیسها کمی متفاوت از کال بک ها رفتار میکنند، زیرا آنها صف خاص خود را دارند.صف جاب که به صف پرومیس نیز معروف است، مانند صف های سریع در یک شهربازی، نسبت به صف کال بک ها اولویت دارد. Event Loop قبل از پردازش صف کال بک ها را از صف پرومیس می گیرد.بیایید به یک مثال نگاه کنیم:console.log(&#039;a&#039;);
setTimeout&#40;(&#41; =&gt; console.log(&#039;b&#039;), 0);
new Promise((resolve, reject) =&gt; {
  resolve();
})
.then(() =&gt; {
  console.log(&#039;c&#039;);
});
console.log(&#039;d&#039;);با در نظر گرفتن دانش شما در مورد نحوه عملکرد صف های کال بک، ممکن است فکر کنید که خروجی a d b c خواهد بود.اما از آنجایی که صف پرومیس نسبت به صف کال بک ها اولویت دارد، c قبل از b چاپ می شود، حتی اگر هر دو ناهمزمان باشند:a
d
c
bنتیجهامیدوارم اکنون متوجه شده باشید که در پشت صحنه کد جاوا اسکریپت چه اتفاقی می افتد. با پرومیس ها و event loop ها  و کال استک ها آشنا شدیم و نسبت به جاوا اسکریپت به درک عمیق تری دست یافتیم. همچنین برای آشنایی با نحوه دیباگ کردن در جاوااسکریپت این مقاله را بررسی کنید.</description>
                <category>مهدی احمدی</category>
                <author>مهدی احمدی</author>
                <pubDate>Sat, 08 Jun 2024 22:24:30 +0330</pubDate>
            </item>
                    <item>
                <title>پروتوتایپ در جاوا‌ اسکریپت</title>
                <link>https://virgool.io/@m_24422171/%D9%BE%D8%B1%D9%88%D8%AA%D9%88%D8%AA%D8%A7%DB%8C%D9%BE-%D8%AF%D8%B1-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-mh6vepexf0wh</link>
                <description>اساس جاوااسکریپت رو آبجکتها و پروتوتایپها تشکیل میدن و درک پروتوتایپها کمک بزرگی به درک نحوه کارایی جاوااسکریپت میکنه( منبع متن سایت https://ditty.ir/courses/javascript/prototypes/nYLA5)سلام دوستان. پروتوتایپ (Prototype) یکی از مهمترین مفهومها توی جاوااسکریت هست و اگه اون رو خوب و کامل درک کنیم، یک قدم بزرگ توی فهم این زبان جذاب برداشتیم. حتماً شنیدیم که جاوااسکریپت ویژگیها و رفتارهایی داره که اگه اون رو با بقیه زبانها مقایسه کنیم عجیب به نظر میان. اما نباید انتظار داشته باشیم هر زبانی دقیقاً رفتاری رو ارائه بده که توی زبانهای دیگه وجود داره. اگه اینطور بود، دلیلی برای معرفی شدن زبانهای مختلف وجود نداشت. همونطور که مقایسه زبانهای محاورهای کار بیمعنی هست و هر زبانی گرامر و ساختار خودش رو داره و ما هیچ وقت نمیتونیم با ذهنیت قبلی از یک زبان، یک زبان دیگه رو یاد بگیریم.توی این قسمت میخوایم با مفهوم پروتوتایپ توی جاوااسکریپت آشنا بشیم.توی این قسمت یاد میگیریم که:      1- پروتوتایپ یعنی چی    2 - زنجیرهی پروتوتایپ چیهپروتوتایپ یعنی چی؟ 🤔معنی لغوی پروتوتایپ یعنی نمونهی اولیه. درک همین جمله خیلی میتونه کمککننده باشه. هر مقداری که توی جاوااسکریپت تعریف میکنیم، یک سری از ویژگیهاش رو از یک نمونهی اولیه به ارث میبره. این ویژگیها شامل متدها و پراپرتیهای مفید هستن که ما فکر میکنیم توی مقداری که ساختیم وجود دارن. در صورتی که موقع ساخته شدن، از یک والد به ارث برده میشن. مثل پراپرتی length توی رشتهها و آرایهها. این موضوع رو با مثال بهتر میشه توضیح داد. کد زیر رو در نظر بگیرین:const person = {  name: &quot;Mario&quot;}alert&#40;person.toString(&#41;); // [object Object]توی خط آخر ما از یک متد به اسم toString طوری استفاده کردیم که انگار توی آبجکت person از قبل تعریف شده. اما ظاهراً چنین متدی توی این آبجکت دیده نمیشه. پس این متد چطور در دسترس هست؟ 🤔  جواب پروتوتایپ یا نمونه اولیه هست.وقتی مثل خط اول یک آبجکت داره ساخته میشه، یک سری از ویژگیها از آبجکت والد به ارث برده میشه. آبجکت والد برای person، یک آبجکت درونی جاوااسکریپت به اسم Object هست.زنجیرهی پروتوتایپ چیه؟ 🤔همونطور که گفته شد، توی جاوااسکریپت هر آبجکتی دارای یک پراپرتی مخفی به اسم [[Prototype]] هست که به عنوان یک لینک به آبجکت بالاتر (والد) عمل میکنه. اون آبجکت هم خودش ممکنه شامل یک پراپرتی prototype باشه که به یک آبجکت بالاتر اشاره میکنه. به این زنجیره، زنجیرهی پروتوتایپ گفته میشه.میخوایم کدی بنویسیم که آبجکت person به عنوان پروتوتایپ (والد) برای یک آبجکت دیگه در نظر گرفته بشه:const parent = {
  name: &amp;quotMario&amp;quot
}

const child = Object.create(parent);با متد Object.create میتونیم یک آبجکت با یک پروتوتایپ دلخواه درست کنیم. پروتوتایپ مد نظرمون رو باید به عنوان آرگومان اول به این متد پاس بدیم. وقتی یک عضو (پراپرتی یا متد) رو از یک آبجکت رو صدا میزنیم، جاوااسکریپت دنبال این عضو توی همون آبجکت میگرده. اگه نتونست پیدا کنه، توی پروتوتایپ دنبالش میگرده. و باز هم اگه نتونست پیدا کنه، جستجو توی زنجیرهٔ پروتوتایپ ادامه داره تا جایی که هیچ پروتوتایپی وجود نداشته باشه:const parent = {
  name: &amp;quotMario&amp;quot
}

const child = Object.create(parent);

console.log(child); // {}
alert&#40;child.name&#41;; // Marioهمونطور که میبینیم، به name دسترسی داریم با اینکه این پراپرتی توی child وجود نداره.توی کد بالا، پروتوتایپ آبجکت child، دقیقاً آبجکت parent هست. این رو میشه با کد زیر متوجه شد:child.__proto__ === parent; // trueتوی جاوااسکریپت وقتی دو تا آبجکت رو با === مقایسه میکنیم، نتیجه زمانی true هست که هر دو آبجکت رفرنسهای یکسانی توی حافظه داشته باشن. پس پروتوتایپ child صرفاً به آدرس parent اشاره میکنه و مقدار کپی شده نیست. این موضوع رو با این کد هم میشه متوجه شد:const parent = {
  lastname: &amp;quotDoe&amp;quot
}
const child = Object.create(parent);
alert&#40;child.lastname&#41;; // Doe
 parent.lastname = &#039;Becker&#039;;
alert&#40;child.lastname&#41;; // Becker</description>
                <category>مهدی احمدی</category>
                <author>مهدی احمدی</author>
                <pubDate>Fri, 24 May 2024 20:16:40 +0330</pubDate>
            </item>
                    <item>
                <title>تعیین هدف در زندگی طبق اصول</title>
                <link>https://virgool.io/@m_24422171/%D8%AA%D8%B9%DB%8C%DB%8C%D9%86-%D9%87%D8%AF%D9%81-%D8%AF%D8%B1-%D8%B2%D9%86%D8%AF%DA%AF%DB%8C-%D8%B7%D8%A8%D9%82-%D8%A7%D8%B5%D9%88%D9%84-oyvehl7csrhu</link>
                <description>هر کسی در طول زندگی اش بارها و بارها هدف های مختلفی را برای خودش تعیین  می کند. از یک دختر هشت ساله که تصمیم می گیرد فضانورد شود گرفته تا فرد  میانسالی که می خواهد وزن کم کند یا کسی که قصد دارد خالکوبی کند؛ همه و  همه برای خودشان هدفی تعیین می کنند.یادتان باشد که با تعیین اهداف اشتباه، از همان روز اول خودتان را برای  شکست آماده می کنید! اگر هدفتان بیش از اندازه سخت، غیر قابل محاسبه یا  مبهم و بی معنی باشد هیچ وقت به آن نمی رسید. بنابراین ساده ترین راه،  تعیین اهداف درست و صحیح است؛ یعنی اهدافی که در زندگی شغلی و شخصی مان  قابل دستیابی و رسیدن باشند.1- با استفاده از روش اسمارت (SMART) اهدافتان را تعیین کنید2- حواستان به اهداف نتیجه محور باشد3- برای خودتان اهداف بلند مدت و کوتاه مدت تعیین کنید(در تعیین اهداف کوتاه مدتتان سختگیرانه عمل کنید.)4- مشخص کردن مسیر اهداف</description>
                <category>مهدی احمدی</category>
                <author>مهدی احمدی</author>
                <pubDate>Sat, 18 Mar 2023 19:33:30 +0330</pubDate>
            </item>
                    <item>
                <title>باورش سخته ولی میشه</title>
                <link>https://virgool.io/@m_24422171/%D8%A8%D8%A7%D9%88%D8%B1%D8%B4-%D8%B3%D8%AE%D8%AA%D9%87-%D9%88%D9%84%DB%8C-%D9%85%DB%8C%D8%B4%D9%87-oicfbtvmok6s</link>
                <description>توی سیستم هایی که با ذغال و هِندل دارن میچرن کار نکن اصلا .به  خاطر چندر غاز میری یه جایی با منِنَت باهات برخورد میکنن نمون ، بیا  بیرون شروع کن زبان انگلیسی بخون به خودت سختی زیاد بده ویدئوهای آموزشی  ببین که بتونی تکنولوژی ها رو از منابع انگلیسی بخونی ، خودتو بکش بالا ،  باورش سخته که برنامه نویس باشی و لنگ شرکتا و گروهای دربو داغون مونده  باشی . پس به مطالعه ادامه بده ، آینده برای توعه .</description>
                <category>مهدی احمدی</category>
                <author>مهدی احمدی</author>
                <pubDate>Tue, 31 Jan 2023 23:52:41 +0330</pubDate>
            </item>
                    <item>
                <title>یادگیری کتابخانه ری‌اکت جی‌اس ReactJS در ۱۰ قدم</title>
                <link>https://virgool.io/@m_24422171/%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-%D8%B1%DB%8C-%D8%A7%DA%A9%D8%AA-%D8%AC%DB%8C-%D8%A7%D8%B3-reactjs-%D8%AF%D8%B1-%DB%B1%DB%B0-%D9%82%D8%AF%D9%85-jqw32gjjwxzr</link>
                <description>نحوه یادگیری ریکت و تبدیل شدن به توسعه دهنده ری اکت:در این پست  سعی داریم نحوه تبدیل شدن به یک برنامه نویس خوب ریکت را در 10 قدم  بیان کنیم. اگر این مراحل را در زندگی روزمره خود انجام دهید در  نهایت خواهید توانست به اهداف شغلی خود برسید و پیشرفت مورد انتظارتان در  زمینه یادگیری کتابخانه ری اکت را شاهد باشید.قدم اول: صرف زمان 4 یا 5 ساعته در هر روز هفته برای یادگیری ریکتمی توان  گفت این قدم مهم ترین قدم در راه تبدیل شدن به توسعه دهنده ری اکت  می باشد. شما در چیزی حرفه ای نمی شوید مگر اینکه زمان لازم را به  یادگیری آن چیز اختصاص دهید. باید در برنامه روزانه خود زمان مشخصی را صرف  یادگیری و تمرین react کنید. در یک محیط آرام و بدون تنش  فرآیند یادگیری خود را شروع کنید. همانطور که یک کارمند از حدود ساعت 9 صبح  تا 17 عصر پشت میز می نشیند و مشغول کارهای مربوطه می شود، شما هم  باید برای یادگیری کتابخانه ریکت در طول روز حداقل 4 یا 5 ساعت تمرکز  و زمان بگذارید.قدم دوم: زمان خود را بصورت متمرکز روی کدنویسی صرف کنیددقیقا منظورمان  از تمرکز کامل روی کدنویسی اینست که در یک محیط بدون حواس پرتی و ساکت،  مشغول کدنویسی شوید و تمام تمرکزتان روی فرآیند برنامه نویسی باشد. در طول  این زمان 100 درصد زمان صرف کدنویسی نمی شود. بلکه درصدی از آن برای مطالعه  داکیومنت ها، نوت برداری و غیره… صرف خواهد شد.بنابراین اگر در طول  4-5 ساعت روزانه تمام تمرکزمان روی کدنویسی باشد و مفید از آن استفاده  کنیم کافیست. ایده 12 ساعت در روز کار کردن واقع بینانه نیست. به  ویژه وقتی تازه در اول راه یادگیری یک زبان برنامه نویسی هستید.اگر می توانید بیشتر از  5 ساعت در روز هم وقت بگذارید و تمرکزتان از بین نمی رود مشکلی نیست. اما  دقت کنید که فرآیند یادگیری مفاهیم جدید در هنگام خستگی روح و جسم دشوار  خواهد شد و راندمان افت می کند.قدم سوم: استفاده از تکنیک Pomodoro برای مدیریت زمانتکنیک ویژه ای وجود دارد که به شما کمک می کند تا بهترین استفاده را از این 4-5 ساعت روزانه داشته باشید. نام این تکنیک Pomodoro است.هدف  این روش استفاده بهینه از زمان است و متشکل از بازه های زمانی 25  دقیقه ای می باشد. شما کارتان را شروع می کنید و پس از 25 دقیقه 5  دقیقه تایم استراحت خواهید داشت. به هر یک از این 25 دقیقه ها یک  pomodoro می گویند. در این زمان استراحت می توانید از پشت میز بلند  شوید، یک نوشیدنی بخورید و… سپس با تمرکز کافی به کدنویسی بازگردید. در  زمان استراحت نباید به گوشی موبایل یا مانیتور کامپیوتر نگاه کنید.استراحت دادن به ذهن و جسم می تواند باعث راندمان بیشتر یادگیری شود. در ادامه تکنیک pomodoro ، پس از 25 دقیقه چهارم،یک استراحت 15 دقیقه  ای خواهیم داشت.اگر بتوانید در طول یکروز، 8 الی 10 بازه زمانی 25 دقیقه ای یا pomodoro به این شکل کار مفید انجام دهید روز خوبی را سپری کرده اید!اگر  خودتان را متعهد کنید که ریکت را به این شکل یاد بگیرید، بجای اینکه آن را  در 6 ماه یا حتی یکسال آموزش ببینید، قادر خواهید بود در عرض یکماه به  نتایج قابل توجهی دست پیدا کنید و نسبتا حرفه ای شوید. فقط باید اصل  پیوسته بودن یادگیری را رعایت کنید. یعنی اینکه اگر دو روز با  تکنیک pomodoro یادگیری ری اکت را انجام دادید و سه روز انجام  ندهید یا اهمال کاری کنید، فایده ای ندارد.ابزارهای آنلاین و رایگان زیادی برای تایمر pomodoro وجود داردقدم چهارم: مطالعه مستندات ریکت از سایت مرجع Reactjs.orgتا  اینجا درباره صرف زمان لازم برای یادگیری ری اکت و مصرف بهینه زمان با  استفاده از تکنیک pomodoro صحبت کردیم. در این بخش می خواهیم منبع  آموزشی معتبر ریکت را خدمتتان معرفی کنیم.در سراسر اینترنت، آموزش  های ویدیویی و متنی رایگان فراوانی برای کتابخانه react وجود دارد. اما  بهترین و تنها منبع قابل اعتماد و معتبر ریکت سایت مرجع ریکت به آدرس  reactjs.org می باشد.داکیومنت ریکت جی‌اس را زیر و رو کنید و تمام  نکات آن را تمرین کنید. بهترین راهنمای موجود در اینترنت در زمینه آموزش  ری اکت سایت ReactJS.org است که بسیاری از دولوپرهای ریکت بعنوان مرجع از  این وب سایت استفاده می کنند.  داکیومنت های سایت reactjs همیشه آپدیت هستند و جدیدترین نکات و امکانات  ریکت را می توان در آن مطالعه کرد.مفاهیم کتابخانه ری اکت بطور کامل  در reactjs.org بیان شده و یکی از مزیت های این سایت مثال های متعدد آن در  زمینه های مختلف می باشد. این امکان نیز وجود دارد که اسکریپت های ریکت را  بصورت آنلاین تمرین کنید و تغییر دهید و خروجی را همانجا مشاهده کنید.  بعنوان مثال در این codepen نحوه toggle شدن یک دکمه توسط ریکت بیان شده است.قدم پنجم: قدم های کوچک بردارید، اپلیکیشن های کوچک بسازید و بتدریج آن را توسعه دهیددر حین یادگیری مفاهیم و  امکانات ریکت جی اس، سعی کنید یک اپلیکیشن با مقیاس کوچک را  پیاده سازی کنید و مطالبی را که یاد می گیرید روی آن پیاده سازی کنید.  این اپلیکیشن می تواند یک ToDo App یا یک CRUD App باشد.همینطور که  در حال یادگیری ریکت هستید و اپلیکیشن تستی خود را توسعه می دهید احتمالا  با سوالات زیادی مواجه می شوید. که البته اغلب توسعه دهندگان ریکت هم در  ابتدا با آنها روبرو شده اند. مانند موارد زیر:آیا برای طراحی اپلیکیشن با ریکت نیاز به پکیج دیگری دارم؟برای راه اندازی اولیه اپلیکیشن به چه فایل ها و فولدرهایی نیاز است؟در پروژه به چه کامپوننت هایی نیاز دارم؟داده های اپلیکیشن کجا ذخیره و نگهداری می شوند؟و…گام بعدی اینست که در سایت Github ثبت  نام کنید. خوشبختانه اخیرا در سایت گیتهاب امکان تعریف private  repository برای ایرانیان فراهم شده است. تا قبل از این، ما ایرانی ها  بدلیل تحریم فقط می توانستیم public rep داشته باشیم!ذخیره پروژه ها  در گیتهاب مزایای زیادی دارد. از جمله اینکه سورس کد پروژه های خود را در  یک پلتفرم آنلاین ذخیره دارید و هر جا که اراده کنید می توانید آنها را  مشاهده و ویرایش کنید. مزیت دیگر گیتهاب اینست که افراد دیگر می توانند در  کدنویسی و توسعه اپلیکیشن با شما درخواست همکاری دهند. همچنین ذخیره سورس  کد پروژه هایتان در گیتهاب می تواند بعنوان یک رزومه کاری تلقی شود و  لینک github خود را در رزومه خود درج کنید تا شرکت ها بتوانند براحتی پروژه  های انجام شده شما را مشاهده کنند.قدم ششم: سوال پرسیدن ضروری است، همیشه سعی کنید سوال بپرسیدآگاه باشید که  سوال پرسیدن بخشی از فرآیند یادگیری است و همیشه سعی کنید سوالات خود را  در گوگل سرچ کنید و در سایت های stackoverflow یا github پاسخ ها را مشاهده  کنید.فراموش نکنید که پاسخ سوالتان را در جایی ثبت کنید. مثلا اگر  در سایت stackoverflow به پاسخ سوال خود رسیده اید، صفحه آن را در  مرورگرتان bookmark کنید. یا پاسخ سوالتان را در جایی یادداشت کنید.  زیرا مطمئنا در آینده هم این سوال برای شما پیش خواهد آمد. در اینصورت فقط  کافیست نوت برداری خود را مشاهده کنید و مجددا سوال خود را در گوگل سرچ  نکنید. با اینکار در زمان و انرژی صرفه جویی کرده اید.قدم هفتم: کدنویسی فعال کلید موفقیت استروشی که  ما در این مقاله در حال بیان آن هستیم با مطالعه کتاب یا روزنامه فرق  دارد. به خواندن یک سری اطلاعات یادگیری غیر فعال یا passive leaning گفته  می شود. اما آنچه که ما برای یادگیری ریکت نیاز داریم یادگیری فعال  یا active learning است.یادگیری فعال باعث می شود کدنویسی شما  موثرتر باشد و سوالات زیادی در مسیر یادگیری ریکت پیش آید و احتمالا در  بازه زمانی کوتاه مشکلات زیادی در مسیر یادگیری شما رخ دهد اما در  طولانی مدت مطمئنا نتیجه اش موفقیت و پیشرفت خواهد بود.قدم هشتم: اپلیکیشن هایی تولید کنید که شبیه اپلیکیشن های قبلی خودتان باشدپس از  طراحی اپلیکیشن تستی خود مانند todo app می توانید از خودتان بپرسید که  آیا من میتونم اپلیکیشنی شبیه facebook یا twitter یا instagram اما در  مقیاس کوچکتر تولید کنم؟سعی کنید در این مرحله  اپلیکیشن هایی پیاده سازی کنید که شبیه آن را قبلا در مرحله  یادگیری ریکت انجام داده اید و به آن مسلط هستید. مسلما هر اپلیکیشن با  سایر اپ ها نقاط مشترک دارد. شما می توانید با توجه به مواردی که تاکنون  یادگرفته اید، توسعه اپلیکیشن جدید را آغاز کنید و بتدریج امکانات  پیشرفته تری به آن اضافه کنید.قدم نهم: بهترین پروژه های خود را deploy کنید و لینک آنها را در روزمه خود درج کنیددر  نهایت پس از تولید اپلیکیشن های حرفه ای، حتما آنها را در گیت‌هاب یا در  سایت خود آپلود کنید و لینک آن را در روزمه خود درج کنید. deploy کردن  اپلیکیشن های react ساده است. کافیست پس از اتمام توسعه اپلیکیشن دستور npm  run build را اجرا کرده و محتویات فولدر build را در هاست خود آپلود کنید.پس  سعی کنید حتما لینک پروژه های انجام شده خود را در رزومه تان درج کنید و  یک توضیح کلی از نحوه عملکرد آن ارائه دهید و تکنولوژی های استفاده شده در  آن را بیان کنید. با انجام اینکار، شرکت هایی که قصد استخدام نیروی توسعه  دهنده ریکت دارند راحت تر و سریع تر می توانند میزات تسلط شما را در  ریکت بسنجند و همچنین رزومه شما حرفه ای تر خواهد شد.در صورتیکه قصد  دارید بعنوان فریلنسر کار کنید، می توانید پروژه های خود را به حدی توسعه  دهید تا بتوانید آنها را به بیزینس های مرتبط بفروش برسانید و کسب درآمد  کنید.قدم دهم: لذت ببرید!یادگیری  کتابخانه ری اکت می تواند در بعضی مواقع نا امید کننده و حتی خسته کننده  باشد. مسلما در مسیر یادگیری ری اکت مشکلات و سوالاتی پیش خواهد آمد که  ممکن است شما را از ادامه مسیر  منصرف کند.در اینگونه مواقع  پیشنهاد می کنیم اپلیکیشن هایی که دوست دارید و برای شما لذت بخش است را  توسعه دهید. شما بعنوان یک ریکت دولوپر می توانید با انجام پروژه هایی که  در آنها تسلط کافی دارید و واقعا از پیاده سازی آنها احساس خوشایندی دارید  می توانید اعتماد بنفس خود را بالا نگه دارید.در نهایت در تصویر زیر می توانید نقشه راه تبدیل شدن به یک فرانت اند دولوپر را مشاهده کنید:</description>
                <category>مهدی احمدی</category>
                <author>مهدی احمدی</author>
                <pubDate>Wed, 04 Jan 2023 00:41:09 +0330</pubDate>
            </item>
                    <item>
                <title>چیا ضروریه؟</title>
                <link>https://virgool.io/@m_24422171/%DA%86%DB%8C%D8%A7-%D8%B6%D8%B1%D9%88%D8%B1%DB%8C%D9%87-tohihsssllfh</link>
                <description>- یقینا حقوق مهمه برام :) هم از نظر رقم و هم از نظر زمان پرداخت- ساعت کاری و شناوری زمان ورود و خروج- آدم هایی که مستقیم و غیرمستقیم باهاشون کار میکنم- تجهیزات مثل لپ تاپ و دو تا مانیتور و یه هدفون- مجبور نباشم اضافه کار بمونم- حداقل دو روز تعطیلی آخر هفته و اگر سه روز باشه خوشحال ترمقصد مهاجرت هم ندارم و اگر رفتار دو طرفمون انسانگونه باشه میتونید بلند مدت روم حساب کنیداگر اینارو بهم بدین خوشحال ترم:- وعده ناهار- پارکینگ- اسموک روم- کار هیبرید ولی اغلب اوقات حضوری میام پیشتون- کامل ردشدن بیمه- محیط صمیمی که خیلیم قابل توضیح نیست و باید بیام ببینمتون- فرآیند جذبتون خیلی طولانی نباشه</description>
                <category>مهدی احمدی</category>
                <author>مهدی احمدی</author>
                <pubDate>Thu, 01 Dec 2022 00:16:10 +0330</pubDate>
            </item>
            </channel>
</rss>