مخاطب این مقاله توسعه دهندگان تازه کار هستند اما برای تمام کسانیکه علاقمند به یک بانک اطلاعات مفید در زمینه ی رشد عادت های خوب هستند نیز مفید است.
همگام بودن با پیشرفت های فناوری
همگام بودن با دنیای فناوری درواقع به معنای شناخت و آشنایی با جدیدترین تکنولوژی ها می باشد. به عقیده ی من آسانترین شیوه برای یادگیری ، مطالعه است. حتی اگر موضوع مقاله ای که مطالعه می کنید را کاملا درک نکنید بازهم از وجود آن مطلع خواهید شد. و آنچه اهمیت دارد اطلاع از وجود آن است.
ابزارها و سرویس های آنلاین بسیاری برای کمک به شما وجود دارند و از آنجاییکه این مقاله ها اولین منبع اطلاعاتی و شامل بروزترین ایده ها هستند حتما باید از آنها استفاده کنید.
ابزارهایی همچون Netvibes با نظارت بر دنیای فناوری، به صرفه جویی در زمان کمک زیادی می کنند. توصیه میشود محتواهای جدید را دنبال کرده و تمام فیدزهای خود را در یک روز معین مثلا دوشنبه یا پنج شنبه مطالعه کنید.
برخی از وب سایت ها/رسانه هایی که من هرهفته مطالعه می کنم عبارتند از:
Collective by codrops، Hackernoon، Smashing Magazine، FreeCodeCamp، Codyhouse، Twitter، Web Fundamentals by Google
اما هنگامیکه از ابزارهای کنترل محتوا استفاده می کنید سعی کنید روی موضوعاتی متمرکز شوید که با مهارت های حرفه ی شما مرتبط هستند. از سردرگمی و از موضوعی به موضوع دیگر پریدن اجتناب کنید.
نگاه انداختن به وب سایت های معرکه و موشکافی کردن آنها
شما می توانید به آسانی وب سایت ها، منابع یا آزمایش های کدنویسی(code experimentations) را در Awwwards، Css Design Awards، FWA، Codepen بیابید.
اما هدف از دیدن این سایت ها یا منابع این نیست که با خود بگویید "من هرگز قادر به انجام چنین کاری نیستم". از خودتان بپرسید: چگونه می توانید کاری سحرآمیز انجام دهید. سعی کنید تا راز این سایت های فوق العاده را کشف کرده و بفهمید در ساخت آنها از چه چیزهایی استفاده شده است. فناوری جدید، لایبرری جدید جاوا اسکریپت و یا یک CSS ناشناخته؟ ما در دنیایی زندگی می کنیم که هر روز با ظهور یک مورد جدید روبرو میشویم. ما نمیتوانیم با همان سرعتی که فناوری رشد می کند آنها را یاد بگیریم.
اما پیشنهاد میشود تنها به درک پروسه بسنده نکنید، بلکه تلاش کنید تا آنرا دوباره تولید کرده و تشریح و موشکافی کنید. بطورکلی اگر می توانید موضوعی را به فرد دیگری آموزش دهید به این معناست که در آن موضوع مهارت یافته اید.
با بررسی وب سایت ها و شناخت نحوه ساخته شدن آنها توسط افراد زبده ،میتوانید تکنیک های مختلف را با یکدیگر ترکیب کرده و به روش های هوشمندانه برای ساخت وب سایت پی ببرید.
درس گرفتن از افراد با تجربه
بطور معمول هنگامیکه بعنوان یک فرد مبتدی کار خود در یک کمپانی را آغاز می کنید یک فرد باتجربه (سرپرست توسعه دهندگان) بر کدها و وظایف شما نظارت می کند.
خجالتی نباشید از آنها سوال بپرسید تا بیشتر یاد بگیرید. از آنها بخواهید تا جالب ترین موارد انجام شده در سایت هایی که بتازگی ارائه داده اند را به شما نشان بدهند. از همه مهم تر نترسید و از آنها درباره ی چیزهایی که از نظر شما بی معنی هستند سوال بپرسید.
هر فردی با سطح تحصیلات و دانش متفاوتی شروع بکار می کند، بنابراین پرسیدن سوال هایی که ممکن است گاهی احمقانه بنظر برسد کاملا طبیعی می باشد اما آنچه مهم است پاسخ هایی است که به شما، در سال های پیش رو کمک میکنند.
شیوه ی دیگر یادگیری، یادگیری از طریق مرور کدهاست. درصورتیکه تیم شما بطور مرتب این کار را انجام نمیدهد شما نخستین فردی باشید که انجام آنرا به تیم توسعه پیشنهاد میدهد. تردید نکنید از سایر اعضای تیم درخواست کنید کدها را بازبینی کرده و برای بهتر شدن آن تلاش کنند. با اعضای تیم بحث کنید به حرف های آنها گوش دهید به آنها توضیح دهید چرا کاری را به شیوه ای که آنها انجام میدهند انجام نداده اید. تبادل، بحث و یادگیری از نقاط قوت یکدیگر، یکی از سالم ترین شیوه ها برای پیشرفت است.
همیشه کدهای خود را کامنت کنید
ممکن است از آغاز کدنویسی یک جمله را میلیون ها بار در اینترنت و از سوی مافوق ها یا معلم ها بخوانید. این امر کاملا طبیعی است.
هدف از توضیح دادن یا کامنت کردن کدها صرفا درک بهتر آن توسط یک توسعه دهنده دیگر نیست. بلکه از این طریق می توانید قبل از نوشتن درباره ی عملکرد خود فکر کرده و هدف خود را تعریف کنید.
بعنوان مثال فرض کنید نوشتن یک فانکشن برای مدیریت اکوسیستم یک سیاره را آغاز کرده اید. با کامنت کردن کدهای خود بطور اتوماتیک کدهای خود را در فانکشن های چندگانه مرتب کرده اید. و هر فانکشن تنها یک وظیفه برای اجرا کردن دارد.
قانون جداسازی فانکشن ها به فانکشن های کوچکتر به شما کمک کند تا باگ ها را سریعتر شناسایی کنید. همچنین می توانید المان ها را ایزوله کرده و بعدها دوباره از آن استفاده کنید. درآخر نتیجه ی بدست آمده خواناتر بوده و بهنگام نمایش کدها نیازی به پنهان کردن هیچ چیز نیست.
اصلاح و ارتقای کدها: ریفکتور
اگر به هرکسی غیر از خودتان تکیه کنید هرگز اعتماد بنفس بدست نیاورده و پیشرفت نخواهید کرد. به همین دلیل باید به گذشته برگشته و به سراغ کدهای کثیف رفته و آنها را تمییز کنید.
به اعتقاد من به همین دلیل بازنویسی کدهای قدیمی از توسعه ی فیچرهای جدید مهم تر است. بنابراین دفعه ی دیگر که مدیر پروژه از شما پرسید در وقت آزاد خود چه میکردی پاسخ بدهید مشغول ریفکتورینگ کدها بودم. ریفکتورینگ کدها یک تکنیک کنترل شده برای پیشرفت طراحی پایگاه کدهای موجود است. ماهیت آن عبارت است از بکاربستن یک مجموعه از تغییرات کوچک بطوریکه هریک از آنها آنقدر کوچک هستند که ارزش انجام دادن را دارند. اما تاثیر این تغییرات کوچک کاملا برجسته است. با تقسیم آن به مراحل کوچکتر خطر بروز خطا نیز کاهش می یابد.
بطور خلاصه کدهای خود را بازبینی کرده و بدون تاثیرگذاری بر کارایی ،آنرا اصلاح کرده و ارتقا دهید. سریعتر، تمییزتر، خواناتر، مدولار.
همواره یک دلیل خوب برای توجیه اینکه چرا یک تکه کد بد نوشته اید وجود دارد اما اینکه چرا برای اصلاح آن وقت نگذاشته اید را نمی توانید توجیه کنید.
بازنگری و اصلاح کدها چالش برانگیز بوده و شامل یک فانکشن پیچیده میشود. اما رها کردن باگ ها و عدم تلاش برای حذف آنها شرایط را دشوارتر خواهد کرد. بنابراین برای پیداکردن اشتباهات خود وقت بگذارید زیرا در دراز مدت موجب صرفه جویی در وقت و کاهش استرس میشود.
اشتباه کنید
شکست خوردن راهی است برای پیشرفت بنابراین از اینکه بارها شکست بخورید نهراسید. اجتناب از انجام برخی اشتباهات غیرممکن است.
آیا تابحال شده در یک پروژه فانکشنی را پنج مرتبه بنویسید؟ از انجام چنین اشتباهاتی نترسید. چنین اشتباهاتی بارها رخ می دهند اما با گذشت زمان دفعات ارتکاب آنها کم تر و کم تر خواهد شد. هرگز نباید از یادگیری دست بردارید. خودتان را با آخرین تغییرات در فناوری وفق دهید. زیبایی کار شما در این است که هر روز از چیزهای جدید درسی جدید می گیرید.