شعار سال: «دعای جوشنکبیر در یکی از غزوات صدر اسلام از جانب جبرئیل بر پیامبر اسلام (ص) نازل شده است که صد بند داشته و هر بند حاوی ده اسماز اسماء خداوند متعال است به جز بند ۵۵که ۱۱اسم باریتعالی در آن آمده است؛ بنابراین، این دعا رویهمرفته حاوی ۱۰۰۱اسم خدای متعال است.» آنچه در این مقاله قصد داریم مورد بررسی قرار دهیم، برخی از این ۱۰۰۱صفت خداوند است که اگر یک دولوپرهم از آنها برخوردار گردد، وی خواهد توانست خود را یک سروگردن از سایر رقبا بالاتر نگاه دارد. آنچه مسلم است این کهقطعاً صفات الهی با صفات بندگانش قابلقیاس نبوده و بهقول سعدی «همه هرچه هستند از آن کمترند که با هستیش نام هستی برند» و آنچه در این مقاله ذکر خواهیم کرد فقط درعرض این صفات الهی استو درواقع حتی ذرهای در مقابل اقیانوس صفات کاملهٔ خداوندی نیستند.
یا ذا العهد و الوفاء / یا من وعده صدق
آنچه در میان برخی دولوپرهابهوضوح
دیده میشود، چیزی است تحتعنوان «بد قولی» البته این در حالی است که این
بدقولی که در رفتار برخی برنامهنویسان دیده میشود میتواند بهخاطر ماهیت حرفهٔ برنامهنویسی
باشد (گاهیاوقات پیش میآید که یک برنامهنویس به باگی میخورد که شاید روزها صرف
دیباگ کردنش کند).
اما بههرحال، ارزش یک برنامهنویس خوشقول بهمراتب بیشتر از یک برنامهنویس بدقول است؛ همانطور که از عنوان این آیتم مشخص است، یکی از صفات بارز خداوند متعال وفای به عهد است. اگر ما برنامهنویسان هم بتوانیم خود را مجهز به این صفت کمیاب و ارزشمند کنیم، بدون شک فرصتهای طلایی بیشماری درب خانهٔ ما را بهصدا در خواهند آورد (متأسفانه در میان برخی مدیران HR (منابع انسانی) شرکتهای آیتی، برنامهنویسان و دولوپرهابهعنوان پرسنلی بیتعهد، بدقول و غیرقابلاعتماد جا افتادهاند!)
یا موسع
یکی دیگر از اسماء خداوند موسع بهمعنی «وسعت بخش» است؛
یک دولوپر صرفاً نمیبایست فردی مصرفگرا بوده، پروژههای آماده را از گیتهاب
کلونکرده و کارش را راه
بیندازد. اگر دولوپری از این صفت بارز خداوند برخوردار گردد -یعنی بهمعنای واقعی
کلمه توسعهدهنده باشد- دیگر به خود اجازه نخواهد داد صرفاً مصرفکنندهٔ اسکریپتهای
دیگران باشد بلکه در توسعهٔ کدهای
دیگران، شرکت در پروژههای اپنسورسو … مشارکت خواهد
کرد.
یا نافع / یا باسط الیدین بالرحمه / یا من فضله عمیم
درست است که برنامهنویسییکی از
جذابترینحرفههای حالحاضر
دنیا است و درصورتی که فقط یک روز کل دولوپرهایدنیا
اعتصاب کنند کار دنیا مختل خواهد شد، اما برخی دولوپرهافقط فکر
میکنند که کار ایشان کدنویسی است و لاغیر! نافع بهمعنی «سود رسان» یکی
دیگر از اسماء خداوند است. شاید
بهنوعی این نام را بتوان به این شکل تفسیر کرد که خداوند متعال بدون هیچ چشمداشتی
به بندگان خود -اعم از مؤمن و کافر- سود میرساند.
ما هم نیاز داریم تا این فرهنگ را در جامعهٔ دولوپرهای ایرانی نهادینه کنیم که سود رسانی به کسانی که تازه پا بهاین عرصه گذاشتهاند و کمک کردن به کسانی که نیاز به یادگیری برنامهنویسیدارند میتواند تبعات چشمگیری در رونق نرمافزاری مملکت داشته باشد. دیری نمیپاید که نیاز به برنامهنویسهااز این هم بیشتر شده و این در حالی است که دانشگاهها صرفاً بخش کوچکی از این نیاز رو به رشد جامعه را تأمین میکنند لذا ضرورت برخورداری از صفت یا باسط الیدین بالرحمه بهمعنی «ای گشاده دو دست به رحمت» در جامعه دوچندان میگردد.
همانطور که از عنوان این آیتم مشخص است، یکی دیگر از صفات خداوند یا من فضله عمیم بهمعنی «ای که فضلش عمومی است» میباشد و بهنظر هم میرسد که دولوپرهایدیگر نقاط دنیا همچون اروپا و آمریکا بیش از دولوپرهایسایر نقاط جهان به این ویژگی متصف هستند چراکه بدون هیچ واهمهای، در جنبشهای اپنسورسمشارکت کرده و دانش خود را با سایرین بهاشتراک میگذارند.
یا ذا الحجه و البرهان
خداوند هیچ کاری را بدون دلیل نمیکند و بدون شکخداوند
مجهز به تفکر الگوریتمیک است و این در حالی است که یک دولوپر موفق هم می
بایست اینگونه باشد. بهعبارت
دیگر، دولوپر اصلاً اجازه ندارد کاری که پشت آن دلیل و برهانی منطقی نباشد انجام
دهد چراکه ممکن است اثرات سوء بسیاری یا برای خود دولوپر، یا برای مشتریاش و یا
برای نرمافزاری که نوشته داشته باشد.
فانکشنیکه یک دولوپر مینویسد میبایست اصولی باشد، فریمورکی که یک دولوپر استفاده میکند یا مهمتر از آن، نوع زبان برنامهنویسیکه توسعهدهنده استفاده میکند میبایست کاملاً منطبق بر منطق بوده و با نیازهای پروژه همخوانی داشته باشد.
برای روشنتر شدن این مسأله مثالی میزنیم؛ فرض کنیم که ما یک مشتری داریم که نیاز به یک سایت استاتیک برای شرکتش دارد تا صرفاً به معرفی شرکت و اطلاعات تماسش بپردازد.. برای چنین پروژهای، اصلاً نیازی نیست تا بااستفاده از زبان برنامهنویسیروبی و فریمورک Ruby on Rails اقدام به کدنویسی کنیم بلکه یک طراح سایت ساده هم میتواند این نیاز را مرتفع گرداند.
یا من هو قادر علی کل شیء / یا مهیمن
پیش از این در مورد خصوصیات یک Full Stack Developer یا
یک توسعهدهنده همه فن حریف مقالهای
جامع منتشر کردیم؛ بهطور خلاصه، یک Full Stack
Developer کسی است که صفت یا من هو قادر علی کل شیء بهمعنی «کسی
که بر هر کاری توانا است» در موردش صدق میکند.
واژگان هر کاری و توانا دارای معانی گستردهای هستند و آنچه مسلم است این که یک دولوپر با گسترشی که علم برنامهنویسیدارد نخواهد توانست تا مثلاً به ۲۰ زبان برنامهنویسیمطرح دنیا تسلط کامل پیدا کند. آنچه میتوان از این صفت خداوند متعال درس گرفت این است که فقط با دانستن اصول برنامهنویسینمی توان کارهای بزرگ کرد! مثلا اگر کسی صرفاً زبانهای اچتیامال و سیاساس را بلد باشد، نخواهد توانست برچسب وب دیزاینررا به خودبچسباند.
فرض کنیم کسی به کلیهٔ زبانهای سمت کلاینت مثل اچتیامال، سیاساس، جاوااسکریپت، فریمورک آنگولار جیاس، فریمورک بوتاسترپ و … مسلط است اما اصلاً حس زیباییشناسی ندارد؛ مسلماً چنین فردی همواره لنگ یک طراح گرافیک خواهد بود.باز هم فرض کنیم که کسی با اصول برنامهنویسیآشنا است اما هیچ چیزی در مورد پروتکلهای اینترنتی نمیداند؛ باز هم چنین فردی نخواهد توانست تا از خود نام و نشانی بهعنوان یک توسعهدهندهٔ حرفهای بهجا بگذارد.
پس نتیجه میگیریم که برنامهنویسهامیبایست دائماً درحال مطالعه و کسب دانش در زمینهٔ علوم جدید مرتبط با حوزهٔ کاری خود بودهو بهقول معروف، آدم همه فن حریفی باشند! و صفتی همچون مهیمن بهمعنی «مسلط بر هر چیز» در ایشان بارز باشد.
یا مهون یا مسهل
کدنویسی بکاند بهصورتاصولی
یک سوی قضیه است و ایجاد تجربهٔ کاربری
خوب برای کاربران نرمافزار هم چیز دیگری است! دو مورد از القاب خداوند در دعای جوشنکبیر
یا مهون بهمعنی «ای آسانکننده» و یا
مسهل بهمعنی «ای هموارکنندهٔ راهها» است.
امروزه راز موفقیت اکثر نرمافزارهایی که بهبازار عرضه میشوند را میتوان در حس
خوبی که کاربران آن نرمافزار میگیرندارزیابی
کرد. بهعبارت
دیگر، ما میبایست نرمافزاری در اختیار گروه مخاطب خود قرار دهیم که به سادهترین
شکل ممکن نیازهای ایشان را مرتفعگرداند.
این قضیه در مورد فروشگاههای آنلاین کاملاً صادق است؛ فرض کنید که شما قصد خرید یک کتاب آموزش اصول برنامهنویسیجاوا را از یک کتابفروشی آنلاین دارید؛ زمانی که قصد اضافه کردن کتاب به سبد خرید را دارید، سایت از شما میخواهد که ابتدا ثبت نام کنید. وقتی که روی لینک ثبت نام کلیک میکنید، با فرمی بلند بالا مواجه میشوید که در آن اطلاعاتی از قبیل نام و نامخانوادگی، ایمیل، آدرس، شماره همراه، تاریخ تولد، روش آشنایی و … را از شما میخواهد.
درواقع، کاری که دولوپر این فروشگاه کتاب آنلاین انجام داده این است که کار را برای شما دشوار ساخته است و این احتمال نیز وجود خواهد داشت که شما از خرید خود منصرف شوید! ما بهعنوان یک دولوپر، وظیفه داریم تا از صفت بارزی همچون مهون برخوردار گردیم تا از آن پس بتوانیم با سادهترین سبک ممکن، نیازهای کاربران خود را مرتفع سازیم.
یا من لم یهتک الستر
برخی مواقع آدم با گروهی از برنامهنویس هامواجه
میشود که دائماً سعی در تخریب سایر همکاران خوددارند؛
مثلاً اگر دولوپری به زبان برنامهنویسیجاوامسلط
است، بهخاطر محبوب بودن و قدرتمند بودن این زبان، به سایر برنامهنویسانبه دیدهٔ
حقارت مینگرد. بهعنوان مثال دیگری که امروزه بهکرات دیده میشود، کری خواندن
دولوپرهای پیاچپی و داتنت است که همدیگر را اصلاً قبول ندارند و این در حالی
است که هر کدام از این زبانها، میتواند کاربردهای خاص خود را داشته باشد.
اگر با یکی از این دولوپرهایی که در بالا برخی از خصوصیاتشان را برشمردیم مواجه شده باشید، مسلماً تجربه کردهاید که فقط کافی است که ایشان کمی از شما تجربهٔ بیشتری در کدنویسی داشته باشد که در این صورت اگر کدنویسی شما را کمی غیراصولی ببینند، شروع به تخریب شما میکند و در همین جا است که میبایست صفتی همچون یا من لم یهتک الستر بهمعنی «ای که پردهٔ کسی را ندری» را در خود نهادینه کنیم.
خیلی از مسلمانها دست به گناهان کبیرهای میزنند -که البته نگارندهٔ این مقاله هم اصلاً از این قاعده مستثنی نیست!- که اگر کسی متوجه آن شود، آبروی ما حسابی خواهد ریخت اما خداوند دست ما را رو نمیکند؛ سعی کنیم بهجای آنکه اگر باگی در یکی از نرمافزارهای یک دولوپر دیگر دیدیم شروع به تخریب وی کنیم، وی را از وجود باگ مطلع کرده و پیش از آنکه آبروی وی بریزد، باگ نرمافزارش رفع گردد.
شاهد این ادعا هم مشکل امنیت بانک ملت است که چند سالپیش فضای وب فارسی را تحتالشعاع خود قرار داد؛ بهطور خلاصه، این مشکل از اینجا ناشی شد که سایت بانک ملت یک یوآرال را در اختیار کاربر قرار میداد که حاوی پارامتری تحت عنوان SaleOrderId بهمعنی «شناسهٔ خرید» بود. حال اگر کاربری پیدا میشد و مقدار این پارامتر را تغییر می داد، میتوانست به تراکنشهای سایر مشتریان بانکهم دست یابد.
آیا اگر شما یکی از مشتریانبانک ملت بودید که دارای تراکنشهای میلیونی بهصورت روزانه بود، دوست میداشتید تا اطلاعات محرمانهٔ شما در معرض دید سایر کاربران قرار گیرد یا خیر؟ بهنظر میرسد اگر کسی که این باگ امنیتی را یافته، بهجای فاش کردن آن و گرفتن اسکرینشات و منتشر کردن در فضای وب، با دپارتمان انفورماتیک بانک ملت تماس میگرفت و ایشان را به این موضوع واقف میگردانید، صفت «ای که پردهٔ کسی را ندری» بیشتر در مورد وی صدق میکرد!
یا اسمع السامعین
Active Listening مهارتی است که شرکتهای حرفهای در کشورهای جهان اول
روی آموزش آن به پرسنل خود سرمایهگذاری میکنند. جملهٔ جالبی
وجود دارد با این مضمون که خداوند ما را با یک دهان و دو گوش آفریده است پس بههمین میزان میبایست از آنها
استفاده کنیم؛ بهعبارت دیگر، هر چقدر صحبت میکنیم، میبایست دوبرابر
آن گوش دهیم!
زمانی که دولوپرها در جلسات توجیهی با مشتریان شرکت میکنند، میبایست از صفتی همچون یا اسمع السامعین بهمعنی «ای شنواترین شنوایان» برخوردار گردند؛ گاهیاوقات وقتی که ما بهخوبی به نیازهای مشتریان گوش فرا نمیدهیم، این مسأله منجر به ایجاد سوءتفاهماتی در آینده خواهد شد. برای این منظور، توصیه میکنیم که با گوگل کردن (توجه داشته باشیم که اخیراً واژهٔ Google در زبان انگلیسی بهعنوان یک فعل درآمده و بهجای اصطلاحاً Search It in google.com به معنی «آن را با استفاده از موتور جستجوی گوگل سرچ کن»، از خود تکواژهٔ Google استفاده میشود) در ارتباط با مهارتهای Active Listening، قابلیت خوب گوش دادن را در خود ارتقاء دهیم و تحت هیچ عنوان و بدون گوش فرا دادن به نیازهای مشتریان، فرض را بر این نگذاریم که «حتماً نیازهای این مشتری هم شبیه به مشتری قبلی است.»
یا عماد من لا عماد له / یا مرشد من استرشده / یا نعم المجیب / یا دلیل
من لا دلیل له
ما تحت هیچ عنوان نمیبایست فکر کنیم که مخاطبین نرمافزارهای ما
تعدادی گیک هستند که بهخوبی با وب، آیتی و دنیای نرمافزار آشنایی دارند؛ بلکه
میبایست مبنا را بر این بگذاریم که مخاطبین خدمات و محصولات ما دارای حداقل دانش
استفاده از محصولات آیتی هستند. در اینجا است که نقش پشتیبانی مطرح شده و به صفتی
از خداوند تحتعنوان یا عماد من لا عماد له بهمعنی «ای پشتیبان کسی
که پشتیبان ندارد» نیاز پیدا خواهیم کرد.
فرض کنیم که ما در یک شرکت هاستینگ کار میکنیم و یک مشتری داریم حدوداً ۴۵ ساله که تکنوفوب است (بهطور کلی، منظور از فوبیا یعنی ترس و منظور از تکنوفوب، کسی است که با فناوری رابطه خوبی ندارد!) و این اولین باری است که قصد راهاندازی وبسایت شخصیاش را دارا است. رویکردی که معمولاً در جامعه دیده میشود این است که اپراتور این فرد را به آموزشهای قرار گرفته روی سایت، سرچ در گوگل و … سوق میدهد و این در حالی است که وی هرچه بیشتر در این زمینه به جستجو و مطالعه میپردازد، بیشتر سردرگم میشود. درعینحال، میتوان رویکردی همچون خداوند اتخاذ کرد که پشتیبان کسانی است که هیچ پشتیبانی ندارند؛ بهعبارت دیگر، تا حد ممکن به راهنمایی وی پرداخته و بهجای آنکه کارها را بهدوش این فرد میانسال بیندازیم، خود مسئولیت کانفیگ کردن، ست کردن دیاناس و … را برعهده گیریم.
این قضیه در مورد دولوپرها هم بهکرات دیده میشود به این صورت که بهمحض دریافت آخرین چک پروژهٔ خود، دست از پشتیبانی مشتری میکشند! توجه داشته باشیم که درحالحاضر، آنچه افراد یا شرکتهای تراز اول را از شرکتهای سطح پایینتر متمایز میسازد، توانایی ایشان در پشتیبانی خدمات یا محصولات خود است. ما دولوپرها اگر بتوانیم خود را به یا مرشد من استرشده بهمعنی «ای راهنمای کسی که از او راهنمایی جوید» و یا نعم المجیب بهمعنی «ای نیکو پاسخ ده» و یا دلیل من لا دلیل له بهمعنی «ای راهنمای آن که راهنمایی ندارد» همچون خداوند متعال تجهیز کنیم، مسلماً دارای تأثیرگذاری بیشتری در جامعهٔ آیتی خواهیم بود.
یا لطیف الصنع / یا من فعله لطیف /یا من خلق فسوی
حرفهٔ برنامهنویسیجزو مهارتهایی
است که دقت بسیار بالایی میطلبد و شاهد این ادعا هم آن که یک بیدقتی کوچک میتواند
هزینههای بسیار بالایی برای محصول، دولوپرها و یا کاربران محصول درپی داشته باشد؛
خداوند از اسمائی همچون یا لطیف الصنع و یا من لعله لطیف بهترتیب بهمعانی «ای
دقیق صنعت» و «ای که کارش دقیق است» برخوردار
است و بدون شک یک دولوپر حرفهای هم میبایست از چنین صفاتی برخوردار گردد.
شاید بتوان گفت یکی از دلایلی که کمتر شاهد نرمافزارهایی بودهایم که در سطح جهانی حرفی برای گفتن داشته باشند، عدم برخورداری از این دو صفت باشد. بهعبارت دیگر، بهکرات دیده میشود که نرمافزارهایی که بهبازار عرضه میشوند که نهتنها در بکاند آنها دقت زیادی بهکار گرفتهنشده، بلکه در ظاهر یا بهتر بگوییم فرانتاند آنها هم وسواس زیادی بهخرج داده نشده است و همین مسأله منجر میگردد که یک نرمافزار نتواند سهم بازار قابلتوجهی را بهخود اختصاص دهد.
یکی از صفات دیگر خداوند یا من خلق فسوی بهمعنی «ای که آفرید و بیاراست» است؛ یعنی خداوند در زمان آفرینش هستی، صرفاً به مقولهٔ آفرینش فکر نکرده بلکه آفرینش باکیفیت ملاک بوده است و شاهد چنین ادعایی هم آفرینش مناظر دلانگیز، انسانهای زیبا، حیوانات حیرتبرانگیز و … است. بهطور خلاصه، دولوپری که از صفت یا من خلق فسوی برخوردار باشد، کسی است که کدهایی که مینویسد بسیار خوانا و تمیز هستند، بهخوبی کامنتگذاری شدهاند، نامگذاری توابع و متغیرها کاملاً مرتبط است و درعینحال رابط کاربری نرمافزار ایشان نیز بسیار جذاب و کاربرپسند است.
یا جابر
خداوند جابر است یعنی چیزهای مختلف را بههم پیوند میدهد. یک دولوپر
موفق هم کسی است که جابر باشدگ به عبارتی، دولوپرهای موفق کسانی هستند که بتوانند
ماژولهای مختلف، اسکریپتهای مختلف، APIهای
مختلف را درجهت خلق یک نرمافزار کارآمد به یکدیگر ارتباط دهند و بهجای آنکه چرخ
را از نو اختراع کنند، از فناوریهای موجود در بازار در جهت منافع خود استفاده
کنند (البته حفظ حقوق معنوی را هم فراموش نکنیم).
یا من به یفتخر المحبون
در فرازی از دعای جوشنکبیر آمده یا من به یفتخر المحبون بهمعنی «ای
که دوستان به دوستیاش افتخار کنند» و بهنظر میرسد که اگر دولوپرها
هم از چنین صفتی برخوردار گردند، علاوه بر کار خود، میتوانند از زندگی شخصی خود
هم بیش از پیش لذت ببرند. ما بهجای آنکه به فردی دنبالهرو دیگران مبدل شویم و
سعی کنیم با دولوپرهای حرفهایتر از خود، وبمسترهای باسابقهتر از خود و برنامهنویسانمعروفتر
از خود طرح رفاقت بریزیم، سعی کنیم خود به کسی مبدل شویم که سایرین به دوستی با ما
افتخار کنند. بدون شک، تجربهٔ چنین
حسی بسیار خوشایند خواهد بود!
یا ابصر من کل بصیر/ یا اخبر من کل خبیر / یا حسن البلاء /یا ذا الفعل
الرشید
وقتی شما نرمافزاری را منتشر میکنید -بهخصوص اگر نرمافزار شما وب
اپلیکیشن و یا اپلیکیشنی باشد که بر بستر وب کار میکند- دیگر عنان نرمافزار از
دست شما خارج است لذا نیاز است تا فرض را بر این بگذارید که تعدادی هکر حرفهای
بیکار نشسته تا وب اپلیکیشن شما را هک کنند. در اینجا است که صفاتی همچون یا ابصر
من کل بصیر و یا اخبر من کل خبیر بهمعانی بهترتیب «ای بیناتر از هر
بینا» و «ای آگاهتر از هر آگاه» به
داد ما میرسند؛ درواقع، ما میبایست نقش یک هکر کلاه سفید را بازی کرده، حفرههای
امنیتی نرمافزار خود را یافته و همواره یک گام جلوتر از هکرهای کلاه سیاه باشیم!
تیر خلاص در این راستا، داشتن صفتی همچون یا حسن البلاء بهمعنی «ای نیک آزمایش» است که به ما کمک میکند تا نرمافزار خود را بهبهترین شکل آزمایش کرده و این زحمت را به دوش هکرهای باغرض نیندازیم! همانطور که در عنوان این آیتم اشاره شد، یکی دیگر از صفات خداوند یا ذا الفعل الرشید بهمعنی «ای صاحب کار مستحکم» است: دولوپر موفق کسی است، کارش را به حرفهایترین شکل ممکن انجام دهد.
یا رازق المقلین
بسیاری از دولوپرها سراسر دنیا را میبینیم که دانش خود را بهرایگان
در اختیار سایرین قرار میدهند؛ شاید یکی از دلایل این کار ایشان، حس نوعدوستیشان
باشد که ممکن است فکر کنند شاید فرد بااستعدادی باشد که بهخاطر عدم برخورداری از
شرایط مالی خوب، نتواند بهدنبال علاقهاش (برنامهنویسی) برود لذا بستری را فراهم
میکنند که این گروه از افراد صرفاً با دسترسی به یک اتصال اینترنت و یک لپتاپ،
بتوانند در حوزهٔ برنامهنویسیفعالیت
کنند.
خداوند هم این چنین است و صفتی همچون یا رازق المقلین بهمعنی «ای روزی ده ناداران» بهخوبی برازنده ذات احدیت است؛ اگر ما دولوپرها هم بتوانیم از چنین صفتی برخوردار گردیم و بدون چشمداشت مالی، دانش خود را در اختیار سایر همنوعان خود قرار دهیم، خواهیم توانست تازه همچون کشورهای -بهقول برخی آقایان بلاد کفر- مثلاً آمریکا شده و حس نوعدوستی را در جامعه ترویج دهیم.
یا من اله المثل الاعلی
اگر ترجمهٔ فارسی قرآن را
خوانده باشید، خواهید یافت که در آیات مختلف قرآن مثالها و داستانهای فراوانی
آورده شده و این هم بهخاطر متصف بودن خداوند متعال به صفت یا من اله المثل الاعلی
بهمعنی «ای که از آن اوست عالیترین مثالها» است؛
اگر شما دولوپری هستید که قصد آموزش اصول برنامهنویسیرا به
یک فرد مبتدی دارید، بهجای استفاده از Jargon یا
بهتر بگوییم «اصطلاحات فنی» حوزهٔ برنامهنویسی،
بهتر آن است که از مثالهای روزمرهای که افراد با آنها درگیر هستند استفاده کنید
که بدون شک افراد مبتدی با این سبک آموزش، بهتر متوجه اسلوب برنامهنویسیمیشوند
(در دورهٔ آموزش
زبان برنامهنویسی جاوا در
سکان آکادمی، سعی کردهایم چنین ادعایی را پیادهسازی کنیم).
برای روشنتر شدن این مسأله مثالی می زنیم. نیکان پوره -مدرس نوجوان دورهٔ آموزش زبان اسکرچبه کوکاندر سکان آکادمی- زمانی که خواست دستورات شرطی را به مخاطبین دورهٔ آموزش برنامهنویسیاسکرچ انتقال دهد، سعی کرد وارد زندگی روزمرهٔ مخاطبین شده و مثالی برای ایشان بیاورد که این مفهوم بهخوبی در ذهن ایشان جا بیافتد. مثالی که نیکان زد این بود که:
فرض کنیم مامانتون بتون میگه اگر در کارنامهات همهٔ نمرههات ۲۰ باشه، برات یک تبلت میخرم و در غیر این صورت، خبری از تبلت مبلت نیستها!
و به این شکل بود که نیکان این داستان را به دستورات شرطی if در برنامهنویسیربط داد.
یا صبور / یا شدید
در فرازهایی از دعای جوشن کبیر، از خداوند متعال به عنوان یا صبور و یا
شدید به معنی «ای شکیبا» و «ای سخت نیرو» یاد
میشود؛ بدون تعارف بایستی بگوییم که برنامهنویسیکار دشواری
است و اگر زمانی که در این حوزه پا میگذاریم، صبر و پشت کار نداشته باشیم، بعید
بهنظر میرسد که بتوان به موفقیتهای چشمگیری در این حوزه دست یابیم.
یا سریع
بهنظر میرسد که خداوند هم در کارهایش از متودولوژی Agile یا «چابک» استفاده
میکند که در دعای جوشنکبیر از خداوند بهعنوان یا سریع بهمعنی «ای
سریع در کارها» یاد میشود؛ درواقع، یکی از قوانین دوازدهگانهٔ اجایل،
تحویل سریع پروژه به مشتری است. چنانچه ما -بهعنوان یک دولوپر- از چنین ویژگیای
برخوردار باشیم، همین مسأله منجر به رضایتمندی بیشتر مشتریانمان خواهد شد.
یا ملهم العرب و العجم
زمانی که دوره آموزش زبان برنامهنویسیجاوا را
برای انتشار در سایت نردبان تألیف میکردیم، کتابی تحتعنوان Beginning Programming with Java For Dummies نوشته
دکتر Barry Burd را
بهعنوان رفرنس استفاده میکردیم که ایشان استاد دانشگاه ایلینویز آمریکا است. پس
از آنکه در جایی از درک کتاب به مشکل برخوردیم، یک ایمیل برای ایشان ارسال کردیم
و جالب است بدانید که ظرف مدت چند ساعت کاری، ایشان ایمیل را به بهترین شکل ممکن
پاسخ داد و این در حالی بود که ایشان بهطور حتم میدانست کسی که برایش این ایمیل
را ارسال کرده از کشور تحریم شدهٔایران است!
یکی از صفات خداوند متعال یا ملهم العرب و العجم بهمعنی «ای الهام بخش عرب و عجم» است؛ یعنی خداوند فارغ از این که عرب باشیم یا نباشیم، لطف خود را به سوی ما سرازیر میکند و این در حالی است که دکتر Barry Burd بهخوبی این صفت بارز خداوند را درک کرده و در راه تولید علم اصلاً برایش فرقی نمیکند که یک ایرانی به کمک وی نیاز دارد یا یک هموطن آمریکاییاش!
سؤالی که در اینجا به ذهن میرسد اینکه تا بهحال چند بار برای مدیران سایتهای معمولی ایرانی (اگر نگوییم درپیت) ایمیل ارسال کردهاید و پس از گذشت چند ماه -اگر نگوییم چند سال- کماکان منتظر پاسخ ایمیل خود هستید و این در حالی هست که هم ما و هم مدیر آن سایت هر دو هموطن هستیم؟
یا من جعل لکل شیئ امدا
وقتی میگوییم که خداوند از صفت یا من جعل لکل شیئ امدا برخوردار است،
این بدان معنا است که «ذات احدیت برای هرکاری و هرچیزی مدت و دورانی یا به
عبارتی یک Deadline قرار
داده است». در دنیای برنامهنویسیهم قضیه
کاملاً بههمین صورت است. درواقع، هر پروژه میبایست دارای یک تاریخ شروع و پایان
باشد و درصورتی که ما Deadline یا
ضربالعجل پروژه را رعایت نکنیم، شاید رقبا ایده ما را بهنوعی بهتر از ما عملی
کرده و گوی سبقت را از ما بربایند.
بهنظر میرسد دولوپری را میتوان بهعنوان یک دولوپر موفق قلمداد کرد که کارش دارای برنامه باشد، برای کدنویسی بخشهای مختلف پروژهٔ خود زمان تعیین کرده و تمام تلاش خود را به کار میبندد تا پروژهٔ خود را بهموقع تحویل دهد.
یا ینقص من خزائنه شیئ
لینوس تروالدز خالق کرنللینوکس
است؛ او هم میتوانست همچون سیاستی که مایکروسافت درپیش گرفته بود، اعتقاد به
فلسفهٔ اپنسورسنداشته
باشد و کلیهٔ حقوق کرنل لینوکس
را برای خود محفوظ نگاه دارد اما بهنظر میرسد که اعتقاد به جنبش اپنسورسبود که
منجر به موفقیت حیرت برانگیز سیستمعامل گنو/لینوکس که مبتنی بر کرنل لینوکس است
نسبت به رقبا شد (لازم به ذکر است که اکثر سایتهای دنیا، روی هاستهایی با یکی از
توزیعهای سیستمعامل گنو/لینوکس میزبانی میشوند).
یکی از صفات خداوند متعال صفت یا ینقص من خزائنه شیئ بهمعنی «ای که کم نشود از گنجینههایش چیزی» است؛ دولوپرها اصلاً نمیبایست از این بابت واهمه داشته باشند که اگر دانش خود را با دیگران بهاشتراک بگذارند، چیزی را از دست خواهند داد بلکه برعکس، با اشتراکگذاری دانش و تواناییهای خود، بستری برای رشد بیشتر خود ما فراهم خواهد شد (البته لازم بهذکر است که در سالهای اخیر غول نرمافزاری دنیا -مایکروسافت- هم به حوزهٔ اپنسورس علاقمند شده است).
یا من کتابه محکم
اگر واژهٔ کتاب را در این
اسم خداوند به همان کتاب قرآن کریم تفسیر کنیم، نیاز به توضیح ندارد که پایه و
اساس کتاب قرآن محکم است؛ یک دولوپر موفق، کسی است که Documentation یا اسناد مرتبط با پروژهای خللناپذیر و
قابلاستناد ایجاد کند. بهعبارت دیگر، همواره اینگونه فرض کنید که ممکن است شما
به دلایل مختلفی (همچون قطع همکاری، مشکلات شخصی، مرگ و …) دیگر
نمیتوانید روی پروژهای کار کنید. حال
اگر پروژهٔ شما بهخوبی مستند
شده باشد و کلیهٔ سورسکدهایشما
کامنتگذاری شده باشند، دولوپر دیگری که شروع به توسعهٔ پروژهٔ شما
میکند، بدون هیچگونه سردرگمی خواهد توانست کار خود را بهپیش برد و در غیر اینصورت،
حتی ممکن است مجبور شود که پروژه را از ابتدا بازنویسی کند!
یا من لا یمنعه فعل عن فعل
خدا دارای صفتی تحتعنوان یا من لا یمنعه فعال عن فعل بهمعنی «ای
که بازش ندارد کاری از کاری دیگر» است؛ در تفسیر این صفت، خیلی ساده
میتوان دعا کردن بندگان را مدنظر قرار داد. چگونه میشود که خداوند در آن واحد میتواند
به دعای تمامی بندگانش گوش فرا دهد (چنین قابلیتی در برنامهنویسیConcurrency نامیده میشود).
یک دولوپر خوب هم نمیبایست وقتی در آن واحد روی چندین پروژه کار میکند، سردرگم شده و از مدیریت خوبهمهٔ پروژهها ناتوان گردد. اگر ما هم همچون خداوند از چنین صفتی برخوردار گردیم، آن وقت است که خواهیم توانست در آن واحد چندین مشتری را راضی نگاه داشته و بهصورت همزمان روی چندین پروژه کار کنیم.
یا من لا یبرمه الحاح الملحین
سروکله زدن با مشتریهای پروژههای برنامهنویسیکار بسیار
دشواری است و این دشواری زمانی دوچندان میشود که مخاطب شما چیزی از آیتی، توسعهٔ نرمافزارو دیگر
حوزههای مربوطه نداند (بهعبارتی، تکنوفوب باشد). در اینجا است که نیاز
داریمبه صفتی از خداوند
چنگ زنیم تحتعنوان یا من لا یبرمه الحاح الملحین بهمعنی «ای که به ستوهش نیاورد
پافشاری اصرار ورزان». خیلی از مشتریهای پروژههای نرمافزاری هستند که
امروز فیچری را سفارش میدهند و ما هم باکلی دردسر آنرا پیادهسازی میکنیم اما
فردا روزی نظرشان عوض میشود و فیچری که شفارش داده بودند را دستخوش تغییر میسازند!
گرچه چنین رفتاری بهنوعی غیرحرفهای است، اما بههرحال بهمنظور ایجاد یک تجربهٔ کاربری خوب چارهای جز این نیست تا آنقدر نرمافزار را پایین و بالا کرده تا درنهایت به آن چیزی که مطلوب کاربرانش است دست یابیم و اینجا است که باید به صفتی همچونیا من لا یبرمه الحاح الملحین چنگ زنیم که در غیر اینصورت، با مشتریان خود درگیر خواهیم شد.
سایت شعار سال، با اندکی تلخیص و اضافات برگرفته از وبسایت سکان آکادمی، تاریخ انتشار 5 تیر 95 ، کد مطلب: 313:www.sokanacademy.com