راز موفقیت برنامه نویسان موثر

سلام دوستان :) حالتون خوبه؟ کدتون کار میکنه؟ انشاالله که همینطوره. برم سر اصل مطلب، من یه روز صبح گوشیمو برداشتم اینترنتمو روشن کردم و رفتم تو لیست مقالات پیشنهادی گوگل که یه مقاله با این عنوان به چشمم خورد.با کنجکاوی روی لینکش کلیک کردم و مقاله رو خوندم. خیلی از این مقاله خوشم اومد و مشکلاتی که داشتم رو بهم نشون داد؛ از اونجایی که این مقاله به زبان انگلیسی بود تصمیم گرفتم به فارسی ترجمش کنم و در اختیار دوستان عزیزم قرار بدم ؛) تا شماهم مثل من بتونین بیشترین استفاده رو از این مقاله ببرین.رازهای موفقیت برنامه نویسان موثربرنامه نویس بودن به چیز های زیادی غیر از نشستن پشت کامپیوتر و گشتن دنبال راه حل تو استک‌اور‌فلو بستگی دارد .برای برنامه نویس بودن، به مهارت هایی نیاز دارید که این امکان را به شما می‌دهد تا ساده تر به این راه حل ها برسید و از دانش خاص زبان برنامه نویسی برای به وجود آوردنشان استفاده کنید. ما حل کننده مشکلاتیم ولی واقعا برنامه نویس بودن به همین بستگی دارد؟ نه لزوماً.مراقب سیستم خود باش.هر چیزی که روزانه می‌بینید جزئی از یک سیستم است. از برگ درختی گرفته تا مورچه ای که آن را می‌خورد. همه ی این سیستم های منحصر به فرد مستقیم یا غیر مستقیم در کنار و در تعامل با یکدیگر زندگی می‌کنند. بدن شما سیستمی است که با هدف زنده نگه داشتنتان کار می‌کند ولی اگر سیستم شما خراب شود، همه چیز همراهش خراب می‌شوند.به عنوان یک برنامه نویس، اکثر اوقات کاریمان را صرف نشستن پشت یک میز با حداقل یک مانیتور رو به رویمان میکنیم. علاوه بر این همچنین زمانی که مشغول کار هستیم آنقدر روی اهداف و کارمان تمرکز می‌کنیم که فراموش می‌کنیم به بدن و ذهنمان استراحت دهیم.Code! it's fun!چرا به این موضوع اشاره کردم؟ چون میانگین زمانی که رو به روی مانیتور می‌نشینیم 7 ساعت در روز است و تازه این مشکل اصلی نیست. مشکل چیزیست که این شامل می‌شود: 7 ساعت نشستن در یک مکان! 7 ساعت تمرکز! 7 ساعت تقریبا 30 درصد کل روز است!برای حل این مشکل می‌توانید به پیشنهادات زیر عمل کنید :1. برای هر ساعت کار کردن5 دقیقه استراحت کنید و اگر نتوانستید آن 5 دقیقه را استراحت کنید، ساعت بعد 10 دقیقه و هیچ وقت بیشتر از 10 دقیقه بدون استراحت نمانید و زمان را به ساعت بعد نیندازید. اگر آنقدر زمان را به تعویق بیندازید، که در آخر روز 35 دقیقه زمان استراحت داشته باشید مزایای استراحت کردن در 7ساعت کار را مشاهده نمی‌کنید .Yeah! let's take a break.2.وقتی 5-10 دقیقه استراحت می‌کنید :اگر برایتان ممکن است حتما بیرون بروید و کمی آفتاب بگیرید. اگر نمی‌توانستید، در محل بمانید و یک جای آرام پیدا کنید و نفس بکشید. ساده به نظر میرسد اما خیلی مهم است.یک تمرین تنفس عمیق 1 دقیقه ای انجام دهید. آنقدر هم سخت نیست، ذهنتان را خالی کنید و کاری غیر از کار فعلی تان انجام دهید. ویدئویی ببینید، آهنگی گوش کنید، بازی ویدئویی کوتاهی انجام دهید و هیچ وقت موقع استراحت به کار فکر نکنید.کمی ورزش کنید یا حرکات کششی انجام دهید. می‌توانید برنامه های تمرینی زیادی را در اینترنت پیدا کنید تا رویه روزانه ‏تان را بچینید.حتماً آب یا هر نوشیدنی دیگری (سالم) بنوشید تا سلامت بمانید. موضوع این است که باید مواظب سلامتی خودتان باشید. اگر بدن و ذهن سالمی داشته باشید قادر خواهید بود بدون احساس خستگی ناشی از خستگی روزانه، کارتان را پیش ببرید و برنامه نویس موثری باشید.بیشتر پذیرا و کمتر تدافعی باشید.به عنوان یک برنامه نویس، ما روی کدمان و نحوه توسعه دادنش حساس هستیم. بنابراین وقتی برخی همکاران به ما می‌گویند کد ما اشتباه است یا اینکه می‌تواند طور دیگری نوشته شود، برای ما سخت (ناراحت کننده) است. در نتیجه ما به جای داشتن یک نگرش پذیرا، نگرش تدافعی ای را اتخاذ می‌کنیم.من در شغل قبلی در بخش، یک جور رهبر فنی (Technical leader) بودم و هر چی که میدونستم در تئوری خوب بود و کسی نبود که خلاف این رو به من بگه. من همیشه به کدم افتخار می‌کردم چون می‌دونستم عالی یا تقریبا عالیه.وقتی به Full stack labs ملحق شدم همه چیز تغییر کرد . اولین چیزی که بهم دادن برگه ای بود که روی آن نوشته شده بود اعضای تیم قبل از Merge (تاثیر دادن کد جدید در برنامه یا به نوعی آپدیت) کردن کدت، باز بینیش می‌کنند.اولش شوکه شده بودم ولی خودم را کد نویس خوبی می‌دانستم پس زیاد جدی نگرفتمش. عجب اشتباهی! وقتی کدم را برای بازبینی ارائه دادم، چندین بار برای مشکلات ساده ای که داشت پس فرستاده شد : یک ویرگول اینجا، یک فانکشن پیکانی آنجا و... اولش بدون سوال کردن تغییرات را داخل کد ایجاد می‌کردم و احساس می‌کردم بهم حمله شده! تا وقتی که یک روز تصمیم گرفتم بپرسم فرق کد من با کدی که ازم خواستن تغییر بدهم چیست. جواب یک گفت و گوی کوچکی درباره‌ی بهینه سازی و استاندارد سازی بود که مشکل کارم را بهم نشان داد. احساس شرم می‌کردم ولی در عین حال خیلی خوشحال بودم چون چیز جدیدی یاد گرفته بودم. داشتم توی یک لیگ جدید بازی می‌کردم.بدانید چه زمانی باید کمک بخواهید.وقتی داریم روی یک مشکل خاصی کار می‎‌کنیم که به ما اجازه پیشروی نمی‌دهد معمولا خیلی زیاد بهش فکر می‌کنیم، وقتی داریم دنبال راه حل می‌گردیم بدون اینکه متوجه شویم این ما را از که "برنامه نویس موثر" بودن دور می‌کند. به جای تمرکز و صرف زمان زیادی روی یک مشکل کوچک (بیشتر از 1 ساعت)، بهتر است از همکاران کمک بخواهید. این به طور موثری دانش شما را افزایش خواهد داد و افزون بر اینکه مهارت ارتباطی‌تان را هم توسعه می دهد. همکاران ما همیشه قابل دسترس نیستند و شاید ما تنها کسی باشیم که روی یک تکنولوژی مشخصی کار می‌کنیم. در مواردی مشابه به این بهتر است حواستان را از مشکل فعلی پرت کنید و به دنبال یک فیچر (قابلیت یا خصوصیت برنامه) دیگر بروید که اولویت یکسانی دارد و بعدا کار را ادامه ‌دهید.مغز ما در پس زمینه به کار کردن ادامه می‌دهد (به راه حل مشکل فکر می‌کند) و می‌توانیم با یک نگرش متفاوت به مشکلمان برگردیم.خودنمائی نکنید.سر تا سر حرفه ام (سابقه کاری ام)، به کد های متفاوت زیادی بر خوردم؛ برخی از آنها به دلیل پیچیدگی، بسیار چشمگیر و درک آنها بسیار دشوار بود، برخی ساده و قابل فهم. اما همچنین بسیاری از آنهایی که نوشتن‌شان ساده بود و به دلایلی پیچیده شده‌اند، دلیل خاصی غیر از ارضای نفس برنامه نویس نداشته اند.من فکر می‌کنم این از عواملی است که برنامه نویس را از "موثر" و مفید بودن دور می‌کند و علاوه بر این به اطرافیانش صدمه می‌زند. بنا به دلایلی، هر باری که با این نوع کد های بیش از حد پیچیده رو به رو می‌شوم، مربوط به فردیست که احساس می‌کند چیزی برای اثبات وضعیت و ارشدیت خود دارد، در حالی که تمام کاری که می‌کند نوشتن کدی ساده است که بنا به دلایلی به کد اسپاگتی (به کد به هم ریخته میگن) تبدیل شده که فقط خودش می‌فهمد و می‌تواند توضیحش دهد.توصیهتوصیه ام این است که: کد رو ساده و سازگار نگهدار. اگر شخصیتی که بالا توضیح داده شد شرکت را ترک کند و یک توسعه دهنده جدید وارد شود تا کد را توسعه / نگهداری کند، بسیار دشوارتر از زمانی است که از ابتدا ساده نگه داشته شده بود.همان طور که معلم الگوریتم و ریاضیات گسسته من یکبار گفت:ظرافت در سادگی است، زیرا همه می‎‌توانند بفهمند که چه چیزی را می‌خواهید منتقل کنید (ارتباط برقرار کنید).لینک مقاله انگلیسیامیدوارم از این مقاله حداکثر استفاده رو برده باشید دوستان، خودم به شخصه خیلی روی طرز نوشتن کدم حساس بودم که متوجه شدم خصوصیت خوبی نیست و باید اصلاحش کنم ?راستی دوستان من داخل یوتوب یه کانال ایجاد کردم به اسم امزا کد و آموزش های زبان سی شارپ از جمله ترفندهاش رو قرار میدم. اگه دوست داشتین به اونم یه سر بزنین ? EmZa Codeمرسی که وقت گذاشتین و این مقاله رو خوندین، سعی میکنم مقالات بیشتری بنویسم یا ترجمه کنم تا تونسته باشم به همکاری عزیزم کمکی هرچند کوچک کرده باشم?به امید دیدار ?