چرا باید بنویسیم؟

programming-in-a-poetic-way

تا به حال چند کلمه کد نوشته‌اید؟ می‌توانید حساب کنید؟ اگر توانستید، با تعداد کلمه‌های بلندترین رمان نوشته شده به دست بشر(۱) مقایسه‌اش کنید: نه میلیون و ششصد هزار کلمه با احتساب فاصله‌ها. خب بله. خیلی زیاد است. اما واقعاً خیلی زیاد نیست. اگر همین الان کدنویسی را شروع کنید تا چند سال دیگر از این عدد خیلی جلو می‌زنید. پس شاید بشود با کمی تواضع خودمان را پرکارترین نویسندگان تاریخ بدانیم (البته شاید هیچوقت به آسیموف نرسیم).

اما روی دیگر سکه را هم نگاه کنید. تا به حال چند هزار خط کد نوشته‌اید و بعد محصول نهایی‌تان را باد هوا با خودش برده است؟ چند هزار خط کد را نصفه و نیمه رها کرده‌اید؟ روی دیگر سکه این است: آیا تمام مهارت کدنویسی شما، تمام آن چند میلیون خط کدی که می‌نویسید، بدون وجود محصول نهایی و (مهمتر از آن) بدون اینکه کسی آن را ببیند به درد می‌خورد؟

جواب البته که منفی است.

جوئل اسپالسکی (با نقل به مضمون) گفته بود:

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

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

این تنها راه است. اگر می‌خواهید برنامه‌نویس (یا بگذارید بگویم توسعه‌دهنده‌ی) خوبی شوید، اگر می‌خواهید کاری که می‌کنید، محصولی که تولید می‌کنید، خوب و قابل استفاده باشد، باید بتوانید بنویسید. وبلاگ بسازید، تست بنویسید، کامنت بگذارید، Lesson learned ها را در بیاورید و نوشته‌های برنامه‌نویسان مرشدتان را دنبال کنید (حتی لازم نیست کد آنها را بخوانید، همان وبلاگ‌شان شگفت‌زده‌تان می‌کند) و در آخر یادتان باشد که جف آتوود فقید نوشته بود:

بیشتر وقت‌تان را به حرف زدن با آدم‌ها بگذرانید، تا حرف زدن با کامپایلر.

  1. در جستجوی زمان از دست‌رفته – مارسل پروست

از سال ۸۵ برنامه‌نویسی را با نوشتن یک بازی ساده با ++C شروع کرد. به زبان PHP مسلط است و با سیستم‌های مدیریت محتوای زیادی مثل دروپال، وردپرس، بیتریکس و مجنتو آشنایی دارد. درحال حاضر در سارینا با Magento، Laravel و Ruby on Rails کار می‌کند. عاشق سرک کشیدن در تکنولوژی‌های جدید، خواندن کتاب و موسیقی راک است.