شاید برای شما هم اتفاق افتاده باشد که شروع به یادگیری یک زبان برنامهنویسی کرده باشید و پس از مدتی در مورد اینکه به سطح مهارت مطلوبی رسیدهاید یا نه دچار تردید شده و از خود پرسیده باشید که «از کجا بدانم برنامهنویس خوبی هستم؟» یا اینکه «باید چه کار کنم تا به برنامهنویس خوبی تبدیل شوم؟» که در همین راستا در ادامه معیارها و مِتریکهایی را معرفی میکنیم که شما را در یافتن به سؤالات فوق یاری خواهند کرد.
مواردی مانند تجربیات شخصی، مطالعه، گذراندن دورههای مرتبط، همتیمی بودن با برنامهنویسان خوب و همچنین مشارکت در پروژههایهای اپنسورس میتوانند در تبدیل شدن شما به یک برنامهنویس خوب مؤثر باشند اما در نهایت اگر بخواهید پاسخ سؤال خود را بگیرید که آیا برنامهنویس خوبی هستید یا نه، یک معیار خیلی خوب در دسترس دارید که باید روی آن کار کنید و آن هم چیزی نیست جز اینکه ببینید آیا اساساً کدهای خوبی مینویسید؟
هر فانکشنی به این خاطر نوشته شده تا تَسکی را تکمیل نموده و به انجام برسانند و صرف نظر از میزان پیچیدگی تَسکهای مختلف، کدی خوب است که بتواند تَسک مورد نظر را به بهینهترین شکل ممکن انجام دهد. پس اگر میخواهید بدانید که کد خوبی نوشتهاید یا نه، باید از خود بپرسید که آیا فلان فانکشن شما را به اهداف مورد نظرتان میرساند یا خیر.
اگر با کدی که نوشتهاید به اهداف تعیینشدهٔ خود نرسیدید، هرگز نگران نباشید زیرا این مسئله درس خوبی به شما داده و نشان میدهد که کجا کمبود دارید و نیاز به یادگیری چه چیزهایی دارید اما در عین حال دقت داشته باشید که به انجام رساندن یک تَسک، تنها مشخصهٔ کدهای خوب نیست و اگر واقعاً میخواهید بدانید که کد خوبی نوشتهاید یا نه، باید به موارد زیر نیز دقت کنید:
آیا کد شما خوانایی کافی دارد؟
کدی خوب است که به صورت مختصر و مفید و به سادهترین شکل ممکن نوشته شده باشد که در این صورت، به راحتی برای دیگر دولوپرها قابلدرک بوده و به اصطلاح Readable است. به عنوان یک قانون کلی، سعی کنید کدهای طولانی ننویسید (مثلاً اگر میتوانید کاری را با یک خط کد انجام دهید، دلیلی برای طولانیتر کردن آن وجود ندارد.) موضوع دیگری که رعایت آن به افزایش خوانایی سورسکد کمک میکند، مستندسازی است به طوری که میبایست کدهای خود را مستند کنید و توضیح دهید که هر بخش از آن چه کاری انجام میدهد. پس به طور خلاصه، کدی خوانا است که ساده، کوتاه و مستند باشد.
آیا توسعهٔ کدهای شما آسان است؟
در دنیای واقعی همواره نیازها و شرایط در حال تغییر هستند به طوری که ممکن است کد خوبی بنویسید اما با تغییر شرایط و نیازها، کد نوشته شده دیگر مناسب شرایط جدید نبوده و نیاز به تغییر داشته باشد. برنامهنویس خوب همیشه آیندهنگر بوده و به تغییر و تحولات بعدی نیز فکر میکند و از همین روی کدهای خود را همواره به نحوی بنویسید که توسعه و تغییر آنها آسان باشد.
آیا کدهای شما از لحاظ پرفورمنسی خوب هستند؟
پرفورمنس (بهرهوری) از چند جزء مختلف تشکیل شده که عبارتند از سرعت اجرا، میزان استفاده از منابع سختافزاری و غیره. در مورد اکثر زبان برنامهنویسی، ابزارهایی برای بررسی این موارد وجود دارد که باید سعی کنید با آنها آشنا شده و در زمان و مکان مناسب مورد استفاده قرار دهید و ببینید که به چه شکل میتوانید پرفورمنس کدهای خود را افزایش دهید.
آیا در کد نوشتن سریع هستید؟
هنگامی که به تازگی یادگیری زبانی را شروع کردهاید، سرعت کدنویسی اهمیت زیادی ندارد چرا که در این مرحله مهم این است تا مفاهیم را بیاموزید و با ساختار و کاربرد هر کد آشنا شده و با استفاده از آن بتوانید مسائل را حل کنید اما پس از اینکه به قدر کافی مهارت کسب نمودید تا بتوانید مسائل را حل نموده، بهرهوری و خوانایی را رعایت نموده و کدی بنویسید که توسعه و تغییر آن آسان باشد، آنگاه نوبت به تمرین سرعت میرسد به طوری که باید سعی کنید همهٔ این موارد را در مدت زمان کوتاهتری انجام دهید. در واقع، با مدیریت زمان خود در مورد انجام تَسکهای مختلف، خودکار نمودن تستها و استفاده از ابزارهای مناسب قادر خواهید بود که تا حد زیادی بر سرعت کدنویسی خود بیفزایید.
نتیجهگیری
نکتهٔ پایانی اینکه اگر با چند دولوپر دیگر به صورت تیمی کد میزنید، دقت داشته باشید که علاوه بر رعایت همهٔ موارد گفته شده، باید خود را با اصول کار تیمی نیز هماهنگ کنید تا بتوانید به یک برنامهنویس خوب تبدیل شوید. بدیهی است که رعایت این موارد پایان راه نیست و پیشرفت و کسب مهارت، موضوعی است که همواره و هر روز باید به آن پرداخت.
در مواردی که در این مقاله مطرح شد، مهارت خود را چگونه ارزیابی میکنید و به نظر شما یک برنامهنویس خوب چه مهارتهای دیگری باید داشته باشد و چه نکاتی را میبایست رعایت کند؟ نظرات، دیدگاهها و تجربیات خود را با سایر کاربران سکان به اشتراک بگذارید.