امروز داشتم توی تلگرام داخل یکی از کانال های برنامه نویسی یه سری مطلب میخوندم که یک مقاله ی خیلی جذاب دیدم.
برای من همیشه سوال شده بود که فرق یه شخصی که 5 سال سابقه کار داره با منی که تقریبا 1 سال سابقه کار دارم چی هست. ولی خب خیلی پیگیرش نبودم با خودم میگفتم وقتی 5 سال سابقه کار رو کسب کردم میفهمم! اما امروز یه مقاله ای دیدم که به قلم آقای حسین دادخواه نوشته شده بود، بنده ایشون رو نمیشناسم اما به نظرم مقاله ی خیلی جذابی بود.
ایشون اومده بود و از زبون خفن ترین برنامه نویسان و مدرسان برنامه نویس دنیا پاسخ سوال سنیور کی هست رو جمع آوری کرده بود. و خب تقریبا میشه گفت که پاسخ این سوال رو من گرفتم. امیدوارم شماهم این پاسخ رو بگیرید و در راستای صیقل دادن مهارت های تخصصی و مهارت های نرمتون تلاش کنید.
حل مسئله براش یه بازیه: مارتین فاولر میگه یه سنیور باید بتونه مشکلات پیچیده رو قشنگ تحلیل کنه و راهحلهایی بده که نه تنها جواب بده، بلکه بعداً هم دردسر درست نکنه.
یادگیری براش آب خوردنه: اندرو هانت و دیوید توماس تو کتاب "The Pragmatic Programmer" تاکید میکنن که یه سنیور همیشه در حال یادگیریه و با سرعت میتونه تکنولوژیهای جدید رو بگیره و تو کارش پیاده کنه. اصطلاحا میگن باید learning curve پایین باشه
به "نمیشه" اعتقادی نداره: باب مارتین میگه یه سنیور به جای اینکه بگه "نمیشه"، باید بیاد بگه "چقدر هزینه داره" و راههای مختلف رو ارائه بده، حتی اگه گرون دربیاد.
کدی که میزنه مثل جواهر میدرخشه (و تست شده است): کنت بک، پدر TDD، میگه که تست کردن کد از مهمترین بخشهای کاره. یه سنیور باید کدی بزنه که به طور کامل تست شده و هیچ خطایی توش نباشه. یه عده معتقدن که تست کار سنیور نیست! ای خدا !!!
حرفاش پایه و اساس داره، نه از روی حدس و گمان: استیو مککانل تو کتاب "Code Complete" میگه تصمیمات یه سنیور باید بر اساس تجربه و داده باشه، نه از روی حدس. این باعث میشه که هم تیمیها و هم مشتریها بهش اعتماد کنن.
استراتژی رو توی خونش داره: وارن برگر توی کتاب "A More Beautiful Question" میگه یه سنیور باید تصویر کلی رو ببینه و با تفکر استراتژیک تصمیمات بلندمدت بگیره.
دنبال مقصر نمیگرده، دنبال راه حله: کن بلانچارد تو کتاب "The One Minute Manager" میگه یه سنیور به جای اینکه بگرده ببینه کی اشتباه کرده، دنبال راه حل میگرده. این طوری فرهنگ همکاری و اعتماد تو تیم قوی میشه.
قابل اعتماده: لینوس توروالدز، خالق لینوکس ، میگه که اعتماد یکی از مهمترین ویژگیهای یه سنیوره. سنیور باید بتونه با کیفیت کار و رفتار حرفهایش اعتماد دیگران رو جلب کنه.
زمان رو خوب مدیریت میکنه: استیون کاوی، نویسنده "7 عادت افراد بسیار مؤثر"، میگه: "اولویتها رو اولویتبندی کنید." یه سنیور باید بتونه زمانش رو خوب مدیریت کنه و کارای مهمتر رو تشخیص بده تا پروژهها به موقع و با کیفیت تحویل داده بشن.
انعطافپذیره: جیمز گوسلینگ، خالق جاوا ، میگه: "تغییرات دائمی هستن و نرمافزار باید باهاشون سازگار باشه." یه سنیور باید همیشه آماده تغییر باشه و با شرایط جدید کنار بیاد.
تفکر انتقادی داره و تحلیلگره: ریچارد استالمن، بنیانگذار نرمافزار آزاد ، میگه: "هر تصمیمی تو نرم افزار باید با دقت و تحلیل کامل گرفته بشه." یه سنیور باید بتونه مسائل رو تحلیل کنه و بهترین تصمیمات رو بگیره.
همیشه دنبال کیفیت و بهتر شدنه: ادوارد دمینگ، پیشگام مدیریت کیفیت، میگه: "کیفیت نتیجه تلاش مداوم و بهبوده." یه سنیور همیشه دنبال اینه که کیفیت کد و فرآیندها رو بالا ببره و به تیم کمک کنه تا بهترین خودشون باشن.
دید کلی به پروژه داره: اریک ریموند، یکی از نویسندگان "The Cathedral and the Bazaar"، میگه: "نگاه از بالا به پروژه بهتون کمک میکنه بفهمین هر تصمیم چطور بر کل سیستم تأثیر میذاره." یه سنیور باید دید کلی داشته باشه تا تصمیمات استراتژیک بگیره و پروژه رو به موفقیت برسونه.