
بعد از آن شکست وحشتناک، سراغ کتابی رفتم که قبلاً در کتابخانه پژوهشسرا پیدا کرده بودم. کتاب آموزش کیو بیسیک!
در اینترنت جستجو کردم ببینم میتوانم حداقل عکس جلد کتاب را پیدا کنم یا نه اما چیزی دستگیرم نشد. مثلاینکه این زبان و تمام خاطراتی که با آن داشتم، حالا زیر خروارها خاک لحظهلحظههایی که در این سالها گذشته دفن شدهاند.
بههرحال یادگیری برنامهنویسی را شروع کردم. آن هم با زبانی که حتی در همان زمان هم قدیمی محسوب میشد.
محیط برنامهنویسی این زبان نیاز به نصب نداشت. کلاً یک فایل اجرایی کوچک و کمحجم بود که با یک کلیک باز میشد و از همان لحظه اول آماده استفاده بود. این فایل در ویندوز هشت به بالا دیگر حتی باز هم نمیشد. همینالان در نسخههای جدید ویندوز، مثل ویندوز ده و یازده، بههیچعنوان باز هم نمیشود؛ چون فایل بهشدت قدیمی است!
کمکم فهمیدم پا در چه دنیایی گذاشتهام! برنامهنویسی بهراحتی نوشتن یک جمله انگلیسی و گرفتن خروجی نبود. برنامه باید خطبهخط نوشته میشد. حروفی که یکییکی کنار هم قرار میگرفت و جملاتی را میساخت که برای کامپیوتر قابلفهم بود.
برای نوشتن یک برنامه باید ساعتها و ساعتها وقت میگذاشتم. تمام الگوریتمها باید دقیق نوشته میشد. حتی برای یک برنامه کوچک، مثل برنامهای که بتواند دو عدد را گرفته و حاصلجمع آنها را نمایش دهد باید چندین خط مینوشتم. آن هم دقیق و بدون ذرهای اشتباه. خبری از کلاس و اینترفیس و این حرفها هم نبود.
با تمام این سختیها و باوجوداینکه حتی ذرهای به حل مشکل سیستم نزدیک نشده بودم؛ اما کمکم لذت برنامهنویسی را زیر زبانم حس کردم. لذت ساختن یک برنامه که بهنوعی «هوشمند» باشد و بتواند یک سری کارها را بدون دخالت انسان انجام دهد. برنامهنویسی کمکم برایم مثل یک تفریح شده بود. هر روز سعی میکردم برنامههای پیچیدهتری بنویسم و بیشتر و بیشتر یاد بگیرم. از اینکه بارهاوبارها یک برنامه را امتحان کنم و خطایش را برطرف کنم، خسته نمیشدم. این وسط، خاموش و روشنشدنهای مداوم کامپیوتر هنوز اذیت میکرد؛ ولی چهکار میکردیم؟ چیزی بود که باید با آن میساختیم و هر طور بود، از روی میل یا بهاجبار، باید با آن کنار میآمدیم!
تمام برنامههایی که مینوشتم را داخل فلش میریختم و تحویل آقای مردانی میدادم.
آقای مردانی!
معلم فیزیک و البته تعلیمات اجتماعی دبیرستانمان. مرد خوشتیپی بود. همیشه ایشان را با کتوشلوار سیاه و ریشپروفسوری در مدرسه میدیدیم. هیکل ورزشکاری داشت. البته ورزشکار هم بود. با آن هیکل و آن کتوشلوار و وضع ریش و سبیل، قیافه ترسناکی داشت، شبیه رئیس مافیا. بااینحال به لحاظ اخلاقی آدم نرم و خوشاخلاقی بود.
نمیدانم چطور یک نفر میتواند هم دبیر فیزیک باشد و هم دبیر تعلیمات اجتماعی. این دو درس هیچ ربطی به هم نداشت. از فیزیک خیلی خوشم میآمد و از تعلیمات اجتماعی با آن جلد سبز لجنیاش متنفر بودم. رنگ جلدش مرا یاد کپک روی نان میانداخت. حس مرگ و فساد و اینطور چیزها را داشت. بسیاری از مطالبش هم به نظرم اصلاً فایدهای نداشت. حداقل برای من که در رشته ریاضی درس میخواندم اینطور بود. همهاش یک سری مطالب درباره جامعه و رفتارهای مردم که برای من بهعنوان یک آدم درونگرا بحثهای بیفایدهای به نظر میآمد. درس تخصصی رشتهمان هم نبود و یادم نمیآید این درس را هیچوقت بالاتر از شانزده گرفته باشم. در کل دردسری داشتم با این درس حفظی ترسناک!
بههرحال دلم خوش بود. یک نفر به برنامههای سادهای که میسازم اهمیت میدهد. برنامههایی که میساختم را به آقای مردانی تحویل میدادم. ایشان هم همه را در یکی از سیستمهای مدرسه در پوشهای به نام خودم ذخیره کرده بود و همه را هم تست میکرد و روی آن نظر میداد. من هم به عشق اینکه برنامههایم را به آقای مردانی تحویل دهم، هر دفعه برنامه بزرگتری مینوشتم. در نهایت کمکم وارد فاز مستندسازی برنامهها شدم! برای هر برنامه، یک فایل ورد تصویری آماده میکردم و قابلیتهای برنامه را بهصورت تصویری در آن شرح میدادم. نحوه کارکردن با برنامه را هم بهصورت کامل آموزش میدادم.
بعضی وقتها برای قشنگتر شدن برنامه، یک سری جلوههای بصری ساده که کیو بیسیک توان اجرای آن را داشت را هم به برنامه اضافه میکردم. دنیایی داشتم برای خودم!
به این صورت کمکم مقدمات برنامهنویسی و طرز فکر برنامهنویسها را با همین زبان ساده یاد گرفتم. تفکر الگوریتمی را با همین برنامههای ساده تمرین کردم و مهارتم را افزایش دادم. همین هم در آن بازه مهم بود. برنامهنویسی یک فن دانشی - مهارتی است. برنامهنویس هم باید دانش کارکردن با زبان مدنظرش را داشته باشد و هم مهمتر از آن، باید مهارت الگوریتمنویسی و تفکر الگوریتمی را بداند و بارهاوبارها تمرین کرده باشد.
این مهارت، مهارتی همهزبانی است؛ یعنی منحصر به زبان خاصی نیست. یک مدل تفکر است که کمک میکند یک برنامهنویس، یک مسئله از زبان انسانی را به تکههای مجزا و مرحلهبهمرحله تقسیم کرده و هر مرحله را به زبان کامپیوتر بازنویسی کند.
این مهارت در زندگی روزمره برنامهنویس هم به درد میخورد. اینکه یک نفر بتواند مسائل روزمره زندگی خودش را به مسائل سادهتری تقسیم کرده و هر مسئله را مرحلهبهمرحله حل کند تا در نهایت، مسئله اصلی حل شود. دقیقاً برخلاف وقتی که یک نفر سعی میکند مسئله را به شیوه پیچیده، نامنظم و شلخته و بههمریخته حل کند. وقف انرژی زیادی صرف میکند و آرامش روان خود را هم از دست میدهد؛ اما در نهایت به نتیجه نمیرسد.
بگذریم. همان زمان نسخههای اولیه ویندوز هشت - که مثل ویندوز ده، از نظر ظاهری اصلاً ویندوز جذابی نبود - وارد بازار شده بود. ما هم امید داشتیم که با آمدن این ویندوز جدید، شاید مشکلات کامپیوترمان هم برطرف شود. خب... تا حدی هم همینطور شد. ویندوز هفت چیزی داشت که مشکل سیستم را بدتر کرده بود؛ اما ویندوز هشت بد نبود. خاموش و روشنشدنها کمتر شده بود هر چند در آن زمان هیچوقت تمام نشد.
با آمدن ویندوز هشت، بساط کیو بیسیک برای همیشه جمع شد. نرمافزار محیط توسعه آن روی ویندوز هشت و تمام سیستمعاملهای بعد از آن از کار افتاد. حالا باید به فکر زبان دیگری میافتادم. برنامهنویسی جدا زا اینکه میتوانست مشکل سیستم را حل کند یا نه، به یک تفریح لذتبخش تبدیل شده بود. نمیخواستم آن را رها کنم. میخواستم ادامه دهم؛ اما این بار... با یک زبان سطح بالا!
زبان سطح بالا دیگر چیست؟