حق های برنامه نویسی (قسمت دوم)

بعد از قسمت اول، و استقبال چشمگیری که از این مجموعه پست شد (به لایکها توجه کنید!) ما هم گفتیم بریم سراغ ادامه این جملات.مهمترین ویژگی یه برنامه اینه که آیا هدف کاربر رو برآورده میکنه یا نه؟ (تونی هور)ازونجایی که قرار نیست واسه دل خودمون برنامه بنویسیم و تازه بعید هم هست دراین حالت بهمون پول بدن، لازمه همیشه یه کاربر نهایی یا یوزر بیچاره هم درنظر داشته باشیم که قراره ازین برنامه استفاده کنه. خب، این که خیلی تابلوئه. اما واقعاً ما، چند درصد مواقعی که داریم روی یه پروژه کار میکنیم به کاربر برنامه هم فکر می‌کنیم؟ یا حتی مهمتر ازون موقع انتخاب یه شرکت برای شروع کار..طبیعتاً یکی از مهمترین عواملی که میتونه توی انگیزه دادن به ما برنامه نویسا نقش مثبت داشته باشه همین هدف برنامه س. اینکه خروجی اون چقدر داره بازخورد مثبت میگیره، برای چه کاربری داره نوشته میشه و چندتا یوزر داره؟و اینکه، آیا ما صرفا یه پیاده کننده خواسته های مدیر تولید هستیم یا دوست داریم تاثیر مثبتی روی خروجی برنامه بزاریم؟به نظرم فکر کردن به این موضوع و درک بیشتر خروجی نهایی کاربر هم توی نحوه کار کردن ما و هم توی میزان لذتی که از کارمون می‌بریم به شدت مؤثره.یکی از مفیدترین روزهام وقتی بود که 1000 خط کد رو پاک کردم (کن تامپسون)1000 خط؟ مگه داریم! اگرچه ما نمیدونیم استاد کل 1000 خط رو توی یه لحظه پاک کرده (و احتمالا روی کیبورد خوابش برده) یا به مرور. ولی هرچی که هست حتی فکر کردن به حذف این همه کد به درد نخور لذت بخشه. خب قبلا هم درمورد اهمیت این کار گفتیم و میدونیم جز اینکه خوانایی برنامه رو بالا میبره، روی عملکرد، سرعت و کلی پارامتر دیگه هم تاثیر داره. ضمنا موقع پاک کردن کدها، حتما یه لیوان آب قند هم بزارید بغل دستتون.نمیشه بدون یه تیم عالی، یه نرم افزار عالی داشته باشید (جیم مک کارتی)آقا تیمِ خوب، همه چیزه. تیم که خوب باشه از توش پول خوب درمیاد، از توش زن و زندگی درمیاد (مخصوصا برنامه نویس جماعت) و اطلاعات و دانش و هرچی که باید زودتر توی این کار یاد بگیریم. اینا همه مال تیم خوبه. و شاید با من موافق باشید که گاهی آدم باید خیلی خوش شانس باشه تا یه تیم خوب گیرش بیاد.اینه که من میگم تا میشه سعی کنیم توی انتخاب اون گروه و شرکت و پروژه حساسیت به خرج بدیم و بعد واردش بشیم، چرا که یهو میریم توی یه تیم / شرکت و همینطوری زرتی یکسال یا بیشتر از عمرمون رو اونجا میگذرونیم، بی اینکه بدونیم میتونستیم تو چه جای بهتری باشیم. و این خیلی روی مسیر کلی کارمون هم تاثیر میزاره.هیچ وقت نمی‌تونید بفهمید یه برنامه نویس داره چیکار میکنه تا اینکه دیگه خیلی دیر شده (سیمور کری)این جمله رو هر مدیری باید قاب کنه بزنه رو دیوار اتاقش. نه؟ و واقعاً چه توصیفی کاملتر از این برای برنامه نویس جماعت؟ که حتی بعد 20 سال هم نمیشه به طور کامل اونا رو شناخت و پیش بینی کرد.اصلاً برنامه نویس جماعت ازون دسته موجوداتیه که حتی توی سنگین ترین بازجویی ها و سخت ترین شکنجه ها لب از لب باز نمیکنه تا یا گندِ کارش دربیاد و مجبورت کنه خودتو آتیش بزنی یا بزنه چارتا فیچر خفن رو یهو از تو آستین دربیاره و تو رو در بهت، حیرت و سکوت، رها کنه.و لابد این رو هم شنیدید که این جماعت، شباهت غیرقابل انکاری به قاتلهای زنجیره ای هم داره و به نظرم خداروشکر که هنوز پاشون به خلاف باز نشده!منم همیشه دوست داشتم نظر بقیه رو درمورد این جمله بدونم و اساساً بفهمم ریشه این رفتارای حرص دربیار ما برنامه نویسا چیه؟ هوم؟سادگی یه برنامه یکی از شرایط قابل اطمینان بودنشه (ادسخر دیکسترا)میگن سادگی هرچیزی از دل میلیونها پیچیدگی دیگه درمیاد. یه تابلوی نقاشی به ظاهر ساده خبر از اوج مهارت یه نقاش باتجربه میده.یه داستان خیلی روون، دلنشین و ساده، نشون دهنده تسلط بسیار زیاد نویسنده به کارشه و توی برنامه ها هم، برنامه ای که به سادگی (از دید کاربر) خواسته هارو به انجام میرسونه و هدف کاربر رو برآورده میکنه، از دل هزاران خط کد تست شده و هزاران برنامه نویسِ له شده دراومده و انقدر خوشگل و سبک مقابل ماست.(یاد دیوار چین افتادم و دلم برای خودمون سوخت! میدونید که حین ساخت دیوار چین چندهزار کارگر اون وسط مُردن و لای دیوارها دفن شدن تا کار عقب نیفته. مثل کدهای پروژه ای که آدمهای قبلی زدن و رفتن و هیچ رد و نشونی از خودشون به جا نزاشتن، تا ما راحت روشون قدم بزاریم)پ. ن : استاد ادسخر با این اسم تو دل برو، یکی از شناخته شده ترین افراد حوزه کامپیوتره که تو هر کتاب تئوریکی اسمی ازش هست. از الگوریتم و ساختار داده تا رياضیات و..