<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Karademy Coding Bootcamp</title>
        <link>https://virgool.io/feed/@karademy</link>
        <description>کارادمی بوت‌کمپ جامع  برنامه نویسی full stack جاوا اسکریپت است که شما را برای بازار کار آماده می کند.</description>
        <language>fa</language>
        <pubDate>2026-06-07 04:41:41</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/12142/avatar/0Ei5P2.png?height=120&amp;width=120</url>
            <title>Karademy Coding Bootcamp</title>
            <link>https://virgool.io/@karademy</link>
        </image>

                    <item>
                <title>دوست من شما برنامه نویس نخواهید شد اگر</title>
                <link>https://virgool.io/@karademy/%D8%AF%D9%88%D8%B3%D8%AA-%D9%85%D9%86-%D8%B4%D9%85%D8%A7-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D9%86%D8%AE%D9%88%D8%A7%D9%87%DB%8C%D8%AF-%D8%B4%D8%AF-%D8%A7%DA%AF%D8%B1-cgye57ys58rr</link>
                <description>یادگیری برنامه نویسی به مانند یادگیری هر مهارت دیگر نیاز به ذهنیتی جدید دارد. بسیاری از ما در مسیر یادگیری اشتباهاتی را انجام می دهیم. این اشتباهات مسیر را در رسیدن به هدف دشوار می کند. حتی باعث ناامیدی ما شده و آن را رها می کنیم. هیچ چیز مثل رها کردن نیمه کاره کارها ما را از اهداف دور نمی کند. تنبلی و اهمال به سراغ ما می آید و ما فکر می کنیم به اندازه کافی خوب نیستیم. اما برای یادگیری نیاز به ذهنیت درست داریم. هدف درست و ذهنیت درست یاور ما در مسیر هستند. برنامه ریزی و انضباط نیز چاشنی کار است که ما را در مسیر یاری می رساند. در ادامه به بررسی چالش ها و موانعی می پردازیم که شما را از یادگیری برنامه نویسی دور می سازد. شاید بعضی از این نکات برای شما بدیهی باشد. اما باید بدانیم بدهیت زمان هایی از چشم ما دور می ماند.پولدار شدنیکی از اشتباهات بسیار رایج در مسیر یادگیری هدف گذاری اشتباه است. هیچکسی از درآمد بالای برنامه نویسی بدش نمی آید. در عین حال با یادگیری کمی از یک  زبان برنامه نویسی، دیدن ویدئو و فالو کردن یک پیج نمیتوانید انتظار داشته باشید سریع به درآمد بالا میرسید. یا استخدام شما در بازار کار به آسانی صورت می پذیرد. سودای یک شبه پولدار شدن را کنار بگذارید. شما باید تمرکز خود را از پول به کسب مهارت عمیق تغییر دهید. پول شما را دنبال می کند. من به شما اطمینان میدهم اگر عمق داشته باشید پروژه ها و درخواست های همکاری زیادی خواهید گرفت. ممکن است در مصاحبه ها رد شوید و یا با کارفرمایی به نتیجه نرسید. اما مطمئن باشید کار برای شما هست.ذهنیت حل مسئلهبه این موضوعات فکر کنید. چطور برنامه زمانی یک تور را به صورت اتوماتیک بچینیم؟ چطور می توانیم بسته های پستی را از مسیر کوتاه تر به مقصد برسانیم؟ با چه مکانیزمی جدیدترین محصولات را به مشتریان نمایش دهیم؟ چطور دستگاه قهوه ساز یا چای ساز خودکار بسازیم؟ چطور ده ها Drone یا ربات پرنده را با نظم به پرواز درآوریم؟ این ها مسئله هایی هستند از دنیای واقعی. خبری از هیچ کد یا زبان کامپیوتری نیست. این ها مسائلی است که باید حل شوند. روی کاغذ. بسیاری از این مسائل قبلا حل شده و در قالب مراحل و فرمول هایی در اختیار ما قرار دارند. ما به آنها الگوریتم می گوییم.کار برنامه نویسان این است که این مسائل را حل کنند. و یا با ترکیب الگوریتم ها بهینه ترین راه حل را بیابند. ذهنیت حل مسئله را جایگزین ذهنیت کد نویسی کنید. قلم را بردارید و افکار را بنویسید. چطور این مسئله را حل کنم. مسئله را بچه اجزای کوچکتری تقسییمیم کنم. چطور راه حل را به تعدادی مرحله قابل اجرا تبدیل کنم.ما کد می نویسیم تا مسئله ها را حل کنیم.برای تمرین مهارت حل مسئله، چالش های جدید انتخاب کنید. آنها را درک کنید و با راهکارهای الگوریتمی آن ها را حل کرده و به کد تبدیل کنید. در نهایت نیاز نیست دانشمند علوم کامپیوتر شوید. تنها کافیست مهارت حل مسئله خود را تقویت کنید. بیشتر بخوانید: آیا هر کسی میتونه برنامه نویسی یاد بگیره؟سرعت بالاعجله دیگر دشمن شماست که شما را از هدف دور می سازد. عجله یعنی برنامه ای ندارم. فقط می خواهم برسم. فقط می خواهم جلوه خوبی در جامعه داشته باشم و یا در مقابل دوستانم احساس برتری کنم. و یا این که سریع پولدار شده و خود را بازنشسته کنم. عجله تمرکز را از شما میگیرد. مهارت کدنویسی و یادگیری شما نصفه نیمه می شود. شما خسته می شوید چرا که هر روز باید بدویید. هدف گذاری و برنامه ریزی را جایگزین عجله کنید. هدف خود را SMART کنید.Specific: هدف مشخص شفاف و ملموسی داشته باشید مثلا من مقدمات زبان جاوا اسکریپت را تا انتهایی کار با DOM با تمرین یاد میگیرم.Measurable: قابل اندازه گیری باشد: مثلا ۱۰ تمرین کتاب X را تا انتهای موضوع Y حل می کنم و با جواب ها چک می کنم.Achievable: قابل دسترس است: مثلا من کتاب X را دارم و آنقدر به زبان انگلیسی مسلط هستم که بتوانم بخوانم و تمرین ها را حل کنم و یا زمان درست و کافی به آن اختصاص میدهم.Realistic: واقع گرایانه است: مثلا با توجه به درس های دانشگاه و یا کارم و تعداد ساعتی که وقت می گذارم می توانم به هدف در زمان مشخص شده برسم.Time Boxed: زمان دار است: زمان کافی (نه خیلی طولانی و نه خیلی کوتاه) برای آن میگذارم.سرعت پایینهمانند سرعت بالا سرعت کم شما را خسته می کند. چرا سرعت کمی دارید؟ مطالب بسیار زیادی را انتخاب کرده اید. و یا الویت خود را مشخص نکرده اید و یا به برنامه ریزی خود پایبند نیستید. دلایل هرچه که باشد، سرعت پایین پیشرفت شما را دل زده می کند. به جای سرعت پایین برنامه ریزی خود را بهبود دهید. زمان بندی خود را بازبینی کنید. زمان هایی مثل صبح زود یا شب ها که مزاحمت کمتر است را برای تمرین انتخاب کنید.به یاد داشته باشید اگر از صفر شروع می کنید حداقل شش ماه تا یک سال تمرین و شکست باید در فرآیند شما باشد.یادگیری گسسته برنامه نویسییادگیری گسسته یعنی  من کمی از یک زبان برنامه نویسی و کمی از زبان دیگر را مطالعه می کنم و در هیچ کدام عمیق نیستم. امروز جاوا اسکریپت می خوانم. و فردا typescript را مطالعه می کنم. و یا فقط ویدئوها را نگاه می کنم. آنهم نه کامل نصف و نیمه. یادگیری شما نیاز به برنامه ریزی درست دارد. ممکن است این برنامه را خود بنویسید و یا از خواهر، برادر و یا دوست خود بخواهید. و یا آن را از مربی در بوت کمپ بگیرید. هر راهی را انتخاب کنید باید از مطالعه و تمرین پراکنده پرهیز کنید. پراکندگی مغز شما را درگیر پردازش بیش از حد می کند و با چند دقیقه کار خسته می شوید.تمرین کم و یا چالشهای ساده برنامه نویسیپست های اینستاگرامی و یا ویدئوها و یا پست های وبلاگ همه خوب هستند اما بدون تمرین فایده ای ندارند. تمرین یعنی ویرایش گر کد را باز کنید مسئله را بخوانید تحلیل کنید و آن را بنویسید. کپی و پیست نکنید.  یا برای تمرین کردن فقط به سراغ چالش‌های ساده که نمونه های آن را دیده اید نروید. سعی کنید چالش های گوناگون را بررسی کنید. همچنین فقط از روی دست ویدیو ها نگاه نکنید. خود قلم و کاغذ بردارید و راه حل خود را بنویسید. سپس آن را به کد تبدیل کنید. در نهایت ببیند که آیا به راه حل نزدیک هستید یا نه.مغرور شدنبا کمی یادگیری مهارت برنامه نویسی در react یا HTML / CSS و یا پایتون شما برنامه نویس نشده اید. شما صرفا با یک زبان برنامه نویسی، کتابخانه و یا فریم ورک آشنا شده اید. حتی با یک سال و دو سال کار نیز نباید شما را مغرور کند. حتی با ۱۰ یا ۲۰ سال برنامه نویسی نیز غرور شما را از بین خواهد برد. غرور یعنی من بهترینم و همه محتاج من هستند. این یعنی یادگیری را متوقف کرده اید. و مهارت های ارتباطی لازم را ندارید. و همچنین این یعنی شما راه را گم کرده اید. شاید از تمام این موارد، غرور و خود بزرگ بینی را مهلک ترین خطا بپنداریم. بسیاری از افراد اسیر غرور می شوند. شاید یک برنامه نویس خوب شوند (نه عالی!) اما دنیا همیشه درس هایی را برای یاد دادن به مغرور ها دارد.خود کم بینیبرعکس غرور، خود کم بینی است. همیشه فکر می کنید که  به اندازه کافی نمی دانید. خود را با دیگران مقایسه می کنید. نا امید می شوید و برای مصاحبه و استخدام و یا دریافت پروژه اقدامی نمی کنید. این موضوع نیز شما را به حاشیه میبرد. راه حل تمرین عمیق کردن مهارت ها است. و همچنین با افراد با تجربه که مربی خوبی هستند گفتگو کنید نه افرادی که شما را ناامید می کنند و یا امید واهی به شما میدهد. مربی خوب واقعیت ها را با شما بررسی و راهکار های عملی می دهد. این بسیار به شما کمک می کند.مهارت های نرم در مسیر برنامه نویس شدنشاید فکر کنید دانش فنی بالا شما را کاندید خوبی برای استخدام میکند. اما مهارت های نرم نقش کلیدی دارند. مهارت های مدیریت زمان، ارتباط با افراد تیم و... مهارت های مهمی هستند. تمرین این موضوعات به تنهایی شاید سخت یا غیر ممکن باشد اما حتما روی مهارت هایی چون مدیریت زمان، اولویت بندی کارها و یا مهارت های نوشتاری خود کار کنید. مطالعه در این زمینه ها شما را یاری خواهد کرد.امیدوارم این نکات شما را در مسیر حرفه ای شدن یاری رساند. تجربه و موضوعات خود را با ما به اشتراک بگذارید.برای مطالعه بیشتر وبلاگ کارادمی را نیز دنبال کنیدما در بوت کمپ برنامه نویسی کارادمی تلاش داریم تا مسیر شفافی در یادگیری برنامه نویسی  برای شما فراهم سازیم.</description>
                <category>Karademy Coding Bootcamp</category>
                <author>Karademy Coding Bootcamp</author>
                <pubDate>Mon, 01 Aug 2022 20:32:49 +0430</pubDate>
            </item>
                    <item>
                <title>11 چیزی که بعنوان مصاحبه کننده برنامه نویسی یاد گرفتم</title>
                <link>https://virgool.io/@karademy/11-%DA%86%DB%8C%D8%B2%DB%8C-%DA%A9%D9%87-%D8%A8%D8%B9%D9%86%D9%88%D8%A7%D9%86-%D9%85%D8%B5%D8%A7%D8%AD%D8%A8%D9%87-%DA%A9%D9%86%D9%86%D8%AF%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%DB%8C%D8%A7%D8%AF-%DA%AF%D8%B1%D9%81%D8%AA%D9%85-k4oe6v9e8xgp</link>
                <description>حل سوالات برنامه نویسی جنبه اصلی یک مصاحبه است، اما بسیاری از نکات دیگر بر نتیجه یک مصاحبه موفق تاثیر می‌گذارد. مصاحبه‌ها نباید فقط در مورد پیشنهاد کاری یا رد شدن از مصاحبه باشد، بلکه باید در مورد آموختن تجربه نیز باشد.هم داوطلبان و هم مصاحبه کنندگان نقش اصلی را ایفا می‌کنند. درک آنچه در ذهن مصاحبه کنندگان می‌گذرد به شما به عنوان یک نامزد کمک می‌کند تا مصاحبه را به طور موثرتری انجام دهید.برای نشان دادن خود به عنوان یک همکار بالقوه، فقط به این نیست که فکر کنید عملکرد خوبی دارید، بلکه به احساس مصاحبه کنندگان نسبت به شما نیز بستگی دارد.بسیاری از ما برنامه نویسان مصاحبه‌های بی شماری را به عنوان داوطلبان شغلی انجام داده‌ایم، اما تعداد زیادی از آنها نقش مصاحبه کننده را بر عهده نگرفته‌ایم. در هفت سال گذشته از زندگی کاری‌ام، بیش از 40 مصاحبه انجام داده‌ام.بیشتر اوقات در مصاحبه برنامه نویسی شکست خوردم. من همیشه عصبی، نگران و حقیر بودم. احساس می‌کردم مصاحبه‌کننده‌ها خدایانی بودند که آنجا بودند و آماده بودند تا من را قضاوت کنند.اخیراً شغلم را تغییر داده‌ام و یک پست ارشد گرفته‌ام. مدیرم از من پرسید که آیا می‌خواهم به طور منظم با داوطلبان مصاحبه کنم؟ چرا که نه؟ این نوبت من است که آنها را خراب کنم (خنده شیطانی). شوخی کردموقتی در طرف دیگر میز، تخته سفید یا زوم می‌نشینید، چیزها را از منظر بسیار متفاوتی می‌بینید. من می‌خواهم که داوطلبان بهترین تجربه مصاحبه و برداشت خوبی از شرکت داشته باشند. من می خواهم 11 چیز جدیدی را که از مصاحبه کننده آموختم به اشتراک بگذارم تا بتوانید خود را برای مصاحبه بعدی بهتر آماده کنید.ما رزومه شما را نمی‌خوانیمبه‌عنوان یک مصاحبه‌کننده برنامه‌نویس، لازم نیست قبل از مصاحبه، همه‌ی رزومه شما را بخوانیم. در واقع ما اصلاً آن را نمی‌خوانیم.فقط باید به یاد داشته باشیم که مصاحبه چه ساعتی است. ما همچنان از شما می‌خواهیم که یک معرفی شخصی و کمی از کارهایی که در حال حاضر انجام می‌دهید به اشتراک بگذارید. بله درست است، ما همچنان به هر چیزی که شما برای معرفی خود می‌گویید توجهی نمی‌کنیم.این بدان معنی است که شما مجبور نیستید زمان زیادی را صرف ایجاد یک معرفی کامل خود کنید، یا مجبور نیستید در مورد گفتن چیزی اشتباه نگران بشید. شما در مورد آن قضاوت نمی‌شوید.چیزی که ما بیش از همه به آن اهمیت می‌دهیم مهارت‌های برنامه نویسی شما در زمان سؤالات است. سالها تجربه شما بیانگر این نیست که در حال حاضر مهارت‌های کدنویسی شما چقدر قوی است.ما به همان اندازه نگران هستیمدرست مانند داوطلبان، مصاحبه‌کنندگان نیز ممکن است به همان اندازه نگران باشند. این به این دلیل است که ما هر دو در حال انجام کاری خارج از روال روزمره خود هستیم.در برنامه روزانه خود، چیزی را برنامه نویسی می‌کنیم که با آن آشنا هستیم. بیشتر از اینکه حرف بزنیم کدنویسی می‌کنیم. وقتی صحبت می‌کنیم، بیشتر با اعضای تیم و مدیر خود صحبت می‌کنیم.در طول مصاحبه، به عنوان یک مصاحبه کننده، باید با یک فرد غریبه صحبت کنیم. ما باید یک کد نوشته شده به زبانی را ارزیابی کنیم که قبلاً هرگز از آن استفاده نکرده‌ایم. ما باید آماده پاسخگویی به هر سؤالی که داوطلب  در طول پرسش و پاسخ به ما می‌زند، باشیم.صحبت بیشتر به شما کمک خواهد کردپرداختن مستقیم به سوالات برنامه نویسی شاید ناشیانه باشد. شما بقولی به گرم کردن برای سخنرانی آنها نیاز دارید. معرفی خود برای شما زمان میخرد.اگرچه قبلاً اشاره کردم که معرفی خود بخشی از ارزیابی نیست، شما باید به جای یک خطی، یک معرفی مناسب برای خود تهیه کنید. این همچنین به مصاحبه کنندگان کمک می‌کند تا قبل از شروع بخش مهم به لهجه و لحن شما عادت کنند.روشن کردن مشکل، توضیح رویکرد خود و فکر کردن با صدای بلند راه‌هایی هستند که می‌توانند مصاحبه کننده ها را درگیر نگه دارد. این می‌تواند نظر مصاحبه کنندگان را به شما بهتر کند. مصاحبه باید یک تبادل دو طرفه باشد، نه فقط یک نوع فرآیند I-watch-you-codeارتباط راه‌کار کلیدی استمهارت برنامه نویسی تنها معیار ارزیابی نیست. ارتباط یک عامل تعیین کننده بزرگتر است. ترکیبی از مهارت‌های کدنویسی متوسط و ارتباط خوب معمولاً بر ترکیب مهارت‌های برنامه نویسی عالی اما ارتباط ضعیف برتری دارد.اکثر داوطلبان مهارت‌های برنامه نویسی مشابهی را ارائه می‌کنند، اما آنچه آنها را متمایز می‌کند، نحوه ارتباط آنهاست. ارتباط نه تنها آنچه می‌گویید بلکه نحوه بیان آن نیز است.بیان، تلفظ، سرعت، مکث، حالت چهره و نگرش بخشی از ارتباطات هستند. وقتی صحبت از کار تیمی به میان می‌آید، ارتباطات اهمیت دارد. اگر مصاحبه‌کننده‌ها باید از شما بخواهند هر از چند گاهی آنچه را که می‌گویید تکرار کنید، ممکن است یک پرچم قرمز باشد.در پایان، مهم‌ترین سوالی که هنگام ارزیابی یک داوطلب از خود می‌پرسیم این است که &quot;آیا کار کردن با این شخص برای من راحت است؟&quot;درخواست کمک شرم آور نیستاگر در هر نقطه‌ای گیر کرده‌اید، کمک بخواهید. هیچ شرمی در انجام آن وجود ندارد. زمان زیادی را صرف مبارزه با خودتان در سکوت نکنید. مصاحبه‌کننده‌ها هم راحت نیستند. ما اصلاً از دیدن شما در حال مبارزه با خودتان لذت نمی‌بریم.در واقع، مصاحبه‌کننده‌ها از دادن کمک به شما خوشحال می‌شوند. ما به دنبال کسی نیستیم که همه چیز را بداند. ما به دنبال کسی هستیم که از درخواست کمک نترسد. مانند اینکه در زندگی واقعی وقتی گیر می‌کنید، باید از کسی کمک بخواهید. این کاری است که باید انجام دهید.هیچ راه حل کاملی وجود نداردرهنمودی که به مصاحبه کنندگان داده می‌شود هیچ راه حلی را شامل نمی‌شود. هیچ راه حل از پیش تعریف شده یا ترجیحی وجود ندارد که بتوان از آن برای مقایسه با راه حل نوشته شده توسط داوطلب استفاده کرد.مصاحبه‌کنندگان لزوماً تک تک خط‌های راه‌حل را به خاطر نمی‌آورند. ما یک یا دو رویکرد را می‌دانیم، اما این کاملاً به کاندیداها بستگی دارد که راه حل خود را ارائه دهند.گاهی اوقات ما دوست نداریم که کاندیداها به سرعت راه حلی را به دست آورند، گویی که از قبل سؤال را دیده اند. دیدن راه‌حل‌های ارگانیک که توسط فرآیند فکری کاندید در محل هدایت می‌شوند، شگفت آورتر است. اگرچه طولانی و بیش از حد پیچیده است، اما مایلیم ببینیم که کاندیداها چگونه این راه حل را ارائه می دهند.عدم تمرین آشکار استبرخی از سوالات به خصوص زمانی که برای یک شرکت فناوری بزرگ درخواست می‌دهید سخت هستند، اما برای اکثر شرکت‌های فناوری، سوالات بسیار پایه هستند. به راحتی می‌توان تشخیص داد که آیا نامزدها با دشواری سؤال دست و پنجه نرم می‌کنند یا با نحوی مبارزه می کنند. اگر زبان برنامه نویسی غالب خود را دارید، از آن زبان برای مصاحبه استفاده کنید. نیازی به امتحان زبانی نیست که در شرح شغلی مورد استفاده‌تر است.اکثر کاندیداها با نحو اولیه درگیر هستند. من در مورد Graph یا Tree صحبت نمی‌کنم. من در مورد حلقه (loop) سنتی For صحبت می‌کنم. به عنوان مثال، موارد زیادی وجود دارد که ممکن است اشتباه پیش برود:for (int i = 0; i &lt; input.length(); i++) { ... } ممکن است فراموش کنید که فاصله‌ها را اضافه کنید. بله، فرمتینگ مهم است. نشان می‌دهد که آیا به خوانایی کد اهمیت می‌دهید یا خیر.شما ممکن است ()length , input.length.  و ()input.sizeرا باهم قاتی کنید.ممکن است ()i &lt;= input.length را بنویسید و با خطای index out of bound مواجه شیدپرسیدن از گوگل مجاز استما معمولاً به داوطلبان نمی‌گوییم که می‌توانند در ابتدای برنامه نویسی  در گوگل جستجو کنند. ما معتقدیم که داوطلب  باید عملکرد اصلی و عملیات داخلی زبانی را که انتخاب می‌کند بداند.با این حال، هنگامی که آنها گیر می‌کنند و می‌پرسند که آیا می‌توانند از گوگل استفاده کنند، ما با کمال میل به آنها می‌گوییم که این کار را انجام دهند. هیچ اشکالی در گوگل کردن چیزهایی وجود ندارد که شما به سختی از آنها استفاده می‌کنید زیرا ما هر روز این کار را انجام می‌دهیم.اگر گیر کرده‌اید و راه حل شما به آن بستگی دارد، از پرسیدن اینکه آیا می‌توانید در گوگل بپرسید نترسید. صادق باشید و فقط عملکرد داخلی را که باید استفاده کنید جستجو کنید، نه کل راه حل را.وقتی در حال تایپ کردن و نگاه کردن به آن هستیم، به معنی یادداشت برداری استاین نکته اغلب نادیده گرفته می‌شود و به اشتباه تفسیر می‌شود. من برخی از بررسی‌های مصاحبه در Glassdoor را دیده‌ام که از مصاحبه‌گرانی که همزمان کار می‌کنند و مصاحبه می‌کنند، شکایت دارند.این ممکن است لزوماً برای همه موارد صادق نباشد زیرا داوطلب ممکن است صدای تایپ صفحه کلید را شنیده باشد یا مصاحبه کننده را دیده باشد که به صفحه دیگری نگاه می‌کند.مصاحبه کننده می‌تواند به خاطر یادداشت برداری تایپ کند. ما رفتار شما را یادداشت می‌کنیم و بلافاصله ارزیابی را انجام می‌دهیم تا فراموش نکنیم. اگر مجبور باشیم همه چیز را پس از پایان مصاحبه به خاطر بیاوریم، ممکن است برخی نکات را از دست بدهیم و یک ارزیابی مغرضانه ارائه دهیم.امروزه داشتن زوم بر روی لپ‌تاپ و یادداشت‌برداری روی مانیتور توسعه یافته یک راه‌اندازی بسیار رایج است. از منظر کاندید، به نظر می‌رسد که مصاحبه‌کننده بیشتر اوقات به دور نگاه می‌کند. بسیار مهم است که به کاندیداها اطلاع دهید که به مصاحبه توجه کامل داریم.وقتی صحبت نمی‌کنیم، به این معنی نیست که به شما توجه نداریممن قبلاً فکر می‌کردم که اکثر مصاحبه کنندگان از لحاظ اجتماعی ضعف دارند و تعامل پذیر نیستند. دلیلش این بود که من چیزی رو اشتباه گفتم؟ زیاد حرف نمیزنن و آنها فقط سوالات فنی را به طرف شما پرت می‌کنند. آنها فقط زمانی صحبت می‌کنند که شما سؤال کنید.در حالی که برخی از این موارد ممکن است درست باشد، اکثر آنها اینطور نیستند. صحبت های کوچک سوگیری ناخودآگاه ایجاد می‌کند. احساسات مصاحبه کنندگان نسبت به نامزد ممکن است تحت تأثیر صحبت‌های کوچک غیر ضروری قرار گیرد که منجر به قضاوت جانبدارانه می‌شود.برای مصاحبه برنامه نویسی، کاندیداها صرفاً بر اساس مهارت‌های کدنویسی و برقراری ارتباط پیرامون جنبه‌های فنی مورد قضاوت قرار می‌گیرند.ما می‌خواهیم کاندیداها موفق باشنداستخدام فرآیندی پرهزینه است. باور کنید یا نه، ما از شما می‌خواهیم که شغل را بیشتر از آنچه برای خود می‌خواهید بدست آورید. ساعات زیادی برای استخدام یک داوطلب صرف می‌شود. اگر داوطلبی پیشنهاد را دریافت نکرد، باید همان کار را دوباره انجام دهیم تا آن نقش گمشده را پر کنیم.اگرچه مصاحبه‌کنندگان خشن و توانا به نظر می‌رسند، اما ما آنجا نیستیم که داوطلبان را خراب کنیم. ما نمایانگر چهره شرکت هستیم. ما می‌خواهیم کاندیداها یکی از بهترین تجربیات را در مصاحبه‌های خود داشته باشند. ما می‌خواهیم مزایای کار در شرکت را تا آنجا که ممکن است به شما معرفی کنیم زیرا می‌دانیم که شما فقط برای یک مصاحبه شرکت نمی‌کنید.Source: https://b2n.ir/u42131برای مطالعه پست‌های بیشتر ما را در وبلاگ کارادمی و یا در ویرگول دنبال کنید.</description>
                <category>Karademy Coding Bootcamp</category>
                <author>Karademy Coding Bootcamp</author>
                <pubDate>Mon, 13 Dec 2021 17:48:40 +0330</pubDate>
            </item>
                    <item>
                <title>طرح صیانت و آینده برنامه نویسی در ایران</title>
                <link>https://virgool.io/@karademy/%D8%B7%D8%B1%D8%AD-%D8%B5%DB%8C%D8%A7%D9%86%D8%AA-%D9%88-%D8%A2%DB%8C%D9%86%D8%AF%D9%87-%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-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86-vknx5bzjriof</link>
                <description>Photo by Elisa Venturهمچنان  طرح صیانت از فضای مجازی موضوع داغ محافل حرفه‌ای کشور است. فعالان فضای مجازی و صاحبنظران جدای از موافق یا مخالف بودن، بر این باور هستند که این طرح نیاز به کارشناسی بیشتری برای اجرای درست دارد. اما طرح صیانت از فضای مجازی چیست؟به سراغ پاراگراف پیشنویس این طرح می رویم:توسعه فناوری‌های نوین اطلاعاتی و ارتباطی و به خصوص پیام‌رسان‌ه‌ای اجتماعی و تحولات مرتبط با آن موجب ایجاد خلأ قانونی در این حوزه شده است. لزوم حمایت از تولیدات داخلی و صیانت از حقوق کاربران که به دلیل خلأ قانونی در معرض آسیب و نقض شدید قرار دارد و نیز تأثیرات مختلف اقتصادی، اجتماعی، امنیتی، فرهنگی و سیاسی پیام‌رسان‌های اجتماعی به عنوان یک زیرساخت نرم افزاری، ارائه طرح قانونی صیانت از حقوق کاربران در فضای مجازی و ساماندهی پیام‌رسان‌ه‌ای اجتماعی با هدف اعمال حاکمیت و حمایت از حقوق کاربران را ضروری ساخته است.همانطور که این طرح را مطالعه می کنیم به کلمات کلیدی میرسیم مانند  پیام‌رسان اجتماعی، پیام رسان داخلی، خدمات پایه و همچنین بند ج بخش تعاریف :صیانت از داده:محافظت از اطلاعات کاربران و جلوگیری از هرگونه افشاء، بهره‌برداری و دسترسی غیرمجاز به اطلاعات مربوط به کاربران و محتوای آثار دیداری، شنیداری، نوشتاری یا ترکیبی از آن‌ها در پیام‌رسان‌های اجتماعی و داده‌های ایجاد یا افزوده شده در اثر فعالیت‌ها و تعاملات کاربران آن در پیام‌رسان‌های اجتماعی.و همچنان که پایین تر میرویم با عبارت پیام‌رسان‌های خارجی اثرگذار روبرو میشویم که به دفعات در ماده و تبصره های مختلف تکرار شده است. پیام‌رسان‌های خارجی اثرگذار در تعریف به درستی مشخص نیست. در ادامه در ارتباط با پهنای باند و مرزبانی دیجیتال صحبت می شود. اما شاخص ترین بحث، پیام‌رسان‌های خارجی اثرگذار است.در دنیای مجازی صحبت های بسیاری درباره مسدود شدن گوگل، مسدود شدن آپدیت سیستم های عامل و... به چشم می آید. بسیاری نیز صحبت از بسته شدن سایت هایی مانند گیت هاب و یا Stackoverflow می کنند. اما در این پیش نویس بیش از همه چیز به مبحث پیام رسان‌ها پرداخته شده است. در جایی از این پیش نویس اشاره شده  مانند تهیه و تصویب ضوابط به کارگیری سامانه های نرم افزاری خارجی مورد نیاز برای ایجاد و توسعه توانمندی خدمات پایه کاربردی داخلی. این جمله باز مبهم است که آیا ما قرار است تا سرویس های مختلف را یکجا در ایران توسعه دهیم به عنوان مثال Stackoverflow داخلی؟! اما این طرح بیش از همه چیز پیام رسان ها و شبکه های اجتماعی را هدف قرار داده است. اما آیا واقعا این طرح بر روی حوزه نرم افزار و برنامه نویسی تاثیر گذار است؟ پاسخ به این سوال با توجه به این پیش نویس چندان آسان نیست. اما اگر بخواهیم نگاه مثبت داشته باشیم، حداقل فعلا اولویت بر پیام رسان ها متمرکز شده. این خود تهدیدی برای بسیاری از استارت آپ ها، کسب و کار های کوچک و همچنین حوزه دیجیتال مارکتینگ است. اما شاید در نگاه اول برای برنامه نویسی محدودیت اجرا نکند. در ادامه این طرح بودجه هایی برای توسعه زیرساخت و نرم افزارهای بومی را در نظر گرفته که البته نمونه ها قبلی نتیجه موفقی را در بر نداشته است.از منظر دیگر می توان گفت در بلند مدت این طرح شُکی به مجموعه ای از فعالیت‌های اقتصادی خواهد بود و حوزه برنامه نویسی و توسعه نرم افزار را نیز متاثر از آن است. در زمینه کار فریلنسینگ و برنامه نویسی نیز نبود دسترسی به پیام رسان های خارجی  خود مانع بزرگی محسوب می شود. بسیاری از ابزارهای حوزه SEO نیز هم اکنون برای ایران بسته هستند و با اجرای این طرح محدودیت بیشتر نیز خواهد شد. به طور کل این طرح بدون بازبینی و تصمیم گیری کارشناسی شده می تواند تاثیرات نامطلوب بلند مدتی را به همراه داشته باشد. طرح صیانت از کاربران  اگرچه ممکن است مستقیما حوزه برنامه نویسی را هدف نگرفته باشد اما مطمئنا صنعت فناوری اطلاعات را به طور کل دچار چالش می کند و بجای نگاه توسعه محور، نگاه محدودیت محور را رواج می دهد.</description>
                <category>Karademy Coding Bootcamp</category>
                <author>Karademy Coding Bootcamp</author>
                <pubDate>Tue, 03 Aug 2021 01:17:49 +0430</pubDate>
            </item>
                    <item>
                <title>آیا واقعا جاوا اسکریپت به درد بازار کار می خورد؟</title>
                <link>https://virgool.io/@karademy/%D8%A2%DB%8C%D8%A7-%D9%88%D8%A7%D9%82%D8%B9%D8%A7-%D8%AC%D8%A7%D9%88%D8%A7-%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-%D8%A8%D9%87-%D8%AF%D8%B1%D8%AF-%D8%A8%D8%A7%D8%B2%D8%A7%D8%B1-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C-%D8%AE%D9%88%D8%B1%D8%AF-mgjdbrmajpdd</link>
                <description>اگر حتی مثل ما سال ها در زمینه برنامه نویسی و توسعه نرم افزار کار کرده باشید هم باز نیاز است تا روندها را رصد کنید و برای پروژه‌ها و نیازهای مختلف از زبان‌ها، کتابخانه کد و فریم ورک‌ها مطلع باشید. یکی از زبان‌های برنامه نویسی (Scripting) که بسیار زیاد درباره آن صحبت می شود  جاوا اسکریپت است. زبانی حدودا ۲۵ ساله که فراز و نشیب های زیادی داشته ولی سعی کرده است تا راه خود را باز کند. می توان گفت از سال ۲۰۱۵ و با معرفی ویژگی های جدید مانند کلاس، Arrow function، Promise، Let/const و... به این زبان، توانسته تا دل توسعه دهندگان بیشتری را به دست آورد. با معرفی Jquery در سال ۲۰۰۶ و NodeJS در سال ۲۰۰۹، React در سال ۲۰۱۳ و Angular در سال ۲۰۱۶ و بسیاری کتابخانه و فریم ورک دیگر این زبان نفوذ بیشتری را در Front-End و البته Back-End به دست آورد.در حال حاضر این زبان یکی از انتخاب های اصلی برای Front-End و یک انتخاب مناسب (البته متناسب با نیاز و معماری) در  توسعه Back-End است. زبان های برنامه نویسی محبوب ۲۰۲۰ - Githubحال بپردازیم به این موضوع که این زبان چقدر در بازار کار مناسب است و تقاضا دارد. با نگاهی به لیست آگهی‌های روزانه در سایت‌های استخدامی ایران در طول سال از اعدادی بین ۴۰۰ تا بیش از ۱۰۰۰ عنوان شغلی مرتبط با جاوا اسکریپت و Front-End  را می توان دید که در شرح شغلی آنها جاوا اسکریپت و حداقل یک فریم ورک یا کتابخانه مانند React ذکر شده است. همچنین در سطح جهانی با جستجو در سایت‌های مطرح  از ۳۵۰۰۰ تا ۷۴۰۰۰ عنوان شغلی وجود دارد که در آنها زبان Javascript و Typescript (بزودی درباره آن می نویسیم) و همچنین HTML/CSS/SASS نیاز است. در ایران بسیاری از سایت‌های مطرح از یک React، Angular و یا VueJS استفاده می کنند که پایه همه آنها درک خوب جاوا اسکریپت است. البته jQuery نیز همچنان طرفدار دارد اما با گسترش نیازهای سمت Front-End به مرور جای خود را به یکی از فریم ورک‌ها خواهد داد.حال نگاهی بیندازیم به یک نمونه از آگهی استخدامی (سطح خبره یا Senior) مرتبط با جاوا اسکریپت از شرکت Automattic که پشتیبان پروژه هایی مانند Wordpress.com ،Tumblr و WooCommerce است. در بخش نیازهای این موقعیت آماده است که درک بسیار کامل از CSS ،HTML و Javascript نیاز است. همچنین با React و Redux کار کرده باشید. در ادامه به این موضوع اشاره می کند که در یک تکنولوژی سمت Back-End مانند NodeJS ،PHP و یا Python تجربه داشته باشید. ما به این دلیل این آگهی را انتخاب کردیم چون اصل مطلب و نیاز را بیان کرده است و از شرکت معتبری است. این آگهی بسیار ساده و شفاف است و چراغ راه خوبی است تا بدانیم برای داشتن یک شغل به عنوان Senior Javascript Engineer و یا Front-End Developer باید چه مسیری را برویم. البته مواردی وجود دارد که شما باید درباره آن  تجربه کسب کنید مانند GIT، TDD و یا کار با Kubernetes یا Docker Container. اما این آگهی یک نکته مهم دارد HTML + CSS +Javascript را خیلی خوب بلد باشید. خیلی خوب!!! و نیز با مانند React کرده باشید.مقایسه سه کتابخانه و فریم ورک اصلی Front-Endیک سوال مهم این است که آیا جاوا اسکریپت زبان مناسبی برای توسعه Back-End است یا نه. این سوال پاسخ های مختلفی را به همراه دارد مانند این که بله صد در صد. با موتور Node JS و Express JS Framework یک استک خوب برای توسعه Back-End است. هم سریع است هم هزینه‌ها را کاهش می دهد و هم با یک تیر دو نشان زدن را دارد. از طرفی باید قبول کرد که هر کدام از زبان های برنامه نویسی برای نوعی از نیاز طراحی شده و هیچ زبانی در هر سناریویی بهترین انتخاب نیست. به عنوان مثال زبان جاوا اسکریپت در بخش هایی نحوه نوشت‌های مختلفی دارد که می تواند در پروژه ها وقت گیر و گیج کننده باشد و همان کار را با پایتون بتوان سریع تر انجام داد. نکته این است که تمرین، کسب تجربه در پروژه ها و آزمودن همیشه و همجا راهگشای تبدیل شدن به یک توسعه دهنده عالی است. انتخاب یک استک درست نیاز به مشورت و کسب تجربه دارد. البته با دیدن سایت هایی مانند LinkedIn, Uber, Netflix, Medium, NASA و... که از NodeJS استفاده می کنند می توان گفت NodeJS و Javascript سمت Back-End از پس کار بر آمده اند (منبع).اگر می خواهید بر روی زبان برنامه نویسی جاوا اسکریپت برای ورود و یا پیشرفت در بازار کار هم در Front-End و  در ‌Back-End سرمایه گذاری کنید، ما حتما آن را به شما پیشنهاد می کنیم. آینده  توسعه وب و البته تلاقی آن با توسعه موبایل اپ مسیری بسیار روشن است. در آخر اگر می خواهید در  زمینه Full Stack Development با زبان جاوا اسکریپت یادگیری و مهارت آموزی خود را شروع کنید، پیشنهاد می کنیم تا نگاهی به مسیر بوت کمپ فول استک جاوا اسکریپت کارادمی داشته باشید.منتظر تجربیات و نظرات شما در بخش کامنت‌ها هستیم.</description>
                <category>Karademy Coding Bootcamp</category>
                <author>Karademy Coding Bootcamp</author>
                <pubDate>Thu, 17 Jun 2021 20:27:53 +0430</pubDate>
            </item>
                    <item>
                <title>چطور مهارت‌های طراحی و توسعه رابط کاربری خود را ارتقا بدیم؟</title>
                <link>https://virgool.io/coderlife/%DA%86%D8%B7%D9%88%D8%B1-%D9%85%D9%87%D8%A7%D8%B1%D8%AA-%D9%87%D8%A7%DB%8C-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D9%88-%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D8%B1%D8%A7%D8%A8%D8%B7-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%DB%8C-%D8%AE%D9%88%D8%AF-%D8%B1%D8%A7-%D8%A7%D8%B1%D8%AA%D9%82%D8%A7-%D8%A8%D8%AF%DB%8C%D9%85-ynccrsdihbk8</link>
                <description>امروزه توسعه وب سمت کاربر و یا فرانت بسیار پیچیده‌تر از گذشته شده است که این موارد فراتر از CSS ،HTML و JavaScript هستند. فناوری‌های زیادی وجود دارد که شما باید آنها را بیاموزید و به تبع آن وظایفتان نیز بیشتر می‌شود. با این حال اگر شما با مفاهیم اولیه توسعه وب (CSS ،HTML و جاوا اسکریپت) آشنایی داشته باشید و همچنین قابلیت طراحی UI (رابط کاربری)‌ داشته باشید‌، می‌توانید پورتفولیو‌های بسیار جذاب و کاربردی که برای کارفرمایان و روند استخدام حائز اهمیت است بسازید.اگر دنبال یادگیری اصول برنامه نویسی هستید و نمی دانید این اصول را از کجا و چطور فرا بگیرید این پست بهتون کمک می‌کنه تا در این حوزه موفق شوید.همچنین برای یادگیری و تمرین پیشنهاد می کنیم  بوت‌کمپ های برنامه نویسی Full stack را بررسی و یا بخش  چالش‌های تمرینی رابط کاربری و Front-End را نیز مشاهده کنید. یک پیشنهاد دیگه هم داریم. محتوای رایگان آموزشی و پلتفرم تمرینی کارادمی را از دست ندهید.صفحات وب چگونه ساخته می‌شوند؟صفحات وب بر اساس محتوا ساخته می‌شود. محتوا همان چیزی است که شما هنگام بازدید یک صفحه وب می‌بینید. محتوا می‌تواند شامل متن، تصاویر، گرافیک و ویدیو باشد. محتوا با استفاده از یک زبان نشانه گذاری با نام HTML ذخیره می‌شود. احتمالا درباره آن شنیده‌اید، اما این یک بررسی خیلی سریع است.زبان تگ گذاری HTML شامل عناصر است، که بسیاری از آنها دارای بخشی هستند که بر چسب (Tag) های باز و بسته نامیده می‌شوند. آنها مرورگرهای وب را برای چگونگی نمایش محتوا (متون، تصاویر، ویدیوها و مانند آن) روی صفحه راهنمایی می‌کنند.از HTML برای طراحی ظاهر و قالب وبسایت استفاده میکنیم اما HTML به تنهایی از عهده طراحی یک سایت زیبا بر نمی آید و کاملا به  CSS وابسته است. در حقیقت اگر بخواهیم طراحی یک صفحه وب را به ساخت یک ساختمان تشبیه کنیم، میتوان گفت بدنه و اسکلت ساختمان بر عهده HTML است و از طرفی دیگه، رنگ و لعاب، زیبایی و نمای ساختمان را هم CSS بر عهده میگیرد. بنابراین CSS را نمیتوان بدون HTML و HTML را نمیتوان بدون CSS تصور کرد و اینها کاملا مکمل هم هستند.لازم است بدانید CSS هم مشابه HTML یک زبان نشانه گذاری است و هیچ ارتباطی با موضوع برنامه نویسی ندارد. بطور کلی یادگیری زبان های نشانه گذاری مثل HTML و CSS بسیار ساده تر از زبان های برنامه نویسی هستند.جاوا اسکریپت زبانی پیچیده تر از HTML یا CSS است و نسخه بتا آن تا سال ۱۹۹۵ ارائه نشد. امروزه JavaScript توسط همه مرورگرهای مدرن پشتیبانی می‌شود و تقریبا در هر سایتی در وب برای عملکرد قدرتمندتر و پیچیده تر مورد استفاده قرار می‌گیرد.جاوا اسکریپت یک زبان برنامه نویسی مبتنی بر منطق است که می‌تواند برای تغییر محتوای وب سایت و ایجاد رفتارهای مختلف در پاسخ به اقدامات کاربر استفاده شود. کاربردهای رایج برای JavaScript شامل کادرهای تأیید، Call to Action  یا فراخوان به عمل و افزودن هویت‌های جدید به اطلاعات موجود است.اصول اولیه توسعه وب را جدی بگیریدیادگیری اصول برنامه‌نویسی فواید بسیار زیادی دارد اما اگر بخواهیم دو مورد از اصلی‌ترین آن‌ها را برشمریم، بایستی بگوییم پس از آن که ما فراگیریم چگونه برنامه نویسی کنیم، از یک مصرف کننده‌ی فناوری به یک تولید کننده‌ی فناوری تبدیل شده‌ایم و علاوه بر آن، با یادگیری اصول برنامه نویسی، ما به حوزه‌ی یکی از پردرآمدترین مشاغل حال حاضر دنیا نیز ورود پیدا کرده‌ایم. برنامه نویسی در ابتدا کمی ترسناک به نظر می‌رسد اما واقعیت این است که برنامه نویسی یا نوشتن برنامه‌های کامپیوتری به مراتب راحت تر از آنچه به نظر می‌رسد است. با یادگیری اصول برنامه نویسی،‌ افراد با چیزهایی مثل خلاقیت، منطق، هنر، ریاضیات، روش‌های حل مسئله، تفکر انتقادی، اصول طراحی و بسیاری چیزهای دیگر آشنا می‌شوند.برای شما شاید جالب باشه که بدونین یادگیری کامل در اصول اولیه وب که CSS ،HTML و جاوا اسکریپت است سخت می‌تونه باشه. بعنوان مثال نوشتن CSS سخت است. حتی اگر اغلب مورد تمسخر قرار گرفته و به عنوان یک زبان برنامه نویسی دیده نمی‌شود ولی نوشتن CSS سازگار و زیبا بسیار دشوار است. در مسیر راه خود به عنوان یک توسعه دهنده فرانت اند، اغلب متوجه شده‌ام که در کلاسهای آموزشی از طراحی اپ شما با CSS چشم پوشی می‌کنند و جزئیات  CSS Best Practices و موارد دیگر را شرح نمی‌دهند.وقتی نگاهی به بیشتر پورتفولیو‌ها می‌اندازیم میبینیم که اکثر توسعه دهندگان فرانت اند با این مسئله سر و کله می‌زنن. ما یاد می‌گیریم که چگونه یک RESTFUL API بسازیم قبل از اینکه یاد بگیریم چگونه به درستی از CSS Transition و یا اتریبیوت‌های box-shadow برای استایل کردن یک دکمه ساده استفاده کنیم.برنامه نویسی فرانت اند چیست؟فرانت اند یا Front End، به بخش قابل مشاهده‌ی یک وب سایت یا نرم افزار توسط کاربران می‌گویند. فرانت اند، کدهای غیر قابل فهم برای کاربران را در قالب ظاهری گرافیکی و بصری به آن‌ها نمایش می‌دهد تا بتوانند به راحتی از بخش‌های مختلف سایت استفاده کنند. در این بخش، فرم‌های ورودی اطلاعات، صداها، تصاویر، ویدئوها و به صورت کلی هر چیز دیگری که برای کاربر قابل درک باشد، قرار می‌گیرد.فرانت اند به دو بخش اصلی طراحی و توسعه رابط کاربری تقسیم می‌شود. در بخش طراحی، طراحان با نرم افزارهای گرافیکی مانند فتوشاپ، ادوبی ایکس دی، فیگما و... ظاهر سایت را طراحی می‌کنند. اما بخش توسعه‌ی رابط کاربری مربوط به پیاده سازی ظاهر سایت در قالب کدهای HTML ، CSS و جاوا اسکریپت (که در بالا توضیح داده شد) است. بخش قابل مشاهده‌ سایت برای کاربران در سمت فرانت را سمت کاربر یا Client Side می‌نامند. بنابراین کدهای نوشته شده در سمت فرانت اند، در مرورگر کاربر پردازش و اجرا می‌شوند. یعنی کاربر به راحتی به این کدها دسترسی مستقیم دارد و می‌تواند آن‌ها را مشاهده کند. فرانت اند با بخش بک اند (Backend) در ارتباط مستقیم است و بر روی تجربه کاربران هنگام استفاده از محصول تاثیر بسیاری می‌گذارد.ترکیبی از طراحی و توسعه رابط کاربریتوسعه دهندگان فرانت اند می‌توانند برای ارتقا مهارت‌های طراحی خود از ابزارهای زیادی استفاده کنند، که این ابزار‌ها معمولاً به دو دسته زیر تقسیم می‌شوند:ابزارهای طراحی گرافیکیویرایشگرهای کد (IDE)ابزارهای طراحی گرافیکی برای ساختن نمونه اولیه برنامه، آزمایش با رابط کاربری و ایجاد طرح نهایی مفید هستند. با توجه به تعداد اعضای تیم، توسعه دهنده Front-End ممکن است کم و بیش مسئول عناصر گرافیکی برنامه باشد. این ابزارها می‌توانند از یک کاغذ و مداد گرفته تا ابزارهای نمونه سازی اختصاصی مانند Balsamiq Mockup تا ویرایشگرهای قدرتمند گرافیکی مانند Photoshop یا Sketch باشند. توسعه دهندگان Front-End که مسئولیت بیشتر عناصر گرافیکی برنامه را بر عهده دارند، خود را با ابزارهای ویرایشی کامل گرافیکی مانند Photoshop ،Illustrator ، Sketch یا Figma بیشتر آشنا می‌کنند.طیف وسیعی از ویرایشگرهای کد‌، از ویرایشگرهای فوق العاده کم حجم مانند Notepad تا ویرایشگرهای توسعه یکپارچه (IDE) مانند Eclipse یا Visual Studio که حجم بالایی دارند، وجود دارد.در برخی از ویرایشگرهای پیچیده تر مانند Emacs یا vim ممکن است ماه ها طول بکشند تا حرفه‌ای شوید اما می‌توانند منجر به وفاداری شدید کاربران شوند. ویرایشگر کد توسط توسعه دهنده یک انتخاب کاملاً شخصی است و هیچ راه حل کاملی برای آن وجود ندارد. اکثر توسعه دهندگان قبل از اینکه روی یکی از آنها متمرکز شوند با چندین ویرایشگر کد آزمایش می‌کنند. تقریباً تمام توسعه روی رایانه صورت می‌گیرد، بنابراین یک توسعه دهنده Front-End احتمالاً در انتخاب دستگاه خود بیشتر تفکر کند. تعداد بسیار کمی از ابزارهای دیگر مورد نیاز است، اگرچه برخی از توسعه دهندگان فرانت اند ممکن است تصمیم بگیرند که خود را با دفترچه‌های یادداشت و تخته وایت برد محاصره کنند.در آخیر برای یادگیری و تمرین پیشنهاد می کنیم بخش های زیر از کارادمی را بررسی کنید:۱-   بوت‌کمپ های برنامه نویسی Full stack ۲-  چالش‌های تمرینی رابط کاربری و Front-End ۳- محتوای رایگان آموزشی و پلتفرم تمرینی کارادمی را از دست ندهید.</description>
                <category>Karademy Coding Bootcamp</category>
                <author>Karademy Coding Bootcamp</author>
                <pubDate>Wed, 05 May 2021 17:19:44 +0430</pubDate>
            </item>
                    <item>
                <title>آیا هر کسی میتونه برنامه نویسی یاد بگیره؟</title>
                <link>https://virgool.io/CodeLovers/%D8%A2%DB%8C%D8%A7-%D9%87%D8%B1-%DA%A9%D8%B3%DB%8C-%D9%85%DB%8C%D8%AA%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%DB%8C%D8%A7%D8%AF-%D8%A8%DA%AF%DB%8C%D8%B1%D9%87%D8%9F-qk4vmabn6dmg</link>
                <description>سوالی که بسیاری که می خواهند وارد حوزه فناوری اطلاعات و برنامه نویسی شوند از ما میپرسند. &quot;آیا هر کسی میتونه برنامه نویسی یاد بگیره؟&quot; برای همین این سوال رو آوی، هم بنیانگذار بوت‌کمپ‌های Flatiron آمریکا پاسخ داده است که در ادامه می خوانیم.آوای میگه: بله. البته. این یک سوال مسخره‌ای است – برای اینکه کاملاً بر اساس این عقیده است که ما  ایده‌ای درباره محدودیت‌های پتانسیل بالقوه انسانی نداریم.قبل از انقلاب صنعتی‌، اگر می‌پرسیدید &quot;آیا کسی می‌تواند خواندن را یاد بگیرد؟&quot; پاسخ منفی قاطع بود - کتابها گران بودند؛ خواندن فعالیتی از طبقه نخبگان بود. با این وجود‌، طی چند قرن گذشته‌، اکثر مردم جهان باسواد شده‌اند.اگر صد سال پیش سوال می کردید &quot;آیا زنان می‌توانند ریاضیات را یاد بگیرند؟&quot; متاسفانه اکثر پاسخها منفی بود، که کاملاً نامعقول است. اما حتی امروز‌، مطالعات نشان می‌دهد که این گرایش فرهنگی همچنان پابرجاست و در واقع می‌تواند باعث شود که زنان در ریاضیات بدتر عمل کنند – و این شکاف جنسیتی در عملکرد کاملا در کشورهایی که دارای فرهنگ برابر با جنسیت هستند فاصله دارد.امروز‌، شما می‌پرسید ، &quot;آیا کسی می‌تواند برنامه نویسی را یاد بگیرد؟&quot; با وجود تصورات کلیشه‌ای در مورد برنامه نویسان (اینکه آنها ضد جامعه هستند) و تصورات غلط درباره اینکه برنامه نویسی واقعاً چگونه است (که  آن بیشتر ریاضیات و کمتر خلاقیت است) ، ممکن است غریزه گفتن نه باشد - &quot;نه ، من آنطور که باید ساخته نشدم. &quot; اما باید برای ما روشن باشد که وقتی به گذشته نگاه می‌کنیم، پتانسیل انسانی بی حد و حصر است - تاریخ بارها و بارها به ما نشان داده است که ما تنها با فرضیات خود از آنچه که قادر به دستیابی به آموزش موثر هستیم محدود هستیم.یک اخطار:این بدان معنا نیست که یادگیری برنامه نویسی آسان است. شما خود را به چالش می‌کشید که یک طرز تفکر کاملاً جدید را بپذیرید و لحظاتی از خودباوری و مبارزه خواهید داشت. مانند یادگیری هر مهارتی که ارزش تسلط داشته باشد ، زمان بر است - اما این هدف تقریباً برای هر کسی که مایل به کار است ، قابل دستیابی است.تجربه یادگیری نیز برای همه کسانی که چالش را قبول می‌کنند یکسان نخواهد بود. به عنوان مثال‌، اگر می خواهید از نظر ماهیت چیزی بسیار کمی‌، مانند برنامه نویسی را بیاموزید‌، اگر سالها آموزش آن نوع تفکر را داشته باشید‌، در یک مزیت فوق العاده قرار خواهید گرفت. اگر شما یک معلم ریاضی الهام بخش دارید‌، یک موضوع کَمی در کالج می‌خوانید ، یک مدرک کارشناسی ارشد در علوم کامپیوتر دریافت می‌کنید و تجربه کار تحلیلی را تجربه می‌کنید ، وضعیت شما بهتر از کسی است که از ابتدا با تفکر کَمی شروع می‌کند. اما از طرف دیگر‌، شخصی که چنین تجربه‌ای ندارد ، ممکن است از جنبه‌های خلاقانه برنامه نویسی‌، مزایایی داشته باشد - طراحی محصول یا رابط کاربری رو زنده کند.اما هنوز...در هر صورت‌، من معتقدم هر کسی می‌تواند برنامه نویسی را بیاموزد اگر انگیزه لازم برای عبور از مشکلاتی را داشته باشد که مطمئناً با آن روبرو می‌شود - برای غلبه بر این سربالایی اولیه یادگیری‌، برای درک کامل چیزی قبل از حرکت. شما باید ساختار مناسب خود را پیدا کنید‌، روش صحیحی برای یادگیری داشته باشید‌، اعم از گرفتن مدرک کارشناسی ارشد‌، رفتن به یک بوت کمپ برنامه نویسی یا خودآموزی با منابع آنلاین بصورت رایگان. این در مورد این نیست که آیا شما می‌توانید یاد بگیرید‌، اما اینکه چگونه می‌توانید یاد بگیرید، چگونه می‌توانید به آن پایبند باشید.آنچه ما در مدرسه Flatiron متوجه شدیم مهمترین عامل در یادگیری موفقیت آمیز برنامه نویسی‌، صرف نظر از اینکه چگونه این کار را ادامه می‌دهید ، داشتن یک جامعه یا کامیونیتی در اطراف شما هنگام یادگیری است. تا به تنهایی یاد نگیرم. به این فکر کنید که یادگیری نواختن ساز است: نواختن به تنهایی سرگرم کننده است‌، اما هیجان واقعی - و انگیزه برای عبور از قسمت‌های سخت - از ایجاد هماهنگی‌، همکاری یا بداهه پردازی با دیگران حاصل می‌شود. دیدین؟ ☺بنابراین مهم نیست که شما مرد یا زن هستید، شش یا 60، یک هنرمند یا یک ریاضیدان - یادگیری برنامه نویسی دور از دسترس نیست. اگر برنامه درستی پیدا کردید‌، خود را با دیگر افراد مشتاق محاصره کنید و به جای انصراف ، از پس چالش‌ها برآیید‌، می‌توانید نحوه برنامه نویسی را بیاموزید.ممنون از جواب آوی که تصویر درستی را برای ما ایجاد کرد. حالا وقت آن است که برنامه نویسی را شروع کنید چه از طریق محتوای فراوان در اینترنت و یا از طریق دیگری مثل بوت‌کمپ برنامه نویسی کارادمی.</description>
                <category>Karademy Coding Bootcamp</category>
                <author>Karademy Coding Bootcamp</author>
                <pubDate>Sun, 03 Jan 2021 21:35:19 +0330</pubDate>
            </item>
                    <item>
                <title>۷ نکته لاراول که باید بدانید</title>
                <link>https://virgool.io/@karademy/%DB%B7-%D9%86%DA%A9%D8%AA%D9%87-%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84-%DA%A9%D9%87-%D8%A8%D8%A7%DB%8C%D8%AF-%D8%A8%D8%AF%D8%A7%D9%86%DB%8C%D8%AF-o9o3psoyg5it</link>
                <description>متد get() می‌تواند آرایه‌ای از ستون‌ها را برای بازگشت بپذیردآیا می‌دانید که متد get() می‌تواند آرایه‌ای را با ستون‌هایی که باید برگردانده شوند بپذیرد؟ همین کار با متد all() نیز کار می‌کند.وقتی برنامه شما در حالت تعمیر و نگهداری است اجازه دسترسی به آدرس‌های IP خاص را بدهیدلاراول به شما این امکان را می‌دهد تا با استفاده از دستور artisan برنامه خود را در حالت نگهداری قرار دهید. در حین نگهداری، کاربران نمی‌توانند از این برنامه استفاده کنند. اما آیا می‌دانستید که می‌توانید به آدرس‌های IP خاصی اجازه دسترسی بدهید؟شرایط ترکیبیاستفاده از شرایط ترکیبی تقریبا برای همه برنامه‌ها یک امر معمول است. آیا می‌دانید روشی متفاوت برای نوشتن آن‌ها وجود دارد؟دریافت شناسه کاربر معتبرخیلی وقت‌ها برنامه نویسانی را می‌بینیم که از Auth::user()-&gt;id استفاده می‌کنند تا شناسه کاربر معتبر را بازیابی کنند. اما یک راه بهتری هم هست.متد optional() در Fakerبعضی اوقات در تست‌های خودکار Weap رکورد پشتیبان گیری کامل نمی‌شود. در چنین مواردی، فیکر متد optional() را دارد.ستون‌های بی علامت در انتقال پایگاه دادهوقتی بین دو جدول رابطه‌ای دارید، ستون باید بدون علامت باشد. برای نداشتن ستون بدون علامت، از متد unsigned() استفاده می‌شود. اما راه دومی نیز برای دستیابی به همان نتیجه وجود دارد.منبع:‌ https://bit.ly/30VNtUEبرای مطالعه پست‌های بیشتر ما را در وبلاگ کارادمی و یا در ویرگول دنبال کنید.</description>
                <category>Karademy Coding Bootcamp</category>
                <author>Karademy Coding Bootcamp</author>
                <pubDate>Sun, 11 Oct 2020 22:56:55 +0330</pubDate>
            </item>
                    <item>
                <title>یادگیری برنامه نویسی در دوران کرونا</title>
                <link>https://virgool.io/coderlife/%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%AF%D8%B1-%D8%AF%D9%88%D8%B1%D8%A7%D9%86-%DA%A9%D8%B1%D9%88%D9%86%D8%A7-cssyjiifmzce</link>
                <description>ویروس کرونا و برنامه نویسیدر حال گذراندن روزهای سخت شیوع ویروس کرونا هستیم و این باعث شده تا بسیاری از افراد نتوانند در محل کار، دانشگاه و حتی جمع‌های دوستانه شرکت کنند. بسیاری از مشاغل مجبور به دورکاری شدند و به همین دلیل انتظار می‌رود بازار کار فریلنسرها یا همان آزادکارها بهبود پیدا کند. به همین دلیل اکنون زمان مناسبی است که بر مبنای یک برنامه‌ریزی دقیق به فکر تبدیل شدن به یک توسعه دهنده حرفه‌ای وب باشید، زیرا شرکت‌ها و استارتاپ‌ها به وب‌سایت نیاز دار‌ند و برخی از آن‌ها تمایلی ندارند از قالب‌های آماده و سامانه‌های مدیریت محتوا شبیه به وردپرس، دروپال و غیره استفاده کنند و ترجیه می‌دهند سایتی مبتنی بر فناوری دات‌نت یا سایتی طراحی شده با پی‌اچ‌پی را در اختیاز داشته باشند.یادگیری در قرنطینه به علت شیوع ویروس کرونا می‌تواند برای شما یک فرصت طلایی باشد، چرا که قرنطینه یعنی توقف زمان، یعنی ساعت برنارد که همیشه آرزوش را داشتید. حالا اختیار با شماست که باهاش چیکار می‌کنید؟ میخوابید؟ یا از بقیه جلو می‌زنید؟ حال می‌توانید کنترل زمان را بدست بگیرید و از آن به بهترین شکل ممکن به نفع خودتان استفاده کنید.از کجا شروع کنم؟هرکدام از حوزه‌های برنامه‌نویسی را که برای ادامه انتخاب می‌کنید، باید بدانید که حرفه‌ای شدن در آن زمینه سختی‌های خاص خودش را دارد. برای مثال اگر می‌خواهید به یک برنامه‌نویس حرفه‌ای در حوزه‌ی وب تبدیل شوید، باید دقت داشته باشید که برنامه‌نویسی وب از طراحی وب‌سایت‌ها تا نوشتن برنامه‌های تحت وب را شامل خواهد شد. کسانی در این زمینه موفق‌تر هستند و به درآمدهای بالا‌تری دست می‌یابند که هم بتوانند صفحات وب را طراحی کنند و هم برای آن‌ صفحات کدهای اصولی بنویسند. در حال حاضر تقریباً هر شرکت یا سازمانی یک یا چند وب‌سایت دارد و می‌توان گفت که بازارکار برنامه‌نویسی در این حوزه عالی است. البته برنامه‌نویسی موبایل و دسکتاپ هم از وضعیت قابل قبولی برخوردار هستند و اگر به برنامه‌نویسی در این حوزه‌ها علاقه‌مند هستید، با کمی پشتکار و خلاقیت مطمئن باشید که می‌توانید گلیم خودتان را از آب بیرون بکشید.یادگیری جاوا اسکریپت برای کسانی که می‌خواهند به تازگی کار برنامه‌نویسی را شروع کنند و در آینده به یک برنامه‌نویس حرفه‌ای تبدیل شوند بسیار مفید و کاربردی خواهد بود. تفاوتی ندارد که در کدام حوزه از برنامه‌نویسی می‌خواهید کارتان را شروع کنید. مطمئن باشید که پس از گذراندن دوره‌ی جاوا اسکریپت در هر زمینه‌ای می‌توانید از آن استفاده نمایید. چرا که جاوااسکریپت یک زبان همه‌کاره است و برای تمام پلتفرم‌ها کارایی دارد. پس همین حالا دست به کار شده و با شرکت در این دوره‌ی کاربردی چند قدم از هم‌رده‌های خودتان جلوتر بزنید.چرا آموزش آنلاین؟آموزش آنلاین برنامه‌نویسی بهترین راهی است که می‌توانید با کمک آن صفر تا صد برنامه‌نویسی را یاد بگیرید و به یک برنامه‌نویس حرفه‌ای تبدیل شوید. اینترنت انبوهی از اطلاعات است و تقریباً هر آن‌چه را که بخواهید به راحتی می‌توانید در آن بیابید. اما برخی از مخالفان معتقدند که حجم زیاد اطلاعات گاهی هم موجب سردرگمی افراد می‌شود. چراکه نمی‌دانند کدام منبع واقعا معتبر است و می‌تواند به آن‌ها کمک کند. اما آموزش آنلاینی که خیلی شفاف و با زبانی ساده ارائه شود، می‌تواند تمام اطلاعات و مفاهیم لازم را به شما انتقال دهد و برایتان نتیجه‌بخش باشد. لذا شرکت در کلاس‌های آموزشی معتبر همانند بوت‌کمپ‌های فشرده برنامه نویسی برای یادگیری شما می‌توانند مفید باشند. این دسته از آموزش‌های آنلاین برنامه‌نویسی بسیار کامل و منسجم هستند و اغلب پروژه محور می‌باشند که از معرفی ابزارهای مورد نیاز تا ساخت پروژه را در برمی‌گیرند.نتیجه‌گیریبرای تبدیل شدن به یک توسعه دهنده حرفه‌ای وب باید چند سال زمان صرف کنید،اما با توجه به شرایط فعلی و وقت آزادی که افراد دارند این امکان وجود دارد تا این بازه آموزشی را کوتاه‌تر کرد و فناوری‌ها و ابزارها را به سرعت یاد گرفت. نکته مهم دیگری که باید به آن دقت کنید این است که تسلط بر مهارت‌های فرانت اند و یا بک اند شمارو به یک توسعه دهنده وب حرفه‌ای تبدیل نمی‌کند، زیرا یک توسعه دهنده حرفه‌ای به ذهن تحلیل‌گری نیاز دارد تا بتواند پروژه‌های مختلف را به سرانجام رسانده و به بهترین شکل افراد یک تیم را مدیریت کند.برای مطالعه پست‌های بیشتر ما را در وبلاگ کارادمی و یا در ویرگول دنبال کنید.</description>
                <category>Karademy Coding Bootcamp</category>
                <author>Karademy Coding Bootcamp</author>
                <pubDate>Wed, 15 Jul 2020 00:49:55 +0430</pubDate>
            </item>
                    <item>
                <title>چرا کار پیدا نمی‌کنید؟</title>
                <link>https://virgool.io/@karademy/%DA%86%D8%B1%D8%A7-%DA%A9%D8%A7%D8%B1-%D9%BE%DB%8C%D8%AF%D8%A7-%D9%86%D9%85%DB%8C%DA%A9%D9%86%DB%8C%D8%AF-ozauk1bys2jt</link>
                <description>آیا تا به حال شده برای مدتی طولانی کار پیدا نکنید و از خودتان بپرسید چرا کار پیدا نمی‌کنم؟ می‌توان گفت دلیل کار پیدا نکردن شما شاید بدشانسی باشد، اما بعضی اوقات شانس در این مشکل دخیل نیست و شما در هنگام جستجوی شغلی خود مرتکب اشتباهاتی شده‌اید و یا به مواردی توجه نکرده‌اید که در تصمیم‌گیری مسئولان استخدام بسیار موثر هستند.در این مقاله مهم‌ترین مواردی که در استخدام نشدن‌تان موثر خواهند بود را با یکدیگر بررسی خواهیم کرد. بنابراین اگر سوال چرا کار پیدا نمی‌کنم؟ ملکۀ ذهن شما شده است، مطالعۀ این مطلب را از دست ندهید.صلاحیت کافی برای آن فرصت شغلی را نداریدمطمئناً نیاز نیست که همۀ مهارت‌ها و صلاحیت‌های شغلی لازم که در آگهی شغلی آمده است را داشته باشید، اما مطمئناً لازم است که از درصد بالایی از آن‌ها برخوردار باشید. بنابراین توصیه می‌شود تنها برای شغل‌هایی درخواست بفرستید که حداقل 90% شرایط و صلاحیت‌های مورد نظر را داشته باشید (البته در نظر داشته باشید که در مشاغل تخصصی این اعداد می‌توانند پایین‌تر هم باشند).اگر در قسمت شرح وظایف شغلی بین 3 تا 5 سال سابقه درخواست شده و شما 2 سال و نیم سابقۀ کاری دارید، می‌توانید این میزان را کافی بدانید. اما اگر تنها 6 ماه سابقه کار دارید، وقت خود را برای فرستادن درخواست برای چنین فرصت شغلی تلف نکنید. مطمئن باشید با 6 ماه سابقه استخدام نخواهید شد.توانایی شما بالاتر از نیاز شرکت استشاید به نظر غیرمنطقی برسد، اما بسیاری از کارفرمایان شما را به خاطر سابقه کاری زیاد یا مدرک تحصیلی بالا نمی‌پذیرند. به خاطر داشته باشید که کارفرمایان و استخدام‌کنندگان عموماً به دنبال فردی هستند که برای آن شغل تلاش کرده و مدام پیشرفت کند. برای مثال اگر شما کارشناس ارشد بازاریابی باشید و برای شغلی مانند کار در مرکز تماس تلفنی درخواست داده باشید، کارفرما احتمالاً تصور می‌کند این کار برای شما کسل‌کننده خواهد بود و شما را استخدام نخواهد کرد.اگر تصور می‌کنید توانایی شما بسیار بالاتر از فرصت شغلی مورد نظر است، حتماً این موضوع را در بخش اول رزومه خود قید کرده و به کارفرما توضیح دهید که دلیل درخواست شما برای این شغل چیست. در غیر این صورت به احتمال بسیار بالا، کارفرما شما را استخدام نخواهد کرد.شما متاسفانه برای چند عنوان شغلی در یک شرکت درخواست فرستاده‌ایدفرض کنید شما برای موقعیت شغلی مورد نظرتان در یک شرکت درخواست می‌فرستید و از همه نظر هم شایسته این شغل بوده و صلاحیت کافی برای انجام آن را دارید. اما اشتباه شما از لحظه‌ای شروع می‌شود که هر فرصت شغلی که این سازمان برای آن درخواست نیرو می‌کند، شما برای آن درخواست می‌فرستید. اگر اسم شما در میان متقاضیان همه بخش‌ها دیده شود، شانس شما برای استخدام پایین و پایین‌تر می‌آید.سازمان‌ها اغلب به دنبال افرادی هستند که در کاری خاص تخصص دارند و برای همان کار هم درخواست فرستاده‌اند. ارسال درخواست برای چند عنوان شغلی در یک سازمان، باعث می‌شود کارفرمایان تصور کنند شما تنها به دنبال پیدا کردن شغل هستید و نوع و عنوان شغلی برایتان اهمیت چندانی ندارد. بنابراین پس از استخدام هم از این شغل لذت نخواهید برد. بنابراین شاید این موضوع پاسخ سوال چرا کار پیدا نمی‌کنم؟ باشد.رزومۀ شما مرتب و خوانا نیستدر زندگی روزمرۀ ما، اشتباهات تایپی مشکل مهمی به حساب نمی‌آیند. با این حال، وجود چنین اشتباهاتی در رزومه بحثی متفاوت است.وجود داشتن یا نداشتن اشتباه تایپی در رزومه ممکن است وضعیت شما را تغییر دهد. شاید باورش برایتان سخت باشد اما اینکه به مصاحبه دعوت شوید یا درخواست شما رد شود، ممکن است به یک اشتباه تایپی وابسته باشد.بنابراین هیچ وقت رزومه‌ای که از نظر دیکته و دستور زبان بازخوانی و اصلاح نشده را برای درخواست شغلی ارسال نکنید. رزومه خود را برای یکی از دوستان خود که به دستور زبان و علایم سجاوندی مسلط است فرستاده تا آن را به دقت مورد بررسی قرار دهد.قالب رزومه شما نیز بسیار اهمیت دارد. نیازی نیست که رزومه‌تان رنگارنگ و شلوغ باشد، رزومه‌ باید به راحتی قابل خواندن باشد. اگر رزومه شما مرتب و منظم نباشد و از قالب‌های درست پیروی نکرده باشد، ریسک انتخاب نشدن شما بالاتر می‌رود.پیشنهاد می‌کنیم که پیش از ارسال رزومه خود، یک بار مطلب چگونه رزومه‌ای بنویسیم که مورد توجه کارفرمایان قرار گیرد را مطالعه بفرمایید.نامۀ همراه یا Cover Letter جذابی ننوشته‌ایدهمه فرصت‌های شغلی موجود از شما نامه اختصاصی نمی‌خواهند، اما اگر این درخواست را از شما داشته باشند، باید حتماٌ این کار را انجام دهید، در غیر این صورت احتمال استخدام نشدن شما بالا خواهد رفت.در صورتی که صحبتی از وجود یا عدم وجود نامۀ اختصاصی در ابتدای رزومه نشده بود، حتماً این نامه را در ابتدای رزومه خود قرار دهید. نامه اختصاصی همراه رزومه شما، نباید دقیقاً اطلاعات رزومه شما را تکرار کرده باشد، این کار تنها باعث می‌شود وقت کارفرما را هدر رود.نامه همراه رزومه باید نشان دهد که شما گزینه‌ای بسیار مناسب برای آن موقعیت شغلی هستید، این نامه باید نیازهای کارفرما را در خود جا داده و همچنین مدارک تحصیلی شما را مطابق با آن نیازها جلوه دهد.به یاد داشته باشید که نباید ادعا کنید بهترین فرد برای آن موقعیت شغلی هستید، زیرا شما از وضعیت رقبای خود خبری ندارید و این ادعای شما برای کارفرما خنده‌دار خواهد بود.دلیل ترک شغل قبلی خود را نمی‌توانید توضیح دهیداز دست دادن شغل اتفاقی است که برای بسیاری از افراد رخ می‌دهد. فارغ از اینکه از دست دادن شغل خارج از اختیار فرد بوده یا به خاطر اشتباه او اتفاق افتاده است، فرد در حال حاضر بیکار است. بنابراین او ناچار است دلیلی برای ترک کار خود ارائه کند و اگر عامل این ترک کار خود او بوده، چه تضمینی وجود دارد، او از شغل جدید خود نیز استعفا ندهد.استخدام شدن در زمانی که بیکار هستید به خودی خود استخدام را مشکل می‌کند. اما اگر عامل ترک کار، خود شما و استعفایتان باشد، باید دلیل قانع‌کننده‌ای برای این کار ارائه نمایید. اگر دلیل شما برای استعفا، رفتارهای فاجعه رئیس‌تان باشد، سازمان جدید به شما شانسی نخواهد داد و شما استخدام نمی‌شوید.سابقه و پیشینه شغلی شما ثبات ندارداگر دانشجو یا تازه فارق‌التحصیل باشید، منطقی است که چند دوره کوتاه کارآموزی و شغل تابستانی داشته باشید. اما اگر این شرایط را نداشته باشید آیا پیشینه شغلی بدون ثبات توجیهی دارد؟نکته‌ای که لازم است حتماً مدنظر قرار بدهید این است که حداقل باید یک سال در یک شغل باقی بمانید. اگر شغل قبلی‌تان یک سال یا کمتر زمان برده است، بهتر است که در شغل بعدی حداقل 3 سال باقی بمانید. اگر آمار شغلی شما به کارفرما نشان دهد که به اندازه کافی به سازمان وفادار نخواهید بود و اختصاص هزینه و زمان برای آموزش شما برای سازمان مقرون به صرفه نیست، مطمئن باشید که استخدام نخواهید شد.انتظار دستمزدی نامعقول داریدبیشتر سازمان‌ها از شما انتظار دارند که در درخواست شغلی خود دستمزد مورد نظرتان و همچنین دریافتی‌های سابق خود را درج نمایید. اگر شغل‌هایی که برای آن‌ها درخواست فرستاده‌اید، پرداختی‌شان از درخواست شما کمتر باشد، مطمئناً درخواست شما رد خواهد شد.هیچ کارفرمایی دوست ندارد در عین اینکه می‌داند نمی‌تواند بر سر دستمزد با کارجو به نتیجه برسد، وقت خود را برای مصاحبه کردن با او هدر دهد. حتی اگر دریافتی سابق شما با مبلغ اعلام شده برای فرصت شغلی فاصله زیادی داشته باشد، اما حقوق درخواستی با مبلغ اعلام شده هم‌خوانی داشته باشد، کارفرما احساس می‌کند شما این کاهش دستمزد را قبول نخواهید کرد، بنابراین با شما تماس نخواهد گرفت.بنابراین اگر نگران استخدام شدن خود هستید، علاوه بر اینکه باید دستمزد درخواستی خود را واقع‌گرایانه اعلام کنید، نباید بر روی حقوق و دستمزد سابق خود تاکید داشته باشید.مدام با کارفرما تماس می‌گیرید و برای او آزاردهنده هستیدهر درخواست شغلی ممکن است استرس زیادی را به شما تحمیل کند و شما مدام منتظر مشخص شدن وضعیت‌تان باشید. این استرس و نگرانی تا جایی پیش می‌رود که شما مدام با کارفرما تماس گرفته و پیگیر نتیجه می‌شوید.باید در نظر داشته باشید، کارفرمایان زمان کافی برای صحبت کردن با تمام متقاضیان را نخواهند داشت، به خصوص زمانی که این تماس‌ها ادامه پیدا می‌کند و تعداد آن‌ها زیاد می‌شود. تماس بیش از حد با کارفرما باعث عصبانیت کارفرما شده و او را از استخدام شما منصرف خواهد کرد.اگر در پیدا کردن شغل دچار مشکل شده‌اید، پیشنهاد می‌کنیم لیست داده شده را با دقت بیشتری مطالعه کرده و تا جایی که می‌توانید این مشکلات را حل کنید تا نهایتاً بتوانید شانس استخدام شدن خود را بالاتر ببرید.منبع: https://bit.ly/33RFuboبرای مطالعه پست‌های بیشتر ما را در وبلاگ کارادمی و یا در ویرگول دنبال کنید.</description>
                <category>Karademy Coding Bootcamp</category>
                <author>Karademy Coding Bootcamp</author>
                <pubDate>Sun, 29 Mar 2020 11:45:48 +0430</pubDate>
            </item>
                    <item>
                <title>پروژه‌های برنامه نویسی Front-End برای دوران قرنطینه</title>
                <link>https://virgool.io/@karademy/%D9%BE%D8%B1%D9%88%DA%98%D9%87%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-front-end-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AF%D9%88%D8%B1%D8%A7%D9%86-%D9%82%D8%B1%D9%86%D8%B7%DB%8C%D9%86%D9%87-klr4k5qhqqfk</link>
                <description>ویروس کرونا در این روزها همه ما را خانه نشین کرده و دل و دماغ را از همه ما گرفته. بیاید کمی هم جنبه‌های دیگر را نیز ببینیم و این شرایط را به نفع خودمان تغییر دهیم. می‌پرسید چطور. خب، حال که فرصت بیشتری برای یادگیری داریم پس چرا برنامه نویسی تمرین نکنیم. آن هم برنامه نویسی وب. هم چیزی می‌سازیم هم چیزی یاد می‌گیریم که به درد بخور باشد. در این نوشته چند ایده پروژه را مطرح می‌کنیم تا بتوانیم هم یاد بگیریم و هم از کسالت قرنطینه در امان باشیم. در ضمن حال ویروس کرونا را هم بگیرم. برخی از پروژه ها با CSS/HTML و یا با استفاده از یک فریم‌ورک قابل انجام است و برخی دیگر نیاز به نوشتن جاوا اسکریپت دارد. خلاق باشید و از این ایده‌ها بتوانید ایده‌های دیگری نیز ایجاد کنید. برای این که یادگیری بهتری داشته باشید نیاز است تا یک پروژه را انتخاب و برنامه ریزی کنید. هر روز زمان مشخصی را برای پیشبرد پروژه اختصاص دهید و حتما یک Deadline برای انجام کار اختصاص دهید. سعی کنید تا نهایت ممکن بر روی جزییات کار کنید و به جستجو و حل چالش‌ها بپردازید. این ایده‌ها برای برنامه نویسی تحت وب و Front-End است و سطح مبتدی یا متوسط را پوشش می‌دهد.پروژه اول: پیاده سازی layout‌های مختلفاجازه دهید ابتدا با layout شروع کنیم. سعی کنید تا با استفاده از HTML و CSS چند چیدمان در لینک زیر را پیاده کنید: https://www.free-css.com/free-css-layouts/page1. پس از پیاده کردن حداقل ۱۰ layout، آنها را  راست به چپ کنید تا با متن فارسی درست نمایش داده شود. این پروژه کوچک و ایجاد دید مناسب در چیدمان بسیار خوب است.پروژه دوم: پیاده سازی یک صفحه سادهدر این پروژه قرار است یک صفحه بسیار ساده را طراحی کنید که در این لینک قرار دارد https://www.free-css.com/free-css-templates/page237/white-edition. این صفحه نقطه خوبی برای چیدمان یک صفحه واقعی است. سعی کنید این صفحه را برای فارسی نیز پیاده سازی کنید.پروژه سوم: ساخت یک صفحه شخصی برای خودتانچه خوب خواهد بود تا یک صفحه شخصی داشته باشیم. با استفاده از HTML و CSS3 یک صفحه درست کنیم تا بتوانیم خودمان را معرفی کنیم. از طرح در این وب سایت استفاده کنید: https://www.free-css.com/free-css-templates/page249/magazee. طرح‌های دیگری نیز در سایت هست که حتما به آنها نیز سر بزنید ولی برای شروع سعی کنید از طرح‌های ساده‌تر استفاده کنید. برای این که کمی پیشرفته‌تر کار کنیم صفحه را responsive یا واکنشگرا کنید. شما می‌توانید از Flex box در CSS استفاده کنید. خلاق باشید و با رنگ‌ها بازی کنید و از رنگ‌های دلخواه خود استفاده کنید. نکته مهم این است که نوشته‌ها خوانا باشند. این پروژه نقطه خوبی برای یادگیری خواهد بود و شما در آن بحث های layout یا چیدمان عناصر صفحه و استفاده از قدرت CSS را تمرین خواهید کرد.پروژه چهارم: پیاده سازی یک وب سایت One-page برای یک شرکتتصور کنید مشتری با شما تماس گرفته و از شما می‌خواهد یک وب سایت شرکتی با استفاده از طراحی که به شما می‌دهد ایجاد کنید. این طرح در این لینک قرار دارد: https://colorlib.com/wp/template/nitro/ سعی کنید تا جای ممکن طرح را پیاده سازی کنید. بخری از بخش‌ها مانند منو بالا یا قسمت our features نیاز به جاوا اسکریپت دارد که در این مرحله می‌توانید آن را نادیده بگیرید و بیشتر بر روی پیاده سازی اجزاء پیج با استفاده از HTML و CSS تمرکز کنید.پروژه پنجم: کمی جاوا اسکریپت برای فرمدر این لینک یک فرم تماس داریم  https://colorlib.com/preview/#nitro قرار است شما این فرم را پیاده سازی کنید و بعد با استفاده از جاوا اسکریپت (و نه jQuery) در زمان کلیک شدن فرم را بررسی کنید تا:۱- همه field ها پر شده باشند.۲- ایمیل فرمت درست باشد.اگر field خالی بود باید border field  به رنگ قرمز در بیاید.پروژه ششم: ایجاد یک استاپ واچحتما بر روی موبایل یک Stopwatch دارید. با شروع میلی ثانیه دقیقه و ساعت رو نشان می‌دهد. سعی کنید با استفاده از جاوا اسکریپت یک Stopwatch درست کنید که یک دکمه شروع دارد. در ضمن یک دکمه pause دارد که به محض کلیک شدن عدد کنونی را در یک جدول زیر دکمه‌ها درج می‌کند و با زدن دکمه ادامه تایمر مجدد شمارش را ادامه می‌دهد. در نهایت نیز یک دکمه Stop داریم که تایمر را reset می‌کند و جدول پایین را نیز پاک می‌کند.در آخر این‌ها نمونه پروژه‌هایی برای ایده دادن به شماست تا از جایی شروع کنید و یاد بگیرید. هر چه تمرین بیشتر داشته باشید دید بهتری پیدا خواهید کرد. تجربه کردن کلید موفقیت شماست. ما در بوت کمپ برنامه نویسی کارادمی پروژه‌های متنوعی داریم که در کنار مربی می‌توانید آنها را بیاموزید پس حتما ما را دنبال کنید و به وب سایت ما نیز سر بزنید.برای مطالعه پست‌های بیشتر ما را در وبلاگ کارادمی و یا در ویرگول دنبال کنید.</description>
                <category>Karademy Coding Bootcamp</category>
                <author>Karademy Coding Bootcamp</author>
                <pubDate>Tue, 17 Mar 2020 10:57:13 +0330</pubDate>
            </item>
                    <item>
                <title>فرآیند طراحی وب‌سایت در ۷ مرحله ساده</title>
                <link>https://virgool.io/wptips/%D9%81%D8%B1%D8%A2%DB%8C%D9%86%D8%AF-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D9%88%D8%A8%D8%B3%D8%A7%DB%8C%D8%AA-%D8%AF%D8%B1-%DB%B7-%D9%85%D8%B1%D8%AD%D9%84%D9%87-%D8%B3%D8%A7%D8%AF%D9%87-xiqu2hfkj9ca</link>
                <description>دنبال کردن فرآیند طراحی وب‌سایتی با ساختاری صحیح، در ارائه سریع‌تر و کارآمدتر وب‌سایت‌های موفق‌تر به شما کمک زیادی خواهد کرد. طراحان وب‌سایت اغلب بر این باورند که پروسه طراحی وب‌سایت با تمرکز بر روی پارامترهای تکنیکال همچون فریم‌ها، کدها و مدیریت محتوای وب‌سایت میسر است.همچنین یک طراحی فوق‌العاده تنها به درست کردن دکمه‌های شبکه‌های اجتماعی و یکپارچه کردن آن‌ها نمی‌پردازد بلکه یک طراحی ماهرانه در واقع ساخت وب‌سایتی است که با یک استراتژی جامع و هماهنگ توام باشد.وب‌سایت‌هایی که به خوبی طراحی شده‌اند چیزی فراتر از زیبایی را ارئه می‌کنند. آن‌ها بازدیدکنندگان را جذب و به افراد کمک می‌کنند تا محصول، شرکت و نام تجاری یا برندینگ را از طریق شاخص‌های مختلف از جمله تصاویر، متن و تعاملات درک کنند. به این معنی که هر عنصر از سایت شما باید به صورت هدفمند کار کند.اما چگونه می‌توانیم ترکیب هماهنگی از عناصرها را به دست آوریم؟برای اینکه بتوانیم به هارمونی مناسبی از المان‌ها دست پیدا کنیم باید از طریق یک فرآیند طراحی جامع وب‌سایت که هم شکل و هم عملکرد و کارایی بهتر وب‌سایت را موجب می‌شود، اقدام کنیم. از دیدگاه ما طراحی وب‌سایت به ۷ مرحله نیاز دارد:۱- شناسایی هدفزمانی که با مشتری در ارتباط هستیم می‌بایست اهدافی که باید حاصل شود را به طور دقیق مشخص شود.۲- تعیین طرح نهاییهنگامی که اهداف سایت را شناسایی و نسبت به آن آگاهی پیدا کردیم، در این صورت می‌توانیم دامنه و طرح نهایی پروژه‌ی خود را تعریف کنیم. مثلاً چه صفحاتی و یا چه ویژگی‌هایی برای سایت نیاز است تا به انجام این اهداف و زمان‌بندی برای رسیدن به آن منجر شود.۳- ساخت وایرفریم و نقشه سایتپس از اینکه اهداف و طرح سایت‌مان را به روشنی تعریف کردیم، حالا می‌توانیم به طور دقیق نقشه سایت را طراحی کرده و میزان وابستگی المان‌ها، محتوا و ویژگی‌هایی که در مرحله قبل تعیین کردیم را مشخص کنیم. در مورد «وایر فریم» باید بگوییم که این مرحله از طراحی وب، یک طرح کلی از طرح‌بندی صفحه وب است که به طراحی و توسعه وب سایت کمک می‌کند. بنابراین برای طراحی یک سایت مؤثر، هرگز نباید از این مرحله غافل شویم.۴- تولید محتواحال ما تصویر بزرگ‌تر و بهتری از وب‌سایت در ذهن خود داریم و زمان آن فرا رسیده تا برای صفحات شخصی خود تولید محتوا کنیم. همیشه باید سئو یا بهینه‌سازی موتورهای جستجو را برای سایت خود در نظر داشته باشیم و سعی کنیم آن را حفظ کنیم تا تمامی صفحات بر یک موضوع واحد و منحصربه‌فرد متمرکز باشد. این مسئله مهمی است که محتوای تازه و واقعی داشته باشید چرا که برای کار در مرحله بعدی به آن نیاز خواهید داشت.۵- عناصر بصریبا در اختیار داشتن معماری سایت و برخی از مطالب و محتوا در جایگاه مناسب خود، ما می‌توانیم شروع به کار بر روی نام تجاری و برندینگ کسب و کار خود کنیم. بسته به مشتری، این مورد هم ممکن است در حال‌حاضر به خوبی تعریف شده باشد، اما احتمالاً شما سبک بصری یا (visual style) را از پایه و اساس تعریف کرده‌اید. ابزارهایی مانند سبک کاشی‌ها (style tiles)، کلاژهای عنصر (element collages) و moodboards نیز می‌توانند در این فرایند کمک کننده باشند.۶- تست و آزمایشتا این مرحله، شما تمام صفحات خود را تعریف کرده‌اید و نحوه نمایش آن‌ها را برای بازدیدکننده‌گان سایت تعریف کرده‌اید، بنابراین زمانی لازم دارید تا مطمئن شوید همه‌ی کارها به درستی انجام شده است. مرورگرهای سایت خود را در دستگاه‌های مختلف به صورت دستی با خزنده‌های اتوماتیک سایت ترکیب کنید تا همه چیز را از مسائل مربوط به تجربه کاربر گرفته تا لینک‌های ساده شکسته شده، شناسایی کنید.۷- راه‌اندازی!هنگامی که همه چیز به زیبایی کار می‌کند، وقت آن است که اقدام به طرح‌ریزی و اجرای سایت برای راه‌اندازی کنیم! آخرین مرحله از فرآیند طراحی سایت باید شامل برنامه‌ریزی هم در زمان راه‌اندازی و هم در راهبردها و استراتژی‌های ارتباطی باشد. زمانی‌که شما وب‌سایت خود راه‌اندازی می‌کنید، چگونه از دنیا با خبر می‌شوید؟ پس وقت آن است که شکاف‌ها را از بین ببریم.ترجمه‌ای از:7 simple steps to the web design process, webflow blogمنبع: https://bit.ly/325kxJhبرای مطالعه پست‌های بیشتر ما را در وبلاگ کارادمی و یا در ویرگول دنبال کنید.</description>
                <category>Karademy Coding Bootcamp</category>
                <author>Karademy Coding Bootcamp</author>
                <pubDate>Wed, 19 Feb 2020 12:31:23 +0330</pubDate>
            </item>
                    <item>
                <title>برنامه نویسی اندروید و پیش‌نیازهای یادگیری آن چیست؟</title>
                <link>https://virgool.io/coderlife/%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-%D9%88-%D9%BE%DB%8C%D8%B4%D9%86%DB%8C%D8%A7%D8%B2%D9%87%D8%A7%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D8%A2%D9%86-%DA%86%DB%8C%D8%B3%D8%AA-nbf3nmavhpar</link>
                <description>اندروید (Android) در اصل یک سیستم عامل متن باز و محصول شرکت گوگل است که توسط این شرکت رشد و توسعه داده شده و بر پایه هسته لینوکس طراحی و ساخته شده است. یکی از دلیل‌هایی که این سیستم به متن باز مشهور شد به خاطر این است که سورس آن به صورت عموم در دسترس همه مردم قرار دارد و برای استفاده از آن به هیچ عنوان نیازی به دریافت مجوز یا هزینه خاصی نیست.همان طوری که بیان کردیم این زبان برنامه نویسی یک سیستم عامل متن باز است که هر کاربری در هر جای دنیا می‌تواند با کمی تغییر در سورس آن، یک برنامه و اپلیکیشن جدید با تغییرات جدید به وجود بیاورد.مزیت‌های سیستم عامل اندرویدیکی از مزیت‌های متن باز بودن اندروید این است که تمام کاربران و توسعه‌دهنده‌ها در سراسر دنیا می‌توانند از سورس آن استفاده کنند و در ارتقاء بخشیدن این برنامه به دیگر برنامه‌نویس‌ها کمک کنند. یکی دیگر از مزیت‌های متن باز بودن اندروید این است که باعث شده تا فقط از آن در سیستم عامل گوشی های لمسی و هوشمند استفاده نشود و در دیگر دستگاه‌های دیگر مانند تبلت‌ها، ساعت‌ها، تلویزیون‌ها، یخچال‌ها و دیگر دستگاه‌های هوشمند هم استفاده شود که این نشان از انعطاف‌پذیری برنامه نویسی اندروید است.مزیت انعطاف پذیری این سیستم عامل باعث شده تا برنامه‌نویس‌ها خیلی سریع تر و راحت‌تر بتوانند اپلیکیشن‌های خودشان را توسعه دهند تا به این وسیله بتوانند از تمام ویژگی‌ها و توان یک گوشی هوشمند بهره کافی را ببرند. انعطاف‌پذیری به این معنا است که سازنده‌ها، توسعه‌دهنده‌ها و برنامه‌نویس‌ها هم این توانایی را دارند که تغییراتی در برنامه اصلی ایجاد کنند و همچنین اینکه سیستم عامل اندروید هیچ محدودیتی را برای کاربران به هنگام شخصی‌سازی برنامه‌ها ایجاد نمی‌کند.با تعاریفی که از زبان برنامه نویسی اندروید به شما ارائه شد باید عنوان کرد که ساخت نرم افزار با این زبان برنامه نویسی ساده و راحت نخواهد بود و در برخی موارد برای تبدیل یک ایده به یک برنامه می‌بایست کدنویسی و طراحی‌های خاصی را انجام داد. بنابراین باید برنامه نویسی مختلفی از جمله جاوا، سی شارپ و کاتلین را یاد بگیرید تا بتوانید نرم افزارهای اندرویدی را ایجاد کنید. اما در این بین بهترین زبان برای توسعه این نرم افزارها، زبان برنامه نویسی جاوا و کاتلین است چرا که این دو برنامه توسط شرکت گوگل به عنوان زبان های رسمی توسعه اپلیکیشن های اندروید معرفی شده است.پیش نیاز برنامه نویسی اندرویددر همین ابتدای کار باید عنوان کرد که یکی از پیش‌نیازهای اصلی زبان برنامه نویسی اندروید این است که زبان برنامه نویسی جاوا را یاد بگیرید و اجازه دهید یک مقدار رُک صحبت کنیم: یکی از راه‌های نوشتن‌های اپلیکیشن‌های اندروید این است که حتماً برنامه نویسی جاوا بلد باشید و در کل این مسیری است که باید بگذرانید.اما یک نکته ی مهم را فراموش نکنید:اگر نگران این هستید که برای یادگیری برنامه نویسی اندروید حتماً باید به صورت کامل و صد در صد به زبان برنامه نویسی جاوا مسلط باشید سخت در اشتباهید چرا که برای ساخت یک اپلیکیشن همین که به مفاهیم پایه‌ای برنامه نویسی جاوا آشنا باشید کافی است. پس این را فراموش نکنید که پیش نیاز زبان برنامه نویسی اندروید این است که حتماً اصول و مفاهیم پایه‌ای زبان برنامه نویسی جاوا را بلد باشید.در کل اگر مایل به یادگیری برنامه نویسی اندروید هستید و از زبان برنامه نویسی جاوا هیچ اطلاعی ندارید قطعاً در ادامه راه به مشکل بر می‌خورید و این می‌تواند شمارو سرخورده و دلسرد کند پس حتماً به یادگیری این پیش نیاز اهمیت بدهید.اگر بتوانید مفاهیم و اصول اولیه و پایه‌ای برنامه نویسی جاوا را یاد بگیرید هم اعتماد به نفس بیشتری به دست خواهید آورد و هم اینکه کار ساخت اپلیکیشن خیلی خیلی راحت‌تر پیش خواهد رفت. شاید با نداشتن دانش جاوا بتوانید به یک برنامه نویس اندروید تبدیل شوید اما باید به این نکته توجه داشته باشید که این امکان هم وجود دارد که روند طراحی یک اپلیکیشن به کندی پیش خواهد رفت و سرعت حرکت شما خیلی کمتر می‌شود.اما اگر در همین مسیر که مفاهیم و اصول پایه‌ای زبان برنامه نویسی جاوا را فرا می‌گیرید بتوانید با زبان XML هم آشنا شوید به طور حتم وضعیت خیلی بهتری را برای ساخت اپلیکیشن خواهید داشت. باید عنوان کرد که XML یک زبان نشانه‌گذاری توسعه‌پذیر است که به وسیله آن به راحتی می‌توانید اجزاء (UI رابط کاربری) برنامه و اپلکیشن اندروید خودتان را طراحی کنید.تا به اینجا به این موارد اشاره کردیم که پیش‌نیازهای زبان برنامه نویسی اندروید شامل چه مواردی هست و به این نکته اشاره کردیم که حتماً باید زبان برنامه نویسی جاوا حتی اگر به صورت پایه‌ای هست را فرا بگیرید تا در ادامه مسیر به مشکل بر نخورید.اما حالا به این موضوع اشاره می‌کنید که چه مفاهیمی از زبان جاوا برای زبان برنامه نویسی اندروید کاربرد دارد:برنامه نویسی اندروید را از کجا شروع کنیم؟اگر تصمیم گرفتید که برای یادگیری و آشنایی با برنامه نویسی اندروید قدم بردارید اما نمی‌دانید که باید از کجا شروع به کار کنید، در ادامه این مقاله می‌توان به برخی نکات اساسی برای شروع این برنامه نویسی و ساخت اپلیکیشن اشاره کرد تا بهتر بتوانید توانایی‌ها و مهارت‌های خودتان را در این مسیر ارتقاء ببخشید.نکته اول: پیدا کردن مهارت و یادگیری زبان‌های برنامه نویسی مورد نیازدر ایجاد کردن و ساختن یک برنامه و اپلیکیشن مخصوص اندروید به دو مهارت و توانایی و زبان برنامه نویسی وابسته است: اندروید و زبان برنامه نویسی جاوا. زبان برنامه نویسی جاوا در اصل زبانی است که در اندروید برای ساخت اپلیکیشن مورد استفاده قرار می‌گیرد اما در قسمت اندروید موارد دیگر عرض اندام می‌کند که شامل یادگیری مفاهیم و مبانی اندروید، یادگیری زبان برنامه نویسی XML برای طراحی برنامه و اپلکیشن و استفاده از مفاهیم و مبانی برنامه نویسی جاوا است.زمانی که زبان برنامه نویسی XML و جاوا را فرا گرفتید به این نیاز دارید که بتوانید نحوه ارتباط این دو زبان را به وسیله قواعد اندروید یاد بگیرید. شاید تصور کنید که یادگیری زبان XML خیلی سخت و دشوار باشد اما باید عنوان کنیم که یادگیری این زبان بسیار ساده و راحت است و پیشنهاد می‌کنیم که حتماً در حین ساخت اپلیکیشن این زبان را یاد بگیرید.نکته دوم: برای شروع به یادگیری برنامه نویسی اندروید چه کاری باید انجام داد؟اولین قدم برای یادگیری زبان برنامه نویسی اندروید این است که زبان برنامه نویسی جاوا را یاد بگیرید چرا که در این بین، راه میان بری وجود ندارد و شاید این تنها راه حل شما برای ساخت اپلیکیشن باشد.دو برنامه‌ای که از آن اسم بردیم به نام‌های اکلیپس و اندروید استودیو هر دو محیط‌هایی برای توسعه یکپارچه هستند و در حال حاضر این دو برنامه از بهترین‌ها به شمار می‌روند و برای نوشتن برنامه‌های جاوا پیشنهاد نمی کنیم که از برنامه‌های دیگر استفاده کنید به خاطر اینکه IDE‌هایی که در این دو برنامه وجود دارد فقط با یک کلیک ساده برنامه شما را کامپایل یا به اصطلاح کدها را به فایل‌های اجرایی تبدیل می‌کنند و این در صورتی است که در برنامه‌های دیگر هم باید یک کد برای اجرا نوشته شود و هم یک کد برای کامپایل.نکته سوم: مدت زمانی که طول می‌کشد تا به یک برنامه نویس اندروید تبدیل شویداگر قصدتان این است که به صورت حرفه‌ای به یک برنامه نویس تبدیل شوید باید حداقل دو ماه و روزی 4 ساعت وقت برای مطالعه و تمرین صرف کنید و هر روز به دنبال یادگیری باشید. شاید در اوایل کار به خاطر اینکه مبتدی هستید درک و فهم حل مشکلات به وجود آمده حتی اگر یک مشکل کوچک مثل ذخیره کردن داده، خیلی سخت و دشوار باشد اما به مرور زمان این مورد هم حل خواهد شد و به یک برنامه نویس حرفه‌ای اندروید تبدیل خواهید شد که درآمد زیادی را نصیب خودتان خواهید کرد.نکته چهارم: به دست آوردن بهترین منبع و مرجع برای پاسخگویی به سوالات پیش آمدهقطعاً اگر در برنامه نویسی، مبتدی و حتی حرفه‌ای هم باشید سوالات زیادی پیش روی شما خواهد بود که برای حل کردن این سوالات می‌توانید دست به دامن گوگل شوید که یکی از منابع بزرگ و عظیم از حل مشکلات و پاسخگویی به مشکلات است. اگر به دنبال بهترین پاسخ‌ها و حل مشکلات در مورد اندروید هستید می‌توانید به سایت استک اورفلو (Stackoverflow) بروید و اگر باز هم نتیجه دلخواهی که مد نظرتان هست را به دست نیاوردید می‌توانید از سایت ردیت (Reddit) استفاده کنید.مفاهیم شی‌گرایی جاوا ویژه برنامه نویسان اندرویدبه مفاهیم شی‌گرایی به صورت اختصاصی OOP گفته می‌شود که در اصل یکی از بخش‌های جداناپذیر از زبان برنامه نویسی جاوا به شمار می‌رود و به همین دلیل به هیچ عنوان نمی‌توان این مفاهیم را حذف کرد. در زیر بخش‌هایی از مفاهیم شی‌گرایی را برای شما بیان خواهیم کرد:- اشیاء و کلاس یا به اصطلاح Object &amp; Class- انتزاع یا به اصطلاح Abstraction- چند ریختی یا به اصطلاح Polymorphism- ارث بری یا به اصطلاح Inheritance- کپسوله‌سازی یا به اصطلاح Encapsulation- اینترفیس‌ها- مبحث Overridingمبانی و مفاهیم برنامه نویسی جاوادر مفاهیم و مبانی برنامه نویسی جاوا به تمام کلمات کلیدی جاوا از جمله کلمه کلیدی static، final، try، catch و غیره و همچنین انواع داده‌های اولیه از جمله Integers ،Floating point ، Boolean اشاره می‌شود.مفاهیم Type casting and Visibilityدر این مفهوم می‌توان عمل casting را اینگونه معرفی کرد: تبدیل یک شی از یک نوع خاص به یک شی از نوع دیگر.یادگیری مفاهیمی همچون آرایه‌ها و عملگرها (Arrays and Operators)در یادگیری زبان برنامه نویسی اندروید مفاهیم آرایه و عملگر به دسته‌های زیر تقسیم‌بندی می‌شوند:- آرایه تک بعدی (One Dimensional Array)- آرایه دو بعدی (Multidimensional Array) - عملگرهای محاسباتی (Arithmetic operators)- عملگرهای انتسابی (Assignment Operators)- عملگرهای رابطه‌ای (Relational Operators)مفاهیم عبارات کنترلی (Control Statements)این نوع عبارات به دو قسمت تقسیم‌بندی می‌شوند:قسمت اول: عبارات شرطی و انتخابی جاوا مانند switch، If-else ،  Ifقسمت دوم: عبارات تکرار در جاوا یا همان حلقه‌ها مانند While، do-while، forمفاهیم اصول کلاسدر برنامه نویسی جاوا که پیش‌نیاز زبان برنامه نویسی اندروید هم به حساب می‌آید بخشی به عنوان مفاهیم اصول کلاس وجود دارد که به قسمت‌های زیر دسته بندی می‌شوند.- ایجاد کلاس- تعریف اشیاء- متدها- درک static و متدها- متدهای دسترسی به کلاس- سازنده‌ها (Constructors) و زباله روبی (Garbage collection)مفاهیم و مبانی وراثت، اینترفیس و پکیج (Inheritance, Interface and package)- روش ایجاد اینترفیس- روش ایجاد پکیج در جاوا- روش استفاده از کلمه کلیدی super- کلاس‌های انتزاعی یا abstract- روش به ارث بردن کلاسمفاهیم چند نخی و مدیریت استثناءها (Multithreading and Exception Handling)- روش ایجاد Thread در جاوا- مدیریت Thread در جاوا- کار با دستورهای try-catch- روش ایجاد چند نخیمفهوهم Java Annotations and IOاین بخش از زبان برنامه نویسی جاوا هم به بخش‌های متعددی تقسیم‌بندی می‌شود. از جمله:InheritedOverrideDeprecatedSuppress WarningsReading writing FilesStreamsمفهوم Generics and Collection Classesمورد آخر از زبان جاوا که پیش‌نیاز یادگیری اندروید است به موارد زیر ختم می‌شود:Generic ClassesGeneric InterfacesThe Array List ClassThe Hash Set Classاین مواردی که در مورد مفاهیم پایه‌ای جاوا بیان شد در اصل همان پیش‌نیازهای زبان برنامه نویسی اندروید به شمار می‌رود تا به این وسیله اگر مایل به یادگیری برنامه نویسی اندروید بودید بتوانید با استفاده از زبان جاوا نیازهای اولیه برای ساخت اپلیکیشن را برطرف نمایید.منبع: https://bit.ly/3aG8PZxبرای مطالعه پست‌های بیشتر ما را در وبلاگ کارادمی و یا در ویرگول دنبال کنید.</description>
                <category>Karademy Coding Bootcamp</category>
                <author>Karademy Coding Bootcamp</author>
                <pubDate>Fri, 24 Jan 2020 15:15:58 +0330</pubDate>
            </item>
                    <item>
                <title>«طراحی مسطح» ترند پرطرفدار برای UI و UX در سال ۲۰۲۰</title>
                <link>https://virgool.io/DesignersCommunity/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D9%85%D8%B3%D8%B7%D8%AD-%D8%AA%D8%B1%D9%86%D8%AF-%D9%BE%D8%B1%D8%B7%D8%B1%D9%81%D8%AF%D8%A7%D8%B1-%D8%A8%D8%B1%D8%A7%DB%8C-ui-%D9%88-ux-%D8%AF%D8%B1-%D8%B3%D8%A7%D9%84-%DB%B2%DB%B0%DB%B2%DB%B0-glh8klc1wikv</link>
                <description>وقتی سبک‌ها و ترندهای پرطرفدار در سال 2019 را مشاهده می‌کردیم متوجه شدیم طراحی با استفاده از عناصر انسانی (استفاده از کاراکتر انسان در طراحی) بیشتر از سایر موضوعات توجه گرافیست‌ها و مخاطبان را توانسته بود به خود جلب کند. البته استفاده از تایپوگرافیِ اصولی و راحت تر کردن دسترسی پذیری نیز در کنار طرح اصلی، بهبود تجربه کاربری را رقم زده است. حال با فرا رسیدن سال 2020 احساس می‌کنیم این سبک از طراحی به اوج خود برسد و از این پس در تصاویر و Illustration‌های بیشتری شاهده استفاده از این سبک باشیم.طراحی مسطح در واقع نوعی طراحی مینیمال محسوب شده و مانند همیشه شعار «کمتر، بیشتر است» یا (less is more) بهترین توصیف برای این سبک از طراحی محسوب می‌شود. بنابراین دیگر لازم نخواهد بود تصاویر پیچیده طراحی کنید. بدون شک یک پالت رنگی محدود و ساده نیز پاسخگو خواهد بود. اما آیا اهمیت طراحی مسطح و تجربه کاربری حاصل از آن تنها به یک پالت محدود ختم می‌شود؟چرا طراحی مسطح (Flat) اینقدر محبوب است؟وقتی شرکت‌های بزرگی مانند Mailchimp و Slack طراحی مسطح را به اینترفیس و رابط کاربری خود وارد کردند، به مرور زمان طراحی فلت تبدیل به یک سبک رایج و پرطرفدار میان گرافیست‌ها شد. سادگی این سبک طراحی و کاراکترهای انسانی استفاده شده در آن به تنهایی کافی بود تا مخاطبان به آن‌ها توجه کنند و آن‌ها را دوست داشته باشند. اما هیچ چیز به اینجا ختم نمی‌شود. دلایل بیشتری وجود دارد که چرا این سبک از طراحی، اینقدر به سرعت محبوب شد و پیشرفت کرد.انعطاف پذیری و قابلیت ویرایش و شخصی سازی ساده: تصاویر استوک تا 90 درصد غیرقابل ویرایش و شخصی‌سازی هستند. این موضوع باعث می‌شود کسل کننده به نظر برسند. اما وکتورهایی که در طراحی رابط کاربری به کار می‌روند، قابلیت سفارشی‌سازی دارند و طراحان می‌توانند آنها را مطابق با ایده‌های خود در بیاورند و به شکل دلخواه در پروژه‌های خود استفاده کنند.منحصربفرد بودن: حتی اگر نخواهید یک وکتور جدید و اوریجینال ایجاد کنید و بخواهید از کتابخانه‌های آنلاین نمونه‌های آماده دانلود کنید، می‌توانید آنرا شخصی‌سازی کرده و در آن فردیت ایجاد کنید. اینگونه وکتورها می‌توانند یک هویت بصری زیبا، جذاب و قدرتمند برای شما به ارمغان بیاورند.هویت: تعداد زیرشاخه‌های زیادی در استایل‌های وکتورها وجود دارد که می‌توانید از بین آنها، هر کدام که بهتر برند شما را توصیف می‌کند، انتخاب کنید. همچنین می‌توانید استایل تصویر مورد استفاده را مناسب با نوع مخاطبان خود انتخاب کنید. در این صورت کاربران شما احساس بهتری هنگام کار با نرم افزار طراحی شده خواهند داشت.تطبیق پذیری (ریسپانسیو بودن): برای سازگار شدن با نمایشگرهای مختلف، تنها لوگو و جدول‌ها نیستند که اهمیت دارند. بلکه تصاویر نیز قسمت مهمی از برنامه هستند که باید خصوصیات واکنشگرایی برای آنها مدنظر گرفته شوند. وکتورهای مسطح بهتر از سایر طرح‌ها به شما این امکان را می‌دهند که آن ها را سریع و راحت با صفحه‌های مختلف هماهنگ کنید.وکتور مسطح را از کجا پیدا کنم؟همانطور که گفتیم وکتورهای طراحی رابط کاربری در تنوع بسیار زیادی و توسط وب‌سایت‌های مختلف ارائه می‌شوند و برای پیدا کردن چنین تصاویری با هیچ کمبود ایده‌ای مواجه نخواهید شد. از آنجا که اکثر این طرح ها به صورت کانسپت طراحی می‌شوند، به صورت رایگان در دسترس قرار دارند و برای استفاده از آنها نیز معمولا با محدودیت کپی رایت مواجه نخواهید شد. در ادامه چند وب‌سایت و ابزار آنلاین برای پیدا کردن وکتورهای مورد استفاده در طراحی UI را به شما معرفی می‌کنیم.یکی از ابزارهای پرطرفدار در این زمینه Vector Creator وب سایت icons8 می‌باشد. به کمک این ابزار شما می‌توانید وکتور مورد نظر خود را از بین 12 استایل مختلف انتخاب کنید و آنرا به صورت آنلاین شخصی‌سازی کنید. همچنین می‌توانید این وکتورها را در کنار آیکون‌های متنوع و جذابی که وجود دارد میکس کنید و خروجی نهایی را با فرمت دلخواه دریافت کنید.کتابخانه آنلاین Shape نیز با بیش از 2000 طرح قابل شخصی‌سازی یکی دیگر از وب‌سایت‌هایی است که باید حتما آنرا امتحان کنید. این وکتورها معمولا مناسب طراحی اینترفیس و رابط کاربری در نظر گرفته شده اند.حال اگر به دنبال یک ابزار آنلاین هستید که مشابه نرم افزارهای Sketch یا Figma عمل کند، Smash Illustrations بهترین گزینه خواهد بود. این وب‌سایت از کتابخانه‌ی گسترده ای برخوردار است و دارای انواع طرح‌های رایگان و پولی است که می‌توانید برای خود انتخاب کنید و آن‌ها را مطابق نیاز خود شخصی‌سازی کنید.در نهایت، DrawKit نیز یکی از ابزارهای مورد علاقه طراحان است. در این وب‌سایت می توانید وکتورهای رایگان با فرمت SVG را در دو استایل مختلف پیدا کنید. همچنین امکانات پیشرفته شخصی‌سازی مانند انیمیشن نیز در آن نیز وجود دارد که ابته در نسخه پیشرفته و پولی در دسترس است.ساخت دستی وکتور و تصاویر مورد نیازاگر در نقاشی و یا illustration مهارت دارید، می توانید تصاویر شخصی خود را بسازید و اینترفیس خود را در بالاترین از شخصی سازی قرار دهید. برای طراحی چنین تصاویری حتما باید از گرافیک برداری (پردازش بر پایه وکتور) استفاده کنید. این موضوع به شما کمک خواهد کرد تصاویری کاملا مقیاس پذیر داشته باشید و آنرا در هر اندازه ای که خواستید بدون افت کیفیت مورد استفاده قرار دهید. برای انجام اینکار موارد و توصیه های زیر را رعایت کنید.با طرح‌های هندسی شروع نکنید: سعی کنید طرح ابتدایی خود را به همراه جزئیات، حرکات و ترکیب‌بندی صورت نقاشی درآورید. کمی با آن بازی کنید و به طور کامل مورد آزمایش قرار دهید تا بتوانید بهترین چشم انداز ممکن را ایجاد کنید. سپس آن را به داخل نرم افزار بیاورید و به صورت برداری طرح نهایی را ایجاد کنید.طرح خود را تجزیه و تحلیل کنید: همانطور که گفتیم سبک طراحی مسطح دارای چندین زیر شاخه و استایل مختلف است. سعی کنید استایلی را در پیش بگیرید که به بهترین شکل ممکن شما و مخاطبان شما را معرفی می‌کند.ایده داشته باشید: پشت هر طرح با ارزشی یک ایده خوب وجود دارد. سعی کنید کار خود را با یک ایده مناسب شروع کنید و آنرا در لا‌به‌لای عناصر طرح پنهان کنید. اینگونه طرح چشم‌نواز‌تری خواهید داشت.یکنواخت طراحی کنید: در طراحی رابط کاربری و عناصر آن یکنواختی و هماهنگی از اهمیت ویژه‌ای برخوردار است. سعی کنید یک پالت رنگی اختصاصی برای کار در نظر بگیرید و بافت‌ها و سایه‌ها را در کل طرح به شکل هماهنگ به کار ببرید. اینگونه طرح شما زیباتر و قدرتمندتر جلوه خواهد کرد.ترجمه‌ بر اساس&amp;quot;Flat Illustrations, a Design Trend for 2020 and Beyond&amp;quot; by Ksenia Pedchenko @ TheStartupمنبع: https://bit.ly/2FdiwQGبرای مطالعه پست‌های بیشتر ما را در وبلاگ کارادمی و یا در ویرگول دنبال کنید.</description>
                <category>Karademy Coding Bootcamp</category>
                <author>Karademy Coding Bootcamp</author>
                <pubDate>Sat, 04 Jan 2020 09:11:43 +0330</pubDate>
            </item>
                    <item>
                <title>انواع داده در پایتون</title>
                <link>https://virgool.io/@karademy/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D8%AF%D8%B1-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-wwpzmrgrdgtw</link>
                <description>در دنیای برنامه نویسی انواع داده از مسائل پایه ای و بسیار مهم است و تقریبا تمام زبان‌های برنامه نویسی به نوعی از data type استفاده می‌کنند. متغیرها می‌توانند انواع مختلفی از داده را ذخیره کنند و این انواع مختلف می‌توانند کارهای مختلفی انجام دهند. زبان پایتون نیز از دیگر زبان‌های برنامه نویسی جدا نیست و به صورت پیش فرض از نوع داده‌های زیر پشتیبانی می‌کند:انواع متنی: تنها یک نوع str (یعنی رشته)انواع عددی: int (عدد صحیح) و float (عدد اعشاری) و complex (بعدا در مورد آن صحبت می‌کنیم)انواع توالی: list و tuple و rangeانواع mapping: تنها یک نوع dictانواع دسته: set و frozensetانواع Boolean: تنها مقدار boolانواع باینری (دودویی): bytes و bytearray و memoryviewاگر این موارد برایتان جدید است نگران نباشید. در قسمت‌های بعدی به طور مفصل در مورد آن ها صحبت خواهیم کرد.برای پیدا کردن نوع داده‌ی یک متغیر می‌توانیم از تابع ()type استفاده کنیم:x = 5
print(type(x))مقدار خروجی بدین شکل خواهد بود:&lt;class &#x27;int&#x27;&gt;در زبان پایتون هنگامی که به متغیری مقدار بدهید، data type آن به صورت خودکار تنظیم می شود. به طور مثال:x = &amp;quotHello World&amp;quot

#display x:
print(x)

#display the data type of x:
print(type(x))خروجی این کد عبارت &lt;&#x27;class &#x27;str&gt; خواهد بود.مثال دیگر:x = 20

#display x:
print(x)

#display the data type of x:
print(type(x))خروجی این کد نیز &lt;&#x27;class &#x27;int&gt; خواهد بود.ما می‌توانیم این کار را با تمامی انواع داده انجام دهیم:x = 20.5
x = 1j
x = [&amp;quotapple&amp;quot, &amp;quotbanana&amp;quot, &amp;quotcherry&amp;quot]
x = (&amp;quotapple&amp;quot, &amp;quotbanana&amp;quot, &amp;quotcherry&amp;quot)
x = range(6)
x = {&amp;quotname&amp;quot : &amp;quotJohn&amp;quot, &amp;quotage&amp;quot : 36}
x = {&amp;quotapple&amp;quot, &amp;quotbanana&amp;quot, &amp;quotcherry&amp;quot}
x = frozenset({&amp;quotapple&amp;quot, &amp;quotbanana&amp;quot, &amp;quotcherry&amp;quot})
x = True
x = b&amp;quotHello&amp;quot
x = bytearray(5)
x = memoryview(bytes(5))با این حال اگر نیاز به تعیین نوع داده به صورت دستی داشته باشید، زبان پایتون توابعی با نام data type‌ها را برای شما آماده کرده است. به طور مثال:x = str(&amp;quotHello World&amp;quot)
x = int(20)
x = float(20.5)
x = complex(1j)
x = list((&amp;quotapple&amp;quot, &amp;quotbanana&amp;quot, &amp;quotcherry&amp;quot))
x = tuple((&amp;quotapple&amp;quot, &amp;quotbanana&amp;quot, &amp;quotcherry&amp;quot))
x = range(6)
x = dict(name=&amp;quotJohn&amp;quot, age=36)
x = set((&amp;quotapple&amp;quot, &amp;quotbanana&amp;quot, &amp;quotcherry&amp;quot))
x = frozenset((&amp;quotapple&amp;quot, &amp;quotbanana&amp;quot, &amp;quotcherry&amp;quot))
x = bool(5)
x = bytes(5)
x = bytearray(5)
x = memoryview(bytes(5))اگر روی هر کدام از مثال‌های بالا از تابع ((print(type(x استفاده کنیم حتما نتیجه همان نوع داده‌ای خواهد بود برایش تعیین کرده ایم.اعداد در پایتوندر زبان پایتون سه نوع عدد وجود داریم:intfloatcomplexبا int شروع می‌کنیم؛ int مخفف integer و به معنای عدد صحیح است، یعنی عدد مثبت یا منفی و بدون اعشار تا بی‌نهایت. چند مثال را در کد زیر می‌بینید:x = 1
y = 35656222554887711
z = -3255522

print(type(x))
print(type(y))
print(type(z))خروجی این کد به صورت زیر خواهد بود:&lt;class &#x27;int&#x27;&gt;&lt;class &#x27;int&#x27;&gt;&lt;class &#x27;int&#x27;&gt;نوع دوم اعداد float است که با نام floating point number هم شناخته می‌شوند و در فارسی معادل اعداد اعشاری هستند؛ بنابراین اعداد منفی یا مثبت با اعشار و تا بی‌نهایت. چند مثال را در کد زیر مشاهده می‌کنید:x = 1.10
y = 1.0
z = -35.59

print(type(x))
print(type(y))
print(type(z))خروجی این کد به شکل زیر خواهد بود:&lt;class &#x27;float&#x27;&gt;&lt;class &#x27;float&#x27;&gt;&lt;class &#x27;float&#x27;&gt;نکته: اعداد float می‌توانند نماد e را نیز قبول کنند (به معنای «به توان 10»):x = 35e3
y = 12E4
z = -87.7e100

print(type(x))
print(type(y))
print(type(z))خروجی این کد ها به شکل زیر است:&lt;class &#x27;float&#x27;&gt;&lt;class &#x27;float&#x27;&gt;&lt;class &#x27;float&#x27;&gt;نوع سوم اعداد complex می‌باشد. complex در لغت به معنی «پیچیده» یا «چند وجهی» است. به این نوع اعداد در ریاضیات «عدد مختلط» یا «عدد هم‌تافت» گفته می‌شود. چنانچه با این مبحث آشنایی ندارید می توانید به صفحه ی ویکی پدیای آن مراجعه کنید اما به زبان ساده:&quot;عدد مختلط یا عدد هم‌تافت عددی به شکل a + bi است که a و b اعداد حقیقی‌اند و i یکهٔ موهومی با خصوصیت i2 = -1 است. عدد a قسمت حقیقی و عدد b قسمت موهومی نامیده و نوشته می‌شود. اعداد حقیقی را می‌توان به عنوان اعداد مختلط با قسمت موهومی صفر در نظر گرفت، یعنی عدد حقیقی a معادل است با عدد مختلط a+0i.&quot; منبع: ویکی پدیادر زبان پایتون حرف j به عنوان قسمت فرضی عدد در نظر گرفته می‌شود. چند مثال را مشاهده کنید:x = 3+5j
y = 5j
z = -5j

print(type(x))
print(type(y))
print(type(z))خروجی:&lt;class &#x27;complex&#x27;&gt;&lt;class &#x27;complex&#x27;&gt;&lt;class &#x27;complex&#x27;&gt;تبدیل نوع (type conversion)شما می‌توانید اعداد را با استفاده از توابع ()int و ()float و ()complex به نوع داده‌ی مورد نظر خود تبدیل کنید:#convert integer to float
x = float(1)
#convert float to integer
y = int(2.8)
#convert integer to complex
z = complex(x)

print(x)
print(y)
print(z)خروجی:1.02(1+0j)&lt;class &#x27;float&#x27;&gt; &lt;class &#x27;int&#x27;&gt; &lt;class &#x27;complex&#x27;&gt;هشدار: شما نمی‌توانید اعداد complex را به نوع عددی دیگری تبدیل کنید.تولید عدد تصادفیزبان پایتون تابعی به نام ()random برای تولید اعداد تصادفی ندارد اما module ای به نام random دارد که می‌ از آن برای تولید اعداد تصادفی استفاده کنیم. ابتدا باید این module را import کرده و سپس از آن استفاده کنیم. در کد زیر می‌خواهیم یک عدد تصادفی بین 1 و 9 تولید کنیم:import random

print(random.randrange(1,10))خروجی این عدد در هر بار یک مقدار تصادفی بین 1 و 9 خواهد بود. در جلسات پایانی این دوره در مورد این module توضیحات بیشتری خواهیم داد.منبع: https://bit.ly/2YRj3klبرای مطالعه پست‌های بیشتر ما را در وبلاگ کارادمی و یا در ویرگول دنبال کنید.</description>
                <category>Karademy Coding Bootcamp</category>
                <author>Karademy Coding Bootcamp</author>
                <pubDate>Thu, 12 Dec 2019 19:04:59 +0330</pubDate>
            </item>
                    <item>
                <title>ادیتور و IDEهای محبوب برای طراحی وب</title>
                <link>https://virgool.io/@karademy/%D8%A7%D8%AF%DB%8C%D8%AA%D9%88%D8%B1-%D9%88-ide%D9%87%D8%A7%DB%8C-%D9%85%D8%AD%D8%A8%D9%88%D8%A8-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D9%88%D8%A8-x70vcrmdubho</link>
                <description>همینطور که می‌دانید یکی از بزرگترین چالش‌های یک برنامه‌نویس، انتخاب یک ادیتور یا IDE مناسب است.همیشه برای برنامه‌نویسی نیاز به IDE نیست و گاهی اوقات تنها یک ادیتور ساده کارمان را حتی بهتر از یک IDE راه می‌اندازد.تفاوت بین IDE و ادیتورمعمولا عموم با ادیتورهای متن به خوبی آشنایی دارند. مانند word یا notepad که بصورت پیشفرض در ویندوز وجود دارد.ادیتورهای کد معمولا با ابزار‌ها، کلید‌های میانبر، و شناخت ساختار کد و رنگ‌بندی مناسب آنها، خوانایی و ویرایش‌ کد‌ها را بسیار ساده‌تر می‌کنند.اما یک IDE که مخفف عبارت Integrated Development Environment است، علاوه بر همه اینها، ابزار‌هایی برای خطایابی، کامپایل، اتصال به دیتابیس و… را در اختیار برنامه نویس قرار می‌دهد.برای طراحی وب از IDE استفاده کنیم یا یک ادیتور؟جواب این سوال را نمی‌توان بصورت مطلق داد. اگر شما در طراحی وب سایت از زبان‌های کامپالری استفاده می‌کنید، مانند asp.net بهتر است به سراغ IDEها بروید.اما اگر از زبان‌های مفسری مانند PHP استفاده می‌کنید. با توجه به حجیم بودن نرم افزار‌های IDE، می‌توانید از یک ادیتور ساده استفاده کنید.زبان‌های HTML، CSS و JavaScript هم مفسری هستند، بنابراین اگر از یک ادیتور کد استفاده کنید برای کار با این زبان‌ها هم به مشکلی نخواهید خورد.در ادامه 6 مورد از بهترین IDEها و ادیتورهای کد که می‌توان از آنها در طراحی وب استفاده کرد را، همراه با مزایای و معایب هر یک معرفی می‌کنیم.ادیتور Sublime Textطبعا sublime text یکی از بهترین کد ادیتورها برای طراحی وب است. این ادیتور متن، بسیار سریع و انعطاف‌پذیر است و بسیاری از نیاز‌های شما را در طراحی و توسعه وب برآورده می‌کند.هشدار: سرعت و کارایی این ادیتور معتاد کننده است!بسیاری از برنامه‌نویسان سال‌های سال است که از این ادیتور استفاده می‌کنند. و دل کندن از آن واقعا سخت است.مزیت‌ها:حجم کم نرم افزار و سرعت بالااستفاده از package manager برای راحتی در نصب و حذف و مدیریت افزونه‌هاقابل توسعه توسط افزونه‌های بسیار فراوانکلید‌های میانبر بسیار کاراقابلیت ادیتور چندین خط بصورت همزمانمعایب:عدم پشتیبانی از زبان فارسی (حروف فارسی در این نرم افزار بصورت جدا از هم نمایش داده می‌شوند)اگر مبتدی هستید باید بدانید خطایابی در این ادیتور کمی مشکل است.ادیتور Visual Studio Codeادیتور Visual Studio Code یا همان VSCode توسعه داده شده توسط شرکت مایکروسافت، با کمال تعجب متن باز (Open Source) است!این ادیتور را می‌توان برادر کوچک‌تر Visual Studio بزرگ دانست، VSCode واقعا قدرتمند است، اما در لود اولیه نرم افزار کمی کند عمل می‌کند، البته نه به اندازه برادر بزرگترش!این ادیتور مانند sublime text با افزونه‌های متفاوت قابل توسعه می‌باشد.مزایا:رایگان بودنمناسب برای پروژه‌های بزرگ و پیچیدهخیلی قدرتمندرابط‌کاربری خوبمعایب:کند بودن در هنگام load نرم افزارآی‌دی‌ئی PhpStormیک IDE محبوب از شرکت JetBrains است و یکی از بهترین محیط‌های کدنویسی برای برنامه‌نویسانی است که با php و فریم‌ورک‌های آن مانند وردپرس، لاراول و … کار می‌کنند.همچنین برای خطایابی (Debug) کردن کدها بسیار مناسب است و راهنما‌ی خوبی به توسعه‌دهندگان ارائه می دهد.رابط کاربری این IDE واقعا جذاب است. به علاوه، برای کدنویسی زبان‌های front-end مانند CSS ،HTML JavaScript و فریم‌ورک‌های آنها هم بسیار مناسب است.مزایا:بسیار مناسب برای کار با php و فریم‌ورک‌ها آنسهولت در خطایابیمعایب:سنگین و حجیم بودن نرم‌افزارادیتور ++Notepadبا اینکه یک ادیتور ساده و سبک است، اما همچنان می‌تواند با بسیاری از کد ادیتورهای‌های دیگر رقابت کند.مزایا:بسیار سبک و سریعرایگان بودنقابلیت توسعه با افزونهمعایب:رابط کاربری ضعیفافزونه‌های محدودادیتور Atomادیتور Atom توسط گیت‌هاب توسعه یافته است. در نسخه‌های اولیه، طراحی این ادیتور به شدت تحت تاثیر استایل ادیتور محبوب sublime text بود.ادیتور Atom رایگان و متن باز (Open Source) است و به خوبی به GitHub متصل می‌شود.این ادیتور، در نسخه‌های مختلف خود دارای مشکلات زیادی بوده‌ است، اما با مرور زمان بخش قابل‌توجهی از این مشکلات حل شد.مزایا:ادغام شده با Git و GitHubسریع و قابل اعتمادرایگان بودنرابط کاربری خوبشخصی‌سازی با استفاده از افزونه‌هامعایب:سرعت لود پایین‌در پروژه‌های بزرگ کارایی خوبی نداردادیتور Bracketsاین ادیتور متن، حجم کم‌، کارایی بالا‌، ظاهر زیبا‌، رایگان و پر سرعت برای انجام انواع پروژه‌های مناسب می‌باشد. این نرم افزار با ارائه ابزارهایی منحصربفرد، خلاقیت شما را در زمینه ویرایش متن ارتقا می‌بخشد. انجام عملیات کدنویسی در این برنامه مدرن و کاربردی بسیار لذت‌بخش است.مزایا:پشتیبانی از اکما اسکریپت 2015.پشتیبانی کامل از سیستم عامل لینوکس.امکان ایجاد تغییر در HTML و CSS و مشاهده تغییرات در صفحه نمایش به صورت لایوپشتیبانی از 33 زبان مختلف.پلاگین و تم های زیبا و کار آمدمعایب: عدم وجود پلاگین‌های متفاوت نسبت به سایر ادیتورهانتیجه‌گیریانتخاب یک محیط توسعه، بصورت کامل به خودتان بستگی دارد. کسی نمیتواند به شما بگوید که از فلان ادیتور یا IDE استفاده کن. باید در این زمینه خودخواه باشید.ادیتورها و IDE‌های معروف و مختلف را نصب کنید، تست کنید، مدتی با آ‌ن کار کنید و اگر احساس راحتی نکردید،‌ حذف کنید. همه چیز به شما بستگی دارد. ببینید که احساستان نسبت به کدام Text Editor یا IDE خوب است. به هرکدام احساس خوبی داشتید و با آن راحت‌تر بودید، شروع به استفاده از آن‌ کنید.شاید یک ادیتور برای من اصلا دوست داشتنی و راحت نباشد، اما شما آن‌ را نصب کنید و از کار با آن لذت ببرید. همه چیز بستگی به خودتان دارد. فقط کافی است احساستان را دنبال کنید.اما این نکته را مدنظر داشته باشید که هر ادیتور یا IDE را که انتخاب میکنید، باید فرایند کاری شما را سریع و لذت بخش کند. اگر میتوانید کارتان را با یک ادیتور یا IDE خاص بهتر انجام دهید، سعی کنید از آن استفاده کنید.منبع: https://bit.ly/2qGRtcJبرای مطالعه پست‌های بیشتر ما را در وبلاگ کارادمی و یا در ویرگول دنبال کنید.</description>
                <category>Karademy Coding Bootcamp</category>
                <author>Karademy Coding Bootcamp</author>
                <pubDate>Mon, 25 Nov 2019 10:52:27 +0330</pubDate>
            </item>
                    <item>
                <title>اشتباهات رایج در توسعه وب</title>
                <link>https://virgool.io/@karademy/%D8%A7%D8%B4%D8%AA%D8%A8%D8%A7%D9%87%D8%A7%D8%AA-%D8%B1%D8%A7%DB%8C%D8%AC-%D8%AF%D8%B1-%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D9%88%D8%A8-mqqe2flx5trn</link>
                <description>روی سخن نویسنده این مقاله با برنامه نویسان full stack است که در فرآیند توسعه نزم افزارهای وب با هر دو فرآیند back-end و front-end روبرو هستند. اکثر این برنامه نویسان برای چگونگی مدیریت برنامه نویسی هم زمان back-end و front-end هیچ برنامه مشخصی ندارند که در نهایت وقت زیادی را برای انجام کارهای تکراری ناخواسته تلف می‌کنند.صحبت در مورد شناخت و توانایی انجام هر دو طرف فناوری نیست، بلکه مربوط به نحوه مدیریت کارهای توسعه پروژه توسط شماست. در مورد داشتن یک رویکرد متعادل و منظم برای هماهنگی کارهای back-end و front-end و رهایی از امور اضافی و استرس زا.اول طراحی کنید&quot;اگر به من شش ساعت فرصت دهید تا یک درخت را خرد کنم، چهار ساعت اول را برای تیز کردن تبر صرف خواهم کرد.&quot; آبراهام لینکولنمهم نیست که برنامه شما چقدر ساده یا پیچیده باشد، یک صفحه یا چند صفحه، همیشه اول برای UI و تعامل سطح بالای برنامه خود یک طرح آماده کنید. اگر قبل از شروع پروژه، طرح را تهیه نکنید، خود را مرتبا درگیر رنگ و پیکسل هر یک از مؤلفه‌های UI می‌کنید تا به یک احساس رضایت برسید و واقعیت این است که شما هرگز از رابط کاربری خود راضی نخواهید شد! این کار سرعت برنامه نویسی شما را به شدت کاهش می‌دهد و همچنین ذهن شما را دچار استرس می‌کند.برای طراحی UI و درک تعامل بین مؤلفه‌های مختلف آن می‌توانید از ابزارهایی مانند Adobe XD یا Sketch استفاده کنید.بپرسید بپرسید بپرسید!می‌خواهید برای مشتریان خود پروژه بنویسید؟ با آنها جلسه کاملی داشته باشید، در مورد علایق، برنامه‌ها، الگوی‌های طراحی مختلفی که باید انجام شود. درباره لوگو، رنگها و ... بحث کنید. سعی کنید نیازهای کاربر نهایی را کاملا درک کنید تا در ذهنتان شخصیتی از کاربرتان طراحی کنید.تا زمان تصویب طراح اولیه توسط مشتری، برنامه نویسی front-end را شروع نکنید.پروژه را بر این اساس برنامه ریزی کرده و به آن بچسبید و در نقاط عطف، ارتباط مستقیمی با مشتری خود داشته باشید.رویکرد افزایشی داشته باشیدفرض کنید می‌خواهید یک برنامه مدیریت کتابخانه بر روی وب بسازید، برنامه اصلی را به تعدادی زیر برنامه تقسیم کنید. ابتدا آن زیر برنامه‌ها را پیاده سازی کنید، UI آنها را بسازید و قبل از انتقال به برنامه اصلی، آن را کاملاً تست کنید.بیایید فرض کنیم ثبت نام و ورود کاربر، یکی از زیر برنامه‌ها است. ابتدا با استفاده از تمام اجزای لازم HTML مانند فرم‌ها یا برچسب‌های ورودی، که برای ورودی کاربران لازم است، بدون هیچگونه Style CSS فرم خود را ایجاد کنید. اکنون عملکردهای برنامه‌های میانی و توابع back-end را پیاده سازی کنید و این برنامه را برای ورودی‌ها و پاسخ‎های مربوطه آزمایش کنید. در آخر، کامپوننت‌های UI خود را کاملاً با استفاده از مثلا CSS طراحی کنید. حال این کار را برای هر زیر برنامه به صورت پایین به بالا تکرار کنید (در ادغام این کارها با پروژه اصلی بسیار دقت کنید) تا زمانی که یک برنامه کامل بسازید.از ابزارها استفاده کنیداگر به عنوان مثال در حال ساختن API هستید، از ابزار تست پروژه مانند Postman برای بررسی request/response HTTP‌ها استفاده کنید تا بتوانید به جای سایر کارها، اول بر صحت API خود تمرکز کنید.اگر اول بخش front-end را توسعه می‌دهید، می‌توانید برای استفاده از داده‌های ساختگی به جای داده‌های واقعی، از داده‌های متنی ساختگی مانند &quot;lorem ipsum&quot; استفاده کنید، که بعدا هنگام شروع کار با back-end این داده‌ها را با بانک اطلاعاتی واقعی خود تعویض کنید.ترجمه بر اساس:&quot;Common mistakes in web development&quot; by Neel Vikmani @ Codeburstمنبع: https://bit.ly/2NP90rYبرای مطالعه پست‌های بیشتر ما را در وبلاگ کارادمی و یا در ویرگول دنبال کنید.</description>
                <category>Karademy Coding Bootcamp</category>
                <author>Karademy Coding Bootcamp</author>
                <pubDate>Sat, 16 Nov 2019 07:09:29 +0330</pubDate>
            </item>
                    <item>
                <title>10 ابزار و کتابخانه مطرح مرتبط با فریم‌ورک Vue.js</title>
                <link>https://virgool.io/vuejs-community/10-%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1-%D9%88-%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-%D9%85%D8%B7%D8%B1%D8%AD-%D9%85%D8%B1%D8%AA%D8%A8%D8%B7-%D8%A8%D8%A7-%D9%81%D8%B1%DB%8C%D9%85%D9%88%D8%B1%DA%A9-vuejs-tkfqtlhznzro</link>
                <description>در چند سال اخیر فناوری توسعه وب شاهد رونق زیادی در بخش فریم‌ورک‌های وب به ویژه در زبان برنامه‌نویسی جاوا اسکریپت بوده است. یکی از این فریم‌ورک‌های مطرح جاوااسکریپتی فریم‌ورک‌ Vue.js است که با هدف توسعه رابط کاربری ساخته شد. Vue موفق شد روند رو به رشد خود را ادامه داده و به یک ابزار ثابت توسعه وب تبدیل شود. کارآمدی و محبوبیت این ابزار در آگهی‌های استخدامی به خوبی مشهود است.اگر به آگهی‌های استخدامی در ایران یا سایر کشورها نگاه کنید، مشاهده می‌کنید که Vue در بیشتر آگهی‌های مرتبط با توسعه وب قید شده است. چرا Vue.js به چنین سطح از موفقیتی دست پیدا کرد؟ یادگیری راحت، ساختار عملکردی شفاف و مستندات عالی باعث شده‌اند افراد تازه‌وارد به دنیای وب فریم‌ورک فوق را انتخاب کرده و توسعه‌دهندگان با تجربه‌تر نیز به تدریج فریمورک فوق را جایگزین React یا Angular کنند. در این مقاله با ده نمونه از معروف‌ترین ابزارها و کتابخانه‌هایی که در پروژه‌های Vue.js استفاده می‌شوند آشنا خواهید شد.رابط خط فرمان (CLI)به نظر می‌رسد این روزها داشتن نوعی ابزار رابط خط فرمان (CLI) برای فریم‌ورک‌های اپلیکیشن جاوااسکریپت ضروری است. Vue نیز از این قائده مستثنا نیست. (/Vue CLI (https://cli.vuejs.org یک مجموعه ابزار کامل برای توسعه سریع Vue است. علاوه بر فریم‌ورک معمول ساخت یک پروژه، این ابزار اجازه می‌دهد تا ایده‌های تازه خود را با استفاده از قابلیت نمونه‌سازی فوری حتا بدون ساخت یک پروژه کامل به اجرا بگذارید. به‌طور پیش‌فرض، Vue CLI پشتیبانی از ابزارهای توسعه وب و فناوری‌هایی نظیر Babel، TypeScript، ESLint، PostCSS، PWA، Jest، Mocha، Cypress و Nightwatch را امکان‌پذیر می‌کند. چنین امکاناتی به پشتوانه سیستم پلاگین گسترش‌پذیر این ابزار میسر شده است. توسعه‌‌دهندگان می‌توانند پلاگین‌های قابل استفاده مجدد را ایجاد کرده و با سایرین به‌اشتراک بگذارند. یکی دیگر از ویژگی‌های برجسته این ابزار رابط کاربری گرافیکی (GUI) قدرتمند آن است که اجازه می‌دهد پروژه خود را به راحتی ایجاد کرده و بدون نیاز به کار اضافه آن‌را پیکربندی و مدیریت کنید.ویوپرس (VuePress)بازیگر مطرح بعدی در اکوسیستم Vue ابزار ایجاد سایت ایستا (https://v1.vuepress.vuejs.org) یا همان VuePress است که در ابتدا به‌عنوان یک ابزار برای نوشتن مستندات فنی ساخته شد. اکنون ابزار فوق به یک سامانه مدیریت محتوا (CMS) کوچک و قدرتمند تبدیل شده است. از نسخه 1.x امکاناتی برای ساخت وبلاگ و یک سیستم پلاگین قدرتمند به آن اضافه شده است. این CMS  یک قالب پیش‌فرض (متناسب با مستندات فنی) دارد، اما می‌توانید قالب‌های سفارشی خود را ایجاد کنید یا گزينه‌های ساخته شده توسط دیگران را استفاده کنید. در VuePress محتوا را در قالب Markdown می‌نویسید که بعدا به فایل‌های ایستا HTML تغییر شکل می‌دهد. بعد از این‌که فایل‌ها بارگیری شدند، سایت به عنوان یک برنامه تک صفحه‌ای نیرو گرفته از Vue، Vue Router و Webpack اجرا می‌شود. یکی از مزایای اصلی VuePress این است که می‌توانید کدهای Vue را به فایل‌های Markdown ضمیمه تا سایت را شبیه به یک برنامه عادیVue  طراحی کرده و از تمام مزایای موجود استفاده کنید.گریدسام (Gridsome)گریدسام (https://gridsome.org) شباهت زیادی به VuePress دارد، اما در زمان کار با منابع داده‌ای عملکرد بهتری دارد. این ابزار اجازه می‌دهد انواع مختلفی از داده‌ها را به یک برنامه متصل کرده و از آن‌ها به عنوان یک لایهGraphQL  واحد استفاده کنید. در حالت کلی Gridsome از Vue در ارتباط با فرانت‌اند و از GraphQL برای مدیریت داده استفاده می‌کند. عملکرد این ابزار را می‌توان در سه مرحله خلاصه کرد:محتوا را با فرمت داده Markdown، JSON، YAML یا CVS فراهم می‌کنید یا آن‌را از یک سامانه مدیریت محتوا مثل وردپرس یا دروپال وارد می‌کنید.این محتوا به لایه GraphQL تبدیل می‌شود که امکان مدیریت متمرکز داده را فراهم می‌کند. سپس از این داده‌ها برای ساخت اپلیکیشن خود با Vue استفاده می‌کنید.فایل‌های HTML از پیش رندر شده را به میزبان وب ایستا یا شبکه‌های تحویل محتوا شبیه به Netlify، Amazon S3، Now.sh، Surge.sh و غیره منتقل می‌کنید.قابلیت‌ها و امکانات جالب توجه دیگری همچون تقسیم کد، بهینه‌سازی اجزای تشکیل‌دهنده و پیش‌نمایش لینک توسط Gridsome ارائه شده که به خوبی استانداردهای بهینه‌سازی موتورهای جستجو (SEO) را رعایت می‌کند.ویواکس (Vuex)مدیریت وضعیت یک یا چند کنترل رابط کاربری یکی از عمده‌ترین مشکلاتی است که توسعه‌دهندگان در ساخت اپلیکیشن‌های وب با آن مواجه هستند. برای برطرف کردن این مشکل Vue یک سیستم مدیریت وضعیت به‌نام (/Vuex (https://vuex.vuejs.org دارد که به عنوان یک محل ذخیره‌سازی برای تمام اجزای یک برنامه استفاده می‌شود. یک store نوعی شی ویژه است که به چهار بخش تقسیم می‌شود:شی State – یک شی که داده‌های اپلیکیشن را ذخيره می‌کند.شی Getters – یک شی شامل متدهای استفاده شده برای دسترسی به stateشی Mutations – یک شی شامل متدهایی که مستقیما روی state تاثیر می‌گذارندشی Actions - یک شی شامل متدهای استفاده شده برای فعال کردن تغییرات و اجرای کد غیر همزمانبرای استفاده ساده‌تر از این store می‌توان آن‌را به چند ماژول تقسیم‌بندی و با توجه به نیاز پروژه یکی از آن‌ها را انتخاب کرد.برای استفاده ساده‌تر از این store می‌توان آن‌را به چند ماژول تقسیم‌بندی و با توجه به نیاز پروژه یکی از آن‌ها را انتخاب کرد.ناکس Nuxtوقتی درباره استفاده از رندرينگ سمت سرور (SSR) صحبت می‌کنیم، (/Nuxt (https://nuxtjs.org یک ابزار مفید و کاربردی است. یک فریم‌ورک ساده و سر راست که برای ساخت برنامه‌های عمومی‌ استفاده می‌شود. Nuxt ماژولار هست، بنابراین می‌توانید تنها ماژول‌هایی که برای برنامه خود نیاز دارید را استفاده کنید. با Nuxt می‌توانید برنامه‌های سمت سرور، برنامه‌های تک صفحه‌ای (SPA) و برنامه‌های وب پیش‌رونده (PWA) را توليد کنید یا تنها از Nuxt برای ساخت یک سایت ایستا استفاده کنید. به‌طور خلاصه، Nuxt شما را از کار خسته کننده در ساخت و بهینه‌سازی برنامه‌ها نجات می‌دهد و یک تجربه توسعه ساده و لذت‌بخش ارائه می‌کند.ویوتیفای (Vuetify)ویوتیفای (https://vuetifyjs.com/en) یکی از بهترین کتابخانه‌های رابط کاربری است که مجموعه بزرگی از مولفه‌های از پیش ساخته شده (بیشتر از 80 عدد) مبتنی بر طراحی Material Design را ارائه می‌کند و می‌تواند تقریبا نیاز هر نوع اپلیکیشنی را برآورده کند. شما می‌توانید از این کتابخانه برای ساخت اپلیکیشن‌های سمت سرور، اپلیکیشن‌های تک صفحه‌ای (SPA)، اپلیکیشن وب‌پیش‌رونده (PWA) و اپلیکیشن‌های موبایل استفاده کنید. قالب‌های همراه این کتابخانه به صورت رایگان و حرفه‌ای و غیر رایگان ارائه می‌شوند، هر چند می‌توانید قالب‌های اختصاصی خود را ایجاد کنید.Vuetify همچنین از یک سیستم انتخاب و استفاده از مولفه‌های خاص برخوردار است که حجم نهایی یک برنامه را به میزان قابل ملاحظه‌ای کاهش می‌دهد.کواسار (Quasar)کواسار(https://quasar.dev) نسخه‌ای از جاوا اسکریپت با فلسفه یکبار بنویس، همه جا اجرا کن است. یک فریم‌ورک عمومی‌ و نیرو گرفته از Vue که اجازه می‌دهد اپلیکیشن‌های خود را برای پلتفرم‌های مختلف با یک کد مبنا ایجاد کنید. این فریم‌ورک امکان ساخت اپلیکیشن‌های سمت سرور، اپلیکیشن‌های تک صفحه‌ای (SPA)، اپلیکیشن وب پیش‌رونده (PWA) و اپلیکیشن‌های موبایل و حتا اپلیکیشن‌های چند پلتفرمی‌ دسکتاپ را نیز فراهم می‌کند. مستندات و راهنمای کار با Quasar جامع و کامل است و مجموعه عظیمی‌ از مولفه‌های مفید و کاربردی همراه این فریم‌ورک عرضه می‌شود. همچنین یک ابزار CLI برای کمک به ساخت بی دردسر پروژه‌های جديد همراه این فریم‌ورک است.استوری بوک (StoryBook)استوری بوک (https://storybook.js.org) به شما اجازه می‌دهد تا مولفه‌های رابط کاربری را در یک محیط ساده و راحت توسعه داده، مدیریت کرده یا آزمايش کنید.Storybook توسعه‌دهندگان را قادر می‌سازد تا مولفه‌های مختلف را مستقل از اپلیکیشن اصلی ایجاد کرده و بدون نگرانی در مورد وابستگی‌ها و الزامات خاص یک اپلیکیشن آن‌ها را به صورت تعاملی در یک محیط توسعه مجزا به نمایش بگذارند. Storybook تعداد زیادی افزونه به علاوه یک API انعطاف‌پذیر برای سفارشی‌سازی محیط ارائه می‌کند. شما می‌توانید از پروژه خود به صورت یک اپلیکیشن وب ایستا خروجی گرفته و آن‌را روی هر نوع سرور HTTP مستقر کنید.ویو آپولو (Vue Apollo)اخیرا سرو صدای زیادی پیرامون GraphQL به راه افتاده است. این فناوری از یک زبان Schema برای سرور و یک Query Language برای کلاینت تشکیل شده و تعامل بین فرانت‌اند و بک‌اند را ساده می‌کند. بنابراین اگر از قبل با آن آشنا هستید و می‌خواهید آن‌را با Vue یکپارچه کنید، بهتر است نگاهی به Vue Apollo https://vue-apollo.netlify.com بیاندازید. این کتابخانه استفاده همزمان از Vue و GraphQL/Apollo را سریع و آسان می‌کند.ایگل جی اس (Eagle.js)ایگل جی اس (https://github.com/zulko/eagle.js) یک ابزار قدرتمند، انعطاف‌پذیر و منحصر به فرد است که توسط Vue ساخته شده است. این ابزار اجازه می‌دهد مولفه‌های رابط کاربری، اسلایدها و عناصر مورد نیاز برای ارائه پروژه‌های خود را آماده‌ کرده و به دفعات از آن استفاده کنید. Eagle همچنین از انیمیشن‌ها، قالب‌‌ها و ابزارک‌های تعاملی پشتیبانی می‌کند که برای ساخت نسخه‌های نمایشی وب عالی هستند. این سیستم یک API ساده و قابل ویرایش دارد که آزادی عمل کامل برای ساخت اسلایدشوها را ارائه می‌کند. یکی از بزرگ‌ترین کارهایی که با این کتابخانه می‌توانید انجام دهید قرار دادن یک اسلاید در یک فایل جداگانه و استفاده مجدد از آن در سایر اسلایدشوها است.منبع: https://bit.ly/2PNa9Sbبرای مطالعه پست‌های بیشتر ما را در وبلاگ کارادمی و یا در ویرگول دنبال کنید.</description>
                <category>Karademy Coding Bootcamp</category>
                <author>Karademy Coding Bootcamp</author>
                <pubDate>Mon, 04 Nov 2019 10:30:53 +0330</pubDate>
            </item>
                    <item>
                <title>ترندهای برنامه نویسی در سال 2020</title>
                <link>https://virgool.io/coderlife/%D8%AA%D8%B1%D9%86%D8%AF%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%AF%D8%B1-%D8%B3%D8%A7%D9%84-2020-wwbshdkcday5</link>
                <description>اندرک لاسن، بتر پروگرمینگ -- باورش سخت است، اما کم‌کم داریم به سال ۲۰۲۰ می‌رسیم. آدم فکر می‌کند سال ۲۰۲۰ از درون یک داستان علمی‌تخیلی درآمده است؛ داستانی که در آن ماشین‌ها پرواز می‌کنند و ربات‌های هوشمند ما را با موشک‌های شخصی‌ برای هواخوری به مریخ می‌برند. بنظر می‌رسد سال ۲۰۲۰ واقعی ما اینقدرها هم پیشرفته نیست، اما من معتقدم که قطعاً چیزهای هیجان‌انگیزی برای ما در چنته خواهد داشت‌! امروز می‌خواهم برایتان بگویم که به نظر من این سال و سال‌های بعد از آن چه دستاوردهایی برای جهان برنامه نویسی خواهند داشت و چه ترندهایی را برایمان به همراه خواهد آورد.قطعاً من پیشگو نیستم؛ شاید سال ۲۰۲۱ برگردیم و به این مطلب حسابی بخندیم! اما می‌توانم بر اساس تجربه‌‌، حدس‌هایی در مورد آینده بزنم. بنابراین، این شما و این پیش‌بینی‌های من در مورد ترندهای سال ۲۰۲۰ در دنیای برنامه‌نویسی.بهترین راه پیش بینی آینده‌، ساختن آن است. --آبراهام لینکلنترند ۱. راست (Rust) همه‌گیر خواهد شدراست (Rust) زبان برنامه‌نویسی‌ای با سیستم چند پارادایمی است که روی امنیت تمرکز دارد؛ به ویژه امنیت در هم‌روندی (Concurrency). به لحاظ سینتکس می‌توان گفت که Rust شبیه به ++C است، ولی طوری طراحی شده که امنیت حافظه بیشتری داشته باشد و در عین حال بازدهی بالای خود را حفظ کند.در چهار سال گذشته شاهد رشد سریع و پوسته‌ای در Rust بوده‌ایم و من باور دارم که در سال ۲۰۲۰، Rust دیگر به شکل رسمی به یکی از مهره‌های اصلی میدان تبدیل خواهد شد. البته این که «مهره اصلی» چه معنایی دارد به تفسیر خود افراد بستگی دارد، اما من فکر می‌کنم که از ۲۰۲۰ دانشگاه‌ها زبان راست را وارد برنامه‌های درسی‌شان می‌کنند و موج جدیدی از مهندسان متخصص Rust وارد بازار کار خواهند شد.زبان Rust نشان داده که زبانی جذاب است و جامعه‌ای پرانرژی و فعال دارد. در آخرین خبرها هم که دیدیم فیس‌بوک قرار است که یکی از بزرگ‌ترین پروژه‌های تاریخ خود را -یعنی لیبرا (Libra)- با کمک Rust بسازد، و در نتیجه قرار است بفهمیم که این زبان واقعاً چند مرده حلاج است.اگر به دنبال یادگیری زبان جدیدی هستید، شدیداً توصیه می‌کنم سراغ Rust بروید. اگر به این زبان علاقمند هستید، پیشنهاد می‌کنم با این کتاب یادگیری آن را شروع کنید! Rust برنده است!ترند ۲. محبوبیت GraphQL از حالا هم بیشتر می‌شود.هرچه برنامه‌های ما پیچیده‌تر می‌شوند، استفاده از داده هم شکل پیچیده‌تری پیدا می‌کند. من از طرفداران سرسخت GraphQL هستم و بار‌ها از آن استفاده کرده‌ام. به نظر من در مقایسه با راهکارهای قدیمی مثل APIهای REST، گرف‌کیواِل راه بسیار مناسب‌تری برای گرفتن داده (Fetch) است. در حالی که ‌APIهای REST لازم است داده را از چند URL بگیرند، APIهای گرف‌کیواِل میتوانند کل داده مورد نیاز برنامه شما را فقط با یک درخواست بگیرند.تیم‌های بزرگ و کوچک در محیط‌ها و زبان‌های مختلف از GraphQL برای قدرت بخشیدن به برنامه‌های موبایل، وب‌سایت‌ها و API‌ها استفاده می‌کنند. اگر دوست دارید GraphQL را یادبگیرید، می‌توانید به این آموختار در بتر پروگرمینگ نگاهی بیندازید.ترند ۳. وب اپلیکیشن‌های پیش‌رونده (یا PWAها) را دست کم نگیریدوب اپلیکیشن‌های پیش‌رونده (Progressive Web Apps) رویکرد جدیدی برای ساخت برنامه‌ها هستند که بهترین مزایای وب را با برترین ویژگی‌های برنامه‌های موبایلی ترکیب می‌کنند. تعداد توسعه‌دهندگان وب در دنیا خیلی بیشتر از توسعه دهندگان پلتفرم‌های خاص است. به گمان من، زمانی که شرکت‌های بزرگ متوجه بشوند که می‌توانند از توسعه‌دهندگان وب خود برای ساخت برنامه‌های پیشرفته تحت وب استفاده کنند، موجی عظیم از PWA‌ها را خواهیم دید.البته برای شرکت‌های بزرگ‌تر مدتی زمان خواهد برد تا خودشان را با این شرایط جدید وفق بدهند؛ اما این در دنیای فناوری کاملاً طبیعی است. بخش پیش‌رونده (Progressive) عموماً مرتبط با توسعه سمت فرانت (Front-end) است؛ چرا که بیشتر با تبادل با APIهای مختص مرورگر (Web Workers API) سر و کار دارد.وب‌اپلیکیشن‌ها به این زودی‌ها از میان ما نخواهند رفت. هر روز، عده بیشتری از افراد به این نتیجه می‌رسند که نوشتن یک برنامه غیر‌وابسته به پلتفرم نه تنها کمتر کار می‌برد، که به نسبت وقتی که می‌گذارید پردرآمدتر هم هست.امروز روز خیلی خوبی برای شروع یادگیری درباره PWA‌هاست! اگر علاقه‌مند هستید می‌توانید از اینجا یادگیری را شروع کنید.ترند ۴. وب‌اسمبلی (Web Assembly) مطرح‌تر خواهد شدوب‌اسمبلی (Wasm به طور خلاصه) یک فرمت دستوری دودویی‌ برای یک ماشین مجازی بر پایه پشته (Stack-oriented) است. وب‌اسمبلی طوری طراحی شده که راهکاری Portable برای کامپایل کردن زبان‌های سطح بالا مانند C و ++C و Rust باشد. وب‌اسمبلی امکان Deploy کردن روی وب را هم برای برنامه‌های کلاینت و سرور فراهم می‌کند. PWAها هم می‌توانند از وب‌اسمبلی استفاده کنند.به عبارت دیگر، وب‌اسمبلی راهی است برای پل زدن میان فناوری‌های جاوا اسکریپت و فناوری‌های سطح بالاتر. تصور کنید چه می‌شد اگر می‌توانستید در اپلیکیشن ری‌اکت خودتان از کتابخانه پردازش تصویر Rust استفاده کنید؟ با وب‌اسمبلی این کار ممکن است!بازدهی همیشه خواسته‌ای کلیدی است؛ اما هر چه مقدار داده بیشتر می‌شود، بازدهی را هم سخت‌تر می‌توان در حد خوبی نگه داشت. اینجاست که کتابخانه های سطح پایین سی‌پلاس‌پلاس یا راست وارد بازی می‌شوند. پیش‌بینی من این است که شرکت‌های بزرگ‌تری سراغ وب‌اسمبلی خواهند رفت و آنوقت، استفاده از وب‌اسمبلی به شکل تصاعدی رایج و رایج‌تر خواهد شد.ترند ۵. ری‌اکت (React) به فرمانروایی خود ادامه خواهد داد.ری‌اکت با اختلاف دوست‌داشتنی‌ترین کتابخانه جاوا اسکریپت برای توسعه فرانت‌اند است؛ البته کاملاً هم به‌حق به این جایگاه رسیده! برنامه ساختن با ری‌اکت سرگرم کننده و آسان است. تیم ری‌اکت و جامعه آن در خلق کردن یک تجربه عالی از ساخت اپلیکیشن، بی‌نظیر عمل کرده‌اند.من با ویو (Vue)، انگولار (Angular)، و ری‌اکت (React) کار کرده‌ام و به نظرم همه آنها فریم‌ورک‌هایی عالی‌ هستند. به خاطر داشته باشید که هدف یک کتابخانه این است که بتوان کار‌ها را با آن به اتمام رساند؛ بنابراین جزئیات را رها کنید و تمرکزتان را روی انجام دادن کارها بگذارید. بحث درباره این که کدام فریم‌ورک «بهترین» است، کاملاً بی‌فایده است. پس یکی را انتخاب کنید و انرژی‌تان را روی ساختن برنامه بگذارید.ترند ۶. همیشه روی جاوا اسکریپت شرط ببندیدبا اطمینان می‌توانیم بگوییم که دهه‌ی فعلی، دهه‌ی جاوا اسکریپت بوده است. جاوا اسکریپت همچون گدازه‌های یک آتشفشان در حال فوران کردن است، دارد همه جا را در بر می‌گیرد و به نظر قرار هم نیست که از حرکت بایستد. بعضی‌ها توسعه‌دهندگان جاوا اسکریپت را «توسعه‌دهند‌های قلابی» می‌نامند و آنها را تحویل نمی‌گیرند؛ اما جاوا اسکریپت قلب تپنده همه شرکت‌های بزرگ فناوری مثل گوگل، فیس‌بوک، نت‌فلیکس و خیلی شرکت‌های دیگر است. بنابراین جاوا اسکریپت همانقدر مهم است که همه زبان‌های برنامه‌نویسی دیگر. به توسعه‌دهنده جاوا اسکریپت بودن خودتان افتخار کنید؛ هرچه که باشد، برخی از جالب‌ترین و خلاقانه‌ترین چیز‌ها را جامعه جاوا اسکریپت ساخته‌اند! تقریباً همه وبسایت‌ها تا حدی از قدرت جاوا اسکریپت بهره می‌برند. چند تا وبسایت در دنیا داریم؟ بله، میلیون‌ها!این سال‌ها بهترین زمان برای توسعه‌دهنده جاوا اسکریپت بودن است. حقوق‌ها مدام دارند بیشتر و بیشتر می‌شوند، جامعه جاوا اسکریپت از همیشه فعال‌تر است، و بازار شغلی آن یکی از بزرگ‌ترین‌هاست. اگر مشتاقید جاوا اسکریپت یاد بگیرید، مجموعه کتاب‌های شما جاوا اسکریپت بلد نیستید واقعاً خارق‌العاده‌اند.پروژه جذابی بوده که جا افتاده باشد؟ در کامنت‌ها نظرتان را با ما به اشتراک بگذارید.ترجمه بر اساس:&quot;2020 Programming Trend Predictions&quot; by Indrek Lasn @ Better Programmingمنبع: https://bit.ly/31ySvUC</description>
                <category>Karademy Coding Bootcamp</category>
                <author>Karademy Coding Bootcamp</author>
                <pubDate>Mon, 21 Oct 2019 09:42:06 +0330</pubDate>
            </item>
                    <item>
                <title>نقشه راه تبدیل شدن به یک برنامه نویس فرانت اند مدرن</title>
                <link>https://virgool.io/@karademy/%D9%86%D9%82%D8%B4%D9%87-%D8%B1%D8%A7%D9%87-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%B4%D8%AF%D9%86-%D8%A8%D9%87-%DB%8C%DA%A9-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D9%81%D8%B1%D8%A7%D9%86%D8%AA-%D8%A7%D9%86%D8%AF-%D9%85%D8%AF%D8%B1%D9%86-ky1zfrl8wzq1</link>
                <description>گام اول: کار آماده است!اگر شما یک برنامه نویس فرانت اند مبتدی هستید و قصد دارید گام به گام وارد این حرفه شوید، نقشه راه دیگری برای شما وجود دارد. نگاهی به نقشه راه زیر بیندازید، تمامی موارد لازم در این نقشه راه بیان شده است، شما باید این نقشه راه را کامل کنید و با استفاده از آن‌ها چند پروژه‌ی مختلف را انجام دهید.تنها موارد ذکر شده را یاد بگیرید و بعد از آن به راحتی می توانید تبدیل به یک برنامه نویس فرانت اند شوید و یک فرصت شغلی مناسب پیدا کنید. من مطمئن هستم که بسیاری از افرادی که این کار را انجام داده‌اند یا به صورت فری لنسری و یا به صورت کارهای استخدامی حقوق زیادی را دریافت می‌کنند. با قرار دادن زمان بیشتر برای این نقشه راه می‌توانید موارد بیشتری را بیاموزید و بسیاری از پروژه‌های مختلف را انجام دهید. در ادامه لیستی از ایده‌های جالب برای کار کردن را در اختیار شما قرار خواهیم داد.اقداماتی که می‌توانید انجام دهید:- یک اپلیکیشن pomodoro ایجاد کنید، می‌توانید نسخه وب این اپلیکیشن را ایجاد کنید.- یک صفحه وب ایجاد کنید که از GitHub Repositories API برای مشخص کردن 10 ریسورس برتر هفته استفاده کند.- یک اپلیکیشن ساده لیست todo ایجاد کنید که به شما اجازه می‌دهد تا فعالیت‌هایی که قصد انجام آن را دارید را به آن اضافه کنید و آن‌ها را علامت بزنید و یا آن ها را ویرایش کرده یا حتی حذف کنید.- یک ساعت ایجاد کنید که کاربر با استفاده از آن بتواند زمان را شروع کرده یا متوقف کند و دوباره آن را راه اندازی کند.هنگامی که این کارها را انجام دادید، درباره ی سیستم های کنترلی تحقیق کنید و نحوه‌ی استفاده از Git را نیز بیاموزید و در GitHub یک پروفایل ایجاد کنید.گام دوم: CSS را به شکل بهتری بنویسید!زمانی که شما مفاهیم اولیه را به خوبی پوشش دادید به مرحله بعدی بروید و یاد بگیرید که چگونه از CSS قابل نگهداری استفاده کنید و چگونه از فریم‌ورک‌های مختلف CSS استفاده کنید. زمانی که شما این مرحله را به خوبی انجام دادید، پیش بروید و شروع به یادگیری ابزارهایی کنید که در مرحله‌ی اول قصد یادگیری آن‌ها را داشتید.اقداماتی که می‌توانید انجام دهید:- یادگیری بوت استرپ را به پروژه‌هایی که باید می‌آموختید اضافه کنید.- پروژه‌هایی که در مرحله اول ساخته‌اید را با استفاده از این ابزارها دوباره نویسی کنید و پروژه‌هایی با کیفیت تر را تولید کنید.- بهتر است CSS را درون SASS بنویسید.گام سوم: بخش‌های سخت کاراین مرحله نیازمند صرف زمان بیشتری بوده و مهم‌ترین گام شما برای دست پیدا کردن به پیشرفت‌های مدرن می‌باشد. یادگیری بیشتر درباره زبان برنامه نویسی جاوا اسکریپت، یادگیری کار کردن با Webpack و آشنایی با مفاهیم اولیه آن از جمله موارد مورد نیازی است که شما در این مرحله باید به آنها دست پیدا کنید. درک این موضوع که Babel چیست و چرا ما از آن استفاده می‌کنیم و چگونه باید آن را با Webpack ادغام کنیم و در نهایت نحوه کد کردن آن با استفاده از ESLint از جمله موارد دیگری است که در این مرحله باید بیاموزید. اگر شما همین الان شروع به یادگیری این موارد کنید می‌توانید تا آخر هفته طعم تبدیل شدن به یک برنامه نویس فرانت اند مدرن را بچشید و به سمت جلو حرکت کنید. شما در طول تبدیل شدن به یک برنامه نویس فرانت اند مدرن می‌توانید از ابزارهای زیر نیز استفاده کنید.اقداماتی که می‌توانید انجام دهید:یک پکیج npm بسازید که یک یوزرنیم دریافت کند و لیستی از لینک‌هایی که با این یوزرنیم در شبکه‌های اجتماعی مختلف ساخته شده است را به کاربر باز گرداند. این اپلیکیشن می‌تواند در مرورگر مورد استفاده قرار گیرد و شما می‌توانید آن را با Webpack همسان سازی کنید.یک اپلیکیشن لیست فعالیت‌های روزانه بنویسید که از SASS برای CSS استفاده کند. استایل‌های بوت استرپ را به آن اضافه کنید. از BEM استفاده کنید. زبان برنامه نویسی جاوا اسکریپت را با استفاده از babel بارگذاری کنید و آن را با وب پک بسازید. صفحات بهینه سازی شده را ایجاد کنید و از آن در صفحه شخصی خود در گیت هاب استفاده کنید. تمامی این کارها برای تبدیل شدن به یک برنامه نویس فرانت اند مدرن مورد نیاز می‌باشد.گام چهارم: اپلیکیشن‌های مدرن فرانت اندگام بعدی برای تبدیل شدن به یک برنامه نویس فرانت اند، یادگیری برخی از فریم‌ورک‌های فرانت اند می‌باشد. گزینه‌های متعددی برای یک برنامه نویس فرانت اند مدرن وجود دارد اما مواردی که امروزه از آنها بیشتر استفاده می‌شود عبارت اند از React، Angular  و Vue که من به شما توصیه می‌کنم از React برای این کار استفاده کنید.اول از همه شروع به یادگیری React کنید، سپس نگاهی به Redux بیندازید و بعد از آن نیز استفاده کردن از CSS در جاوا اسکریپت را بیاموزید که البته این مورد خیلی نیاز نیست، اما اگر بخواهید حرفه ای شوید حتما باید نگاهی به styled components در CSS داشته باشید.هنگامی که شما React را به خوبی آموختید باز هم پیش بروید و درباره اپلیکیشن‌های پیشرفته‌ای که وجود دارند مطالعه کنید، اکنون که فریم‌ورک‌های فرانت اند را به خوبی می‌شناسید در این مسیر نباید برای شما مشکلی پیش بیاید. نگاهی به چک لیست PWA بیندازید، درباره سرویس‌های مختلف مطالعه کنید، عملکرد وب سایت خود را مورد بررسی قرار دهید و آن را اندازه گیری کنید، به API‌های مختلف مرورگرها نگاهی بیندازید و سعی کنید که از مزایای استفاده از آن ها نهایت بهره را ببرید. به عنوان مثال شما می‌توانید درباره نحوه ذخیره سازی در آن ها و ... و همینطور مدل‌های RAIL و الگوی PRPL مطالعه کنید.اقداماتی که می‌توانید انجام دهید:زمانی که این کارها را انجام دادید باید بتوانید خود را به عنوان یک برنامه نویس فرانت اند مدرن بشناسانید. به همین دلیل اولین کاری که باید انجام دهید این است که هر آن چه را که یاد می‌گیرید تمرین کنید. در اینجا قصد داریم لیستی از آن چه که شما باید انجام دهید را بیاوریم:یک اپلیکیشن ساده طراحی کنید که به شما این اجازه را بدهد که یک هشتک را انتخاب کنید که با استفاده از twitters search API بیشترین تعداد توییت‌هایی که از این هشتک در آنها استفاده شده است را برای شما به نمایش بگذارد. سعی کنید که هشتک‌ها را سنجاق کنید تا زمانی که کاربر صفحه را رفرش می‌کند توییت‌های جدید را به جای توییت‌های قدیمی مشاهده کند.اپلیکیشنی طراحی کنید که به یوزر این اجازه را بدهد که مدت زمانی که قصد انجام فعالیتی را دارد را تنظیم کند و در طول این فعالیت نوتیفیکیشن‌هایی را برای او به نمایش بگذارد و در صورت تمایل موزیکی را نیز در حین انجام کار و بعد از تمام شدن کار اجرا کند.سعی کنید که صفحه اصلی گیت هاب را با استفاده از React دوباره طراحی کنید، شما می‌توانید برای این کار از سایر کتابخانه‌هایی که در این زمینه وجود دارند نیز استفاده کنید.گام پنجم: استفاده از تست‌های خودکاریاد گرفتن نوشتن تست‌های خودکار یکی دیگر از مراحل مهمی است که برای تبدیل شدن به یک برنامه نویس فرانت اند به آن نیاز دارید. این موضوع باعث می‌شود تا در آینده از بسیاری از دردسرهایی که برای یک برنامه نویس فرانت اند وجود دارد رها شده و موقعیت شغلی بهتری را برای خود پیدا کنید. بهترین کاری که می‌توانید انجام دهید این است که رو به جلو حرکت کنید و تمامی انواع مختلف تست‌هایی که برای یک برنامه نویس فرانت اند نیاز دارد را یاد بگیرید و با مفاهیم اولیه و پیشرفته آن نیز به خوبی آشنا شوید و بتوانید برای اپلیکیشن‌های خود تست بنویسید. بعد از آن باز هم جلوتر بروید و با jest، Enzyme و Cypress بیشتر آشنا شوید و همچنین یاد بگیرید که test coverage را به خوبی محاسبه کنید تا آینده‌ی خوبی به عنوان یک برنامه نویس فرانت اند مدرن داشته باشید.اقداماتی که می‌توانید انجام دهید:به پیش روید و سعی کنید یونیت تست‌ها را به خوبی پیاده سازی کنید، همچنین با تست‌های فانکشنال آشنا شوید که برای اپلیکیشن‌های تحت وب کاربردهای بسیار زیادی دارند و شما به عنوان یک برنامه نویس فرانت اند مدرن حتما باید با آن‌ها آشنایی داشته باشید. علاوه بر این سعی کنید تمامی اپلیکیشن‌هایی که در قسمت فعالیت‌های بخش‌های قبلی بیان شد را با استفاده از تست‌هایی که خودتان می‌نویسید تست کنید.گام ششم: استفاده از بررسی کننده نوع داده استاتیکبررسی کننده نوع داده به شما این اجازه را می‌دهد که کد خود را قابل نگهداری کنید و به همین دلیل رشد دادن کد بسیار راحت می‌شود. علاوه بر این با استفاده کردن از این امکان می‌توانید سرعت refactoring را بهبود ببخشید و در ide‌های مختلف کدهای خود را به راحتی اجرا کنید و همینطور داکیومنتیشن مناسب تری را نیز برای کدهای خود فراهم کنید. با این حال استفاده از typescript مزایای بسیار زیادی را برای شما دارد که به همین علت من به شما توصیه می‌کنم که از این روش استفاده کنید.بعد از اتمام یادگیری typescript باز هم پیش بروید و هر کدام از برنامه‌های جاوا اسکریپت که از typescript استفاده می‌کنند را مورد استفاده قرار دهید و استفاده از آن‌ها را یاد بگیرید.گام هفتم: رندر کردن سمت سروراپلیکیشن‌هایی که سمت سرور رندر می‌شوند به کاربر این اجازه را می‌دهند که عملکرد بهتری را از وب سایت مشاهده کنند و جست و جو گرها نیز نسبت به آن‌ها روند بهتری را برای جست و جو دارند و به راحتی نیز می توان آنها را ارتقا داد. اگر چه این موضوع خیلی مهم نیست ولی بدون شک به شما کمک می‌کند تا اپلیکیشن های پیشرفته تری را طراحی کنید. گزینه‌های مختلفی بر اساس فریم ورک انتخابی شما وجود دارد که به شما کمک می‌کند تا به یک برنامه نویس فرانت اند مدرن تبدیل شوید. اما اگر شما React.js را به عنوان فریم ورک خود انتخاب کرده اید به شما توصیه می‌کنیم تا Next.js را انتخاب کنید. اقداماتی که می‌توانید انجام دهید:شما با استفاده از Next.js می‌توانید به راحتی هر برنامه کاربردی که در بالا ساخته بودید را به سمت سرور متصل کنید و به راحتی باعث افزایش عملکرد وب سایت و یا اپلیکیشن تحت وب خود شوید.گام هشتم: فراتر بروید!همه‌ی آن چیزی که ما در این قسمت برای تبدیل شدن به یک برنامه نویس فرانت اند به شما توضیح می دهیم کاملا اختیاری می‌باشد و شما می‌توانید در صورت تمایل از آن ها استفاده کنید. بنابراین به شما توصیه می‌کنیم اگر قصد دارید که گامی فراتر از سایر افرادی که به عنوان یک برنامه نویس فرانت اند فعالیت می‌کنند بروید به شما توصیه می‌کنیم حتما از آن‌ها استفاده کنید.لطفا به خاطر داشته باشید که من در این مطلب به دلیل کوتاه بودن آن سعی کرده‌ام که تنها تصویری از چیزهایی که باید یاد بگیرید را برای شما تصویر کنم تا خودتان با مطالعه بیشتر اقدام به یادگیری عمیق تر مباحث مورد نظر کنید.نقشه‌ی راه کاملترجمه‌ای از:Learn to become a modern Frontend Developer in 2019. Mediumمنبع: https://bit.ly/2ARrDnRبرای مطالعه پست‌های بیشتر ما را در وبلاگ کارادمی و یا در ویرگول دنبال کنید.</description>
                <category>Karademy Coding Bootcamp</category>
                <author>Karademy Coding Bootcamp</author>
                <pubDate>Tue, 08 Oct 2019 10:01:34 +0330</pubDate>
            </item>
                    <item>
                <title>سه راه شگفت انگیز برای ساده کد زدن</title>
                <link>https://virgool.io/@karademy/%D8%B3%D9%87-%D8%B1%D8%A7%D9%87-%D8%B4%DA%AF%D9%81%D8%AA-%D8%A7%D9%86%DA%AF%DB%8C%D8%B2-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B3%D8%A7%D8%AF%D9%87-%DA%A9%D8%AF-%D8%B2%D8%AF%D9%86-fjo3gmqulxdh</link>
                <description>زندگی خیلی ساده است، اما ما اصرار داریم پیچیده‌اش کنیم.نوشتن کدهای ساده، واقعا ساده است. اما ما با آماده کردن کدها برای آینده (Future-ready)، کار خودمان را پیچیده می‌کنیم!وقتی که یاد بگیریم توهم آمادگی برای آینده را کنار بگذاریم، هم کدهایمان تمیزتر و ساده‌تر می‌شود و هم اعتبارمان به عنوان یک برنامه‌نویس خوب، پیش بقیه بالا می‌رود.اجازه بدهید توضیح بدهم.آن زمان که در دوران اوج برنامه‌نویسی‌ام بودم، یک اصل وجود داشت که در هر موقعیتی به من یاد داده می‌شد:«هیچوقت یک کد را دوبار ننویس.»«باید کدت را بازسازی کنی. باید بخاطر نفع همگانی، کاری کنی که کدت قابل استفاده مجدد باشد. کدت را شبیه جعبه سیاه (black box) کن تا هر برنامه‌نویس دیگری که روی کره زمین هست، بتواند از آن استفاده کند. برنامه‌نویس‌های خوب، کدهای عالی‌شان را تا ابد برای دیگران به یادگار می‌گذارند.»تا اینجای کار که مشکلی نیست.البته به جز یک مشکل خیلی خیلی بزرگ: اینکه کدهایی که من می‌نوشتم، کم‌کم تبدیل به یک کپه زشت و هولناک از حرف‌ها و عددهای بی‌معنی می‌شد که فهمیدن و تفسیرشان غیر ممکن بود. بهداشت کدنویسی (code hygiene) من کلاً از بین رفت، و روزها و ماه‌ها را فقط صرف این می‌کردم که آفریده‌های شیطانی‌ام را اصلاح کنم و زندگی نویی به آنها ببخشم.برنامه‌نویسی کار سختی است. وقتی برنامه‌ای می‌نویسی، چیزی بین یک تا یک گازیلیون خط کد خواهی داشت و قرار است اشتباهاتی هم بکنی. شاید اشتباهاتت کوچک باشند و شاید هم بزرگ؛ اما در هر اندازه‌ای که باشند، پیدا کردن و رفع‌شان حتماً زمان می‌برد. وقتی در آن گرداب خطرناک درماندگی داری به سرعت غرق می‌شوی، بعضی وقت‌ها نیاز داری که یک نفر دستت را بگیرد و بیرونت بکشد.اما بعضی وقت‌ها هم... تنها چیزی که لازم داری یک اردک زرد حمام است.اولین بار دین پارکر (Deane Parker) بود که در پست زیبایش با عنوان «چطور سخنرانی خوبی بکنیم»، مفهوم اردک حمام را مطرح کرد. در این پست، او توضیح می‌دهد که چطور می‌شود با تمرین کردن سخنرانی با صدای بلند، آن را بهتر کرد. این ایده که از اردک حمام به عنوان شنونده سخنرانی‌مان استفاده کنیم حرف جدیدی نیست؛ اما جذابیتش در اینجاست که هم راحت می‌شود عملی‌اش کرد و هم موثر است.اصلی‌ترین مزیت استفاده از اردک حمام به عنوان شنونده، این است که اردک زرد صبور است و قضاوت هم نمی‌کند. از همه بهتر، با کمک او دیگر لازم نیست وقت شخص دیگری را بگیری. جادویی در بلند بلند توضیح دادن مشکلات هست (حتی به چیزی بی‌جان مثل اردک حمام) که کمک می‌کند راه حل مسئله را پیدا کنی.وقتی که شروع می‌کنید به مرور کردن کد و توضیح دادن خط به خط آن به اردک حمام، یکدفعه می‌بینید که دارید یک دید بیرونی به موقعیت پیدا می‌کنید. آنجاست که خودتان را مجبور به ارزیابی خودتان می‌کنید، و در حال و هوای آن لحظه، درکی عینی و بی‌طرف از همه کدهایی که نوشته‌اید به دست می‌آورید.و بعد، دیر یا زود بلاخره به آن لحظه «آها!» می‌رسید. جواب معما یک دفعه به ذهنتان می‌رسد.و تقریبا هر دفعه به خودتان می‌گویید: «وا! من که اینو می‌دونستم!»در اینجا چندتا از چیزهایی را آورده‌ام که در جلسه‌هایم با اردک حمام، در مورد بهتر کد زدن یاد گرفتم:لازم نیست هر دفعهComponent قابل استفاده مجدد بسازیدبعضی‌ها متعقدند که آدم باید همیشه componentهایش را تا می‌شود قابل استفاده مجدد کند؛ زیرا با این کار مجبور می‌شود با همه مشکلات مربوط به کیفیت کدش روبرو شود و در نهایت نرم‌افزار بهتری تولید خواهد کرد. اگر تنها هدف شما این باشد که بهترین نرم‌افزار دنیا را بسازید، چنین عقیده‌ای خیلی خوب است. اما متاسفانه هیچ کس برای ساختن بهترین نرم‌افزار جهان به شما پول نمی‌دهد.نه؛ چیزی که شما به خاطرش پول می‌گیرید این است که با رعایت بودجه و زمان اختصاص داده شده، نرم‌افزاری بنویسید که در حد لازم، کیفیت داشته باشد. اگر بیخودی برای آب‌طلا‌کاری کردن کدتان وقت بگذارید، شاید احساس کنید خیلی خفن هستید، اما عملا کار کاملا بی‌فایده‌ای انجام داده‌اید. باید برای خودتان مرزی مشخص کنید و بدانید که این محصول را دقیقاً تا چه حد خوب باید بسازید. پا از این مرز فراتر نگذارید. اگر بگذارید، درست کردن محصول هیچ‌وقت تمام نخواهد شد.قرار نیست لازمش داشته باشید«قرار نیست لازمش داشته باشید» (YouArentGonnaNeedIt یا YAGNI) اصلی در برنامه‌نویسی Extreme است که می‌گوید:«هر چیزی را زمانی بسازید که واقعاً لازمش دارید، نه وقتی که پیش‌بینی می‌کنید لازمش داشته باشید.»حتی اگر کامل کامل کامل مطمئن بودید که یک Feature را بعداً لازم خواهید داشت، الآن آن را نسازید.دو دلیل برای اجرای اصل YAGNI وجود دارد:در وقت صرفه‌جویی می‌کنید، چون دیگر کدی که لازم نیست را نمی‌نویسید.کدتان بهتر می‌شود، زیرا آن را با «حدس‌»ها آلوده نمی‌کنید؛ حدس‌هایی که بعداً قرار است معلوم شود که اشتباه بوده‌اند، اما باز هم کسی حذفشان نخواهد کرد.ساده‌ترین حالتی که ممکن است جواب بدهد را بسازیدبرنامه‌نویسی Extreme دو قانون طلایی برای نوشتن کد ساده دارد:یک ویژگی‌ جدید را در ساده‌ترین حالتی که ممکن است جواب بدهد، بسازید. یک عالمه فراساختار (Super structure) حیرت‌‌آور درست نکنید، کارهای تجملاتی و قشنگ‌قشنگ انجام ندهید. فقط کدی را بسازید که کار می‌کند. کدی بسازید که آزمایش‌های واحد (Unit Tests) برای Feature جدید (و همه Featureها، مثل همیشه) را با موفقیت پشت سر بگذارد.این یکی بخش حیاتی قانون است: سیستم را طوری بازسازی کنید که در عین داشتن همه Featureها، ساده‌ترین کد ممکن باشد. با اجرا کردن قانون یکبار و فقط یکبار (OnceAndOnlyOnce) و دیگر قانون‌های کیفیت کد، سیستم را به تمیزترین حالت ممکنش تبدیل کنید.یادتان باشد که قرار نیست سریع‌ترین راه را پیدا کنیم، بلکه قرار است به ساده‌ترین نتیجه برسیم. بنابراین، در قدم اول متد فعلی را به چند قسمت تقسیم می‌کنیم. با این کار Test Caseهای موجود همچنان اجرا می‌شوند. در قدم بعدی، سراغ یکی از متدهای کوچک‌تر می‌رویم و آن را طوری تغییر می‌دهیم (البته به شکل ساده) که Test Case بعدی انجام شود. همین روند را برای همه متدها ادامه می‌دهیم.دفعه بعد که گیر کرده بودید، سراغ اردک حمام برویدرفع باگ‌ها، حل مشکلات و پیدا کردن راه حل برای مسئله‌های بغرنج، از بخش‌های اساسی برنامه‌نویسی هستند. بنابراین یاد گرفتن تکنیک‌هایی برای به سلامت بیرون آمدن از بین باگ‌ها و bindها، همانقدر مهم است که یادگرفتن همه سینتکس‌ها.و وقتی گیر کردید و هیچ چیز کار نمی‌کرد، سراغ اردک حمام بروید.پس بروید و اردک حمام خودتان را پیدا کنید؛ چه همان اردک زردپوش کلاسیک باشد و چه اردکی که لباس دزد دریایی تنش است. اردکی را انتخاب کنید که با آن راحتید و با ویژگی‌های شخصیتی‌تان سازگار است.شروع کنید؛ با او حرف بزنید، سوال بپرسید، مشکلاتتان را بلند برایش توضیح دهید، گره‌های توی ذهنتان را باز کنید و یک کد عالی تحویل بدهید.همانطور که کریس پاین (Chris Pine) به خوبی گفته است:«در برنامه‌نویسی مهم نیست که چه چیزی بلدید، مهم این است که جواب کدام مسئله‌ را می‌توانید پیدا کنید.»ترجمه‌ای از:3 Amazing Ways To Write Simple Code, The Startupمنبع: https://bit.ly/2ooZy4fبرای مطالعه پست‌های بیشتر ما را در وبلاگ کارادمی و یا در ویرگول دنبال کنید.</description>
                <category>Karademy Coding Bootcamp</category>
                <author>Karademy Coding Bootcamp</author>
                <pubDate>Thu, 03 Oct 2019 10:09:21 +0330</pubDate>
            </item>
            </channel>
</rss>