هر روز کد بنویسید – از زبان خالق jQuery

این مطلب ترجمه و خلاصه ای از مقاله نوشته شده توسط John Resig با نام “Write Code Everyday”منتشر شده در وبسایت شخصی نویسنده است.

اما جان رسیگ کیست؟

جان رسیگ بیشتر به عنوان یک متخصص در زبان برنامه نویسی جاوا اسکریپت و خالق محبوب ترین کتابخانه جاوا اسکریپت در جهان شناخته شده است یعنی : jQuery. او پروژه های متعددی ایجاد کرده است که همچنان به عنوان بخشی جدایی ناپذیر از توسعه وب مدرن هستند. او همچنین نویسنده کتابهای محبوب جاوا اسکریپت: JavaScript Ninja و Pro JavaScript Techniques است.

جان همچنین یکی از معماران اصلی در Khan Academi است که در آن تلاش می کند تا آموزش و پرورش رایگان را به همه در همه جا ارائه دهد.

چیزی که در ادامه میخوانید از زبان خود نویسنده است:



هر روز کد بنویسید

پاییز سال گذشته ایده ی کار کردن بر روی پروژه های جانبی برنامه نویسی علاوه بر کارم در khan Academy به ذهنم رسید، اما هیچ پیشرفتی در این زمینه نداشتم و نمیتونستم راهی پیدا کنم که توانایی هام در انجام کار اصلیم رو تحت الشعاع قرار نده!

برای کار کردن روی پروژه های جانبی چندتا مشکل وجود داشت؛ من بیشتر آخر هفته ها و بعضی مواقع عصرها در طول هفته روی اونها کار میکردم.. اینطور که معلوم شد این استراتژی برای من کار نمیکرد. من با فشار باورنکردنی استرس شدیدی رو به رو شدم و تمام تلاشم رو میکردم تا بهترین کارم رو با بالاترین کیفیت انجام بدم (و خب اگر نمیتونستم، احساس شکست میکردم) این یه مشکل خیلی جدی بود چون که هیچ تضمینی برای آزاد بودن آخر هفته ها وجود نداره و در مقابل من میخوام دو روز آخر هفته رو کامل برنامه نویسی انجام بدم. (یعنی از بین بردن هرگونه استراحت، تفریح و …) همچنین این مسئله وجود داره که ۱ هفته فاصله بین کدهای طولانی قطعا باعث میشه که شما بخش های مهمی از کد رو فراموش کنید (حتی اگر یادداشت کنید) این رو هم در نظر بگیرید که با از دست دادن یک آخر هفته، ۲ هفته بین کد نوشتن خود وقفه انداختید و این واقعا افتضاحه. (من پروژهای زیادی رو به این دلیل از دست دادم)

اما با الهام از کار خارق العاده ای که Jennifer Dewalt انجام داد ( اون در ۱۸۰ روز ۱۸۰ وبسایت ساخت و اینجوری به خودش برنامه نویسی رو یاد داد) احساس کردم باید یک روش مشابه رو امتحان کنم:

هر روز روی پروژه های جانبی خودم کار کنم!




من تصمیم گرفتم چندتا قانون بزارم:

  • من باید هر روز کد بنویسم! نوشتن پست وبلاگ، داکیومنت ها و… باید علاوه بر کدی باشد که می نویسم.
  • ۲ - باید کد مفیدی باشد.. بدون re-formating و در صورت امکان بدون بازسازی مجدد یا refactoring (البته که تمام این کارها مجازند اما به عنوان کار اصلی یعنی کدنویسی حساب نمیشوند)
  • تمام کدها باید تا قبل از نیمه شب نوشته شود.
  • کد باید متن باز -open source – باشد و در گیت هاب منتشر شود.

البته که بعضی از این قوانین کاملا خودسرانه بودند. عملا نیازی نیست که کد قبل از نیمه شب نوشته بشه اما من میخواستم که تا دیروقت بیدار نمونم و از نوشتن کدهای ناخوانا (خواب آلوده) جلوگیری کنم. همینطور نیازی نیست که حتما کد متن باز باشد و در گیت هاب باشه. این قانون فقط من رو وادار میکرد بیشتر به کدی که مینویسم توجه داشته باشم.

تا اینجا من بسیار موفق بودم و نزدیک به ۲۰ هفته کار متوالی داشتم… چیزی که باعث شد من بخوام راجبش بنویسم اینه که نحوه ی کدنویسی من بسیار تغییر کرده و تاثیر قابل توجهی بر روی زندگی و روان من داشته.



تعدادی از اتفاقات جالب که در نتیجه این تغییر عادت رخ داد:


حداقل کد قابل اجرا:

من مجبور بودم تا حداقل ۳۰ دقیقه در روز برنامه نویسی انجام بدم (نوشتن کد معنا دار در زمانی کمتر از این ناممکن بود مخصوصا وقتی سراغ کدی میرید که روز قبل رهاش کردید.) بعضی از روزها من بیشتر کار میکردم چیزی حدود ۱ ساعت و نه بیشتر. البته آخرهفته ها شاید یک روز کامل رو کد مینوشتم.

عادت کد نوشتن:

توجه به این نکته مهمه که من عملا اهمیتی به چارت گیت هاب که در بالا آوردم نمیدم. من فکر میکنم مهمترین نتیجه از این چالش تغییری است که شما در زندگی خودتون برای خودتون ایجاد میکنید. نه تغییری که برای جلب نظر و رضایت دیگران انجام میدهید.. در مورد رژیم گرفتن یا ورزش هم همینطوره.

اگر به پیشرفت خود اهمیت ندهید در واقع هرگز موفق نخواهید شد.

مبارزه با اضطراب:

قبل از شروع این آزمایش یا چالش من اغلب اضطراب بالایی رو نسبت به انجام ندادن کار کافی یا پیشرفت کافی احساس میکردم. فهمیدم که احساس پیشرفت به اندازه پیشرفت واقعی مهمه.. این واقعا چشمان من رو باز کرد. هنگامی من شروع به پیشرفت مداوم کردم اضطراب من هم هر روز ‌ذوب میشد. من با میزان کاری که انجام میدادم احساس آرامش و رضایت میکردم و دیگر در آرزوی انجام دادن کارهام نبودم.

آخر هفته ها :

انجام کار در آخرهفته ها برای حرکت رو به جلو بسیار مهمه (همونطور که معمولا تنها زمانی بود که من روی پروژه های جانبی خودم کار میکردم) در حال حاضر این کار رو زیاد انجام نمیدم و این چیز خیلی خوبیه – من ۱ هفته برای خودم انتظاراتی میساختم و میخواستم که تنها در آخر هفته اونها رو برآورده کنم و این باعث نا امیدی من بود. خب من به ندرت میتونستم کارهامو انجام بدم و این مجبورم میکرد از سایر فعالیت هایی که لذت میبردم (خوردن غذاهای خاص، بازدید از موزه رفتن به پارک گذراندن وقت با شریک زندگی و …) چشم پوشی کنم.

من شدیدا احساس میکنم با این که پروژه های جانبی مهم هستند اما نباید به طور کلی از زندگی صرف نظر کرد.

پردازش پس زمینه:

این یکی از عوارض جالبه نوشتن پروژه های جانبی بود یعنی این که تمام کارها و وظایف در پس ذهن اجرا میشن… مثلا وقتی که میخوام پیاده روی کنم یا دوش بگیرم، و یا هر یک از فعالیت های غیر ذهنی که انجام میدم به این فکر میکنم که بعدا در کدی که مشغول نوشتن اون هستم از چه راهی برم و برای اون مسئله راه حل پیدا کنم. البته که این اتفاق زمانی که من فقط آخر هفته ها کد مینوشتم نمیفتاد.. در اون زمان من در زیر دوش هم به شکست فکر میکردم و با اضطراب کارهای انجام نشده سر و کله میزدم.

تغییر کد:

هنگامی که مشغول انجام پروژه های جانبی هستید همیشه تغییر کد اتفاق میفته؛ سخته که شما پس از یک هفته انجام کارهای مختلف به کد رهاشده برگردید و درست اون رو ادامه بدید. نوشتن کد روزانه در این زمینه بسیار مفیده چون که زمان بین کار بسیار کوتاهتر میشه و به راحتی به یاد میارم که روی چی کار میکردم.

تعادل در کار:

یکی ازمهمترین نتایج این تغییر این بود که من قادر به ایجاد تعادل بین زندگی – کار – پروژه های جانبی، شدم. با در نظر داشتن اینکه من باید امروز روی پروژه خودم کار کنم تعادل بین زمانم رو بهتر مدیریت کردم مثلا اگر قرار بود عصر بیرون برم و تا دیروقت برنگردم خیلی راحت میدونستم که باید صبح قبل از شروع کارم در خان آکادمی روی پروژه خودم کار کنم. یا اگر نتوستم کارم رو تموم کنم و بیرون بودم سریع به خونه برگردم و کارم رو انجام بدم به جای اینکه یک روز رو از دست بدم.. البته که زمان کمتری برای بعضی از تفریحاتم داشتم اما خب این بهایی هست که باید برای زندگیم پرداخت کنم.

احساس بیرونی:

تاثیر این عادت در ارتباطات بیرونی هم چشمگیره، پارتنر من آگاه میشه که من باید هر روز این کار رو تموم کنم و بنابراین خیلی از اوقات بقیه کارها رو با در نظر گرفتن این مورد برنامه ریزی میکنیم. اینجوری خیلی راحته که بگم: بله ما میریم بیرون/سینما/ و غیره اما بعدا من باید به کدنویسی خودم برسم.



چه مقدار کد نوشته شد؟

من به سختی میتونم باور کنم که چقدر در ماه های گذشته کد نوشته ام!!

من چند وبسایت جدید ساختم، برخی از framework هارو دوباره نوشته ام و تعداد بسیار زیادی node modules ساخته ام. من اونقدر کد نوشتم که گاهی اوقات چیزهایی که ساختم رو فراموش میکنم و کارهایی که چند هفته پیش انجام دادم شبیه یک خاطره بسیار دوره.

من واقعا از میزان کارهایی که انجام داده ام بسیار راضی هستم.

من این تغییر عادت رو یک موفقیت عظیم میدونم و امیدوارم تا آنجا که میتوانم ادامه دهم و تمام تلاشم رو انجام میدم تا این تکنیک رو به دیگران که مایل به انجام کارهای جانبی قابل توجهی هستند ارائه بدم.

امیدوارم خوندن این مقاله بهتون کمک کنه تا برنامه نویسی رو با لذت شروع کنید و پیش برید.این مقاله به صورت اختصاصی در وبسایت پونز وب منتشر شده | هرگونه کپی از این مقاله با ذکر منبع آزاد است :))