<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های کنج صمیمی کامپیوتریا | Debug Valley</title>
        <link>https://virgool.io/feed/@debugvalley</link>
        <description>در دیباگ‌ولی ما سعی می‌کنیم از دغدغه‌ها حرف بزنیم و برای ادامه مسیر بینش کسب کنیم | لینک کانال تلگرامی ما: https://t.me/debugvalley</description>
        <language>fa</language>
        <pubDate>2026-04-15 04:34:16</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/785524/avatar/OC3Ejy.png?height=120&amp;width=120</url>
            <title>کنج صمیمی کامپیوتریا | Debug Valley</title>
            <link>https://virgool.io/@debugvalley</link>
        </image>

                    <item>
                <title>دوست دارم هوش مصنوعی و ماشین لرنینگ بیاموزم. از کجا باید شروع کنم؟</title>
                <link>https://virgool.io/@debugvalley/%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B1%D9%85-%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-%D9%88-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%D9%84%D8%B1%D9%86%DB%8C%D9%86%DA%AF-%D8%A8%DB%8C%D8%A7%D9%85%D9%88%D8%B2%D9%85-%D8%A7%D8%B2-%DA%A9%D8%AC%D8%A7-%D8%A8%D8%A7%DB%8C%D8%AF-%D8%B4%D8%B1%D9%88%D8%B9-%DA%A9%D9%86%D9%85-ave87tp0ymv4</link>
                <description>من در فروشگاه محصولات اپل کار می‌کردم. اما به دنبال یک تغییر بودم. می‌خواستم محصولاتی که در فروشگاه ارائه می‌کردم را خودم بسازم.شروع به گشت و گذار در دنیای ماشین لرنینگ و هوش مصنوعی کردم... دنیای خیلی بزرگی بود. به نظر می‌رسید هر هفته شرکت‌های بزرگی مثل گوگل یا فیسبوک دارند از تکنولوژی جدیدی از هوش مصنوعی رونمایی می‌کنند تا همه چیز را سریع‌تر و تجربه ما را لذت‌بخش‌تر کنند.بهتر است از تعداد شرکت‌‎هایی که اتومبیل‌های هوشمند می‌سازند حرفی نزنم؛ با این که این اتومبیل‌ها خیلی مفید هستند. من هم خیلی از رانندگی خوشم نمی‌آید. جاده‌ها خطرناک هستند.با وجود این همه رویداد‌های مختلف پیرامون هوش مصنوعی، هنوز نمی‌توان بر سر یک تعریف دقیق از هوش مصنوعی به توافق رسید.بعضی‌ها اعتقاد دارند که یادگیری عمیق را می‌توان همان هوش مصنوعی در نظر گرفت. در حالی که برخی دیگر می‌گویند نمی‌توان چیزی را هوش مصنوعی در نظر گرفت مگر این که بتواند تست‌های Turing را پاس کند.مشخص نبودن تعریف دقیق از هوش مصنوعی روند یادگیری من را در ابتدا خیلی کند کرد. خیلی سخت بود چیزی را یاد بگیرم که چندین تعریف مختلف داشت.من چگونه شروع کردم؟من و دوستانم مشغول ساخت یک استارت‌آپ بودیم، که شکست خورد. ما هم به خاطر بی‌انگیزگی بیخیال شدیم. اما در حین ساخت این استارت‌آپ روز به روز درباره‌ی AI و ML می‌شنیدیم...&quot;کامپیوتر بعضی موضوعات را برایتان یاد می‌گیرد؟&quot; این جمله خیلی برای من جالب بود.حین جست و جو در مورد AI به صورت اتفاقی به دوره Udacity’s Deep Learning Nanodegree برخوردم. یک آدم بامزه به نام Siraj Raval در پیش‌نمایش یکی از ویدیو‌های این دوره بود. خیلی پرانرژی بود. من هم بدون این که پیش‌نیاز‌ها را رعایت کرده باشم در این دوره ثبت نام کردم. (من قبلا حتی یک خط کد پایتون هم ننوشته بودم.)3 هفته قبل از شروع دوره به پشتیبانی Udacity ایمیل زدم و درباره نحوه پس دادن دوره و گرفتن هزینه سوال کردم. در حقیقت من نگران بودن که نتوانم دوره را به اتمام برسانم.اما در نهایت دوره را برنگرداندم و در مدت زمان مشخص شده دوره را به پایان رساندم. که البته واقعا کار سختی بود. دو پروژه اولم را با چهار روز تاخیر تحویل دادم اما شوق من برای یادگرفتن یکی از مهم ترین تکنولوژی‌های روز، به من برای ادامه دادن دوره انگیزه داد.بعد از تمام شدن دوره یادگیری عمیق، با نمره‌ای که کسب کرده بودم می‌توانستم در دوره‌های Udacity’s AI Nanodegree، Self-Driving Car Nanodegree یا Robotics Nanodegree شرکت کنم که هر سه گزینه های خوبی بودند.و دوباره سردرگم شدم. همان سوال قدیمی &quot;حالا باید چه کار کنم؟&quot;من نیاز به تحصیلات ابتدایی در این زمینه داشتم. برای همین در دوره دیپ لرنینگ شرکت کردم. و حالا وقت آن رسیده بود که قدم بعدی را پیدا کنم.مدرک کارشناسی ارشد هوش مصنوعی خود‌ساخته‌اممن نمی‌خواستم دوباره به دانشگاه برگردم. البته 100,000$ هم برای شرکت در دانشگاه نداشتم. پس همان کاری را کردم که در ابتدا کرده بودم. از راهنمای همیشگیم، Google، درخواست کمک کردم.من مستقیما سراغ یادگیری دیپ لرنینگ رفته بودم. درواقع مسیر لازم برای فتح کردن کوه AI را طی نکرده بودم. با یک هلیکوپتر مستقیما روی قله کوه آمده بودم.بعد از جست و جو در میان انبوهی از دوره‌ها، چند دوره را که نظرم را به خود جلب کردند را پیدا کردم و آن ها را به Trello اضافه کردم.تصویر Trello دستیار شخصی من برای پیدا کردن دوره‌ها در وب البته من می‌دانستم که دوره‌های آنلاین بالاترین نرخ نصفه رها کردن دوره را دارند. اما به خودم اجازه نمی‌دادم من هم جزو آن دسته از افراد باشم. من وظیفه‌ای برای خودم داشتم.برای این که خودم را مسئولیت‌پذیرتر کنم، شروع به اشتراک‌گذاری فعالیت‌هایم در مسیر یادگیری‌ام کردم. متوجه شدم که می‌‎توانم آن چیزی که از دوره‌ها یاد می‌گیرم را تمرین کنم و افراد دیگری مثل خودم را پیدا کنم که علایق مشترکی داریم. دوستانم فکر می‌کردند که من یک موجود فضایی هستم که برای فرار از زندگی روزمره به مخفی‌گاهم می‌روم و درباره‌ی AI جست‌وجو میکنم.من نمایش Trelloرا برای عموم آزاد گذاشتم و درباره تلاش‌هایم در وبلاگم پست گذاشتم.برنامه یادگیریم کمی نسبت به آنچه از اول نوشته بودم تغییر کرد اما همچنان به موضوعات مورد علاقم نامربوط نبود. هر هفته Trelloرا چک می‌کردم تا برنامه‌ام را زیر نظر داشته باشم.پیدا کردن شغلمن استرالیایی هستم و به نظر می‌رسد تمام فرصت‌های شغلی و اتفاقات جدید در آمریکا رخ میدهد. برای همین منطقی‌ترین راه را انتخاب کردم و یک بلیط یک طرفه به آمریکا خریدم. حدود یک سال بود که در حال مطالعه بودم و فهمیدم الان وقت آن است که با اطلاعاتی که کسب کردم تمرین و کار عملی کنم.برنامه‌ام این بود که به سمت آمریکا بروم و در آن‌جا استخدام شوم.همان زمان‌ها بود که Ashlee به من در لینکدین پیام داد: &quot;سلام! من پست‌های تو رو در لینکدین دیدم. به نظر جالب هستن. به نظرم بهتره Mike رو ملاقات کنی.&quot;من هم با مایک ملاقات کردم. داستان خودم درباره یادگیری AI رو براش تعریف کردم و از علاقه خودم نسبت به تکنولوژی‌های حوزه سلامت و علاقم به کار در آمریکا گفتم.مایک گفت: &quot;بهتره که یک سالی اینجا بمونی و ببینی چه فرصت‌هایی پیدا می‌کنی. فکر کنم خوبه که با Cameron ملاقات کنی.&quot;من هم Camron را ملاقات کردم. همان حرف‌هایی را که به مایک گفته بودم، برای Cameron هم گفتم...او گفت: &quot;ما روی یه سری مسائل مربوط به سلامتی کار می‌کنیم. چطوره پنج‌شنبه بیای و یه نگاهی به کارهامون بکنی؟&quot;سه‌شنبه رفتم به محل کارشان. مضطرب بودم اما قبلا کسی به من گفته بود که مضطرب بودن مثل هیجان‌زده بودن است. من هم تصمیم گرفتم هیجان‌زده باشم تا مضطرب.یک روز کامل را با تیم Max Kelsen و مسائلی که روی آنها کار می‌کردند گذراندم.پنج شنبه دو هفته بعد، من و Nick،مهندس CEO و Athon مهندس ماشین لرنینگ، با هم یک قرار قهوه گذاشتیم. نیک از من پرسید که آیا به تیم ملحق می‌شوم؟ و من هم پاسخ دادم: &quot;البته!&quot;اشتراک‌گذاری فعالیت‌هایتانآموزش آنلاین، می‌دانم که آن زمان خیلی مرسوم نبود. تمام شغل‌هایی که می‌خواستم برای آن‌ها استخدام شوم نیاز به مدرک کارشناسی ارشد یا دیگر مدرک‌های رسمی داشتند. من هیچکدام از این مدرک‌ها را نداشتم. تمام آن چیزی که داشتم دانش و اطلاعاتی بود که از دوره‌های آنلاین کسب کرده بودم.در طول مسیر یادگیری، من همواره فعالیت‌هایم را به اشتراک میگذاشتم. همه پروژه‌هایی که انجام داده بودم در گیت‌هابم بود. لینکدینم از پست‌هایم پر شده بود و تمرین کرده بودم که چطور هر چیزی که یاد می‌گیرم را در یوتیوب و مقاله‌های مدیوم به اشتراک بگذارم.من هرگز رزومه‌ای به Max Kelsen تحویل ندادم. چون گفته بود که صفحه لینکدین مرا دیده. رزومه من همان فعالیت‌هایم بود که این همه مدت انجام می‌دادم و به اشتراک می‌گذاشتم.جدا از این که آیا در حال یادگیری در یک دانشگاه هستید یا از دوره های آنلاین استفاده می‌کنید‌‎، به اشتراک گذاشتن نمونه‌کارهایتان می‌تواند یک رزومه خوب برای شما باشد.درست است که افراد کاربلد در زمینه ماشین لرنینگ و هوش مصنوعی در دنیا مورد نیاز و تقاضا هستند، اما دلیل نمی‌شود بدون دیدن نمونه کار‌های شما، استخدامتان کنند. حتی بهترین محصولات دنیا هم بدون معرفی و تبلیغات فروش نمی‌روند.چه در گیت‌هاب باشد یا Kaggle یا لینکدین یا وبلاگ یا هر جای دیگر، فعالیتتان را به اشتراک بگذارید تا یک رزومه برای شما باشد. علاوه بر آن، این که یک گوشه از اینترنت متعلق به شما باشد چیز جذابیست.چطور باید شروع کنید؟از کجا باید شروع کرد؟ کدام دوره‌ها بهتر هستند؟هیچ پاسخ ثابتی برای این سوالات نیست. مسیر هر کس با دیگری متفاوت است. بعضی‌ها با خواندن کتاب‌ها بهتر یاد می‌گیرند و بعضی دیگر با ویدیو دیدن.مهم تر از سوال &quot;چگونه شروع کنم؟&quot; سوال &quot;چرا باید شروع کنم؟&quot; است. با همین پرسش آغاز کنید.برای چه می‌خواهید این مهارت‌ها را بیاموزید؟ برای کسب درامد؟ برای این که ساخته خودتان را داشته باشید؟ می‌خواهید تحولی ایجاد کنید؟ باز هم پاسخ صحیحی وجود ندارند. همه پاسخ‌ها در محل مناسبشان می‌توانند صحیح باشند.با پرسش &quot;چرا؟&quot; شروع کنید زیرا دانستن علت شروع کار خیلی مهم‌تر از دانستن چگونگی شروع کار است. دانستن چرایی به این معناست که وقتی کارتان سخت شد، مطمئن باشید می‌شود، شما هدفی دارید که می‌توانید به آن رجوع کنید. هدفی که به شما یادآوری می‌کند چرا این مسیر را آغاز کردید.اگر هدفتان را مشخص کردید، حالا وقت یادگیری مهارت است.تنها می‌توانم مسیری که خودم طی کردم را پیشنهاد کنم. من برای یادگیری AI این دوره‌ها را طی کردم: Treehouse – Introduction to Python DataCamp – Introduction to Python &amp; Python for Data Science Track Udacity – Deep learning &amp; AI Nanodegree Coursera – Deep Learning by Andrew Ng Fast.ai – Part1, soon to be Part 2تمام این دوره‌ها در سطح جهانی هستند. من یادگیری بصری بهتری دارم. با دیدن بهتر یاد می‌گیرم تا خواندن و نحوه آموزش همه‌ی این دوره‌ها از همین نوع است.اگر که کاملا مبتدی هستید، با یادگیری مقدماتی زبان برنامه نویسی Python شروع کنید. اما اگر از بابت پایتون به خودتان اطمینان دارید، دیتا ساینس و ماشین لرنینگ و هوش مصنوعی را آغاز کنید. دوره DataCamp گزینه بسیار خوبی برای کسانیست که می‌خواهند پایتون را یاد بگیرند و درعین حال تمرکزشان بر دیتا ساینس و ماشین لرنینگ باشد.چقدر ریاضی نیاز است؟بیشترین تحصیلات آکادمیکی که از ریاضی داشتم در دبیرستان بود. در ادامه آن، هر چقدر که علم ریاضی نیاز داشتم از Khan Academy یاد گرفتم.نظرات زیادی در مورد این که چقدر ریاضی برای یاد گرفتن AI و ML نیاز دارید وجود دارد. من هم نظر خودم را با شما مطرح میکنم.اگر می‌خواهید که روش های ML و AI را برای حل یک مسئله به کار ببرید، برای این که نتایج خوبی کسب کنید لزوما نیاز به درک عمیقی از ریاضیات ندارید.استفاده از کتابخانه هایی مانند TensonFlow و PyTorch، افرادی که تنها تجربه کمی از پایتون داشته باشند را هم قادر می‌سازد تا مدل‌های پیشرفته AI بسازند. قسمت ریاضی این مدل‌ها پشت صحنه توسط خود این کتابخانه‌ها انجام می‌شود.اما اگر به دنبال آن هستید که در علم AI و ML عمیق شوید و مثلا برای مدرک PhD روی یک پروژه AI کار کنید، درک عمیق شما از ریاضیات خیلی سودمند است.من به شخصه دنبال این نیستم که در ریاضیات عمیق شوم تا برای مثال بتوانم کارایی یک الگوریتم را 10 درصد بهبود بدهم. این کار را برای افرادی باهوش‌تر از من می‌گذارم.من به جای آن، با حل مسئله‌های کوچک‌تر با استفاده از ابزار‌ها و کتابخانه‌های موجود شادتر هستم.یک مهندس ماشین لرنینگ دقیقا چه کار میکند؟کاری که یک مهندس ماشین لرنینگ در عمل می‌کند، ممکن است چیزی نباشد که شما فکر می‌کنید.بر خلاف کاور مجله‌هایی که درباره AI می‌بینید، مهندسی ماشین لرنینگ و AI همیشه درباره ساخت ربات‌هایی با چشم‌های نوری قرمز نیست.یک لیست از سوال‌هایی که یک مهندس ماشین لرنینگ لازم است هر روز از خودش بپرسد را برایتان آورده‌ام.زمینه –ماشین لرنینگ چگونه می‌تواند به تو کمک کند که مسئله‌ات را بهتر بشناسی؟داده – آیا به داده‌های بیشتری نیاز داری؟ نیاز داری داده‌هایت به چه فرمی باشند؟ مشکل کمبود داده را چطور حل می‌کنی؟مدل‌سازی – از چه مدلی باید استفاده کنی؟ آیا این مدل با داده‌هایی که در اختیار داری به خوبی کار می‌کند؟ یا اگر نه، چرا به درستی کار نمی‌کند؟تولید – چگونه می‌توانی مدل خود را به مرحله تولید برسانی؟ آیا مدلت باید برخط باشد یا بهتر است در فواصل زمانی مختلف به روز شود؟تداوم – اگر مدلت شکست بخورد چه می‌شود؟ چگونه می‌توانی مدلت با داده‌های بیشتری ارتقا بدهی؟ آیا راه‌های بهتری برای حل بعضی مسائل وجود دارد؟این سوالات را از یک مقاله عالی از Rachel Thomas، یکی از بنیان‌گذاران fast.ai قرض گرفتم. خودش در مقاله‌اش بیشتر به این موضوع می‌پردازد.برای درک بهتر، من یک ویدیو از اهدافمان در طول یک هفته در Max Kelsen درست کردم.مسیر مشخصی وجود نداردهیچ راه درست یا غلطی برای رسیدن به ML یا AI (یا هر چیز دیگر) وجود ندارد.نکته جالب در مورد این رشته این است که ما به بسیاری از تکنولوژی‌های عالی در دنیا دسترسی داریم. تنها کاری که باید بکنیم این است که یاد بگیریم چگونه از آنها استفاده کنیم.می‌توانید با یادگرفتن کدنویسی پایتون شروع کنید. (راه مورد علاقه خودم)می‌توانید با یادگیری آمار و محاسبات شروع کنید.می‌توانید با مطالعه در مورد فلسفه تصمیم‌گیری شروع کنید.ماشین لرنینگ و AI  من را مجذوب خودشان می‌کنند زیرا ترکیبی از همه این علم‌هاست. هر چه بیشتر در مورد آن یاد می‌گیرم، بیشتر متوجه می‌شوم که هنوز خیلی چیزها برای یادگیری در این علم مانده و این موضوع من را هیجان‌زده‎‌تر می‌کند.گاهی وقت‌ها از این که کدم به درستی اجرا نمی‌شود یا این که نمی‌توانم یک موضوع را متوجه شوم ناامید می‌شوم. برای همین موقتا مشکلم را رها می‌کنم و از افکار آن مسئله دور می‌شوم و با یک خواب کوتاه استراحت می‌کنم. شاید هم کمی پیاده‌روی کنم. اما وقتی دوباره به مسئله برمی‌گردم حس می‌کنم مسئله را از دیدی کاملا متفاوت می‌بینم. اشتیاق دوباره به من برمی‌گردد و دوباره شروع به یادگیری می‌کنم. به خودم می‌گویم: &quot;من یک ماشین یادگیری هستم!&quot;هر روز اتفاقات زیادی در این رشته رخ می‌دهد. این موضوع می‌تواند در هنگام شروع دلهره‌آور باشد. گزینه‌های زیاد، بیشتر از آزادی عمل، سردرگمی می‌آورند. از وسیع بودن این رشته نترسید.از هر جایی که بیشتر از همه شما را جذب می‌کند شروع کنید و آن را دنبال کنید. اگر به بن‌بست خوردید، عالیست. شما یک موضوع جدید که به آن علاقه‌ای ندارید را پیدا کرده‌اید. چند قدم به عقب برگردید و شاخه‌ای دیگر از مسیری که در آن قرار گرفته‌اید را تجربه کنید.کامپیوتر‌ها خیلی باهوش هستند. اما هنوز نمی‌توانند خودشان به تنهایی یاد بگیرند. به کمک شما نیاز دارند.متنی که خواندید ترجمه این مقاله است.ما را در تلگرام دنبال کنید.</description>
                <category>کنج صمیمی کامپیوتریا | Debug Valley</category>
                <author>کنج صمیمی کامپیوتریا | Debug Valley</author>
                <pubDate>Sun, 27 Feb 2022 14:46:57 +0330</pubDate>
            </item>
                    <item>
                <title>راهنمای مبتدی برای یادگیری ماشین</title>
                <link>https://virgool.io/@debugvalley/%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C-%D9%85%D8%A8%D8%AA%D8%AF%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-perndxebjai9</link>
                <description>آیا باید اکنون یاد بگیرم؟ یا بعدا؟ اساسا یادگیری یک مهارت همگانیست که توسط هر موجود زنده‌ای در این سیاره‌ی خاکی فرا گرفته می‌شود. تعریف یادگیری به این صورت است: کسب مهارت یا دانش به وسیله‌ی تجربه، مطالعه یا آموزش.مانند گیاهی که یاد می‌گیرد چگونه نسبت به نور و دما واکنش نشان دهد، میمونی که یاد می‌گیرد چگونه پوست موز را بکند و یا ما که یاد می‌گیریم چگونه دوچرخه‌سواری کنیم. این اشتراک (یادگیری) عنصریست که ما را نسبت به هم منحصربه‌فرد می‌کند و در طول زمان منجر به تکامل موجودات می‌شود.اما اگر بگویم ماشین‌ها هم می‌توانند یاد بگیرند چه؟ما در عصری زندگی می‌کنیم که ماشین‌ها تفاوت چندانی ندارند. یادگیری ماشین یک مفهوم نسبتا جدید است. ما می‌توانیم به ماشین‌ها بیاموزیم چگونه یاد بگیرند و حتی برخی از آن‌ها می‌توانند به تنهایی و بدون نیاز به ما یاد بگیرند. این پدیده‌ی جادویی «یادگیری ماشین» نامیده می‌شود.امیدوارم این مقاله بینش‌ مفیدی به شما ارائه دهد و ذهنتان را نسبت به کارهایی که امروزه کامپیوترها می‌توانند انجام دهند نزدیک کند. من قصد ندارم به صورت جزئی به این که یادگیری ماشین چیست بپردازم، بلکه می‌خواهم مروری کلی بر روی مفاهیم پایه‌ای آن داشته باشم.اگر تنها یک چیز وجود داشته باشد که باید از این مقاله بیاموزید، آن این است که:ماشین‌ها می‌توانند آینده را پیش‌بینی کنند، اما فقط تا زمانی که نسبت به گذشته تفاوت چندانی نداشته باشد.یادگیری ماشین چیست؟یادگیری ماشین به جای برنامه‌نویسی با استفاده از یک سری قوانین مشخص و خاص، از یک کامپیوتر برای تشخیص الگوها از روی مثال‌ها استفاده می‌کند. این الگوها از داده‌ها استخراج می‌شوند.«یادگیری = یافتن الگوهای داده»         «ماشین = کامپیوتر یا ماشین شما»یادگیری ماشین درمورد چیست؟ایجاد الگوریتم‌هایی که از توابع پیچیده‌ی (الگوها) داده‌ها یاد می‌گیرند چگونه آن داده را پیش‌بینی کنند.اساسا می‌توان آن را در سه مرحله خلاصه کرد:1. گرفتن داده به عنوان ورودی2. پیدا کردن الگو از روی داده ورودی3. پیش‌بینی الگوهای جدیدکاربردهای یادگیری ماشین:پیش از آن که شروع کنیم؛ مروری کلی بر روی برخی توانایی‌هایی که یادگیری ماشین امکان آن‌ها را به ما می‌دهد داشته باشیم:مراقبت‌های پزشکی: پیش‌بینی واکنش‌های فیزیکی بیمار برای پزشک.شبکه‌های اجتماعی: پیش‌بینی اولویت‌های مشخص برای سازگاری بیشتر میان اعضای یک وبسایت دوست‌یابی.امور مالی: پیش‌بینی چگونگی وقوع یک کلاه‌برداری از کارت‌های اعتباری.تجارت الکترونیک: پیش‌بینی روند ریزش مشتریان.زیست‌شناسی: پیدا کردن الگوهایی در جهش‌های ژنتیکی که می‌توانند از علائم سرطان باشند.ماشین‌ها چگونه یاد می‌‎گیرند؟برای سادگی فقط بدانید که ماشین‎‌ها با پیدا کردن الگو‎ها در داده‌های مشابه «یاد می‌گیرند». داده‌ها را به عنوان اطلاعاتی که از دنیا بدست می‌آورید، در نظر بگیرید. هرچه داده‌های بیشتری به ماشین داده شود، ماشین هوشمندتر می‌شود.اما همه‌ی داده‌ها یکسان نیستند. تصور کنید که یک دزد دریایی هستید و ماموریت شما این است که گنج مدفون را در جایی از جزیره پیدا کنید. برای یافتن گنج، به اطلاعات کافی نیاز دارید. این اطلاعات که داده‌های شما هستند، می‌توانند شما را به مسیر درست یا جهت اشتباه هدایت کنند.هرچه اطلاعات/داده‌های بهتری به دست آید، عدم اطمینان کمتر می‌شود و بالعکس. بنابراین در نظر داشتن نوع داده‌ای که برای یادگیری به ماشین خود می‌دهید، امری مهم است.«داده‌های بیشتر مدل‌های بهتر را شکست می‎‌دهند. داده‌های بهتر، داده‌های بیشتر را شکست می‎‌دهند.»Riley Newmanبا این وجود، پس از ارائه مقدار کافی داده، دستگاه می‌تواند پیش‌بینی کند. ماشین‌ها می‌توانند آینده را تا زمانی که خیلی متفاوت از گذشته به نظر نرسد، پیش‌بینی کنند.ماشین واقعا با استفاده از داده‌های قدیمی برای بدست آوردن احتمال وقایع آینده، یاد می‌گیرد.اگر داده‌های قدیمی شباهت زیادی به داده‌های جدید دارند، چیزهایی که می‌توانید در مورد داده‌های قدیمی بگویید، احتمالا به داده‌های جدید مرتبط خواهند بود. همانند نگاه کردن به گذشته برای حرکت به سوی آینده است.انواع یادگیری ماشینسه دسته اصلی برای یادگیری ماشین وجود دارد:یادگیری نظارت‌شده (Supervised learning): ماشین از داده‏‌های برچسب‌گذاری شده یاد می‌گیرد. به طور معمول، داده‌ها توسط انسان برچسب‌گذاری می‌شوند.یادگیری بدون نظارت (Unsupervised learning): ماشین از داده‌های بدون برچسب یاد می‌گیرد. به این معنی که هیچ پاسخ درستی برای یادگیری به ماشین داده نشده است، اما ماشین الگو‎هایی را از داده‌ها پیدا می‌کند تا بتواند به یک جواب برسد.یادگیری تقویتی یا کمکی (Reinforcement learning): ماشین از طریق یک سیستم مبتنی بر پاداش یاد می‌گیرد.1. Supervised Machine Learningیادگیری تحت نظارت رایج‌ترین و مورد مطالعه‌ترین نوع یادگیری است، زیرا آموزش ماشین برای یادگیری با داده‌های برچسب‌دار آسان‌تر از داده‌های بدون برچسب است. بسته به آنچه می‌خواهید پیش‌بینی کنید، یادگیری نظارت‌شده می‌تواند برای حل دو نوع مشکل استفاده شود: رگرسیون (Regression) و طبقه‌بندی (Classification).Regression:اگر بخواهید مقادیر پیوسته را پیش‌بینی کنید، مانند تلاش برای پیش‌بینی هزینه یک خانه یا آب و هوای بیرون بر حسب درجه، از رگرسیون استفاده می‌کنید. این نوع مشکل محدودیت مقدار خاصی ندارد زیرا مقدار می‌تواند هر عددی بدون محدودیت باشد.Classification:اگر بخواهید مقادیر گسسته را پیش‌بینی کنید، مانند طبقه‌بندی اشیاء در دسته‌های مختلف، از Classification استفاده می‌کنید.برای مثال مشکلی مانند: «آیا اون این خرید را انجام خواهد داد؟» پاسخی خواهد داشت که به دو دسته تقسیم می‌شود: بله یا خیر که گسسته هستند، به این مشکل binary classification نیز می‌گویند.2. Unsupervised Machine Learningاز آنجایی که هیچ داده‌ی برچسب‌‎گذاری شده‌ای برای یادگیری ماشین‌ها وجود ندارد، هدف یادگیری ماشینی بدون نظارت، شناسایی الگو‎ها در داده‌ها و گروه‌بندی آن‌ها است. یادگیری بدون نظارت مختص ماشین‌هایی است که سعی می‌کنند به تنهایی و بدون کمک یاد بگیرند. تصور کنید کسی انبوهی از داده‌ها را به شما می‌دهد و می‌گوید: «برو پسر، چند الگو پیدا کن و آن‌ها را برای من گروه‌بندی کن. با تشکر.» بسته به آنچه می‌خواهید با هم گروه‌بندی کنید، یادگیری بدون نظارت می‌تواند توسط دو روش داده‌ها را گروه‌بندی کند: خوشه بندی (clustering) و association.Clustering:یادگیری بدون نظارت سعی در حل این مشکل با جستجوی شباهت‌ها در داده‌ها دارد. اگر یک خوشه یا گروه مشترک وجود داشته باشد، الگوریتم آن‌ها را به شکل خاصی دسته‌بندی می‌کند. نمونه‌ای از این می‌تواند تلاش برای گروه‌بندی مشتریان بر اساس رفتارهای خرید آن‌ها باشد.Association:یادگیری بدون نظارت با تلاش برای درک قوانین و معنای پشت گروه‌‎های مختلف سعی در حل این مشکل دارد. یافتن رابطه بین خریدهای یک مشتری، مثالی رایج از این نوع مسئله است. فروشگاه‌ها ممکن است بخواهند بدانند چه نوع محصولاتی با هم خریداری شده‌اند و احتمالا می‌توانند از این اطلاعات برای سازماندهی محل قرارگیری محصولات در فروشگاه برای دسترسی آسان‌تر استفاده کنند. یکی از فروشگاه‌ها متوجه شد که ارتباط قوی بین مشتریانی که آبجو و پوشک بچه می‌خرند وجود دارد. آنها از این بیانیه استنباط کردند که مردانی که برای خرید پوشک برای نوزادان خود به بیرون رفته بودند، تمایل به خرید آبجو نیز دارند.3. Reinforcement Machine Learningاین نوع یادگیری ماشینی مستلزم استفاده از سیستم پاداش/جریمه است. هدف این است که وقتی ماشین به درستی یاد می‌گیرد، پاداش داده شود و وقتی ماشین اشتباه یاد می‌گیرد، جریمه ‎شود.یادگیری ماشین تقویتی یا کمکی زیرمجموعه‌ای از هوش مصنوعی است. با طیف گسترده‌ای از پاسخ‌های ممکن از داده‌ها، فرآیند این نوع یادگیری یک فرایند تکراری است یعنی پیوسته یاد می‌گیرد.مثال‌هایی از Reinforcement Learning:آموزش ماشین برای یادگیری نحوه بازی (برای مثال آموزش شطرنج)آموزش ماشین برای یادگیری و بازی سوپرماریو به تنهاییخودرو‎های خودران (Self-driving cars)یادداشت‌های پایانی:این یک مقاله به‌روز شده در مورد پست قدیمی من درباره یادگیری ماشین است. امیدوارم چیزی یاد گرفته باشید! اگر چیزی هست که دوست دارید به این مقاله اضافه کنید، در صورت تمایل پیام بگذارید. از هر نوع بازخورد واقعا قدردانی می‌شود. از اشتراک‌گذاری آن نترسید! با تشکر!متنی که خواندید ترجمه این مقاله است.ما را در تلگرام دنبال کنید.</description>
                <category>کنج صمیمی کامپیوتریا | Debug Valley</category>
                <author>کنج صمیمی کامپیوتریا | Debug Valley</author>
                <pubDate>Sat, 12 Feb 2022 13:11:45 +0330</pubDate>
            </item>
                    <item>
                <title>6 زبان برنامه‌نویسی که نباید آن‌ها را بیاموزید و در عوض چه بیاموزید</title>
                <link>https://virgool.io/@debugvalley/6-%D8%B2%D8%A8%D8%A7%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%DA%A9%D9%87-%D9%86%D8%A8%D8%A7%DB%8C%D8%AF-%D8%A2%D9%86%E2%80%8C%D9%87%D8%A7-%D8%B1%D8%A7-%D8%A8%DB%8C%D8%A7%D9%85%D9%88%D8%B2%DB%8C%D8%AF-%D9%88-%D8%AF%D8%B1-%D8%B9%D9%88%D8%B6-%DA%86%D9%87-%D8%A8%DB%8C%D8%A7%D9%85%D9%88%D8%B2%DB%8C%D8%AF-gxq9ovfkdxjh</link>
                <description>یادگیری یک زبان برنامه‌نویسی جدید معمولا یک سفر هیجان‌انگیز است. شما اگر مبتدی باشید یا حرفه‌ای، همواره مایلید بهترین تصمیم را درمورد آنچه می‌خواهید یاد بگیرید، اخذ کنید.یادگیری یک چیز جدید معمولا وقت زیادی از شما می‌گیرد. نه فقط زمان بلکه انرژی و کل وجود شما را به خود اختصاص می‌دهد. به عبارت دیگر شما باید فداکاری کنید.بنابراین شما باید در مورد اینکه می‌خواهید چه چیزی را یاد بگیرید تحقیق کنید و ثابت قدم باشید. در ادامه به 5 زبان برنامه‌نویسی اشاره شده است که نباید آنها را یاد بگیرید. به شما خواهم گفت علت آن چیست.1.زبان Objective-C برنامه‌نویسی همانند سایر بخش‌های دنیا در حال تکامل و پیشرفت است. شرکت‌های بزرگ فناوری، سرمایه‌گذاری زیادی برای تکامل زبان‌های برنامه‌نویسی می‌کنند.آن‌ها این کار را با نگاه کردن به معایب زبان‌های فعلی و سپس ایجاد زبان‌های جدیدتر که کارآمدتر هستند انجام می‌دهند.در مرکز این تکامل Objective-C قرار دارد که زبان اصلی در macOS و IOS بود. اپل معایب آن را بررسی کرد و تصمیم گرفت زبانی مشابه اما مناسب و مفیدتر برای آینده بسازد و اینگونه بود که swift ساخته شد.زبان Swift در WWDC 2014 ایجاد و معرفی شد که از Objective-C الگو برداری شد و تبدیل به نسخه‌ی بهتری از آن شد و از آن زمان تراکنش بیشتری نسبت به Objective-C به‌دست آورده است.اپل swift را به عنوان زبان پیشنهادی برای IOS اعلام کرده است. آن‌ها swift را معروف و کم کم Objective-C را از عرصه خارج می‌کنند.پس در عوض چه چیزی یاد بگیریم؟ Swiftبه جای یادگیری Objective-C بهتر است Swift یاد بگیرید زیرا اپل قصد دارد Swift را به زبان اصلی تمام محصولات خود تبدیل کند. در پایین تصاویری وجود دارد که مزایای Swift را نسبت به Objective-C نشان می‌دهد.2. زبان Java بر اساس رتبه‌بندی TIOBE تا ژانویه‌ی 2022، Java  به عنوان سومین زبان محبوب رتبه‌بندی شده است.آیا سوم بودن در چنین رتبه بندی‌ای برای یادگیری زبان جدید معنای خاصی دارد؟ برای اغلب افراد جواب مثبت خواهد بود. سوم شدن در چنین رتبه‌بندی‌ای چیزی نیست که بتوان آن را نادیده گرفت.اما بیایید با نگاهی منتقدانه به این موضوع نگاه کنیم. اگر سال‌ها پیشتر بود پاسخ مثبت بود، اما در سال 2022 جواب صادقانه خیر است. Java الان مانند یک شخص پیر است. بهتر است به divas های اخیر فرصت بدهیم. آن‌ها سزاوار این فرصت هستند.پرکاربردترین سیستم عامل دنیا اندروید است که برای برنامه‌های خود از زبان جاوا استفاده می‌کرد. اما گوگل جاوا را بخاطر Kotlin کنار گذاشته است. در سال 2019 آن‌ها Kotlin را به عنوان زبان پیشنهادی خود برای ایجاد برنامه‌های اندرویدی اعلام کردند.پس در عوض چه چیزی یاد بگیریم؟ Kotlin یا Scalaاعلام شدن Kotlin به عنوان زبان برگزیده برای برنامه های اندروید در سال 2019 چیز کمی نیست. این بدان معناست که سازندگان، برنامه‌های عظیمی برای این زبان در آینده دارند.شما می‌خواهید زبانی را بیاموزید که اثبات آینده باشد و محبوبیت آن در آینده افزایش یابد، نه برعکس.3. زبان‌های HTML و CSS زبان‌های HTML و CSS خیلی مشهور هستند. بیشتر برنامه‌نویسان تازه کار کورکورانه به سمت این دو زبان کشیده می‌شوند. عکس زیر محبوبیت این دو زبان را نشان می‌دهد.این دو در رتبه‌ی دوم پس از جاوا اسکریپت قرار دارند. برخلاف جاوا اسکریپت این دو زبان فقط به frontend اختصاص دارند. آیا قرار داشتن در جایگاه دوم به این معنی است که باید این زبان‌ها را یاد بگیرید؟ قطعا خیر.اکثر برنامه‌نویسان جدید این زبان‌ها را به عنوان اولین زبان‌هایی که یاد می‌گیرند انتخاب می‌کنند و در نهایت بیشترین استفاده را از زمان خود نمی‌برند. این به این دلیل است که آن‌ها در این دو زبان خیلی عمیق می‌شوند و در نهایت زمان زیادی را روی آن‌ها سرمایه‌گذاری می‌کنند.مهم‌ترین عاملی که باید در انتخاب یک زبان برنامه‌نویسی برای یادگیری در نظر گرفت، نحوه استفاده از آن زبان است. استفاده به معنای آن چیزی است که پس از تسلط بر زبان قصد دارید با زبان به آن برسید.زبان‌های HTML و CSS مورد استفاده برای فرانت‌اند هستند. عمیق پرداختن و سرمایه‌گذاری زمان زیاد روی آن‌ها، حداکثر بهره‌وری زمانی را به شما نمی‌دهد.این زمان می‌تواند صرف یادگیری زبانی شود که تا زمان پرداختن به توسعه وب به شما کمک کند. زبانی که بتواند در backend نیز استفاده شود. زبانی که ارزش عمیق شدن را دارد و می‌تواند هدفی که در پی آن هستید را به نحو احسن برآورده کند.در عوض چه چیزی یاد بگیریم؟ جاوا اسکریپتعکس زیر نشان می‌دهد که وب‌سایت‌های محبوب از چه چیزی در front خود استفاده می‌کنند. جاوا اسکریپت به طور قانع‌کننده‌ای قدرت یا غول غالب در قسمت frontend است.ورود عمیق به HTML و CSS در مقایسه با رفتن مستقیم به سراغ جاوا اسکریپت احتمالاً برای یک تازه‌کار مزایای زیادی ندارد.آشنایی با این زبان همچنین امکان کاوش در قسمت backend را فراهم می کند.یادگیری اصول اولیه HTML و CSS ضرری ندارد؛ به احتمال زیاد به نفع یک برنامه‌نویس است اما عمیق شدن روی این زبان ها ارزشش را ندارد. شما با جاوا اسکریپت خیلی بهتر خواهید بود.4. زبان PHP وقتی به backend فکر می‌کنید، بیشتر توسعه‌دهندگان جدید به سمت یادگیری PHP می‌روند. هنگامی که صحبت از ساخت وب‌سایت‌هایی با backend می‌شود، استفاده از این زبان به همراه HTML و CSS رایج شده است.زبان PHP یک زبان پشتیبان یا سمت سرور است. وقتی صحبت از یادگیری زبان‌های سمت سرور به میان می‌آید، کاندیدای خوبی است زیرا در مقایسه با زبان‌هایی مانند جاوا، موانع کمی برای ورود دارد.این زبان معایب شناخته‌شده خود را دارد. برای مثال، تا آن‌جایی که مقیاس‌بندی در هر زبانی امکان‌پذیر است، PHP به کار سخت‌تری برای مقیاس‌بندی نیاز دارد. این به این دلیل است که به صورت پویا تایپ می شود. بسته به زمینه، یک قطعه کد ممکن است رفتار متفاوتی داشته باشد.همچنین فاقد مزایای زبان‌های برنامه‌نویسی مدرن سمت سرور است. نکته‌ی منفی دیگر این است که وقتی به توسعه برنامه‌های دسکتاپ و موبایل فکر می‌کنید،  PHPزبان کاملی نیست.زبان‌های مدرن سمت سرور این معایب را برطرف کرده‌اند و مزایای دیگری نیز دارند. PHP در سال 2004 تازه بود، زمانی که مارک زاکربرگ از آن برای ساخت فیس‌بوک استفاده کرد. ما دیگر در سال 2004 نیستیم. برای ساختن سیستم‌های پیچیده تر باید به سایر زبان‌های مدرن نگاه کنیم.در عوض چه چیزی یاد بگیریم؟  Python یا Javascript یا  Goالبته PHP بد نیست، فقط به این دلیل که زبان آینده نیست شما با یک زبان مدرن خیلی بهتر خواهید بود. به عنوان یک توسعه‌دهنده، شما به دنبال حداکثر کارایی هستید. در غیر این صورت، ممکن است بیشتر وقت خود را صرف رفع تنگناهایی کنید که به طور خودکار با یک زبان مدرن برطرف می‌شوند.صرف زمان برای یادگیری PHP بیشترین سود را برای شما به همراه نخواهد داشت. گذراندن وقت خود با یک زبان مدرن‌تر که می‌توانید برای استفاده‌های دیگر به غیر از Backend استفاده کنید، احتمالاً برای شما سود بیشتری خواهد داشت.5. زبان C در شاخص TIOBE، زبان C در ژانویه 2022 دومین زبان محبوب است. این زبان پس از پایتون در رتبه دوم قرار دارد.اما آیا محبوبیت به این معنی است که برای آینده خوب است؟ به دلایل علمی و تولیدی، شاید بله. اما بیایید کمی عمیق‌تر کاوش کنیم.این زبان مطابق تصویر زیر در ماه مه 2020، با پیشی گرفتن از پایتون به رتبه اول رسید.برای تعیین اینکه آیا در آینده ارزشش را حفظ خواهد کرد یا نه، باید بدانیم که چه چیزی منجر به افزایش ناگهانی محبوبیت آن در سال 2020 شد. در زیر نظری از مدیر عامل TIOBE در مورد دلیل احتمالی اینکه C به نقطه شماره یک شلیک کرد آورده شده است.زبان‌های Java و C در ماه آوریل بسیار نزدیک بودند، اما C در این ماه دوباره از جاوا پیشی گرفت. آخرین باری که Cشماره یک بود در سال 2015 بود. ما صرفا می‌توانیم حدس بزنیم که چرا C دوباره شماره یک است. یکی از دلایل ممکن است ویروس کرونا باشد. این ممکن است احمقانه به نظر برسد اما برخی از زبان‌های برنامه نویسی واقعاً از این وضعیت سود می‌برند. به عنوان مثال پایتون و R در حوزه علوم داده پرکاربردند زیرا همه به دنبال پادزهری برای ویروس هستند. اما محبوبیت زبان‌های نرم‌افزاری جاسازی‌شده مانند Cو C++ هم در حال افزایش است زیرا این زبان‌ها در نرم‌افزارهای دستگاه‌های پزشکی استفاده می‌شوند. - پل یانسن، مدیر عامل TIOBEدر عوض چه چیزی یاد بگیریم؟ Rust  یا Ruby البته سخت‌افزار نیز در حال تغییر است، بنابراین حضور C نمی‌تواند به طور کامل تثبیت شود. می‌دانم که این زبان مادر اکثر زبان‌ها است، اما دیر یا زود احتمالاً از آن دور می‌شویم.زبان ++C مشکلات خود را حل نمی‌کند، بلکه فقط پسوندها را اضافه می‌کند. این باعث ایجاد سربار غیر‌ضروری می شود. تسلا در واقع C را به C++ برای سیستم عامل خود ترجیح می‌دهد.تقابل C و Rust کاملاً قابل بحث است. صرف نظر از این، Rust یک زبان مدرن است که برای حل تنگناهای C/C++ طراحی شده است و در صورت بهینه‌سازی به همان اندازه سریع است. همچنین دارای کتابخانه‌هایی است که استفاده از آن را متنوع و آسان‌تر می کند.روبی نیز یک زبان مدرن است. سرعت در همه جا مهم است اما در شرایط استارت‌آپ اهمیت بیشتری دارد. اگر به دنبال حرکت سریع‌تر هستید، روبی جایگزین خوبی است.6. زبان C++ در شاخص TIOBE، C++ به عنوان چهارمین زبان برنامه نویسی محبوب رتبه بندی می‌شود.رتبه‌بندی خوب نباید کسی را وادار کند که بدون فکر و تامل به آن زبان وارد شود.برخلاف C که در وسایل کوچک، وسایل پزشکی و وسایل منزل استفاده می شود. C++ بیشتر برای ایجاد برنامه‌های مبتنی بر رابط کاربری گرافیکی استفاده می‌شود. این‌ها شامل برنامه‌های دسکتاپ، مرورگرهای وب، بازی‌ها و غیره می شود.این کار حذف ++C را آسان‌تر می‌کند، زیرا زبان‌های مدرن بهتری وجود دارند که می‌توانند کار را با سهولت و کارایی بیشتر انجام دهند.در عوض از چه چیزی استفاده کنیم؟  Rust یا Ruby         زبان Rust توسط موزیلا برای برنامه‌های دسکتاپ آن‌ها پس از اینکه از جنبه‌های منفی C++ خسته شدند ایجاد شد.از زمان ایجاد، Rust به طور پیوسته رشد کرده است و برنامه‌نویسان بیشتری آن را دوست دارند و از آن استفاده می‌کنند. در اصل، به نکات منفی C++ می‌پردازد و این یک زبان مدرن است.تقابل Rust و C++  نیز می‌تواند بحث‌انگیز باشد، اما وقتی صحبت از زبان فردی و طرح‌بندی آینده می‌شود، Rust نسبت به دست برتری داردیادگیری Rust یا Ruby نیز شما را متمایز خواهد کرد. هر دو زبانی هستند که رقابت کمی دارند و در عین حال بیشترین حقوق را دارند.  Rubiپردرآمدترین زبان برنامه‌نویسی است. این از میانگین‌های به دست آمده از Indeed و Glassdoor است.از سوی دیگر، طبق گفته The Next Web و Tech Gig  پردرآمدترین زبان برنامه‌نویسی است. این یک تحقیق مشابه بود که توسط یک موسسه آموزش فناوری، O&#x27;Reilly انجام شد. Rust زبانی بود که بالاترین میانگین حقوق را در بین توسعه‌دهندگانش داشت.متنی که خواندید ترجمه این مقاله است.ما را در تلگرام دنبال کنید.</description>
                <category>کنج صمیمی کامپیوتریا | Debug Valley</category>
                <author>کنج صمیمی کامپیوتریا | Debug Valley</author>
                <pubDate>Mon, 07 Feb 2022 20:03:03 +0330</pubDate>
            </item>
                    <item>
                <title>آینده‌ی جهان اقتصاد و تکنولوژی</title>
                <link>https://virgool.io/@debugvalley/%D8%A2%DB%8C%D9%86%D8%AF%D9%87-%DB%8C-%D8%AC%D9%87%D8%A7%D9%86-%D8%A7%D9%82%D8%AA%D8%B5%D8%A7%D8%AF-%D9%88-%D8%AA%DA%A9%D9%86%D9%88%D9%84%D9%88%DA%98%DB%8C-yituvcz6pa8b</link>
                <description>شاید با خواندن تیتر این مقاله حدس زده باشید که قرار است درباره‌ی چه چیزی با شما صحبت کنم. یکی از داغ‌ترین بحث‌های حال حاضر تکنولوژی و اقتصاد که بسیاری از دولت‌های جهان را به فکر فرو برده و برای بسیاری از افراد جهان ناشناخته است چیزی نیست جز:دنیای بلاک‌چین و رمزارزها و قراردادهای هوشمند و سیستم‌های غیرمتمرکز (decentralized systems) حالا این موضوعات چه هستند؟به چه درد می‌خورند؟چرا برخی می‌گویند آینده‌ی جهان منطبق بر این موضوعات است؟آیا می‌توانیم از این زمینه کسب درآمد کنیم؟با من همراه شو تا جواب این سوالات رو بگیری!سیستم‌های غیرمتمرکز: تصور کنید می‌خواهید با دوستانتان به سفری بروید و قرار است که جزئیات هزینه‌های سفر (این که هر کس چه روزی، چه مقداری و برای چه چیزی هزینه کرده) را ثبت کنید.یکی از دوستان پیشنهاد می‌دهد که من تمام هزینه‌ها را در دفتر خودم ثبت می‌کنم و هر کس در طول سفر خواست جزئیات هزینه‌های خودش را بداند (نه هزینه‌های دیگر افراد) من به او اطلاع می‌دهم. در انتها وقتی که سفر تمام شد به بقیه هم نشان می‌دهم که در مدت سفر هر کس چه مقدار هزینه کرده، چه کسی بیشتر هزینه کرده و چه کسی کمتر (منظور از هزینه در این مثال هزینه‌های جمعی است نه شخصی).در این روش ممکن است سوالاتی برای شما ایجاد شود: آیا شما به دوستتان اعتماد کافی دارید؟آیا ممکن است او در دفتر خود هزینه‌ای را اشتباه نوشته باشد؟ آیا در این دفتر همه‌چیز شفاف است؟با توجه به سوالات بالا همه چیز واضح است. این شیوه، شفاف و قابل اطمینان نیست.به این سیستم ثبت، دفتر متمرکز (Centralized Ledger) می‌گوییم.حال در این سفر شما پیشنهادی می‌دهید. پیشنهاد شما این است که یک دفتر همگانی در داخل هتل قرار دهیم و هر کس که هزینه‌ای می‌کند آن را داخل آن دفتر بنویسد و آن دفتر برای همه قابل رؤیت باشد (حتی هزینه‌های دیگر افراد) و هنگام ثبت هزینه توسط یک شخص بقیه آن را تأیید کنند. در این روش همه چیز شفاف است. کسی نمی‌تواند تغییری در هزینه‌ها ایجاد کند زیرا تمامی افراد باید تغییر یا ثبت مقادیر را تأیید کنند.به این سیستم ثبت، دفتر غیرمتمرکز (Decentralized Ledger) می‌گوییم.سیستم های متمرکز و غیر متمرکز  سیستم بانک‌داری و صرافی دنیا در حال حاضر توسط سیستم اول یعنی سیستم متمرکز اداره می‌شود.شما برای انتقال پول خود از یک شخص ثالث به نام بانک استفاده می‌کنید و در اصل بانک ناظر بر این قرارداد و معامله است. می‌توان گفت بانک پشتوانه‌ای بر این قرارداد می‌باشد.قراردادهای هوشمند (Smart Contracts)قبل از قراردادهای هوشمند بیایید ابتدا به قراردادهای سنتی بپردازیم.قراردادهای سنتی قراردادهایی هستند که برای انسان‌ها قابل خواندن می‌باشند و شامل توافقاتی بین طرفین قرارداد است که این توافقات با یک سری شرایط داخل قرارداد ذکر شده است.در این نوع قراردادها معمولاً یکی از طرفین در ازای پرداختی، باید وظایفی را برای طرف دیگر انجام دهد و یک وکیل بر کل این قرارداد نظارت می‌کند (سیستم متمرکز).همان‌طور که می‌توانید تصور کنید، این شخص ثالث (وکیل) به عنوان یک نقطه شکست در کل توافق عمل می‌کند. یعنی مبنای درستی قرارداد این است که وکیل یا شخص ثالث نظارت درستی انجام دهد تا به تمام توافقات طرفین، عمل شود.حال اگر یکی از طرفین با وکیل دست به یکی کند تا نظارت درست پیش نرود چه؟ در این صورت، معامله منصفانه نخواهد بود.شیوه ی عملکرد قرارداد های سنتیبا این حساب، جایگزین چیست؟ اگر ما به نحوی موفق می‌شدیم این قراردادها را برنامه‌نویسی کنیم چه؟در اینجا قراردادهای هوشمند وارد عمل می‌شوند. این قراردادها خودکار هستند و به صورت خوداجرایی (self-executing) بین طرفین برقرار می‌شوند.در حالت کلی: قراردادهای هوشمند، پروتکل‌های کامپیوتری‌ای هستند که به صورت دیجیتالی، مذاکره یا اجرای یک قرارداد را تسهیل، تأیید یا اجرا می‌کنند.بهترین بخش این نوع قرارداد این است که به دو طرف اجازه می‌دهد که مستقیماً بدون نیاز به واسطه‌گری با یکدیگر ارتباط برقرار کنند.شيوه ی عملکرد قرارداد های هوشمندبرخی مزایای قراردادهای هوشمند:خودگردان بودنامن بودنبدون وقفه بودن (قراردادهای هوشمند بدون وقفه هستند. یعنی پس از شروع اجرای آن‌ها، نمی‌توان آن‌ها را متوقف یا قطع کرد.)عدم نیاز به اعتماد به طرفین قراردادمقرون به صرفه بودنعملکرد سریع ( قراردادهای هوشمند توسط پروتکل‌های کامپیوتری اجرا می‌شوند به همین دلیل سرعت بالایی دارند.)دقیق و بدون خطا بودنبرخی زمینه‌های استفاده از قراردادهای هوشمند:سیستم رأی‌گیری دولتی: این سیستم می‌تواند به صورت قرارداد هوشمند بدون واسطه باشد و به صورت غیرمتمرکز اجرا شود که اجرای رأی‌گیری با استفاده از قرارداد هوشمند باعث می‌شود شفافیت آرا بالا رود و دست‌کاری نتایج غیرممکن شود.مشاور املاک: توسط قراردادهای هوشمند می‌توان سیستم خرید و اجاره و رهن املاک و زمین‌ها را نیز اجرایی کرد که مانند سیستم‌های دیگر باعث شفافیت می‌شود.اجرای سیستم مشاور املاک توسط قرارداد های هوشمند خدمات مالی: یکی از داغ‌ترین زمینه‌های حال حاضر قراردادهای هوشمند خدمات مالی توسط ارزهای دیجیتالی یا رمزارزها (بیت‌کوین، اتریوم و ...) می‌باشد که روز به روز در حال رشد و گسترده شدن است.ارزهای دیجیتال و رمزارزها خود دارای ساختار غیرمتمرکز و بی‌پشتوانه هستند که بر پایه قراردادهای هوشمند ایجاد شده‌اند و به عنوان یکی از ابزارهای دیگر قراردادها نیز استفاده می‌شوند.برای مثال در زمینۀ خرید و فروش املاک می‌توان از رمزارزها به عنوان واحدهای ارزش‌گذاری استفاده کرد و خرید و فروش را توسط آن‌ها انجام داد. از آن‌جایی که این ارزها بی‌پشتوانه هستند میزان قیمت و ارزش آن‌ها به شدت وابسته به میزان تأمین و تقاضای آن‌هاست؛ به همین دلیل اتفاقات مختلف می‌توانند روی ارزش آن‌ها تأثیر بگذارند و نموداری نوسانی ایجاد کنند. افراد مختلف از این روندها استفاده می‌کنند و روی این رمزارزها سرمایه‌گذاری می‌کنند.تا اینجای کار ما با قراردادهای هوشمند و ساختار غیرمتمرکز آن‌ها تا حدی آشنا شدیم اما ممکن است سوالی در ذهن ایجاد شود که: ثبت و اجرای این قراردادها توسط چه چیزی و در چه محیطی صورت می‌گیرد؟احتمالا حدس زده باشید که این قراردادها توسط زبان‌های برنامه‌نویسی و به صورت کاملا ساختاریافته و با اجرای کدهایی با دستورات IF-ELSE ایجاد می‌شوند. این قراردادها و معاملات در محیطی به نام بلاک‌چین (Blockchain) که زنجیره‌ای از بلوک‌هاست ذخیره می‌شوند.بلاک‌چین چیست؟  بلاک‌چین یک پایگاه دادۀ غیرمتمرکز و توزیع‌شده است که تمامی معاملاتی که توسط قراردادهای هوشمند انجام می‌گیرد در این پایگاه داده به صورت رمزنگاری‌شده ذخیره می‌شوند.بلاک‌چین‌ها بیشتر به خاطر نقش حیاتی خود در سیستم‌های ارزهای دیجیتال شناخته می‌شوند.بلاک‌چین را می‌توان به عنوان یک دفتر کل غیرمتمرکز نیز در نظر گرفت به طوری که تمامی معاملات در این دفتر ثبت می‌شوند و هیچ کس قابلیت تغییر، حذف و نابود کردن آن‌ها را ندارد و این معاملات برای همه شفاف است.بلاک‌چین همان‌طور که از نامش پیداست شامل بلوک‌هایی می‌باشد که به هم متصل شده و یک زنجیره‌ی بزرگ را ایجاد کرده‌اند و داخل هر کدام از این بلوک‌ها اطلاعاتی به صورت رمزنگاری شده ذخیره می‌شود که این اطلاعات با توجه به قرارداد آن‌ها می‌تواند تراکنش مالی، سند مربوط به یک خانه و ... باشد.بلوک‌ها در این زنجیره توسط کدهای هش‌شده (hash code) به بلوک‌های قبلی متصل هستند و همین امر امنیت آن‌ها را به شدت بالا می‌برد به طوری که اگر تغییری در یک بلوک ایجاد شود کد هش‌شدۀ آن تغییر کرده و در زنجیره فاقد اعتبار می‌شود.نکته‌ی مهم درباره‌ی بلاک‌چین این است که چون یک سیستم ثبت غیرمتمرکز است این اطلاعات در یک سرور مشخص به صورت متمرکز ذخیره نمی‌شود بلکه هر سیستمی که به این شبکه متصل شود یک کپی از بلاک‌چین را دریافت کرده و روی سیستم خود اجرا می‌کند که به این سیستم‌ها که شامل سیستم‌های من و شما نیز می‌شود Node می‌گوییم.فرآیند ایجاد یک معامله و قرارگیری آن در بلاکچینخب تا اینجا با کلیت این ساختار آشنا شدیم ولی هنوز متوجه نشدیم که چگونه ما به عنوان یک برنامه‌نویس می‌توانیم این قراردادهای هوشمند را ایجاد کنیم.یکی از زبان‌های برنامه‌نویسی که برای ایجاد قراردادهای هوشمند مورد استفاده قرار می‌گیرد زبان برنامه‌نویسی Solidity می‌باشد.زبان برنامه‌نویسی Solidity این زبان برنامه‌نویسی شیء‌گرا (object-oriented) و سطح بالا (high-level language) است که برای ایجاد قراردادهای هوشمند از آن استفاده می‌شود. و ساختار آن توسط زبان‌های ++C و Python و JavaScript شکل گرفته است.این زبان از قوانین ارث‌بری و برخی کتابخانه‌ها پشتیبانی می‌کند و توسط آن می‌توان قراردادهایی مانند رأی‌گیری و کیف پول‌های چند امضایی برای ذخیرۀ رمزارزها و ... را ایجاد کرد.اصلی‌ترین منبع یادگیری این زبان داکیومنت آن می‌باشد که می‌توانید یادگیری‌اش را از آن‌جا شروع کنید.یکی از نکات مهم این است که چون این زبان، زبان جدیدی می‌باشد تقاضا برای آن زیاد است و تعداد کمی از برنامه‌نویسان به این زبان مسلط هستند. به همین دلیل این یک فرصت خوب برای شروع یادگیری آن است.نتیجه‌گیری:فیلد قراردادهای هوشمند و بلاک‌چین نوپا است و روز به روز در حال رشد و گسترش است و افراد زیادی را به سمت خود می‌کشد. هرچند برخی دولت‌ها با نوع کارکرد این تکنولوژی موافق نیستند و دلیل آن هم مشخص است؛ آن‌ها دوست دارند کنترل لازم را بر روی این ساختار داشته باشند ولی با یک ساختار غیرمتمرکز طرف هستند. با روند رشد این قراردادها و تکنولوژی می‌توان پیش‌بینی کرد که آینده از آن سیستم‌های غیرمتمرکز است.نظر شما چیست؟ در کامنت‌ها برای ما بنویسید.ممنونم که این مقاله را مطالعه کردید و امیدوارم که توانسته باشم اندک اطلاعاتی در این زمینه به شما بدهم.هرگونه انتقاد، پیشنهاد و نظری دارید می‌توانید آن را به جیمیل من (baktashans@gmail.com) یا جیمیل مجموعه‌ی ما (debugvalley@gmail.com) ارسال کنید.نویسنده و گردآورنده: بکتاش انصاری مجموعه‌ی دیباگ‌‌ولی منابع: https://en.wikipedia.orghttps://docs.soliditylang.org/https://academy.moralis.io/https://www.investopedia.com/</description>
                <category>کنج صمیمی کامپیوتریا | Debug Valley</category>
                <author>کنج صمیمی کامپیوتریا | Debug Valley</author>
                <pubDate>Sat, 18 Dec 2021 16:33:49 +0330</pubDate>
            </item>
                    <item>
                <title>سلامت روانی توسعه‌دهندگان و برنامه‌نویسان</title>
                <link>https://virgool.io/@debugvalley/%D8%B3%D9%84%D8%A7%D9%85%D8%AA-%D8%B1%D9%88%D8%A7%D9%86%DB%8C-%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D8%AF%D9%87%D9%86%D8%AF%DA%AF%D8%A7%D9%86-%D9%88-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%D8%A7%D9%86-qdzx36lzvbm4</link>
                <description>&quot;هوفف!!&quot;این جمله‌­ایست که این روزها همه‌ی توسعه‌­دهندگان، برنامه‌­نویسان، دیزاینر­ها، کدنویس‌­ها، مهندسین نرم­‌افزار و هر کارمند مشغول در حوزه‌ی فناوری بعد از اتمام کارش یا هنگام رسیدن به خانه، به زبان می‌آورد.من هم به شخصه گاهی این حس را تجربه می‌کنم. داشتن تعادل در زندگی کاری، احتمالا حسی مانند یک رویا داشته باشد! اما همه‌ی ما در بعضی نقاط زندگیمان این حس را تجربه کرده­‌ایم.اخیرا همه­‌گیری بیماری باعث شده تا اکثرا در خانه کار کنیم. در این وضعیت مسائلی مانند استرس، فرسودگی دیجیتالی، افسردگی، حجم کار زیاد، مسئولیت­‌های خانوادگی، ددلاین‌­ها، باگ‌­ها، انتشار پروژه و... پیش می­‌آیند. اگر شما هم در نوشتن این مقاله مشارکت داشتید، احتمالا لیست این مشکلات طولانی‌تر هم می‌شد!وضعیت ناتوانیدر میان پاسخ­‌دهندگان، تقریبا 15 درصد اظهار داشته‌­اند که دچار حالتی از اضطراب یا اختلال احساسی هستند. وقتی به تفاوت توانایی جسمی افراد نگاه می‌­کنیم، حدود 2 درصد از پاسخ‌دهندگان دچار معلولیت­‌هایی مانند نابینایی/کم­‌سویی چشم و ناشنوایی/کم‌­شنوایی هستند. این موضوع بر اهمیت ساخت نرم‌­افزار­هایی در دسترس و تاسیس شرکت­‌هایی مطابق با شرایط افراد معلول تاکید می‌­کند. مطالعۀ بیشتربیایید در مورد چالش‌­های زندگی روزمره‌ برنامه‌­نویسان صحبت کنیم.1. ددلاین‌هاکلمه آشناییست، نه؟ ددلاین‌ها یکی از عوامل استرس‌­زا هستند. در دوره­‌ای که ما زندگی می­‌کنیم، دست‌یابی به اهداف در زمان مقرر خیلی مهم است. در این دنیای به شدت رقابتی، همه‌ی ما دوست داریم که از رقیبان خود جلو­تر باشیم.تعریف کردن تسک­‌ها در قالب استاندارد SMART (مشخص، قابل اندازه‌­گیری، دقیق، واقع­‌بینانه، محدود به زمان) و اجرای صحیح این استاندارد­ها هم با چالش همراه است! همچنین تکمیل به موقع این تسک­‌ها وظیفه‌ی اصلی ماست. با این وجود از دست دادن ددلاین‌­ها همیشه آزاردهنده است و خلاقیت، توانایی، کار گروهی، تلاش‌ها و هر چیز دیگری را دچار چالش می­‌کند. از دست دادن ددلاین­‌ها جرم نیست، اما سوال‌برانگیز و قابل بحث است.2. باگ‌­هاکابوس محبوب توسعه­‌دهندگان!باگ‌­ها مانند تانوس، کاراکتر فیلم‌های مارول، هستند که به بازیگر نقش مرد آهنی، رابرت جونیور، می‌­گوید: &quot;من اجتناب‌ناپذیر هستم!&quot; ارور­ها همواره ددلاین­‌ها را به تعویق می­‌اندازند و باعث می‌­شوند مدیر شما بر سرتان فریاد بکشد! توسعه و باگ­ همواره دست در دست هم پیش می‌­روند؛ و حل کردن این باگ‌­ها زمان زیادی لازم دارد. زمانِ بیشتر بر روی هزینه و حتی اعتبار شما اثرگذار است. حتی بازآفرینی این باگ‌­ها زمان زیادی را مصرف می‌کند.3. انتشارخب! این یکی موضوع مهمی است. چون مربوط به کاربران نهاییست. باید مطمئن بود که همه چیز در زمان اجرا به درستی کار می‌­کند و اگر مشکلی پیش بیاید، همۀ اعضای تیم باید آن را جدی بگیرند و مشکل را حل کنند.این موضوع می­‌تواند باعث فرسودگی دیجیتالی و استرس (یا احتمالا همان سردرد) شود. رفع کردن باگ­‌ها و آماده‌سازی محصول برای انتشار می‌­تواند فشار زیادی را بر توسعه­‌دهندگان تحمیل کند.4. کاراییهمۀ ما سخت تلاش می­‌کنیم تا عملکرد خوبی داشته باشیم. همۀ ما دوست داریم که در حرفۀ خود پیشرفت کنیم. همۀ ما نیاز داریم که برای خودمان وقت بگذاریم و از زندگیمان لذت ببریم. شاید دوست داشته باشیم کتاب بخوانیم، گیتار بنوازیم، با دوستانمان فوتبال ببینیم، دوچرخه­‌ای که دوست داریم بخریم یا با کسی که عاشقش هستیم صحبت کنیم.اما ما از این همه کار زیاد خسته­ شده‌­ایم. ممکن است گاهی در رویداد­های کاری شکست خورده باشیم، اما زندگی بالا و پایین دارد. با این وجود، این مشکلاتی مانند شکست در جلو زدن از همکاران یا عملکرد بد داشتن در حرفه‌­ای که در آن مشغول به کار هستیم می­‌تواند ذهن مردم را آشفته کند.5. وابستگی­‌هاما متوجه شدیم که به عنوان یک توسعه­‌دهنده‌ی فرانت‌­اند، زمانی که منتظر هستید تا توسعه‌­دهندگان بک‌­اند وظیفه خود را انجام دهند، پاس کردن تست­‌ها و انجام وظایفتان برای شما بسیار دشوار است. احتمالا منظورم را متوجه می­‌شوید. فرقی نمی‌کند که حرفه‌­ای باشید یا تازه‌کار. این یکی از مواردیست که در زندگی حرفه­‌ای به آن توجه کرده‌­ایم اما نمی‌­توانیم کاری برای آن انجام دهیم.این موضوع می­‌تواند باعث استرس هم بشود زیرا نمی‌­توانیم عملکرد خوبی داشته باشیم. این، یک چالش برای ماست.6. خانوادهبازگشت به خانه تنها برای خوردن و خوابیدن خانواده شما را نا­امید خواهد کرد. آن‌ها تمام روز را منتظر شما بوده‌اند و از سوی دیگر، شما نیز روز کاری سختی داشته­‌اید.با این وضعیت چه کسی حس خوبی خواهد داشت وقتی شما نمی­‌توانید وقت خود را با خانواده­ سپری کنید؟ هر کسی دوست دارد زمانش را با خانواده و دوستانش سپری کند. با این وجود کاری که تمام روز مشغول به آن هستیم، زمان و فضایی برای ما باقی نمی­‌گذارد که آن را به خانواده یا خودمان اختصاص دهیم که این، بیش از همه برای خود ما دردناک خواهد بود. هر چه باشد ما همگی برای شادی عزیزانمان کار می‌کنیم.7. اضافه­‌کاریزمان اضافی سر کار ماندن هرگز شما را موثر­تر نخواهد کرد. همه کاری که باید بکنیم این است که وظیفه­‌ای که به ما محول شده را به اتمام برسانیم. برای همه‌ی ما پیش آمده که کدی که نوشته‌­ایم را به هم می‌­ریزیم و کد تست‌نشده را روی پروژه اعمال می­‌کنیم و شب و روز تلاش می­‌کنیم تا مشکلات به وجود آمده به خاطر تست نکردن کد را رفع کنیم. اشتباهات خود ما این مشکلات را برای ما به وجود می‌­آورند.اما راه‌حل چیست؟1. تمرینات تنفسنفس عمیق کشیدن به شما کمک می­‌کند تا ذهن خود را آرام کنید، و با تمرکز بیشتر روی کاری که انجام می‌دهید، بهتر عمل کنید. نفس عمیق کشیدن اکسیژن را در خون شما جاری می­‌کند. نفسی عمیق بکشید و تا ده بشمارید و هوا را بیرون دهید.2. قدم زدن یا استراحت سالم بین کارقدم زدن یا اختصاص زمان مناسب به استراحت سالم، می­‌تواند به سرعت حال شما را بهتر کند. طبق تجربه‌­ای که من داشتم این کار به پردازشگر درون ذهنتان زمانی هدیه می‌­دهد تا اشتباهاتی که مرتکب آن‌ها شده­‌اید را حل کند. (زمان استراحت نباید از 5 تا 10 دقیقه تجاوز کند)3. موسیقیموسیقی همواره به شما کمک می­‌کند تا درگیری‌های ذهنی خود را پاک کنید. گوش کردن به کنسرت موسیقی هنرمند محبوبتان باعث می‌­شود حس بهتری داشته باشید و شما را آرام می‌­کند تا بتوانید وظایف خود را قبل از فرا رسیدن ددلاین به پایان برسانید.4. انجام کارهای ساده ولی خلاقانهمطالعه، درست کردن کاردستی، نقاشی، طراحی، عکاسی یا نوشتن خاطرات روزانه این امکان را به شما می‌دهد تا احساسات خود را بیان کنید و آن‌ها را مدیریت کنید.5. خندهروز بدون خنده، یک روز هدر رفته است. __ چارلی چاپلیندیدن کمیک‌­ها یا برنامه­‌های تلوزیونی یا کلیپ‌­های مورد علاقه‌­تان می‌­تواند احساسات شما را از استرس رهایی بخشد. این روش همیشه برای من آرامش‌بخش بوده­ است. خواندن یک جوک یا دیدن یک کلیپ طنز حال شما را بهتر می‌­کند و احساس آرامش را برای شما به همراه می‌­آورد.6. معاشرتمعاشرت و گفت‌­وگو با دیگران از موثرترین راه­‌ها برای رها کردن شما از یک ذهن آشفته است. با همکاران خود درباره کدتان صحبت کنید. این، شما را آرام می‌­کند و دید خوبی به شما می­‌دهد.7. یک لیوان چایی/قهوه/آب بنوشیدنوشیدنی‌­ای که مناسب سلامت شماست انتخاب کنید، جرعه‌­ای بنوشید، از آن لذت ببرید و به کار ادامه دهید. کدنویسی شور و هیجان مخصوص خود را دارد. به عنوان یک برنامه‌­نویس فکر می­‌کنم خیلی مهم است که چیزی برای دنیا بسازید که بر بشریت تاثیر بگذارد.فکر کنم برای امروز خیلی نوشته­‌ام! امیدوارم به شما کمک کرده باشد.متنی که خواندید ترجمه این مقاله است.ما را در تلگرام دنبال کنید.</description>
                <category>کنج صمیمی کامپیوتریا | Debug Valley</category>
                <author>کنج صمیمی کامپیوتریا | Debug Valley</author>
                <pubDate>Sat, 11 Dec 2021 20:42:27 +0330</pubDate>
            </item>
                    <item>
                <title>دانستن اینکه چرا مردم کفش‌های 4000 دلاری می‌خرند استراتژی بازاریابی شما را تغییر خواهد داد</title>
                <link>https://virgool.io/Whitenoise/%D8%AF%D8%A7%D9%86%D8%B3%D8%AA%D9%86-%D8%A7%DB%8C%D9%86%DA%A9%D9%87-%DA%86%D8%B1%D8%A7-%D9%85%D8%B1%D8%AF%D9%85-%DA%A9%D9%81%D8%B4-%D9%87%D8%A7%DB%8C-4000-%D8%AF%D9%84%D8%A7%D8%B1%DB%8C-%D9%85%DB%8C-%D8%AE%D8%B1%D9%86%D8%AF-%D8%A7%D8%B3%D8%AA%D8%B1%D8%A7%D8%AA%DA%98%DB%8C-%D8%A8%D8%A7%D8%B2%D8%A7%D8%B1%DB%8C%D8%A7%D8%A8%DB%8C-%D8%B4%D9%85%D8%A7-%D8%B1%D8%A7-%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-%D8%AE%D9%88%D8%A7%D9%87%D8%AF-%D8%AF%D8%A7%D8%AF-xnztxdocyvfw</link>
                <description>یکی از همکلاسی‌های من در دانشگاه پسر میلیاردر صنعت کود بود. یک بار در کلاس موقعیت‌های بازاریابی در حال تحلیل برند یک شلوار جین خاص که بیش از 300 دلار قیمت داشت، بودیم.این دوست ثروتمند به من گفت: کسی که شلوار جین 300 دلاری میخرد، نه فقط به جین بلکه نیاز جدی به چیز دیگری دارد؛ من هرگز برای یک شلوار اینقدر پول نداده‌ام.برای من عجیب بود که این حرف را از زبان یک میلیاردر بشنوم اما حق با او بود. هیچکس یک شلوار جین با قیمت 900 درصد گران‌تر (10 برابر) از یک رقیب باکیفیت نمی‌خرد فقط برای اینکه یک تکه لباس بخواهد. شاید الان چند ایده برای اینکه چرا مردم حقوق خود را خرج یک ژاکت، شلوار یا ساعت می‌کنند در ذهن شما مطرح باشد. چیزهایی مانند کیفیت، دوام، طراحی و یا خدمات ارائه شده به مشتریان. اما این‌ها همه‌ی علل نیستند.کشف دلایلی که مردم محصولات خیلی گران قیمت می‌خرند به من کمک کرد که درک روشن‌تری از مشتریان خود داشته باشم. علاوه بر آن، این امر به شما در بازاریابی نیز کمک خواهد کرد.مشتریان همیشه مشکلات خود را می‌دانند اما راه حل آن‌ها را نه!نقل قولی منسوب به هنری فورد (موسس شرکت خودروسازی فورد) در گفت‌وگو با یک محقق بازاریابی و ارتباط با مشتری وجود دارد:« اگر از مردم می‌پرسیدم که چه می‌خواهند، می‌گفتند اسب‌های سریع‌تر.»نکته‌ای که او بیان می‌کرد (با فرض اینکه اینکه این جمله واقعا از او باشد) با واقعیت منطبق است.کفش وسیله‌ایست برای محافطت از پای انسان. یک کفش 40 دلاری با تولید انبوه اما با کیفیت، به سادگی قادر به انجام این کار است. اما یک داماد در روز عروسی‌اش ، یک دیپلمات جوان که با نخست وزیر ملاقات می‌کند یا یک وکیل جوان که با یک مشتری احتمالی دیدار می‌کند ممکن است ترجیح دهند کفش‌های گران قیمت، مارک‌دار یا حتی دست‌ساز بپوشند.چرا آنها 100 برابر بیشتر برای دقیقا همان محصول هزینه می‌کنند؟ در مثال بالا، پاسخ این سوال می‌تواند تمایل به کسب اعتبار باشد. همان‌طور که نویسنده لبنانی، نسیم طالب، زمانی بیان کرد، افراد حرفه‌ای مانند سیاست‌مداران یا اقتصاددانان نیاز به کسب اعتبار اجتماعی دارند، بنابراین از اکسسوری‌های گران‌قیمت که به تکمیل تصویر موفقیت آن‌ها کمک می‌کنند، استفاده می‌کنند. اما آیا یک کارآموز وال استریت اعتراف می‌کند که یک وسیله را برای تأیید اعتبار خود از جانب همتایانش خریداری کرده است؟ بعید است.بنابراین نقل قول مذکور از هنری فورد در این مورد صادق است. اما اگر نمی‌توانیم به پاسخ‌های خود مشتری در مورد نیازهایش تکیه کنیم، آنگاه چگونه می‌توانیم به خواسته‌های او دست یابیم؟ما باید بیشتر به بررسی ویژگی‌های روانی انسان بپردازیم.چیزی که مشتریان می‌خواهند به ندرت دقیقا همان چیزی است که ما می‌فروشیم. آمار فعلی نتیجه‌‌ی چیزی است که ما می‌فروشیم. این دو ممکن است تقریباً یک چیز به نظر برسند اما تفاوت زیادی دارند. شخصی که کفش 4000 دلاری می‌خرد، به دنبال چیزی فراتر از محافظت از پاهای خود که توسط کفش‌های 40 دلاری ارائه می‌شود، است. آنها این را می‌خواهند، و چیزی بیشتر. چیزی که 3960 دلار تفاوت قیمت را جبران می کند.در یکی از شغل‌هایم (یک شرکت مشاوره)، خدمتی که من ارائه می‌دادم، برگزاری جلسات مشاوره برای کمک به مهاجران اروپا و آمریکای جنوبی بود. بعد از مدتی متوجه شدم که مشتریان نگران صرف زمان و هزینه‌ی ساعتی به مشاور هستند، بدون اینکه بدانند ما می‌توانیم مشکل آنها را حل کنیم.بنابراین پیشنهاد خود را تغییر دادیم. ما به جای فروش ساعات مشاوره، شروع به فروش ضمانت کردیم که: مشکل مشتریانمان را حل خواهیم کرد، در غیر این صورت آنها مجبور به پرداخت حتی یک سنت به ما نیستند. این نه تنها پیشنهاد ما را جذاب‌تر کرد، بلکه به ما اجازه داد تا قیمت خود را افزایش دهیم. مشتریان ما مشاور نمی‌خواستند، بلکه آرامش خاطر می‌خواستند و این چیزی بود که ما اکنون ارائه می‌دادیم. این تغییر، نقطه عطفی تاثیرگذار در کسب و کار ما بود.عنصر کمیابی - چگونه از آن در تجارت خود استفاده کنیم؟یکی از جذاب‌ترین و انکارشده‌ترین دلایلی که مردم به خاطر آن برای چیزهای گران قیمت پول می‌دهند، کمیاب بودن آن است. کمیاب بودن مشتریان را همزمان در دو دام می‌اندازد:1- احساس ضروری بودن. از آنجایی که مقدار محصولات برای فروش محدود است، مصرف‌کنندگان زمان کمی برای فکرکردن و گرفتن تصمیم خرید دارند. پس از پرسیدن سوالات اساسی‌ای که باید قبل از خرج کردن پول به آن‌ها پاسخ دهند، صرف نظر می‌کنند. این عجله، میل به خرید را با تصمیمات ناگهانی و کمتر منطقی (و بیشتر احساسی) تحریک می کند.2- احساس انحصارطلبی. یک مفهوم اقتصادی به نام « Veblen Good» وجود دارد که به کالایی که با افزایش قیمتش، تقاضا برای عرضه‌ی آن افزایش می‌یابد، اطلاق می‌شود. چنین کالایی دارای منحنی تقاضای صعودی است که در تضاد با منحنی رو به پایین محصولات معمولی است (که با افزایش قیمت آن‌ها کاهش تقاضا رخ می‌دهد).با این حال، برای جلب توجه مشتریان، کمیاب بودن نیاز به دلیل دارد.کفش‌ها یا کیف‌هایی که دست‌ساز هستند و میلیون‌ها عدد از آن‌ها در کارخانه‌ها تولید نمی‌شوند.لوازم آرایشی که با مواد کمیاب درست می شوند.کنسرتی که تعداد تماشاگر محدودی دارد.پزشکان، وکلا یا متخصصانی که ساعات محدودی در روز برای ملاقات با مشتری دارند.خودروهایی که نسخه‌های محدودی از آن‌ها برای جشن گرفتن رویدادهای خاص تولید می‌شوند. مانند استون مارتین ساخته شده به مناسبت بیست و پنجمین فیلم جیمز باند.اگر محصول یا ساعات محدودی برای عرضه دارید، آن را برای مشتریان خود روشن کنید. به نفع شما و آنها است. برای شرکت مشاوره‌ی من، این تقویم است که با نشان دادن ساعات در دسترس جلسات مشاوره، این کمبود را روشن می‌کند. برای مسافرخانه‌ی توریستی من، این وب سایت ماست که اتاق‌های موجود را نشان می دهد که در طول فصول شلوغ محدود است.توضیح اینکه محصول شما کمیاب است، تأثیر مثبتی بر بازاریابی شما خواهد داشت و به مشتریان کمک می‌کند تا برای دسترس بودن شما ارزش قائل شوند.اگر شما چیزهای گران قیمت می‌فروشید درک دلایل خرید محصولات گران نه تنها مفید است بلکه در واقع، این به مثابه‌ی یک عامل تغییردهنده برای هر بازاریابی‌ای است. این، تغییردهنده‌ی هر دو تجارت من بود. یک شرکت مشاوره برای مهاجران و یک مسافرخانه برای گردشگران.مشتریان مسافرخانه کاملاً درمورد آن کنجکاو هستند و این نشان می‌دهد که آنان چگونه با ظرافت تصمیم‌گیری می‌کنند. مسافرخانه‌ی توریستی ما در نزدیکی فرودگاه شهر است. بخش عمده‌ای از مشتریان ما گردشگرانی هستند که در طول توقف، می خواهند قبل از پرواز بعدی استراحت کنند و یا از شهر قدیمی شهر دیدن کنند. پیشنهاد ما در ابتدا فقط اتاق های تمیز و با فضایی دوستانه و آرام بود.اما بعد متوجه شدم که این تمام خواسته‌ی مشتریان نبود. آنها همچنین می‌خواستند از اینکه به پرواز بعدی خود دیر نخواهند رسید مطمئن باشند. کاری که نه ما و نه رقبایمان از آن آگاه نبودیم و آن را انجام نمی‌دادیم.ما یک سرویس فرودگاهی رایگان را به پیشنهاد استاندارد خود اضافه کردیم و مهمانان خود را با اتومبیل‌های راحت و با نهایت دقت به پرواز بعدی خود بردیم. این امر جذابیت ما را به حدی افزایش داد که می‌توانستیم قیمت را بیش از حد لازم برای جبران هزینه‌های مربوط به انتقال «رایگان» افزایش دهیم.حال از خود بپرسید: خواسته‌های پنهان مشتریان شما چیست؟ نپرسید چه محصولاتی می‌خواهند، بلکه از آنچه می‌خرند نتیجه بگیرید. نوکیا نبرد با سامسونگ و اپل را به خاطر این بی‌توجهی باخت.مردم بسته‌های تعطیلات در دیزنی‌لند را نمی‌خرند، بلکه لبخند چهره فرزندانشان را می‌خرند. مردم بیمه نمی‌خرند، بلکه آرامش می‌خرند. مردم ولوو نمی‌خرند، بلکه خودرویی می‌خرند که سوابق ایمنی بالایی دارد.حال سعی کنید به سوالات زیر پاسخ دهید.بزرگ‌ترین مزیت خرید محصولات من برای مشتریان چیست؟ به عنوان مثال: مزیت یک هتل فرودگاهی اتاقی برای خواب نیست، بلکه استراحت و رسیدن به پرواز مقصد بعدی، و آماده شدن برای یک تعطیلات لذت‌بخش است.چگونه می‌توان بر اساس محدودیت‌های تجاری خود احساس نایاب بودن ایجاد کرد؟ به عنوان مثال: در شرکت مشاوره‌ی من، تقویم مشاور در ساعات شلوغ مسدود شده است.مشتریان بالقوه چه دیدگاهی نسبت به من دارند و چگونه می‌توان چشم‍انداز آنان را بهبود بخشید؟ به عنوان مثال: ایراد عمده‌ای که مشتریان شرکت مشاوره من داشتند این بود که شک داشتند آیا ما واقعا می‌توانیم مشکل آنها را حل کنیم یا آنها پول خود را هدر می‌دهند.چه پیشنهاد وسوسه‌کننده‌ای (از جمله ضمانت) می‌توانم ارائه دهم؟ به عنوان مثال: برای مراجع مشاوره‌ی خود، این تضمین را ایجاد کردم که تا زمانی که نتوانیم مشکل را حل کنیم، یک پنی هم دریافت نخواهیم کرد. در اینجا به یاد داشته باشید که ارائه چیزی متفاوت از رقبای شما، جذابیت را افزایش می‌دهد.پس از پاسخ دادن به این سوالات، از پاسخ ها برای برآورده کردن خواسته‌های ضمنی مشتریان خود استفاده کنید و اغلب می‌توانید قیمت‌های خود را افزایش دهید.متنی که خواندید ترجمه این مقاله است.ما را در تلگرام دنبال کنید. </description>
                <category>کنج صمیمی کامپیوتریا | Debug Valley</category>
                <author>کنج صمیمی کامپیوتریا | Debug Valley</author>
                <pubDate>Sat, 04 Dec 2021 18:30:19 +0330</pubDate>
            </item>
                    <item>
                <title>چند عادت بد که به عنوان یک برنامه‌نویس از آن‌ها رنج بردم</title>
                <link>https://virgool.io/@debugvalley/%DA%86%D9%86%D8%AF-%D8%B9%D8%A7%D8%AF%D8%AA-%D8%A8%D8%AF-%DA%A9%D9%87-%D8%A8%D9%87-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%DB%8C%DA%A9-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D8%A7%D8%B2-%D8%A2%D9%86-%D9%87%D8%A7-%D8%B1%D9%86%D8%AC-%D8%A8%D8%B1%D8%AF%D9%85-o3duzr9ubcfg</link>
                <description>وقتی سخت مشغول کد نوشتن هستیم، گاهی دچار اشتباهاتی می‌شویم. بیشتر اوقات پیش‌نیاز­هایی که ما را محدود می‌­کنند و ملزم به رعایت آن‌ها هستیم یا نیاز فوری و کمبود وقت را مقصر می‌­دانیم.پس از مدت‌ها فعالیت در این حرفه و بعد از این که مرتکب خطاهای بسیاری شدم، متوجه شدم اگر لازم باشد مقصری اعلام شود، آن مقصر تنها خود من و تمرین‌­های نادرستی که در طول فعالیتم داشتم، هستند.کلاس‌ها و توابع طولانیزمانی که مشغول کد زدن می­‌شویم گاهی تمایل داریم که کدمان را شبیه اسکریپت بنویسیم. به خوبی می­‌دانیم که توابع باید تنها یک کار را انجام دهند و آن کار را به بهترین شکل ممکن انجام دهند.برنامه‌­نویسان تازه‌­کار به خاطر تجربه کمی که دارند، توابع و کلاس‌­های طولانی­‌ای می‌­نویسند. از طرفی برنامه‌­نویسان باتجربه، به خاطر مهارت بالایی که دارند و راحت‌­تر بودن نوشتن یک تابع طولانی به جای چند تابع، مرتکب این خطا می‌شوند. من هم این خطا را زمانی که تازه‌کار بودم انجام می‌دادم و هنوز هم گاهی دچار این خطا می­‌شوم.برای حل این مشکل من مرحله‌­ای برای بازبینی کد خودم به تمرین­‌های برنامه­‌نویسی‌­ام اضافه کردم. هنگام بازبینی، هر زمان چنین تابع یا کلاس طولانی‌­ای می‌­بینم سریعاً آن را به توابع و کلاس­‌های کوچک‌تر می‌­شکنم.اطمینان بیش از حدهمه ما گاهی از این جمله­‌ها استفاده کرده‌ایم یا آن‌ها را از زبان دیگران شنیده‌­ایم:روی کامپیوتر من درست کار می‌­کنه.یاکد من درسته. مشکل از قسمت‌­های دیگست.جملاتی مثل این، اطمینان بیش از حد برنامه­‌نویس را نشان می‌دهد. من از همین اطمینان زیاد، سال­‌ها رنج بردم.شک نکردن به کدی که نوشته­‌اید اختلاف را بین اعضای تیم بیش‌تر می­‌کند. هم‌چنین باعث می­‌شود زمان و تلاش لازم برای حل مشکل بیش‌تر شود.پس از سال‌ها تلاش و الهام گرفتن از برخی از همکارانم خوشبختانه متوجه این عبارت &quot;همیشه به کد خودت شک داشته باش&quot; شدم. حالا زمانی که کسی به من می­‌گوید که ممکن است اشکالی در کد من باشد واکنش من این است:ممکنه، بگذار کدم رو چک کنم.ننوشتن یونیت تست (Unit test)من مزایای استفاده از توسعه آزمون‌محور (TDD) را مشاهده کرده‌­ام. TDD کمک می‌کند تا باگ­‌ها را زودتر در چرخه توسعه پیدا کنید و باعث می­‌شود نسبت به آنچه نوشته‌­اید اطمینان بیش‌تری پیدا کنید. هم‌چنین باعث صرفه‌‌جویی در مصرف زمان و پول می­‌شود.من همواره تمایل داشتم تا یک پروژه‌­ی جدید را با استفاده از TDD شروع کنم. اما معمولا به طور تدریجی از تست نوشتن دست می­‌کشیدم و ردپای TDD در پروژه از بین می­‌رفت.علتش این است که زمانی که مشغول توسعه قابلیتی هستم که نیاز فوری به آن دارم، در ذهنم همواره تمایل دارم که تست­‌های آن بخش را رد کنم، حتی اگر نوشتن تست برای آن قابلیت زمان زیادی از من نگیرد.برای مقابله با این مشکل، قانونی ساختم که هیچ کدی (حتی برای بازبینی) نباید بدون تست بماند. این قانون به من و تیم کمک کرده تا TDD در طول پروژه در جریان بماند.استفاده نکردن از قانون DRYمن دیگر این مشکل را ندارم. همواره از قانون DRY (خودت را تکرار نکن) پیروی می­‌کنم. زمانی بود که من هم خیلی در برابر قانون DRY انعطاف نداشتم و تیکه‌کد­های تکراری‌­ای در سورس‌­کد­هایم وجود داشت.این اتفاق معمولاً زمانی رخ می‌­دهد که شما برای نوشتن کد به اندازه­‌ی کافی تلاش نمی‌­کنید و به جای آن از راه‌های میانبر ساده‌­تر استفاده می­‌کنید. من هم چندین بار برای کوتاه کردن فرایند تست تصمیم گرفتم که از قانون DRY پیروی نکنم زیرا برای پیروی از آن لازم بود در برخی از کدهای قبلی تغییراتی را ایجاد کنم.اما حالا هیچ تردیدی در مورد این قانون ندارم. همواره مطمئن می­‌شوم که هیچ‌گاه کدم را تکرار نمی­‌کنم.ننوشتن کامنتزمانی که غرق در کدنویسی هستیم، معمولا فراموش می‌­کنیم که برای کدمان کامنت بنویسیم. کامنت­‌ها هنگام بازبینی کد به ما کمک می­‌کنند و باعث می­‌شوند زمان کم‌تری را برای فهم کد صرف کنیم. من همچنان هم به اندازه­‌ی کافی از کامنت استفاده نمی­‌کنم.من طرفدار استانداردهایی که سازمان‌های مختلف برای نوشتن کامنت دارند نیستم. هر زمان که لازم باشد از کامنت استفاده می­‌کنم.من معمولا زمانی کامنت می­‌نویسم که منطقِ به کار رفته پیچیده باشد یا وقتی کدی که نوشته‌­ام بر پایه چند فرض ثابت باشد. اما برای توابع و کلاس‌هایی که با دیدنشان می­‌توان کاربردشان را متوجه شد کامنت نمی‌­نویسم.عدم استفاده درست از Bug trackerطبق آنچه بارها و بارها دیده‌­ام، بسیاری از تیم‌ها و مدیران، اولویت دادن به باگ‌­ها را کاری مشکل می­‌دانند. مهم‌تر از آن، حتی زمان زیادی را برای مدیریت باگ­‌ها صرف می­‌کنند.من برای استفاده نکردن از Bug tracker و عدم تنظیم صحیح اولویت­‌ها در گذشته مقصرم.گاهی اوقات به شدتِ تاثیر یک باگ، بیش‌تر از اولویت آن اهمیت داده می­‌شود. در صورتی که باگ ممکن است بسیار مشکل‌زا باشد اما با توجه به شرایط فعلی رفع آن در اولویت نباشد.باگ­‌های جدید پیش‌آمده به همراه باگ‌­های تلنبارشده قبلی لازم است بر اساس وضعیت فعلی کسب و کار و لزومات آن در بازه‌­های زمانی معقول اولویت‌بندی شوند.عدم مستندسازی برای پروژهمشخصاً مستندسازی کاری حوصله­‌سربر است. بیشتر ما دوست نداریم اید­ه­‌ها و طراحی­‌هایمان را مستند کنیم. در واقع مستندسازی را برای پرداختن به کار­های جذاب‌­تر رد می­‌کنیم.اما بدون مستندسازی اگر شخصی بخواهد به کدی که نوشته‌­ایم نگاهی بیاندازد، احتمالاً در کد سردرگم می­‌شود.در صورتی که از کامنت‌نویسی به طور مناسب استفاده شده باشد، می‌­توان با استفاده از برخی ابزارهای موجود، از کامنت­‌ها برای تولید مستندات استفاده کرد. بسیار خوب است که همواره ایده‌­ها و طراحی‌­های‌تان را مستند کنید تا در آینده به عنوان مرجع از آن‌ها استفاده شود. این کار به دیگران کمک می‌­کند تا طراحی شما را به خوبی متوجه شوند و به شما کمک می­‌کند تا به کمک نظرات و پیشنهاد­هایی دیگران می‌­دهند، پروژه­‌ خود را بهبود بخشید.نتیجه‌گیریهمه ما برخی عادت‌­ها و شیوه­‌های غلطی داریم. من تعدادی از آن‌ها که برای مدت زیادی از انجامشان رنج می‌­بردم را نام بردم. اما هم‌چنان هم با هوشیاری تلاش می­‌کنم که این عادت‌­های بد را پیدا و آن‌ها را متوقف کنم.شما چه عادت‌­های بدی در برنامه­‌نویسی دارید؟ لطفا در کامنت‌­ها بنویسید.متنی که خواندید ترجمه این مقاله استما را در تلگرام دنبال کنید</description>
                <category>کنج صمیمی کامپیوتریا | Debug Valley</category>
                <author>کنج صمیمی کامپیوتریا | Debug Valley</author>
                <pubDate>Sat, 27 Nov 2021 11:20:34 +0330</pubDate>
            </item>
                    <item>
                <title>چگونه به عنوان یک برنامه‌نویس درآمد بیشتری داشته باشیم</title>
                <link>https://virgool.io/cheyab-blog/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%A8%D9%87-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%DB%8C%DA%A9-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D8%AF%D8%B1%D8%A2%D9%85%D8%AF-%D8%A8%DB%8C%D8%B4%D8%AA%D8%B1%DB%8C-%D8%AF%D8%A7%D8%B4%D8%AA%D9%87-%D8%A8%D8%A7%D8%B4%DB%8C%D9%85-mshkzfhagole</link>
                <description>برنامه‌نویس بودن بینظیر است. نه تنها در اکثر مواقع کار کردن جالب است بلکه فرصت‌های شغلی زیادی برای یک برنامه‌نویس وجود دارد که اکثر آنها حقوق خوبی دارند.اما در بعضی مواقع نیاز به داشتن درآمد بیشتری دارید؛ شاید بخاطر اینکه هنوز در حال تحصیل هستید و می‌خواهید بجای کار کردن برای دیگران، به طور مستقل کار کنید یا اینکه فرزند دارید و نیاز دارید تا زمان بیشتری با او بگذرانید، در حالی که هنوز نیاز به داشتن درآمد دارید یا صرفا برای سرگرمی این کار را انجام می‌دهید.نکته‌ی خوبی که اینجا وجود دارد این است که شما به عنوان یک برنامه‌نویس، تمام چیزی که برای افزایش درآمد نیاز دارید را در اختیار دارید. این چیزها مغز شما و لپتاپ شماست. این تنها چیزی است که شما نیاز دارید. جالب نیست؟ استراتژی‌های زیر را بررسی کنید و تصمیم بگیرید که کدام برای شما بهتر است.شروع کردن به کار فریلنسریکار فریلنسری فوق‌العاده است: بدون رئیس، تعداد زیادی پروژه برای انتخاب، درآمد روزانه‌ی بالا برای متخصصان، تعطیلات آزاد و خیلی چیزهای دیگر.با این حال برای یافتن پروژه و مشتری نیاز به زمان و تلاش زیادی دارد و بزرگ‌ترین مزیت آن برای من این است که علاوه بر شغل دائمی خود می‌توانید در عصرها یا آخر هفته به این کار بپردازید.پلتفرم‌هایی مانند Upwork یا Fiverr فرصت‌های شغلی زیادی ارائه می‌دهند اما از رقابت در آن برنامه‌ها آگاه باشید.علاوه بر آن، درآمد این کارها بسیار پایین هستند. بنابراین من این کارها را زمانی پیشنهاد می‌دهم که می‌خواهید کار فریلنسری را تجربه کنید یا از کمی درآمد اضافی بهره‌مند شوید.استراتژی بهتر این است که روی پروفایل لینکدین خود کار کنید، با مشتریان و همکاران قبلی خود در ارتباط باشید، به کنفرانس‌ها و همایش‌ها بروید و به دنبال موقعیت‌هایی باشید که با دورکاری مشکلی نداشته باشند.در مسابقات برنامه‌نویسی شرکت کنیدبله این یک چیز واقعی است. پلتفرم‌های اختصاصی‌ای وجود دارد که مسابقات برنامه‌نویسی را برای جایزه پولیِ واقعی سازماندهی می‌کنند. یکی از بزرگ‌ترین پلتفرم‌ها در این زمینه، Topcoder است که بیش از یک میلیون عضو و تعداد زیادی رقابت‌کننده دارد. سه حیطه اصلی مورد تمرکز آن‌ها است: طراحی، علم داده و پیاده‌سازی.شما می‌توانید روی پروژه‌های واقعی کار کنید که توسط بیش از 2000 شرکت ایجاد شده‌اند یا در مسابقات تکی با حریفان رقابت کنید. سرگرمی علاوه بر یادگیری، حاصل این مسابقات است.اگر چالش‌ را دوست دارید، این ممکن است برای شما مناسب باشد. با این حال، رقابت وجود دارد و نمی‌توانید روی یک درآمد ثابت حساب کنید، بنابراین این گزینه را در اولویت پایین‌تری قرار دهید.شروع به نوشتن کنیداز نظر من همچنان نوشتن بهترین راه برای رسیدن به مخاطبان زیاد است. فرصت‌های زیادی برای شما وجود دارد که نویسندگی را شروع کنید و از آن درآمد کسب کنید.می‌توانید وبلاگ شخصی خود را بسازید و با تبلیغات، کسب درآمد کنید.می‌توانید کتاب چاپی یا کتاب الکترونیکی بنویسید و آن‌ها را به صورت آنلاین بفروشید.می‌توانید در پلتفرم‌هایی مانند Medium بنویسید و در برنامه‌های مشارکت آن‌ها همکاری کنید.می‌توانید برای سایت‌هایی مانند CSS-Tricks پست‌های مهمان بنویسید که در صورت پذیرش پست‌های شما، مبلغ ثابتی را به شما پرداخت می‌کنند.هیچ اشکالی ندارد که همه چیز را امتحان کنید و ببینید مردم چگونه به چیزی که می‌نویسید واکنش نشان می‌دهند.با این حال بعضی عوامل وجود دارند که شما باید در نظر بگیرید. برای مثال زمینه‌ای که به آن علاقه دارید، نوشتن در آن زمینه را ادامه دهید و برای بهبود مهارت نویسندگی خود تلاش کنید تا متون با کیفیت بالایی بنویسید (مردم از شما تشکر خواهند کرد. متون با کیفیت پایین به اندازه‌ی کافی وجود دارند).ضبط و فروش دوره‌های آنلاینآموزش به مردم به صورت آنلاین یکی از بهترین اتفاقاتی است که در دهه‌ی گذشته اتفاق افتاده است و از نظر من حداقل تا یک دهه‌ی دیگر نیز ادامه دارد.آموزش آنلاین فواید زیادی هم برای دانش‌آموزان و هم اساتید دارد. دانش‌آموزان می‌توانند از بین طیف زیادی از پیشنهادات و آموزش‌ها انتخاب کنند و طبق برنامه‌ی خود پیش بروند و اساتید می‌توانند دانش خود را با 1000 یا 100000 نفر یا بیشتر به اشتراک بگذارند.اگر شما تجربه‌ی برنامه‌نویسی و دانش تخصصی در زبانی ماند جاوااسکریپت یا پایتون (یا هر زبان یا فریم‌ورک مشهور دیگری) دارید، می‌توانید به صورت لذت‌بخش به دیگران آموزش دهید؛ ساختن کورس‌های آنلاین می‎‌تواند برای شما کار مناسبی باشد.پلتفرم‌های زیادی برای انتشار دوره‌های شما وجود دارد. به عنوان مثال Udemy حدود 75 میلیون بازدیدکننده در ماه دارد و هر کسی می تواند به آن‌ها بپیوندد.نرخ بازدید سایت Udemyپلتفرم‌های دیگر مانند Frontend Masters یا Pluralsight وجود دارند اما نیاز به دعوت‌نامه دارند؛ اما اگر شهرت یا شبکه ارتباطی خوبی دارید، چرا که نه؟با این حال، هنگام ضبط دوره‌های خود چند نکته را در نظر بگیرید:روی تجهیزات خوب سرمایه‌گذاری کنید: میکروفون و وبکمِ خوب ضروری هستند!محتوای با کیفیت بالا پادشاه است. رقابت به طور پیوسته در حال افزایش است، بنابراین شما باید مردم را متقاعد کنید که می‌توانید چیزهای ارزشمند و مهمی  را به آنها بیاموزید.صحبت کردن با صدای بلند و واضح را تمرین کنید.همیشه ضبط‌های خود را دوباره تکرار کنید و روی آن کار کنید.ایجاد مطالب اضافی مانند پروژه GitHub، ارائه‌ها، نمونه‌های برنامه‌نویسی …و حتی اگر جذاب به نظر می‌رسد که زمانی که یک دوره ثبت شده و مردم شروع به خرید آن می‌کنند، برای شما درآمد غیرفعال ایجاد می‌کند، این فقط تا زمان کوتاهی است. بهترین اساتید دائماً دوره‌های خود را به روز می‌کنند زیرا تکنولوژی همیشه در حال تغییر است!ساختن پادکستبسیاری از مردم دوست ندارند جلوی دوربین باشند اما همچنان در یک زمینه تخصص دارند و دوست دارند دانش خود را با دیگران به اشتراک بگذارند.بدون شک پادکست‌ یک رسانه عالی برای انجام این کار است. پادکست‌ها مدتی است که وجود دارند، اما در چهار تا پنج سال گذشته محبوبیت زیادی به دست آورده‌اند و به میلیون‌ها نفر رسیده‌اند که هر روز به محل کار خود رفت و آمد می‌کنند یا قبل از رفتن به رخت‌خواب به آنها گوش می‌دهند.اکنون بیشتر پادکست‌ها رایگان هستند، بنابراین پول بیشتر یک اثر جانبی است. بسیاری از پادکست‌ها حامیانی برای قسمت‌های خود دارند. بسیاری از پادکست‌ها در Patreon حضور دارند، پلتفرمی که مردم می‌توانند ماهانه مبلغی را برای پشتیبانی از کار آن‌ها و استفاده محتوای انحصاری به آن‌ها بپردازند.اما برای موفقیت در یک پادکست، باید بتوانید خودتان را به خوبی بیان کنید، روی تجهیزات خوب (میکروفون) سرمایه‌گذاری کنید و مهم‌تر از همه، استقامت در ضبط مداوم قسمت‌ها را داشته باشید.این عادی است که افراد برای یک یا دو سال قسمت‌های هفتگی بسازند تا واقعاً بتوانند از نظر تعداد شنوندگان پیشرفت کنند.بنابراین اگر واقعاً به این کار علاقه داشته باشید، خوب است.نتیجه‌گیری آخرین موردی که می‌خواهم به شما بگویم که به هر یک از گزینه‌های بالا مرتبط است:ثبات مهم‌ترین چیز است.مهم نیست چه چیزی را شروع می‌کنید. آن را دنبال کنید و به آن پایبند باشید. بیشتر چیزها یک‌شبه به موفقیت نمی‌رسند. کار سختی است، باید زمان و انرژی صرف کنید. 99 درصد خیلی زود تسلیم می‌شوند. جزو 1 درصدی باشید که موفق هستند!متنی که خواندید ترجمه این مقاله استما را در تلگرام دنبال کنید</description>
                <category>کنج صمیمی کامپیوتریا | Debug Valley</category>
                <author>کنج صمیمی کامپیوتریا | Debug Valley</author>
                <pubDate>Sat, 20 Nov 2021 20:57:59 +0330</pubDate>
            </item>
                    <item>
                <title>چه اتفاقی برای برنامه‌نویسانی که وارد حوزه‌ی مدیریت نمی‌شوند می‌افتد؟</title>
                <link>https://virgool.io/Whitenoise/%DA%86%D9%87-%D8%A7%D8%AA%D9%81%D8%A7%D9%82%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%D8%A7%D9%86%DB%8C-%DA%A9%D9%87-%D9%88%D8%A7%D8%B1%D8%AF-%D8%AD%D9%88%D8%B2%D9%87-%DB%8C-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D9%86%D9%85%DB%8C-%D8%B4%D9%88%D9%86%D8%AF-%D9%85%DB%8C-%D8%A7%D9%81%D8%AA%D8%AF-uw0migfowjkz</link>
                <description>یکی از دیالوگ‌های Christopher McCandless، شخصیت فیلم Into the Wild این بود: «حرفه‌ها ابداع قرن بیستم هستند.» و حقیقتا گاهی اوقات دشوار است که زندگی شغلی را بدون پیشرفت با روندی خطی تصور کنیم. برای مثال، مردم معمولا فکر می‌کنند که هر توسعه‌دهنده‌ی بااستعداد در نهایت به جایگاه مدیریت خواهد رسید، اما این اتفاق همیشه به وقوع نمی‌پیوندد؛ و این سوال ایجاد می‌شود که شغل توسعه‌دهنده‌ای که وارد مدیریت نمی‌شود، چگونه است؟بیایید فارغ از همه‌ی دگرگونی‌های حرفه‌ای، به برخی از مسیرهای موجود برای توسعه‌دهندگانی که تمایل به مدیر بودن ندارند نگاه کنیم.1. متخصصاغلب توسعه‌دهندگان بر روی تکنولوژی‌های نسبتا استاندارد کار می‌کنند و مهارت‌هایی می‌آموزند که میان افراد زیادی در صنعت مشترک است. از آنجا که حوزه‌ی تکنولوژی بسیار گسترده است، مشاغل زیادی وجود دارند که یک فرد با تخصص متمرکز، برای قرار گرفتن در آن جایگاه، مناسب‌تر از کسی است که در چند حوزه معلومات کلی دارد.توسعه‌دهندگان متخصص با دامنه‌ی نسبتا محدودی از مهارت‌ها یکی از بهترین‌ها در زمینه‌ی فعالیت خود خواهند بود. آن‌ها ممکن است در حوزه‌های فیلم یا جلوه‌گذاری انیمیشن به خصوص لطافت ظاهری شخصیت‌هایی مانند Kung Fu Panda یا Zootopia فعالیت کنند یا این که بر روی نرم‌افزارهای علمی پیشرفته‌ کار کنند و نحوه‌ی پردازش اطلاعاتِ مربوط به «برخورد ذرات به یکدیگر» را مطالعه کنند. ‌و یا ممکن است در کار خود از فناوری‌های معمولی‌تری مانند kubernetes استفاده کنند، اما آن قدر بر روی آن تسلط داشته باشند که نسبت به رقبای خود متمایز باشند.بنا به تجربه می‌توان گفت که توسعه‌دهندگان متخصص دستمزد خوبی دریافت می‌کنند که اغلب بیشتر از دستمزد یک مدیر میان‌رده در حوزه‌ی تکنولوژی است، اما پیدا کردن کار نیز برای آنان دشوارتر است. بسیاری از آن‌ها شبکه‌ی ارتباطی حرفه‌ای خود را به دقت پرورش می‌دهند تا به سرعت فرصت‌های شغلی مناسب را پیدا کنند و گاهی به شغلی حاشیه‌ای مانند فعالیت به عنوان مشاور روی می‌آورند و به جای خلق محصول به کنترل کیفی آن می‌پردازند.2. توسعه‌دهنده تراز اولعبارت «توسعه‌دهنده‌ی تراز اول» اصطلاحی بحث‌برانگیز است چرا که گاهاً برای اشاره به برنامه‌نویسانی با هوش و استعدادی افسانه‌ای به کار می‌رود. با این حال، همچنان توسعه‌دهندگانی هستند که در تمام طول فعالیت در حرفه‌ی خود، همواره در حال یادگیری‌اند. آن‌ها نه وارد مدیریت می‌شوند و نه در یک حوزه‌ی خاص به کسب تخصص می‌پردازند اما حقیقت این است که این افراد در کار خود فوق‌العاده‌اند.اغلب آن‌ها را می‌توان در میان توسعه‌دهندگان ارشد پروژه‌های بسیار چالش‌برانگیز یافت. حتی بدون تجربه‌ی فعالیت در جایگاه مدیریتی، آن‌ها در میان اعضای تیم خود از احترام خاصی برخوردارند زیرا دید جزئی‌نگری نسبت به پروژه و درک دقیقی از معماری کلی آن دارند و همواره به دنبال ارائه‌ی راه‌حل‌های مبتکرانه هستند.دقیقاً به دلیل اینکه این توسعه‌دهندگان بسیار خوب هستند، به ناچار کارهایی را انجام می‌دهند که ماهیت آن‌ها بسیار متنوع‌تر از صرفا برنامه‌نویسی است. آنها حلال مشکل برای کل تیم، مربی برای جدیدترین اعضا، و شاید حتی سفیران برند برای شرکت خود خواهند شد. خارج از محل کار، اغلب آن‌ها را در حال شبکه‌سازی در وبلاگ‌ها، پادکست‌ها، کانال‌های ویدیویی، گفتگوهای TED و موارد دیگر می‌بینید.توسعه‌دهندگان تراز اول، اگر بتوانیم آن‌ها را چنین بنامیم، مطمئناً اگر مسیر شغلی مرسوم را دنبال کنند، می‌توانند درآمد بیشتری کسب کنند. اما آن‌ها افرادی هستند که عمیقا عاشق کاری هستند که انجام می‌دهند و نمی‌خواهند آن را متوقف کنند. به این دلیل است که ما می‌گوییم: خوش به حالشان!3. توسعه‌دهنده فرسودهتنها تفاوت اساسی بین «توسعه‌دهنده فرسوده» و «توسعه‌دهنده تراز اول» که در بالا توضیح دادیم این است که اولی، در مقطعی از حرفه خود، یادگیری را متوقف کرده است. یا حداقل، سرعت یادگیری مهارت‌های جدید را به میزان قابل‌توجهی کاهش داده است. در دنیای پر شتاب فناوری، این بدان معناست که مهارت‌های آن‌ها منسوخ شده است (یا به ناچار منسوخ خواهد شد).توسعه‌دهندگانی که مهارت انجام کارهای سخت و غیرجذاب را دارند، معمولا حس خوبی ندارند. به آن‌ها کار سخت فنی، پوشش دادن وظایف اساسی یا انجام تعمیرات معمولی داده می‌شود. در بهترین حالت، آن‌ها موقعیتی پیدا می‌کنند که سیستمی قدیمی را حفظ کنند که مبتنی بر فناوری‌هایی است که توسعه‌دهندگان جوان‌تر دیگر یاد نمی‌گیرند. این‌ها مشاغلی با درآمد خوب و معمولاً نه چندان دشوار هستند، اما تقاضا برای آن‌ها زیاد نیست.اغلب افراد به میل خود به توسعه‌دهندگان فرسوده تبدیل می‌شوند و تصمیم می‌گیرند که حجم کاری خود را کاهش دهند زیرا مسیری ملایم به سمت بازنشستگی ایجاد می‌کند. آن‌‌ها قراردادهایی را به صورت غیرعادی پیدا می‌کنند، یا پروژه‌هایی شخصی را دنبال می‌کنند که برایشان ارزشمند است، حتی اگر سود کمتری داشته باشند. کار در فناوری می‌تواند سخت باشد، و قابل‌درک است که همه نمی‌خواهند این سطوح از سختی را تجربه کنند.4. افرادی که زمینه شغلی خود را تغییر می‌دهندهمه کسانی که در صنعت تحریریه کار می‌کنند لازم نیست نویسنده باشند و به همین ترتیب، هر کسی که در زمینه فناوری کار می‌کند نیاز نیست توسعه‌دهنده باشد. در واقع، یک مجموعه کامل از مشاغل وجود دارد که صنعت برنامه‌نویسی را احاطه کرده است. همه این متخصصان، توسعه‌دهنده نیستند، اما انتظار می‌رود که درک درستی از برنامه‌نویسی و صنعت فناوری داشته باشند.آموزش نحوه برنامه‌نویسی، چه در بوت‌کمپ، چه در دانشگاه یا به صورت فریلنسری، امکان دیگری برای توسعه‌دهندگانی است که به دنبال مسیر شغلی مفید اما متفاوت هستند. همچنین زمینه‌هایی مانند استخدام، بازاریابی فناوری، یا آژانس‌های برون‌سپاری وجود دارد.برای این موقعیت‌های شغلی معمولاً به اندازه نقش مدیر در یک شرکت نرم‌افزاری معمولی پرداخت نمی‌کنند؛ بنابراین جزو محبوب‌ترین‌ها نیستند. با این حال، اگر مهارت‌های برنامه‌نویسی دارید اما به هر دلیل شخصی نمی‌خواهید از آن‌ها استفاده کنید، بهتر است در نظر داشته باشید که هنوز گزینه‌های شغلی دیگری در دسترس هستند. حتی بدون ترک کامل فناوری و حتی بدون رفتن به یک زمینه کاملاً متفاوت. البته شما همیشه در ترک زمینه فناوری آزاد هستید.متنی که خواندید ترجمه این مقاله استما را در تلگرام دنبال کنید</description>
                <category>کنج صمیمی کامپیوتریا | Debug Valley</category>
                <author>کنج صمیمی کامپیوتریا | Debug Valley</author>
                <pubDate>Sun, 14 Nov 2021 19:05:39 +0330</pubDate>
            </item>
                    <item>
                <title>سه زبان برنامه‌نویسی آینده‌دار که شما باید آن‌ها را بین سال‌های 2022 و 2030 یاد بگیرید</title>
                <link>https://virgool.io/cheyab-blog/%D8%B3%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%A2%DB%8C%D9%86%D8%AF%D9%87-%D8%AF%D8%A7%D8%B1-%DA%A9%D9%87-%D8%B4%D9%85%D8%A7-%D8%A8%D8%A7%DB%8C%D8%AF-%D8%A2%D9%86-%D9%87%D8%A7-%D8%B1%D8%A7-%D8%A8%DB%8C%D9%86-%D8%B3%D8%A7%D9%84-%D9%87%D8%A7%DB%8C-2022-%D9%88-2030-%DB%8C%D8%A7%D8%AF-%D8%A8%DA%AF%DB%8C%D8%B1%DB%8C%D8%AF-i1bgu6fzican</link>
                <description>زبان‌های برنامه‌نویسی‌ای که می‌توانند دنیا را در سال‌های آینده تحت‌تاثیر خود قرار دهند.پس از بیش از ده سال هیاهو در بازار تکنولوژی، من پتانسیل عظیمی را در سه زبان برنامه‌نویسی (یا فریم‌ورک) زیر می‌بینم.1. Unity (C#)بنا به گفته  John Riccitiello - مدیرعامل یونیتی - بیش از نصف بازی‌های دنیا توسط یونیتی ساخته شده‌اند.یونیتی نه تنها در ساخت بازی‌هایی که ما همیشه می‌بینیم مؤثر است، بلکه پلتفرمی پیشرو در جهان برای ایجاد محتوای تعاملی، سه‌بعدی و همینطور محتوای real time می‌باشد. مانند:بازی‌ها (اندروید، iOS، کامپیوتر شخصی، نینتندو و پلی‌استیشن)تجربیات تعاملی (واقعیت افزوده و واقعیت مجازی)خودرو و حمل و نقل (طراحی و دیزاین قطعات ماشین به صورت کاملا واقعی)ساخت و تولید (شبیه‌سازی رباتیک)فیلم، انیمیشن و سینما (رندر فیلم در حالت real time)معماری، مهندسی و ساخت و ساز (تجربه سه‌بعدی برای ساختمان‌ها، طراحی ساختمان و محیط‌های ساخت و ساز مجازی)پس اگر اکنون شروع به یادگیری یونیتی و سی‌شارپ کنید، شانس این را دارید تا به یکی از صنایع بالا که دارای رشد انفجاری هستند بپیوندید.یونیتی (سی‌شارپ) بر روی 30 پلتفرم مانند اندروید، iOS، ویندوز، نینتندو سوییچ و پلی‌استیشن کار می‌کند.2012–2021 Global Games Market Revenuesدر 10 سال گذشته، بازار جهانی بازی به تنهایی با نرخ مرکب سالانه 11 درصد در حال رشد بوده است.بر اساس قانون 72، با همین نرخ رشد، ارزش فعلی بازار بازی در 6.55 سال آینده دو برابر خواهد شد. اگر ما تنها مبتنی بر صنعت بازی پیش‌روی کنیم، درخواست برای برنامه‌نویسان وابسته به فریم‌ورک یونیتی به شدت افزایش پیدا خواهد کرد.یادگیری یونیتی می‌تواند شما را برای تکامل و تحول بعدی تکنولوژی آماده کند – مانند هر زمینه‌ای در حوزه‌‌های سه‌بعدی و واقعیت افزوده و واقعیت مجازی. انتخاب این زبان و فریم‌ورک برای ایجاد و ساخت اولین بازی یا اولین اپلیکیشن گیمیفیکیشن سه‌بعدی شما بسیار آسان است. زیرا آموزش‌های زیادی در رابطه با این زبان و فریم‌ورک در یوتیوب، یودمی و پلتفرم‌های دیگر موجود است.البته یک جایگزین رده بالاتر برای یونیتی وجود دارد: Unreal Engine (Epic Games)ولی باید توجه داشت که Unreal Engine منحنی یادگیری تندتر و منابع یادگیری کم‌تری نسبت به یونیتی دارد.2. Flutter (Dart)چه کسی نمی‌خواهد برنامه خود را تا حد امکان در پلتفرم‌های مختلف تنها با یک کد پایه منتشر کند؟ نسخه 2.0 فلاتر، به توسعه‌دهندگان این اجازه را می‌دهد تا اپلیکیشن‌های خود را به صورت بومی در اندروید، iOS، دسکتاپ و وب منتشر کنند.فلاتر بر روی تمامی دستگاه‌ها مانند گوشی‌های موبایل، کامپیوترها و هر چیزی که دارای مرورگر می‌باشد کار می‌کند.بله ممکن است زبان‌های مادر مانند جاوا برای اندروید و Swift برای iOS کارآمدتر باشند، ولی همه‌ی انواع ویژگی‌ها و فیچرهایی که می‌توانید به آن‌ها فکر کنید با فلاتر قابل پیاده‌سازی هستند. حتی می‌توانید کدهای جاوا و سوئیفت را برای نیازهایی که توسط دارت و فلاتر پشتیبانی نمی‌شوند به آن‌ها متصل کنید.فلاتر یک رقیب قابل‌ مقایسه با React Native می‌باشد. از نظر سرعت، پیچیدگی و جامعه برنامه‌نویس‌ها (community)، آن‌ها تقریباً در یک سطح هستند.اما اگر بخواهیم آن‌ها را بر اساس محبوبیت مقایسه کنیم، از اول جولای سال 2021 فلاتر در گیت‌هاب 124,000 ستاره ولی React Native دارای 96,400 ستاره است. به جرئت می‌توان گفت که فلاتر به عنوان یک فریم‌ورک چندسکوییِ اپلیکیشن‌های موبایل که موردعلاقه‌ی توسعه‌دهندگان است، از React Native پیشی گرفته است.3. Golangاین زبان توسط گوگل طراحی شده است. شما باید Golang را یاد بگیرید زیرا:یکی از سریع‌ترین زبان‌های موجود در بازار است زیرا به کد و زبان ماشین کامپایل می‌شود.توسط گوگل پشتیبانی می‌شود.یادگیری آن آسان است و جامعه برنامه‌نویسان (community) بزرگی دارد.برای دواپس(DevOps)، توسعه backend و توسعه full-stack بسیار عالی است.سینتکس بهینه و سرراستی دارد.سومین میانگین دستمزد در رتبه‌بندی جهانی را داراست.2020 Stack Overflow Developer Surveyگولنگ ساخته شده است تا از concurrency، مقیاس‌پذیری (scalability)، چندرشته‌ای (multithreading) و عملکرد بالا پشتیبانی کند. گولنگ با فضای ابری، دوآپس و کانتِینرها (containers) 100% سازگاری دارد. توسعه‌دهندگان اغلب می‌توانند از این زبان برای پروژه‌های مرتبط با دواپس مانند کوبرنتیس (Kubernetes) و داکر (Docker) استفاده کنند.بسیاری از شرکت‌ها مانند Google ،Dropbox ،Uber و Twitter از گولنگ بدلیل سرعت و سادگی آن استفاده می‌کنند.The total size of the public cloud computing market from 2008 to 2020 (in billion U.S. dollars)با گسترش سریع بازار عمومی رایانش ابری (Cloud Computing)، تقاضا برای استعدادهای مرتبط با دواپس هر سال افزایش خواهد یافت. از آنجایی که Golang با توسعه بک‌اند و دواپس سازگار است، شما می‌توانید از گسترش سریع رایانش ابری، برنامه‌های موبایل، بازی‌ها و اندازه بازار سیستم‌ها استفاده کنید.نتیجه‌گیریبه هر حال، حدس من این است که اکثر شما در حال حاضر از زبان‌های برنامه‌نویسی مانند PHP ،Nodejs،  Java ،Ruby و ... استفاده می‌کنید. انتخاب یک زبان یا فریم‌ورک برنامه‌نویسی دیگر در سنین پایین می‌تواند شغل شما را تقویت کند.سه زبان ذکر شده در بالا دارای پتانسیل بسیار زیادی هستند و شما با استفاده از آن‌ها می‌توانید از رشد سریع هر بخش در فناوری استفاده کنید.متنی که خواندید ترجمه این مقاله استما را در تلگرام دنبال کنید</description>
                <category>کنج صمیمی کامپیوتریا | Debug Valley</category>
                <author>کنج صمیمی کامپیوتریا | Debug Valley</author>
                <pubDate>Sun, 07 Nov 2021 16:06:30 +0330</pubDate>
            </item>
                    <item>
                <title>چگونه از وقوع فرسودگی شغلی جلوگیری کنیم</title>
                <link>https://virgool.io/Whitenoise/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%A7%D8%B2-%D9%88%D9%82%D9%88%D8%B9-%D9%81%D8%B1%D8%B3%D9%88%D8%AF%DA%AF%DB%8C-%D8%B4%D8%BA%D9%84%DB%8C-%D8%AC%D9%84%D9%88%DA%AF%DB%8C%D8%B1%DB%8C-%DA%A9%D9%86%DB%8C%D9%85-tpf39dndtxtc</link>
                <description>در فضای رقابتی و پرشتاب دنیای کنونی، این که افرادی دچار فرسودگی شغلی شوند، پدیده‌ای شایع و عادی به نظر می‌رسد. اما نکته‌ی نگران‌کننده این است که با وجود آن که بیش از نیمی از انسان‌ها در برهه‌ای از زندگی خود، آگاهانه یا غیرآگاهانه این وضعیت را تجربه می‌کنند، ما به اندازه‌ی کافی آن را جدی نگرفته‌ایم زیرا اساسا آن را تشخیص نداده‌ایم تا اقدامات پیش‌گیرانه را به موقع انجام دهیم.بنابراین برای جلوگیری از فرسودگی شغلی مهم‌ترین گام تشخیص آن و سپس شناسایی عوامل آن و انجام اقدامات پیش‌گیرانه است.تشخیص - نشانه‌های فرسودگی شغلیشناسایی کسی که در محل کار دچار فرسودگی شغلیست بسیار حائز اهمیت است زیرا به انجام اقدامات به موقع برای بهبود وضعیت و بازگشت به مسیر مطلوب کمک می‌کند. مردم اغلب خودشان متوجه می‌شوند که به شدت خسته‌اند و در آستانه‌‌ی از کار افتادگی قرار دارند. این موضوع هرچه زودتر تشخیص داده شود، بهبود شرایط آسان‌تر، سریع‌تر و کارآمدتر خواهد بود.برخی از علائم فرسودگی شغلی:خستگی فیزیکی و روانیکمبود انگیزهاحساسات منفیتفکر عیب‌جویانه یا انتقادیبه خطر افتادن سلامتیکاهش بهره‌وری و کارآمدیافزایش نرخ خطانارضایتی و ناامیدیشناسایی - عوامل فرسودگی شغلیفرسودگی شغلی می‌تواند تاثیر ویران‌گری بر روی ابعاد مختلف زندگی فرد اعم از آسیب‌های فیزیکی و روانی داشته باشد.شایع‌ترین عواملی که منجر به بروز فرسودگی می‌شوند عبارتند از: سطح بالای استرس (که معمولا دست کم گرفته می‌شود در حالی که عواقب شدیدی برای فرد به همراه دارد)، عدم تعادل میان کار و زندگی، فشار کاری بالا، مورد قدردانی قرار نگرفتن، فقدان پویایی در محل کار و انزوای اجتماعی.هنگامی که بپذیرید امکان ابتلا به فرسودگی شغلی برای شما وجود دارد، در مسیر درستی برای بهبود وضعیت قرار می‌گیرید و برداشتن گام‌های موثر بعدی آسان‌تر خواهد بود.پیشگیری - چگونه از فرسودگی شغلی جلوگیری کنیمهنگامی که پی بردید به فرسودگی شغلی مبتلا هستید و یا در معرض امکان آن قرار دارید و دلایل و ریشه‌های آن را شناسایی کردید، انجام اقدامات بهبوددهنده/پیش‌گیرانه به سرعت به شما کمک خواهد کرد.این نکات به شما کمک می‌کنند که درگیر فرسودگی شغلی نشوید:مدیریت استرساگر در محل کار، استرس شدیدی به شما وارد می‌شود مهم‌ترین چیز این است که آن را به طور مثبت مدیریت کنید. در ادامه به توضیح این روش می‌پردازیم. یک روش موثر برای کاهش استرس، یافتن فعالیت‌های لذت‌بخشی برای خودتان است که حین انجام آن ذهنتان از  کار و ددلاین‌ها دور بماند.رو فرم بودن و فعالیت بدنییک سبک زندگی فعال و سالم به شما کمک می‌کند تا از نظر روحی و جسمی تناسب داشته باشید و به شما امکان می‌دهد استرس را بهتر مدیریت کنید.مدیریت زمان و اولویت‌بندییکی از راه‌های موثر کاهش سطح استرس این است که کارهایتان را با توجه به اهمیت آن‌ها اولویت‌بندی کنید و بعد شروع به انجامشان کنید.تعطیلات کوتاه‌مدتبه جای تعطیلات بلند سالانه، برنامه‌ی منظمی برای استراحت‌های کوتاه‌مدت داشته باشید. این برنامه فرصت مناسبی برای دریافت آرامش و تجدید انرژی برایتان فراهم می‌کند.پیگیری علایق غیرکاریبرای ایجاد تعادل میان کار و زندگی، لازم است علایق غیرکاری خود را کشف کنید و آن‌ها را توسعه دهید.شناسایی محدودیت هاتعیین حد و مرزها برای اطمینان از عدم بازگشت به حالت فرسودگی بسیار مهم است.این شناسایی، به برقراری ارتباط مناسب و مؤثر با زیردستان، اعضای تیم و مافوق‌ها برای رسیدن به انتظارات و اهداف کمک می‌کند.بسیاری از افراد در محل کار با مشکل فرسودگی شغلی مواجه می‌شوند. با این حال، این مشکل توسط بسیاری نادیده گرفته شده، در سکوت تحمل شده و در نهایت به عنوان یک واقعیت زندگی پذیرفته شده است.مطالعات اخیر نشان می‌دهد که بیش از دو سوم نیروی کار در مقطعی از شغل خود فرسودگی شغلی را تجربه کرده‌اند. با افزایش این موارد با چنین سرعت هشداردهنده‌ای، سازمان جهانی بهداشت فرسودگی شغلی کارکنان را به عنوان یک «پدیده شغلی» طبقه‌بندی می‌کند.علاوه بر این، فرسودگی شغلی را در فهرست تجدید نظر شده بیماری‌های بین‌المللی خود قرار داده‌اند.نظرسنجی انجام شده قبل از کووید (اوایل سال 2020) آمارهای تکان‌دهنده و شوکه‌کننده‌ای از فرسودگی شغلی نشان داد. در این نظرسنجی که شامل پاسخ‌های 700,000 کارمند در سراسر جهان بود، بیش از 50 درصد از افراد 25 تا 40 ساله اعتراف کردند که حداقل یک بار شغل خود را به دلیل فرسودگی شغلی ترک کردند.در ایالات متحده، فرسودگی شغلی به تنهایی عامل حدود 120,000 مرگ در سال است. کووید-19 روش‌های کاری ما را تغییر داده است و شیوه‌های قدیمی بدون استفاده شده‌اند.کار از خانه و گزینه‌های دورکاری این وضعیت را تشدید کرده است، به طوری که انتظار می‌رود کارکنان در ۲۴ ساعت شبانه‌روز در دسترس باشند. اگر ساعات کاری طولانی پیش از کرونا امری نادر به حساب می‌آمد، پس از آن به یک روتین و عادت تبدیل شد. از این رو، اکنون بیش از هر زمان دیگری، باید درک کنیم که مقابله با استرس و سلامت روان امری ضروری است.یک کارمند فرسوده سطح پایین انگیزه، بهره‌وری پایین، میزان خطای بالا، روحیه پایین و عملکرد ضعیف را به ارمغان می‌آورد که تأثیر منفی بر کل سازمان دارد.مراحل فرسودگی شغلی کارکنانفرسودگی شغلی پدیده‌ای نیست که به صورت آنی یا یک شبه اتفاق بیفتد، بلکه فرآیندی تدریجی است.به طور کلی، می‌توان با اطمینان گفت که چهار مرحله اصلی قابل شناسایی در فرسودگی شغلی کارکنان وجود دارد:مرحله 1کارمند از کار راضی است، تمام مسئولیت‌ها و کارهای اضافی را که بر سر راهش قرار می‌گیرد بدون تردید به عهده می‌گیرد. متأسفانه، او متوجه نمی‌شود که در برابر وسوسه‌ی کار زیاد تسلیم شده است.مرحله 2کارمند با تلاش قابل‌توجهی سعی می‌کند به اهداف فوق‌العاده خود برسد و ددلاین‌ها را رعایت کند. نتایج منفی این تلاش بیش از حد، به آرامی بروز پیدا می‌کند. سلامت روحی و جسمی او در معرض خطر قرار می‌گیرد. نشانه‌های ناامیدی در این مرحله شروع می‌شوند.مرحله 3ناامیدی به اوج خود می‌رسد. در این مرحله کارمند دارای پایین‌ترین سطح انگیزه و بهره‌وری است. او احساس می‌کند به شدت تحت فشار کار است و سلامت جسمانی او رو به زوال می‌رود.مرحله 4احساسات منفی شدید و بدبینی از شاخصه‌های فاز نهایی است. کارمند به طور منظم غیبت می‌کند. او اکنون احساس می‌کند کاملاً خسته و در آستانه فروپاشی است و سلامت روحی و جسمانی او به وضوح تحت‌تاثیر قرار گرفته است.در طول مراحل 1 تا 3، مداخلات به موقع سازمان یا کارفرما می‌تواند کارمند را از پیشرفت به مرحله نهایی باز دارد.داشتن خط مشی مناسب منابع انسانی و یک تیم حمایتی در فضای کار نیز می‌تواند تاثیر زیادی در پیشگیری از آن داشته باشد.کارشناسان منابع انسانی در سراسر جهان به اتفاق آرا موافقند که فرسودگی شغلی یکی از دلایل اصلی جابجایی کارمندان است و یک عامل مخرب بسیار مهم است.آیا سیاست‌هایی برای کاهش فرسودگی کارمندان دارید؟متنی که خواندید ترجمه این مقاله استما را در تلگرام دنبال کنید</description>
                <category>کنج صمیمی کامپیوتریا | Debug Valley</category>
                <author>کنج صمیمی کامپیوتریا | Debug Valley</author>
                <pubDate>Sat, 30 Oct 2021 17:01:35 +0330</pubDate>
            </item>
                    <item>
                <title>21 نکته که ای کاش زودتر در شغل مهندسی نرم‌افزار خودم می‌دانستم</title>
                <link>https://virgool.io/cheyab-blog/21-%D9%86%DA%A9%D8%AA%D9%87-%DA%A9%D9%87-%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B4-%D8%B2%D9%88%D8%AF%D8%AA%D8%B1-%D8%AF%D8%B1-%D8%B4%D8%BA%D9%84-%D9%85%D9%87%D9%86%D8%AF%D8%B3%DB%8C-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D8%AE%D9%88%D8%AF%D9%85-%D9%85%DB%8C-%D8%AF%D8%A7%D9%86%D8%B3%D8%AA%D9%85-dbvcc31jcfw0</link>
                <description>یادگیری برنامه‌نویسی سخت است. 6 سال پیش، هنگامی که مسیر توسعه وب خود را شروع کردم، احساس می‌کردم که این کار را ترک خواهم کرد.اما طاقت آوردم و اکنون دنیای تکنولوژی را دوست دارم. آنچه می‌خوانید، 21 نکته‌ای است که ای کاش در اوایل کارم می‌دانستم.1. یک زبان انتخاب کنیدتعداد باورنکردنی‌ای زبان‌ برنامه‌نویسی وجود دارد. اما مسئله این است که باید آهسته شروع کنید.هر بار یک چیز را انتخاب کنید و تا حد امکان تمرین کنید. سپس می‌توانید به سراغ بعدی بروید.2. مفهوم برنامه‌نویسی را درک کنیدممکن است هنگام یادگیری یک زبان برنامه‌نویسی جدید وسوسه شوید که به جزئیات توجه نکنید. در حالی که استفاده از گوگل برای یافتن پاسخ ها مشکلی ندارد، سینتکس را حفظ نکنید.اگر سینتکس را به خاطر نمی آورید ایرادی ندارد، اما به خاطر سپردن مفهوم ضروری است.3. از آموزش‌های آنلاین استفاده کنیداین یک نجات‌دهنده است؛ یادگیری مهارت‌های جدید آسان‌تر از همیشه است. چرا از آموزش استفاده کنیم؟دیدگاه‌های متعددی را تجربه می‌کنیدمحدودیت زمانی وجود نداردبه شما کمک می‌کند سریع‌تر و کارآمدتر یاد بگیرید4. روزانه ساعاتی را در برنامه‌ریزی خود به یادگیری اختصاص دهیدیادگیری روزانه آنقدرها هم سخت نیست، اما در ابتدا انجام آن دشوار است؛ زیرا به تعهد و نظم زیادی نیاز دارد.وبلاگ‌ها را بخوانیدویدیوهای آموزشی تماشا کنیدبه یادگیری چیزهای جدید و ساختن سازه علمی خود ادامه دهید5. تمرین، تمرین، تمرین!انجام پروژه های‌جانبی یا پروژه‌های آزمایشی، میانبر اثبات‌شده‌ای برای تسلط بر برنامه‌نویسی است.ضرب‌المثل &quot;کار نیکو کردن از پر کردن است&quot; بسیار درست است اگر بخواهید برای انجام باکیفیت کاری زمان بگذارید.6. تسلیم نشویددر شروع مسیر ممکن است همه چیز به نفع شما نباشد. یک نکته برای تبدیل شدن به یک برنامه‌نویس خوب این است که هرگز تسلیم نشوید.از اینکه چه سریع می‌توانید مفاهیم جدید را یاد بگیرید شگفت‌زده خواهید شد. شروع هر کاری همیشه سخت است.7. چرخ را دوباره اختراع نکنیددر صورت امکان از کتابخانه‌هایی استفاده کنید که به شما کمک می‌کنند کار خود را آسان‌تر کنید.لازم نیست هر راه‌حلی از ابتدا ساخته شود؛ پکیج‌ها و کتابخانه‌های مختلف را در نظر داشته باشید.8. استفاده از خط فرمان را بیاموزیدیادگیری این بسیار مفید است و در واقع ساده‌تر از آن چیزی است که اکثر مردم فکر می‌کنند. در حالی که ممکن است در ابتدا پیچیده به نظر برسد، زمانی که به آن تسلط پیدا کنید بسیار آسان می‌شود.وقتی به آن مسلط شوید، دیگر راه برگشتی وجود ندارد.9. روی مهارت‌های نرم خود کار کنیدداشتن دانش برنامه‌نویسی خوب است؛ اما اگر به مهارت‌های نرم تسلط داشته باشید، مستقیماً به 5 درصد برتر حوزه خود خواهید رسید.نوشتن را تمرین کنید، در دراز مدت به شما کمک می‌کند. تسلط بر مهارت‌های نرم به شما کمک می‌کند تا از بقیه متمایز شوید.10. رزومه‌ای قوی از پروژه‌ها بسازیدنشان دادن پروژه‌ها و کارتان بهترین چیز برای جلب توجه است.چیزهایی یاد بگیرید و بسازید؛ با این تاکتیک‌ها به راحتی از بقیه متمایز می‌شوید. این برد شما را تضمین می‌کند.11. سفر خود را مستند کنیددر مورد یادگیری خود توییت کنید و از دیگران الهام بگیرید.وبلاگ بنویسید. افراد زیادی هستند که امروز مسیر خود را آغاز می‌کنند؛ قطعاً شما به آنها الهام خواهید داد.12. در حالی که یاد می‌گیرید، درآمد کسب کنیدمن در هنگام یادگیری ابزارهای بدون کد، بیشتر از 750 دلار دریافت کردم.13. اهداف کوچک تعریف کنیدیادگیری هر زبان برنامه‌نویسی و مفهومی را شروع نکنید.هر بار یک مورد را در نظر بگیرید، اهداف کوچک تعریف کنید و آنها را در هم بشکنید. این رویکرد، تقویت‌کننده نهایی اعتماد به نفس است. اهدافی را برای بهبود توانایی و بهره‌وری تعیین کنید.14. هیچ مسیر واحدی وجود ندارددر حین یادگیری، سعی نکنید مسیر شخص دیگری را دنبال کنید؛ شما می‌توانید مسیر خود را داشته باشید.برخی چیزها ممکن است برای شما کار نکنند اما برای دیگران کارساز باشند. به جای نگرانی در مورد دیگران، روی هر چیزی که برای آن برنامه‌ریزی کرده‌اید تمرکز کنید.15. از درخواست کمک نترسیدبرای هر گونه سوال در حین یادگیری، با دوستان یا مربیان خود ارتباط بگیرید. حتی اگر سوالات احمقانه‌ای دارید، از پرسیدن خجالت نکشید.‌این احتمالاً سریع‌ترین راه برای حل شک و تردید شما و حرکت به جلو است.16. خودتان را به چالش بکشیدبا دیگران رقابت نکنید؛ با خودتان رقابت کنید و ببینید در طول زمان چقدر پیشرفت کرده‌اید.مقایسه با دیگران، انگیزه شما را کم می‌کند و موانع زیادی را بر سر راه شما قرار می‌دهد.17. اصول اولیه را بیاموزید و برنامه‌های کوچک بسازیدهرچه برنامه‌های کوچک بیشتری بسازید، پایه شما قدرتمندتر خواهد بود.اگر بیشتر بر ساختن مثال‌ها تمرکز کنید تا مفاهیم را بهتر درک کنید، به معنای واقعی کلمه غیر قابل توقف هستید.18. از گفتگوهای منفی امتناع کنیدهمه روزها مثل هم نیستند. بعضی روزها ممکن است بخواهید کناره‌گیری کنید، زیرا شاید همه چیز به نفع شما نباشد.استراحت کنید و قوی‌تر ادامه دهید. به یاد داشته باشید که برنامه‌نویسان هرگز دست از کار نمی‌کشند. همیشه یک راه‌حل وجود دارد.19. به یاد داشته باشید: هیچ کس حرفه‌ای به دنیا نمی‌آیدنکته مهم، ثبات و سخت‌کوشی است که شما را به یک حرفه‌ای تبدیل می‌کند. با قدرت به امتحان کردن ادامه دهید.هنگامی که شما بارها و بارها در یک بازه زمانی به انجام همان کار می‌پردازید، در کمترین زمان بر آن مسلط می‌شوید.20. هیچ چیز کار نمی‌کند مگر اینکه شما آن را انجام دهیدصرفا خواندن اسناد یا تماشای ویدیوها شما را به جایی نمی‌رساند. روی هر آنچه خوانده‌اید کار کنید و درک کاملی داشته باشید. تمرین انسان را کامل می‌کند.21. روی فرآیند تمرکز کنید، نه نتیجهفرآیند را برای خود سرگرم‌کننده کنید. خیلی نگران آینده نباشید، هزاران کتابخانه و فریمورک جدید در راه است.اگر پایه محکمی داشته باشید، بقیه مشکلات به راحتی رفع می‌شوند. از مسیر لذت ببرید و مثبت بیندیشید.متنی که خواندید ترجمه این مقاله استما را در تلگرام دنبال کنید</description>
                <category>کنج صمیمی کامپیوتریا | Debug Valley</category>
                <author>کنج صمیمی کامپیوتریا | Debug Valley</author>
                <pubDate>Sun, 24 Oct 2021 16:06:06 +0330</pubDate>
            </item>
                    <item>
                <title>چگونه مغز خودم را فریب دادم تا کارهای سخت را دوست داشته باشد</title>
                <link>https://virgool.io/Novira/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D9%85%D8%BA%D8%B2-%D8%AE%D9%88%D8%AF%D9%85-%D8%B1%D8%A7-%D9%81%D8%B1%DB%8C%D8%A8-%D8%AF%D8%A7%D8%AF%D9%85-%D8%AA%D8%A7-%DA%A9%D8%A7%D8%B1%D9%87%D8%A7%DB%8C-%D8%B3%D8%AE%D8%AA-%D8%B1%D8%A7-%D8%AF%D9%88%D8%B3%D8%AA-%D8%AF%D8%A7%D8%B4%D8%AA%D9%87-%D8%A8%D8%A7%D8%B4%D8%AF-pydkkmavrtdx</link>
                <description>ما احتمالا با بازی‌های کامپیوتری و یا جست و جو در فضاهای مجازی در تلفن‌های همراهمان مشکلی نداشته باشیم. در واقع، ما می‌توانیم جلوی صفحه نمایش بنشینیم و هر دو این فعالیت‌ها را به مدت دو ساعت یا حتی بیشتر بدون اینکه تمرکزمان از بین برود انجام دهیم.اما نیم‌ساعت مطالعه درسی چطور؟ یا حتی یک ساعت کسب و کار؟اگر چه ما بطور منطقی می‌دانیم که درس خواندن، ورزش کردن، ایجاد یک کسب و کار و یا یک کار پربار و سازنده در طولانی‌مدت برای ما فواید زیادی را به همراه خواهد داشت، ولی با این حال باز ما ترجیح می‌دهیم تلویزیون تماشا کنیم، بازی‌های کامپیوتری انجام دهیم و در فضاهای مجازی چرخ بزنیم.ممکن است کسی استدلال کند که این قضیه واضح است. یکی از این فعالیت‌ها آسان است و به تلاش زیادی نیاز ندارد، در حالی که فعالیت دیگر دشوار است و شما باید خود را به کار بگیرید.چگونه به خود برای انجام کارهایی که نمی‌خواهید انجام دهید انگیزه دهیدبرای پاسخ به این سوال ما نیاز داریم به انتقال‌دهنده‌ی عصبی مغز بپردازیم: دوپامیندوپامین چیستدوپامین یک انتقال‌دهنده‌ی عصبی می‌باشد که اغلب به عنوان یک مولکول لذت در نظر گرفته می‌شود.ولی نمی‌توان آن را با یک جمله تعریف کرد. دوپامین انتقال‌دهنده‌ای است که ما را مشتاق و مایل به حوادث اطراف می‌کند و همین اشتیاق است که به ما انگیزه‌ی برخواستن و انجام دادن کارها را می‌دهد.اگر شما هنوز مطمئن نیستید که دوپامین چقدر قدرتمند است، اجازه دهید چند آزمایش را که دانشمندان مغز و اعصاب روی موش‌ها انجام داده‌اند، به شما معرفی کنم.آزمایش‌های دوپامیندر این آزمایش‌ها محققان الکترودهایی را در مغز موش‌ها کارگذاری کردند به طوری که هر زمان موش‌ها اهرمی را می‌کشیدند مرکز پاداش مغز آن‌ها را تحریک می‌کردند و در نتیجه موش‌ها اشتیاق زیادی پیدا می‌کردند و ساعت‌ها و بارها اهرم‌ها را می‌فشردند و حتی از غذا خوردن و خوابیدن هم اجتناب می‌کردند. آن‌ها آنقدر اهرم را می‌فشردند تا جایی که از خستگی بر روی زمین می‌افتادند.اما سپس این فرآیند برعکس شد؛ محققان ترشح دوپامین مرکز پاداش مغز را مسدود کردند. در نتیجه، موش‌ها به حدی بی‌حال شدند که حتی بلند شدن برای نوشیدن آب ارزش تلاش را نداشت. آنها غذا نمی‌خوردند، میل به جفت‌گیری نداشتند و در کل میل و هوس به فعالیتی در آنها وجود نداشت.می‌توان گفت موش‌ها تمام اراده خود را برای زندگی از دست دادند.با این حال، اگر غذا مستقیماً در دهان آن‌ها قرار می‌گرفت، موش‌ها هنوز غذا می‌خوردند و از غذا لذت می‌بردند و آن‌‌ها فقط انگیزه‌ای برای بلند شدن و انجام این کار نداشتند.شما فکر می‌کنید که تشنگی یا گرسنگی است که ما را به دریافت غذا یا آب برمی‌انگیزد. اما دوپامین نیز در اینجا نقشی کلیدی ایفا می‌کند.این آزمایشات ممکن است دور از ذهن باشد، اما می‌توان تأثیرات مشابهی از دوپامین را بر روی انسان‌ها و در زندگی روزمره مشاهده کرد.تاثیرات دوپامین بر زندگی روزمره مادر حقیقت، مغز ما اولویت‌های زیادی را بر اساس میزان دوپامین مورد انتظار خود ایجاد می‌کند.برای مثال، قبل از آنکه ما غذای لذیذی را بخوریم مغر ما دوپامین ترشح می‌کند، زیرا ما پیش‌بینی می‌کنیم که غذا به ما احساس خوبی می‌دهد، حتی اگر واقعا حال ما را بدتر کند.این به این دلیل است که مغز ما حتی اهمیت نمی‌دهد که آیا فعالیت با دوپامین بالا برای ما مضر است یا خیر، تنها چیزی که مهم است ترشح بیشتر دوپامین است.اگر فعالیتی دوپامین بسیار کمی ترشح می‌کند، شما انگیزه‌ی زیادی برای انجام آن ندارید. اما اگر فعالیتی مقدار زیادی دوپامین آزاد کند، انگیزه شما برای تکرار چندباره آن زیاد خواهد بود.کدام رفتارها دوپامین ترشح می‌کنندهر رفتاری که شما پیش‌بینی می‌کنید پاداشی ذاتی و بالقوه داشته باشد، دوپامین ترشح می‌کند. اما اگر بدانید هیچ پاداش فوری و آنی‌ای برای این رفتار وجود ندارد، مغز شما دوپامین ترشح نمی‌کند.کسی که معتاد به مواد مخدر است، می‌داند کاری که انجام می‌دهد برایش خوب نیست. اما تنها چیزی که او می‌خواهد این است که از آن مواد بیشتر استفاده کند.برای مثال کوکائین و هروئین علاوه بر حالت سرخوشی و کیفوری، مقادیر غیرطبیعی‌ای دوپامین آزاد می‌کنند، که به نوبه خود شما را بیش‌تر مشتاق می‌کند و حتی در جامعه‌ی دیجیتالی امروز، ما روزانه مغز خود را با مقادیر زیاد و غیرطبیعی دوپامین غرق می‌کنیم، حتی اگر متوجه آن نشویم.برخی از نمونه‌های ترشح بالای دوپامین عبارتند از: گشت‌وگذار در فضای مجازی، انجام بازی‌های ویدئویی، تماشای پورنوگرافی و غیره.ما با هر یک از این رفتارها نوعی پاداش را پیش‌بینی می‌کنیم، به همین دلیل است که دائماً تلفن‌های خود را بررسی می‌کنیم و انتظار داریم پیام یا اعلانی را مشاهده کنیم و می‌دانیم که بالاخره آن را دریافت خواهیم کرد.شاید شما فکر کنید که &quot;خب که چی؟&quot;، &quot;این به معنی این نیست که در همه جهات به من آسیب می‌رساند&quot; اما شما اشتباه می‌کنید.بدن ما دارای یک سیستم بیولوژیکی به نام هموستاز است. این بدان معناست که بدن ما دوست دارد شرایط فیزیکی و شیمیایی داخلی را در سطح متعادل نگه دارد ولی هر زمان که عدم تعادل رخ دهد، بدن ما با آن سازگار می‌شود.اما یک راه دیگری وجود دارد که هموستاز، خود را نشان می‌دهد و آن از طریق بردباری و تحمل است که با دوپامین تفاوت چندانی ندارد.بدن ما سعی می‌کند هموستاز را حفظ کند، در نتیجه حساسیت گیرنده‌های دوپامین ما را کاهش می‌دهد. اساساً مغز ما به داشتن سطوح بالای دوپامین عادت می‌کند و این سطوح به حالت عادی جدید ما تبدیل می‌شود. بنابراین زیاده‌خواهی دوپامین در ما ایجاد می‌شود.این می‌تواند یک مشکل بزرگ باشد، زیرا چیزهایی که دوپامین زیادی به شما نمی‌دهند دیگر شما را مشتاق نمی‌کنند.و این باعث می‌شود که ایجاد انگیزه در شما برای انجام آن‌ها بسیار سخت و دشوار شود. بنابراین ما احساس خستگی و سردرگمی می‌کنیم چون آن کارها در مقایسه با کارهای دیگر باعث ترشح بیشتر دوپامین نمی‌شوند. هنگامی که آستانه دوپامین شما بیش از حد بالا می‌رود، به سادگی نمی‌توانید از رفتارهای با دوپامین کم لذت ببرید.به همین دلیل است که مردم بازی‌های ویدئویی یا جست‌وجو در اینترنت را به درس خواندن و یا کار کردن ترجیح می‌دهند.بازی‌های ویدئویی به ما احساس خوب و راحتی می‌دهند، زیرا مقدار زیادی دوپامین آزاد می‌کنند ولی متأسفانه مواردی مانند سخت‌کوشی یا درس خواندن، دوپامین را در مقادیر کمتری منتشر می‌کنند.این یکی از دلایلی است که معتادان به مواد مخدر که قصد ترک آن را دارند برای سازگاری با یک زندگی عادی مشکل دارند. آستانه دوپامین آن‌ها به حدی بالا می‌رود که زندگی عادی نمی‌تواند با آن مطابقت داشته باشد.این مشکل تنها برای معتادان به مواد مخدر نیست؛ افرادی که به بازی‌های ویدئویی، شبکه‌های مجازی و یا پورنوگرافی اعتیاد دارند نیز همین تجربه را دارند.چگونه می‌توان از این اتفاق جلوگیری کردپاسخ این است که شما باید شروع به سم‌زدایی دوپامین کنید.کاری که قرار است انجام دهید این است که یک روز را اختصاص دهید به اینکه باید از تمام فعالیت‌های بسیار تحریک‌کننده اجتناب کنید. شما از سیل ترشح دوپامین توسط مغزتان جلوگیری می‌کنید و اجازه می‌دهید گیرنده‌های دوپامین، خود را بهبود دهند.سلب مسئولیت: اگر از اعتیاد به مواد مخدر رنج می‌برید، پیشنهاد می‌کنم از متخصصان کمک بخواهید، زیرا احتمالاً وابستگی فیزیولوژیکی و روانی در شما ایجاد شده است و من نمی‌خواهم شما علائم شدید ترک را تجربه کنید.به مدت یک روز کامل، سعی کنید تا حد امکان کم تفریح ​​کنید. از اینترنت یا فناوری‌های دیگری مانند تلفن یا کامپیوتر استفاده نکنید، شما مجاز به گوش دادن به موسیقی نیستید، مجاز به خودارضایی یا خوردن غذاهای مضر نیز نیستید.چند گام که نیاز است برداریداساساً، شما می‌خواهید تمامی منابع لذت خارجی را برای کل روز حذف کنید؛ با این کار کسالت و خستگی را در آغوش می‌گیرید. به من اعتماد کنید، خستگی زیادی وجود خواهد داشت.با این حال شما مجاز به انجام موارد زیر هستید:پیاده‌روی کنیدمدیتیشن کنید و با افکارتان تنها باشیدبر روی زندگی خود و اهدافتان تأمل کنیدایده‌هایی که به ذهنتان می‌آید را یادداشت کنید (نه بر روی کامپیوتر یا گوشی خود بلکه بر روی یک تکه کاغذ)همه اینها ممکن است بسیار سخت به نظر برسد. اما اگر می‌خواهید نتایج ویژه‌ای داشته باشید و به این نتایج سریع دست پیدا کنید، باید بتوانید اقدامات اساسی انجام دهید.چرا این اقدامات نتیجه می‌دهدمی‌توانید به این شکل فکر کنید. فرض کنید شما هر وعده غذایی را در بهترین رستوران شهر خود می‌خورید. در نتیجه، آنچه اتفاق می‌افتد این است که آن وعده‌های غذایی تجملی تبدیل به حالت عادی و نرمال شما می‌شود.بنابراین اگر شخصی به شما پیشنهاد یک کاسه برنج ساده را دهد، شما احتمالا از خوردن آن امتناع خواهید کرد؛ زیرا طعم آن به اندازه غذای معمول رستورانی شما خوب نخواهد بود.اما اگر در جزیره‌ای بیابانی گیر افتاده باشید و گرسنه باشید آن کاسه‌ی برنج چندان بد به نظر نمی‌رسد، و این همان کاری است که سم‌زدایی دوپامین انجام می‌دهد.این کار شما را از همه‌ی لذت‌هایی که معمولا بدست می‌آورید منع می‌کند و فعالیت‌هایی که لذت کمی دارند را مطلوب‌تر و پسندیده‌تر می‌کند.به بیان ساده‌تر:سم‌زدایی دوپامین مؤثر است زیرا وقتی شما کسل و خسته می‌شوید کارهای کسل‌کننده و خسته‌کننده برای شما لذت‌بخش و سرگرم‌کننده می‌شود.حال اگر نمی‌خواهید چنین اقدامات شدیدی را انجام دهید و خود را از تمام لذت‌ها منع کنید می‌توانید سم‌زدایی دوپامین را در مقیاس کوچک‌تر امتحان کنید.یک روز از هفته را انتخاب کنید و در آن روز از یکی از کارهای لذت‌بخش خود که باعث ترشح دوپامین در مغز می‌شود کامل اجتناب کنید.این کار لذت‌بخش می‌تواند هر کاری باشد، شاید چک کردن گوشی در تمام روز، بازی‌های ویدئویی، زیاده‌روی در تماشای تلویزیون، خوردن غذاهای ناسالم، تماشای پورن و یا هر چیز دیگر.از این لحظه به بعد هر هفته برای یک روز کامل، شما از این فعالیت انتخابی اجتناب می‌کنید. شما هنوز می‌توانید کارهای دیگر را انجام دهید اما این فعالیت ممنوع است.بله شما کمی احساس کسالت خواهید کرد اما نکته این است که شما با این کار اجازه می‌دهید گیرنده‌های دوپامین از آن استانداردهای غیرطبیعی که باعث غرق شدن مغز شما می‌شوند دوری کنند و بهبود یابند. بی‌حوصلگی شما را به انجام کارهای دیگر در آن روز سوق می‌دهد، اما در حالت ایده‌آل، شما باید از این رفتارها به طور کلی، یا حداقل تا حد ممکن، اجتناب کنید. در عوض، شما می‌خواهید دوپامین بیشتری را به فعالیت‌هایی  متصل کنید که در واقع برای شما مفید هستند.مزایای بلندمدتآنچه من دریافته‌ام این است که فعالیت‌های فعلی با دوپامین بالای شما می‌تواند انگیزه‌ای برای پیگیری مواردی باشد که در واقع مزایای طولانی‌مدتی را به شما می‌دهد.به بیان دیگر، شما می‌توانید از فعالیت‌های زیاد دوپامین خود، به عنوان پاداشی برای انجام کارهای دشوار استفاده کنید. و این دقیقاً همان کاری است که من خودم انجام می‌دهم.من در آغاز، تمام کارهای دشوار و با دوپامین کم را انجام می‌دهم.تمیز کردن آپارتمان، تمرین پیانو، خواندن کتاب، انجام نوعی ورزش و غیره. بعد از آنکه نتوانستم مقدار مشخصی از کار را انجام دهم، در پایان روز مقدار زیادی فعالیت با دوپامین بالا به خودم پاداش می‌دهم.به خودتان پاداش دهیدکلیدواژه‌های مهم این قسمت &quot;بعد از&quot; و &quot;در انتهای روز&quot; است.اگر ابتدا رفتارهای با دوپامین بالا را انجام دهم، دیگر تمایلی به انجام کارهای با دوپامین کم ندارم و به سادگی انگیزه کافی نخواهم داشت. در نتیجه من همیشه با کارهای سخت شروع می‌کنم و تنها بعد از این کارها به خودم اجازه‌ی فعالیت‌های با دوپامین بالا را می‌دهم.نتیجه‌گیریاین امکان‌پذیر است که شما از انجام کارهای سخت احساس راحتی کنید.اما وقتی که مغز شما دائماً مقدار زیادی از دوپامین را دریافت کند دیگر شما در برابر کارهای با دوپامین کم، هیجان‌زده نخواهید شد.به همین دلیل است که شما باید استفاده از گوشی تلفن و یا کامپیوتر و ... را محدود کنید و می‌توانم به شما بگویم که قطعا ارزشش را دارد.بنابراین اگر مشکلات انگیزشی دارید، سم‌زدایی دوپامین را در اسرع وقت شروع کنید.خود را از مقادیر زیاد و غیرطبیعی دوپامین دور کنید و یا حداقل خود را در معرض دفعات کمتری از آن‌ها قرار دهید. فقط در این صورت است که فعالیت‌های عادی روزانه و با دوپامین کم، دوباره هیجان‌انگیز می‌شوند و می‌توانید آنها را برای طولانی‌مدت انجام دهید.آیا می‌خواهید دوپامین را از فعالیت‌هایی دریافت کنید که سودی به شما نمی‌رساند؟ یا قصد دارید آن را از کار کردن بر روی اهداف بلندمدت خود دریافت کنید؟ انتخاب با شماست!مثل همیشه، متشکرم، و امیدوارم این مقاله حال شما را از دیروز بهتر کرده باشد!متنی که خواندید ترجمه این مقاله است.ما را در تلگرام دنبال کنید.</description>
                <category>کنج صمیمی کامپیوتریا | Debug Valley</category>
                <author>کنج صمیمی کامپیوتریا | Debug Valley</author>
                <pubDate>Sat, 16 Oct 2021 20:10:00 +0330</pubDate>
            </item>
                    <item>
                <title>عملکرد عالی در مصاحبه برنامه‌نویسی: چگونه دوبار از گوگل و فیس‌بوک پیشنهاد کاری دریافت کردم!</title>
                <link>https://virgool.io/cheyab-blog/%D8%B9%D9%85%D9%84%DA%A9%D8%B1%D8%AF-%D8%B9%D8%A7%D9%84%DB%8C-%D8%AF%D8%B1-%D9%85%D8%B5%D8%A7%D8%AD%D8%A8%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%AF%D9%88%D8%A8%D8%A7%D8%B1-%D8%A7%D8%B2-%DA%AF%D9%88%DA%AF%D9%84-%D9%88-%D9%81%DB%8C%D8%B3-%D8%A8%D9%88%DA%A9-%D9%BE%DB%8C%D8%B4%D9%86%D9%87%D8%A7%D8%AF-%DA%A9%D8%A7%D8%B1%DB%8C-%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-%DA%A9%D8%B1%D8%AF%D9%85-sojszup8zfru</link>
                <description>در سال 2017، پیشنهاداتی از فیس‌بوک، گوگل و مایکروسافت دریافت کردم. فکر می‌کردم شانس آورده‌ام. اما در سال 2019، من همان فرآیند آماده‌سازی را دنبال کردم و نتایج تکرار شد: پس از دریافت پیشنهادات از فیس‌بوک، گوگل، اسنپ، اسکوئر و اوبر، متوجه شدم که یک فرایند تکرارپذیر برای مصاحبه‌های برنامه‌نویسی پیدا کرده‌ام. پروسه من طی صدها ساعت مطالعه برای مصاحبه‌های فنی و بیش از 100 ساعت مصاحبه در شرکت‌های واقعی انجام شد. من راهنمایی نوشتم تا با دوستان خود به اشتراک بگذارم؛ که آن را ارزشمند دانستند و من را تشویق کردند که آن را با مخاطبان بیشتری به اشتراک بگذارم.این راهنما فقط سوالات برنامه‌نویسی را پوشش می‌دهد. فرایند من نکات زیادی را برای تمرین کارآمد ارائه می‌دهد، اما میانبرهای کمی دارد و در میان راهنماهای آماده‌سازی مصاحبه، مانند &quot;هفته کار 4 ساعته&quot; نیست. در عوض، این یک رویکرد سیستماتیک است که زمان می‌برد و یک بنیان مصاحبه قوی ایجاد می‌کند.آنچه باید انتظار داشته باشید: این کار، سخت استشب‌های بی‌خوابی. دست‌های عرق‌کرده. چشمان اشک‌آلود. آمادگی و مصاحبه برای مشاغل برنامه‌نویسی طاقت‌فرسا است زیرا مصاحبه به خودی خود یک مهارت است. برنامه‌نویس خوب بودن شما را مصاحبه‌کننده خوبی نمی‌کند. هنگامی که مهارت‌های مصاحبه خود را توسعه می‌دهید، پیشرفت شما از یک منحنی نمایی پیروی می‌کند - شما برای مدتی نتایج را مشاهده نخواهید کرد، با طردشدگی زیادی روبرو خواهید شد و این باعث تضعیف روحیه شما می‌شود. اما نهایتا دانش و تجربه شما ترکیب می‌شود و با پیشروی، به نقطه عطفی خواهید رسید که در آن به سرعت پیشرفت کرده و به طور مداوم در مصاحبه‌ها موفق عمل می‌کنید.فرآیندپروسه آمادگی را می‌توان به دو بخش تقسیم کرد:1. دانش: آیا اطلاعات کافی در زمینه مورد نظر دارید؟2. اضطراب: آیا می‌توانید تحت فشار روانی خوب عمل کنید؟شکل دادن به ساختار دانشتمرین هدفمند، کارآمدترین راه برای بهبود نقاط ضعف شما است.قدم اول: تشخیص نیازبرای شناسایی زمینه‌هایی که باید روی آن‌ها کار کنید (اگر همه زمینه‌ها نیاز به کار دارند ایرادی ندارد)، از کتاب &quot;Cracking the Coding Interview (CTCI) &quot;Interview Questions به عنوان یک تست تشخیصی استفاده کنید، زیرا همه دسته‌های اصلی سوالات را پوشش می‌دهد. هر بار یک فصل را مرور کنید. اگر با چند چالش در یک گروه (مانند آرایه‌ها) روبرو شدید و آسان به نظر می‌رسند، به فصل بعدی بروید. در غیر این صورت، تمام چالش‌های یک فصل را حل کنید. وقتی کتاب را مرور می‌کنید، اعتماد به نفس خود را در هر بخش یادداشت کنید. من از مقیاس 4 نقطه‌ای استفاده می‌کنم؛ که در آن: 1- عدم اطمینان، 2- بی‌ثبات، و 3- قابل عبور، و 4- تسلط کامل. پس از گذراندن فصل‌های این کتاب، به چیزی شبیه این می‌رسید:Arrays and Strings: 2Linked Lists: 1Stacks and Queues: 3همین روند را برای همه فصل‌ها تکرار کنیدقدم دوم: تمرین کارآمداز پایتون برای سرعت استفاده کنید. پایتون بهترین زبان برنامه‌نویسی برای مصاحبه است؛ زیرا سینتکس آن مختصر است و شامل ابزارهایی برای آرایه‌ها و کار با رشته‌ها است که به شما امکان می‌دهد سریع برنامه‌نویسی کنید. هرچه سریع‌تر بتوانید برنامه‌نویسی کنید، شانس بیشتری برای حل هر سوال دارید. پایتون به شما امکان می‌دهد سریع شکست بخورید و در حین تمرین و مهم‌تر از آن در طول مصاحبه‌ها سریع یاد بگیرید. من پایتون را مخصوصا برای مصاحبه آموختم و نتیجه‌بخش بودفقط سوالات با سطح دشواریِ آسان و متوسط را در LeetCode امتحان کنید. سوالات سخت وقت زیادی می‌برند و در نتیجه به ندرت در مصاحبه‌های واقعی مطرح می‌شوند؛ زیرا مصاحبه‌ها معمولاً فقط 45 دقیقه طول می‌کشند.هر بار یک دسته را تمرین کنید. با نقاط ضعف خود شروع کنید و به کمک LeetCode، بسیار تمرین کنید. یک گروه را در یک زمان (به عنوان مثال فقط سوالات آرایه) در مجموعه‌های 5 تا 10 سوالی تمرین کنید. برخلاف انجام مجموعه‌ای از سوالات از دسته‌بندی‌های مختلف، عمیق شدن در یک دسته، تکرار مورد نیاز برای ایجاد شهود در حل انواع چالش‌های خاص را فراهم می‌کند. همانطور که در یک دسته تمرین می‌کنید، الگوها و استراتژی‌هایی را مشاهده خواهید کرد که می‌تواند به شما در حل هرگونه سوال در آن زمینه کمک کند.اکانت پرمیوم Leetcode تهیه کنید. من این هزینه را پرداخت می‌کنم زیرا به من کمک می‌کند بفهمم کدام چالش‌های برنامه‌نویسی رایج هستند و همیشه از محبوب‌ترین آنها در هر دسته شروع می‌کنم، زیرا می‌خواهم سوالات عملی‌ای را که احتمالاً در مصاحبه‌های واقعی مشاهده می‌کنم، تجربه کنم. تفاوت بین پیشنهاد کاری بد و خوب ده‌ها تا صدها هزار دلار در سال است، بنابراین 35 دلار در ماه هزینه کمی است که باید برای افزایش شانس خود پرداخت کنید. من همچنین شنیده‌ام که AlgoExpert نسبت به قیمتش بسیار مناسب است.برای هر سوال 30 دقیقه زمان صرف کنید. یک تایمر را به مدت 30 دقیقه تنظیم کنید. اگر تمام شد و نزدیک اتمام سوال نیستید، به پاسخ نگاه کنید زیرا صرف زمان بیشتر بازدهی کمتری دارد.پیچیدگی زمان اجرا را محاسبه کنید. از آنجا که مصاحبه‌کننده همیشه از شما پیچیدگی زمان اجرا را می‌خواهد، در هر سوال این موضوع را تمرین کنید.با صدای بلند فکر کنید. از آنجایی که برای مصاحبه مجبور هستید در حین برنامه‌نویسی صحبت کنید، با صدای بلند فکر کنید تا به آن عادت کنید.سوالات متداولی را که برایتان سخت بود، چند روز بعد مرور کنید. این امر آموخته‌های شما را تقویت می‌کند و این که بتوانید تمام سوالات متداول را حل کنید، پایه‌ای قوی ایجاد می‌کند. به هر حال، اکثر سوالات از میان چالش‌های رایج هستند.چقدر باید تمرین کنید؟ من برای اولین دوره آمادگی مصاحبه، تقریباً 150 سوال را تمرین کردم. بار دوم من حدود 100 مورد که قبلاً انجام داده بودم و 50 مورد جدید را انجام دادم. من به تمرکز بر متداول‌ترین سوالات اعتقاد دارم.به طور خلاصه: برای تشخیص نقاط ضعف، کتاب CTCI را بخوانید. سپس با Leetcode تمرین کنید. فقط چالش‌های آسان و متوسط را انجام دهید. از پایتون استفاده کنید.تسلط یافتن بر ذهنکنترل اعصابتان درست به اندازه‌ی دانستن پاسخ مطالب اهمیت دارد. ممکن است در حل مسائل به تنهایی عالی باشید اما این یک تجربه‌ی کاملا متفاوت است که یک نفر در حال تماشای فکر کردن و اشتباهات شما باشد. این تمرکز شما را مختل می‌کند. من در یکی از اولین مصاحبه‌هایم حتی نمی‌توانستم عناصر یک آرایه را چاپ کنم، چون عصبی بودم. نکته‌ی کلیدی برای کمینه کردن این ناآرامی و اضطراب این است که هر چند بار که می‌توانید شرایط پرفشار مصاحبه‌ی زنده را برای خود شبیه‌سازی کنید تا هنگام مصاحبه‌ی واقعی احساس راحتی کنید.1. محیط را شبیه‌سازی کنیداکنون همه‌ی مصاحبه‌ها به صورت مجازی انجام می‌شود، پس میز کار و لپ‌تاپتان را برای یک مصاحبه‌ی واقعی آماده کنید. نرم‌افزار تماس ویدیویی را باز کنید و از یک ادیتور آنلاینِ بدون تکمیل خودکار مثل Coderpad برای نوشتن برنامه و اجرای آن استفاده کنید.نکته‌ای در مورد وایت‌برد: در گذشته با توجه به مصاحبه‌های حضوری، ممکن بود بخواهید روی وایت‌برد تمرین کنید؛ اما من دوستی دارم که در جلسات حضوری هم درخواست می‌کرد به جای وایت‌برد از لپ‌تاپ استفاده کند و درخواستش هرگز رد نشد.2. از کسی بخواهید شما را در حین کار تماشا کندبرای شبیه‌سازی فشار مصاحبه‌ی زنده، نیاز دارید کسی شما را حین برنامه‌نویسی و صحبت کردن با خودتان تماشا کند. در حالت ایده‌آل یک مهندس نرم‌افزار را برای این کار پیدا می‌کنید تا بر روی کد زدنتان نظارت کند و در بدترین حالت از هر شخصی مثل مادر، دوست یا خواهر و برادرتان بخواهید در این زمان شما را تحت‌نظر بگیرد. از آنجا که در حال حاضر مصاحبه‌ها مجازی برگزار می‌شوند، از آن‌ها بخواهید از طریق تماس ویدیویی نظارت را انجام دهند.3. چند مصاحبه‌ی عملی انجام دهیداگر ممتحن شما یک مهندس کامپیوتر است، از او بخواهید یک سوال که قبلا آن را ندیده‌اید انتخاب کند. سپس ساعت را برای 35 دقیقه‌ی بعد تنظیم و شروع کنید. قطعا هر کس سبک مصاحبه‌ی خاص خود را دارد اما من در همه‌ی مصاحبه‌های موفقیت‌آمیزم از قالب زیر استفاده کرده‌ام:شفاف‌سازی (حدود 2 دقیقه)ابتدا سوال را چند بار بخوانید و مطمئن شوید آن را درست فهمیده‌اید. حتی اگر فکر می‌کنید آن را کاملا درک کرده‌اید، به مدت دو دقیقه در مورد جزئیات آن بپرسید تا شفاف شود. 90 درصد مصاحبه‌شوندگان بلافاصله به کد زدن می‌پردازند و به دلیل ارتباط ضعیف با مصاحبه‌کننده، امتیاز منفی می‌گیرند. حتی در مورد ورودی‌ها و موارد حاشیه‌ای هم سوال بپرسید. اینکه آیا باید مقادیر null را مدیریت کنید یا خیر.با راه‌حل خام و آسان شروع کنید (حدود 3 دقیقه)برای حل اکثر سوالات، در وهله‌ی اول یک راه‌حل ناشیانه و ساده وجود دارد. خوب است که با آن شروع کنید و به خود بگویید:«با همین راه‌حل کارم را آغاز می‌کنم و بعد آن را بهبود می‌بخشم. چطور است؟» می‌توانید تعدادی سودو کد برای این راه حل بنویسید اما من معمولا فقط با صدای بلند به آن فکر می‌کنم و پیش ‌می‌روم. حالا از این نقطه به بعد همواره از خود بپرسید چطور می‌توانیم این را بهتر کنیم؟بهینه‌سازی راه‌حل اولیه (حدود 10 دقیقه)تعداد کمی از مسائل از مرتبه‌ی N^2 یا بیشتر هستند، بنابراین می‌توانید فرض کنید که آن‌ها به دنبال راه‌حلی از مرتبه‌ی N یا LogN یا  NLogN هستند. با یک سودو کد ساده شروع کنید چون هنگامی که اشتباه می‌کنید، به راحتی می‌توانید آن را اصلاح کنید. سعی کنید بیش از 10 دقیقه بر روی طراحی اسکلت سودو کد وقت نگذارید. در این مرحله باید به زمان اجرای کد هم توجه کنید و از مصاحبه‌کننده بپرسید آیا به اندازه‌ی کافی سریع هست یا نه.سودو کد را به کد واقعی تبدیل کنید (حدود 15 دقیقه)ممکن است هنوز 100 درصد از راه‌حل خود مطمئن نباشید اما اشکالی ندارد، گذر زمان به ضرر شماست پس باید شروع کنید. اشکالی ندارد که چند دقیقه در سکوت برنامه بنویسید اما همواره مصاحبه‌کننده را در جریان امور قرار دهید. هر مورد جدیدی که به ذهنتان می‌رسد را آزمایش کنید و زمان اجرا را مجددا حساب کنید.کد خود را همه‌جانبه تست کنیدبه تست‌هایی که تا اینجا با آن‌ها پیش آمده‌اید نگاه کنید، حالتی وجود دارد که آن را تست نکرده‌ باشید؟ همه‌ی حالت‌ها را امتحان کنید. مقدار متغیرها را در خلال کد چاپ کنید تا بتوانید تغییراتشان را دنبال کنید. مطمئن شوید تمام خطوط کدتان و حلقه‌هایتان در اجرای تست‌های مختلف امتحان می‌شوند و درست کار می‌کنند.به طور خلاصه: تا حد ممکن فضای واقعی مصاحبه را شبیه‌سازی کنیدنکات تکمیلی1. با صدای بلند فکر کنیدلازم است هنگام نوشتن برنامه با صدای بلند فکر کنید. هنگامی که سکوت می‌کنید، مصاحبه‌کننده نمی‌تواند شما را ارزیابی کند. البته خوب است در طول این فرایند، مدتی سکوت کنید تا کاملا متمرکز باشید.2. کامنت‌های خُرد برای توابع بی‌اهمیت، کامنت‌های خُرد اضافه کنید و بگویید بعداً آن‌ها را پیاده‌سازی خواهید کرد. به احتمال زیاد مصاحبه‌گر شما را مجبور به پیاده‌سازی آن‌ها نمی‌کند، به خصوص اگر وقت کم داشته باشید و این کار در وقت گران‌بهای شما برای حل اصل چالش صرفه‌جویی می‌کند. یک مثال ساده این است که اگر نیاز دارید حرف اول رشته‌های یک لیست را بزرگ بنویسید، می‌توانید وانمود کنید که یاوری دارید که این کار را انجام می‌دهد و 2 دقیقه به واسطه اجرای آن تابع کمکی صرفه‌جویی کنید.3. موارد تست را یادداشت کنیدهنگام کد زدن، احتمالا مواردی برای تست کردن به ذهنتان می‌رسد؛ بلافاصله آن‌ها را در قالب کامنت بنویسید و به نوشتنِ برنامه ادامه دهید تا تمرکزتان از دست نرود اما یادتان باشد که در آخر بازگردید آن موارد را تست کنید.4. از زاویه‌ی ساختارهای داده فکر کنیدساختارهایی را که در LeetCode و CTCI بررسی کرده‌اید را به یاد دارید؟ آرایه‌ها، لیست‌های لینک‌شده، نمودارها، نقشه‌ها، صف‌ها، داده‌های پویا. پاسخ مسئله‌ای که آن‌ها طرح می‌کنند در یکی از این دسته‌بندی‌ها جای می‌گیرد، با پیدا کردن ساختارداده‌ی مناسب، نیمی از راه‌حل را یافته‌اید.5. آهسته پیش برویدخوب ورزش کنید. خوب غذا بخورید. دوستانتان را ببینید و سرگرمی داشته‌ باشید. اعتدال را رعایت کنید، این یک فرایند طولانیست.نکته‌ی دلگرم‌کنندهبا اقدام برای مصاحبه‌ی شغلی، وظیفه‌تان را انجام داده‌اید و حالا زمان برنامه‌ریزی است. مصاحبه‌های خود را از پایین‌ترین اولویت تا مطلوب‌ترین اولویت مرتب کنید. با وجود تمام تلاش شما برای شبیه‌سازی مصاحبه‌ی واقعی، احتمالا 5 مصاحبه‌ی اول خود را به دلیل فشار روانی آن رد می‌شوید. بنابراین اولویت‌های خود را از پایین به بالا بچینید؛ بعد از 5 مصاحبه‌ی اول میزان موفقیت شما افزایش می‌یابد. من تقریبا در 75 درصد مصاحبه‌هایم شکست خورده‌ام اما از آنجا که مهم‌ترین آن‌ها را در اولویت‌های آخر قرار داده بودم، در اوج آمادگی بودم و توانستم بهترین مشاغلی که در نظر داشتم را بدست آورم.سخن پایانیدشوار است اما از پس آن برمی‌آیید. ممکن است گاهی انگیزه‌ی خود را از دست بدهید یا از اینکه مصاحبه‌ی فنی، روش کارآمدی برای سنجش توانایی‌های شما نیست به خشم آیید؛ اما اکنون این تنها چیزیست که وجود دارد. بدانید که اگر بر روی آن وقت صرف کنید نتایج آن را خواهید دید. موفق باشید.متن بالا ترجمه این مقاله استما را در تلگرام دنبال کنید</description>
                <category>کنج صمیمی کامپیوتریا | Debug Valley</category>
                <author>کنج صمیمی کامپیوتریا | Debug Valley</author>
                <pubDate>Sun, 10 Oct 2021 17:48:16 +0330</pubDate>
            </item>
                    <item>
                <title>چگونه در حل چالش‌های برنامه‌نویسی بهتر عمل کنیم</title>
                <link>https://virgool.io/@debugvalley/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%AF%D8%B1-%D8%AD%D9%84-%DA%86%D8%A7%D9%84%D8%B4-%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%A8%D9%87%D8%AA%D8%B1-%D8%B9%D9%85%D9%84-%DA%A9%D9%86%DB%8C%D9%85-jgmnozftjstw</link>
                <description>به اکثر ما توصیه‌هایی مشابه شده است: برای حل بهتر چالش‌ها، باید چالش‌های بیش‌تری را حل کنید. اما این توصیه بیش از حد ساده‌انگارانه است. به دست آوردن مهارت در هر زمینه‌ای به چیزی بیش‌تر از تکرار نیاز دارد. نحوه برخورد شما با آن هم اهمیت زیادی دارد.علاوه بر این، وقتی برنامه‌نویسان توصیه &quot;حل مشکلات بیش‌تر&quot; را می‌شنوند، اغلب فکر می‌کنند که &quot;بیشتر&quot; به معنی سریع‌تر است. این اشتباهی است که من هم هنگام شروع مرتکب شدم.تردمیل حل مشکل می‌تواند برای یادگیری و بهبود مضر باشد. اوایل من یک مشکل را سریع حل می‌کردم و سراغ مشکل بعدی می‌رفتم. اما واقعیت آن رویکرد به زودی مشخص شد. با تمرکز بر کمیت، کیفیت را به خطر می‌انداختم و یادگیری‌های کلیدی را در طول مسیر از دست می‌دادم.این بدان معنا نیست که تکرار مهم نیست. با این حال، تکرار به تنهایی شما را به اصل و عمق موضوع نمی‌رساند. اما فرآیند چرا.من علاقه خاصی به این موضوع دارم: من می‌خواهم در حل چالش‌ها پیشرفت کنم تا برنامه‌نویس بهتری شوم. بنابراین در اینجا من راه‌حل خود را ارائه می‌دهم. مطمئناً شامل تکرار است - و موارد خیلی بیشتر.1. حل انواع چالش‌ها در پلتفرم‌های مختلفیک بار مدرس دوره پایتونی که در آن شرکت می‌کردم، گفت: &quot;وقتی شروع به یادگیری برنامه‌نویسی کردم، شیفته HackerRank بودم.&quot; اگر چه داشتن یک پلتفرم مورد علاقه خوب است، اما خود را به یک پلتفرم محدود نکنید. دلیل آن این است: شما باید برای هر چیزی آماده باشید.یکی از اهداف من این است که به راحتی بین انواع مختلف چالش‌ها و پلتفرم‌ها جابجا شوم. چالش‌های مربوط به Interview Cake با آنچه در کتاب Reuven Lerner’s book, Python Workout موجود است، تفاوت دارد. به طرز مشابه، من عبارات چالش‌ها در Lerner’s Weekly Python Exercise را با مواردی که در HackerRank وجود دارد متفاوت می‌دانم.من مطمئناً ترجیحات خودم را دارم. با این حال، من باید بتوانم انواع مختلف چالش‌ها را حل کنم. بنابراین من از انواع پلتفرم‌ها و منابع برای تمرین استفاده می‌کنم.در اینجا چند نمونه آورده شده است:LeetCodeCracking the Coding Interview by Gayle Laakmann McDowellExercismInterview CakePython Workout by Reuven LernerWeekly Python Exercise by Reuven Lernerروزهای یکشنبه، هنگامی که برنامه خود را برای هفته آینده تنظیم می‌کنم، چند چالش را از منابع فوق انتخاب می‌کنم. من این کار را دقیق و فعالانه انجام می‌دهم. به عنوان مثال، چالشی را از LeetCode انتخاب می‌کنم که بر روی جستجوی دودویی متمرکز است. سپس، یکی که بر ساختارداده‌های یکی از منابع Reuven Lerner بنا شده است.این تمرین مانع راحت‌طلبی بیش از حد من می‌شود. من نمی‌توانم به همان ساختارداده یا تکنیک مشابه تکیه کنم. باید بتوانم بهترین ابزار را برای کار انتخاب کنم.این موضوع برای من چالش‌برانگیز است. به این دلیل که من چالش‌هایی را انتخاب می‌کنم که من را به مرزهای خود می‌رساند، ویژگی‌ای که روانشناس آندرس اریکسون آن را &quot;تمرین عامدانه&quot; می‌نامد.هدف تمرین عامدانه، توسعه مهارت است. اریکسون در کتاب عالی خود، Peak توضیح می‌دهد که این یک تلاش کاملاً متمرکز و آگاهانه است که شما را از &quot;منطقه راحتی&quot; خودتان خارج می‌کند، بر یک هدف خاص متمرکز شده و &quot;تقریباً حداکثر تلاش را می‌طلبد&quot;.به عبارت دیگر، شما حرکتی را انجام نمی‌دهید که آسان یا طبیعی باشد. اریکسون می‌نویسد: &quot;ویژگی برجسته‌ی تمرین عامدانه این است که شما سعی می‌کنید کاری را انجام دهید که نمی‌توانید انجام دهید.&quot;2. ذهن برنامه‌نویسی خود را متنوع آموزش دهیداغلب در مورد ورزشکارانی می‌شنوید که تمرینات متنوع را در برنامه روزانه خود قرار می‌دهند. به عنوان مثال، یک دونده هر هفته یک یا دو تمرین دوچرخه انجام می‌دهد. این بسیار منطقی است: با تمرین متنوع، ورزشکاران آمادگی قلبی عروقی خود را از زاویه‌ای متفاوت افزایش می‌دهند.یادگیری متنوع برای برنامه‌نویسان، موضوعی است که قبلاً در مورد آن نوشتم. با این حال، باید بیشتر در مورد مزایای این روش گفت. درست مانند یک ورزشکار که تمرینات متنوع را برای بهبود آمادگی قلبی عروقی انجام می‌دهد، من نیز تمرینات متنوع را برای بهبود آمادگی ذهنی خود انجام می‌دهم.تکنیک یادگیری متنوع من شامل حل مسائل ریاضی است. من همان تاکتیک‌هایی را که برای حل یک مشکل برنامه‌نویسی استفاده می‌کنم، در ریاضیات هم استفاده می‌کنم. فرایند یکسان، زمینه‌ی متفاوت.کتاب ریاضی فعلی من یکی است که باید به آن توجه شود: The Art of Problem Solving. بله، مزایای یادگیری متنوع ذکر شده در بالا را فراهم می‌کند. اما کار بیشتری هم انجام می‌دهد: به من کمک می‌کند تا شهود خود را برای حل چالش‌ها پرورش دهم.این نکته مهم است. من نمی‌خواهم یک معادله یا فرایند ریاضی را حفظ کنم. من می‌خواهم به طور شهودی بدانم چه زمانی از آن استفاده کنم. هنگام حل چالش‌های برنامه‌نویسی نیز همین امر صادق است.3. از راه‌حل‌های خود بیاموزیدهمه‌ی ما هنگام حل مسئله به چالش کشیده می‌شویم و به خطاهای متفاوت برمی‌خوریم. این شکست‌ها به ما کمک می‌کنند تا بفهمیم کدام بخش از کار را باید به نحو متفاوتی انجام دهیم. غالبا در این نقطه یادگیری را متوقف می‌کنیم. به محض آنکه مسئله را حل کردیم مشتاقیم ادامه دهیم. اما این کار را نکنید.ریچارد هامینگ ریاضی‌دان معتقد است که در این زمان باید یادگیری آغاز شود. او در کتاب خود با عنوان «هنر پرداختن به علوم و مهندسی» می‌نویسد:«من اساسا بررسی موفقیت‌ها را مهم‌تر از بررسی شکست‌ها می‌دانم. راه‌های اشتباه زیادی وجود دارند در حالیکه راه‌های درست محدودند. از این رو، مطالعه و بررسی موفقیت‌ها کارآمدتر است.»این ایده‌ی «نگاه به گذشته» و مطالعه‌ی موفقیت‌هایتان موضوعیست که پیش از این در مورد آن نوشته‌ام و ارزش یادآوری دوباره را دارد. شما همیشه می‌شنوید که چگونه باید از شکست‌های خود درس بگیرید اما هامینگ درست می‌گوید، چیزهای زیادی برای آموختن از موفقیت‌هایمان وجود دارد.بنابراین یکی از بزرگ‌ترین تغییراتی که من در فرایند حل مسئله‌ام ایجاد کرده‌ام، به کار بستن توصیه‌های هامینگ است. من به وضوح یکی از اولین مشکلاتم که مربوط به یک لیست لینک شده بود را به خاطر دارم. ساختارداده‌ای که آن زمان برای من کاملا جدید بود. بعد از حل مشکل، به دقت آن را مطالعه کردم. همچنین راه حل را در یک فایل کپی کردم و برای توضیح کد، روی بخش‌های مختلف آن کامنت گذاشتم. با انجام این کار می‌خواستم مطمئن شوم که کاملا فهمیده‌ام چه کار کرده‌ام و مهم‌تر از همه این که می‌توانم دوباره آن را انجام دهم.4. بازخورد دریافت کنیدآگاهی می‌تواند یک معلم فوق‌العاده باشد.تصور نکنید راه‌حل‌های شما بی‌نقص هستند. باید با گرفتن بازخورد به میزان صحت این موضوع پی ببرید. بازخورد، یک عامل مهم برای پیشرفت و بهتر شدن است و همچنین بخشی از هر تمرین عمیق و هدفمند را تشکیل می‌دهد.دو راه کلی برای گرفتن بازخورد وجود دارد:اول اینکه پس از حل یک مسئله، راه‌حل‌های دیگران را مطالعه کنید. اغلب، برخی از منابع مانند LeetCode و Cracking the Coding Interview راه‌حل مسائل را ارائه می‌دهند. در مواقع دیگر به دنبال راه‌حل سوالات مشابه می‌گردم و گاهی از هر دو این‌ها استفاده می‌کنم.در هر صورت گام بعدی یکسان است: از ابتدای راه‌حل شروع می‌کنم و هر خط را برای خودم توضیح می‌دهم؛ مثلا حدس می‌زنم که نویسنده‌ی این برنامه چرا از آن ساختارداده‌ی خاص در هر بخش استفاده کرده است. سپس، یک خلاصه‌ی کوتاه از برنامه را برای تثبیت و درک عمیق‌تر مفاهیم اصلی یا روش‌ها و دیدگاه‌های جدیدی که آموخته‌ام، می‌نویسم.توضیح یک خط کد پیچیده به زبان قابل درک برای خودتان یک آزمایش عالیست تا متوجه شوید آن را عمیقا درک کرده‌اید یا خیر. علاوه بر این، شما با این کار یک مهارت مهم دیگر را در خودتان تقویت می‌کنید: کدخوانی.اگر چیزی برای من جدید باشد در مورد آن تحقیق و جستجو می‌کنم. کد دیگران را با کد خودم مقایسه می‌کنم. همواره مطالعه و ارزیابی می‌کنم و یاد می‌گیرم. این یک روند دشوار است اما به شما چیزهای زیادی می‌آموزد.راه دوم برای دریافت بازخورد این است که به سادگی آن را از برنامه‌نویسان دیگر درخواست کنید. برقراری تماس تصویری برای بررسی خط به خط کد کمک‌کننده است. اگرچه تبادل‌نظر از طریق pull request هم می‌تواند مفید باشد.نکته‌ای در مورد بازخورد وجود دارد: آن را اعمال کنید! از آنچه آموخته‌اید در عمل استفاده کنید.5. پافشاری کنیداکنون لازم است درمورد اهمیت تمرین و تکرار صحبت کنیم. حل مسئله یک مهارت است و مانند هر مهارت دیگری، به دست آوردن آن در طول زمان و به مرور به دست می‌آید؛ یک شبه یا در یک آخر هفته اتفاق نمی‌افتد. به همین دلیل من هر روز زمان مشخصی را به حل مسئله اختصاص می‌دهم.یک واکنش رایج به تمرین روزانه وجود دارد:«چیزهای جدید زیادی برای یادگیری وجود دارد. من نمی‌توانم هر روز بخشی از وقتم را صرف حل مسئله کنم.»پاسخ من به این واکنش دو بخش دارد: اول اینکه همیشه چیزهای بیشتری برای یادگیری وجود دارند. همیشه. دوم اینکه بخش عمده‌ی برنامه‌نویسی را همین حل مسئله تشکیل می‌دهد و پایه و اساس حرفه‌ی ماست؛ بنابراین ارزش وقت و توجه شما را دارد. اینجا یک نکته‌ی اساسی وجود دارد که باید به آن توجه کنید: تمرین روزانه‌ی خود را با تمرکز بالا انجام دهید.این یک هنر استبسیاری از افراد حل مسئله را یک هنر می‌دانند. اتفاقا من با این برداشت موافقم. ایده‌های بیان‌شده در این مقاله، رویکردهای پیشنهادی من برای بهبود مهارت حل مسئله بود. ممکن است روش شما متفاوت باشد اما نکته‌ی اساسی این است: با تمرکز بالا به تمارین خود بپردازید. کیفیت اهمیت دارد. همچنین با هر مسئله‌ای درگیر شوید و به سادگی از آن نگذرید.متنی که خواندید ترجمه این مقاله استما را در تلگرام دنبال کنید</description>
                <category>کنج صمیمی کامپیوتریا | Debug Valley</category>
                <author>کنج صمیمی کامپیوتریا | Debug Valley</author>
                <pubDate>Sat, 02 Oct 2021 22:19:31 +0330</pubDate>
            </item>
                    <item>
                <title>پنج نکته که پس از حل کردن 500 سوال لیت‌کد آموختم</title>
                <link>https://virgool.io/coderlife/%D9%BE%D9%86%D8%AC-%D9%86%DA%A9%D8%AA%D9%87-%DA%A9%D9%87-%D9%BE%D8%B3-%D8%A7%D8%B2-%D8%AD%D9%84-%DA%A9%D8%B1%D8%AF%D9%86-500-%D8%B3%D9%88%D8%A7%D9%84-%D9%84%DB%8C%D8%AA-%DA%A9%D8%AF-%D8%A2%D9%85%D9%88%D8%AE%D8%AA%D9%85-x1ms7liseihm</link>
                <description>هر کسی که در جستجوی شغل توسعه نرم‌افزار است به احتمال زیاد لیت‌کد «Leetcode» را به خوبی می‌شناسد. این وب‌سایت سوالات و راه‌حل‌هایی را که در مصاحبه‌های فنی برای برخی از شرکت‌های پرطرفدار مانند گوگل، فیس‌بوک و مایکروسافت ارائه می‌شود، جمع‌آوری می‌کند.این نوع چالش‌های مصاحبه که شامل ساختارداده‌ها و الگوریتم‌ها می‌شود، حتی در بین شرکت‌های کوچک‌تر رواج بیش‌تری پیدا کرده است و این باعث ناراحتی بسیاری می‌شود که استدلال می‌کنند مهارت حل مسائل لیت‌کد، نشان‌دهنده توانایی شخص در انجام کار نیست.در حالی که موافقم که ندانستن لیت‌کد شما را توسعه‌دهنده بدی نمی‌کند و ممکن است درست باشد که در طول کار خود هرگز نیازی به معکوس کردن درخت دودویی ندارید، اما چیزهای زیادی وجود دارد که درگیر شدن با مسائل لیت‌کد می‌تواند به شما بیاموزد که در شغل شما مفید خواهد بود.1. اهمیت ساختارداده‌ها و الگوریتملیت‌کد یک دوره آموزشی ساختارداده و الگوریتم نیست و اگر آمادگی قبلی در مورد این موضوع ندارید، قطعاً باید دوره‌ای را بگذرانید که اصول اولیه را به شما آموزش دهد تا بتوانید از پلتفرم به طور موثر استفاده کنید. اما لیت‌کد در درک عمیق نحوه استفاده از ساختارداده و الگوریتم بسیار مفید است.صادقانه بگویم، یک پایه علمی قوی از ساختارداده برای هر توسعه‌دهنده ضروری است، من اخیراً به این قضیه پی بردم که چگونه یک پیشرفت الگوریتمی ساده، 70 درصد زمان بارگیری صفحه نمایش را در بازی GTA V کاهش داد، و من از تجربه می‌دانم که چقدر پیاده‌سازی کارآمد می‌تواند یک برنامه را قادر سازد حتی در شرایط استرس، هموار اجرا شود.2. همیشه فردی داناتر از شما وجود داردمن معمولاً پس از دستیابی به راه‌حل، به کد خود افتخار می‌کنم، اما اغلب وقتی بخش نظرات را می‌خوانم این حس از بین می‌رود، جایی که گاهی اوقات می‌توانید پیاده‌سازی‌هایی را پیدا کنید که حتی از راه‌حل رسمی ارائه‌شده باکیفیت‌تر است.صادقانه بگویم، تقریباً نیمی از آنچه در هنگام کار با لیت‌کد آموخته‌ام، از خواندن دقیق کد دیگران و تلاش برای پیاده‌سازی پیشنهادات آن‌ها توسط خودم بوده است.این ایده که همیشه چیز بیشتری برای یادگیری وجود دارد در حیطه کاری من مصداق بیشتری دارد. من خوش‌شانس هستم که مافوق‌های بسیار باتجربه‌ای دارم که واقعاً به پیشرفت من کمک کرده‌اند، و این طرز فکر یادگیری از دیگران به من این امکان را داده است که تا آنجا که ممکن است دانش آنها را جذب کنم.3. یک حالت استئنا می‌تواند حال شما را خراب کندقبل از شروع فعالیت شغلی، اگر در کد خود اشتباه می‌کردم، معضلی به وجود نمی‌آمد. یک اشکال خاص احتمالا هیچ وقت ظاهر نمی‌شد و نادیده گرفته می‌شد.اکنون که من در توسعه کد یک محصول مشارکت می‌کنم کاملاً متفاوت است، زیرا هزاران نفر با کار من در ارتباط هستند. هر گونه اشکال، حتی در یک مورد کوچک، ممکن است ظاهر شود و باعث ایجاد دشواری یا حتی آسیب به مشتریان ما شود.خوشبختانه لیت‌کد یک محیط آموزشی فوق العاده است، چرا که هر سوال دارای صدها آزمایش است که اغلب شامل همه موارد خاصی است که اگر در نظر گرفته نشود کد را خراب می کند.من اخیرا متوجه شدم که این موضوع چقدر مهم است وقتی که مجبور شدم با پایگاه‌داده‌ای کار کنم که محدودیت‌های مناسب را نداشت و در بسیاری از سطرها دارای مقادیر غیرمنتظره بود. خوشبختانه توانستم این مشکلات را در کد خود قبل از ایجاد اختلال در تولید برطرف کنم.4. سخت‌کوشی استعداد را شکست می‌دهد وقتی که استعداد، سخت کار نمی‌کندمن این نقل‌قول بالا از Tim Notke را دوست دارم و با تجربه‌ی شخصی من در لیت‌کد کاملا سازگار است. من بسیاری از توسعه‌دهندگانِ فوق‌العاده و بااستعداد را می‌شناسم که از حل اکثر سوالات متوسط هم بازمی‌مانند چرا که با الگوها و ابزارهای مناسب آشنا نیستند و ساختار مناسب برای اینگونه سوالات را تدارک ندیده‌اند.خود من در ابتدای کار، حتی از آنان هم بدتر بودم. تقریبا هر سوال ساده‌ای مرا به چالش می‌کشید اما پس از گذراندن چند دوره‌ی آشنایی با ساختارداده و الگوریتم و دست و پنجه نرم کردن با بسیاری از سوالات آسان، به اندازه‌ای پیشرفت کردم که بتوانم بیشتر مسائل متوسط را در مدت زمان معقولی حل کنم و حتی با صرف نیمی از زمانی که پیش از آن صرف می‌کردم، به سوالات سخت هم جواب بدهم.از وقتی اخیرا زبان برنامه‌نویسی خود را برای حل سوالات از پایتون به جاوا تغییر دادم، دلیل دیگری بر تایید اهمیت تمرین کردن به دست آوردم؛ در حالی که من به واسطه‌ی شغلم روزانه با زبان جاوا برنامه می‌نویسم، برای حل این سوالات به من شهود کاملی نمی‌دهد و مانند وقتی که مبتدی بودم، نمی‌توانم اکثر سوالات را بدون جستجوی جزئیات پیاده‌سازیِ آن‌ها در گوگل حل کنم. اما این مرا دلسرد نمی‌کند و می‌دانم با صرف وقت و تمرین کافی در جاوا نیز به اندازه‌ی پایتون به مهارت می‌رسم.5. برنامه‌ریزی، بخش ضروریِ توسعه‌ی نرم‌افزار استبا حل تعداد زیادی سوال، به سرعت فهمیدم که برنامه‌نویسی تنها یک بخش از فرایند توسعه‌ی نرم‌افزار است و شروع کردن به نوشتن کد بدون برنامه‌ریزی و بلافاصله پس از خواندن سوال، احتمالا بدترین اشتباهی است که می‌توان مرتکب آن شد.توسعه‌ی نرم‌افزار سرشار از ابهامات و نتایج غیرمنتظره است. اغلب، این موضوع در طول مصاحبه‌ها با ارائه‌ی سوالات مبهم یا ناقص تکرار می‌شود. این به شما بستگی دارد که چگونه با مصاحبه‌کننده‌ی خود ارتباط برقرار کنید و از او برای واضح‌تر شدن مسئله و  محدودیت‌های احتمالی موجود در حل آن، کمک بگیرید.نه فقط این، بلکه قبل از نوشتن کد نهایی، باید مزایا و معایب راه‌حل پیشنهادی را بررسی کنید و فقط وقتی برنامه‌نویسی را شروع کنید که ایده‌ی شما مورد قبول سایر اعضا قرار گرفته باشد. اگر بدون توجه به محدودیت‌های زمانی و حافظه‌ای شروع به برنامه‌نویسی کنید، زمانی که آن را تشخیص دهید بسیار دیر خواهد بود و دیگر وقتی برای پیاده‌سازی بهتر نخواهید داشت.این موضوع در یک شغل واقعی اهمیت بالایی دارد. اگر کدنویسی را بدون تجزیه و تحلیل الزامات و دقت در مورد امکانات خود شروع کنید، احتمالا نیاز پیدا خواهید کرد که بیشتر کارهای خود را مجددا بازنویسی کنید.نتیجه‌گیریمن به شخصه خود را بابت علاقه‌مندی به لیت‌کد خوش‌شانس می‌دانم و حتی از اینکه زمانی که به دنبال شغل نیستم هم با آن تمرین می‌کنم، لذت می‌برم. اما بسیاری از افراد را می‌شناسم که آن را دوست ندارند و معتقدند این کار هیچ چیز کاربردی‌‌ای برای یک شغل واقعی به آنان نمی‌آموزد. امیدوارم با این مقاله حداقل برخی از شما را متقاعد کرده باشم که اینطور نیست و در صورتی که برای آمادگی در مصاحبه‌ی شغلی، مجبور به استفاده از آن شدید، سعی کنید چیزی ارزشمند از آن بیاموزید و اگر اصلا آن را دوست ندارید یادتان باشد مشاغل زیادی وجود دارند که برای استخدام شدن در آن‌ها، از شما سوال لیت‌کد نمی‌پرسند.به هر حال اگر مشغول استفاده از لیت‌کد هستید و می‌خواهید پیشرفت کنید، به شدت به شما توصیه می‌کنم که «Back to Back SWE» را در یوتیوب دنبال کنید. ویدیوهایش در درک موضوعات پیچیده واقعا به من کمک کردند. متن فوق ترجمه این مقاله استما را در تلگرام دنبال کنید</description>
                <category>کنج صمیمی کامپیوتریا | Debug Valley</category>
                <author>کنج صمیمی کامپیوتریا | Debug Valley</author>
                <pubDate>Sat, 25 Sep 2021 18:47:02 +0330</pubDate>
            </item>
                    <item>
                <title>سخت‏‏‌ترین عوامل در یادگیری خودآموز برنامه‏‌نویسی و نحوه مقابله با آن‏‌ها</title>
                <link>https://virgool.io/cheyab-blog/%D8%B3%D8%AE%D8%AA-%D8%AA%D8%B1%DB%8C%D9%86-%D8%B9%D9%88%D8%A7%D9%85%D9%84-%D8%AF%D8%B1-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D8%AE%D9%88%D8%AF%D8%A2%D9%85%D9%88%D8%B2-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%88-%D9%86%D8%AD%D9%88%D9%87-%D9%85%D9%82%D8%A7%D8%A8%D9%84%D9%87-%D8%A8%D8%A7-%D8%A2%D9%86-%D9%87%D8%A7-ozmxorsbj6mb</link>
                <description>در سال‌های اخیر بسیاری از افراد به یادگیری برنامه‌‏نویسی علاقه‌مند شده‌‏اند.آن‌ها یا از طریق دوره‌های آنلاین، یا از طریق دورهمی‌های آفلاین راه خود را در دنیای برنامه‌نویسی پیدا می‏‌کنند، یا صرفا می‏‌خواهند شانس خود را در این زمینه امتحان کنند.وب‏سایت‌هایی مانند code.org، codecademy و freecodecamp در حال معروف‌تر شدن هستند. تعداد بسیاری دوره آموزشی در سطح وب و مخصوصا یوتیوب وجود دارند.اما برنامه‌نویسی آسان نیست. در اینجا برخی از چالش‌هایی که همه ما هنگام یادگیری برنامه‌نویسی با آن روبرو می‏‌شویم، آمده است.1. پیدا کردن مقدار زمان مناسب برای برنامه‌نویسی روزانهاگر به صورت خودآموز برنامه‌‏نویسی را یاد می‌گیرید، به احتمال زیاد مسئولیت‌های دیگری هم در زندگی دارید.ممکن است یک شغل نیمه‌وقت یا یک کار تمام‌وقت داشته باشید یا والدین خانه‌نشین باشید. مسئله این است که همه در زندگی پرمشغله هستند. بنابراین چگونه می‌توانید برای برنامه‌نویسی روزانه زمان پیدا کنید؟برخی افراد ممکن است بگویند: خب، اگر به اندازه کافی متعهد باشید، همیشه می‏‌توانید زمان پیدا کنید. درست است. من موافقم.پس این سوال مطرح می‌شود: روزانه چقدر زمان باید به برنامه‌‏نویسی اختصاص دهیم؟ اگر روزانه بتوانم فقط نیم ساعت به این کار اختصاص دهم، آیا کافی است؟این سوالی است که فقط خود شما می‏‌توانید به آن پاسخ دهید. تخمین اینکه چند ساعت باید در روز برنامه‌‏نویسی کنید بسیار دشوار است. برخی افراد پیشنهاد می‏‌کنند که آن را کوتاه و لذت‌بخش نگه دارید. 15 دقیقه به اندازه کافی خوب است.از طرفی دیگر، من افرادی را دیده‌‏ام که با روزی 9 یا 10 ساعت برنامه‌‏نویسی به مدت یک سال یا بیشتر، وارد حوزه توسعه شده‌اند.نتیجه نهایی این است: فقط خود شما می‌دانید که روزانه چقدر می‌توانید برنامه‌‏نویسی کنید و بدون این که دچار خستگی و ملال شوید، آن را به یک عادت تبدیل کنید. بخش آخر بسیار مهم است. بنیان‏گذار freecodecamp یک بار در توییتر گفت:مهم نیست که هر روز چقدر پیشرفت می‌کنید. مهم این است که هر روز پیشرفت کنید.در اینجا ویدئویی از یک توسعه‌دهنده ارشد وجود دارد که ده‌‏ها سال است در زمینه فناوری فعالیت می‌کند و در مورد مدت زمانی که برنامه‌‏نویسان به طور روزانه در حین کار برنامه‏‌نویسی می‌‏کنند صحبت می‌کند.این استاندارد طلایی نخواهد بود اما به شما ایده می‌دهد که چگونه برای یادگیری روزانه برنامه‌‏نویسی، برای خود برنامه‌ای واقع‏‌بینانه و مهم‌‏تر از آن پایدار تعیین کنید.2. پیدا کردن تعادل بین &quot;پیشرفت نکردن به اندازه کافی و خوب&quot; و &quot;خسته و ملول شدن&quot;من به شخصه، خیلی با این مسئله کلنجار رفتم.روزهایی وجود دارد که من نمی‌توانم یک مفهوم/قطعه کد را از کتابی که می‏‌خوانم درک کنم. انگار در مغزم فرو نمی‌‏رود. آنقدر خسته می‌شوم که مجبورم خودم را آرام کنم، به بالکن بروم و نفس عمیق بکشم.از آن زمان به بعد، همواره به خودم یادآوری می‏‌کنم که بیش از حد در آن کار عمیق نشوم تا جایی که دیگر هیچ بازگشتی وجود نداشته باشد.برنامه‏‌نویسی آسان نیست. نیاز به تمرکز دارد، مخصوصا هنگامی که در حال یادگیری مطالب جدید هستید.از لحاظ ذهنی خسته‌‏کننده است و مواقعی وجود دارد که نمی‌توانید بفهمید که چرا کد شما کار نمی‌کند، یا حتی چرا کار می‏‌کند!من فهمیدم که هر زمان که واقعاً روی مشکلی که روی آن کار می‌کردم متمرکز بودم اما در عین حال واقعاً آرام بودم و از کلیت فرآیند لذت می‌بردم، بیشترین بهره‌وری را داشتم.این زمانی بود که من:مشکلی را پیدا می‌کردم که باید آن را رفع می‌کردم.راه‏‌حل را از طریق گروه‌های آنلاین پیدا می‏‌کردم.چندین راه مختلف را برای حل آن امتحان می‌کردم تا صرفا ببینم کدام یک جواب می‏‌دهد.مسئله را به طور کلی حل می‏‌کردم.برای کنار آمدن با این واقعیت که بسیاری از مطالبی که می‏‌آموزیم بسیار خشک و پیچیده است (ساختار داده‌ها و الگوریتم‌‏ها و موارد دیگر)، من این قانون 50/50 را برای زمانی که در حال یادگیری برنامه‌نویسی هستم ایجاد کرده‌‏ام.من از 50٪ زمان برای انجام کارهای دشوار، مطالعه اصول، مفاهیم، الگوریتم‌ها و موارد دیگر استفاده می‏‌کنم. 50 درصد دیگر، پروژه‏‌های خودم را انجام می‏‌دهم، پروژه‌هایی که واقعاً به آنها علاقه دارم. به طوری که در مطالعه روزانه من تعادل ایجاد می‏‌شود.بنابراین، به طور صریح باید گفت: شما باید کاری را که انجام می‏‌دهید دوست داشته باشید. که ما را به نکته بعدی می‏‌رساند.3. دوست داشتن آنچه انجام می‌‏دهید تنها راه گذر از همه این موانع استهر چقدر هم کلیشه به نظر برسد، گاهی اوقات این یک حقیقت است. اگر راهی را که در پیش می‌گیرید دوست دارید، عاشق شغلی هستید که انجام می‌دهید، عاشق مسیری هستید که در حال حرکت هستید، شما نیازی به تایید دیگران ندارید.این نوع تحقق بخشیدن به اهداف را نمی‌توان به امانت گرفت یا جایگزین کرد یا حتی بدتر از آن جعل کرد.ویدیو حرف‌های استیو جابز در این مورد را می‌توانید اینجا ببینید4. همواره پس از انجام دادن سایر مسئولیت‌های زندگی، به برنامه‌نویسی بازگردیدحقیقت این است که وقتی درمورد خودآموزی صحبت می‌کنیم، هیچ‌وقت شما فقط در حال یادگیری نیستید. در زندگی همه‌ی ما، مسئولیت‌های متنوعی وجود دارد که باید به آن‌ها متعهد باشیم.ممکن است شما عهده‌دار نقش همسر، پدر یا مادر باشید. شاید لازم باشد از خانواده‌ی خود مراقبت کنید، اگر شاغل هستید باید به امور کاری خود رسیدگی کنید، یا اگر دانشجو هستید باید درس بخوانید تا مدرک فارغ‌التحصیلی بگیرید.با وجود تمام این وظایفی که بر دوش ماست، چه زمانی را برای پرداختن به برنامه‌نویسی پیدا کنیم؟حقیقتا گاهی اوقات این کار امکان‌پذیر نیست. روزهایی بوده است که در آن‌ها از برنامه نویسی صرف‌نظر کرده‌ام. طولانی‌ترین زمان دوری من از کدزنی دو ماه بوده است؛ اما بلافاصله بعد از آن، دوباره برنامه‌نویسی را از سر گرفته‌ام و متوجه شدم بسیاری از چیزهایی که یاد گرفته بودم را فراموش کرده‌ام!ممکن است ناامیدکننده باشد که وقتی همان کتاب را دوباره به دست می‌گیرید، هیچ ایده‌ای ندارید چطور آن را ادامه دهید:«خدایا! واقعا باید دوباره همه‌ی فصل‌ها را بخوانم و درموردشان جستجو کنم؟»این همان لحظه‌ایست که باید در آن پشتکار به خرج دهید، سرعت کار را کاهش دهید و باحوصله انجامش دهید.باید به خود بگویید:«خب، ممکن است اولین ساعاتِ مطالعه کند پیش برود یا به اندازه‌ی کافی مفید نباشد، اما فردا با یادگیری بیشتر جبران می‌کنم.»راه دیگری برای آسان کردن این مقطع وجود ندارد، اما برای پیشرفت، به تلاش کردن ادامه دهید و همچنان ادامه دهید!به جمع برنامه‌نویسان یا به توییتر بروید و ناامیدی خود را آنجا ابراز کنید اما به محض انجام این کار، دوباره به برنامه نویسی بازگردید.5. انگیزه‌ی خود را به هر روشی که می‌توانید حفظ کنیدخودآموزی با حضور در مدرسه بسیار متفاوت است. وقتی خودآموز شروع به برنامه‌نویسی می‌کنید، کسی اطراف شما نیست. هم‌کلاسی‌ای وجود ندارد، خبری از تعامل اجتماعی با انسان‌ها نیست و هیچ جشن بزرگی در انتهای تونل انتظار شما را نمی‌کشد.در انجام این کار، اغلب تنهایید و باید تک نفره از پس آن بربیایید. پس باید انگیزه‌هایی داشته باشید که همواره شما را به جلو حرکت دهند.همچنین به خودتان جایزه دهید و این کار را به عادت تبدیل کنید!جایزه‌ی شما ممکن است کوچک یا بزرگ باشد. می‌تواند یک دوش آب گرم در انتهای روز یا یک نوشیدنی خنک باشد. لازم است هنگام برنامه‌نویسی به خودتان یادآوری کنید که در حال انجام کار بزرگی هستید.تصویر زیر را از دیوار مقابل خود آویزان کنید، زیرا باید باور کنید می‌توانید به فردی تبدیل شوید که اکنون در مقابل او نشسته‌اید.رویای هر برنامه‌نویس!6. در دام اشتباه «یادگیری برای یادگیری» نیفتید. مصاحبه کنید، با افراد ملاقات کنید و به دنبال کار بگردید.ممکن است گاهی اوقات هنگام برنامه‌نویسی، تمرکزتان به وسیله‌ی امور جانبی کاهش یابد. حس می‌کنید لحظاتی وجود دارد که می‌خواهید فقط تنبل باشید؛ نه اینکه دیگر نخواهید به یادگیری ادامه دهید، بلکه با وجود نشستن جلوی مانیتور امیدوارید با چالش اصلی روبه‌رو نشوید: استخدام شدن به عنوان یک توسعه‌دهنده.دچار این مغلطه که «همین که در حال یادگیری هستم به اندازه‌ی کافی خوب است و بعدا، زمانی که آمادگی کافی پیدا کردم، به شغل فکر می‌کنم» نشوید. صادقانه بگویم این، چیزیست که باید بیشتر به آن بپردازم: تماس با مشتری و قبول پروژه‌ی واقعی. حتی اگر آن، توسعه‌ی یک وبسایت به صورت رایگان برای دوستان یا خانواده‌ام باشد.‌همچنین دفعه‌ی بعدی که به مصاحبه می‌روید، می‌توانید نشان دهید قبلا چه نوع کارهایی را انجام داده‌اید. این به رزومه‌ی شما اعتبار می‌بخشد. برداشتن اولین قدم برای هر کار، سخت‌ترین بخش آن است؛ اما هر چه باشد، شما باید آن قدم را بردارید.همه‌ی چیزهایی که در بالا گفتیم، موقعیت‌ها و چالش‌هاییست که در مسیر تبدیل شدن به یک توسعه‌دهنده با آن‌ها مواجه خواهید شد. با شناخت کافی و نگرش درست با آن‌ها روبه‌رو شوید. توجه داشته باشید موانعی که در مسیر خود به آن‌ها برمی‌خورید، شما را به توسعه‌دهنده‌ی قوی‌تری تبدیل می‌کنند.آخرین نکته که اهمیت زیادی دارد این است که با خوشحالی برنامه بنویسید. از چیزی که در حال ساخت آن هستید لذت ببرید. خواه پروژه‌تان باشد، خواه آینده‌تان.متنی که خواندید ترجمه این مقاله استما را در تلگرام دنبال کنید</description>
                <category>کنج صمیمی کامپیوتریا | Debug Valley</category>
                <author>کنج صمیمی کامپیوتریا | Debug Valley</author>
                <pubDate>Sat, 18 Sep 2021 23:02:27 +0430</pubDate>
            </item>
            </channel>
</rss>