من کمی بیش از 7 سال است که یک توسعه دهنده هستم و چیزهای زیادی یاد گرفته ام، هم از تجربه خودم و هم از افراد بسیار با استعداد. در این مقاله، من میخواهم برخی از چیزهایی را که واقعاً برجسته هستند به اشتراک بگذارم که تجربه من را به میزان قابل توجهی بهتر و لذتبخشتر کرده است. برخی فنی خواهند بود، برخی فقط نکات کلی زندگی. اما همه آنها زندگی و تجربه من را در توسعه نرم افزار و طراحی وب بهبود بخشیده اند، و امیدوارم با به اشتراک گذاشتن این درس ها و نکات، بتوانم به شما کمک کنم تا از برخی از زمان های کمتر لذت بخش که مجبور به گذراندن آنها برای درک آنها بودم، جلوگیری کنید.
1. مکانی را پیدا کنید که از کار کردن در آن یا در آن لذت می برید
محیط شما کمک زیادی به زندگی شما می کند. این می تواند استرس را اضافه یا کاهش دهد، به شما کمک کند تمرکز کنید یا حواس تان را پرت کنید، باعث شود احساس امنیت کنید یا نه، و خیلی چیزهای دیگر. از آنجا که نقش مهمی در زندگی تک تک ما ایفا می کند، فکر کردم مناسب است از اینجا شروع کنم.
چه در دفتر کار کنید و چه از راه دور، به احتمال زیاد کارهایی وجود دارد که می توانید برای پیدا کردن مکانی انجام دهید که به شما احساس «درست» بدهد. من می گویم "درست" زیرا همه در اینجا متفاوت خواهند بود. برخی از مردم می خواهند احساس راحتی و "در خانه" داشته باشند. دیگران منطقهای را میخواهند که چندان راحت نباشد، اما در عوض واقعاً به آنها اجازه میدهد "در منطقه قرار بگیرند" و تمرکز کنند.
من در طول سالها مکانهای مختلف زیادی را امتحان کردهام تا ببینم چه چیزی برای من مفید است. من در هوای خنک صبحگاهی با یک فنجان قهوه داغ بیرون نشسته ام. من به معنای واقعی کلمه زیر یک میز نشسته ام و پتویی روی سرم کشیده اند. من در گوشهها، کافیشاپها، رستورانها، ماشینها، پارکها، میزهای غذاخوری نشستهام. از طریق تمام این آزمایشها، من توانستهام مکانهایی را پیدا کنم که در مواقعی که به آن نیاز دارم، آنچه را که نیاز دارم به من میدهد. اگر نیاز به تمرکز دارم، باید تنها باشم. جایی با دری که می تواند بسته شود، بدون پنجره که بتوانم متوجه مردمی که از کنارشان می گذرند باشم. وقتی بیش از حد راحت هستم، مثل اینکه در یک پتو روی یک کاناپه نرم فرو رفتهام، خیلی خوب کار نمیکنم. اگر نیاز به تغییر سرعت داشته باشم، یا فقط باید در کنار مردم باشم، متوجه شدم که از نشستن در یک کافی شاب کوچک یا رستورانی که خیلی شلوغ نیست، واقعا لذت می برم. یک جایی می توانم یک نوشیدنی و یک پیش غذا سفارش بدهم و کار کنم، اما در کنار چند نفر باشم.
بنابراین من شما را تشویق می کنم که چند مکان را امتحان کنید. آنچه را که برای شما مفید است و به همان اندازه مهم است که برای شما مفید نیست را پیدا کنید. و اگر نمی توانید مکانی را پیدا کنید، همیشه می توانید کمی تلاش کنید تا مکان مورد نظر خود را بسازید!
2. روی سخت افزار خود سرمایه گذاری کنید
بهعنوان توسعهدهندگان نرمافزار، چند قطعه سختافزاری وجود دارد که ما از آنها به مقدار مسخره استفاده میکنیم. می توان این بحث را مطرح کرد که ما بیش از هر وسیله دیگری در زندگی خود از چیزهایی مانند کیبورد و صندلی میز خود استفاده می کنیم. و البته ما میتوانیم کار را با هر کیبورد قدیمی انجام دهیم، و میتوانیم روی هر صندلی بنشینیم. اما دریافتهام که سرمایهگذاری کمی روی سختافزار «زیباتر» تأثیر زیادی بر نحوه تجربه کارم دارد.
صندلی
اگر در حین کار می نشینید و فقط روی یک چیز سرمایه گذاری می کنید، قطعاً باید صندلی شما باشد. صندلیای که هم راحتی و هم پشتیبانی را ارائه میکند، واقعاً میتواند راه درازی داشته باشد. از مدت زمانی که می توانید بدون ناراحتی بنشینید و تمرکز کنید تا احساس پشت، گردن و شانه های شما در زندگی روزمره، صندلی شما تاثیر زیادی بر سلامت و رفاه عمومی شما دارد. بنابراین مطمئن شوید که یک مورد خوب پیدا کنید و فقط به چیزی که وضعیت بدنی بد را تشویق می کند بسنده نکنید.
کیبورد
دومین صندلی بعد از صندلی شما (اما نه زیاد) کیبورد شماست. به راحتی ابزاری است که ما بیشترین تعامل را با آن داریم تا کارهایمان را هر روز انجام دهیم. هزاران گزینه نیز وجود دارد، بنابراین صرف نظر از ترجیح شخصی شما، به احتمال زیاد چیزی وجود دارد که خواسته ها و نیازهای شما را برآورده کند.
انتخاب کیبورد مناسب برای هر فرد بسیار متفاوت است. برخی از افراد کلیدهای کم مشخصات را به کلیدهای مکانیکی ترجیح می دهند. برخی از افراد به پورت(های) USB یکپارچه نیاز دارند. هزینه، ارگونومی، سیمی یا بدون سیم، کلیدها و سوئیچ های قابل تنظیم، نور پس زمینه، LED های قابل تنظیم، پشتیبانی از پیکربندی طرح کلید، ارتفاع و اندازه، تعداد کلیدها، لیست ادامه دارد و ادامه دارد. پیدا کردن کیبورد مناسب برای شما مطمئناً می تواند یک سفر باشد، اما من به شدت توصیه می کنم ادامه دهید. البته ما میتوانیم کارمان را با هر کیبورد انجام دهیم... اما من قول میدهم، اگر آن را امتحان کنید، پیدا کردن کیبورد "درست" روز و تجربه شما را به عنوان یک توسعهدهنده بسیار لذتبخشتر خواهد کرد.
ماوس
ما نمی توانیم در مورد کیبوردها صحبت کنیم بدون اینکه در مورد دستیار آنها یعنی ماوس صحبت نکنیم. مانند کیبورد، انواع مختلفی وجود دارد و هر کسی ترجیحات خود را دارد. خوشبختانه حتی یک ماوس نیمه مناسب قیمت بسیار پایینی دارد، بنابراین امتحان کردن چند ماوس برای یافتن آنچه برای شما مناسب است نسبتاً آسان است. اما مانند همه موارد دیگر در اینجا، سرمایه گذاری کمی در زمان و پول می تواند تأثیر مثبتی بر تجربه شما داشته باشد.
مانیتور
این یکی قطعاً یک مورد اختیاری است، اما موردی که من پیدا کردهام کار من را بسیار لذتبخشتر میکند. همه به مانیتور خارجی نیاز ندارند. برخی از افراد در واقع ترجیح می دهند مستقیماً از لپ تاپ خود کار کنند. اما اگر دوست دارید از مانیتور(های) خارجی استفاده کنید، این سرمایه گذاری است که می تواند تأثیر بزرگی داشته باشد.
هدفون
هدفونها نیز اختیاری هستند (برخی ممکن است مخالف این موضوع باشند) اما نمیتوان از مزایای آنها اغراق کرد. از کاهش حواسپرتی گرفته تا کمک به شما برای قرار گرفتن در منطقه، یک جفت هدفون خوب میتواند راه درازی داشته باشد. مانند بسیاری از مواردی که فهرست کرده ام، ترجیحات هرکس متفاوت خواهد بود. اما سرمایه گذاری کمی زمان و پول برای یافتن یک جفت خوب برای شما واقعاً بازی شما را به سطح بعدی می برد. بسیاری از افرادی که من می شناسم به دنبال حذف نویز خوب هستند و باید سبک و راحت باشند تا بتوان آن ها را ساعت ها در یک زمان پوشید.
از چه سخت افزاری استفاده می کنید؟ سخت افزار رویایی شما چه خواهد بود؟
3. ابزارهایی را پیدا کنید که از کار کردن با آنها لذت می برید
علاوه بر سخت افزار، ما به عنوان توسعه دهنده، از ابزارهای نرم افزاری زیادی برای انجام کارهای خود استفاده می کنیم. برخی از آنها برای استفاده از آنها چاره ای نداریم، اما بسیاری از آنها وجود دارند که انجام می دهیم، و یافتن ابزارهایی که واقعاً از استفاده از آنها لذت می برید می تواند واقعاً تجربه روزانه شما را بهتر کند. حتی داشتن ابزاری که بتوانید آن را طوری پیکربندی کنید که دوست دارید، می تواند تأثیر مثبتی داشته باشد.
نکته ای که در اینجا می خواهم بر آن تاکید کنم پیدا نکردن ابزارهایی است که همه از آن استفاده می کنند زیرا می توانند انواع کارها را انجام دهند. این بیشتر در مورد یافتن ابزارهایی است که واقعاً از آنها لذت می برید و مشتاقانه منتظر استفاده از آنها هستید تا کار را انجام دهید. حتی اگر آنها نتوانند همه کارهای فانتزی که برخی ابزارهای دیگر می توانند انجام دهند، انجام دهند، اگر واقعا مشتاق استفاده از ابزار دیگری هستید، از آن استفاده کنید! داشتن ابزارهایی که فعالانه از آنها لذت می بریم، واقعاً به زندگی ما مثبت می افزاید.
4. هدف گذاری کنید
من می دانم که این واضح به نظر می رسد، و من مطمئن هستم که همه ما این را از منابع بی شمار دیگری شنیده ایم. اما ممکن است تعجب کنید که چگونه بسیاری از افراد برای خود اهدافی تعیین نمی کنند. باور نمی کنی؟ به هر 2 یا 3 نفر از همسایگان خود مراجعه کنید و بپرسید که آنها در حال حاضر برای رسیدن به چه اهدافی تلاش می کنند. وقتی این را میپرسم، اغلب شانههایم را بالا میاندازم و پاسخ «واقعاً چیزی نیست» را میگیرم.
همچنین تنها تعیین اهداف کافی نیست. شما هم باید مرتباً به آنها فکر کنید. برخی از روش ها می گویند آنها را یادداشت کنید و روی آینه بگذارید یا جایی که مکرراً آنها را می بینید. این روش شخصاً برای من جواب نداده است، اما شاید برای شما هم جواب دهد؟ چیزی که برای من مفید است این است که هر روز صبح قبل از شروع کار و هنگام نوشیدن قهوه صبح گاهیم به مدت 30دقیقه در مورد اهدافم، تمام کارهایی که دارم و همه چیزهایی که در تقویمم وجود دارد فکر کنم. در طول این مدت، به اهدافم فکر می کنم و ۱ کار کوچک را که می توانم امروز انجام دهم تا حتی یک اینچ به رسیدن به هر یک از آنها نزدیکتر شوم، کشف می کنم.
خیلی بزرگ یا کوچک، برای خود اهداف تعیین کنید. سپس به طور منظم در مورد آنها فکر کنید و اقدامات کوچک زیادی انجام دهید تا فقط 1 قدم به آنها نزدیک شوید. من قول می دهم که این چیزهای خوبی را به زندگی شما خواهد آورد!
در حال حاضر برای رسیدن به چه اهدافی تلاش می کنید؟
5. کنجکاو باشید و بدانید چرا
بنابراین بسیاری از مردم ناامید می شوند یا در مورد نحوه انجام کارها در پروژه های کدنویسی قضاوت می کنند. من مطمئناً آنجا بوده ام!
"چرا کسی این فناوری را انتخاب کرده است؟! این فناوری دیگر برای این مورد بسیار بهتر است..."
"چرا کسی باید اینگونه کد بنویسد؟!"
"اگر X را انجام نمیدادیم و فقط انجام میدادیم، اوضاع خیلی بهتر میشد..."
آیا هیچ کدام از اینها آشنا به نظر می رسد؟
در توسعه نرمافزار، هر چند گاهی اوقات همه چیز خستهکننده باشد، تقریباً همیشه دلیلی پشت هر تصمیمی که گرفته میشود وجود دارد. بهترین انتخاب بود؟ شاید نه...اما هنوز دلیلی برای انتخاب وجود داشت.
من قبلاً از این که اوضاع پیش می آمد ناامید می شدم، و سپس از تلاش برای حل مسائل ناامید می شدم، و سپس وقتی به بلوک های جاده برخورد می کردم ناامید می شدم. اما در نهایت چیزی کلیک کرد، و به جای ناامید شدن، شروع به جستجوی دلایل وقوع این اتفاقات کردم. دلیل پشت آن چه بود از آنجایی که عادت کردم به جای اینکه فقط "تعجب کنم چرا نه" به دنبال چرایی باشم، کنجکاوی من قوی تر شد. متوجه شدم که به دنبال اطلاعات بیشتر هستم، چیزها را به طور کامل یاد میگیرم و درک میکنم، با افرادی که با آنها کار میکنم بیشتر همدلی میکنم، و در نهایت کمتر ناامید میشوم.
در حال حاضر، تجربه من بسیار مثبت تر است. چه من در حال بازسازی بخشی از کد پیچیده، تلاش برای یافتن راه حلی برای یک مشکل آزاردهنده یا یادگیری یک پایگاه کد کاملاً جدید برای یک کار جدید هستم، در واقع با کنجکاوی و تعجب که چرا از این فرآیند لذت می برم، بسیار بیشتر لذت می برم.
آخرین مورد کدنویسی که واقعاً از آن ناامید شدید چه بود؟ یاد گرفتی چرا اینطوری بود؟
6. تقویم خود را برای تمرکز کار مسدود کنید
گفتن این یکی آسان تر از انجام آن است، بسته به جایی که کار می کنید، اما می تواند تأثیر شگفت انگیزی بر زندگی توسعه دهنده شما داشته باشد!
آیا تا به حال در منطقه بوده اید، فقط برای ساختن آن ویژگی جدید، کدی را صادر کرده و سپس نوتیفیکیشن! کسی برای شما یک پیام فوری می فرستد؟ یا کسی روی شانه شما ضربه می زند تا از شما سوالی بپرسد؟ شما وقفه را برطرف می کنید، به صفحه باز می گردید، و تمام آن تمرکز را از دست داده اید؟ اگر نه... من حاضرم روی مقدار زیادی پول شرط ببندم که شما در مقطعی از حرفه خود خواهید داشت.
این مفهوم "در منطقه بودن" یا وارد شدن به "جریان" موضوعی است که در مورد آن بسیار مطالعه و نوشته شده است. من به شدت شما را تشویق می کنم که چند مقاله و کتاب در مورد این موضوع را بررسی کنید، زیرا موضوع بسیار جالبی است! بسیاری از این مطالعات نشان دادهاند که بودن در حالت فلو چقدر مفید است و همچنین بازگشت به آن حالت ذهنی پس از یک وقفه بیش از 20 دقیقه طول میکشد! بنابراین یافتن راه هایی برای رسیدن به آن وضعیت ذهنی و ماندن در آنجا بسیار مهم است!
یکی از بهترین راه هایی که برای رساندن خودم به این وضعیت پیدا کرده ام این بوده است که به معنای واقعی کلمه بخش های زیادی از زمان را در تقویم خود که به «تمرکز کار» اختصاص داده شده است، مسدود کنم. این می تواند در ابتدا یک چالش باشد، وادار کردن افراد به بررسی وضعیت تقویم یا Slack شما قبل از تلاش برای تماس باشید، و به همه کمک کنید تا بفهمند به محض اینکه زمان تمرکز شما تمام شد، به آنها باز خواهید گشت. اما در نهایت مردم به اطراف می آیند، و پاداش عالی است! فراموش نکنید که در این مدت اعلان را نیز خاموش کنید!
بپذیرید که مواقعی وجود خواهد داشت که مسائل فوری پیش خواهد آمد که اولویت بیشتری خواهند داشت. این فقط زندگی است، و ما فقط باید با مشت ها غلت بزنیم... اما این نباید "هنجار" باشد.
در کدام بخش از روز بیشترین بازدهی را دارید؟
7. روابط عمومی خود را کوچک نگه دارید
من این یکی را دوست دارم، و در یک سال گذشته به یک اولویت بزرگ برای من تبدیل شده است.
به نظر می رسد که کوچک نگه داشتن درخواست های کششی (یا درخواست های ادغام برای شما دوستان GitLab) مزایای مثبت زیادی دارد. باگهای کمتری منتشر میشوند، زمان کمتری را برای بررسی کد صرف میکنیم، و ویژگیها سریعتر منتشر میشوند. همه اینها نه تنها محصول ما را بهتر می کند، بلکه متوجه شده ام که تجربه من به عنوان یک توسعه دهنده را نیز به شدت بهبود می بخشد!
با تمرکز بر تغییرات کوچکتر، متوجه میشوم که به چیزهایی دقیقتر فکر میکنم و موارد استفادهای را که ممکن است در هرج و مرج تغییرات بزرگتر نادیده گرفته شدهاند، در نظر بگیرم. من میتوانم در بررسی تغییرات سریعتر حرکت کنم، اعضای تیم من میتوانند حتی سریعتر کد من را مرور کنند، زیرا من به جای 2 ساعت فقط 5 دقیقه از وقت آنها را میگیرم و در طی آن بررسی، به میزان قابل توجهی کمتر دریافت میکنم. تغییر درخواست ها در نتیجه، کد بهتری منتشر میشود، و من میتوانم به جای رسیدگی به تعدادی از باگهایی که از قلم افتادهاند، زمان بیشتری را صرف ساختن چیزهای جدید کنم.
از طرف دیگر، بررسی PR|MR های کوچک بسیار لذت بخش تر از موارد بزرگ است. آیا تا به حال مجبور شده اید PR|MR شخصی را که شامل چندین هزار تغییر، شامل بیش از 20 فایل و چندین بخش از برنامه است، مرور کنید؟ وقتی این کار را کردید، واکنش فوری شما چه بود؟ آیا برای ورود و شروع بررسی بیش از حد هیجان زده بودید؟ یا شاید شما احساس "اوف" کردید و آن را کنار گذاشتید زیرا فقط 30 دقیقه قبل از جلسه بعدی فرصت داشتید و می توانستید در این مدت کار دیگری انجام دهید؟
هنگامی که PR|MRهای بزرگ در حال بررسی هستند، اغلب اتفاق می افتد که بسیاری از جزئیات گم می شوند (یا حداقل تمرکز کمتری دریافت می کنند) و در نهایت، اکثر مردم به نقطه ای از "کوری مرور" یا "بازبینی خستگی" می رسند که در آن چیزها شروع به نادیده گرفتن می کنند. ، یا بازبین باید برای مدتی دور شود و بعداً به آن بازگردد. همه اینها باعث میشود که فرآیند بازبینی طولانیتر شود، کارآمدی کمتری داشته باشد و درخواستهای تغییر بسیار بیشتری ارسال شود. ناگفته نماند که احساس نارضایتی در بین همه اعضای تیم شما به اشتراک گذاشته می شود.
از زمانی که این کار را برای خودم در اولویت قرار دادم و با اعضای تیم کار کردم تا آنها را وادار به انجام همین کار کنم، متوجه شده ام که تجربه من با PR|MR به طور قابل توجهی بهتر شده است. من بسیار مایلم که بین جلسات وارد شوم و چند بررسی را حذف کنم، مجبور هستم تغییرات کمتری را درخواست کنم، و بعد از آن احساس خستگی نمیکنم، جایی که باید دور شوم و دوباره خودم را جمع کنم. حتی برنامه ریزی من دقیق تر شده است!
بدترین روابط عمومی که تا به حال باید مرور کنید چه بوده است؟
8. همه چیز را بنویسید!
آخرین نکته من کاری است که من نیز در سال گذشته شروع کردم به انجام آن، پس از خواندن نحوه یادداشت های هوشمندانه و انجام کارها و تأثیر شگفت انگیزی بر زندگی من داشت.
وقتی چیز جدیدی یاد میگیرم، آن را یادداشت میکنم. حتی اگر فقط یک پاراگراف کوتاه باشد که چیزهایی را که یاد گرفتم توصیف می کند. وقتی یک کار جدید، بزرگ یا کوچک مطرح می شود، آن را یادداشت می کنم. در طول جلسه، اگر ایده ها به اشتراک گذاشته شود، بازخورد داده شود، مسائل ارائه شود، همه چیز نوشته می شود. اگر من یک فکر تصادفی در مورد چیزی داشته باشم، یا یک ایده مو مغزی... حدس زدید... نوشته می شود. سپس، هر زمان که چند دقیقه فرصت دارم، به جای پیمایش در رسانه های اجتماعی، ابتدا به یادداشت هایم می پردازم. من آنها را تا جایی که میتوانم مرور میکنم، که اطلاعات را در ذهن من تقویت میکند، اما همچنین به من کمک میکند ایدههای مختلف را با هم پیوند دهم، که اغلب میتواند به یک ایده کاملاً جدید منجر شود.
از چه روشی برای به خاطر سپردن و به اشتراک گذاشتن مطالبی که آموخته اید استفاده می کنید؟
نتیجه
در بیش از 7 سال گذشته که به عنوان یک توسعه دهنده کار کرده ام، چیزهای زیادی یاد گرفته ام. من روزهای خوب و بد را پشت سر گذاشتهام، و در این مسیر درسهای بسیار مفیدی از زندگی گرفتهام. با یافتن مکانهایی که از کار کردن در آنها لذت میبرم، سرمایهگذاری کمی بیشتر در زمان و پول روی سختافزارم، یافتن ابزارهایی که دوست دارم استفاده کنم، هدفگذاریها، کنجکاو بودن و تمرکز بر چرایی آن، تعیین زمان برای کار متمرکز، تمرکز بر کوچک نگه داشتن روابط عمومی، و یادداشت کردن هرچه می توانم، صادقانه می توانم بگویم که تجربه توسعه دهنده من بسیار بهبود یافته است.