این روزها دولوپرها وقت کافی برای هیچ کاری ندارند (لااقل ظاهراً اینطور به نظر میرسد). به عبارت دیگر، وقتی برای یادگیری تمام چیزهایی که برای پیشرو بودن ضروری به نظر میرسند نداریم، وقتی برای به عقب برگشتن و ریفکتور کردن کدهای زشت و قدیمی خود نداریم (چون فعلاً دارند کار میکنند و ضمناً هر روز داریم به موعد تحویل پروژه نزدیک و نزدیکتر میشویم)، وقتی نداریم برای مستند کردن کدها و کامنت نوشتن برای کسی که بعداً قرار است نگهداری از کدهای ما را بر عهده بگیرد، وقتی برای فکر کردن نداریم و در یک کلام، حتی وقت سر خاراندن هم نداریم! اگر شما هم وقت این کارها را ندارید، لااقل کمی وقت بگذارید و این مقاله را مطالعه کنید تا به شما بگوییم که چگونه وقت پیدا کنید و آن وقت را صرف چه کاری کنید. دانستن ۵ اصل زیر میتواند به شما در مدیرت زمان کمک کند.
برای اینکه دولوپر خوبی باشید، نیازی نیست تا همه چیز را بدانید
در اینکه یک دولوپر خوب همواره باید در حال یادگیری باشد هیچ شکی نیست اما اینکه بر یادگیری چه چیزی تمرکز میکنید، میتواند در میزان وقتی که برای یادگیری نیاز دارید، بسیار تأثیرگذار باشد. در همین راستا، نکتهٔ اول این است که وقت گرانبهای خود را در سایتهایی که هر سی ثانیه یک استاندارد جدید منتشر میکنند، تلف نکنید!
اغلب تکنولوژیها، فریمورکها و فیچرهای جدید هیچ وقت آنقدر مورد توجه عموم قرار نمیگیرند که اگر چیزی در مورد آنها ندانید، از دنیا عقب بیفتید. از این میان، آن موارد انگشتشماری هم که معروف میشوند و محبوبیت چشمیگری به دست میآورند، آنقدر همهجا در موردشان مطلب نوشته میشود و سخن به میان میآید که حتی اگر نخواهید هم از آنها مطلع خواهید شد. بنابراین نگران امنیت شغلی خود نباشید و به جای آن، سه مورد زیر را برای یادگیری در اولویت قرار دهید:
۱. اصول و مبانی: اگر پایهها و مبانی هر چیزی را خوب فهمیده باشید، در موقع نیاز راحتتر میتوانید مهارتهای جدید مرتبط با آنها را به دست آورید. به عنوان مثال، اگر جاوااسکریپت را خوب و عمیق فهمیده باشید، به راحتی و در زمان کوتاهی میتوانید مهارت کار با هر فریمورک جدید جاوااسکریپت را به دست آورید. و یا به عنوان مثالی دیگر، اگر عمیقاً با مفهوم برنامهنویسی شیئگرا (OOP) آشنا شده باشید، به سرعت میتوانید هر زبان شیئگرای جدیدی را بیاموزید. بنابراین پیش از هر چیز، باید بر یادگیری عمیق اصول و مبانی تمرکز کنید.
۲. آخرین نسخه و جدیدترین فیچرها: کدام تکنولوژیها بیشتر مورد استفادهٔ شما هستند؟ از کدام زبان برنامهنویسی، کدام فریمورک، کدام ویرایشگر و … تقریباً هر روز استفاده میکنید؟ اگر بخواهیم واضحتر بگوییم، برای ادارهٔ زندگیتان از کجا پول درمیآورید؟ این همان جایی است که باید در اولویت یادگیری شما قرار بگیرد. هر زمان که نسخهٔ جدیدی از زبان، فریمورک، ویرایشگر و ... مورد استفادهٔ شما منتشر شد و یا امکانات جدیدی به آن اضافه شد، وقت بگذارید و آن را یاد بگیرید چون قطعاً ارزشش را دارا است.
۳. تکنولوژیهایی که توسط شرکتهای بزرگ پشتیبانی میشوند: اگر شرکت بزرگ و معتبری مانند گوگل، فیسبوک و یا مایکروسافت تکنولوژی جدیدی را ایجاد کرد و آن تکنولوژی به قدر کافی محبوب و معروف شد، آنگاه ارزشش را دارد که وقت بگذارید و با آن آشنا شوید. ما نمیگوییم که تولیدات شرکتهای گمنام و کمتر شناخته شده هیچوقت موفق نمیشوند و نمیتوانند با شرکتهای بزرگ رقابت کنند، اما معمولاً شرکتها و برندهای بزرگ و معتبر هستند که روند بازار را در دست دارند.
به عنوان یک قانون کلی، یادگیری همواره باید بخشی از برنامهٔ شما باشد. نیازی نیست هر روز وقت زیادی را به این کار اختصاص دهید. حتی نیم ساعت وقت روزانه برای یادگیری و تمرین، در طولانیمدت میتواند تأثیر خوبی بر پیشرفت شما داشته باشد.
نوشتن کدهای خوب کمتر از نوشتن کدهای بد زمان میبرد
برخی افراد فکر میکنند هنگامی که کدی نوشته و اجرا شد، سرمایهگذاری زمانی بر روی آن کد پایان یافته است اما این دیدگاه اشتباه است. لحظهٔ اجرای کد، تازه شروع کار است؛ به این معنی که زمان صرف شده برای دیباگ نمودن کد و ریفکتور کردن بخشهایی از آن و همچنین پرداختن به کدهای مرتبط با آن نیز در واقع بخشی از زمانی هستند که عملاً صرف آن کد خاص میشود. بنابراین اگر از این زاویه نگاه کنیم، بسیار واضح است که نوشتن کد خوب سبب میشود تا بعداً با مشکلات کمتری مواجه شویم و بنابراین وقت کمتری را برای ویرایش و اصلاح آن صرف کنیم. رعایت دو نکتهٔ زیر میتواند به شما در کاهش ارورها و اِعمال طراحی بهتر در کدنویسی کمک کند:
۱. توسعهٔ اصطلاحاً Test-driven: ابتدا تست و سپس کد را بنویسید، به طوری که کد با موفقیت تست را پشت سر بگذارد. این کار نهتنها سبب کاهش باگها میشود، بلکه باعث میشود که طراحی بهتری نیز داشته باشید. زیرا اگر مجبور باشید ساختار کد را به صورت قابل تست ایجاد کنید، در نهایت خودبهخود فانکشنهای کوتاهتر و سادهتری نیز خواهید داشت که وابستگیهای کمتری دارند.
۲. استفاده از روش طراحی اصطلاحاً Iterative: انتظار نداشته باشید که از همان ابتدا یک کد عالی و بدون نقص بنویسد. به جای اینکه در ذهن خود بهترین کد را برای نوشتن آماده کنید، بهتر است با انگشتانتان یک کد معمولی را تایپ کرده و بعداً آن را به یک کد خوب تبدیل کنید. بنابراین، ابتدا سعی کنید کدی بنویسید که کار مورد نظرتان را انجام دهد، سپس اصلاحات مورد نظرتان را روی آن انجام دهید تا به یک کد خوب تبدیل شود.
در این حین، بسیاری از دولوپرها یکی از این دو اشتباه را انجام میدهند:
- یا وقت خیلی زیادی را صرف فکر کردن میکنند و عملاً کدی نمینویسند.
- و یا بدون اینکه به قدر کافی فکر کنند و به راهحل مناسبی دست پیدا کنند، شروع به کد زدن میکنند.
برای رها شدن از این چالش، از روشی استفاده کنید که Kent Beck آن را اولین بار بیان کرد به طوری که وی میگوید:
کدی بنویسید که فقط کار کنه سپس اون رو به صورت درست بنویسید و در نهایت، کاری کنید که سریع اجرا بشه.
شبانهروز و هفت روز هفته کار کردن از شما یک قهرمان نمیسازد
شاید با شب بیداریهای پیدرپی و انجام دادن پروژههای سخت آن هم در مدت زمانی کوتاهتر از حد انتظار بتوانید در کوتاهمدت خود را یک دولوپر زبردست جلوه دهید و به عنوان قهرمان در چشم همه بدرخشید، اما با این روش رفتهرفته اطرافیان انتظارات بیشتر و بیشتری از شما خواهند داشت و این در حالی است که شما برای حفظ موقعیت و آبروی خود، به هیچکس نَه نمیگویید و همچنان پُرتلاش و پُرانرژی به کار خود ادامه میدهید.
نیاز به توضیح نیست که این دوران خیلی زود به پایان خواهد رسید! زیرا ادامهٔ این روش در طولانیمدت سبب تحلیل رفتن انرژی شما و خستگی و بیماری خواهد شد. خستگی بیش از حد سبب کُندی کار، اشتباهات فراوان و در نتیجه تحویل دیرهنگام پروژه شده و کمکم آن قهرمان بیرقیب، به یک همکار بدقول و بیدقت تبدیل خواهد شد.
اگر میخواهید همواره یک نیروی حرفهای، دقیق و خوشقول باقی بمانید، باید انتظارات دیگران را مدیریت کنید. در ابتدا ممکن است رئیس و یا مشتریان شما این تغییر رفتار را نپذیرند اما اگر به مقاومت در مقابل انتظارات نامعقول ادامه دهید، آنها نیز انتظارات خود را تعدیل خواهند کرد. با مدیریت انتظارات، شما نیز به فردی خوشقول، دقیق و همچنین به یک قهرمان واقعی تبدیل خواهید شد.
همهٔ سرمایهگذاریهای زمانی به یک اندازه بازده ندارند
صرف زمان، نوعی سرمایهگذاری است اما مانند همهٔ سرمایهگذاریها، در مورد زمان نیز باید بازگشت سرمایه را مورد توجه قرار داد. در همین راستا، پیش از این قانونی را مطرح نمودیم و گفتیم باید کدی بنویسیم که فقط کار کند سپس آن را به صورت درست نوشته و در نهایت، کاری کنیم که سریع اجرا گردد. مراقب باشید که در دام کلمات گرفتار نشوید. «درست» به معنای «عالی» نیست و «سریع» هم به معنای «بالاترین سرعت ممکن» نیست.
منظور از کد درست، کدی است که بتواند به صورت پایدار کار کند و به راحتی قابل ریفکتور کردن باشد و منظور از سریع نیز این است که سرعت اجرای کد بر تجربهٔ کلی کاربر تأثیر منفی نداشته باشد؛ به عبارت دیگر، مهم این است که کاربر حس کند که برنامه دارد سریع اجرا میشود.
بنابراین وقت خود را صرف تکهتکه کردن فانکشنی که به ندرت مورد استفاده قرار میگیرد، نکنید. همچنین وقت خود را برای افزایش سرعت چیزی که همین الان هم با سرعت مناسبی اجرا میشود هدر ندهید و صرفاً به خاطر اینکه تکنیکها و روشهای جدیدی را یاد گرفتهاید، به سراغ ریفکتور کردن کدهای قدیمی خود که به خوبی کار میکنند و ساختار مناسبی دارند، نروید.
استراحتهای برنامهریزی شده میتواند کارایی شما را بالاتر ببرد
پژوهشهای متعددی وجود دارد که نشان میدهد انسان منابع جسمی و روحی محدودی در اختیار دارد. بنابراین هنگامی که شخصی به طور مداوم از منابع خود استفاده میکند (و در واقع این منابع را استفاده میکند)، کارایی و بهرهوری او کاهش مییابد. کار مداوم و بیوقفه سبب استرس، خستگی و ایجاد خلق و خوی بَد و به عبارت دیگر موجب تحلیل رفتن منابع جسمی و روحی شخص میشود. بنابراین پس از مدتی، عملکرد فرد پایین آمده و قدرت کمتری در حل مسئله و انجام وظایف خود خواهد داشت.
توانایی مغز در تنظیم خود برای حفظ نظم، با هر بار خودکنترلی در طول روز کمتر و کمتر میشود. این منبعِ خالی شده باید به نحوی پُر شود و در غیر این صورت، دقت مغز پایین میآید و حل مشکلات دشوارتر میشود.
مغز و بدن شما به زمانی برای استراحت نیاز دارند و چه شما بخواهید و چه نخواهید، مغز این زمان را از شما خواهد گرفت؛ بنابراین بهتر است پیش از اینکه مغز به اجبار این زمان را از شما بگیرد، خودتان در مورد آن برنامهریزی کنید. روی تقویم خود روزهایی را از قبل برای استراحت در نظر بگیرید و بدون احساس عذاب وجدان، به استراحت بپردازید. این باعث میشود که با انرژی بیشتری به کار برگردید و در نتیجه بهرهوری بالاتری داشته باشید.
در این مقاله ۵ اصل مهم برای مدیریت زمان را برای موفقیت بیشتر دولوپرها مطرح نمودیم. اگر شما هم گرفتار کمبود وقت هستید، امیدواریم با در نظر گرفتن این اصول، بتوانید زمان خود را مدیریت نموده و وقتی برای بهبود تواناییهای خود بیابید.