<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های مرتضی صمدی</title>
        <link>https://virgool.io/feed/@MorSCoder</link>
        <description>فهمیدم نفهمیدم!</description>
        <language>fa</language>
        <pubDate>2026-04-15 06:50:13</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/54161/avatar/ywFqSg.jpg?height=120&amp;width=120</url>
            <title>مرتضی صمدی</title>
            <link>https://virgool.io/@MorSCoder</link>
        </image>

                    <item>
                <title>کدهای بقیه رو خراب کن</title>
                <link>https://virgool.io/@MorSCoder/%DA%A9%D8%AF%D9%87%D8%A7%DB%8C-%D8%A8%D9%82%DB%8C%D9%87-%D8%B1%D9%88-%D8%AE%D8%B1%D8%A7%D8%A8-%DA%A9%D9%86-gclwbmhk7gqq</link>
                <description>قانون دوازدهم، یعنی آخرین قسمت از 12 قانون یادگیری بهتر برنامه‌نویسی اینجاست. قراره یه مروری کنیم به اینکه چطوری می‌تونیم از کدهای دیگران برای ارتقا دانش فعلی خودمون استفاده کنیم، چه یه تکه کد کپی شده از Stack overflow باشه، چه یه پروژه اپن سورس و چه یک پروژه که از طریق مهندسی معکوس بهش رسیدیم. یکی از مهم ترین مراحل تبدیل شدن از برنامه نویس تازه کار، به یک برنامه نویس همه فن حریف، توانایی شما در کمک گرفتن هست. همه نیاز به کمک گرفتن دارن، حتی کسانی که اونها رو به عنوان خدایان برنامه نویسی می‌شناسیم.اما کاری که شما با کمک‌های در دسترس‌تون انجام می‌دین، نشون خواهد داد که شما به عنوان یه برنامه نویس، چقدر پیشرفت خواهید کرد. به عنوان مثال، وقتی داریم دنبال جواب یه سوال می‌گردیم و کدی رو توی استک اورفلو می‌بینیم، اولین کاری که می‌کنیم، احتمالا copy و paste کردن اون کد هست.خب اگه کار رو به همین جا ختم کنیم و وقتی دیدیم برنامه طبق انتظارمون پیش میره، بریم سراغ ادامه کار، اولین اشتباه رو انجام دادیم. به این خاطر که از این فرصت، برای یادگیری بیشتر استفاده نکردیم. تنها چیزی که اینجا یاد گرفتیم، اعتماد به گوگل، استک اورفلو و کدهای یه فرد ناشناس هست.در ادامه اگه به مشکل مشابهی برخورد کنیم، ولی جواب قبلی، دیگه کار ما رو راه نندازه، چه کاری خواهیم کرد؟ تا چیزمان میریم تو گل،‌ تا کمر...این جا هست که یه قانون در برنامه نویسی به ما کمک میکنه، اون هم اینه که &quot;هیچ وقت کدی رو که خودت نمی‌فهمی رو copy و paste نکن&quot;. بنابراین اگه به یک بلوک کد رسیدیم که کار ما رو راه می‌انداخت ولی ما بعضی قسمت‌هاش رو متوجه نمی‌شدیم، چه کاری انجام بدیم؟ بهترین کار، اینه که اون کد رو خراب کنیم و دوباره بسازیمش. برای این کار می‌تونیم از روش زیر استفاده کنیم:کد مورد نظر رو کپی و paste‌ کناز این که قطعه کد، طبق انتظارت عمل می‌کنه مطمئن شوخط به خط، کدهایی که جدیدا کپی و paste کردی رو پاک کنهر بار که یه خطی رو پاک می‌کنی، چک کن ببین چه مشکلی به وجود اومده؟ آیا برنامه، هنوز طبق انتظار عمل می‌کنه؟ چه ارورهایی به نمایش در اومدن؟حتی اگه می‌دونید یه خط از کدی که جدیدا کپی کردید، چه کاری انجام میده، باز هم پاکش کنید. یکی از مهم ترین تسک‌هایی که به عنوان یک برنامه نویس دارید، اینه که بفهمید فرضیات شما از یه تکه کد، در مقایسه با خروجی واقعی اون تکه کد، چه تفاوتی دارن؟یکی از بزرگترین لذت‌ها هنگام برنامه نویسی اینه که چیزی که انتظار داریم ببینیم، با چیزی که واقعا توی خروجی می‌بینیم، با هم یکی باشن.مثل وقتی که قبلا به دوستتون چیزی گفتید، و بعدا بهتون میگه: &quot;آره تو درست می‌گفتی&quot;. این هم همین طوره، ولی خیلی بهتر!۶. ترتیب بعضی از خط‌ها رو تغییر بدید.آیا همون خروجی قبلی رو با تغییر دادن ترتیب کدها هم مشاهده می‌کنید یا یه چیزهایی تغییر کرده؟ چرا کدها به اون ترتیب قبلی نوشته شده بودن؟با شکستن کدها و تغییر اونها به صورت خط به خط، شما دقیقا می‌فهمید که اون خط از کد چه کاری می‌کنه و چرا اونجا نوشته شده. این روش، خیلی کمک می‌کنه کدی رو که خودمون ننوشتیم و قبل از این هم نمی‌تونستیم بنویسیم رو، بهتر درک کنیم و کم کم بتونیم نوشتن همچین کدی رو به جعبه ابزار ذهنمون اضافه کنیم. وقتی تونستید تکه کدهای مورد نیازتون رو از توی stack overflow یاد بگیرید و به جایی رسیدید که احساس کردید برای مرحله بعدی آماده‌اید، وقتشه برید سراغ خراب کردن پروژه‌های دیگران؛ و برای این کار، چه جایی بهتر از GitHub؟ توی گیت هاب می‌تونید دنبال clone نرم افزارهای مختلف بگردید و با تغییر کدهاشون به این روش، نحوه کارکرد اون رو یاد بگیرید.در صورتی که پروژه بزرگی پیدا کردید، به ساختار برنامه نگاه کنید، به کلاس‌ها، constant ها و طرز استفاده از اون‌ها در برنامه. جاهای مختلف کد رو تغییر بدید. آیا برنامه طبق انتظار کار می‌کنه یا جایی از برنامه از کار افتاده؟ به Error ها نگاه کنید. آیا می‌تونید با استفاده از Error مورد نظر، ایرادی که به وجود اومده رو برطرف کنید؟بعد از اینکه توی شکستن کدهای پروژه دیگران، به مرحله خودکفایی رسیدید! وقتشه برید سراغ مهندسی معکوس. یعنی برید دنبال پیدا کردن یه پروژه کوچیک که توسط یه برنامه نویس معروف توسعه داده شده یا تعداد نصب یا استار بالایی داره. یه مقدار با عملکرد کلی برنامه آشنا بشید و برای پیاده سازی اون پروژه توسط خودتون آماده بشید.در این مرحله باید اون پروژه رو از صفر، تا جایی که در حد دانش فعلی‌تون هست، خودتون بالا بیارید و بعد از تموم شدن، کدهای خودتون رو با کدهای پروژه اصلی مقایسه کنید. آیا جایی هست که از ایده طرف مقابل استفاده کنید و کدهای خودتون رو بهتر کنید؟ یا حتی بهتر، آیا جایی هست که از ایده‌های خودتون استفاده کنید و پروژه اصلی رو ارتقا بدید؟ در این صورت شما به یه توسعه دهنده اپن سورس تبدیل خواهید شد که خودتون می‌دونید این گونه reputation چقدر می‌تونه در آینده شغلی شما تاثیر داشته باشه.پکیج lodash در npm اگه مثل من، جاواسکریپت زبانی هست که بیشتر وقت‌تون را باهاش سپری می‌کنید، یکی از روش‌هایی که می‌تونید ببینید یه پکیج معروف چجوری توسعه داده شده، استفاده از www.npmjs.com هست. به این صورت، می‌تونید از قسمت versions، نسخه‌های مختلف یک پکیج رو پیدا کنید و از طریق تب Code، کدهای داخلش رو بررسی کنید.</description>
                <category>مرتضی صمدی</category>
                <author>مرتضی صمدی</author>
                <pubDate>Tue, 17 Oct 2023 22:06:17 +0330</pubDate>
            </item>
                    <item>
                <title>مسائل رو به بخش‌های کوچک‌تر تقسیم کن</title>
                <link>https://virgool.io/@MorSCoder/%D9%85%D8%B3%D8%A7%D8%A6%D9%84-%D8%B1%D9%88-%D8%A8%D9%87-%D8%A8%D8%AE%D8%B4-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D8%AA%D8%B1-%D8%AA%D9%82%D8%B3%DB%8C%D9%85-%DA%A9%D9%86-g89ytpt8abu0</link>
                <description>در این پست دنباله‌دار، قراره ۱۲ قانون یادگیری بهتر برنامه‌نویسی رو با هم مرور کنیم. با ما همراه باشید تا قانون یازدهم رو بهتر بشناسیم. این قانون میگه چطوری با تقسیم کردن یه پروژه به قسمت‌های کوچک‌تر، می‌تونیم راحت تر کد بزنیم و پروژه رو با به عمل آوردن مداقه نهایی، به نتیجه غایی برسونیمتقسیم کردن مسئله بزرگ به بخش‌های کوچک‌تراحتمالا پیش اومده که یه ایده خیلی خفن به ذهنتون رسیده ولی وقتی خواستین برین سراغ پیاده سازی، دیدید که با مهارت فعلی شما، این ایده بزرگ تر از چیزیه که بتونید از پس‌اش بر بیاید. بهترین کار در این مواقع، تقسیم کردن این ایده به بخش‌های کوچک تر و پیاده سازی هر بخش کوچک، به صورت مستقل هست.فرض کنید قراره یه ربات بسازید که براتون لقمه بگیره. این ربات هیچ درکی از نون، پنیر،‌ خیار، گوجه، چاقو و پیچیدگی ترکیب اونها با هم نداره. در واقع، ما هم برای انجام دادن کار با این سادگی، باید از مغزمون کار بکشیم. حتی کیفیت و دقت انجام این کار به نسبت ساده هم، برای افراد مختلف، با هم یکی نیست.یه نفر تکه‌های گوجه و تکه‌های خیار رو هم اندازه و شبیه به هم میبره، ولی یه نفر دیگه ممکنه از تابع رندوم مغزش استفاده کنه!پس هر کسی دوست داره لقمه‌ش رو یه جور خاصی بچینه. بنابراین، رباتی که بتونه دقیقا همه کارها رو مطابق خواسته انسان انجام بده، پیچیده خواهد بود. ولی چون ما برنامه نویس‌های خفنی هستیم، می‌تونیم کارهای مختلف این ربات رو به بخش‌های مختلفی تقسیم کنیم و هر قسمت رو به صورت جدا پیش ببریم.این ربات نیازی نداره بدونه که نون چیه، یا پنیر از چی درست شده، فقط کافیه جای هر کدوم و میزان استفاده از هر کدوم از مواد رو بدونه:نون رو بردار و در جای مناسب خودش بذارمقدار معینی از پنیر رو بردارپنیر رو روی سطح نون قرار بدهمقدار معینی تکه‌های خیار بردارخیار رو روی نون بذارمقدار معینی تکه‌های گوجه بردارگوجه رو روی نون بذارلقمه رو بپیچحالا باید هر کدوم از موارد بالا رو به بخش‌های کوچیک‌تر تقسیم کنیم. وقتی داریم این پروسه تقسیم کردن رو انجام میدیم، ممکنه راه‌های مختلفی برای انجام دادن هر قسمت به ذهنمون برسه.مثلا اینکه قراره پنیر رو روی نون بمالیم، یا تکه‌های کوچیک پنیر رو در یه ردیف قرار بدیم؟ باید به ربات بگیم چاقو رو برداره یا لازمه یه بازو که بهش چاقو هم متصل هست، به ربات اضافه کنیم؟هر چقدر بیشتر مسئله‌ها رو تقسیم کنیم و موضوعی که قراره حل کنیم رو بهتر تعریف کنیم، در نهایت کار ساده‌تری برای به هم وصل کردن این تیکه‌های کوچیک خواهیم داشت. و هر چه این تکه‌های کوچک، ساده‌تر باشن، راحت‌تر می‌تونیم حلشون کنیم.یادتون نره دیدگاه و نقدهاتون باعث بهتر شدن پست‌های بعدی میشه و به یه نفر انرژی میده برای ادامه راه ¯\_(ツ)_/¯</description>
                <category>مرتضی صمدی</category>
                <author>مرتضی صمدی</author>
                <pubDate>Sat, 30 Sep 2023 12:37:05 +0330</pubDate>
            </item>
                    <item>
                <title>تجربه دیگران رو دست کم نگیر</title>
                <link>https://virgool.io/@MorSCoder/%D8%AA%D8%AC%D8%B1%D8%A8%D9%87-%D8%AF%DB%8C%DA%AF%D8%B1%D8%A7%D9%86-%D8%B1%D9%88-%D8%AF%D8%B3%D8%AA-%DA%A9%D9%85-%D9%86%DA%AF%DB%8C%D8%B1-xghfjo5lg4bv</link>
                <description>در این پست دنباله‌دار، قراره ۱۲ قانون یادگیری بهتر برنامه‌نویسی رو با هم مرور کنیم. با ما همراه باشید تا قانون دهم رو بهتر بشناسیم. این قانون میگه برای اینکه یه زبان برنامه نویسی رو به صورت اصولی یاد بگیریم، چه راهی پیش روی ما هست؟منتوری برای خود اختیار کنیداگه بخواهید یه زبان جدید رو مثل یک فرد نیتیو یاد بگیرید، چه روشی رو در پیش خواهید گرفت؟ یکی از راه‌ها برای یاد گرفتن یه زبان جدید،‌ کمک گرفتن از یه فرد مسلط به اون زبان هست. به عنوان مثال، فرض کنید شما می‌‌خواهید زبان انگلیسی یاد بگیرید و یک فرد انگلیسی زبان، سعی داره به زبان فارسی مسلط بشه. اگه هر هفته، یه جلسه یک ساعته بذارید که نیم ساعت اول، شما به اون فرد، زبان فارسی رو یاد بدید و نیم ساعت بعدی، اون فرد ایرادات شما رو توی زبان انگلیسی برطرف کنه، چقدر زودتر به هدفتون نزدیک خواهید شد؟ اپ‌های مختلفی (مثلا HelloTalk) هستن که این قضیه در اونها پیاده سازی شده.حالا اگه بخواهید به یادگیری اصولی زبان برنامه نویسی بپردازید، چه راهی به نظرتون میرسه؟یکی از راه‌ها، یادگیری از یه فرد با تجربه‌تر یا به اصطلاح منتور هست. مثلا شما پشت سیستم می‌شینید و منتور به شما میگه چه چیزی رو بنویسید و بعد از اینکه کار شما تموم شد، اگه جایی اشتباه داشتید، تصحیح‌تون می‌کنه. این طوری، شما کد رو نوشتید، ولی از تجربه چندین و چند ساله یه فرد سینیور هم استفاده کردید. به این ترتیب، توی مدت کوتاهی می‌تونید از نحوه نگرش یه فرد باتجربه‌تر به قضیه آگاه بشید و روش درست حل مساله و پیاده سازی اون رو بفهمید.یه منتور خوب به شما کپی کردن کدها رو یاد نمیده، بلکه بهتون روش فکر کردن رو آموزش میده. به جای اینکه بهتون بگه کد رو باید چجوری بنویسید، بهتون اجازه میده کد رو بنویسید، بعد روشی که خودش برای نوشتن استفاده می‌کرد رو بهتون آموزش میده و به این ترتیب، متوجه می‌شید که کجاها رو باید اصلاح کنید.بیبی منتوردر دنیایی که ما توش زندگی می‌کنیم، دیگه کسب اطلاعات در مورد یه چیز، سخت نیست، بلکه نحوه استفاده از اطلاعات هست که مهمه. بنابراین سعی کنید نحوه فکر کردن به مساله رو یاد بگیرید، بعد از اون با گوگل کردن سوالتون و خوندن داکیومنت‌ها می‌تونید گلیم خودتون رو از آب بیرون بکشید.اینکه یاد بگیرید چجوری به مساله نگاه کنید، چجوری مساله رو به اجزای کوچک‌تر تقسیم کنید، چجوری برای مساله‌تون یه چارچوب طراحی کنید که از مسیر اصلی خارج نشید و این گونه مهارت‌ها، چیزهایی هست که نه فقط توی برنامه نویسی که توی زندگی هم به دردتون خواهد خورد،‌ در صورتی که استفاده از حافظه برای به خاطر سپردن کدهای مختلف، کمکی در  روبرو شدن با مسائل جدید به شما نخواهد کرد.حالا این منتور رو کجا می‌تونید پیدا کنید؟ از هر راهی که به ذهنتون میرسه!به عنوان مثال می‌تونید از اون دوستتون که یه دوست داره که برنامه نویس هست، کمک بگیرید،‌ یا توی کلاسی ثبت نام کنید که منتورینگ هم داخلش گنجونده شده باشه، توی شبکه‌های اجتماعی (مثل لینکداین و توییتر) جستجو کنید یا در گروه‌های تلگرام دنبال همچین فردی باشید. اگه منابع بهتری برای پیدا کردن همچین افرادی سراغ داشتید، ممنون میشم همین جا به اشتراک بگذارید تا بقیه هم بتونن استفاده کنن.</description>
                <category>مرتضی صمدی</category>
                <author>مرتضی صمدی</author>
                <pubDate>Sat, 02 Sep 2023 07:54:26 +0330</pubDate>
            </item>
                    <item>
                <title>از تفریح غافل نشید</title>
                <link>https://virgool.io/@MorSCoder/%D8%A7%D8%B2-%D8%AA%D9%81%D8%B1%DB%8C%D8%AD-%D8%BA%D8%A7%D9%81%D9%84-%D9%86%D8%B4%DB%8C%D8%AF-xrshy26eesyp</link>
                <description>در این پست دنباله‌دار، قراره ۱۲ قانون یادگیری بهتر برنامه‌نویسی رو با هم مرور کنیم. با ما همراه باشید تا قانون نهم رو بهتر بشناسیم. این قانون میگه که برای اینکه بتونیم بلندمدت به کدنویسی ادامه بدیم، وقتی کارها سخت شد و به باگ خوردیم، چه کاری انجام بدیم بهتره.تفریح و استراحت یادت نرهتوی فیلم‌ها وقتی می‌خوان یه برنامه نویس رو نشون بدن، معمولا یه آدم مرموز که پشت سیستم نشسته و مثل بنز داره تایپ میکنه به تصویر می‌کشن و چنان کد میزنه که رستم بُوَد پهلوان.ولی در واقعیت چیزی که بیشتر وقت‌ها اتفاق میفته اینه:بله درسته، تایپ کردنی در کار نیست. فقط زل زدن به کامپیوتر!
توی شرکت‌های بزرگ‌تر، معمولا یه سری امکانات برای تفریح برنامه نویس‌ها در نظر می‌گیرن. از اتاق گیم گرفته،‌ تا اتاق استراحت و ...چرا شرکت‌های بزرگ باید این کار رو کنن؟ پولشون اضافی اومده؟ حقوق کمی میدن و این طوری میخوان کارمند رو نگه دارن؟ البته که نه. در حقیقت این کار باعث میشه نیروها بتونن بلندمدت روی تسک‌های سخت تمرکز کنن و هر از چندگاهی ذهنشون رو خالی کنن.این امکانات به برنامه نویس‌ها کمک می‌کنه تا وقتی احساس کردن به بن بست خوردن، برن سراغ یه کار مفرح، مثلا با همدیگه گیم بزنن، ارتباط اجتماعی‌شون رو بهتر کنن، انرژی بگیرن و وقتی فول شارژ شدن برای ادامه پروژه تلاش کنن. این طوری از Burnout شدن جلوگیری می‌کنن.پس اگه شما هم احساس کردین یه تایم زیادی رو به مانیتور زل زدید و چیزی به ذهنتون نمیرسه، سعی کنید یه کم از این محیط فاصله بگیرید، یه بازی یا موسیقی رو پلی کنید، یه هوایی بخورید و بعد برگردید تا به ادامه پروژه فکر کنید.اگه باز هم جواب نداد. احتمالا فکر کردن به ادامه پروژه برای امروز کافی باشه. برید استراحت، بخوابید، پیاده روی کنید و هر کار دیگه‌ای که کمک کنه ذهنتون از این حالت بن بست خارج بشه.وقتی بین دو گزینه خوابیدن و مطالعه کردن، همه موارد رو انتخاب می‌کنی!وقتی برگردید،‌ به احتمال 90 درصد یه راهی برای حل کردن مشکل و باگ مورد نظرتون خواهید داشت، البته در 10 درصد موارد دیگه، شما رسما به فنا رفتید ?کمتر ممکنه این رو از کسی بشنوید، ولی بعد از اینکه با اصول کدنویسی آشنا شدید، سعی کنید کد کمتری بزنید، ولی بیشتر روی کدی که قرار هست بزنید، فکر کنید. چون وقتی یه کد با کیفیت پایین می‌نویسید، احتمالا لازمه بعدا برگردید و ریفکتورش کنید، خط به خط دنبال باگ بگردید و خیلی از موارد رو پاک کنید یا تغییر بدید. یه نظریه نسبتا محبوب میگه که پیشگیری بهتر از درمان است.اینم یادتون باشه، کد بدون باگ، کدی هست که هرگز نوشته نشده! پس بیش از حد هم حساس نباشید و سعی کنید یه بالانس بین کد تمیز و سر وقت رسوندن پروژه پیدا کنید.من مرتضی هستم. در حال یادگیری فرانت اند. سعی می‌کنم توی این راه، چیزهای جالبی که می‌خونم رو باهاتون به اشتراک بذارم. اگه خوشتون اومد ❤ یادتون نره، و اگه حال نکردید، خوشحال میشم نظرتون رو بدونم.</description>
                <category>مرتضی صمدی</category>
                <author>مرتضی صمدی</author>
                <pubDate>Sat, 05 Aug 2023 12:11:30 +0330</pubDate>
            </item>
                    <item>
                <title>یادگیری مداوم یادت نره</title>
                <link>https://virgool.io/@MorSCoder/%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%AF%D8%A7%D9%88%D9%85-%DB%8C%D8%A7%D8%AF%D8%AA-%D9%86%D8%B1%D9%87-d1fmqy3s9yra</link>
                <description>در این پست دنباله‌دار، قراره ۱۲ قانون یادگیری بهتر برنامه‌نویسی رو با هم مرور کنیم. با ما همراه باشید تا قانون هشتم رو بهتر بشناسیم. این قانون میگه که برای اینکه خودمون رو به روز نگه داریم، باید چه طرز فکری به قضیه داشته باشیم.توی یادگیری ثابت قدم باشبرای اینکه توی یادگیری برنامه نویسی موفق بشی، باید بتونی یه مدت به طور مداوم، برای یادگیری چیزهای جدید خودت رو آماده کنی. چون برنامه نویسی یه مهارت همیشه در حال پیشرفت هست، و برای اینکه توی این مهارت، ورزیده بمونی، بهتره بتونی خودت رو به روز نگه داریترندهای جدید، تکنولوژی‌های به روز و زبان‌های برنامه نویسی پیشرفته‌تر،‌ به بازار میان و برنامه نویس‌هایی که از این فرصت خوب استفاده کنن، می‌تونن خودشون رو بین بقیه یه سر و گردن بالاتر بکشن. این طوری هست که حتی یه برنامه نویس با تجربه، وقتی میبینه داره از ترند روز عقب میمونه، مثل یه فرد تازه کار شروع می‌کنه به یادگیری تکنولوژی جدید.وقتی دنیا داره به این سمت حرکت می‌کنه، اگه شما باهاش حرکت نکنید، سرعت دنیا کم نمیشه، بلکه شما عقب می‌مونید. برنامه نویس‌هایی که یه زمانی Visual Basic رو یاد گرفتن و دیگه خودشون رو به روز نکردن، موقعیت‌های شغلی به مراتب کمتری توی بازار براشون وجود داره، نسبت به کسانی که رفتن سمت دات نت. همین طور در مورد Objective C و Swiftوقتی می‌شنوید که داره یه زبون جدید، یه تکنولوژی جدید یا یه ترند جدید میاد، باید شاخک‌هاتون رو تیز کنید و دنبال این باشید که آیا من می‌تونم یه بخشی از این جریان باشم؟ تو دنیای اینترنت ماهواره‌ای، Dial Up نباشید. هیچی نباشه ما بهتر از هر کسی تو این دنیا می‌دونیم که جزئی از بازار نبودن،‌ چه عواقبی میتونه در بلندمدت داشته باشه.مداومت باعث میشه رشد کنیقبلا وب دولوپر بودی و می‌خوای ببینی توی برنامه نویسی موبایل چه خبره؟ فرانت اند کار کردی ولی دوست داری یه چیزی هم از بک اند بدونی؟ این خیلی خوبه.به خاطر اینکه مفاهیم اصلی برنامه نویسی رو بلدی، کار به مراتب راحت‌تری خواهی داشت برای یادگیری مفاهیم جدید. چون قرار نیست همه چیز رو از صفر شروع کنی. با یاد گرفتن کانسپت‌های مهم تر توی تکنولوژی جدید، ممکنه بتونی توی یه مدت کوتاه، اون تکنولوژی رو هم به رزومه‌ات اضافه کنی، حالا شاید نه به عنوان متخصص، ولی به عنوان نیروی آشنا و توانا به انجام کار.با سر زدن به سایت‌هایی مثل learnxinyminutes.com هم می‌تونی یه آشنایی کلی با زبان برنامه نویسی‌ای که می‌خوای یاد بگیری، کسب کنی و از همون جا، منابع دیگه رو هم دنبال کنی. (اگه منبع مناسب دیگه‌ای هم می‌شناختی، خوشحال میشم بهم معرفی کنی)مرتضی هستم، در حال یادگیری فرانت اند. خوشحال میشم توی این مسیر، همراه‌های باحال و مهربون داشته باشم، پس تو LinkedIn میبینمتون.</description>
                <category>مرتضی صمدی</category>
                <author>مرتضی صمدی</author>
                <pubDate>Wed, 02 Aug 2023 09:56:51 +0330</pubDate>
            </item>
                    <item>
                <title>مسئولیت پذیر باشیم</title>
                <link>https://virgool.io/@MorSCoder/%D9%85%D8%B3%D8%A6%D9%88%D9%84%DB%8C%D8%AA-%D9%BE%D8%B0%DB%8C%D8%B1-%D8%A8%D8%A7%D8%B4%DB%8C%D9%85-wjrs60jvp3xm</link>
                <description>در این پست دنباله‌دار، قراره ۱۲ قانون یادگیری بهتر برنامه‌نویسی رو با هم مرور کنیم. با ما همراه باشید تا قانون هفتم رو بهتر بشناسیم. این قانون میگه که چجوری بیشتر مسئولیت پذیر باشیم،‌ و چجوری از دیگران کمک بگیریم.مسئولیت پذیر باشیدبزرگترین مشکل دوره‌های آنلاین اینه که شما رو ملزم نمی‌کنه به مسئولیت پذیر بودن. حتما دوره‌های خفنی رو توی Coursera ،Udemy و سایت‌های آموزش برنامه نویسی به زبون فارسی دیدید. خب اگه شما این دوره رو خریداری کنید ولی وسطاش ولش کنید، چه کسی یقه شما رو می‌گیره؟ آفرین، هیچکس. برای هیچ کی اهمیت نداره که شما دوره رو تموم کنید یا نه،‌ البته تا وقتی که هزینه دوره رو تمام و کمال پرداخت نکرده باشید!البته تقصیر اونها هم نیست. چون خیلی‌ها هم هستن که با استفاده از همین دوره‌ها کارشون رو شروع می‌کنن و با تموم کردن چند تا آموزش مناسب، میرن سراغ اولین کار حرفه‌ای.دو هکر در حال هک کردن پنکهپس حالا که سازنده دوره، مسئولیت اتمام دوره توسط شما رو گردن نمی‌گیره(!)، چه بهتر که خودتون دست به کار بشید. اگه احساس خستگی می‌کنید، بدونید که تنها نیستید (با من می‌شیم حداقل دو نفر?) ولی توی این اوضاعی که هستیم، اگه حواستون نباشه، همیشه می‌تونید دلیلی پیدا کنید برای احساس خستگی کردن.وقتی اول یادگیری هستیم، با اینکه می‌دونیم پیشرفت کمی خواهیم داشت، باید بتونیم بلند مدت دووم بیاریم. ولی معمولا انگیزه درونی ما به اندازه کافی قوی نیست، پس باید یه جوری خودمون رو با این شرایط وفق بدیم. آدمیزاد هزاران سال این کار رو کرده. حالا نوبت ماس.شما باید مسئولیت پذیر رفتار کنید و برای یادگیری بیشتر، تعهد داشته باشید. یادتونه برای بعضی امتحان‌ها تا دیروقت بیدار می‌موندین، یا صبح زود بیدار می‌شدین؟ اگه قبولی و شکست توی این امتحان‌ها براتون مهم نبود،‌ آیا حاضر بودید انقدر براش تلاش کنید؟حالا که هیچ نمره‌ای در کار نیست، باید مسئولیت پذیر بودن رو، خودتون برای خودتون تعریف کنید. اگه اوایل یادگیری هستید، مثلا سعی کنید یه نفر مثل خودتون رو پیدا کنید و با هم برید سراغ شکستن شاخ غول (البته بستگی به زبون برنامه نویسی مورد نظرتون، این غول میتونه یه ذره گوگولی‌تر یا خشن‌تر از بقیه باشه!).یکی که بعضی وقت‌ها بتونه بهتون کمک کنه و بعضی وقت‌ها به کمک‌تون نیاز داشته باشه. اگه بعد از مدتی دیدید یکی از شما پیشرفت بیشتری داشته، بهتره دوباره دنبال یه همسفر هم مرتبه با خودتون بگردید تا این طوری نه هیچ کدوم از شما احساس سرخوردگی داشته باشه و نه به خاطر تنبلی یکی از اعضا، اون یکی وقتش تلف بشه! (یه ذره بی‌رحمانه هست ولی حقیقتا دنیا منتظر هیچ کدوم از شما نمیمونه!)نوشیدن قهوه هیچ ربطی به نوشتن کد بهتر ندارد. عکس تزیینی است!اگه با دوستاتون باشگاه رفته باشید می‌دونید که چقدر خوبه یه نفر که تقریبا باهاش هم سطح هستید کنارتون باشه. بعضی روزها که شما حال ندارید، دوستتون میاد دنبالتون یا پیگیرتون میشه و بعضی وقت‌ها هم برعکس (پس باشگاه هم برید یا حداقل تو خونه ورزش کنید تنبلا?)(وی آینه را از خود دور می‌نماید)بالاتر از بدی‌های دوره آموزشی آنلاین گفتم، یه کم از خوبی‌هاش بگم. یکی از راه‌های پیدا کردن افراد این چنینی، شرکت توی بوتکمپ‌ها و دوره‌هایی هست که بهتون کار گروهی رو هم یاد میدن. یا اینکه می‌تونید توی شبکه‌های اجتماعی مختلف دنبال همچین گروه‌هایی بگردید.همیشه هم خوب نیست که دنبال دوره‌های رایگان باشید. دوره رایگان وقتی خوبه که کیفیت خوبی داشته باشه و در ضمن شما اون دوره رو تا انتها پیش برید. اگه همچین آدمی هستید، خیلی عالیه. با دیدن دوره‌های رایگان و بعدش خوندن داکیومنت در سایت اصلی، می‌تونید عمق آموخته‌هاتون رو زیاد کنید.ولی اگه شما هم مثل بیشتر افراد به انگیزه بیرونی بیشتر احتیاج دارید تا انگیزه درونی،‌ بهتره یه کم سر کیسه رو شل کنید و به جای اتلاف وقت، یه دوره خوب ثبت نام کنید تا به خاطر هزینه‌ای که صرف کردید، مجبور باشید حداکثر انرژی‌تون رو بذارید، چون در غیر این صورت، به احتمال زیاد برای یادگیری چیزی که براش هزینه نکردین، وقت کافی نخواهید گذاشت، مخصوصا اگه از یه جایی به بعد، چیزهایی که باید یاد بگیرید، سخت تر از حد دانش فعلی شما باشه.یه خوبی دیگه دوره‌های گروهی خوب اینه که می‌تونید سطح خودتون رو با دیگران مقایسه کنید و ببینید کجای کار هستید. میتونید از منتورها بپرسید که باید چقدر وقت بذارید تا بتونید پروژه مورد نظرتون رو به خوبی پیاده سازی کنید یا توی بازار کار، جایگاه مناسب خودتون رو پیدا کنید.در آخر اینکه کدی که می‌زنید رو گردن بگیرید و به اطرافیانتون که کدنویسی بلد هستن نشون بدید، یا توی گیتهاب پروژه اپن سورس بسازید و یا پروژه‌های دیگران رو انگولک کنید. این طوری می‌تونید بفهمید کدتون چقدر ایراد داره و کجاهارو می‌تونید ریفکتور کنید.حالا که تا اینجا اومدید، این عکس قشنگ رو ببینیدحتی اگه یه برنامه‌ای نوشتید ولی کسی که می‌خواهید بهش برنامه‌تون رو نشون بدید، کدنویسی بلد نیست، حداقل می‌تونید ازش بپرسید چجوری می‌تونید برنامه‌تون رو برای ایشون (به عنوان یه کاربر عادی که دید فنی به قضیه نداره) بهتر کنید.ممکنه یه کاربر عادی چیزی رو متوجه بشه که خودتون به عنوان سازنده، اصلا روحتون خبردار نبود!مرتضی هستم. یه نفر که هنوزم در حال یادگیری فرانت اند هست، یه تولید کننده محتوا و یه کسی که دنبال همکاری با آدم‌های باحال و یاد گرفتن ازشون هست.در آخر اگه از این پست خوشتون اومد ❤ و نظر یادتون نره. اگه خوشتون نیومد هم ممنون میشم انتقادتون رو بدونم.</description>
                <category>مرتضی صمدی</category>
                <author>مرتضی صمدی</author>
                <pubDate>Tue, 01 Aug 2023 14:52:23 +0330</pubDate>
            </item>
                    <item>
                <title>کپی کار باش!</title>
                <link>https://virgool.io/@MorSCoder/%DA%A9%D9%BE%DB%8C-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7%D8%B4-ohdbvfo7df8s</link>
                <description>در این پست دنباله‌دار، قراره ۱۲ قانون یادگیری بهتر برنامه‌نویسی رو با هم مرور کنیم. با ما همراه باشید تا قانون ششم رو بهتر بشناسیم. این قانون میگه اگه تازه کار هستیم، اشکالی نداره که کارمون رو با کپی کردن ایده‌های موجود شروع کنیم.Be a Copycatدر شروع  برنامه نویسی شاید ترغیب بشی که همه زبون‌ها رو دونه دونه امتحان کنی و هر کدوم رو تا حدی یاد بگیری (‌مثل کار اشتباهی که من کردم). مثلا یه روز آموزش #C رو شروع می‌کنی، یه مدت کتاب آموزش پایتون رو ورق می‌زنی، یه بار ویدیوهای آموزشی Java رو میبینی و چند وقت بعد خودت رو در حال یادگیری زبان کوچیک شده جاوا، یعنی جاوااسکریپت (!) پیدا می‌کنی در حالی که تازه از Hangover خارج شدی.اگه تو هم داری این کارها رو میکنی، متاسفانه خبر بدی برات دارم. این کار به جای اینکه باعث بشه توی برنامه نویسی پیشرفت کنی، بیشتر باعث میشه گیج بشی.ممکنه حتی جدی‌تر عمل کنی. کتاب بخونی و جاهای مهم رو هایلایت کنی. ولی وقتی چند وقت بعد برمیگردی سراغ مبحثی که قبلا خونده بودیش، میبینی که چیزی از مطالبش یادت نیست. چون کتاب آموزشی زبان برنامه نویسی محبوبت رو مثل یه رمان خوندی و تمومش کردی.البته که خوندن کتاب بد نیست. حتی خوبه که به عنوان یک مرجع برای عمیق کردن دانش خودت، هر چند وقت یه بار سری بهشون بزنی، روش درست انجام دادن بعضی کارها رو مرور کنی و با کاری که برنامه نویس‌های با تجربه‌تر یا به اصطلاح Clean Coder ها انجام میدن آشنا بشی، ولی اگه میخوای واقعا یاد بگیری، لطفا یه چیزی بساز!چی بسازم؟ چطوری؟هیچ ایده‌ای نداری؟ اصلا اشکال نداره. خیلی‌ها در شروع کارشون مثل تو بودن. ولی باید از یه جایی شروع کنی. تا وقتی که راه بیفتی و  ایده ناب خودت رو پیدا کنی، کپی کردن ایده دیگران چطوره؟ شاید قبلا فکر کردی نرم افزار Notepad در مقایسه با ++Notepad خیلی امکانات کمتری داره. چطوره یه Notepad خودت بسازی و اگه حال داشتی بهترش کنی؟میدونی نرم افزار Paint چطوری کار میکنه؟ میتونه شروع خوبی برای جستجو و یادگیری باشه.اگه بازی کردن رو دوست داری،‌ Minesweeper هم بد نیست.اگه یه ذره تجربه برنامه نویسی با Javascript داری و میخوای React رو هم یاد بگیری، میتونی بری سراغ داکیومنت‌های سایت اصلی React و ساختن Tic-Tac-Toe یا همون دوز خودمون رو در کنار یادگیری لایبرری React تمرین کنی.ساختن این چیزها نه تنها میتونه باعث بهتر یاد گرفتن زبان برنامه نویسی مورد نظرت باشه، بلکه کمک میکنه توانایی حل مسئله رو یاد بگیری و با جستجو کردن در فروم‌های مختلف، بفهمی که چطور میتونی در صورت نیاز، از بقیه کمک بگیری.اگه همین اول کار قصد داری بتونی آپولو هوا کنی،‌ به احتمال زیاد کسی رو پیدا نمیکنی که بتونه کمکت کنه، مگر اینکه توی ناسا آشنا داشته باشی (ووی ووی ووی خندیدم ?)در عوض با ساختن اپ‌های ساده‌تر و رسیدن به یه کپی تمیز ازشون، میتونی پاهات رو بزاری جای پای کسانی که قبل‌تر از تو شروع کردن به برنامه نویسی و الان توی شرکت‌های بزرگ مشغول انجام دادن شغل مورد علاقه و دنبال کردن آرزوهاشون هستن.خوبی اجرای ایده‌های قبلی اینه که افراد زیادی قبل از تو سعی کردن این کار رو بکنن و احتمالا به سوال‌هایی که برات پیش میاد برخورد کردن، پس شانس اینکه باگ‌های نرم افزارت رو با جستجو کردن و سوال پرسیدن در اینترنت پیدا کنی، بیشتر خواهد بود.اگه دوست داشتید می‌تونید از اینجا یه قهوه مهمونم کنید (البته اینم بگم که این کار تاثیری در ادامه راه نداره و هر موقع وقت کنم به ترجمه و انتشار پست‌های بعدی خواهم پرداخت)در آخر اگه از این پست خوشتون اومد ❤ یادتون نره. اگه خوشتون نیومد هم ممنون میشم نظر و انتقادتون رو بدونم.</description>
                <category>مرتضی صمدی</category>
                <author>مرتضی صمدی</author>
                <pubDate>Thu, 01 Sep 2022 20:39:37 +0430</pubDate>
            </item>
                    <item>
                <title>اشکالی نداره که چیزی رو بلد نباشی</title>
                <link>https://virgool.io/Rocket/%D8%A7%D8%B4%DA%A9%D8%A7%D9%84%DB%8C-%D9%86%D8%AF%D8%A7%D8%B1%D9%87-%DA%A9%D9%87-%DA%86%DB%8C%D8%B2%DB%8C-%D8%B1%D9%88-%D8%A8%D9%84%D8%AF-%D9%86%D8%A8%D8%A7%D8%B4%DB%8C-gaiv5cvbeegb</link>
                <description>در این پست دنباله‌دار، قراره ۱۲ قانون یادگیری بهتر برنامه‌نویسی رو با هم مرور کنیم. با ما همراه باشید تا قانون پنجم رو بهتر بشناسیم. این قانون بیان میکنه که از ندونستن و جستجو کردن نترسید. بهترین برنامه نویس‌ها هم از همین جستجوها شروع کردن.It&#039;s OK to not knowظاهرا برنامه نویس بودن یکی از حرفه‌هایی هست که بیشترین افراد مبتلا به سندروم ایمپاستر رو شامل میشه.سندرم ایمپاستر یک پدیده روانی هست که افراد مبتلا، حس می کنن دارن دیگران رو فریب میدن و اونقدری که نشون میدن، مهارت ندارن.سندروم ایمپاستربرنامه نویس‌هایی که اینگونه هستن، یه حس خود تخریب‌گر و انتقادی نسبت به خودشون دارن و دائما احساس می‌کنن که دیگران توی برنامه‌نویسی از اونها بهتر هستن. اگه شما هم این حس رو دارین، باید بدونید که تنها نیستید، چرا که مطالعات نشون میدن نزدیک ۷۰ درصد افراد دچار سندرم imposter هستن.توی سایت Quora یه نفر سوال پرسیده بود که اگه من توی گوگل یا یه شرکت بزرگ دیگه کار کنم و هنگامی که دارم از استک اورفلو به عنوان منبع استفاده می‌کنم، مچم رو بگیرن، اخراج میشم؟برنامه نویس‌هایی از گوگل، آمازون و چند تا شرکت بزرگ دیگه جواب‌های جالبی داده بودن. هرکسی که به عنوان یه توسعه دهنده کار کرده باشه، میدونه که به دنبال منبع نبودن و سرسری کد زدن اشتباه بسیار بدتریه. در حقیقت، فکر نمی‌کنم حتی یه برنامه نویس توی گوگل پیدا بشه که از stackoverflow استفاده نکرده باشه.بسیاری از برنامه نویس‌های تازه کار میترسن که در حال سرچ کردن منبع‌های مختلف دیده بشن یا اگه سوالی از کسی بپرسن، بقیه این طوری بهشون نگاه می‌کنن که اینها برنامه نویسی بلد نیستن.ولی اشتباه همین جا هست. هیچ کسی نمیتونه همه اطلاعات مرتبط رو توی مغزش جا بده. برای مثال این متد توی  iOS رو در نظر بگیرید:- (id)initWithBitmapDataPlanes:( unsigned char **)planes pixelsWide:( NSInteger )widthpixelsHigh:( NSInteger )height bitsPerSample:( NSInteger )bpssamplesPerPixel:( NSInteger )spp hasAlpha:(BOOL)alpha isPlanar:(BOOL)isPlanarcolorSpaceName:( NSString *)colorSpaceNamebitmapFormat:( NSBitmapFormat )bitmapFormat bytesPerRow:( NSInteger )rowBytesbitsPerPixel:( NSInteger )pixelBits;تقریبا ۴۰۰ کاراکتر کد برای یک متد. در برنامه نویسی iOS بیش از ۸۰۰ کلاس و ۹۰۰۰ متد وجود داره که روز به روز هم داره به تعدادشون اضافه میشه!در طراحی وب، هر هفته یک فریمورک میاد بیرون. بنابراین هیچکی انتظار نداره که شما همه کدهای مورد نیاز رو از حفظ باشین. اصلا این دلیلیه که ما برنامه نویس‌ها وجود داریم. ما می‌تونیم کامپیوتر رو وادار کنیم تا کارهای کسل کننده رو به جای ما انجام بده. برای مثال، کدی که برای ضبط صدا توی iOS داریم، با یه سرچ ساده به دست میاد، بنابراین برای چی باید اون رو حفظ کنیم؟مهارتی که بیشتر کارفرماها دنبالش هستن، مهارت فکر کردن هست.دانش کامل در مورد یک کار وقتی ارزش داشت که کسب اطلاعات در مورد اون کار خیلی سخت بود. زمانی بود که فقط افراد از طبقه بالای جامعه به کتاب و معلم‌های خوب دسترسی داشتن. ولی الان، همه به هر اطلاعاتی که دنبالش باشن دسترسی دارن و همه اینها فقط با یک کلیک موس و یا تاچ گوشی باهاشون فاصله داره. بنابراین داشتن اطلاعات داره ارزشش رو از دست میده، ولی مهارت فکر کردن چیزیه که همیشه ارزش داشته و حالا حالاها هم ادامه خواهد داشت.بنابراین از سرچ کردن نترسید، از سوال کردن توی استک اورفلو یا پیدا کردن منبع برای حل کردن یه مساله نترسید. بهترین برنامه نویس‌ها هم این کار رو میکنن.مهارتی که لازم هست خودتون رو درش قوی کنید، پرسیدن سوال مناسب و فهمیدن جواب هست. هیچ نکته مثبتی در کپی کردن کد از استک اورفلو وجود نداره اگه شما نفهمید که اون کد چطوری کار میکنه.استک اورفلو بر اساس اعتبار، جواب هارو مرتب میکنه و سعی میکنه جواب‌هایی که از همه سرراست تر هستن رو به عنوان جواب درست علامت بزنه و بر اساس upvote ها اونها رو میاره بالا یا پایین.البته در بیشتر مواقع، این که در اولین فرصتی که گیر کردید برید سراغ stackoverflow اشتباهه. بلکه سعی کنید اول خودتون جواب درست رو پیدا کنید. مثلا برنامه شما الان جوری که انتظار دارید کار نمیکنه، ولی قبل از اینکه ۳ خط آخر رو تایپ کنید، همه چیز سر جاش بود. بنابراین باید ببینید چه چیزی در این سه خط باعث شدن برنامه از کار بیفته؟ هرچی با دیباگر بیشتر کار کنید، کدهاتون رو بهتر می فهمید و دفعات بعدی به طور پیشفرض اون اشتباهات رو انجام نمیدین.حالا اگه هرکاری کردید، نتونسید متوجه مشکل بشید، توی گوگل دنبال راه حل بگردید. دنبال یک کوئری مشابه بگردید یا ارورهایی که باگ، باعث نمایش اونها شده رو سرچ کنید. اگه تازه کار باشید، به احتمال بسیار زیاد،‌ قبل از شما یه نفر دیگه هم همین خطا رو داشته و براش یه آموزش ساده و سرراست نوشته باشه تا متوجه باگ بشید.البته رفته رفته که شما حرفه‌ای تر می‌شید، مشکلاتی که سر راهتون قرار می‌گیرن نامفهوم تر از قبل میشن. اما اگه نکات برنامه نویسی خوب رو رعایت کنید، شما هم رفته رفته به برنامه نویس بهتری تبدیل میشید که توانایی این رو داره که مشکلات رو خودش حل کنه یا بدونه دقیقا باید کجا دنبال راه حل بگرده.دلیل دیگه‌ای که لازمه اول توی گوگل دنبال جواب سوال بگردید اینه که استک اورفلو بر اساس تاریخ، سوال و جواب هارو مرتب میکنه و نه بر اساس محبوبیت. بسیاری از سوال‌هایی که در ابتدا پیش میان، سال‌ها قبل پرسیده شدن ولی هنوز هم محبوب هستن.بنابراین آگاهانه سوال کنید و جواب‌هارو از کامیونیتی به سرعت به دست بیارید. یه روزی میاد که خود شما به حدی حرفه‌ای شدید که جواب سوال برنامه‌نویس‌های نسل بعد رو در اختیارشون میذارید (⓿_⓿)اگه از این مطلب خوشتون اومد یا حال نکردید،‌ ❤ و نظر یادتون نره!</description>
                <category>مرتضی صمدی</category>
                <author>مرتضی صمدی</author>
                <pubDate>Thu, 18 Aug 2022 18:22:57 +0430</pubDate>
            </item>
                    <item>
                <title>آشنایی با تابع callback function ،first-class و ...</title>
                <link>https://virgool.io/@MorSCoder/%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-%D8%AA%D8%A7%D8%A8%D8%B9-callback-function-first-class-%D9%88-igcw3xkm56e6</link>
                <description>تابع first-class یعنی چی؟ چه زبان‌های برنامه‌نویسی تابع first-class دارن؟ callback function یعنی چی؟ Higher order function کدوم‌ها هستن؟ بیایید با این اصطلاح‌ها بیشتر آشنا بشیم. وسطش هم چند تا اصطلاح دیگه داریم که به خاطر ضیغ /ذیق /زیغ /ظیق /... وقت، (اصلا کمبود وقت) بعدا بهش می‌پردازیم ¯\_(ツ)_/¯زبان‌هایی رو میگیم تابع first-class دارن، که با تابع در اونها مثل هر متغیر دیگه‌ای رفتار میشه. در این زبان‌ها (مثل جاوااسکریپت)، می‌تونیم:۱. یک تابع رو به عنوان آرگومان بدیم به توابع دیگه،function sayHello() {
   return &amp;quotHello, &quot;
}
function greeting(helloMessage, name) {
  console.log(helloMessage() + name);
}
// Pass `sayHello` as an argument to `greeting` function
greeting(sayHello, &amp;quotJavaScript!&amp;quot);
// Hello, JavaScript!۲. با return کردن داخل یک تابع، بَرِش گردونیمfunction sayHello() {
   return function() {
      console.log(&amp;quotHello!&amp;quot);
   }
}۳. به عنوان یک مقدار (value) بدیمش به یه متغیر.const foo = function() {
   console.log(&amp;quotfoobar&amp;quot);
}
foo(); // Invoke it using the variable
// foobarتوجه: حتی اگه تابعی که assign می‌کنید به یک متغیر، خودش نام داشته باشه، باز هم می‌تونید از نام اون متغیر برای صدا زدن (invoke کردن) تابع استفاده کنید.البته نامگذاری برای فانکشن در اینجا کمک میکنه موقع دیباگ کردن، راحت تر خطا رو پیدا کنید، اما در روند invoke کردن توسط نام متغیری که این تابع رو در خودش جای داده، هیچ تاثیری نداره.بازم توجه: تابعی که به عنوان یک آرگومان به تابع دیگه میدیمش، callback function نام داره.از callback function وقتی استفاده می‌کنیم که قرار باشه یه سری روال روتین و یا action انجام بشه، ولی این کارها زمانی باید انجام بشن که تابع بیرونی صداشون بزنه (invoke کنه)توجه‌تان مستدام: البته توی واقعیت، از این callback ها بیشتر وقتی استفاده میشه که قرار باشه اجرای کد، بعد از تموم شدن یک فعالیت asynchronous، ادامه پیدا کنه، که به این نوع callback ها میگیم asynchronous callbacks. یه ذره سخت شد؟ مثال پایین رو بخونیم که دیگه خیلی سخت شه :))* یک callback function داریم که داخل یک ()then. اجرا میشه* خود این ()then. بعد از یک promise قرار گرفته* بعد از اینکه این promise به جواب رسید یا ریجکت شد، این callback function اجرا میشهاز این ساختار در web API های مدرن مثل ()fetch استفاده شده.توجه (قول میدم آخرین توجه باشه): مورد دوم یعنی تابعی که یک تابع دیگه رو برمی‌گردونه (return می‌کنه) یک Higher-Order Function نام داره.نوبت شماست. شما با چه اصطلاح هایی بیشتر روبرو میشین؟ کدوم اصطلاح‌ها رو بهش برخورد کردین و حس کردین سخته ولی بعدا که پیش رفتین دیدین نه اونقدرها هم سخت نبود بلکه خیلی خیلی سخت بود؟!اگه خوشتون اومد ❤️ یادتون نره.سعی کردم این نوشته رو یه ذره از حالت جدی بودن خارج کنم و دوست دارم نظرتون رو در مورد این طرز نوشته‌ها بدونم. راستی برای آموزش برنامه نویسی جاوااسکریپت/فرانت اند و تولید محتوا در زمینه برنامه نویسی، تکنولوژی، گجت‌های روز و اسمارت‌فون‌ها می‌تونین روی من حساب کنین ;)منابع:https://developer.mozilla.org/en-US/docs/Glossary/First-class_Functionhttps://developer.mozilla.org/en-US/docs/Glossary/Callback_function</description>
                <category>مرتضی صمدی</category>
                <author>مرتضی صمدی</author>
                <pubDate>Wed, 08 Dec 2021 16:36:22 +0330</pubDate>
            </item>
                    <item>
                <title>چیزی که می‌نویسید رو بفهمید!</title>
                <link>https://virgool.io/@MorSCoder/%DA%86%DB%8C%D8%B2%DB%8C-%DA%A9%D9%87-%D9%85%DB%8C-%D9%86%D9%88%DB%8C%D8%B3%DB%8C%D8%AF-%D8%B1%D9%88-%D8%A8%D9%81%D9%87%D9%85%DB%8C%D8%AF-xd3w9fkgg7s0</link>
                <description>در این پست دنباله‌دار، قراره ۱۲ قانون یادگیری بهتر برنامه‌نویسی رو با هم مرور کنیم. با ما همراه باشید تا مورد چهارم یا فهمیدن چیزی که می‌نویسیم رو بهتر بشناسیم.مشکلی که اکثر آموزش‌های برنامه نویسی دارن اینه که میخوان دقیقا به شما بگن چه کاری رو باید انجام بدید تا به فلان نتیجه برسید.این دوره‌ها معمولا این جوری شروع میشن که؛ اولش انگار یه برنامه نویس مهربون قصد داره روش انجام دادن همه چیز رو مرحله به مرحله بهتون یاد بده.ولی مدرس این دوره، بعد از یه مدت متوجه وخامت اوضاع و طولانی شدن پروسه آموزش میشه و ترجیح میده روش سریع تری رو در پیش بگیره.اگه قبلا آموزش‌های ویدیویی دیدید، ممکنه به این قضیه برخورد کرده باشید که آموزش دهنده، اولش همه جزيیات رو براتون توضیح میده ولی وسط‌های راه که میرسه و از مفاهیم ساده که عبور کردید، یهو مثلا میگه:‘خب حالا دیتابیس ابری رو راه اندازی میکنیم و ...’!و خیلی سریع ازش میگذره. اصلا هم توجه نمیکنه که این آموزش برای افراد مبتدی طراحی شده بود!این قضیه چند تا مشکل به وجود میاره. مهم ترینش اینه که؛ کسی که داره از روی این آموزش جلو میره، کدهارو کپی میکنه، ولی خودش اصلا نمیدونه این کد از کجا اومد و چه کاری رو به چه صورت انجام داد!برای مثال چرا این خط رو اضافه کردیم بعد از parse کردن JSON؟چرا این دیکشنری رو مثل دفعه های قبلی پیاده نکردیم؟چجوری می‌تونیم تغییرش بدیم به چیزی که مورد نیازمون هست؟خیلی آسونه که خودتون رو مشغول یکی از این آموزش‌ها کنین، چون اول دوره، به شما قول دادن طرز ساخت کال آف دیوتی رو آموزش بدن، ولی وسطش متوجه بشین بیشتر چیزهایی که می‌نویسین رو سر در نمیارین. یه عالمه کد جلوتونه و اگه یه جاش کار نکنه نمیدونید چرا!سه ساعت وقت گذاشتید و تنها چیزی که یاد گرفتید اینه که کدنویسی به دردتون نمیخوره!بیایید این بازی کثیف رو تموم کنیم  ¯\_(ツ)_/¯اگه به آموزشی برخورد کردید که خیلی زیاد از عبارت ‘این تابع رو این طوری می‌نویسیم’ استفاده میکنه ولی هیچ کدوم از کدها رو توضیح نمیده و شما هم متوجه طرز کار برنامه نمی‌شید؛ بیشتر از این وقتتون رو تلف نکنین و اون آموزش رو بذارید کنار.چون حداقل اون آموزش برای سطح فعلی شما مناسب نیست و فقط باعث میشه بعد از یه مدت که نتونستید چیزی که می‌خواهید رو پیاده کنید، شور و شوقتون رو نسبت به برنامه نویسی از دست بدید.یادتون نره ماهی‌های زیادی تو دریا وجود دارن. اگه این نشد، یکی دیگه!البته بعضی وقت‌ها هم هست که مدرس سعی میکنه چیزی که انجام میده رو توضیح بده، ولی باز هم شما سر در نمیارید. در این حالت، دارید یه آموزش که برای سطح پیشرفته تدارک دیده شده رو نگاه می‌کنید.بازم باید مراقب وقتتون باشید چون این دوره هم کمک تون نمیکنه. البته خیلی وسوسه کننده است وقتی ببینید تیتر یه پست بهتون میگه بیایید یه چیز فوق العاده رو با هم بسازیم یا بگه این کار رو همه میتونن انجام بدن. ولی گول این حرف‌ها رو نخورید و برای وقت و هزینه‌تون بیش از این ارزش قایل باشید.بعضی وقت‌ها باید اول مقدمات رو خوب یاد بگیرید و پایه تون رو قوی کنید. بعد برگردید به همون آموزش و دانش خودتون رو عمیق تر کنید.یه کوهنورد خوب، یه کوهنورد زنده است!برای رسیدن به قله باید اول بدونید چطوری باید دامنه کوه رو برید بالا. یه جاهایی ممکنه هموار باشه و حتی بتونید بدویید، ولی یه جاهایی باید سینه خیز برید بالا.باید آموخته‌های جدید رو روی دانش قبلی خودتون سوار کنید و برسید به قله برنامه نویسی.در صورتی که شیب مسیری که دارید ازش بالا می‌رین خیلی زیاده، اگه مواظب نباشید میفتین پایین و تموم. برعکس؛ اگه شیب مسیر پیش رو خیلی کمه و هر چقدر میرین به قله نزدیک نمیشین، ممکنه حوصله تون سر بره و بیخیال ادامه مسیر بشین.البته این رو هم در نظر داشته باشید که سرعت یادگیری توی هر شخص با دیگری متفاوته و نمیشه یه نسخه برای همه پیچید. ممکنه شما یا دوستتون یه مبحث رو سریع تر از دیگری یاد بگیره. ولی در حالت کلی، این کدها یه سری روال منطقی هستن که هر کسی میتونه با تلاش کردن و تمرین، اون‌ها رو درک کنه.به خاطر همین، بهترین کار برای مدیریت زمان و استفاده بهتر از وقتتون اینه که وقتی می‌بینید مطلبی رو خیلی راحت می‌فهمید، سرعت پخش اون ویدیو رو ببرید بالا یا سرعت مطالعه اون مبحث رو بیشتر کنید. اما اگه می‌بینید مطلبی رو خوب متوجه نشدید، play speed رو بیارید پایین، یا بعداً دوباره همون ویدیو رو ببینید و اون مطلب رو بوکمارک کنید و بعدا بخونید، تا اینکه مفهومش توی ذهنتون خوب جا بیفته.منبعدر آخر اینکه اگه این مطلب رو دوست داشتید، ❤️ یادتون نره.</description>
                <category>مرتضی صمدی</category>
                <author>مرتضی صمدی</author>
                <pubDate>Fri, 19 Nov 2021 22:13:42 +0330</pubDate>
            </item>
                    <item>
                <title>نکات برنامه نویسی: حفظ نکنید، جستجو کنید و بفهمید</title>
                <link>https://virgool.io/coderlife/%D9%86%DA%A9%D8%A7%D8%AA-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%AD%D9%81%D8%B8-%D9%86%DA%A9%D9%86%DB%8C%D8%AF-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88-%DA%A9%D9%86%DB%8C%D8%AF-%D9%88-%D8%A8%D9%81%D9%87%D9%85%DB%8C%D8%AF-lxqoggliq05f</link>
                <description>اگه دارید برنامه نویسی رو از طریق حفظ کردن چیزها یاد می‌گیرید، باید بگم مسیر اشتباهی رو در پیش گرفتید. حفظ کردن یکی از بدترین کارهاییه که می‌تونید با خودتون بکنید وقتی دارید کدنویسی یاد می‌گیرید. البته اگه دارید تاریخ می‌خونید، یا با ادبیات آشنا می‌شید، حفظ کردن کمکتون می‌کنه ولی توی برنامه نویسی؟ فکر نکنم!یک زبان برنامه نویسی، خیلی بزرگ‌تر از چیزیه که بخواهید با حفظ کردن تمام، یا بعضی قسمت‌هاش، کار خودتون رو آسون کنید. توابع، متدها، کلاس‌ها، کتابخانه‌ها و ...انقدری زیاد هستن که تقریبا میشه گفت محاله که همه اونها و روش استفاده ازشون رو حفظ کنید.عکس تزیینی است. شما با گوگل کردن برنامه نویس بهتری می‌شوید!به جای این کار، از ابتدا تمرکزتون رو بذارید روی یادگیری مفاهیم و روش استفاده از اونها. چون خوشبختانه توی برنامه نویسی، مفهوم‌ها خیلی تغییر نمی‌کنن و تقریبا با پیشرفت زبان‌های برنامه نویسی، کم پیش میاد یک مفهوم به طور کلی عوض بشه و دیگه قابل استفاده نباشه. مثلا وقتی یاد بگیرید چجوری متغیرها رو تعریف کنید، یا یه تابع چجوری کار میکنه، یا مثلا توی جاوااسکریپت Closure چیه و چه استفاده‌ای داره، تقریبا بیشتر چیزهایی که قراره بدونین رو میدونین. بقیه رو هم با یه جستجوی ساده می‌تونید بهش برسید.اما اگه بخواهید خودتون رو درگیر حفظ کردن اینها بکنید کار شما ساده نخواهد بود. برای مثال وقتی دارید توابع رو می‌خونید،‌ می‌رسید به تابع split یا join یا querySelector و هزار تا تابع و متد دیگه، که هر کدوم ممکنه یه جایی به دردتون بخوره.به جای این کار، وقتتون رو روی خوندن داکیومنت بگذارید و از طریق یاد گرفتن مفاهیم و طرز استفاده از اونها برید جلو. وقتی قرار شد مثلا دو تا رشته رو به هم وصل کنید، همین رو سرچ می‌کنید و می‌رسید به تابع join. بعد که دو تا مثال از نحوه کار کردن این تابع دیدید، ازش استفاده می‌کنید و تموم. در ادامه اگه باز هم join به کارتون اومد، با یه جستجو بهش می‌رسید. و وقتی چند بار این کار رو انجام بدید، این تابع خود به خود رفته توی حافظه‌تون و نیازی به سرچ کردنش نخواهید داشت.یا مثلا بعد از اینکه طرز کار با توابع رو یاد گرفتید، می‌رسید به جایی که می‌خواهید کار x رو انجام بدید و y رو برگردونید. اگه جستجو کردید و این تابع وجود داشت که خب حله، ولی اگه نه، خودتون دست به کار می‌شید و تابع مورد نظرتون رو می‌نویسید.دلیل بعدی برای حفظ نکردن اینه که خود توابع در زبان‌های برنامه نویسی همیشه ثابت نیستند و ممکنه توی نسخه بعدی تغییر کنن،‌ یا deprecated (منسوخ)‌ بشن، ولی وقتی شما با خوندن داکیومنت آشنا باشید، فرق بین دونستن و ندونستن چیزی، براتون به اندازه یه سرچ ساده خواهد بود.اگه شما به عنوان یک برنامه نویس، پیوسته در حال یادگیری مفاهیم باشید و یاد بگیرید که چجوری بهتر یاد می‌گیرید (!)، توی بازار کار هم موقعیت بهتری خواهید داشت.میشه گفت برنامه نویسی چیزی شبیه به ریاضی هست. توی ریاضی شما یک بار عملگر جمع، تفریق، ضرب و تقسیم رو که آموزش ببینید، بعدش هر عبارتی جلوتون قرار بدن، جواب رو با محاسبه به دست میارید و نمیرید سراغ حفظ کردن جواب عملگر مورد نظر روی دو عدد (البته اگه حفظ کردن جدول ضرب دوران ابتدایی رو نادیده بگیریم. (・_・)منبعدر پایان، اگه این مطلب به دردتون خورد، ❤️ یادتون نره.خوشحال میشم دیدگاه‌ها و انتقادهاتون رو به اشتراک بگذارید.</description>
                <category>مرتضی صمدی</category>
                <author>مرتضی صمدی</author>
                <pubDate>Mon, 27 Sep 2021 17:12:53 +0330</pubDate>
            </item>
                    <item>
                <title>فعالسازی فرمت‌های AAC، AC3، WMA، AMR در Audacity</title>
                <link>https://virgool.io/@MorSCoder/%D9%81%D8%B9%D8%A7%D9%84%D8%B3%D8%A7%D8%B2%DB%8C-%D9%81%D8%B1%D9%85%D8%AA-%D9%87%D8%A7%DB%8C-aac-ac3-wma-amr-%D8%AF%D8%B1-audacity-k4tmhrsnx6kj</link>
                <description>سلام.امروز می‌خوام یه کم از برنامه نویسی فاصله بگیرم و یه آموزش سریع برای فعال‌سازی فرمت‌های AAC، AC3، AMR، WMA توی نرم افزار Audacity روی ویندوز آماده کنم.فرمت AAC همونیه که روی بیشتر گوشی‌های جدید برای ضبط صدا استفاده میشه.چرا نرم افزار Audacity؟ چون یکی از قوی‌ترین و در عین حال سبک و سر راست ترین نرم افزارها برای ویرایش صدا هست و تو پلتفرم‌های مختلف مثل ویندوز، لینوکس و مک به صورت رایگان موجوده. با این نرم افزار میتونین نویز و خش خش فایل های صوتی رو حذف کنید یا نویز اضافه کنید. حجم صدا رو بالا و پایین کنید. افکت صوتی اضافه کنید و هزاران جوایز نقدی و غیر نقدی دیگر...چرا روی ویندوز؟ چون در حال حاضر بیشترین استفاده رو داره. البته اگه از لینوکس استفاده می‌کنید و راهش رو پیدا نکردید کامنت بذارید تا آموزش اون رو هم براتون آماده کنم.خب بریم سراغ اصل کار:تصویر محیط اولیه نرم افزار Audacity 1. از منوی Edit آخرین گزینه یعنی Preferences رو انتخاب کنید. (با میانبر Ctrl + P هم می‌تونید همین کار رو انجام بدید.)2. صفحه تنظیمات باز میشه. از سمت چپ زیر منوی Libraries رو باز کنید و روی دانلود روبروی FFmpeg Library کلیک کنید تا سایت Audacity توی مرورگرتون باز بشه.3. از صفحه باز شده روی گزینه FFmpeg installation section کلیک کنید.4. روی Installing FFmpeg for Windows کلیک کنید5. روی FFmpeg download page کلیک کنید.6. روی ffmpeg-win-2.2.2.exe کلیک کنید تا نرم افزار مورد نیاز رو دانلود کنید و بعد نصبش کنید. مسیر نصب رو یادتون باشه چون مورد بعدی  لازمش داریم.7. بعد از نصب نرم افزار بالا، بیایید داخل محیط نرم افزار و Locate رو بزنید.حالا Browse کنید و مسیر فولدری که نرم افزار بالا رو نصب کردید رو بهش بدید.تموم.بعد از انجام دادن این آموزش میتونین فایل‌های AAC، AC3، AMR، WMA مورد نظرتون رو مثل آب خوردن ویرایش کنید و حتی صدای فایل های ویدیویی رو مستقیما import کنید.در آخر اینکه اگه این مطلب رو دوست داشتید، ❤️ یادتون نره.</description>
                <category>مرتضی صمدی</category>
                <author>مرتضی صمدی</author>
                <pubDate>Sun, 26 Sep 2021 00:47:21 +0330</pubDate>
            </item>
                    <item>
                <title>نکات برنامه‌نویسی:‌ بهترین زبان برنامه نویسی کدومه؟!</title>
                <link>https://virgool.io/fboard/%D9%86%DA%A9%D8%A7%D8%AA-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%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-%DA%A9%D8%AF%D9%88%D9%85%D9%87-sfmax08tvgph</link>
                <description>در این پست دنباله‌دار، قراره ۱۲ قانون یادگیری بهتر برنامه‌نویسی رو با هم مرور کنیم. با ما همراه باشید تا مورد سوم یا بهترین زبان برنامه نویسی رو بهتر بشناسیم.جواب کوتاه: هیچ زبانی وجود نداره که همه جا بهترین گزینه باشه!جواب بلند:وقتی در مورد شروع برنامه نویسی حرف می‌زنیم، معمولا این بحث پیش میاد که کدوم زبان رو باید ابتدا یاد گرفت؟ بعضی‌ها میگن پایتون بهترین گزینه برای شروع برنامه نویسی است، برخی هم از C ،C++ یا جاوااسکریپت نام می‌برند.خلاصه که هر کسی از ظن خود شد برنامه نویس، اما بیایید یه کم از بالا به قضیه نگاه کنیم.زبان‌های برنامه نویسی فقط یک وسیله هستند، درست مانند ابزارهای داخل جعبه ابزار. وقتی می‌خواهید یک میخ به دیوار بکوبید، از چکش استفاده می‌کنید، ولی برای تعویض شیر آب، چکش خیلی به کارتان نمیاد و نیاز به آچار خواهید داشت. درسته که می‌تونید برای کوبیدن میخ هم از آچار استفاده کنید ولی این بهترین راه انجام اون کار نیست؛ به همین طریق می‌تونید از یک زبان برنامه نویسی برای حل مشکلات مختلف بهره ببرید ولی ممکنه همون کار رو خیلی ساده تر بشه توی زبان دیگه ای پیاده سازی کرد و گسترش داد.اگه از یک نجار بپرسید ابزار مورد علاقه‌اش چیه شاید «ارّه» رو نام ببره و اگر همین سوال رو از یک قصاب بپرسید، احتمالا «ساطور» رو انتخاب می‌کنه. به همین منوال، اگر سوال مشابهی از یک وب دولوپر بپرسید بگه یادگیری جاوااسکریپت برای تازه کارها بسیار مهمه ولی یک محقق آمار به احتمال زیاد زبان برنامه نویسی R رو پیشنهاد می‌ده. در انتهای روز مهم ترین چیز اینه که شما قرار است با این ابزارها چه کار بکنید؟اگه می‌خواهید اپ iOS بسازید، Swift یاد بگیرید اما اگه دوست دارید وبسایت‌های خفن درست کنید، به Javascript نیاز خواهید داشت. البته خبر خوب این است که مفاهیم اصلی در اکثر زبان‌های برنامه نویسی مثل هم هستند؛ حلقه‌ها،‌ شرط‌ها، توابع،‌ کلاس و ... در زبان‌های مختلف یک مفهوم رو می‌رسونن فقط در پیاده سازی با هم متفاوت هستند.بنابراین اول لازمه که یک زبان برنامه نویسی انتخاب کنید، و بعد مفاهیم رو خوب بفهمید. وقتی به این مرحله رسیدید، بقیه چیزها مربوط میشه به سینتکس زبان مورد استفاده. مثلا «در» و «Door» یک مفهوم رو می‌رسونن، ولی باید ببینید قراره در چه محیطی از این کلمه استفاده کنید، زبان فارسی یا انگلیسی. چرا که با این در اگر در بند در مانید، در مانید! ¯/_(ツ)_\¯خلاصه:‌ ابتدا مشخص کنید قراره چه کاری انجام دهید و بعد، طرز استفاده از ابزارهای انجام اون کار رو یاد بگیرید. این کار باعث میشه وقتتون رو روی کار موردنظر بذارید و تو دنیای شلوغ زبان‌های برنامه نویسی،‌ هی از این شاخه به اون شاخه نپرید.منبعدر آخر اینکه اگه این مطلب رو دوست داشتید، ❤️ یادتون نره.</description>
                <category>مرتضی صمدی</category>
                <author>مرتضی صمدی</author>
                <pubDate>Wed, 22 Sep 2021 13:12:15 +0330</pubDate>
            </item>
                    <item>
                <title>نکات برنامه‌نویسی: بی هدف کد نزنید.</title>
                <link>https://virgool.io/@MorSCoder/%D9%86%DA%A9%D8%A7%D8%AA-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%A8%DB%8C-%D9%87%D8%AF%D9%81-%DA%A9%D8%AF-%D9%86%D8%B2%D9%86%DB%8C%D8%AF-sherclx4lf4z</link>
                <description>در این پست دنباله‌دار، قراره ۱۲ قانون یادگیری بهتر برنامه‌نویسی رو با هم مرور کنیم. با ما همراه باشید تا قانون دوم یا کدزنی هدف‌دار رو بهتر بشناسیم. البته این قانون رو می‌تونید برای یادگیری هر مهارت جدید دیگه‌ای هم به کار ببرید.وقتی یادگیری کدنویسی رو تازه شروع کردید، بیشتر وقت‌ها این طوریه که با قدرت هر چه تمام‌تر شروع می‌کنید، ولی بعد از مدتی ناامید می‌شید؛ و این اتفاق ممکنه بارها و بارها پیش بیاد. باید بگم این قضیه، بین کدنویس‌هایی که کارشون رو به صورت خودآموز یاد می‌گیرن،‌ مشکل رایج‌تری هست.حالا که به قبل نگاه می‌کنم، بعد از آموزش تعداد زیادی از شاگردهام، مسئله کم کم برام جا افتاد و تازه فهمیدم قضیه از چه قراره. (Dr. Angela Yu)خیلی از تازه‌کارها، یادگیری کدنویسی رو با انتخاب زبان دلخواه خودشون شروع می‌کنن و چندین و چند دوره آموزشی مربوط به اون رو می‌بینن. این کار ادامه پیدا می‌کنه با کپی کردن خط به خط کدها، مثلا نوشتن کد برنامه‌ای برای پیدا کردن اعداد اول یا دنباله‌ی عددهای زوج کوچکتر از مقدار ورودی برنامه. خب این قضیه چه مشکلی داره؟ اشکالش اینجاست که ما می‌تونیم اعداد اول رو خیلی سریع‌تر، از طریق گوگل کردن پیدا کنیم و علاوه بر اون، یافتن اعداد زوج هم جذابیت چندانی نداره.بذارید حقیقت رو بگم. اگر کدنویسی رو فقط به این هدف تمرین می‌کنید که مهارت کدزنی‌تون رو بالا ببرید،‌ احتمالا خیلی سخته تا به مرحله‌ای برسید که به خودتون بگید، خوب، دیگه همه چیز رو یاد گرفتم. مهارت‌هایی مثل برنامه نویسی، که به زمان زیادی برای صیغل خوردن مغز و حرفه‌ای شدن در اونها نیاز هست، انگیزه و محرک‌های درونی شما رو به چالش می‌کشن.و اگه از این چالش‌ها سربلند بیرون بیایید، ممکنه به مرحله‌ای برسید که باعث بشه خوردن و خوابیدن از یادتون بره. اگه بخوام صادقانه بگم، کار کردن روی پروژه‌های شخصی، یکی از لذت بخش ترین کارهای دنیاست. چرا که همزمان نیاز به تفکر منطقی و خلاقیت داره، و در نهایت هم، شما یه چیزی ساختید.بعضی مواقع چیزی می‌سازید که تا به حال، دنیا اون رو ندیده. چیزی که ممکنه زندگی‌تون رو راحت‌تر یا لذت‌بخش‌تر کنه. یا حتی بهتر، چیزی که ممکنه زندگی بسیاری از افراد رو راحت‌تر و لذت‌بخش‌تر کنه. این کار مثل طراحی و ساختن یک اتومبیل دست‌ساز توی خونه خودتونه، بدون اینکه نیاز به گاراژ داشته باشید یا حتی لازم باشه یک ریال برای بخش‌های مختلف اون هزینه بپردازید.این دلیلی هست که به بیشتر افراد انگیزه می‌ده. خلاقیت و ساختن یک چیز جدید.پیشنهاد من به شما اینه که یادگیری کدنویسی رو با دنبال کردن یک دوره آموزشی شروع کنید. دوره‌ای که ساختن یک چیز رو از اول تا آخرش تمرین می‌کنه،‌ هر چیزی که می‌خواد باشه فرقی نمی‌کنه. ناگفته نمونه زیاد امیدوار نباشید به اینکه در ابتدا شروع کنید به ساختن Clash of Clans یا League of Legends.فقط باید تمرین کنید، تا کم کم یاد بگیرید چیزهای جالب و خفن تر بسازید. می‌تونید با بازی‌ای مثل ریختن تاس (نمایش اعداد تصادفی) یا ساخت اپی مثل فلش کارد و To-Do List شروع کنید. تا زمانی که آموزشی رو شروع کردید و قراره در آخر، چیزی برای استفاده یا بازی ساخته باشید، این قضیه حل شده است، چرا که این طوری انگیزه کافی برای به پایان رسوندن اون  آموزش رو خواهید داشت.به همین دلیل، در بسیاری از دوره‌های آموزشی که به صورت بوت کمپ برگزار می‌شه، از شما خواسته میشه از ابتدا، به ایده ساخت یک اپ ساده که بهش احساس نیاز دارید، فکر کنید. پروژه ساده‌ای که برای به پایان رسوندن اون، نیاز به مهارت‌هایی دارید که طی دوره، اونها رو یاد می‌گیرید اما در همین حال، کمی هم نیاز به یادگیری موارد خارج از چارچوب آموزشی دارید، تا در این مدت، پیاده‌سازی ویژگی‌های جدید رو هم امتحان کرده باشید.به عنوان مثالی از این ایده‌های ساده:ممکنه بخواهید اپی داشته باشید که هر روز صبح، یک دقیقه زودتر از خواب بیدارتون کنه تا از این طریق، پروسه سحرخیز شدن رو راحت‌تر طی کرده باشید.می‌تونید ساخت یک اپ به صورت اسلایدشو تصاویر، برای هدیه روز مادر رو در نظر بگیرید.محاسبه BMI افراد و پیشنهاد کاهش یا افزایش وزن به میزان مورد نظر،‌ برای رسیدن به محدوده سلامتی.هیچ محدودیتی برای خلاقیت شما وجود نداره. البته ناگفته نماند وقتی شروع به ساخت پروژه خودتون می‌کنید، کار شما کمی سخت‌تر خواهد بود، چرا که هیچ دستورالعمل مرحله به مرحله‌ای وجود نداره که بهتون بگه بعد از این قسمت باید اون یکی بخش رو توسعه بدید، اما در عین حال، این کار باعث پیشرفت قابل ملاحظه‌ای در مهارت کدنویسی شما خواهد شد.منبعدر آخر اینکه اگه این مطلب رو دوست داشتید، ❤️ یادتون نره.</description>
                <category>مرتضی صمدی</category>
                <author>مرتضی صمدی</author>
                <pubDate>Mon, 23 Aug 2021 13:39:00 +0430</pubDate>
            </item>
                    <item>
                <title>نکات برنامه‌نویسی: چگونه مغزتان را با قانون ۲۰ دقیقه گول بزنید</title>
                <link>https://virgool.io/@MorSCoder/%D9%86%DA%A9%D8%A7%D8%AA-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%DA%86%DA%AF%D9%88%D9%86%D9%87-%D9%85%D8%BA%D8%B2%D8%AA%D8%A7%D9%86-%D8%B1%D8%A7-%D8%A8%D8%A7-%D9%82%D8%A7%D9%86%D9%88%D9%86-%DB%B2%DB%B0-%D8%AF%D9%82%DB%8C%D9%82%D9%87-%DA%AF%D9%88%D9%84-%D8%A8%D8%B2%D9%86%DB%8C%D8%AF-shb3gicq8oru</link>
                <description>در  این پست دنباله‌دار، قراره ۱۲ قانون یادگیری بهتر برنامه‌نویسی رو با هم مرور کنیم. با ما همراه باشید تا قانون اول یا همون قانون ۲۰ دقیقه رو بهتر بشناسیم. البته این قانون رو می‌تونید برای هر عادت جدید دیگه‌ای هم به کار ببرید.یادگیری برنامه‌نویسی یه جورایی شبیه باشگاه رفتنه. حتی اگه یکی از روزهای آخر هفته رو به باشگاه اختصاص بدی و کل روز رو ورزش کنی، نمیتونی انتظار تغییر قابل ملاحظه‌ای توی بدنت داشته باشی. روش بهتر اینه که با صرف زمان کمتر ولی هر روز،‌ ورزش کنی. برنامه‌نویسی هم همین طوره. هر چی زمان‌هایی که برای یادگیری صرف می‌کنی منظم‌تر باشن،‌ احتمال اینکه عضله‌های برنامه‌نویسی‌ت زودتر بزنن بیرون بیشتره.اما مسئله اصلی اینه که توی این روزگار شلوغ و پر از حواس پرتی،‌ کی وقت می‌کنی بشینی پای یادگیری یه تکنولوژی یا زبان جدید؟ وقتی تمام وقت مشغول کار هستی، یا پیش خانواده وقت میگذرونی، کی میتونی بشینی یه گوشه و به این عادت «کدنویسی روزانه» ادامه بدی؟وقتی شغل داری، یعنی یه قسمت از شبانه روز رو بهش اختصاص دادی، به غیر از اون، فعالیت‌های روزانه مثل درست کردن و خوردن غذا،‌ نظافت و ... رو هم داری. به علاوه ۸ ساعت خواب به طور معمول. حالا اگه توی شهر پر ترافیکی هم باشی که یه زمانی رو هم باید برای رفت و آمد بین خونه و محل کار در نظر بگیری. دیگه تهش چی میمونه؟احتمالا تو این حالت، سخت‌ترین کار اینه که به مغز خسته‌ات بگی باهات کنار بیاد و ۲ ساعت هم کدنویسی یاد بگیره در صورتی که می‌تونست راحت بشینه و قسمت جدید سریال مورد علاقه‌ات رو ببینه.اما این همه قدرت مغز ما نیست. ما به عنوان انسان، چیزی شبیه اینرسی توی رفتارهامون داریم که باعث میشه  تغییر از یک حالت به حالت دیگه رو خیلی سخت انجام بدیم. این میتونه برای ما نکته منفی حساب بشه،‌ چون ما در شبانه روز،‌ ۲۴ ساعت بیشتر نداریم. اما ما این قدرت رو هم داریم که ورق رو به نفع خودمون برگردونیم. معمولا این طوریه که وقتی کاری رو شروع نکردیم،‌ خیلی سخت به نظر میرسه ولی وقتی استارت کار رو زدیم و ذهنمون رو درگیرش کردیم، دیگه فکرمون سمت تلویزیون،‌ سریال و ... نمیره.چطور می‌تونیم از این قضیه به نفع خودمون استفاده کنیم؟ ابتدا باید بدونید که تغییر از کاری که در حال انجام اون هستید به یک کار دیگه،‌ خیلی سخت هست و انگیزه زیادی می‌خواد. اگه وقتی میرسی خونه،‌ خودتو پرت می‌کنی جلوی تلویزیون و شروع میکنی فیلم و سریال دیدن، همون موقع اون روز رو تموم شده حساب کن. این قضیه به خاطر اینه که تغییر کار در حال انجام، غیر از وقتی که به خاطر خوردن و خوابیدن (یا بقیه عواملی که به تکامل ما مربوط میشن) باشه، کار حضرت فیله.به همین خاطر، لحظه‌ای که پاهات رو میذاری خونه و وارد محیط جدید میشی، مهم ترین لحظه است. توی این لحظه است که باید خودت رو قانع کنی که قراره فقط ۲۰ دقیقه بشینی پای کدنویسی. وقتی این کار رو انجام بدی، احتمالا موفق میشی اینرسی رو به نفع خودت استفاده کنی و یه ساعت یا بیشتر به همون کاری که داشتی تا الان می‌کردی ادامه بدی. هیچ مغزی،‌ یه فعالیت ۲۰ دقیقه‌ای رو غیر قابل انجام نمیدونه، بنابراین می‌تونین مغزتون رو عادت بدین که از کل زمان خالی بعد از ظهر، به نفع یادگیری بیشتر استفاده کنید.اگر هم بعد ۲۰ دقیقه خسته شدین،‌ که باز از هیچی بهتره. شما تسک اون روز رو انجام دادید و حالا می‌تونید به استراحت یا کارهای دیگه مورد نظرتون بپردازید.قدم بعدی، تغییر این کار به یک عادته. تحقیق‌ها نشون میدن برای ایجاد یک عادت جدید، باید اون کار رو تقریبا یک ماه انجام بدین. فرض کنید وارد یک اتاق می‌شید که ۵ تا نقاشی مکمل هم روی دیوار نصب شده. ۴ تا از اون‌ها کاملا نسبت به هم تراز شدن،‌ ولی یکیشون یه مقدار کج نصب شده و تصویر کلی رو خراب کرده. در این صورت دوست ندارید اون یه دونه رو هم صاف کنید؟ حالا بیایید یه تقویم رو در نظر بگیریم به این صورت: هر روزی که کار جدید رو انجام دادید،‌ یک خط روی اون روز می‌کشید، و اگر یک کار رو هر روز پشت سر هم انجام دادید، اون خط رو ادامه می‌دید. یه اراده‌ای در این حالت وجود داره که ترغیب می‌شید این خط رو نشکنید، و این اراده، عامل ایجاد یک عادت جدید هست. وقتی این وضعیت رو ایجاد کنید، خیلی وقت‌ها ممکنه به هر دلیلی حوصله یا زمان کافی برای کدنویسی یا هر عادت دیگه‌ای که در حال پرورش اون هستید رو نداشته باشید اما به خاطر اینکه اون خط ادامه دار رو خراب نکنید، سعی می‌کنید حداقل یه کمی وقت خالی کنید برای کامل کردن تسک اون روز.منبع</description>
                <category>مرتضی صمدی</category>
                <author>مرتضی صمدی</author>
                <pubDate>Fri, 20 Aug 2021 13:04:22 +0430</pubDate>
            </item>
                    <item>
                <title>نکات سئو: ۶ تا از بهترین راه‌های نوشتن عنوان صفحه</title>
                <link>https://virgool.io/@MorSCoder/%D9%86%DA%A9%D8%A7%D8%AA-%D8%B3%D8%A6%D9%88-%DB%B6-%D8%AA%D8%A7-%D8%A7%D8%B2-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%D8%B1%D8%A7%D9%87-%D9%87%D8%A7%DB%8C-%D9%86%D9%88%D8%B4%D8%AA%D9%86-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%D8%B5%D9%81%D8%AD%D9%87-%D8%AA%DA%AF-title-ibicpho3gakt</link>
                <description>عنوان‌های صفحه یکی از المان‌های اصلی سئو هستند که بسته به نوع نگاه و عملکرد شما، می‌توانند ارزش دوچندانی ایفا کنند. منظورمان چیزی است که بین تگ‌های &lt;title&gt; و &lt;title/&gt; قرار می‌گیرد.کار یک عنوان خوب فقط این نیست که به گوگل بگوید صفحه شما درباره چیست، بلکه باید برای کاربران هم همین اثر را داشته باشد.شاید این نکته که عنوان صفحه، به خودی خود تاثیر مستقیمی روی رنکینگ نمی‌گذارد، درست باشد، اما این بدان معنا هم نیست که این عوامل کلا بی تاثیر هستند. تگ &lt;title&gt; یکی از مواردی است که وقتی قرار است روی سئو سایت بهینه سازی صورت گیرد، معمولا به آن کم لطفی می‌شود.اصلا عنوان صفحه یعنی چه؟عنوان صفحه یا تگ‌های &lt;title&gt; ، یکی از المان‌های HTML هستند و کارشان این است که به موتورهای جستجو بگویند که در صفحه نتایج جستجو قرار است چه چیزی را نمایش دهند.عنوان‌هایی که در صفحه نتایج جستجو می‌بینید،‌ لینک‌های قابل کلیکی هستند که هدف اصلی محتوای صفحه مورد نظر را مشخص می‌کنند.در تصویر پایین،‌ نتیجه جستجوی عبارت &#x27;mens running shoes&#x27; را می‌بینید:مثال سئو برای فروش کفش مخصوص دویدنبعد از باز کردن صفحه مورد نظر در مرورگر،‌ عنوان صفحه در بالای تب مربوط به خود هم نمایش داده می‌شود:مثال نمایش عنوان صفحه در مرورگربنابراین تگ عنوان اولین چیزی است که به موتورهای جستجو و مخاطبان می‌گوید که صفحه مورد نظرتان درباره چیست. این المان‌ها همچنین به مخاطبان کمک می‌کنند که وقتی چندین تب را در مرورگر خود باز کرده‌اند، بدانند کدام تب مربوط به کدام صفحه است.تفاوت بین تگ &lt;title&gt; و &lt;h1&gt; در چیست؟یکی از قسمت‌های سئو که بعضی وقت‌ها باعث دردسر می‌شود تفاوت بین تگ عنوان و H1 است.همانطور که در بالا اشاره شد، عنوان صفحه یکی از بخش‌های HTML است که در نتایج جستجو و تب‌های مرورگر نمایش داده می‌شود.تگ‌های H1 یکی از المان‌های مهم در ارائه سئو و پر اهمیت‌ترین عنوان‌های هر صفحه هستند. از نقطه نظر فنی، تگ‌های H1 جزء سکشن &lt;body&gt; هستند در حالی که تگ‌های عنوان (&lt;title&gt;) جزء سکشن &lt;head&gt; به حساب می‌آیند.تفاوت دیگر در طول این دو تگ است. در مورد تگ H1 هیچ محدودیت فنی‌ای درباره حداکثر تعداد کاراکتر وجود ندارد. ولی طول ایده‌آل برای تگ عنوان، ۵۵ تا ۶۰ کاراکتر است. این محدودیت به این دلیل لحاظ شده که هر کاراکتری که بعد از این مقدار بیاید توسط گوگل نمایش داده نمی‌شود و کاربران نمی‌توانند عنوانی که برای صفحه موردنظرتان نوشته‌اید را به طور کامل ببینند.چرا عنوان صفحه برای سئو مهم است؟ به طور فنی ممکن است صفحه‌‌ای داشته باشید که بدون توجه به نکات مطرح شده، رتبه بدی نداشته باشد، ولی احتمال اینکه رتبه صفحه‌تان به خاطر عدم رعایت این قضیه دچار افت شود، بیشتر است. ارتباط معناداری وجود دارد میان «قرار دادن یک کلمه کلیدی در عنوان صفحه» و «بالا رفتن جایگاه صفحه در گوگل در رابطه با آن کلمه کلیدی».قطعا محتوای صفحه، بک لینک‌ها و Best Practice های مربوط به سئو، در تعیین جایگاه صفحه موردنظرتان بسیار تاثیرگذار هستند، اما غیر از این موارد، تگ متای عنوان هم ارزش وقت گذاشتن را دارد.تگ &lt;title&gt; چه اهمیتی دارد؟این تگ به مخاطبین و موتورهای جستجو می‌گوید که محتوای صفحه‌تان در رابطه با چیست.می‌توانند مخاطبان‌تان را متقاعد کنند که در SERP روی وبسایت شما کلیک کنند.عنوان‌هایی که بهینه شده باشند، می‌توانند CTR یا نرخ کلیک صفحه‌تان را بالا ببرند.داشتن CTR بالاتر به طور حتم، یکی از فاکتورهای مهم در تعیین جایگاه صفحه‌تان است.۶ تا از بهترین Best Practice های سئوییدانستن اینکه عنوان صفحه چیست و چه اهمیتی دارد؛ یک مسئله است؛ مسئله بعدی یاد گرفتن روش بهینه کردن آن است. یکی از نکات مهم این است که کارایی سئو صفحه‌تان را به طور مداوم بررسی کنید و تغییراتی را در آن اعمال کنید تا رنک (rank) صفحه‌تان بهبود یابد.در ادامه با ۶ نمونه از روش‌هایی که چگونه بتوانیم عنوان بهتری بنویسیم، آشنا می‌شویم:۱. ابتدا یک پیشنویس از عنوان مورد نظرتان بنویسید.اولین قدم، نوشتن یک پیشنویس ساده برای عنوان است به صورتی که عبارت‌های موردنظرتان را در آن وارد کرده باشید.در این باره، می‌توانید خلاصه‌ای بسیار کوتاه از آنچه که در صفحه‌تان قرار دارد و کلمه کلیدی اصلی‌تان را قرار دهید.برای تکمیل این پیشنویس می‌توانید به این صورت عمل کنید:  توصیف کنید: عنوانی که در نظر گرفته‌اید باید توضیح شفافی از آنچه در صفحه‌تان می‌گذرد به مخاطبان‌تان ارائه کند.مختصر و مفید بنویسید: تگ عنوان نباید بیشتر از ۶۰ کاراکتر شود چرا که گوگل در صفحه نتایج جستجو، هر چه بعد از این مقدار بیاید را نمایش نخواهد داد.برندینگ خود را اضافه کنید: مقداری فضا در پایان عنوان در نظر بگیرید تا در ادامه بتوانید نام برند مورد نظرتان را به آن اضافه کنید. این کار باعث می‌شود که مخاطبان‌تان، شما را در نتایج جستجو بین رقبای‌تان تشخیص دهند.برای شمارش تعداد کاراکتر، می‌توانید با استفاده از اکسل یا گوگل Sheets و از طریق فرمول =LEN()، طول عبارت مورد نظرتان را اندازه بگیرید. برای اینکار کافی است بعد از نوشتن این فرمول در یکی از سلول‌ها، سلول مورد نظرتان را انتخاب کنید تا تعداد کاراکترهای موجود در آن را شمارش کند.۲. انسان‌ها را در نظر بگیرید (نه فقط موتورهای جستجو را)درست است که تگ عنوان کمک می‌کند تا crawler های موتور جستجو بفهمند موضوع صفحه‌تان راجع به چه چیزی است؛ با این حال هنگام نوشتن این عناوین، مخاطبان‌تان را فراموش نکنید.به نظر شما کدام یک از این عنوان‌ها جذاب تر است؟ (از این نظر که ممکن است یک نفر ترغیب شود روی آن کلیک کند یا خیر)مثال برای به کارگیری صحیح عنوان در سئوبرای اینکه موتورهای جستجو را راضی نگه دارید، اینکه کلمه کلیدی‌تان را در عنوان قرار دهید، کافی است.ولی باید توجه کنید که موتورهای جستجو هم ترجیح می‌دهند محتوایی را بالاتر قرار دهند که برای انسان‌ها قابل فهم‌تر باشد.دلیل این امر این است که چنین محتوایی معمولاً CTR و سایر معیارهای عملکردی-رفتاری بهتری دارد.یادتان باشد هرگز عنوان را با یک عالمه کلمه کلیدی پر نکنید (این کار keyword stuffing نامیده می‌شود). یک تگ عنوان خوب،‌ باید خوانا و قابل فهم باشد و به راحتی، کاربر را راهنمایی کند که محتوای صفحه درباره چیست.۳. اطمینان حاصل کنید که عنوان مورد نظرتان منحصر به فرد است (یعنی قبلا در صفحه‌های دیگر سایت‌تان، عینا استفاده نشده باشد)اگر وبسایتی دارید که صفحه‌های زیادی دارد، ممکن است وسوسه شوید تا بعضی از این عناوین را برای صفحه‌های مشابه هم به کار ببرید. البته باید یادآوری کنیم که این کار، یکی از وسوسه‌های شیطان است و باید از شر آن به خدا پناه ببرید ;)نخست: این حالت باعث می‌شود موتورهای جستجو در تشخیص اینکه کدام یکی از این صفحه‌های مشابه هم را بالاتر یا پایین‌تر قرار دهند، دچار تردید شوند و ممکن است به این نتیجه برسند که شما از محتوای تکراری استفاده کرده‌اید (این نتیجه‌گیری، اثر بسیار مخربی روی سئو دارد)مثال برای استفاده تکراری از عنوان در صفحات مختلف یک سایتدوم اینکه عنوان‌های تکراری باعث سردرگمی مخاطبان‌تان می‌شوند. چرا که نمی‌دانند کدام یک از این عنوان‌ها، آنها را به صفحه مورد نظرشان وصل می‌کند و اگر صفحه اول، آن چیزی نباشد که آنها می‌خواهند، بعید نیست که کلا قید وبسایت‌تان را بزنند.بنابراین اطمینان حاصل کنید که هر صفحه، عنوان منحصر به فرد و مربوط به خود را دارد.۴. تگ عنوان را در همه صفحات قرار دهید.در صورتی که برای صفحه‌تان &lt;title&gt; قرار ندهید، خود موتورهای جستجو معمولا عبارتی را از متن صفحه انتخاب کرده و در صفحه نتایج جستجو نمایش می‌دهند.ممکن است فکر کنید گوگل همه چیز را می‌داند و بهتر است این کار را هم به آنها بسپارید. شاید هم این کار را به خاطر صرفه جویی در وقت انجام دهید.اما باید در نظر داشته باشید که این موتورهای جستجو نیستند که محتوای صفحه‌تان را نوشته‌اند.آنها نمی‌دانند که نقطه قوت صفحه شما چیست و برای‌شان اهمیتی ندارد که عنوان صفحه شما را برای رسیدن به حداکثر بازده، بهینه کنند.خلاصه اینکه عنوان‌هایی که توسط انسان و برای انسان نوشته شده‌اند، عملکرد بهتری خواهند داشت.۵. یک عبارت را به عنوان کلمه کلیدی انتخاب کنید، سپس انواع حالت‌های طولانی‌تر آن را هم در نظر بگیرید.همانطور که قبلا اشاره شد، ارتباط معناداری میان قرار دادن کلمه کلیدی مورد نظرتان در تگ &lt;title&gt; و جایگاه آن صفحه در نتایج جستجو وجود دارد. اگر چند کلمه کلیدی (keyword) دارید، یکی که از همه اهمیت بیشتری دارد را انتخاب کنید و آن را در تگ عنوان صفحه قرار دهید.سپس، عبارات طولانی‌تری که شامل آن کلمه کلیدی باشند را با هم مقایسه کنید.یک یا چند نمونه از این عبارات که تعداد جستجوی زیاد، و رقابت کمی دارد را انتخاب کنید. این نکته را هم در نظر بگیرید که این عبارت باید به بهترین شکل ممکن، خلاصه محتوایی که قرار است درون صفحه در اختیار مخاطب قرار دهید را به نمایش بگذارد. این کار باعث می‌شود CTR شما برای جستجوهایی که شامل عبارات مشابه هستند، بهبود یابد.برای مثال، اگر کلمه کلیدی‌تان &quot;running shoes&quot; (کفش مخصوص دویدن) است، عبارات طولانی‌تری که ویژگی‌های بالا را داشته باشند، شامل موارد زیر هستند:مثال برای انتخاب عنوان مناسب با استفاده از کلمه کلیدی خاصبرای مثال می‌توانید عباراتی مانند «بهترین کفش‌های مخصوص دویدن»، «بهترین کفش‌های مخصوص دویدن سال ۲۰۲۱» یا «بهترین کفش‌های نایکی برای مردان» را برای عنوان صفحه‌تان اعمال کنید.نکته: دنبال راهکارهای جدید برای قرار دادن کلمه‌های کلیدی در عنوان باشید. ضمن اینکه خوانایی را هم در نظر داشته باشید و تنها به دنبال این نباشید که عنوان را با کلمه‌های کلیدی پر کنید (اجتناب از keyword stuffing).۶. مردم را ترغیب کنید که روی صفحه شما کلیک کنند (CTR را افزایش دهید)هنگامی که صفحه‌تان در نتایج جستجو در جایگاه خوبی قرار گرفت، حالا وقت آن است که ببینید آیا می‌شود CTR (نرخ کلیک) را افزایش دهید یا خیر.برای این کار باید عنوان‌تان را طوری تنظیم کنید که مخاطبان‌تان ترغیب شوند بین شما و رقبایتان، شما را انتخاب کنند و روی سایت شما کلیک کنند.ما این کار را با به کارگیری تاکتیک‌های مختلف انجام می‌دهیم تا صفحه موردنظرمان بین صفحات دیگر برجسته به نظر بیاید؛ مثلا استفاده از پرانتز، استفاده از نوشتن با حروف بزرگ (در صورتی که از حروف انگلیسی یا زبانی که این قابلیت را دارد، استفاده می‌کنید)،‌ یا جلب توجه با استفاده از کلمه‌هایی مانند «رایگان».متمایز کردن عنوان صفحه در SERPاز این طریق می‌توانید به هدف‌تان برسید:استفاده از عامل احساسات: از لحن و نوشتار محکم و محرک استفاده کنید.نقاط ضعف را پوشش دهید: توضیح دهید که صفحه شما به چه طریقی قرار است مشکل مخاطبان‌تان را حل کند.استفاده از پرانتز: این علائم باعث می‌شوند عنوان‌های‌تان به قطعه‌های کوچک تر تقسیم شوند و خوانایی عنوان هم افزایش یابد.از عامل کنجکاوی استفاده کنید: از clickbait (تله کلیک) پرهیز کنید اما طوری عنوان‌تان را بنویسید که میل مخاطبان‌تان برای یادگیری بیشتر را تحریک کنید.کلمه کلیدی را در اول بنویسید؛ چرا که مخاطبان در صفحه SERP معمولا اول آنجا را نگاه می‌کند.منبع</description>
                <category>مرتضی صمدی</category>
                <author>مرتضی صمدی</author>
                <pubDate>Wed, 18 Aug 2021 14:01:38 +0430</pubDate>
            </item>
            </channel>
</rss>