بهزاد شعبانی

توسعه دهنده پی‌اچ‌پی و لاراول

معیارهای برنامه‌نویس خوب

تابستون سال ۸۳ بود که شروع کردم به یادگیری php، و چون قبلا یه مقداری با C و ++C آشنا بودم، یادگیریش برام ساده بود و توی حدود دو ماه تا حدی به php مسلط شدم و شروع کردم به نوشتن یه‌پروژه کوچیک (یه اکستنشن برای phpbb). پروژه‌م توی کامیونیتی phpbb مورد استقبال قرار گرفت و کلی دانلود شد. از اون روز تا یکی دو سال بعدش، باورم شده بود که من برنامه نویس خیلی خوبیم تا اینکه پروژه‌ای بهم پیشنهاد شد و من با اعتماد به نفس پروژه رو قبول کردم ولی از پسش بر نیومدم. اونجا بود که فهمیدم صرفا تسلط داشتن روی سینتکس و مفاهیم پایه یه زبان برنامه‌نویسی، من رو یه برنامه نویس خوب نمی‌کنه، و فاکتورهای زیادی درش تاثیر گذارن. اما این فاکتور‌ها چیا هستن؟ چه چیزی باعث میشه یه برنامه‌نویس، برنامه‌نویس خوبی تلقی بشه؟ برای اینکه برنامه‌نویس خوبی بشیم و خوب بمونیم چه کارهایی باید انجام بدیم؟ سال‌ها به دنبال جواب این سوال‌ها بودم. توی اینترنت گشتم، از اساتیدم توی دانشگاه پرسیدم و هر سال جواب‌های بیشتری میگرفتم. نتیجه‌ای که گرفتم این بود که معیارهای یک برنامه‌نویس خوب دائما در حال تغییره و برای اینکه برنامه‌نویس خوبی باقی بمونی باید به روز باشی. ولی معیارهایی هستن که همیشه ثابت بودن، اون معیارها چین؟

معیارهای یک برنامه‌نویس خوب

همونطور که گفتم معیارهای زیادی برای برنامه‌نویس خوب بودن وجود داره و در مرور زمان این معیارها تغییر می‌کنن. می‌خوام براتون مهم‌ترین اونا رو بیان کنم.

۱- قدرت حل مساله

یکی از مهم‌ترین معیارها، قدرت درک و حل مساله‌ست. اینکه مساله رو به راحتی درک کنیم و بتونیم بهترین راه حل رو براش پیدا کنیم. برای اینکه بتونیم مسائل رو درک و حل کنیم، نیازه که به مسائل با دید باز نگاه کنیم و تمام جوانب و راه‌حل‌ها رو بسنجیم و با هم مقایسه کنیم، تا بتونیم بهترین روش ممکن رو انتخاب کنیم. سطح دانش و تجربه شخص، بهش کمک می‌کنه که دید بازتری نسبت به مساله داشته باشه. بنابرین برای تقویت قدرت حل مساله باید سطح دانش و تجربه رو بالا برد؛ و برای بالا بردن سطح دانش و تجربه باید تحقیق و مطالعه زیاد داشت. خوندن بلاگ‌های توسعه‌دهندگان با تجربه، اخبار و مقالات مربوطه می‌تونه به بالا بردن سطح دانش کمک کنه.

۲- اشتیاق به یادگیری

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

۳- تواضع و فروتنی

درسته! "تواضع و فروتنی" جز یکی از معیارهای برنامه‌نویس خوب هست. تجربه بهم ثابت کرده کسانی که بیشتر مدعی هستند و احساس می‌کنن بهترین برنامه‌نویس روی زمین هستن، چیزی تو چنته ندارن. معمولا بعد از گذشت یک تا چند سال از شروع به کار برنامه‌نویسی، این حس (کاذب) به فرد دست میده که از پس هر کار و پروژه‌ای بر میاد. این دوره‌ایه که تقریبا همه برنامه‌نویس‌ها تجربه‌ش کردن، همونطور که توی مقدمه اشاره کردم من هم این دوره رو تجربه کردم. نکته مهم اینه که به سرعت به خودمون بیایم و اون اعتماد به نفس کاذب رو از بین ببریم.

یکی از اساتیدم در دانشگاه بهم می‌گفت: "درخت هرچی بارش بیشتر باشه، شاخه‌هاش خمیده‌تر و به زمین نزدیک‌تره"

۴- تمیز کد نوشتن

اینکه تمیز کد نوشتن یعنی چی، بحث مفصلیه که جداگانه یه مقاله در موردش می‌نویسم. اما اگه بخوام خلاصه بگم، تمیز کد نوشتن، رعایت کردن یک سری قوانین هست. این قوانین شامل انتخاب نام مناسب و معنی‌دار برای متغیرها، کلاس‌ها و متدها و همچنین به کارگیری یک coding style و رعایت کردن اون در تمام کد هست.

برای اطلاعات بیشتر در مورد coding styleها این مقالات ویکی‌پدیا رو مطالعه کنید.

در مورد انتخاب Coding Style بهتره استایلی رو انتخاب کنید که کامیونیتی ازون استفاده می‌کنه.

معمولا هر فریم‌ورک php کدینگ استایل خودشون رو دارن.

اغلب فریم‌ورک‌ها و کامیونیتی php در حال حاضر از PSR-2 استفاده می‌کنن.

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md

۵- دنبال کردن کامیونیتی

مسلما هر زبان برنامه‌نویسی یه کامیونیتی داره. یه برنامه‌نویس خوب کامیونیتی زبانی که باهاش کار می‌کنه رو می‌شناسه، سعی می‌کنه با کامیونیتی هماهنگ باشه، قوانین و استاندارد‌هایی که در کامیونیتی مشخص میشه رو رعایت کنه. یکی از مزایای هماهنگ بودن با کامیونیتی اینه که، کامیونیتی کد شمارو راحت‌تر درک و قبول می‌کنه، و این به شما کمک می‌کنه، زودتر به نتیجه برسید. به عنوان مثال فرض کنید سوالی رو در stackoverflow پرسیدید، اگر نمونه کدی که همراه با سوال گذاشتید با کامیونیتی هماهنگ باشه کسانی که می‌خوان به سوالتون جواب بدن، زودتر و راحت‌تر کد رو درک می‌کنن و شما زودتر به جوابتون می‌رسید.

۶- قدرت رفع باگ و تست

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

۷- سرعت عمل

یکی دیگه از مهم‌ترین معیار‌ها سرعت عمل برنامه‌نویس هست. سرعت یه عامل مهم برای موفقیت یه استارت‌آپ یا هر پروژه‌ی دیگه، در محیط رقابتی فعلی‌ست. محیطی که یه برنامه‌نویس توش کار می‌کنه، محیطیه که دائما در حال تغییر و تحوله، و رقابت بسیار سخت و شدید هست. برای باقی موندن در این محیط رقابتی، باید در کوتاه‌ترین زمان یک ایده، عملیاتی بشه؛ که برای اینکار نیازه که برنامه‌نویسی که اون ایده رو پیاده می‌کنه سرعت عمل بالایی داشته باشه. در نتیجه سرعت تایپ، سرعت تفکر و تجربه نقش به سزایی در سرعت عمل یه برنامه‌نویس دارن.

۸- کار تیمی

برنامه‌نویس‌ها کمتر به تنهایی کار می‌کنن. نکته مهمی که یک تیم و در نتیجه اون یک پروژه رو موفق می‌کنه، هماهنگی و تعامل بین اعضای اون تیم هست. بنابرین برنامه‌نویس باید بتونه به سرعت با اعضای تیم خودش هماهنگ باشه و با اون‌ها تعامل داشته باشه.

جمع‌بندی

خب، در این مقاله سعی کردم مهمترین معیارهای یک برنامه‌نویس خوب، از دید خودم، رو بگم؛ مسلما معیارهای دیگه‌ای برای شناخت یک برنامه‌نویس خوب وجود داره، اگر فکر می‌کنید معیارهای مهم دیگه‌ای هست که من نگفتم اونا رو با من و بقیه به اشتراک بذارید.

comments powered by Disqus