<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های ICT_NoteTaking</title>
        <link>https://virgool.io/feed/@ICT</link>
        <description>جزوات و نت بردای‌های من از دوره‌های ICT
بیشتر در t.me/ICT_NoteTaking</description>
        <language>fa</language>
        <pubDate>2026-06-16 15:53:53</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/24333/avatar/ykLqb6.jpg?height=120&amp;width=120</url>
            <title>ICT_NoteTaking</title>
            <link>https://virgool.io/@ICT</link>
        </image>

                    <item>
                <title>دوره مارکت میکرز تریدر - قسمت اول</title>
                <link>https://virgool.io/@ICT/%D8%AF%D9%88%D8%B1%D9%87-%D9%85%D8%A7%D8%B1%DA%A9%D8%AA-%D9%85%DB%8C%DA%A9%D8%B1%D8%B2-%D8%AA%D8%B1%DB%8C%D8%AF%D8%B1-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84-bbanfl7fdzd3</link>
                <description>📕 قسمت 1 از دوره The MMXM Trader:قدرت 3 گانه | PO3 || [هایلات مطالب مهم و کلیدی]پ.ن: PO3 (و مفاهیم دیگه) جزء مباحث پرتکرار همه دوره‌های مرتبط با ICT هست که روی یکسری مفاهیم اولیه و ثابتی که از قبل توسط خود مایکل گفته شده است، توسط مدرسین مختلف ارائه میشه. اما به یه دیدگاه و تعریفی متفاوت‌تر که میتونه منبع یکسری ایده‌ها برای ما باشه که بتونیم به تحلیل و ترید خودمون سر و شکل بدیم. پس در هر سطحی که هستید یه نیم نگاهی به همین مفاهیم به ظاهر ساده داشته باشید.لینک دانلود رایگان</description>
                <category>ICT_NoteTaking</category>
                <author>ICT_NoteTaking</author>
                <pubDate>Tue, 10 Sep 2024 01:01:39 +0330</pubDate>
            </item>
                    <item>
                <title>کتاب رمزگشایی موفقیت در  دوره مربیگری 2022 آی‌سی‌تی</title>
                <link>https://virgool.io/@ICT/%DA%A9%D8%AA%D8%A7%D8%A8-%D8%B1%D9%85%D8%B2%DA%AF%D8%B4%D8%A7%DB%8C%DB%8C-%D9%85%D9%88%D9%81%D9%82%DB%8C%D8%AA-%D8%AF%D8%B1-%D8%AF%D9%88%D8%B1%D9%87-%D9%85%D8%B1%D8%A8%DB%8C%DA%AF%D8%B1%DB%8C-2022-%D8%A2%DB%8C-%D8%B3%DB%8C-%D8%AA%DB%8C-osb0kroxrwmf</link>
                <description>کتاب رمزگشایی موفقیت در  دوره مربیگری 2022 آی‌سی‌تی📕کتاب رمزگشایی موفقیت در  دوره مربیگری 2022 آی‌سی‌تی (راهنمای پول هوشمند در  مدل معاملات روزانه) مجموعاً در 33 فصل با سرفصل‌های زیر ارائه شده که بعد از آماده سازی هر فصل خدمتتون ارائه میشه.▫️فصل 1: مقدمه‌ای بر معاملات روزانه و رفتار قیمت ▫️فصل 2: عناصر  یک ستاپ معاملاتی▫️فصل 3: مقدمه‌ای بر نقدینگی در معاملات▫️فصل 4: تغییر ساختار بازار▫️فصل 5: چگونه سقف و کف‌های سشن لندن دیدگاه‌های ارزشمندی ارائه می‌دهد▫️فصل 6: جریان سفارشات روزانه و درک محدوده روزانه▫️فصل 7: الگوی 3Drives▫️فصل 8: پوزیشن‌گیری و معاملات صبحگاهی▫️فصل 9: دیدگاه کارآمدی بازار و جریان سفارشات▫️فصل 10: شکاف ارزش منصفانه یا FVG▫️فصل 11: سشن‌ها و کیل‌زون‌های آی‌سی‌تی▫️فصل 12: جهت روزانه و موانع تثبیت▫️فصل 13: قدرت سه گانه و موقعیت‌های بعدازظهر سشن نیویورک▫️فصل 14: پیاده‌سازی رویدادهای تقویم اقتصادی بر روی نمودار▫️فصل 15: ساختار بازار برای تکنیکال‌کارهای دقیق▫️فصل 16: ستاپ‌های  گوناگون درون یک سشن معاملاتی▫️فصل 17: تحلیل‌ها و روابط بین بازاری▫️فصل 18: مطالعه بر روی اخبار NFP و FOMC▫️فصل 19: مدل‌های معاملاتی▫️فصل 20: تئوری تعادل مجدد روزانه▫️فصل 21: نگاه به نمودار با دیدگاه سازمانی▫️فصل 22: قوانین کلی رنج‌های معاملاتی▫️فصل 23: اولین شکاف روز یا هفته جدید▫️فصل 24: خلاء نقدینگی و شکاف ارزش منصفانه▫️فصل 25: نحوه استفاده از روزهای هفته و ساعات روز▫️فصل 26: قالب‌های روزانه▫️فصل 27: سقف یا کف روز قبل به عنوان استخر نقدینگی▫️فصل 28: ساعات معاملاتی▫️فصل 29: مفاهیم اصلی انواع بلاک‌های آی‌سی‌تی▫️فصل 30: شکاف ترک شده و آرایه‌های ارزان و گران متعادل شده▫️فصل 31: رنج معاملاتی بانک مرکزی▫️فصل 32: ستاپ‌های با احتمال بالا روزانه▫️فصل 33: تغییر جهت فصلی و رنج‌های اطلاعاتی ایپدابزودی فصل های بعدی منتشر خواهد شد. برای دریافت جزوات رایگان و مطالب بیشتر به چنل تگلگرام زیر مراجعه کنید.https://t.me/ICT_NoteTaking</description>
                <category>ICT_NoteTaking</category>
                <author>ICT_NoteTaking</author>
                <pubDate>Tue, 10 Sep 2024 00:57:28 +0330</pubDate>
            </item>
                    <item>
                <title>هجوم به نقدینگی با مقاومت قوی/ضعیف</title>
                <link>https://virgool.io/@ICT/%D9%87%D8%AC%D9%88%D9%85-%D8%A8%D9%87-%D9%86%D9%82%D8%AF%DB%8C%D9%86%DA%AF%DB%8C-%D8%A8%D8%A7-%D9%85%D9%82%D8%A7%D9%88%D9%85%D8%AA-%D9%82%D9%88%DB%8C%D8%B6%D8%B9%DB%8C%D9%81-ggs80i6lxlit</link>
                <description>🔺️𝑯𝒊𝒈𝒉 &amp; 𝑳𝒐𝒘 𝑹𝒆𝒔𝒊𝒔𝒕𝒂𝒏𝒄𝒆 𝑳𝒊𝒒𝒖𝒊𝒅𝒊𝒕𝒚 𝑹𝒖𝒏سرعت حرکت و تحویل قیمت به میزان مقاومت محدوده یا سطوح نقدینگی اطرافش بستگی دارد.پیش‌بینی ما از حرکت احتمالی قیمت و چگونگی واکنش قیمت به آرایه‌های PD و... که می‌تواند با درنظر گرفتن شرایط HRLR و LRLR زمينه‌ساز ایده‌های معاملاتی ما باشد.شرایط HRLR و LRLR بسته به وضعیت پیشین قیمت در برابر آنچه که ما از قیمت انتظار داریم، می‌تواند متغییر باشد. که در PDF زیر سعی کردم مطالعات خودم رو در این زمینه با شما به اشتراک بگذارم.دانلود نسخه کامل (PDF): https://t.me/ICT_NoteTaking</description>
                <category>ICT_NoteTaking</category>
                <author>ICT_NoteTaking</author>
                <pubDate>Sun, 26 May 2024 01:43:47 +0330</pubDate>
            </item>
                    <item>
                <title>مدل 5 دقیقه‌ای ترید در کیل‌زون بعدازظهر (13-16)</title>
                <link>https://virgool.io/@ICT/%D9%85%D8%AF%D9%84-5-%D8%AF%D9%82%DB%8C%D9%82%D9%87-%D8%A7%DB%8C-%D8%AA%D8%B1%DB%8C%D8%AF-%D8%AF%D8%B1-%DA%A9%DB%8C%D9%84-%D8%B2%D9%88%D9%86-%D8%A8%D8%B9%D8%AF%D8%A7%D8%B2%D8%B8%D9%87%D8%B1-13-16-cwxwjplxsgyn</link>
                <description>💠 مدل 5 دقیقه‌ای ترید در کیل‌زون بعدازظهر (13-16) ▫️جهت ترید در تایم بعدازظهر باید هم جهت با تایم صبح باشد (انتظار ادامه حرکت قیمت صبح)▫️اصلاح قیمت درون FVG یک‌ساعت یا 15 دقیقه▫️در تایم 5 دقیقه باید به دنبال وقوع شیفت ساختار و  SMT باشیم.▫️ورود در داخل FVG تایم 5 دقیقه❗️نباید در زمان اصلاح قیمت، کف (صعودی) یا سقف (نزولی) تشکیل شده در کیل‌زون صبح شکسته شود.جزوات و مطالب بیشتر در 🔻https://t.me/ICT_NoteTaking</description>
                <category>ICT_NoteTaking</category>
                <author>ICT_NoteTaking</author>
                <pubDate>Sun, 21 Apr 2024 21:13:27 +0330</pubDate>
            </item>
                    <item>
                <title>جزوه معامله‌گری اصولی</title>
                <link>https://virgool.io/@ICT/%D8%AC%D8%B2%D9%88%D9%87-%D9%85%D8%B9%D8%A7%D9%85%D9%84%D9%87-%DA%AF%D8%B1%DB%8C-%D8%A7%D8%B5%D9%88%D9%84%DB%8C-gmqbvk05t3ev</link>
                <description>سبک ICT با ارائه مباحث و مفاهیم گسترده‌ و دقیقی علاقه‌مندان زیادی را به خودش جذب کرده است.پیاده سازی، تمرین و اجرای هر یک از مفاهیم نیاز به صرف وقت و تمرینات زیادی را برای علاقه‌مندان به این سبک به همراه دارد.افرادی که تازه با این سبک آشنا می‌شوند، از حجم زیاد مباحث گله‌مند هستند . و قادر نیستند دید کلی نسبت به این سبک داشته باشند. این جزوه که از ترجمه بیش از 150 توییت و رشته توییت معامله‌گری به نام Triton با اسم The Fundamentals A Trading Guide تهیه شده است. معامله‌گری که مدتهاست در سبک ICT فعالیت دارد.جزوه معامله‌گری اصولی به شما کمک میکنه تا سریعتر و بهتر با سبک ICT آشنا و حتی بتوانید مفاهیم درج شده در جزوه رو بکار بگیرید.دانلود از طریق چنل تلگرام یا سایت ICTNT.ir&amp;#x27;گروه تلگرامی مرتبط با سبک ICT</description>
                <category>ICT_NoteTaking</category>
                <author>ICT_NoteTaking</author>
                <pubDate>Sat, 06 Jan 2024 13:06:54 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی وب سایت ICTNT.ir - مرجع جزوه فارسی ار دوره های ICT</title>
                <link>https://virgool.io/@ICT/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D9%88%D8%A8-%D8%B3%D8%A7%DB%8C%D8%AA-ictntir-%D9%85%D8%B1%D8%AC%D8%B9-%D8%AC%D8%B2%D9%88%D9%87-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D8%B1-%D8%AF%D9%88%D8%B1%D9%87-%D9%87%D8%A7%DB%8C-ict-z8gt7jqbn3hx</link>
                <description>سایت ICTNT در تلاش است در حوزه معامله گری به ویژه در سبک ICT جزواتی با کیفیت و با قیمت مناسب در اختیار علاقه مندان به این سبک قرر دهد.سایت آی سی تی نت با هدف تهیه جزوات آموزشی با کیفیت از دوره ها و سبک های معامله گری مانند ICT و پرایس اکشن اقدام به فعالیت میکند.جزوات منتشر شده با روشی خاص و منطبق با محتوای ویدیویی تهیه و عرضه می شود. بطوری که مطالعه این جزوات شما رو از دیدن دوباره محتواهای ویدیویی بی نیاز و در وقت شما صرفه جویی می کند. هزینه ای که شما بابت این جزوات پرداخت میکنید بابت زمانی است که صرف نوشتن این جزوات شده است. بعبارتی به ازای هر یک ساعت محتوای ویدیویی بیش از چهار ساعت زمان صرف نوشتن و تهیه تصاویر و … شده است.جزوات ICT منتشر شده در سایت ICTNT.irدانلود جزوه فارسی مارکت آنالیز 2022| Market Analysis https://ictnt.ir/%D8%AC%D8%B2%D9%88%D9%87-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D9%85%D8%A7%D8%B1%DA%A9%D8%AA-%D8%A2%D9%86%D8%A7%D9%84%DB%8C%D8%B2/ دوره مارکت آنالیز مکمل دوره منتورشیپ 2022 به بررسی مارکت ریویوهای روز و هفته های گذشته و لایو تریدها تمرکز دارد. مباحث و مفاهیم استفاده شده در این دوره براساس مطالبیه که در منتورشیپ 22 بهش اشاره و سعی شده در جزوه مارکت آنالیز 2022 تمام مباحث گفته شده بصورت کامل و مفصل در جزوه قرار داده بشود.دانلود جزوه فارسی اسکات اسنایپر | Scout Sniper https://ictnt.ir/%D8%AC%D8%B2%D9%88%D9%87-%D8%A7%D8%B3%DA%A9%D8%A7%D8%AA-%D8%A7%D8%B3%D9%86%D8%A7%DB%8C%D9%BE%D8%B1/ جزوه اسکات اسنایپر یکی از دوره های پیش نیاز سبک ICT میباشد. این دوره تمرکز روی مباحثی از جمله نقاط ورود بهینه (OTE)، تعیین و تشخیص سوئینگ ها و سطوح سازمانی مهم دارد. یادگیری ستاپ وان شات – وان کیل (ONE SHOT ONE KILL) و استفاده از کیل زون ها و تنظیم سیستم معاملاتی و پیاده سازی مدیریت ریسک از دیگر مباحثی است که شما در این دوره یاد خواهید گرفت.دانلود جزوه فارسی مارکت میکر پریمیر | Market Maker Primer https://ictnt.ir/جزوه-مارکت-میکر-پرایمر/ مایکل هادلستون در این دوره با ترکیب زمان و قیمت شما رو با عملکرد واقعی بازار آشنا میکنه. رفتار خاص قیمتی که خودشو بصورت انباشت، دستکاری و توزیع نشان میدهد.دانلود جزوه فارسی مفاهیم معاملاتی دقیق | Precision Trading Concepts https://ictnt.ir/%D9%85%D9%81%D8%A7%D9%87%DB%8C%D9%85-%D9%85%D8%B9%D8%A7%D9%85%D9%84%D8%A7%D8%AA%DB%8C-%D8%AF%D9%82%DB%8C%D9%82/ اگر بخوام برای دوره یا جزوه مفاهیم معاملاتی دقیق رو دی یک جمله کلام بگم: همیشه وقتی صحبت از مفاهیم دقیق میشه به این معنیه که ما نیاز به چیزی داریم که بتونیم اعتبار کلمه ای مثل دقیق رو تایید کنیم.در معامله گری یکی از راه های اعتبار بخشی به تحلیل ها همه و در همه جا ساختار چارت تایم فریم های بالاتر مثل روزانه، هفتگی و ماهانه رو نام میبرند. که به عنوان معیاری برای تایید صحت (احتمالات بالاتر) حرکات و رفتار بازار از این تایم ها استفاده میکنند.دانلود جزوه فارسی  تسلط بر اسکلپ با احتمال بالا | Mastering High Probability Scalping https://ictnt.ir/%D8%AC%D8%B2%D9%88%D9%87-%D8%AA%D8%B3%D9%84%D8%B7-%D8%A8%D8%B1-%D8%A7%D8%B3%DA%A9%D9%84%D9%BE-%D8%A8%D8%A7-%D8%A7%D8%AD%D8%AA%D9%85%D8%A7%D9%84-%D8%A8%D8%A7%D9%84%D8%A7/ دوره یا جزوه تسلط بر اسکلپ با احتمال بالا شما رو با نحوه اسکلپ در بازار فارکس با کمک تشخیص بایاس و درک مفهوم قدرت سه گانه آشنا میکنه.از نطر ICT، اسکلپ به معنی سوئینگ های قیمتی 10 تا 30 پیپی است که شما میتونید در طول هفته و در بازه های زمانی خاصی از روز که در آی سی تی بهشون کیل زون میگیم، بتونید سود کسب کنید.</description>
                <category>ICT_NoteTaking</category>
                <author>ICT_NoteTaking</author>
                <pubDate>Sat, 18 Nov 2023 22:58:48 +0330</pubDate>
            </item>
                    <item>
                <title>دستنویس دوره Precision Trading Concepts از سبک ICT</title>
                <link>https://virgool.io/@ICT/%D8%AF%D8%B3%D8%AA%D9%86%D9%88%DB%8C%D8%B3-%D8%AF%D9%88%D8%B1%D9%87-precision-trading-concepts-%D8%A7%D8%B2-%D8%B3%D8%A8%DA%A9-ict-n4g7ntlup6w2</link>
                <description>قسمت اول – جریان سفارشات هفتگیاردربلاک ها در همه تایم فریم ها رخ میدهد اما تایم هفتگی بسیار مهمتر و کلیدی تر هستند.یه برنامه واضح و مختضر داشته باشیم و بدونیم تو چارت دنبال چی هستیم . چرا دنبالش هستیم، بسیاری از عدم قطعیت ها رو ازبین میبره.موسسات بزرگ و یا بانک ها معاملات خودشون رو براساس (تحلیل تایم های بالاتر) چارتهای هفتگی انجام میدهند. بانکی که دنبال حجم زیادی از پوله نمیاد در تایم 5 دقیقه به چارت نگاه کنه. اونها به نقدینگی نیاز دارند که اردربلاک های هفتگی و تایم فریم های بالا این نقدینگی رو در اختیارشون میزاره، چون سفارشاتشون خیلی بزرگه- به آسان سازی معاملاتشون کمک میکنه.اکثر اوقات سفارشاتشون به بلوک های جداگانه ای تقسیم میشه. بدنبال خرید در قیمت های ارزون و فروش در قیمت های بالا هستند.ما میخوایم مانند پول هوشمند وارد بشیم- ما میخوایم زمانی بخریم که پول ناآگاه در حال فروش است و زمانی که پول ناآگاه خرید میکند، بفروشیم.باید بدنبال علائم و ردپای پول هوشمند باشیمروند و جریان سفارشات تایم فریم هفتگی تمایل دارند برای مدت طولانی باقی بمانند و نیاز به تغییرات زیادی داره تا بخواد روند عوض بشه.اگر میبینیم که بازار در چارت هفتگی صعودی هست، تغییر روندش نیاز به عوامل بنیادی و فاندامنتالی زیادی داره. این برای ما هم بعنوان سوئینگ تریدر و هم اسکالپر سودمنده- از لحاظ اعتماد به دیدگاهمون در جهت مارکت در تایم بالا. چارت هفتگی بدرد همه نوع تریدری میخوره ( بلندمدت، کوتاه مدت)در تایم هفتگی باید بدونیم که اونا چی میدونند و چه اتفاقی قراره زودتر بیفته. اگر بتونیم در معاملات خودمون پیاده کنیم میتونیم به تاثیرات تمرین مستمر در آینده اعتماد کنیم و صرفا به شانس کورکورانه اعتماد نکنیممایکل اعتقاد داره که فاندامنتال خیلی تاثیری نداره . همه چیز رو از خود چارت متوجه میشهبهتره که نویز های تایم فریم پایین تر رو در نظر نگیریم. به دلیل دیدگاه تایم فریم های بالایی که در ذهنمون داریم.دوتا سوالی که بیشتر ازش میپرسند:1- چطور جهت رو تخیص میده؟ براساس تایم هفتگی/ روزانه2- چطور میدونه که سطح حمایتی / مقاومتی حفظ میشه؟ براساس تایم هفتگی/ روزانهEMA برای پیدا کردن اردربلاک و اردرفلوها با احتمال بالا کمک کننده هستند.هنگامی که EMA 9 و 18 در نمودار هفتگی اعمال میکنیم یه تمایل عظیمی وجود داره برای اینکه روندها یا جریان سفارشات در نمودار هفتگی برای مدت زیادی دست نخورده باقی میماند. اگر روند صعودی داشته باشیم برای تغییرش نیاز به تغیرات خیلی بزرگی داریم.اگر EMA 9  بالاتر از 18 باشه و در حال بالا رفتن باشه این کل چیزیه که باید بدونیم شرایط تایم هفتگی صعودی. به عبارت دیگر جریان سفارشات صعودیه هست و اگر هم 9 زیر 18 باشه و جهت موینگ رو به پایین باشه جریان سفارشات نزولیه.زمانی های ممکنه قیمت تغییر روند بده یا وارد رنج بشه اینجا ممکنه متحمل ضرر بشیم اما اگر به این رویکرد پایبند باشیم و بطور مداوم شیرش رو بکشیم و در زمان های که احتمال خیلی بالاتری وجود داره وارد بشیم در این صورت خیلی ترید ضررده نخواهیم داشت، چون میدونیم کجا دنبال خرید بودیم و میدونیم چه زمانی دنبال خرید بودیم.اما اکنون بطور خاص به دنبال این هستیم که باید در چه جهتی ترید کنیم و براساس همین قضایا تو ذهنمون میتونیم خیلی از احساسات رو حذف کنیم و باعث ازبین رفتن بسیاری از ترس هامون میشه.مثلا اگر جریان هفتگی صعودیه و اگر اوردربلاک روزانه رو به عنوان محل خرید پیدا کنیم و بعد از خرید 20 پیپ بالا و 10 پیپ پولبک بزنه ما میترسیم؟ یا احتمالا باید فکر کنیم تصمیم اشتباهی گرفتیم؟ قراره استاپمون زده بشه؟ احتمالا نهتوصیه من اینه که نترسید چون ما داریم با ذهنیت حرفه ای ترید میکنیم، طبق تایم فریم های بالاتر داریم معامله میکنیم.ما منتظر خواهیم بود تا بازار به سراغ ما بیاد و برعکس ما قیمت رو تعقیب نمی‌کنیم که باعث بشه یه ورود با ریسک بالا و ریوارد پایین گیرمون بیاد.ترید در راستای این دیدگاه تا حد زیادی باعث افزایش احتمال ثبات و دقت ما خواهد شد. ما رشد خودمون رو براساس وضعیت روز قبل خودمون قضاوت میکنیم و ما بطور مداوم این کار را بارها و بارها انجام خواهیم داد و به مرور بهتر خواهیم شد.نمونه مثال:EMA Red – 9 &amp; Blue – 18کراس موینگ رو به بالا و شروع روند صعودی (چند کندل بعد از کراس) نشانه ای واضح برای ما که قراره قیمت بالا برههیچکدام از نزول ها چیز مهمی نیست- حتما باید کراس رو به پایین پیش بیاد برای تایید تغییر روند.از ابزارهای دیگه ای هم در آینده برای تایید تغییر روند استفاده میکنیم.وقتی EMA ها کراس دادن و درجهت کراس در حال حرکت  هستند، صرفا یه دید مقدماتی هست برای ما که جریان سفارشات هفتگی صعودی هست.درسته قیمت دو سه هفته نزولی بوده اما HH و  HL حفظ شده است.بخشی که قیمت صعودی (تایم هفتگی) بوده رو مشخص و وارد تایم یکساعته میشه. و اوردبلاک های که در جهت روند هفتگی هستند رو مشخص میکنه و تعصب خرید میگیره و دنبال اوردربلاک های خریده.از موینگ در تایم یکساعته استفاده نمیکنه ( اما میشه ازشون بهره برد)با اینکه روند تایم یکساعته نزولی بوده تمرکز مایکل رو جاهای که که بتونه بخره (براساس دیدگاهش در روند هفتگی) و دنبال جاهای که قیمت رالی داشته .پول هوشمند تو مارکت نزولی، خریدار هستند و تو مارکت صعودی، فروشندهبا مشخص کردن جایی که قیمت صعود داشته میتونیم پیشبینی کنیم که قیمت از کجا قراره برگرده و بالاتر بره . بعدش هم اوردربلاک کوچکتری شکل گرفته ( عکس راست) قیمت رالی داشته و به اوردربلاک قبلیش برگشته.وقتی اوردر بلاک شدو داشته باشه کندل قبل تر جایی که سقفش شکسته باشه رو انتخاب میکنهبه این سوال میرسیم چگونه متوجه میشم که قیمت یه سطح حمایتی یا مقاومتی رو حفظ میکنه؟ما یه اوردر بلاک صعودی داریم ( خط قرمز) و یه سطح با عدد رند (60) داریم که دوبار قیمت رو حمایت کرده.وقتی میبینیم که در یک جریان سفارشات صعودی هفتگی، در یک اوردربلاک صعودی یه سطح به این شکل در حال جمع آوری هستش. من از این طریقه که میفهمم یه حمایت حفظ میشه و شکسته نمیشه.اینم درنظر بگیرم که دریک فضای عدم قطعیت هستیم و ممکنه جواب نده. اما با درکی که از بازار داریم و بارها و بارها دیدیم که جواب داده، اطمینان کنیم و برای خودمون یه نقطه مرجع و ابزارهایی داشته باشیم که بتونیم بهش اطمینان کنیم. اگر قیمت در روند صعودی به اردربلاک های صعودی احترام میزاره. حمایت های اطراف اون اردربلاک حفظ خواهند شد. به همین سادگیمیبینیم که بزرگترین حرکت ها (صعودی) در کوتاه ترین زمان اتفاق میافته. تو مارکت صعودی قیمت به اردربلاک های صعودی احترام میزاره. این همون چیزیه که ما دنبالشیم. (نکته ظریف). طبق دیدگاه روزانمون، قیمت به کجاها احترام میزاره و واکنش نشون میدهاگر در یک اردرفلو هفتگی صعودی هستم و قیمت به اردربلاک های صعودی روزانه، 4 ساعته و یکساعته واکنش نشون میده. (مرض داری تو همچین شرایطی سل میگیری، حتی اگر دی تریدر باشی). این برخلااف دیدگاه تایم بزرگتره. اگر یه حرکت صعودی رو از دست دادی نباید بیای سل بگیری به این دلیل که قیمت ممکنه اصلاح کنه. سیستم رو خاموش کن برو پی کارت تا موقعیت بعدی.صبر کن تا زمانی که در دل این اردرفلو صعودی هفتگی قیمت دوباره یه سناریو صعودی خوب برای خرید بهت بده. این کار بهمون صبر رو یاد میده. مهارت در انجام ندادن .بگرد دنبال حرکت های که در بازار به وفور تکرار میشه.اینجا جایه که منشا حرکت بوده، جای که قیمت شروع به صعود کرده. در دل این کندل نزولی، جایی بود که پول هوشمند در حال خرید بوده، احتملا بیشتر هم تو سایه زیر بوده. ستاپیه که باید دنبالش باشیم. منتظر این هستیم که قیمت به اوردر بلاک برسه و خرید کنیم. دنبال همپوشانی انواع و اقسام حمایت باشیم. سطح 1.3480 که یک سطح موسساتیه.ما بسادگی از جریان سفارشات هفتگی استفاده میکنیم که ببینیم کجا باید خرید بزنیم کجا فروش و با داشتن همین ابزار ما فقط تمرکزمون رو روی یک سمت از بازار میزاریم. ( یا خرید یا فروش- از طریق بایاس هفتگی)مثل اسنایپر وقتی قیمت وارد تیررسمون بشه، شلیک میکنیمما باید کاملا متمرکز بشیم روی اینکه چیکار میخوایم بکنیم، چرااینکارو بکنیم و کی یا چه وقت میخوایم اون کارو انجام بدیم.چیزی که یه سطح رو تایید میکنه، سرعت فاصله گرفتن (پرتاب) قیمت از اون سطحه. و تاییدیه دیگر همچنین زمانی هست که در اون سطح صرف شده (زیاد تو محدوده نباشه)، اگه بمدت طولانی تو یه سطح بمونه. این نشون میده که موسسات زیادی در حال خرید نیستن. و ما نمیتونیم وقتی قیمت اینقدر کند حرکت میکنه ردپای پول هوشمند رو توی چارت ببینیم.صبر کنیم که قیمت به اوردر بلاک روزانه، 4 ساعته و یکساعته (مطابق با هفتگی) برسه.نزول های که میبینیم دلیلشون سل گرفتن ریتیل تریدرها نیست. وقتی که تو شرایط صعودی هستیم و انتظار صعود داریم، زمانی که میبینیم قیمت کاهش می یابد این نشون دهنده فروش توسط اسمارت مانی نیست. در واقع برعکسه، عدم خرید توسط پول هوشمند است. تریدای خرده پا بازار رو حرکت نمیدن.در زمان نزول قیمت (در شرایط صعودی بودن تایم بالایی) باید اینو درنظر بگیریم که قیمت قرار بره کجاها استاپ های خرید رو بزنه. کجا میخواد نقدینگی جمع کنه؟اگر میبینی قیمت اینطوری کانسالیدیشن شده از خودمون سوال کنیم که استاپ ها کجا هستند؟ چون قراره به زودی استاپ ها جمع بشه.برای دریافت جزوات رایگان بیشتر در قالب PDF به آدرس تلگرام https://t.me/ICT_NoteTaking مراجعه کنید.@ICT_NoteTaking https://t.me/IChttps://t.me/ICT_NoteTakingT_NoteTak </description>
                <category>ICT_NoteTaking</category>
                <author>ICT_NoteTaking</author>
                <pubDate>Mon, 20 Feb 2023 02:08:58 +0330</pubDate>
            </item>
                    <item>
                <title>Scope Function IN Kotlin - Let  بخش دوم</title>
                <link>https://virgool.io/@ICT/scope-function-in-kotlin-let-%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85-xyoazcq6kvvr</link>
                <description>برگشتیم برای بخش دوم و معرفی  تابع let . و قراره کلی مثال با هم کار کنیم.  و امیدوارم بخش اول مفید بوده باشه واستون.در بعضی از مثال ها ترجیح دادم از متن اصلی استفاده کنم چون برگردانش به فارسی اون منظور و هدف رو به خوبی بیان نمیکنه.( البته یه خورده هم سختمه  این کار ? در حد I am windows بلدم انگلیسی ?)* قسمت های ستاره دار از یک منبع دیگه بغییر از سایت  kotlinlang.org استخراج شده استبرای کمک به شما در انتخاب عملکرد دامنه/ scope function درست در پروژه قرار که جزئیات هرکدوم رو شرح بدیم. و توصیه های برای استفاده از این توابع. از نظر فنی این توابع عملکرد های مشابه ای دارند و میتونند به جای هم قابل استفاده باشند. 1 - let The context object is available as an argument (it). The return value is the lambda result.زمینه آبجکت به عنوان یک آرگومان در دسترس است. مقدار بازگشتی نتیجه لامبدا می باشد.* یا به تعریف دیگه:  let شی مورد نظر را به عنوان پارامتر مورد استفاده قرار میدهد و نتیجه عبارت لامبدا را برمیگرداند. let  یک scope function است که متغیر های که در داخل عبارت یا اون منطقه فانکشن تعریف میشند در بیرون از اون تابع قابل استفاده نیستند.Hello World* همچنین این نکته رو هم مد نظر داشته باشید که آخرین خط در let به عنوان استدلال/آرگومان برگردانده میشود. مثال زیر رو ببنید.strLength is 20* همانطور که میبینید خط 5 اجرا شده و طبق تعریف بالا آخرین برگشت داده میشه. جای که عبارت let^ باشد (خط قرمز) - حالا اگه جای خط 4 و 5 با هم عوض بشه کلا ورق بر میگرده.strLength is HELLO WORLDاین تابع می توان برای استناد به یک یا چند عملکرد در نتایج زنجیره های تماس استفاده کرد. به عنوان مثال ، کد زیر نتایج دو عملیات را روی یک مجموعه چاپ می کند:[5, 4, 4] * یا به تعریف دیگه:  همانطور که در مثال پایین می بینید ما یک متغیر محلی &quot;i&quot; را در داخل تابع let دوم اعلام کردیم. تنظیم آخرین عبارت از تابع let به i ویژگی را به خاصیت بیرونی برمی گرداند.با استفاده از let میتونیم it رو دوباره نویسی کنیم.[5, 4, 4]* میتونیم از let بصورت تو در تو هم استفاده کنیم. Nesting let* برای استفاده از let تو در تو ما نمیتونیم از کلمه کلیدی it استفاده کنیم و حتما باید از نام های صریح/واضح استفاده کنیم (outer, inner یا هر چیز دیگه ای ) - فقط بیرونی ترین مقدار در let برگشت داده میشود. مثال پایین رو ببیند (به خط قرمز ها توجه کنید)اگر بلاک کد ما شامل یک تابع واحد با it به عنوان یک آرگومان باشه، می تونیم از مرجع متد ( :: ) به جای لامبدا استفاده کنیم.اغلب از let برای چک کردن مقدار تهی هم استفاده میشه. که از اپراتور   .? برای یک آبجکت عیر تهی non-null  استفاده میشه. و در صورتی که مقدار تهی نباشد اکشن های قرار است در let اجرا بشه تماس برقرار میکنه / صداشون میکنه.let() called on Helloمورد دیگر برای استفاده از let ، معرفی متغیرهای محلی با دامنه محدود برای بهبود خوانایی کد است. برای تعریف یک متغیر جدید برای موضوع متن  (context object)، نام آن را به عنوان آرگومان lambda تهیه میکنیم تا بتوان به جای پیش فرض از آن استفاده کرد.The first item of the list is &#039;one&#039;First item after modifications: &#039;!ONE!&#039;یه مثال دیگه از let برای چک کردن مقدار تهی  - Current ExampleTEST is empty: falsePrinting &amp;quotnull&amp;quot:Printing &amp;quotmy string&amp;quot:	MY STRINGCalls the given block on the result on the string &quot;test&quot;.Calls the function on &quot;test&quot; by the it reference.let returns the value of this expression.Uses safe call, so let and its code block will be executed only on non-null values. و مثال دیگه از چک کردن مقدار تهی البته با این دفعه با طعم اندروید استودیو بخش دوم هم تموم شد - امیدوارم مفید بوده باشه واستون - لینک سایر بخش هم رو قرار میدم تا دسترسی واستون راحت باشه + لینک منابع این قسمت. https://virgool.io/@omiddeadlive/scope-function-in-kotlin-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-%D9%85%D8%A8%D8%A7%D8%AD%D8%AB-%D9%BE%D8%A7%DB%8C%D9%87-srhxbzzv5wnb  https://kotlinlang.org/docs/reference/scope-functions.html#let  https://www.journaldev.com/19467/kotlin-let-run-also-apply-with#nesting-let </description>
                <category>ICT_NoteTaking</category>
                <author>ICT_NoteTaking</author>
                <pubDate>Fri, 20 Mar 2020 03:17:40 +0330</pubDate>
            </item>
                    <item>
                <title>Scope Function IN Kotlin - بخش اول مباحث پایه</title>
                <link>https://virgool.io/@ICT/scope-function-in-kotlin-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-%D9%85%D8%A8%D8%A7%D8%AD%D8%AB-%D9%BE%D8%A7%DB%8C%D9%87-srhxbzzv5wnb</link>
                <description>قبل از اینکه بخوام شروع کنم این نکته رو باید بگم که من مبتدی هستم و خودم در حال یادگیریم بنابراین ممکنه اشکلاتی در این پست باشه، البته این پست بیشتر ترجمه هستش و چیزی من متوجه میشم از یه متن انگلیسی رو با شما به اشتراک میزارم.  (منظورم بیشتر اینه که فول نیستم زبان انگلیسی ) منابع مورد استفاده در این پست رو در آخر قرار میدم.  امیدوارم بتونیم در کنار هم چیزی به دانش مون اضافه کنیم.کتابخانه های استاندارد کاتلین یه سری فانکشن داره که هدفشون اجرای یک بلوک کد در چارچوب یک شی هستش. وقتی که چندین عملکرد رو روی یک شی یا یک عبارت لامبدا ارائه میدیم، دامنه موقت  (temporary scope) را تشکیل میدهیم. در این دامنه ما میتونیم بدون نام اون آبجکت به اون آبجکت دسترسی داشته باشیم. که این مدل توابع رو Scope Function  می نامیم. پنج مورد از این توابع وجود داره.let , run, with, apply , alsoتمام این 5  توابع همان کار رو انجام میدند، که در بالا گفته شده.(اجرای یک بلوک کد در چارچوب یک شی)** جلوتر چندتا مثال از این توابع زدم ،فعلا کاری به این 5 تابع نداشته باشید تا هرکدوم رو در جای خودش توضیح بدم. چون یه سری پیش نیاز کلی داره. ** تو بعضی جاها هم متن اصلی و فارسی رو با هم میزارم بعضی وقت ها متن اصلی فهمش راحت تره تا نسبت به  فارسیچیزی که بین اینها متفاوته این است چجوری شی در داخل بلوک در دسترس میباشند و نتیجه رو به چه صورت برمیگردونندWhat&#x27;s different is how this object becomes available inside the block and what is the result of the whole expression.یه نمونه از Scope Function با استفاده از letScope Function : letاجرا :Person(name=Alice, age=20, city=Amsterdam)
Person(name=Alice, age=21, city=London)اگر همین کار رو بدون let انجام بدیم ، باید یه متغیر جدید بسازیم و هر زمان که بخوایم ازش استفاده کنیم باید نام اون متفییر رو صدا/تکرار کنیم.بدون استفاده از letتوابع دامنه هیچ توانایی فنی جدیدی رو ارائه نمیده ، اما باعث میشه کد مون رو مختصر و قابل خواندی تر کنه.از اونجای ماهیت scope function ها عملکرد مشابه ای داره انتخاب صحیح این توابع ممکنه مشکل باشه.این انتخاب عمدتا به هدف ما و قوام استفاده از اون تابع در پروژه بستگی داره، توضیحاتی که جلوتر قراره ارائه بدم درباره تمایز بین توابع دامنه و قراردادهای مربوط به کارکرد آنها می باشد.تمایزات - Distinctionsاز اونجای  که توابع دامنه از نظر ماهیت کاملاً مشابه هم هستند ، درک تفاوت بین آنها مهم است. بین هر تابع دامنه دو تفاوت اصلی وجود دارد:The way to refer to the context objectاینکه یه ابجکت از چه  طریقی به context  وصل بشه (this or it)The return value.یا اینکه طریقه برگشت به چه صورت باشه.بریم ببینیم قضیه چیه :Context object: this or itدر داخل لامبدا یک تابع دامنه ، زمینه (context) آبجکت به جای استفاده از نام اون آبجکت برای دسترسی بهش از طریق  یک مرجع کوتاه قابل دسترس هستش. هر تابع دامنه با استفاده از دو روش به زمینه (context) دسترسی داره. به عنوان گیرنده (receiver) لامبدا  یا همون this یا بصورت آرگومان لامبدا که it  میشه. هر کدوم از این ها، this و it ویژگی های یکسانی دارند.جلوتر میگم که جوانب مثبت . منفی هر کدوم برای موارد مختلف چیه و توضیح میدم و همچنین  توصیه های هم برای استفاده از اونها. فعلا مثال زیر رو ببینید تا مطلب گفته شده جا بیفته واستون تا بعد.thisفعلا در بخش تمایزات هستیم و اگه یادتون باشه گفتیم که دو تفاوت اصلی بین scope function ها است که یکیش &quot; The way to refer to the context object &quot; بود.سه تا از توابع با استفاده از کلمه کلیدی this به زمینه یا context وصل میشند که عبارت اند از run, with و applyاز این رو در داخل لامبدای این 3 تابع، اجزای شی در دسترس ما هست. (البته اینو هم بگم که بغییر اجزای شی به چیزهای دیگه هم میتونیم دسترسی داشته باشیم یا اینکه یه ویژگی یا متد  خاصی رو فراخوانی کنیم که در بخش توضیحات هر تابع بهتون نشون میدم)  ما میتونیم کلمه کلیدی this  رو زمانی که میخوایم به اعضای یک آجکت/متد و ... دسترسی داشته باشیم رو حذف کنیم. که در این حالت کدمون کوتاه تر میشه .  از طرف دیگر اگر کلمه کلیدی this  حذف شود تفکیک بین اعضای گیرنده (receiver members) و اشیای خارجی (external objects) یا فانکشن ها سخت است.بنابراین داشتن context object به عنوان گیرنده/ receiver  برای لامبداهایی که عمدتا رو اعضای شی کار میکنند توصیه میشود. که میتونید یک متد رو فراخوانی یا مقداری رو برای ویژگی (properties) اختصاص بدید.در مثال بالا هم میتونید از age در داخل لامبدا استفاده کنید و هم اینکه بصورت this.age استفاده کنید - داخل کامنت تصویر مشخصه.itدر let و also  - به context object  به عنوان آرگومان لامبدا در اختیار خود دارید. اگر نام آرگومان مشخص نشده باشد ، با استفاده از پیش فرض ضمنی نام  ( it )به اجزا دسترسی دارید. همانند this نمیتونیم بطور مستقیم توابع یا خصوصایت (properties) یک آبجکت دسترسی داشته باشیم - مثل مثال بالا که مستقیم age استفاده کردیم در توابع let  و also  باید بصورت it.age دسرسی پیدا کنیم. وقتی که آرگومان یه تابع رو نیاز داریم بهتر که از این توابع یا it استفاده کنیم. و همچنین زمانی که چندین متغیر برای یک بلوک از کد در حال استفاده هستید it توصیه میشود. همانطوری که در مثال بالا می بینید مقدار برگشتی در تابع getRandomInt از طریق it به آرگومان متد writeToLog پاس دادیم. اینجا it$ به عنوان نماینده مقدار تابع getRandomInt عمل میکنه. که مقدار برگشتی این تابع از نوع Int است.علاوه بر این ، وقتی شیء زمینه را به عنوان یک آرگومان منتقل می کنیم ، می توانید یک نام دلخواه برای context object در داخل دامنه تهیه کنید.در مثال بالا به جای it  از value که یک اسم دلخواه است استفاده میکنیم و این نکته رو مد نظر داشته باشد که بعد اسم دلخواه باید &lt;- استفاده کنیم که بصورت یک فلش است.رسیدیم به دومین تفاوت Scope Function ها یعنی  مقادیر بازگشتی / Return valueتوابع دامنه با نتیجه ای که باز می گردند متفاوت است:apply and also return the context object.let, run, and with return the lambda result.این دو گزینه به ما این امکان می دهد بسته به آنچه در کد بعدی انجام می دهیم عملکرد مناسب را انتخاب کنیم.Context objectمقدار بازگشتی در apply و also به خود زمینه (context) اون آبجکت مرتبط است. میتونیم زنجیره ای  عملکردها که به context اشاره دارند رو مورد استفاده قرار بدیم.تمام موارد بالا also - apply - sort - اشاره دارند به mutableListOf  که بصورت زنجیره ای به هم متصل هستند.همچنین میتونیم در عبارات برگشتی از توابع برگشتی از شی زمینه استفاده کرد.مثال بالا رو در بخش it  توضیح دادم. Lambda resultتوابع let - run  و also نتیجه یک عبارت لامبدا رو برمیگردونه، بنابراین هنگام اختصاص دادن نتیجه به یک متغیر ، میتونیم زنجیره ای  از عملیات رو که میخوایم روی اون متغیر انجام بدیم رو بهش اعمال کنیم.مثال بالا به این صورت هست که it حکم اون متغیری رو داره که میخوایم عملیات روش انجام بدیم ، حالا میتونه شامل یک یا چند عملیات باشه. که در این مثال ما به دنبال مغادیری هستیم که آخرشون به &#x27;e&#x27; ختم میشوند. دقت داشته باشید که روی مقدار بازگشتی داریم تمرکز میکنیم  و مقدار بازگشتی ما در این مثال از نوع Int هستش.علاوه بر این ، شما می توانید مقدار بازگشت را نادیده بگیرید و از یک تابع دامنه برای ایجاد دامنه موقتی برای متغیرها استفاده کنید.خب بخش اول تموم شد، چون نمیخوام پست زیاد طولانی بشه در بخش دوم میرسیم به توضیح خود Scope Function ها  - اینم از آخرین پست سال 98 بخش دومش میفته سال بعد ?نمیدونم توضیحات کمکی بهتون کرده یا نه ولی امیدوارم مفید واقع شده باشه. کمی کاستی یا سوالی داشت کامنت بزارید درحد سوادم پاسخگو هستم. لینک سایر بخش هم رو قرار میدم تا دسترسی واستون راحت باشه + لینک منابع این قسمت. https://virgool.io/@omiddeadlive/scope-function-in-kotlin-let-بخش-دوم-xyoazcq6kvvr  https://kotlinlang.org/docs/reference/scope-functions.html قشنگ ترین حس و حال های دنیار رو براتون آرزو میکنم در سال 99</description>
                <category>ICT_NoteTaking</category>
                <author>ICT_NoteTaking</author>
                <pubDate>Thu, 19 Mar 2020 22:59:16 +0330</pubDate>
            </item>
                    <item>
                <title>مناسب ترین زبان یا فرمورک برای بک اند اندروید؟</title>
                <link>https://virgool.io/@ICT/%D9%85%D9%86%D8%A7%D8%B3%D8%A8-%D8%AA%D8%B1%DB%8C%D9%86-%D8%B2%D8%A8%D8%A7%D9%86-%DB%8C%D8%A7-%D9%81%D8%B1%DB%8C%D9%85-%D9%88%D8%B1%DA%A9-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A8%DA%A9-%D8%A7%D9%86%D8%AF-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-ghz80asmoogl</link>
                <description> ... i have question ...سلام به همه خونه نشین هابدون مقدمه میرم سر اصل مطلب. برای بک اند اندروید(REST API) چه زبان یا فرمورکی پیشنهاد میدید؟ - برای پروژه های کوچیک مارکتیزبان پیشنهادی شما چیه پایتون (جانگو)- جاوا اسکریپت(Node.js) یا PHPاگر php از کدام فرمورکش - Slim - Laravel - CodeIgniterنکاتی که مد نظرمه:سبک باشه - چون برای پروژهای کوچیک میخوامهزینه هاست و سرورش پایین باشهدردسر اجراش کم باشهمشکلی هم با یادگیری زبان های مختلف ندارم - چون تا حدودی به برنامه نویسی مسلطمخیلی در گیر این موضوع انتخاب زبان برای بک اند هستم -- چون نمیخوام کلی وقت بزارم و بعدش دوباره برم سراغ یه زبان دیگهممنون میشم منو در انتخابم راهنمایی کنید..</description>
                <category>ICT_NoteTaking</category>
                <author>ICT_NoteTaking</author>
                <pubDate>Wed, 11 Mar 2020 07:12:28 +0330</pubDate>
            </item>
                    <item>
                <title>بازار زرد مکاره ها</title>
                <link>https://virgool.io/@ICT/%D8%A8%D8%A7%D8%B2%D8%A7%D8%B1-%D8%B2%D8%B1%D8%AF-%D9%85%DA%A9%D8%A7%D8%B1%D9%87-%D9%87%D8%A7-wzmsbu5pwfxe</link>
                <description>سلام به همه ویرگولی ها:یه چند وقتی که یه سری از این سایت های فروش محصولات آموزشی اومدن یسری حساب کاربری در ویرگول ساختن (بیشتر با اسم های از جنس مونث) و تبلیغات مسخرشون رو این جوری بیان میکنند :بهترین منابع برای فلان زبان  ( یکی دوتا منابع معرفی میکنند بعد اسم سایتشون رو اون لابه لا قرار میدند)زبان برنامه نویسی PHP/JAVA/KOTLIN  و ... رو از کجا و چجوری شروع کنیم؟  ( بعدشم یه تعریف تمجدیدی از اون زبان میکنند و در آخر لینک سایتشون رو قرار میدند)و ... خیلی موارد دیگه وارد هر کدوم از این سایت ها هم که میشی قیمت پکیج هاشون معمولا 300,600,700  چه کاریه آخه این حرکت بیا صادقانه حرفتو بزن ببینیم که چی تو بساط داری ، چرا حلا انقدر از اسم های دخترونه استفاده میکنی هول مثل اینکه این دروغ های صدا و سیما و اخبار رو ملت تاثییر گذاشته.بدتر از این مشکل اینه که یه سری کاربرها هم این پکیج هارو رو خریدن حالا بهشون لینک بازاریابی دادن اوناهم هی تعریف از فلان استاد و فلان سایت میکنند که اینو کجای دلم بزارم  (اسکی سواری)ختم کلام اینکه بالا بری پایین بیای بازم به نصف کیفیت آموزش  سایت های مثل :Udemy - Udacity - Lynda - Coursera and ... نمیرسی.حتی نصف کاربری که تو یوتیوب داره آموزش میده اینم نوشتم که بدونید خودتونید</description>
                <category>ICT_NoteTaking</category>
                <author>ICT_NoteTaking</author>
                <pubDate>Wed, 04 Mar 2020 13:42:05 +0330</pubDate>
            </item>
                    <item>
                <title>مشکل نمایش ترجمه زیرنویس ها در یوتیوب</title>
                <link>https://virgool.io/@ICT/%D9%85%D8%B4%DA%A9%D9%84-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%D8%B2%DB%8C%D8%B1%D9%86%D9%88%DB%8C%D8%B3-%D9%87%D8%A7-%D8%AF%D8%B1-%DB%8C%D9%88%D8%AA%DB%8C%D9%88%D8%A8-y4roln0xi9v8</link>
                <description>سلام به همه دوستانیه چندوقتی هست که در ترجمه زیرنویس های یوتیوب به مشکل برخوردم و میخوام ببینم برای شما هم همچین مشکلی هست یا نهمشکل به این صورت هست که ترجمه زیرنویس ها رو روی هم نمایش میده که خوندن زیرنویس ها رو با مشکل مواجه میکنه.البته این مشکل فقط در ترجمه زیرنویس هاست و خود زیرنویس اصلی که معمولا به زبان انگلیسی هست  همچین مشکلی نداره.نمایش  زیرنویس بدون مشکلروی هم افتادن ترجمه زیرنویس هااز اونجایی هم که بیشتر سایت ها از یوتویب برای نمایش ویدئو استفاده میکنند، بنابراین این مشکل همه جا وجود دارهکارهای که برای حل این مشکل انجام دادم که موفقیت آمیز نبود:-از مرورگر اوپرا استفاده میکنم و آپدیت ، حذف و نصب دوباره فایده ای نداشتاز مرورگر های دیگه استفاده کردم که همشون همین مشکل رو داشتنتغییر تنظیمات نمایش زیرنویس در یوتیوبخروج از حساب کاربری یوتیوبپاک کردن کش  همه مرورگره ها، حذف کوکیشما راه حلی برای این مشکل دارید؟ لطفا اگر راه حلی برای این مشکل دارید ممنون میشم اطلاع بدید.</description>
                <category>ICT_NoteTaking</category>
                <author>ICT_NoteTaking</author>
                <pubDate>Wed, 05 Feb 2020 18:07:39 +0330</pubDate>
            </item>
                    <item>
                <title>20 منبع بسیار خوب و کاربردی برای یادگیری زبان برنامه نویسی Kotlin</title>
                <link>https://virgool.io/coderlife/20-%D9%85%D9%86%D8%A8%D8%B9-%D8%A8%D8%B3%DB%8C%D8%A7%D8%B1-%D8%AE%D9%88%D8%A8-%D9%88-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%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-kotlin-yoiod2hpqxvj</link>
                <description>کاتلین یک زبان برنامه نویسی مدرن است که بر روی Virtual Machine جاوا اجرا میشود و سینتکس های بسیار خوب و فوق العاده ای دارد و با لایبرری های جاوای موجود نیز سازگار میباشد. بنا بر گفته های تیم اندروید در کنفرانس I/O گوگل، Kotlin به زبان برنامه نویسی رسمی برای پلتفرم اندروید تبدیل میشود.برای آشنایی بیشتر شما توسعه دهندگان با این زبان برنامه نویسی، در این مطلب بهترین منابع یادگیری Kotlin را فهرست کرده ایم. شایان ذکر است که تمامی منابع به صورت کاملا رایگان در اختیار شما قرار دارند.The Kotlin Websiteوبسایت رسمی این پروژه بهترین مکان برای شروع فرِآیند یادگیری Kotlin میباشد. در بخش reference میتوانید مستندات جزئی مربوط به مفاهیم اصلی و قابلیت های این زبان را پیدا کنید. بخش tutorials دستورالعمل های گام به گام متعددی را در خود جای داده و در محیط توسعه آن میتوانید از کامپایلر استفاده کنید.Kotlin editor یک اپلیکیشن مرورگر است که به شما کمک میکند تا زبان را امتحان کنید و با استفاده از مثال های موجود به بهترین نحو با سینتکس ها آشنایی پیدا کنید.Keddit: Learn Kotlin while developing an Android Appدر این آموزش 11 بخشی، Juan Ignacio Saravia در عمل از Kotlin استفاده کرده و یک اپلیکیشن مشابه Reddit میسازد. در این مطلب آموزشی موضوعات متعددی از قبیل راه اندازی فضای توسعه تا استفاده از API و حتی تست واحد پوشش داده شده و کد در GitHub در دسترس میباشد.Antonio Leiva&amp;amp;#x27;s Blogوبلاگ Antoni Leiva به Kotlin اختصاص داده شده و به طور هفتگی با آموزش ها و مقالات با کیفیت آپدیت میشود و توسعه دهندگان حرفه ای Kotlin میتوانند با لایبرری های جدید آشنا شده و انواع تکنیک های عملی را فرا بگیرند.Android Announces Support for Kotlinوبسایت رسمی گوگل به دلایلی که وجود Kotlin در اکوسیستم اندروید را توجیه میکنند پرداخته است. در این مقاله پیش نمایشی مختصر از برخی بهبودهای خوبی که Kotlin با خود به همراه آورده نمایش می دهد.Design Patterns implemented in KotlinـDariusz Baciński یک ریپوزیتوری بسیار خوب و کاربردی GitHub ساخته که شامل الگوهای طراحی رایج پیاده سازی شده در Kotlin میباشد. چندین پروژه مشابه که با زبان های گوناگون مانند Java ،Swift ،JavaScript و PHP نوشته شده اند نیز وجود دارد که اگر در یکی از این زبان ها پیش زمینه داشته باشید، میتوانید از آنها به عنوان مرجع استفاده کنید.Learn X in Y minutesیک چیت شیت سریع به همراه مهم ترین قابلیت ها و ویژگی های سینتکسی که به شما کمک میکنند تا کدهای Kotlin بهتری بنویسید. چندین مثال درباره کار بر روی کلاس ها، حلقه ها و لیست ها و همچنین پیاده سازی مسائل برنامه نویسی کلاسیک مانند تولید یک سری فیبوناچی نیز زده شده است.The Kotlin Blogوبلاگ رسمی Kotlin که توسط نویسندگان آن در JetBrains مدیریت میشود. در این وبلاگ میتوانید تمامی اخبار و آپدیت های مربوط به Kotlin و همچنین مطالب آموزشی، ترفندها و سایر مقالات مفید را بیابید.Get Started with Kotlin on Androidیک مقاله مفید و کاربردی از وبلاگ توسعه دهندگان گوگل که نحوه راه اندازی اندروید استودیو با Kotlin، تبدیل فایل های java. به فایل های kt. و یکپارچه سازی این زبان جدید با پروژه اندروید استودیوی کنونی را شرح میدهد. چندین مقایسه کد برای APIهای اندروید مشابه که در Kotlin و Java مورد استفاده قرار گرفته اند نیز وجود دارد.Android Testing With Kotlinمقاله بسیار خوبی که نحوه نوشتن و اجرای تست برای اپلیکیشن های اندروید با استفاده از Kotlin را شرح میدهد. نویسنده به خوبی انواع تست های در دسترس، زمانی که باید از آنها استفاده کرد و نحوه کسب اطمینان از تست صحیح و مناسب را شرح داده است. مطلب آموزشی خوب و کاربردی دیگر درباره این موضوع در این لینک موجود است.Introduction to Kotlinگفتگوی گوگل در I/O 2017 که به معرفی زبان Kotlin برای افراد ناآشنا اختصاص داده شده بود تا ایده ای از نحوه بهبود جریان کار توسط این زبان در اختیار آنها قرار گیرد. این مطلب بسیاری از مفاهیم پایه را پوشش میدهد و بهترین و کاربردی ترین ترفندهای Kotlin را به نمایش میگذارد.Life is Great and Everything Will Be Ok, Kotlin is Hereبحث دوم گوگل در I/O 2017 که موضوعات پیشرفته تر مانند الگوهای طراحی، بهترین روش ها و سایر اصول رایج را پوشش میدهد. نتایج استفاده از Kotlin در تولید و چالش های استفاده از یک زبان جدید در محیط کار نیز مورد بررسی قرار گرفته اند.Peter Sommerhoff&amp;amp;#x27;s Kotlin Tutorialsیک دوره آموزشی رایگان Kotlin برای مبتدیان است که کلیه مقدمات از متغیرها تا شرط های حلقه ها و توابع را در بر میگیرد. سپس به موضوعات پیچیده تر مانند شی گرایی در Kotlin و برنامه نویسی عملیاتی مانند عبارت های lamda پرداخته میشود.Better Android Development with Kotlin &amp;amp;amp; Gradleاین بحث از 2016 شامل یک بررسی اجمالی مختصر از قابلیت های زبان به همراه یک مثال عملی و واقعی است که میتوانید بفهمید که Kotlin به چه صورتی با جریان کاری معمول اندروید سازگار است.Better Android Development with Kotlin &amp;amp;amp; Gradleیک آموزش 8 دقیقه ای بسیار خوب که سریعا به امکانات مهم Kotlin مانند تعریف متغیرهای خلاصه شده، lamdbas، تابع اکستنشن و غیره میپردازد.Android Development with Kotlin — Jake Whartonیک معرفی از Kotlin که نحوه بهبود اکوسیستم اندروید توسط این زبان جدید را شرح داده و برخی روش های بسیار خوب که میتوانید از سینتکس هوشمند Kotlin بهره بگیرید را نمایش میدهد.From Java To Kotlinیک چیت شیت خوب و کاربردی که شامل قطعه کدهای بسیار کوتاه بوده و به شما کمک میکند تا سریعا با جایگزین های Kotlin و عملگرها، توابع و تعریف های جاوا آشنا شوید.Kotlin Educational Pluginیک پلاگین برای IntelliJ IDE است که شما را قادر به شرکت در دوره های آموزشی Koans course در محیط دفتری خود مینماید.Kotlin on GitHubـKotlin بیش از 5 سال به صورت اپن سورس بوده و یک ریپوزیتوری GitHub موجود است که شامل کل تاریخچه پروژه میباشد. در صورت تمایل به پشتیبانی از این زبان، میتوانید به صورت مستقیم یا با کار بر روی مستندات این کار را انجام دهید.Kotlin Android Templateیک قالب پروژه اندروید که راه اندازی محیط کار پایدار Kotlin و اپلیکیشن ها را تسهیل میبخشد.Awesome Kotlinلیستی گسترده از منابع Kotlin که شامل تمامی لینک ها، کتاب ها، لایبرری ها، فریم ورک ها و ویدیوهای کاربردی میباشد. این فهرست به خوبی سازماندهی شده و نسخه استایل داده شده آن نیز از طریق kotlin.link در دسترس میباشد. https://tutorialzine.com/2017/05/20-excellent-resources-for-learning-kotlin?utm_source=Android+Weekly&amp;utm_campaign=97e2bb2890-android-weekly-260&amp;utm_medium=email&amp;utm_term=0_4eb677ad19-97e2bb2890-337887953  https://appreview.ir/آشنایی-با-20-منبع-بسیار-خوب-و-کاربردی-برا </description>
                <category>ICT_NoteTaking</category>
                <author>ICT_NoteTaking</author>
                <pubDate>Thu, 28 Nov 2019 17:09:52 +0330</pubDate>
            </item>
                    <item>
                <title>خودآموز برنامه نویسی در 10 سال</title>
                <link>https://virgool.io/@ICT/%D8%AE%D9%88%D8%AF%D8%A2%D9%85%D9%88%D8%B2-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%AF%D8%B1-10-%D8%B3%D8%A7%D9%84-yed0m2iqfryc</link>
                <description>عنوان اصلی : Teach Yourself Programming in Ten Yearsترجمه: مهدی عسگری نویسنده: Peter NorvigTeach Yourself Programming in Ten Yearsخلاصه: در این مقاله Peter Norvig (نویسنده ی کتاب معروف هوش مصنوعی مورد استفاده در اکثر دانشگاه های جهان) در مورد پدیده و تب یادگیری سریع برنامه نویسی صحبت کرده و نشان می دهد که برای تخصص در برنامه نویسی بر خلاف کتاب های عامه پسند (آموزش در 21 روز ، 24 ساعت ، ...) حداقل 10 سال زمان و کار لازم است تا یک نفر به تخصص برسد (در هر رشته ای ، نه فقط یرنامه نویسی)چرا همه این قدر عجله دارند ؟تو هر کتاب فروشی که بروید ، کلی کتاب می بینید که می خواهند در چند ساعت یا چند روز به شما کامپیوتر یا برنامه نویسی یاد بدهند (از ویندوز و اینترنت گرفته تا ویژوال بیسیک و جاوا و ...) من جستجوی زیر را در آمازون انجام دادم:pubdate: after 1992 and title: days and(title: learn or title: teach yourself)یعنی کتاب هایی که از سال 1992 تا الان چاپ شده و در عنوانشان کلمات days و &quot;یادگیری یا خودآموز&quot; وجود دارد. نتیجه شامل 248 مورد بود. (مترجم: اعداد و آمار منتشر شده در این مقاله مربوط به سال 2001 هستند. ) 78 کتاب اول کتاب های مربوط به کامپیوتر بودند. عبارت days را با hours جایگزین کردم ؛ نتایج مشابه قبلی بود: 253 مورد که 77 تای اول در مورد کامپیوتر بودند. از 200 کتاب صدر نتایج جستجو (در کل) 96 درصد مربوط به کامپیوتر بود.خلاصه این که یا مردم خیلی عجله دارند که در مورد کامپیوتر ها چیز یاد بگیرند یا هم که یادگیری کامپیوتر خیلی آسان تر از یادگیری چیزهای دیگر است. وگرنه هیچ کتابی در مورد بتهوون ، یا فیزیک کوانتوم یا حتی تربیت سگ ، در چند روز وجود ندارد.خب ببینیم عنوانی مثل &quot;آموزش پاسکال در 3 روز&quot; چه معنی ای دارد:یادگیری: در 3 روز شما وقت کافی برای نوشتن چند برنامه ی مهم و یادگیری از موفقیت ها و اشتباهاتتان و همینطور وقت برای کار کردن با یک برنامه نویس با تجربه را نخواهید داشت. خلاصه ، وقت کافی برای یادگیری چندانی نخواهید داشت. در واقع این کتاب ها بیشتر در مورد یک آشنایی کلی بحث می کنند نه درک عمیق از موضوع. به قول آلکساندر پوپ: &quot;یادگیری سطحی ، چیز خطرناکی است&quot;پاسکال: در 3 روز شاید بتوانید سینتکس پاسکال را یاد بگیرید (ان هم به شرطی که قبلا با یک زبان مشابه کار کرده باشید) اما زیاد نمی توانید درباره ی کاربرد زبان یاد بگیرید. یعنی اگر قبلا با بیسیک برنامه نویسی کرده باشید ، یاد می گیرید که برنامه ها را در پاسکال ولی با روش بیسیک بنویسید اما نقاط ضعف و قوت پاسکال را یاد نمی گیرید. به قول آلن پرلیس: &quot;زبانی که طرز فکر شما را درباره ی برنامه نویسی تغییر ندهد ، ارزش یادگیری ندارد&quot;. ممکن است شما بخواهید قسمتی از پاسکال (یا هر زبان دیگری) را یاد بگیرید تا بتوانید از ابزار خاصی استفاده کرده و کار مشخصی را انجام دهید؛ در این صورت دیگر برنامه نویسی یاد نمی گیرید ، بلکه یاد می گیرید چطور ان کار مشخص را انجام دهید.3 روز: همانطور که در بخش بعدی می بینید ، این مدت کافی نیست.آموزش برنامه نویسی در 10 سالمحققان (1) نشان دادند که برای متخصص شدن در بسیاری از زمینه ها (از شطرنج گرفته تا آهنگ سازی ، اپراتوری تلگراف ، نقاشی ، نواختن پیانو ، شنا ، تنیس ، عصب شناسی ، ...) حدود 10 سال زمان لازم است. نکته ی مهم انجام کار پیوسته و با توجه است ، نه صرفا کاری را مدام تکرار کردن ، بلکه به چالش کشیدن خودتان با کارهایی که فراتر از توانایی فعلی تان است و تحلیل کارایی تان قبل و بعد از انجام ان کار و اصلاح اشتباهاتتان. و بعد تکرار کنید. و دوباره تکرار کنید. هیچ میانبری وجود ندارد: حتی موزارت که در 4 سالگی اعجوبه ای در موسیقی بود ، 13 سال طول کشید تا بتواند اولین کار حرفه ای و جهانیش را بسازد. گروه موسیقی بیتلز در سال 1964 با وارد شدن به صحنه ی موسیقی اکثر کارهایشان جزو کارهای محبوب (و به قولی &quot;نامبر وان&quot;) بودند ولی فراموش نکنید که اعضای گروه از سال 1957 در کلوب های کوچک لیورپول و هامبورگ فعالیت می کردند و اولین موفقیت بزرگشان (Sgt. Peppers) در سال 1967 عرضه شد. در یک مطالعه بر روی دانش آموزان در آکادمی برلین ، محققان اعضای برتر ، متوسط و پایین کلاس را مقایسه کرده و از آن ها پرسیدند که چقدر تمرین کرده اند:همه (از هر سه گروه) نواختن را از حدود 5 سالگی شروع کرده و در سال های اول هر کس به یک میزان فعالیت می کرد (حدود 2 یا 3 ساعت در هفته) اما در حدود 8 سالگی تفاوت های واقعی نمایان شد. کسانی که در کلاس هایشان بهترین بودند ، بیش از بقیه تمرین می کردند: 6 ساعت در هفته در سن 9 سالگی ، 8 ساعت در 12 سالگی ، 16 ساعت در 14 سالگی و الی آخر تا سن 20 که هفته ای بیش از 30 ساعت کار می کردند. در سن 20 سالگی افراد برتر نزدیک به 10000 ساعت از عمرشان را به تمرین گذرانده بودند. دانش اموزان رده بعدی حدود 8000 ساعت و دانش اموزان معمولی (معلمین موسیقی در آینده!) حدود 4000 ساعت.شاید هم 10000 ساعت ان عدد جادویی باشد نه 10 سال. به نظر ساموئل جانسون (1709-1784) زمان بیشتری لازم است: &quot;برتری در هر رشته ای فقط با یک عمر کار به دست می آید و با قیمت کمتری قابل خرید نیست&quot; و اما دستورالعمل من برای موفقیت در برنامه نویسی:به برنامه نویسی علاقه داشته باشید. اطمینان حاصل کنید که انقدر از برنامه نویسی لذت می برید که حاضر باشید 10 سال از عمرتان را صرفش کنید.با برنامه نویسان دیگر ارتباط داشته باشید. کد برنامه های دیگر را مطالعه کنید. این خیلی مهم تر از هر کتاب یا دوره ی آموزشی است.برنامه بنویسید. بهترین نوع آموزش ، انجام دادن است. در واقع حداکثر سطح کارایی برای افراد در هر رشته ای ، به طور خودکار با تجربه ی بیشتر حاصل نمی شود بلکه نیاز به تلاش تعمدی برای بهبود دارد.می توانید تحصیلاتتان را در دانشگاه هم ادامه بدهید. این کار باعث می شود از رشته تان درک عمیق تری به دست آورده و همچنین به کارهایی مشغول شوید که نیاز به مدرک دانشگاهی دارند. البته اگر از مدرسه و درس لذت نمی برید ، می توانید تجربه ی مشابهی را در کار کسب کنید (البته با تلاش بیشتر) Eric Raymond در دیکشنری هکر ها می گوید: &quot;مطالعه و تحصیلات آکادمیک در رشته ی کامپیوتر یک شخص را تبدیل به یک برنامه نویس حرفه ای نمی کند ، همانطور که یک فرد فقط با مطالعه ی رنگ و قلم مو نمی تواند نقاش شود&quot;. یکی از بهترین افرادی که در عمرم استخدام کردم (Jamie Zawinski) ، فقط تا دبیرستان درس را ادامه داده بود؛ با این وجود این شخص نرم افزار های خیلی خوبی تولید کرده (موزیلا و xemacs) و گروه خودش را در googlegroups دارد و حتی انقدر پول دراورد که بتواند یک کلوب شبانه بخرد.روی پروژه های تیمی کار کنید. در بعضی از پروژه ها بهترین و در بعضی دیگر بدترین برنامه نویس باشید. وقتی بهترین هستید توانایی های خودتان به عنوان یک رهبر گروه را تست کرده و به دیگر افراد الهام می دهید. وقتی هم که بدترین باشید یاد می گیرید که حرفه ای ها چه کار می کنند و همچنین چه کارهایی را دوست ندارند انجام دهند (چون این کارها را می سپارند به شما!)روی پروژه های دیگران کار کنید. برنامه هایی که دیگران نوشتند را مطالعه کنید. سعی کنید باگ های برنامه های دیگران را رفع کنید. به این فکر کنید که چطور برنامه هایتان را طراحی کنید که کار کسانی که می خواهند ان را نگهداری کنند آسان تر شود.کلی زبان برنامه نویسی یاد بگیرید. یک زبان که از شی گرایی و کلاس ها پشتیبانی کند (مثل جاوا یا سی پلاس پلاس) ، یک زبان تابعی (مثل لیسپ یا ML) (م: یا Haskell) ، یک زبان اعلانی (مثل پرولوگ یا قالب ها در سی پلاس پلاس) ، یک زبان که از coroutine ها پشتیبانی کند (مثل Scheme یا Icon) (م: امروزه زبان های دیگری از جمله سی شارپ هم coroutine را دارند) و یک زبان که از برنامه نویسی موازی پشتیبانی کند (مثل Sisal) (م: و Erlang)یادتان باشد که ما با کامپیوتر سر و کار داریم. بدانید که چقدر طول می کشد تا کامپیوترتان یک دستورالعمل را اجرا کند، یک کلمه را از حافظه واکشی کند (در هر دو حالت وجود و نبودش در کش) ، کلماتی متوالی را از دیسک بخواند ، یا به یک مکان از دیسک برود (seek) (م: منظور نویسنده آشنایی با معماری کامپیوتر است. آقای Stroustrup خالق سی پلاس پلاس هم روی این نکته تاکید دارند)درگیر استاندارد سازی یک زبان شوید. حالا می تواند کمیته ی ANSI C++‎ باشد یا استاندارد شخصی تان برای کدنویسی (مثلا این که برای تورفتگی از 2 فاصله استفاده کنید یا 4 تا) در هر حال یاد می گیرید که بقیه چه چیزهایی را در یک زبان دوست دارند و همینطور علت این دوست داشتن را.با در نظر گرفتن این موارد ، این سوال پیش می آید که صرفا با مطالعه ی کتاب چقدر می توانید یاد بگیرید. قبل از تولد اولین بچه ام ، تمام کتاب های &quot;چگونه...&quot; (How To…) را خواندم بودم و باز هم حس می کردم مبتدی ام. 30 ماه بعد (پس از تولد دومین فرزندم) دیگر سراغ کتاب هایم نمی رفتم؛ به جایش به تجربه ی شخصی ام تکیه کردم که معلوم شد خیلی مفیدتر و مطمئن تر از هزاران صفحه کتاب هایی است که توسط متخصصین نوشته شده اند. آقای Fred Brooks در مقاله ی &quot;No Silver Bullets&quot; (2) طرحی سه بخشی برای پیدا کردن بهترین طراحان نرم افزار مشخص کرد:1-	به طور سیستماتیک و هر چه زودتر طراحان برتر را مشخص کنید2-	یک مربی حرفه ای به آن ها اختصاص دهید تا مسئول و مراقب کار باشد3-	فرصت هایی را فراهم بیاورید که این افراد از طریق ارتباط و برانگیختن همدیگر ، رشد کنندآلن پرلیس می گوید: &quot;هر کسی می تواند حجاری یاد بگیرد: میکل آنژ باید یاد می گرفت چطور این کار را نکند. در مورد برنامه نویسان بزرگ هم همینطور است&quot;باشه ، بروید و ان کتاب جاوا را بخرید؛ احتمالا به دردتان بخورد ولی زندگی تان یا تخصصتان در کل در طول 24 ساعت ، روز یا حتی ماه تغییر چندانی نخواهد کرد.(1) : Bloom, Benjamin (ed.) Developing Talent in Young People, Ballantine, 1985.Hayes, John R., Complete Problem Solver Lawrence Erlbaum, 1989.Bryan, W.L. &amp; Harter, N. &quot;Studies on the telegraphic language: The acquisition of a hierarchy of habits. Psychology Review, 1899, 8, 345-375Chase, William G. &amp; Simon, Herbert A. &quot;Perception in Chess&quot; Cognitive Psychology, 1973, 4, 55-81.(2) http://citeseer.nj.nec.com/context/7718/0ضمیمه: انتخاب زبانچندین نفر از من پرسیدند که کدام زبان برنامه نویسی را باید اول یاد بگیرند. هیچ جواب قطعی ای وجود ندارد ، اما به نکات زیر توجه کنید:دوستان: وقتی کسی از من می پرسد از چه سیستم عاملی استفاده کنم ، جواب می دهم: &quot;از هر چیزی که دوستانت استفاده می کنند&quot; مزیتی که از یادگیری از دوستانتان به دست می آورید ، هرگونه تفاوت بین سیستم عامل ها یا زبان های برنامه نویسی را خنثی می کند. البته دوستان آینده تان را هم در نظر بگیرید: جامعه ای از برنامه نویسان که شما در آینده جزئی از ان ها خواهید بود. آیا زبانی که انتخاب کردید یک جامعه ی بزرگ و فعال و در حال رشد دارد یا این که روز به روز از استفاده کنندگانش کم می شود ؟ آیا کتاب ، وب سایت و فروم های اینترنتی برای رسیدن به جواب سوال هایتان وجود دارد ؟ آیا از اعضای این فروم ها خوشتان می اید ؟سادگی: زبان هایی مثل جاوا و سی پلاس پلاس برای پروژه های بزرگ و حرفه ای طراحی شده اند که توسط تیمی از برنامه نویسان حرفه ای استفاده می شوند که کارایی زمان اجرا برایشان مهم است ؛ در نتیجه این زبان ها بخش های پیچیده ای دارند تا بتوانند نیاز های این افراد را براورده کنند. اما شما نیازی به این زبان ها ندارید ، چون می خواهید برنامه نویسی یاد بگیرید. شما نیاز به زبانی دارید که یادگیری اش آسان باشد و یک برنامه نویس تازه کار بتواند به راحتی با آن کار کرده و سینتکسش در یادش بماند.تفریح: کدام روش را برای یادگیری پیانو می پسندید: روش معمولی و تعاملی که به محض فشار دادن هر کلید نتی را می شنوید یا روش دسته ای که پس از اتمام یک آهنگ نت ها را می شنوید ؟ مسلما روش تعاملی یادگیری را آسان تر می کند. از زبانی استفاده کنید که حالت تعاملی (interactive mode) دارد.با توجه به این سه مورد ، توصیه ی من برای اولین زبان برنامه نویسی ، پایتون یا Scheme است. البته اگر سنتان تک رقمی است توصیه می کنم از Alice یا Squeak شروع کنید. مهم ترین چیز این است که انتخاب کرده و شروع کنید.نظر مترجم: (translator notes)مقاله ی آقای Norvig الان با وجود گذشت فقط 8 سال از نگارش ، جزو مقالات کلاسیک محسوب می شود. بعضی از قسمت ها با توجه به گذر زمان مطمئنا قدیمی هستند (مثل زبانی با قابلیت coroutine) و زبانی امروزی مثل F#‎ اکثر قسمت هایی را که ایشان روی آن ها تاکید دارند پشتیبانی می کند (شاید برای این بخش بهتر باشد به نصیحت Don Syme خالق F#‎ گوش کنیم که می گوید حتما Haskell,Prolog, F#‎ , Python و سی شارپ را یاد بگیرید) ولی نکته ای که هست و هیچ وقت غبار زمان به خودش نمی گیرد این است که به صرف خواندن چند کتاب و پاس کردن چند ترم درس و چند هزار خط کد نوشتن ، کسی حرفه ای نمی شود و اگر می خواهیم در دنیای به شدت پویای نرم افزار زنده بمانیم ، باید حاضر باشیم عمرمان را (درست) صرف شغلمان کنیم. http://norvig.com/21-days.html </description>
                <category>ICT_NoteTaking</category>
                <author>ICT_NoteTaking</author>
                <pubDate>Fri, 16 Aug 2019 23:28:55 +0430</pubDate>
            </item>
                    <item>
                <title>آموزش Git برای توسعه دهندگان اندروید (بخش سوم)</title>
                <link>https://virgool.io/@ICT/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-git-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D8%AF%D9%87%D9%86%D8%AF%DA%AF%D8%A7%D9%86-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-%D8%A8%D8%AE%D8%B4-%D8%B3%D9%88%D9%85-bnbpspflmlqx</link>
                <description> در بخش قبلی این سری مطالب آموزشی به بررسی فهرستی از عملیات Git که امکان یکپارچه‌سازی Git و افزودن آن به پروژه‌های اندروید را فراهم می‌سازد پرداخته‌ایم. در این بخش از آموزش Git در مورد پنجره کنترل نسخه در انتهای اندروید استودیو که با استفاده از دکمه‌های میانبر Alt+9 قابل باز کردن است توضیح می‌دهیم.  در ادامه مواردی که را که روی تصویر فوق شماره‌گذاری شده‌اند به ترتیب توضیح می‌دهیم. برگه تغییرات محلیبرای رفرش کردن وضعیت تغییرات محلی.برای کامیت کردن تغییرات محلی با کلیدهای میانبر Ctrl + K.برای بازگردانی تغییرات با کلیدهای میانبر Ctrl + Alt + Z.برای ایجاد یک فهرست تغییرات جدید.برای حذف فهرست تغییرات انتخابی.برای فعال کردن فهرست تغییرات.برای جابجایی فایل انتخابی به فهرست تغییرات دیگر.برای جابجایی فایل انتخابی یا فهرست تغییرات به shelf با کلیدهای میانبر Ctrl + Alt + Hبرای نمایش تفاوت‌های فایل انتخابی با آخرین بازبینی با کلیدهای میانبر Ctrl + D.برای گسترش فضا جهت نمایش همه فایل‌ها با کلیدهای میانبر + Ctrl + NumPad.برای جمع کردن همه فایل‌ها با کلیدهای میانبر – Ctrl + NumPad.برای نمایش فایل‌های تغییر یافته که بر اساس پوشه گروه‌بندی شده‌اند.برای کپی کردن مسیر فایل انتخابی به کلیپ بورد سیستم با کلیدهای میانبر Ctrl + C.برای نمایش فهرست فایل‌های نادیده گرفته شده.برای پیکربندی فایل‌هایی که از سوی Git نادیده گرفته خواهند شد.برای باز کردن بخش پیش‌نمایش جهت مقایسه فایل انتخابی با آخرین بازبینی کامیت شده. برگه Logدر ادامه توضیحات مربوط به بخش‌هایی که در تصویر فوق شماره‌گذاری شده‌اند را ملاحظه می‌کنید:منوی بازشدنی برای فیلتر کردن log بر اساس شاخه انتخابی استفاده می‌شود.برای فیلتر کردن log بر اساس کاربر انتخابی.برای فیلتر کردن log بر اساس دوره زمانی انتخابی.برای فیلتر کردن بر اساس مسیر فایل اصلاح شده.IntellSort - یک مسیر راحت برای مشاهده ادغام‌ها، با نمایش کامیت‌های ورودی زیر کامیت ادغام.برای نمایش کامل شاخه‌های طولانی.برای رفرش فهرستی از کامیت‌ها با کلیدهای میانبر Ctrl + F5.برای رفتن به یک hash یا تگ یا شاخه با کلیدهای میانبر Ctrl + F.برای به‌کارگیری تغییرات کامیت انتخابی برای شاخه جاری.اگر می‌خواهید تنها کامیت‌ها را از یک شاخه داشته باشید؛ در این صورت نیازی به ادغام نخواهید داشت، زیرا همه کامیت‌ها را از شاخه شما دریافت خواهد کرد. در این حالت می‌توانید صرفاً برخی کامیت‌ها را انتخاب کرده و به شاخه خود اضافه کنید.هایلایت کردن کامیت غیرانتخابی. برای هایلایت کردن کامیت از شاخه انتخابی که هنوز روی شاخه جاری اعمال نشده است. برگه Console در این برگه، می‌توانیم نتایج دستورهای Git را که اجرا شده‌اند ببینیم. اما نمی‌توانیم دستورهای Git را در اینجا ببینیم و به جای آن از پنجره ترمینال استفاده کنیم. برگه Historyدر این برگه می‌توانید تاریخچه‌ای از فایل انتخابی یا پروژه را ببینید. تاریخچه کل تغییرات ایجاد شده در پروژه را با اطلاعات روشنی مانند نام توسعه‌دهنده، زمان، فایل‌های تغییر یافته و موارد دیگر نمایش می‌دهد.پایان. https://virgool.io/@omiddeadlive/آموزش-git-برای-توسعه-دهندگان-اندروید-بخش-اول-soidnmcgktqc  https://virgool.io/@omiddeadlive/آموزش-git-برای-توسعه-دهندگان-اندروید-بخش-دوم-rnfbouh6vyxx  https://medium.com/ivymobility-developers/git-for-android-developers-part-3-version-control-window-f98c7627d2e4 </description>
                <category>ICT_NoteTaking</category>
                <author>ICT_NoteTaking</author>
                <pubDate>Thu, 13 Jun 2019 03:58:47 +0430</pubDate>
            </item>
                    <item>
                <title>آموزش Git برای توسعه دهندگان اندروید (بخش دوم)</title>
                <link>https://virgool.io/@ICT/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-git-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D8%AF%D9%87%D9%86%D8%AF%DA%AF%D8%A7%D9%86-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85-rnfbouh6vyxx</link>
                <description> در بخش قبلی این راهنما در مورد برخی مفاهیم مقدماتی مورد نیاز Git برای توسعه‌دهندگان اندروید از جمله مفهوم «سیستم کنترل نسخه» صحبت کردیم. در این بخش، مستقیماً به فهرستی از عملیات Git که امکان یکپارچه‌سازی Git و افزودن آن به پروژه‌های اندروید را فراهم می‌سازد خواهیم پرداخت. زمانی که VCS فعال شود، می‌توان گزینه Git را در پنجره VCS مانند زیر مشاهده کرد. در ادامه به آموزش Git پرداخته گزینه‌های موجود در بخش Git را بررسی می‌کنیم. بخش سبز: عملیات فایل و بخش قرمز: عملیات ریپازیتوریهمان طور که در تصویر فوق مشاهده می‌کنید، گزینه‌ها را می‌توان به صورت زیر از هم تمیز داد:عملیات فایل (کادر سبز رنگ)عملیات ریپازیتوری (کادر قرمز) عملیات فایلـ Commit File – برای کامیت کردن فایل انتخابی استفاده می‌شود.ـ Add با میانبر (Ctrl+Alt+A) – برای افزودن فایل انتخابی به Git.ـ Annotate – برای نمایش آخرین اطلاعات اصلاح شده برای هر خط از یک فایل انتخابی.ـ Show Current Revision – برای نمایش عدد بازبینی جاری (آخرین کامیت).ـ Compare with same repository version – برای مقایسه تغییرات محلی فایل انتخابی با آخرین بازبینی‌های کامیت شده.ـ …Compare with – مقایسه تغییرات محلی فایل انتخابی با بازبینی انتخابی.ـ …Compare with Branch – مقایسه فایل انتخابی با دیگر شاخه‌های موجود در ریپازیتوری.ـ Show History – نمایش سابقه فایل انتخابی.ـ Show History for Selection – نمایش سابقه خطوط انتخابی در یک فایل.ـ Revert با میانبر (Ctrl+Alt+Z) – بازگردانی تغییرات محلی ایجاد شده در فایل انتخابی.ـ …Resolve Conflicts – حل تعارض‌های موجود در هنگام ادغام تغییرات. عملیات ریپازیتوریـ Branches – برای نمایش فهرستی از شاخه‌های موجود.ـ Tag – برای ایجاد یک تگ یا شناسه منحصر به فرد برای کامیت. دقت کنید که Git از یک کلید SHA به عنوان شناسه یکتا برای هر کامیت استفاده می‌کند؛ اما دلیل استفاده از تگ آن است که می‌توانید یک عبارت معنی‌دار را به همراه توضیح مناسب ایجاد کنید. بدین ترتیب می‌توان جزییات انتشار یا هر اطلاعات دیگری را در این توضیح جای داد، به طوری که شناسایی آن آسان‌تر باشد. ضمناً می‌توان کامیت‌ها را با استفاده از نام تگ از پنجره version control جستجو کرد.  ـ Merge Changes – برای ادغام شاخه انتخابی در شاخه جاری.ـ Stash Changes – برای ذخیره‌سازی تغییرات محلی در یک فایل جداگانه.تصور کنید مشغول کار روی یک ماژول هستید و کدهای زیادی برای افزودن یک «ویژگی» (فیچر) نوشته‌اید که هنوز کامیت نشده است. اینک می‌خواهید بدون تغییرات جاری یک build داشته باشید، در این صورت می‌توانید به سادگی تغییرات صورت گرفته را stash کنید و یک build بگیرید. پس از آن می‌توانید پروژه را unstash کرده و به کار خود ادامه دهید.ـ Un Stash Changes – برای بازیابی تغییرات محلی از فایل stash به فضای کاری. تغییراتی که stash شده‌اند، به صورت تغییرات محلی وارد فضای کاری می‌شوند. در این حالت می‌توانید کار خود را از همان جایی که مانده بود، ادامه دهید. ـ Reset Head – برای ریست کردن بازبینی انتخابی. سه نوع ریست وجود دارند که بر اساس نیاز خود می‌توانیم از آن‌ها استفاده کنیم:ـ Soft – در این نوع ریست، تغییرات اندیس و «درختِ کاری» (working tree) همانند Head خواهند بود.ـ Mixed – اندیس به صورت نسخه انتخابی ریست می‌شود؛ اما تغییرات درخت کاری همانند Head می‌ماند.ـ Hard – تغییرات اندیس و درخت کاری برابر با بازبینی انتخابی ریست می‌شوند.ـ Remotes – نمایش فهرستی از URL-های ریموت برای Git.ـ Clone – برای کلون/ بررسی ریپازیتوری از URL ریپازیتوری مفروض.ـ Fetch – واکشی به‌روزرسانی‌ها از ریپازیتوری ریموت.ـ Pull – عمل واکشی کردن و ادغام شاخه انتخابی در یک مرحله.ـ Push با میانبر (Ctrl+Shift+K) – برای پوش کردن تغییرات کامیت شده به سرور استفاده می‌شود.ـ Rebase – در این حالت مانند merge، تغییرات یک شاخه در شاخه دیگر ادغام می‌شود؛ اما روش انجام این کار متفاوت است. Rebase کردن موجب می‌شود که یک شاخه به عنوان کامیت جدیدی به شاخه دیگر اضافه شود. مزایا و معایب Reabseمزیت Rebase این است که سابقه کار به صورت خطی می‌ماند؛ اما عیب آن این است که امکان ردگیری تغییرات را از دست می‌دهیم. Rebase کردن موجب می‌شود که از طریق ادغام کامیت، چارچوب و زمینه کار از دست برود. امیدواریم با مطالعه این بخش از راهنما با گزینه‌های موجود در IDE اندروید استودیو آشنا شده باشید. در بخش بعدی از این سری مطالب آموزش Git فهرستی از عملیاتی که می‌توان در پنجره کنترل نسخه انجام داد را بررسی می‌کنیم. https://virgool.io/@omiddeadlive/آموزش-git-برای-توسعه-دهندگان-اندروید-بخش-سوم-bnbpspflmlqx  https://medium.com/ivymobility-developers/git-for-android-developers-part-2-list-of-operations-c0a656c8e6be </description>
                <category>ICT_NoteTaking</category>
                <author>ICT_NoteTaking</author>
                <pubDate>Thu, 13 Jun 2019 03:53:51 +0430</pubDate>
            </item>
                    <item>
                <title>آموزش Git برای توسعه دهندگان اندروید (بخش اول)</title>
                <link>https://virgool.io/@ICT/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-git-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D8%AF%D9%87%D9%86%D8%AF%DA%AF%D8%A7%D9%86-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-soidnmcgktqc</link>
                <description>ـ  Git محبوب‌ترین ابزار رایگان VCS توزیع یافته محسوب می‌شود. VCS به «سیستم کنترل نسخه» (Version Control System) گفته می‌شود. این سیستم تغییراتی را که روی فایل یا مجموعه‌ای از فایل‌ها در طی زمان ایجاد می‌شوند، ثبت می‌کند و بدین ترتیب می‌توانیم سابقه تغییرات را هر زمان ردگیری کنیم. انواع VCS-ها انواع VCS-ها را بر اساس حالت عملیات به صورت‌های زیر دسته‌بندی می‌کنیم:VCS محلیVCS متمرکزVCS توزیع یافتهـ VCS محلیـ VCS محلی نخستین مرحله از سیستم کنترل نسخه است.در این روش یک پایگاه داده محلی برای ردگیری تغییرات از طریق ذخیره‌سازی مجموعه‌های patch، مورد استفاده قرار می‌گیرد.از جمله معایب VCS محلی این است که هر زمان صرفاً برای یک توسعه‌دهنده منفرد مفید است. اگر تعداد توسعه‌دهنده‌ها بیش از یکی باشد، نمی‌توانند تغییرات را از سیستم‌های مختلف با یکدیگر هماهنگ کنند.ـ VCS متمرکزمی‌شوند که VCS مرکزی نام دارد.بدین ترتیب مدیران از طریق سرور مرکزی کنترل بیشتری روی کد پیدا می‌کنند و می‌توانند سطوح دسترسی مختلفی برای توسعه‌دهندگان متفاوت تعریف کنند.اینک کاربر می‌تواند به سادگی پروژه را از هر رایانه‌ای بررسی کند و تغییرات را اجرا کرده و به سرور، «کامیت» (commit) کند.نمونه‌هایی از VCS-های متمرکز شامل CVS، Subversion، Perforce و غیره هستند.از جمله معایب VCS متمرکز این است که اگر سرور مرکزی حتی یک ساعت خاموش شود، در طی این ساعت هیچ کس نمی‌تواند تغییراتش را در پایگاه داده نسخه ذخیره کند. اگر پایگاه داده مرکزی خراب شود و هیچ پشتیبان درستی موجود نباشد، در این صورت همه چیز از دست خواهد رفت. این همان عیبی است که در VCS محلی نیز وجود دارد و در این حالت صرفاً متمرکز شده است. ـ VCS توزیع یافتهبرای غلبه بر معایب VSC متمرکز، در این روش کل ریپازیتوری در هر زمان قابل دانلود است. بنابراین در هر مراجعه یک پشتیبانی کامل از همه داده‌ها ایجاد می‌شود.اگر هر سروری از کار بیفتد، در این صورت ریپازیتوری از هر رایانه محلی یا ریپازیتوری های کلاینت، می‌تواند مجدداً به سرور «پوش» (push) شود.بنابراین می‌توانیم با گروه متفاوتی از افراد به روش‌های مختلف و به صورت همزمان درون پروژه واحد، تعامل داشته باشیم.این ریپازیتوری محلی با کارکرد کامل امکان کار آفلاین یا ریموت را تسهیل می‌کند.نمونه‌هایی از VCS توزیع یافته شامل Git ، Bitbucket و غیره هستند. اصطلاح‌های Git در انتهای این نوشته و پیش از آن که شروع به استفاده عملی از Git بکنید، بهتر است ایده‌هایی در مورد برخی اصطلاح‌های مقدماتی آن داشته باشید.  Master: شاخه اصلی ریپازیتوری.Clone: عمل کپی کردن یک ریپازیتوری به دایرکتوری کاری.Commit: عمل تحویل فایل‌ها به ریپازیتوری محلی.Fetch: عمل واکشی کردن به‌روزرسانی‌های رخ داده در سرور ریموتMerge: عمل ادغام شاخه‌ها.Pull یعنی (Fetch+Merge): عمل واکشی و ادغام شاخه‌ها به طور همزمانPush: عمل جابه‌جایی کامیت محلی به ریپازیتوری ریموت.Remote: محل ریموت ریپازیتوری.SHA: کلید شناسایی یکتا برای کامیتHead: کامیتی که فضای کاری ریپازیتوری به آن اشاره دارد.Branch: نسخه‌ ریپازیتوری که از پروژه کاری اصلی انشعاب یافته است. https://virgool.io/@omiddeadlive/آموزش-git-برای-توسعه-دهندگان-اندروید-بخش-دوم-rnfbouh6vyxx  https://medium.com/ivymobility-developers/git-for-android-developers-part-1-introduction-29bd61cb213a </description>
                <category>ICT_NoteTaking</category>
                <author>ICT_NoteTaking</author>
                <pubDate>Thu, 13 Jun 2019 03:46:37 +0430</pubDate>
            </item>
                    <item>
                <title>بهترین کتاب‌های برنامه‌نویسی اندروید</title>
                <link>https://virgool.io/@ICT/%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%DA%A9%D8%AA%D8%A7%D8%A8%D9%87%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-j0zr7p1rue53</link>
                <description> Android Programming: The Big Nerd Ranch Guideبعید است از برنامه‌نویسی اندروید سخن کنیم و کتاب بیگ نرد را فراموش کنیم. کتابی که در فروشگاه آمازون به عنوان یکی از پرفروش‌ترین کتاب‌های سال برنامه‌نویسی اندروید شناخته شده است.  شهرت این کتاب بیشتر به خاطر کمپ‌های آموزشی یک هفته‌ای برای توسعه‌دهندگان و ارائۀ تجربیات آموزشی در آن است. در واقع مفاهیم آموزشی این کتاب حول اشکالات رایج توسعه‌دهندگان اندروید است که بارها در کمپ‌ها با آن مواجه شده‌اند. نویسنده با تأکید برنقاط ضعف توسعه‌دهندگان، سرفصل‌ها و مطالب کتاب را تنظیم کرده است و تا جای ممکن مفاهیم را به زبان ساده آموزش داده ضمن اینکه در بیان توضیحات بیشتر به جنبه‌های عملی تکیه کرده است.خواندن این کتاب نیازمند دانش قبلی برنامه‌نویسی اندروید نبوده ولی با این حال آشنایی اولیه با زبان جاوا برای درک مثال‌های آن ضروری است. شرکت بیگ نرد رانچ راهنمای دیگری هم برای آموزش جاوا عرضه کرده که در صورت نیاز می‌توانید از آن استفاده کنید.نکتۀ مثبت کتاب این است که در محیط اندروید استودیو مثالی را به صورت فصل به فصل بهبود می‌دهد. یعنی ابتدا با مفاهیم فصل یک برنامه را درست می‌کند و سپس با آموخته‌های جدید در فصل‌های دیگر برنامه را بهبود می‌دهد. ویژگی مثبت دیگر، بیان فلسفۀ انتخاب‌هاست. مثلاً چرا اینجا از فلان روش استفاده شده و چرا این روش بهتر است. این موضوع را از همان فصل اول احساس می‌کنید.افرادی که تاکنون موفق نشده‌اند برنامه‌ای را از صفر بسازند، حتماً این کتاب را بخوانند. در کتاب حاضر هم با محیط اندروید استودیو آشنا می‌شوید، هم با انواع Layoutها، هم ساخت ویجت سفارشی، هم واسط گرافیکی برنامه و هم اشکالی‌زدایی یا دیباگ برنامه و کلی مفاهیم دیگر.در طول کتاب تصاویر و کدهای مناسبی برای فهم بهتر مطلب ارائه شده است. تمرکز کتاب بیگ نرد بیشتر کاربران مبتدی و متوسط است. بنابراین با حداقل دانش زبان جاوا قادر به درک مفاهیم ارائه شده در آن هستید. شیوۀ آموزشی و سبک بیان سری کتاب‌های بیگ نرد طوری است که می‌توانیم چشم‌بسته آن را در سایر حوزه‌ها مثلاً آموزش سوئیفت بیگ نرد هم پیشنهاد کنیم. مهم نیست چه کتاب دیگری مطالعه می‌کنید. مهم این است که کتاب برنامه‌نویسی اندروید بیگ نرد را حتماً مطالعه کنید. Head First Android Development: A Brain-Friendly Guideکتاب‌های سری Head First برخلاف تم کارتونی، مفاهیم برنامه‌نویسی را به شکل تصویری و جذاب به مخاطب عرضه می‌کند. رویکرد آموزشی کتاب‌های Head First تکیه بر نیمکرۀ سمت راست یعنی بخش تصویری مغز است. لحن نوشتار عامیانه و خودمانی است، بنابراین اگر زبان انگلیسی‌تان قوی نیست به راحتی می‌توانید مفاهیم کتاب را درک کنید. در این سری کتاب‌ها اعتقاد بر این است که نباید با مطالب خشک و بدون تصویر مفاهیم را به خواننده منتقل کرد. این کار باعث خستگی و بیزاری مخاطب خواهد شد حتی اگر دقیق‌ترین و کامل‌ترین آموزش را ارائه کنیم.در سراسر کتاب از تصاویر، فلوچارت‌ها، نمودارها و تصاویر کارتونی برای درک مفاهیم برنامه‌نویسی اندروید استفاده شده است. دقیقاً به همین دلیل کتاب بیش از ۹۰۰ صفحه دارد. شاید ترسناک به نظر برسد ولی اگر این تصاویر را حذف کنیم چیز زیادی از آن  باقی نمی‌ماند. پس زیاد جای نگرانی نیست؛ دقیقاً مثل یک کتاب استاندارد در زمان کوتاهی به پایان می‌رسد.در کتاب حاضر نیز باید اطلاعات اولیه از زبان جاوا داشته باشید تا بتوانید مثال‌ها را درک کنید اما لازم نیست یک متخصص زبان جاوا باشید. یکی از ویژگی‌های خوب این کتاب مثال‌های فراوان آن است و مهم‌تر اینکه تمرینات و پازل‌های جذابی دارد که در انتهای هر فصل قرار گرفته است. به خواندن مثال‌ها اکتفا نکنید. حتی اگر ساده هم هستند در محیط اندروید استودیو تمرین کنید و پیشنهاد می‌کنیم حتماً به تمرینات آخر فصل پاسخ دهید. تمرینات به گونه‌ای هستند که ذهن شما را درگیر می‌کنند و نکات آموزشی زیادی در دلشان دارند.یکی دیگر از نکات مثبت کتاب، آوردن پرسش و پاسخ‌هایی است که ممکن است به ذهن شما هم خطور کرده باشد. این سوالات در قالب دو شخصیت خیالی یا در بخش مجزایی تحت عنوان بخش پرسش و پاسخ قرار گرفته است. با خواندن آن درک عمیق‌تری از مفاهیم برنامه‌نویسی اندروید به دست می‌آورید.کتاب حاضر برای افرادی مناسب است که چیزهای بصری را بهتر می‌فهمند و با آموزش تصویری راحت‌تر هستند. شاید اگر ویدیوهای آموزشی زیاد نگاه می‌کنید و این اولین بار است که وارد مطالعۀ کتاب می‌شوید کتابی بهتر از Head First پیدا نکنید. The Busy Coder’s Guide to Android Developmentبیش از ۴۰۰۰ هزار صفحه، صدها مثال، تصاویر و نمودارهای مختلف برای بروزنگه‌داشتن اطلاعات شما فراهم شده است. فصل‌های کلیدی کتاب، پیکربندی محیط توسعه، واسط کاربری، مدیریت داده‌ها و مباحث ابتدایی را پوشش می‌دهد و در ادامه مباحث پیشرفته‌تر آمده است. خریداران این کتاب می‌توانند در ساعات اداری سوالات خود را به صورت هفتگی از نویسندۀ بپرسند.واقیعتش این کتاب اگرچه از پایه شروع کرده و مطالب را خوب آموزش داده ولی به خاطر گستردگی زیاد مناسب مبتدی‌ها نیست. این کتاب بیشتر به درد برنامه‌نویس‌های سطح متوسط می‌خورد که به فصل خاصی مراجعه کنند و جدیدترین اطلاعات را کسب کنند. ولی اگر قرار باشید کل کتاب یا اصطلاحاً cover to cover مطالعه کنید سنگین و خسته‌کننده خواهد بود. Android Studio 3.0 Development Essentials – Android 8 Editionکتاب نیلی اسمیث همانطور که از نامش پیداست ملزومات توسعۀ اندروید و هرآنچه در شروع کار نیاز دارید را در ۷۰۰ صفحه به شما آموزش می‌دهد. از محیط اندروید استودیو گرفته تا معماری و طراحی برنامه، چاپ و مدیریت پایگاه داده تا جنبه‌های مالتی‌مدیای اپلیکیشن به طور کامل تحت پوشش قرار گرفته است. مبنای آموزش، اندروید ۸ و اندروید استودیو ۳ است که در هر ویرایش به جدیدترین نسخه آپدیت می‌شود.مثال‌های زیادی در کتاب وجود دارد که برای فهم آن‌ها حتماً باید تجربه قبلی با زبان جاوا داشته باشید و با محیط اندروید استودیو و روش پیکربندی دیوایس مجازی کم و بیش آشنا باشید. در این کتاب همچنین انتشار برنامه در گوگل‌پلی که در سایر کتاب‌ها کمتر به آن پرداخته شده به صورت مفصل‌تر آموزش داده شده است. در نهایت کتاب حاضر برای همۀ افراد با هر سلیقه‌ای که هستند  Android Cookbook: Problems and Solutions for Android Developersهمانطور که می‌دانید کتاب‌های آشپزی دستور پخت‌های متنوعی را به صورت کوتاه و مفید گردآوری کرده‌اند و معمولاً لازم نیست یک کتاب آشپزی را از اول تا آخر بخوانید. هر غذایی لازم داشته باشید، دستور پخت همان را مطالعه می‌کنید. همین وضعیت برای کتاب‌های برنامه‌نویسی که در عنوانش Cookbook وجود دارد نیز هست مثلاً همین Android Cookbook.در این کتاب بجای تمرکز روی آموزش برنامه‌نویسی اندروید به صورت قدم به قدم، روی پاسخ به سوالات و مشکلات رایج کاربران تمرکز شده است. بیش از ۲۳۰ دستور پخت جمع و جور برای چیزهای مختلفی مثل رابط کاربری، مالتی‌مدیا، سرویس مکان بعلاوۀ موارد مرتبط با سخت‌افزار مثلاً دوربین و سنسورها وجود دارد. این راهنما برای افرادی نوشته شده که از  قبل با برنامه‌نویسی اندروید آشنا بوده و اکنون می‌خواهند در بخش خاصی حرفه‌ای‌تر شوند. یا سریعاً با مبحث جدیدی آشنا شوند. مثلاً در کدهای خود نیازمند شناسایی مکان کاربر و نمایش آن روی نقشه هستید ولی تاالان با این قابلیت کار نکرده‌اید، به فهرست این کتاب مراجعه می‌کنید و به قسمتی که مربوط به کار با gps و موقعیت جغرافیایی است نگاه می‌کنید. مثال مربوطه را بررسی و با نحوۀ کار با آن قابلیت آشنا می‌شوید.حدود ۴۰ توسعه‌دهنده در نوشتن این کتاب سهیم بوده‌اند. بنابراین محتوای Android Cookbook طیف گسترده‌ای از دیدگاه‌ها و تجربیات متخصصین را در دل خود جای داده است. هر دستورالعملی با یک مثال ساده و کدهای آن آمده است تا براحتی بتوانید در پروژه‌های خود استفاده کنید. کتاب ۷۰۰ صفحه است ولی چون قرار نیست از اول تا آخرش را بخوانید جای نگرانی ندارد. بد نیست برای افزایش تجربه و بررسی مسائل از جنبه‌های مختلف هر روز بخشی از وقت خود را صرف دستورالعمل‌های این کتاب کنید.Practical Android: 14 Complete Projects on Advanced Techniques and Approachesرویکرد این کتاب آموزش پروژه‌محور است طوری که حداقل یک پروژۀ کامل در هر فصل انجام شود. در عنوان کتاب هم ۱۴ پروژۀ مختلف ذکر شده است. نویسندۀ این کتاب از مربیان حرفه‌ای اندروید بوده و محتوای آموزشی کتاب متأثرازمحتوای دوره‌های برگزار شده است. در هر فصل حول موضوع مشخصی صحبت شده است؛ از مباحث ابتدایی پوش نوتیفیکیشن گرفته تا بهترین روش‌های پیاده‌سازی آن در برنامه.از آنجایی که رویکرد آموزشی این کتاب پروژه محور است، نویسنده به راحتی توانسته موضوعات پیچیده‌ای مثل lazy loading یا کار با APIهای صوتی اندروید را به صورت عملی توضیح دهد. هر جایی توضیحات اضافه و کامل‌تری لازم بوده نویسنده شما را به لینک مناسبی ارجاع می‌دهد. پیش‌فرض مطالعۀ کتاب آشنایی خوب با زبان جاوا و داشتن تجربۀ قبلی برنامه‌نویسی اندروید است. کتاب فوق راهنمایی گام به گام برای مبتدی‌ها نیست و بیشتر مناسب افراد متوسط و حرفه‌ای است. Android Programming for Beginners این کتاب راهنمای ساده‌ای است که اصول اولیۀ جاوا را با تکیه بر Android SDK به شما آموزش می‌دهد. کتاب بیش از ۷۰۰ صفحه دارد و در هر فصل مفاهیم آموزشی مختلفی جای گرفته است. نویسندۀ کتاب – جان هورتون – آموزش‌های خود را با مثال‌های دقیقی به شما منتقل می‌کند تا مفاهیم هر بخش را به صورت واضح و دقیق متوجه شوید.  محتوای کتاب طوری تنظیم شده که وادار می‌شوید در مورد مفاهیم ارائه شده در آن فکر کنید. در طول کتاب با بیش از ۴۰ مینی‌پروژه، همۀ تکنیک‌های لازم برای کدنویسی در اکوسیستم اندروید را فرخواهید گرفت.  Introduction to Android Application Developmentدر آخرین نسخۀ این کتاب، جدیدترین تغییرات Android SDK به مخاطبان عرضه شده است. در طول کتاب با ابزارها، متدولوژی‌ها و جریان‌های کاری مختلفی که در پس زمینه اپ‌های اندرویدی وجود دارند آشنا خواهید شد که شامل مباحثی همچون تست، دیباگینگ، کارها با کتابخانه‌های مختلف و نحوۀ انتشار برنامه در مارکت است. بخش واسط کاربری این کتاب نسبت به بقیۀ فصل‌ها جالب‌تر به نظر می‌رسد چون تقریباً تمام موارد لازم برای آشنایی با کتابخانۀ متریال دیزاین گوگل در آن آموزش داده شده و قوانینی که باید در ساخت انیمیشن‌ها، عناصر گرافیکی و … لحاظ کنید مطرح کرده است.علاوه بر این‌ها با معماری برنامه و سازگاری اپلیکیشن با نسخه‌های قبلی اندروید نیز اطلاعات خوبی به دست می‌آورید. هر فصل با یک آزمون جامع به پایان می‌رسد تا اطمینان یابد که مباحث آموزشی آن فصل را به خوبی فرا گرفته‌اید. شاید حل کردن این تمرینات خسته‌کننده به نظر برسد ولی سعی کنید با آرامش به تمام سوالات آن پاسخ دهید چون ممکن است مواردی را به صورت سرسری خوانده باشید و در این بخش قادر به یافتن پاسخ نباشید. این کتاب را مبتدی‌ها می‌توانند بخوانند ولی بیشترین بهره را افرادی خواهند برد که از قبل با زبان جاوا آشنایی داشته باشند. Android Programming: Pushing the Limitsهمین اول بگوییم که این کتاب اصلاً مناسب افراد مبتدی نیست. بعد از فراگیری اصول ابتدایی برنامه‌نویسی اندروید و کمی غوطه‌ور شدن در فضای کدنویسی می‌توانید این کتاب را بخوانید. ۴۳۰ صفحه دارد و با مثال‌های فراوانی به شما یاد می‌دهد چطور حرفه‌ای کدنویسی کنید. مثال‌های این کتاب انواع مختلفی از موضوعات از بازی‌ها گرفته تا شبکه‌های اجتماعی را شامل می‌شود. با مفاهیمی مثل کشینگ محلی، کنترل همروندی و ویژگی‌های جدیدی مثل پشتیبانی از چند لمسی و … در این کتاب آموزش داده شده است. شما همچنین با مقدمات طراحی UX از انتخاب رنگ گرفته تا کاربردپذیری آن را خواهید آموخت.ذخیرۀ داده‌ها، اصول تست، تست یکپارچگی همگی در فصل‌های دیگر کتاب آمده‌اند. این کتاب مفاهیم سطح بالاتری از کتاب‌های قبلی ارائه می‌دهد و مناسب افرادی است که در سطح متوسط یا متوسط به بالا قرار دارند و دنبال افزایش مهارت‌های خود به سطح حرفه‌ای هستند. کتاب کمی زمخت و خسته‌کننده است ولی مفاهیم با دقت بالایی بیان شده است. در واقع میزان اشتباهات فنی آن بسیار اندک است. توصیه می‌کنیم اگر چند سالی مشغول برنامه‌نویسی اندروید بوده‌اید، با مباحث ارائه شده در این کتاب، دانش خود را به سطح بالاتری ارتقاء دهید. Programming Androidاین کتاب را به جرأت می‌توان یکی از خوش‌ساختارترین کتاب‌های برنامه‌نویسی اندروید دانست. راهنمای بسیار تمییز و مرتبی است که توضیحاتش به زبان فنی و دقیق به مخاطب ارائه می‌شود. این کتاب برای فهماندن چارچوب اصلی Android SDK از کدهای بسیار خوبی استفاده کرده است. پیش‌فرض کتاب این است که از قبل با یک زبان برنامه‌نویسی ترجیحاً جاوا آشنا هستید. بنابراین اگر دانش برنامه‌نویسی ندارید کتاب خوبی برای شما نیست.با این حال اگر با زبان‌های دیگر هم کدنویسی کرده‌اید درک مفاهیم کتاب برای شما چندان دشوار نخواهد بود. ساختارهای برنامه‌نویسی مثل حلقه، دستورات شرطی، کلاس و اینترفیس و … در همۀ زبان‌ها وجود دارند. بنابراین با هر زبانی کار کرده باشید با این ساختارها آشنا هستید. فقط سینتکس زبان جدید برای شما ناآشنا است که آن هم با یک جستجوی ساده در اینترنت یا حتی مطالعۀ گذرای مستندات متوجه می‌شوید.ساختار کتاب به گونه‌ای است که به راحتی می‌توانید در پروژه‌های آتی خود، به عنوان یک رفرنس از آن استفاده نمایید. البته سبک خواندن کتاب کمی فرق می‌کند. به خاطر ماهیت تکنیکی مفاهیم ارائه شده حتماً باید پشت سیستم بنشینید و مثال‌ها را در محیطاندروید استودیو اجرا کنید تا به عملکرد آن پی ببرید. یک اصل کلی در مطالعۀ کتاب‌های برنامه‌نویسی وجود دارد. آن هم این است که باید پشت سیستم باشید تا هر وقت لازم شد کدها را اجرا کنید. لازم شد با ابزار مورد نظر کار کنید یا حتی برای کسب اطلاعات بیشتر در اینترنت جستجو کنید. هیچ یک از این کارها را نمی‌توانید خارج از کامپیوتر انجام داده یا صرفاً با قوۀ خیالتان تجسم کنید. به قول خارجی‌ها get your hands dirty یعنی باید دست‌های خود را کثیف کنید. The Beginner’s Guide to Android Game Developmentحتی اگر یک خط کد هم در عمرتان ننوشته‌اید می‌توانید با این کتاب شروع به کدنویسی کنید و بازی بسازید! این کتاب به طور مفصل هر چیزی برای ساخت بازی در اندروید لازم دارید را آموزش داده است. رویکرد آموزشی کتاب این است که به جای برنامه‌های خشک، برنامه‌نویسی اندروید را در قالب ساخت بازی‌های موبایلی آموزش دهد. در هر فصل موضوعات مختلفی به طور قدم به قدم شرح داده شده است.در ابتدا کمی دربارۀ جاوا و جنبه‌های شی‌گرایی آن توضیح داده است. سپس در فصل‌های بعدی مفاهیم جاوا وارد پروژه‌های اندرویدی می‌شود. از این جا به بعد با Android SDK آشنا خواهید شد. در فصل‌های بعدی با ساخت بازی‌های دو بعدی، کنترل روند اجرای برنامه و چگونگی انتشار بازی درگوگل‌پلی آشنا می‌شوید. همه چیز در این کتاب برای مبتدی‌ها و افرادی که هیچ دانش قبلی از برنامه‌نویسی ندارند نوشته شده است. بنابراین با خیال راحت می‌توانید شروع به خواندن آن کنید. Android Game Programming by Example در این کتاب مفاهیم بازی‌سازی در بستر اندروید با مثال‌ها و سناریوهای مختلفی آموزش داده شده است. شما یاد می‌گیرید چطور کدهای خود را سازماندهی کنید و چگونه کاراکترهای بازی را انیمیت نمایید. فهم مفاهیم کتاب به مدد مثال‌ها و آموزش‌های قدم به قدم بسیار آسان است. برای صرفه‌جویی در زمان چندان روی اصول و مبانی برنامه‌نویسی وقت صرف نشده است. بنابراین باید از قبل با زبان جاوا و اندروید آشنایی مناسب داشته باشید. در واقع این کتاب بیشتر مناسب افرادی است که تجربۀ ساخت برنامه‌های اندرویدی را داشته‌اند و اکنون می‌خواهند وارد دنیای بازی‌سازی شوند.  Learning Java by Building Android Gamesاین کتاب زبان جاوا را از دریچۀ بازی‌های اندرویدی به شما آموزش می‌دهد. لازمۀ ساخت اپلیکیشن‌های اندروید، آشنایی با زبان جاوا است. کتاب‌هایی که با تمرکز بر اکوسیستم اندروید زبان جاوا را آموزش داده باشند بسیار اندک هستند. کتاب جان هورتن نیز جزء این کتاب‌های کمیاب است. جان هورتن زبان جاوا را در قالب ساخت بازی‌های اندرویدی به شما آموزش می‌دهد.کتاب ۴۱۰ صفحه است و آموزش در محیط اندروید استودیو است. مطالب به خوبی دسته‌بندی شده‌اند و دربارۀ مباحث مختلفی مثل گرافیک GUI، صدا، تکنیک‌های شی‌گرایی و حتی ساخت APIهای اختصاصی در آن آمده است. پیش‌فرض کتاب آشنایی اندک با زبان جاوا است ولی اجبار زیادی به آن نیست. بنابراین هم برنامه‌نویس‌های مبتدی، هم آن‌هایی که برنامه‌نویس زبان دیگری هستند و می‌خواهند با زبان جاوا آشنا شوند و هم افرادی که تازه می‌خواهند وارد دنیای برنامه‌نویسی شوند می‌توانند از محتویات این کتاب استفاده کنند. این کتاب زبان جاوا را از دریچۀ بازی‌های اندرویدی به شما آموزش می‌دهد. لازمۀ ساخت اپلیکیشن‌های اندروید، آشنایی با زبان جاوا است. کتاب‌هایی که با تمرکز بر اکوسیستم اندروید زبان جاوا را آموزش داده باشند بسیار اندک هستند. کتاب جان هورتن نیز جزء این کتاب‌های کمیاب است. جان هورتن زبان جاوا را در قالب ساخت بازی‌های اندرویدی به شما آموزش می‌دهد.کتاب ۴۱۰ صفحه است و آموزش در محیط اندروید استودیو است. مطالب به خوبی دسته‌بندی شده‌اند و دربارۀ مباحث مختلفی مثل گرافیک GUI، صدا، تکنیک‌های شی‌گرایی و حتی ساخت APIهای اختصاصی در آن آمده است. پیش‌فرض کتاب آشنایی اندک با زبان جاوا است ولی اجبار زیادی به آن نیست. بنابراین هم برنامه‌نویس‌های مبتدی، هم آن‌هایی که برنامه‌نویس زبان دیگری هستند و می‌خواهند با زبان جاوا آشنا شوند و هم افرادی که تازه می‌خواهند وارد دنیای برنامه‌نویسی شوند می‌توانند از محتویات این کتاب استفاده کنند. Creating Dynamic UI with Android Fragments«ساخت رابط کاربری پویا با استفاده از فرگمنت‌های اندرویدی» عنوان کتابی است که بسیار تکنیکی بوده و فقط به درد برنامه‌نویس‌های با تجربۀ اندروید می‌خورد. بحث فرگمنت‌ها در اندروید بسیار وسیع و گاهاً پیچیده و بغرنج است. برنامه‌نویس‌های کمی وجود دارند که بتوانند از تمام ظرفیت فرگمنت‌ها در برنامۀ خود استفاده کنند. خیلی‌ها به خاطر پیچیدگی زیادِ آن عطایش را به لقایش بخشیده‌اند. ولی هیچ برنامه‌نویس کاربلدی که به فکر پیشرفت مهارت‌های خود باشد در مقابل سختی‌ها کم نمی‌آورد.نویسنده کتاب، جیم ویلسون که یک برنامه‌نویس حرفه‌ای است در طول این کتاب ماهیت فرگمنت، کاربردهای متعدد آن و چگونگی استفاده صحیح و اصولی از آن را به شما آموزش می‌دهد. این کتاب صرفاً حول محور فرگمنت‌ها در اندروید صحبت می‌کند و تلاش شده تمام موضوعات مرتبط با آن در کتاب جای گیرد. مفاهیم کتاب به هیچ عنوان برای مبتدی‌ها مناسب نیست چون نویسنده وقت را برای آموزش جاوا و مقدمات اندروید تلف نکرده و مستقیماً سراغ فرگمنت‌ها رفته و مثال‌های ارائه شده نیز درهمین رابطه هستند. Kotlin Programming: The Big Nerd Ranch Guideبا اعلام حمایت رسمی گوگل از زبان کاتلین و با تجه به اینکه کاتلین با زبان جاوا سازگار بوده و ویژگی‌های جدیدی ارائه می‌دهد،بسیاری از برنامه‌نویسان جاوا به کاتلین سوئیچ کرده‌اند و کتاب‌ها و آموزش‌های فراوانی هم دربارۀ آن عرضه شده است که راهنمای کاتلین بیگ نرد رانچ یکی از همین کتاب‌هاست.این کتاب با همان رویکرد قبلی، مفاهیم زبان کاتلین را آموزش می‌دهد. مسلماً کتاب برای برنامه‌نویسان جاوا نوشته شده تا با مطالعۀ آن به کاتلین مهاجرت کند. در طول کتاب تمام موضوعات کلیدی زبان و حتی تنظیم، پیکربندی و استفاده از محیط توسعۀ IDEA هم آموزش داده شده است. روند آموزش به این صورت است که ابتدا مفاهیم کلی بیان می‌شود و به مرور با عمق بیشتری باز می‌شوند. همچنین در این کتاب پارادایم‌های برنامه‌نویسی شی‌گرا و فانکشنال در کاتلین مورد بحث قرار گرفته است.نظر شما در مورد کتاب های بالا چیه، کدوم یکی از این کتاب هارو مطالعه کردید. و به سایر دوستان هم پیشنهاد میدید؟منبع</description>
                <category>ICT_NoteTaking</category>
                <author>ICT_NoteTaking</author>
                <pubDate>Thu, 06 Jun 2019 15:29:00 +0430</pubDate>
            </item>
                    <item>
                <title>نقشه راه یادگیری برنامه نویسی اندروید (به همراه لینک موضوعات)</title>
                <link>https://virgool.io/@ICT/%D9%86%D9%82%D8%B4%D9%87-%D8%B1%D8%A7%D9%87-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D9%84%DB%8C%D9%86%DA%A9-%D9%85%D9%88%D8%B6%D9%88%D8%B9%D8%A7%D8%AA-j4r4m2ee3seu</link>
                <description> Android specific (Java &amp; Kotlin)Android Programming: The Big Nerd Ranch GuideAndroid Development with KotlinKotlin programming: The Big Nerd Ranch GuideKotlin for Android developersProject Guidelines &amp; conventionsProject and Code Guidelines by ribotA successful XML naming conventionLayoutsConstraintLayouts[Android - Building a layout from Scratch using ConstraintLayout - and Q&amp;A #RiggarooLive] https://www.youtube.com/watch?v=h1LHzObflwoDesign PatternsMVPhttps://antonioleiva.com/mvp-android/https://dzone.com/articles/model-view-presenter-for-andriod https://hackernoon.com/basics-of-mvp-the-android-way-f75da407019dhttps://medium.com/cr8resume/make-you-hand-dirty-with-mvp-model-view-presenter-eab5b5c16e42http://macoscope.com/blog/model-view-presenter-architecture-in-android-applications/MVP Guidelines https://medium.com/@cervonefrancesco/model-view-presenter-android-guidelines-94970b430ddfProductivityAn #androidDev collection of Live Templates for Android StudioArticlesSplash Screens the Right WayPendingResources pending the review.https://kotlinlang.org/docs/reference/coding-conventions.htmlhttps://developer.android.com/kotlin/style-guideCode labs Google. https://codelabs.developers.google.com/?cat=AndroidVideo. Conference talk about activity LifecyclePatterns: MVPPatterns: MVVMArticle about clean Architecture: https://erikcaffrey.github.io/ANDROID-clean-architecture/Android Architecture Components Guide - https://developer.android.com/topic/libraries/architecture/ - https://riggaroo.co.za/android-architecture-components-looking-room-livedata-part-1/ - https://riggaroo.co.za/android-architecture-components-looking-viewmodels-part-2/ - https://riggaroo.co.za/android-architecture-components-looking-lifecycles-part-3/ - https://www.youtube.com/watch?reload=9&amp;amp;amp;v=9QrFMsihBAo - https://github.com/googlesamples/android-architecture-components - https://codelabs.developers.google.com/codelabs/android-persistence/index.html#0 - https://codelabs.developers.google.com/codelabs/constraint-layout/index.html#0Work with network - https://www.tutorialspoint.com/restful/ - http://square.github.io/retrofit/ - http://square.github.io/okhttp/ - https://developer.android.com/studio/profile/network-profiler - https://www.charlesproxy.com/Continuous Integration for Android - Jenkins - BuddyBuild - Cricle CI - TravisCode quality - Code Quality Tools - Sonar - FindBugs - Checkstyle - Android LintMatering Layouts - FrameLayout - RelativeLayout - LinearLayout - ConstraintLayout - CoordinatorLayout - Supporting different screen sizes - https://developer.android.com/training/multiscreen/screensizes - ConstraintLayout - https://codelabs.developers.google.com/codelabs/constraint-layout/index.html#0Build systems - Build System - Gradle - https://gradle.org/ - Configure the build - https://developer.android.com/studio/build/Testing - Android Testing Support Library - https://developer.android.com/training/testing/ - Espresso - https://developer.android.com/training/testing/espresso/basics - JUnit - https://junit.org/junit4/ - Codelabe testing -https://codelabs.developers.google.com/codelabs/android-testing/index.html#0https://codelabs.developers.google.com/codelabs/android-perf-testing/index.html#0Releasing - Releasing your Android apps - Preparing your app for release - https://developer.android.com/studio/publish/preparing - App Signing - https://developer.android.com/studio/publish/app-signing - Versioning your App - https://developer.android.com/studio/publish/versioning - ProGuard - https://developer.android.com/studio/build/shrink-codeSecurity - Security Tips on Android - https://developer.android.com/training/articles/security-tips.html - Certificate Pinning - https://square.github.io/okhttp/3.x/okhttp/okhttp3/CertificatePinner.html - SafetyNet API - https://developer.android.com/training/safetynet/ - Android Keystore System - https://developer.android.com/training/articles/keystorehttps://android.jlelse.eu/10-things-new-android-developers-can-relate-to-afd82791faabhttps://google.github.io/styleguide/javaguide.htmlService, IntentService and their lifecycle: - https://developer.android.com/guide/components/services - https://medium.com/@kevalpatel2106/how-to-handle-background-services-in-android-o-f96783e65268Broadcast Receivers - https://android.jlelse.eu/local-broadcast-less-overhead-and-secure-in-android-cfa343bb05beContent Providers - https://developer.android.com/guide/topics/providers/content-providers - https://medium.com/@paulnunezm/steps-for-creating-a-content-provider-ab376d661613 - https://medium.com/@sanjeevy133/an-idiots-guide-to-android-content-providers-part-1-970cba5d7b42 - https://medium.com/@sanjeevy133/an-idiots-guide-to-android-content-providers-part-2-7ccfbc88d75cTasks and the Back Stack https://medium.com/androiddevelopers/tasks-and-the-back-stack-dbb7c3b0f6d4https://android.jlelse.eu/android-activity-launch-mode-e0df1aa72242 https://medium.com/@iammert/android-launchmode-visualized-8843fc833dbe https://blog.mindorks.com/android-task-and-back-stack-review-5017f2c18196Debugging your app https://developer.android.com/studio/debug/ https://developer.android.com/studio/debug/Context in Android[ ]Android Views and Layouts https://medium.com/androiddevelopers/layouts-attributes-and-you-9e5a4b4fe32chttps://medium.com/@geekanamika/android-beginners-views-layouts-657a5bbeebe2Android Themes and Styles https://youtu.be/TIHXGwRTMWI https://youtu.be/Jr8hJdVGHAkFragments https://developer.android.com/guide/components/fragments https://medium.com/@bherbst/managing-the-fragment-back-stack-373e87e4ff62 https://android.jlelse.eu/the-dark-side-of-fragments-ca0f871b1199ViewPager https://developer.android.com/reference/android/support/v4/view/ViewPagerhttps://android.jlelse.eu/creating-an-intro-screen-for-your-app-using-viewpager-pagetransformer-9950517ea04fRecyclerView https://youtu.be/KhLVD6iiZQs https://youtu.be/LqBlYJTfLP4 https://youtu.be/TS_J0Qw4zl0Shared Preferences https://android.i-visionblog.com/working-with-android-shared-preferences-4668efa298a8Sqlite https://medium.com/@valokafor/ultimate-guide-to-android-sqlite-database-44cc8636a4ecThreading https://medium.com/@ankit.sinhal/understanding-of-asynctask-in-android-8fe61a96a238Book: Efficient Android Threading: Asynchronous Processing Techniques for Android Applications https://www.amazon.com/Efficient-Android-Threading-Asynchronous-Applications/dp/1449364136/ref=as_li_ss_tl?s=books&amp;amp;amp;ie=UTF8&amp;amp;amp;qid=1515094900&amp;amp;amp;sr=1-1&amp;amp;amp;keywords=efficient+android+threading&amp;amp;amp;linkCode=sl1&amp;amp;amp;tag=xgentechnical-20&amp;amp;amp;linkId=85f8342ab0f8016cfc279bd3eeee0940ThreadPoolExecutorLooper, Handler, HandlerThreadHTTP and REST https://code.tutsplus.com/tutorials/a-beginners-guide-to-http-and-rest--net-16340Networking in Android apps https://www.raywenderlich.com/2-android-networking-tutorial-getting-startedNotifications https://developer.android.com/guide/topics/ui/notifiers/notifications https://youtu.be/WzRSpZpw2wgLocation and Maps https://developer.android.com/guide/topics/location/Android Sensors https://developer.android.com/guide/topics/sensors/sensors_overviewLocalization and Internationalization https://youtu.be/Z51wN9wCao0https://developer.android.com/training/basics/supporting-devices/languageshttps://developer.android.com/training/basics/supporting-devices/languagesRun Time Permissions https://developer.android.com/training/permissions/requesting https://youtu.be/f17qe9vZ8RMhttps://youtu.be/5xVh-7ywKpEApp Standby and Doze Mode https://youtu.be/p6ZiDZBgPY8Android Support Libraries https://youtu.be/https://developer.android.com/topic/libraries/support-library/Material Design https://youtu.be/vx3TXN6ipAg https://youtu.be/EjTJIDKT72M https://youtu.be/9LUHFkPVYNoAndroid Build System https://youtu.be/OOEDKf06WqA https://youtu.be/Xw6CKEsWvxo</description>
                <category>ICT_NoteTaking</category>
                <author>ICT_NoteTaking</author>
                <pubDate>Fri, 19 Apr 2019 14:42:59 +0430</pubDate>
            </item>
                    <item>
                <title>راه و رسم یادگیری برنامه نویسی اندروید</title>
                <link>https://virgool.io/coderlife/%D8%B1%D8%A7%D9%87-%D9%88-%D8%B1%D8%B3%D9%85-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-nnhbr3tsq7tc</link>
                <description> پست امروز برای افرادی است که تازه شروع به یادگیری برنامه نویسی  اندروید کرده‌اند یا افرادی که دنبال افزایش سطح مهارت‌هایشان هستند. سعی  می‌کنیم منابع خوبی برای این منظور معرفی کنیم. مطالب را در دو بخش تنظیم  کرده‌ایم تا هر کس به فراخور نیازهایش مطالعه کند.آغاز راه برای نورسیده‌هافراگیری پیش‌نیازهای لازمزبان برنامه نویسی اندروید جاوا است. اگرچه کاتلین  هم به صورت رسمی توسط گوگل پشتیبانی می‌شود و خیلی از افراد در حال سوئیچ  کردن به آن هستند اما کماکان جاوا در قلب برنامه نویسی اندروید جای گرفته  است. اولین نکته‌ای که در یادگیری جاوا یا هر زبان دیگری باید مد نظر داشته  باشید این است که تا حد امکان منابع فارسی نخوانید. زبان کامپیوتر انگلیسی  است و حتی بهترین ترجمه‌ها هم اصطلاحات را آنطور که باید منتقل نمی‌کنند.  این موضوع چیزی نیست که به مهارت مترجم یا نویسنده ربط داشته باشد. برای  بعضی از کلمات هنوز که هنوز است معادل‌های فارسی همه‌پسندی پیدا نشده است.  به همین خاطر در بسیاری از گفتگوهای فنی، پادکست‌ها و مستندات فارسی اغلب  اصطلاحات انگلیسی را می‌شنوید تا معادل‌های فارسی. مثلاً کلمۀ Performance  در بیشتر مواقع همان پرفرمنس خطاب می‌شود و کمتر به مواردی مثل «کارایی» یا  «عملکرد» اشاره می‌شود.اگر هیچ چیزی از زبان انگلیسی بلد نیستید،  برای شروع کار و روی غلطک افتادن، مطالعۀ یکی دو ترجمۀ خوب مجاز است ولی  بیشتر از آن صلاح نیست. شما بالاخره به نقطه‌ای خواهید رسید که به منابع  انگلیسی نیاز پیدا می‌کنید. توصیه می‌کنیم بخشی از زمان روزانۀ خود را به  زبان انگلیسی اختصاص دهید. البته لازم نیست داستان‌های انگلیسی بخوانید؛  کتاب‌های برنامه نویسی محبوب را دانلود و با یک دیکشنری خوب مثلاً Qtranslate برای ویندوز یا Google Translator برای اندروید  شروع  به مطالعه کنید. بله در شروع کار که هیچ چیزی بلد نیستید کار اندکی دشوار  است ولی به مرور زمان که جلو می‌روید اصطلاحات و کلمات حوزۀ برنامه‌نویسی  دستتان می‌آید. خیلی عجله نکنید، اولویت را به یادگیری زبان بدهید چون محال  است در برنامه نویسی به جایی برسید بی آنکه زبان انگلیسی بلد باشید. برای یادگیری جاوا کتاب‌های خوبی وجود دارد که با جستجوی ساده‌ای در اینترنت می‌توانید دانلود کنید. لیست پرفروش‌ترین کتاب‌های جاوا در آمازون  نقطۀ خوبی برای شروع است. می‌توانید روی جلد کتاب کلیک کنید و بعد از  خواندن بخش‌های از آن و بررسی نظرات و امتیاز کاربران اقدام به دانلود  کتاب‌ها کنید. برای دانلود کتاب‌ها می‌توانید به it-ebook  مراجعه کنید که منبعی غنی برای دریافت کتاب‌های برنامه نویسی است. پیشنهاد  می‌کنیم اگر زبان انگلیسی‌تان ضعیف است به سادگی نگارش کتاب هم توجه داشته  باشد. ضمناً در شروع کار با کتاب‌های قطور شروع نکنید. برخلاف نظر خیلی از  افراد، کتاب‌های یادگیری برنامه نویسی در ۲۴ ساعت یا یک روز شروع خوبی  برای شما هستند. این حرف که در ۲۴ ساعت نمی‌توان چیزی یاد گرفت درست است  ولی یک فرد مبتدی در شروع کار فقط می‌خواهد مزمزه کند و غرق در هزاران صفحه  کتاب نشود. کمی که راه افتادید، مطالعۀ کتاب Head First Java  را پیشنهاد می‌کنیم. خوبی سری کتاب‌های Head First این است که نثر ساده و  شیوایی دارد و با تصاویر و مثال‌های جالب، مفاهیم لازم را به زبان ساده یاد  می‌دهند.اگر قدرت شنیداری خوبی دارید، دیدن کانال‌های فراوانی که در یوتیوب مثل این  برای آموزش جاوا تاسیس شده‌اند خالی از لطف نیست. ویژگی خوب ویدیو این است  که از زیاده‌گویی پرهیز شده و معمولاً در انتهای هر ویدیو به یک هدف خاص  می‌رسید. ذهن انسان با مثال‌های بصری ارتباط بهتری برقرار می‌کند. البته  انتخاب کتاب یا ویدیو به خصوصیت و سلایق ما هم بر می‌گردد. برخی‌ها از طریق  مطالعۀ کتاب بیشتر از دیدن ویدیو بهره می‌برند و برخی دیگر بالعکس. به هر  حال سلیقۀ شما هر چه باشد منابع خوبی در اینترنت وجود دارد. ضمناً به این  موضوع هم توجه داشته باشید که خیلی غرق در زبان جاوا نشوید. همین که با  ساختارهای اصلی این زبان آشنا شدید و چند پروژۀ کوچک نوشتید کفایت می‌کند.  مابقی یادگیری را در محیط اندروید استودیو روی پروژه‌های اندرویدی ادامه دهید. یادگیری مقدمات برنامه نویسی اندرویداکنون که پیش نیازهای لازم  را پاس کردید می‌توانید استارت برنامه نویسی اندروید را بزنید. مجددا  اینجا هم می‌توانید با جستجویی در آمازون و اینترنت بهترین کتاب‌های برنامه  نویسی اندروید را پیدا کنید. به عنوان مثال یکی از کتاب‌های خوب در این  زمینه  Android Big Nerd Ranch Guide است که به شکل مفهومی به آموزش توسعۀ اندروید پراخته است. مرجع رسمی آموزش گوگل هم عالی است. اگر حوصلۀ کتاب خواندن نداشتید ویدیوهای خوبی در یوتیوب و Udacity  وجود دارد که با تماشای آن‌ها بخش عمده‌ای از مفاهیم برنامه نویسی اندروید  را فرا خواهید گرفت. در پایان این مرحله باید کار با اندروید استودیو را  یاد گرفته باشید. بدانید چطور اشکالی‌زدایی کنید. شیوۀ استفاده از Logcat  را بلد باشید. همچنین درک خوبی از چرخۀ حیات اکتیویتی، فرگمنت‌ها، ناوبری  صفحه، View Pager، نوتیفیکیشن‌ها، RecyclerViewer، SharedPreference، مفهوم  Context، دیالوگ‌ها، مقدماتی از چند نخی، سرویس‌ها و … داشته باشید. مشکل توسعه‌دهندگان جوان  این است که در همین مرحله توقف می‌کنند و برای افزایش مهارت‌ها تلاش  نمی‌کنند. این کار اشتباه است. در بخش بعدی مهارت‌های دیگری که باید یاد  بگیرید را معرفی می‌کنیم.بهبود سطح مهارت‌هابعد از یادگیری  مقدمات برنامه نویسی اندروید اکنون زمان قدم نهادن در مفاهیم سطح بالاتری  است که قطعاً در پروژه‌های خود به آن نیاز پیدا می‌کنید. تمام مواردی که در  ادامه فهرست کرده‌ایم لازم ولی کافی نیستند. در واقع این‌ها ماحصل تجربیات  ما در این حوزه هستند و لزوماً تمام آن چیزی نیست که باید یاد بگیرید.  قطعاً مفاهیم بسیار بیشتری هستند که به مرور خودتان با آن‌ها آشنا خواهید  شد.معماری MVP و MVVM؛آشنایی با الگویهای معماریاستاندادها و شیوه‌نامه‌های کدنویسی اندروید؛طراحی متریال؛آشنایی کامل با Design support Library؛انیمیشن‌سازی مقدماتی؛آشنایی با Constraint Layout و سایر انواع Layout؛کتابخانه‌های ButterKnife, Glide, Picasso, Timber؛کتابخانه‌های مربوط به شبکه OkHttp, Gson, Volley, Retrofit یا سایر موارد مشابه؛یادگیری دیتابیس و ORMها مانند Room, SQLite, Realm, ORMLite, GreenDAO و…؛Custom View و Loadersآشنایی با الگوهای طراحی، تست کدها، توسعۀ آزمون محور، یافتن باگ‌های برنامه، PMD، مفاهیم برنامه نویسی فانکشنال، فایربیس، RxJava، RxAndoird, Dagger, اصول SOLID و … . بله برنامه نویسی سخت‌ترین شغل دنیاست! این تنها بخشی از صدها چیزی است که  یک توسعه‌دهندۀ اندروید باید بلد باشد. یک توسعه دهنده کارکشته علاوه بر  اینکه مدام در حال یادگیری است باید اطلاعات خود را همواره بروز نگه دارد.  حرف آخرحواستان به کیفیت کدها باشد. دربارۀ کدهای ماژولار  مطالعه کنید، همیچنین تفکیک دغدغه‌ها (Separation of Concern، این از همان  مواردی است که معادل فارسی خوبی برای آن کشف نشده!)، MVP, MVVM, MVC، طول  توابع و متدها، سایز کلاس‌ها، نام‌گذاری متغیرها و بسیاری از best  practiceها مطرح در این حوزه. برنامه‌نویس‌ها مسیر سختی در پیش دارند و فقط  آن‌هایی می‌توانند از دیگران فاصله بگیرند و اسمی در کنند که از بحث  یادگیری غافل نباشند؛توسعه نرم‌افزار زمان‌بر است. این حقیقتی است که نباید با آن جدال کنید؛فقط  نخوانید! آموخته‌های خود را بر روی پروژه‌های جدید به معرض امتحان  بگذارید. حتی می‌توانید با ریفکتور کردن کدهای قدیمی کلی چیز جدید یاد  بگیرید؛در انتخاب فریم‌ورک‌ها، کتابخانه‌ها و تکنولوژی‌ها محتاط  باشید. بی‌گدار به آب نزنید تا زمان را از دست ندهید. هر چیزی می‌خواهید  یاد بگیرید ابتدا گوگل کنید؛ با چند نفر مشورت کنید و خوب که به یک  نتیجه‌گیری مطلوب رسیدید انتخاب نهایی را رقم بزنید؛حرف آخر  اینکه یک برنامه‌نویس عاشق است. عاشق کدنویسی! این چیزی است که نمی‌توان  توضیحش داد. عشق به یک کار سختی آن کار را از یاد می‌برد. اگر اندکی در این  علاقۀ قلبی مردرد هستید یا صرفاً با هدف کسب درآمد و سایر مقاصد وارد این  عرصه شده‌اید، به خودتان احترام بگذارید و بی‌خیالش بشوید.منبع : skaarp.com</description>
                <category>ICT_NoteTaking</category>
                <author>ICT_NoteTaking</author>
                <pubDate>Mon, 15 Apr 2019 07:33:07 +0430</pubDate>
            </item>
            </channel>
</rss>