دکترای کامپیوتر - پدر رباتها :)
داستان یک باگ! چرا عاشق مهندسی شدم؟
داستان زندگی خیلی از ما از یک انشا شروع شده، سوم دبستان: میخواهید در آینده چه کاره شوید؟ جواب من با بقیه متفاوت و روشن بود: مهندس الکترونیک! نه تا حالا مهندس الکترونیکی از نزدیک دیده بودم نه حتی میدانستم مهندسهای الکترونیک اصلا چکار میکنند. فقط میدانستم کسی که این تلویزیون را درست کرده حتما بعد از ساختنش خیلی لذت برده! این تمام چیزی بود که من میخواستم.
هنگام انتخاب رشتهی کنکور هم فقط مهندسی برق! برق فلان شهرستان را ترجیح میدام به دیگر رشتههای شریف. این انتخاب به هیییچ وجه تحت تاثیر جو کنکوریها برای رفتن به مهندسی برق نبود. هنوز هم نمیدانستم دقیقا برق چیست اما نشناخته عاشقش بودم. آخرش هم سر از الکترونیک بهشتی در آوردم.
ترم یک و دوی کارشناسی همه ش دنبال این بودم که این برق کجاست؟ چرا من پیداش نمیکنم؟ زمان ما توی مدارس، کلاسهای رباتیک و الکترونیک مثل الان مرسوم نبود. سال دوم دبیرستان یک دانشجوی برق چند جلسهای برایمان کلاس گذاشته بود. اما بیشتر به نادانسته هایمان اضافه کرد تا به دانسته ها. با کلاسهای فوق برنامهی انجمن علمی با میکروکنترلر آشنا شدم و دوران جدیدی در زندگیام شروع شد. بار اولی که با نوشتن یک کد میتوانستم یک LED را روشن و خاموش کنم، بسیار هیجان زده بودم. حسی شبیه خدا بودن بهم دست داده بود. قدرت در مشت من بود، قدرت مهندسی! با این قدرت چه معجزات که نمیشد کرد. تقریبا هر کلاسی را میپیچاندم تا کمی معجزه بازی کنم!
این رباتهای احمق
شروع کردم به ساختن ربات. اولین معجزهام یک ربات تعقیب خط بود. چیزی در حد یک افتضاح تمام عیار! فقط میشد یک مشت سیم دید که مثل ماکارونی در هم تنیده بودند. ربات توی مسابقه کار نکرد، حتی یک پیچ را هم تشخیص نداد. صاف رفت و خورد توی دیوار! فارغ از همه دنیا! (هیچ وقت هم نفهمیدم مشکل از کجا بود.) این مسابقه برایم نه یک شکست که یک رسوایی بود. چگونه میتوانستم انقدر احمق باشم که ربات من از همه رباتها بدتر باشد؟ راستش هیچ خدایی به این درماندگی ندیده بودم.
نکته اینجا بود: باگها
ماجرای باگ را که میدانید: حشره ریزی که بین رلههای ماشین محاسباتی آزمایشگاه هاروارد رفته بود و باعث خرابی سیستم شده بود. در لغتنامه آکسفورد آمده دیباگ یعنی:
Identify and remove errors from (computer hardware or software)
به عبارتی یعنی خطاهای سیستم را به درستی تشخیص بدهی و برطرف کنی. اگر سنسور ربات خراب باشد و تو هی میکرو را عوض کنی و دستکاری کنی، تا صد سال دیگر هم درست نخواهد شد. این مهارت را در خودم تقویت کردم. من بودم و پروب اسیلوسکوپ و هر باگی توی ربات. هر نقطه ای را چک میکردم. یک دیباگر خوب، هرگز اعتماد نمیکند که «NOT یک میشود صفر». خودش باید چک کند و تایید کند. شاید شده بود ۲!
این رویه را بعدا هنگام برنامه نویسی هم ادامه دادم. کدهای هوش مصنوعی، بخاطر استفاده از ریاضیات، معمولا پیچیده و «باگخیز» هستند: «اگر هر ماژول را جداگانه بررسی و دیباگ نکنی هیچ تضمینی نیست که سر آخر سیستمت کار کند.»
پانویس ۱. من طی این سالها خیلی کم کتاب مطالعه کرده ام (منهای کتابهای فنی). همش سرم توی کامپیوتر و ربات بوده. دنیا را هم مثل یکسری ماژول و آبجکت میبینم. اما خوب یا بد، همین دید مهندسی را همه جا بکار میگیرم. توی روابط اجتماعی، توی تحلیلهای سیاسی، اقتصادی، خلاصه همه جا.
مثلا وقتی یکی میگوید مشکلات اقتصادی مملکت بخاطر فلان بخش است، توی ذهنم مهندسی میکنم، دیباگ میکنم: راستی اگر بدون بررسی آن بخش را برداریم و عوض کنیم یا اصلاح کنیم، آیا سیستم درست می شود؟ اگر نشد چی؟ شاید ربات من بخاطر دیباگ نکردن میرفت میخورد توی دیوار، اما اگر سیستمهای بزرگ، مثل یک جامعه را دیباگ نکنیم چی؟ اگر خطاها را به درستی تشخیص ندهیم چی؟ چه قشرهایی از جامعه آسیب میبینند و چند نسل باید بروند بخورند توی دیوار چون ما درست دیباگ نکردیم؟
پانویس ۲. پارسال با کتاب «چرا عقب مانده ایم» دکتر علی محمد ایزدی آشنا شدم. توی این کتاب، ایشان تئوریهای مختلفی راجع به مشکلات اقتصادی و اجتماعی ایران رو با چنین نگاه مهندسی بررسی و موشکافی کرده و نتایج و صحبتهای جالبی رو مطرح میکنه. در بخش اول این کتاب «باگ»هایی مثل بیسوادی مردم، وجود نفت، وجود دین و مذهب و ... را مطرح میکند و سپس ادعا میکند هیچ کدام از اینها علت و مشکل اصلی عقب افتادگی کشورمان نیستند ...
نه اینکه با همهی دیدگاههای این کتاب موافق باشم، اما این کتاب حتما ارزش خواندن داره. دکتر ایزدی در دانشگاه تهران کشاورزی خوانده و سپس سال 1347 به آمریکا رفته و در زمینه «اقتصاد کشاورزی» دکترا گرفته و دورهی کوتاهی هم وزیر کشاورزی کابینهی مهندس بازرگان بوده.
جواد امیریان
مطلبی دیگر از این انتشارات
علم داده چیست ؟
مطلبی دیگر از این انتشارات
مهندسی کامپیوتر یا مهندسی صنایع؟
مطلبی دیگر از این انتشارات
هفت عادت برنامه نویسان مؤثر