برنامهنویسی دلی! – بخش دو
فیلم «پیدا کردن فارستر» (Finding Forrester) به داستان آشنایی یک رماننویس معروف، برندهی جایزه پولیتزر و البته منزوی به نام ویلیام فارستر (با بازی شان کانری) و یک نوجوان دبیرستانی به نام جمال میپردازد. فارستر پس از آن که پی میبرد جمال برای پذیرفته شدن در کالج نیاز دارد متنی ادبی بنویسد، تصمیم میگیرد به […]
برنامهنویسی دلی! – بخش یک
پیشگفتار یک: نگاه ریاضیگونه و نگاه مهندسیگونه به برنامهنویسی به گذشته که نگاه میکنم میبینم که آموزش برنامهنویسی همراه بوده با نوعی نگاه که بیشباهت به حل مسالههای ریاضی یا فیزیک نیست. نوعی نگاه حذف جزییات در ابتدا و اضافه کردن جزییات در ادامه. برای نمونه در نگاه ریاضیگونه به برنامهنویسی شما ابتدا باید ساختار […]
قوانین نرمافزار: قانون هایروم (Hyrum’s Law)
طی چند سال گذشته و به دلیل همکاریام برای انتقال (migration) زیرساختهای سطح پایین یکی از پیچیدهترین سیستمهای نرمافزاری روی کرهی خاکی به نکات مهمی دربارهی تفاوت بین رابط (interface) و پیادهسازی آن (implementation) برخورد کردهام. معمولن ما رابط (interface) را تجریدی (abstraction) برای ارتباط با سیستم میدانیم و پیادهسازی (implementation) را هم روشی میدانیم […]
چگونه برنامهنویس خوبی شوم
پرسش: چه چیزی از یک برنامهنویس، یک برنامهنویس «خوب» میسازه؟ کنت بک: پاسخ این پرسش راحته. «خودت باش» (Be Yourself). تنها یه بازی [چالش] در کل دنیا وجود داره و اون هم اینه:«تمام تلاشت رو بکن» (Do Your Best). ورزش، کار، روابط انسانی فقط سایههایی از همین «یه بازی»اند. برنامهنویسی هم همین طور. سوال اینه […]
برنامه نویس کاردرست
اگه از من بپرسید برنامهنویس کاردرست کیست خواهم گفت «برنامهنویس خوبی که عادتهای ممتازی دارد». این جمله برگرفته از سخن کنت بک (Kent Beck) دربارهی خودش است: «من برنامهنویس ممتازی نیستم. من برنامهنویس خوبی هستم که عادتهای ممتازی دارم» “I’m not a great programmer; I’m just a good programmer with great habits.” برای من این […]
پیشنهاد کتاب: معماری نرمافزار
پیشگفتار:زمانی که ما مدرسه میرفتیم منابع یادگیری که مهمترین آن کتاب بود بسیار محدود بود. یادم میآید مادرم از پسانداز خانواده مبلغی که در آن زمان و با آن شرایط، مبلغ واقعن زیادی بود به من داد تا با آن کتاب بخرم. من هم مجموعهی چند جلدی «به من بگو چرا« را از طریق پست […]
پوستهی بیشتر – تخممرغ کمتر
جان بنتلی (Jon Bentley) که ستونی با نام Programming Pearls در نشریه Communications of the ACM داشت در سال ۱۹۸۶ به برنامهنویسی ادیبانه (literate programming) علاقهمند شد و از دونالد کنوث (Donald Knuth) خواست تا به عنوان نویسندهی مهمان برنامهای با این شیوه بنویسد و از داگ مکلروی (Doug McIlroy) هم خواست نقدی بر برنامهنویسی […]