مدت زیادیه که در نظر دارم مطلبی در مورد این که چطور برنامهنویس شدم رو قلمی کنم. مطالبی از این دست، نوشتنشون بسیار سختتر از چیزیه که فکرش رو هم بکنید. چرا که باید به گذشتههای دور سفر کنیم و خیلی از خاطرات گذشته رو هم مرور کنیم. بخصوص وقتی قراره در مورد چیزی مثل همین برنامهنویسی، بنویسیم. من قبلتر در همین وبلاگ، در مورد این رشته کامپیوتر چیه توضیح داده بودم (لینک). زمانی که اون پست رو نوشتم، فکر کنم دمدمای اعلام نتایج کنکور سراسری بود و طبیعتا خیلیها، دوست داشتن که با رشته تحصیلیشون آشنایی پیدا کنند. خلاصه، خواستم در این پست هم چیزی شبیه به همین موضوع بنویسم ولی با خودم گفتم بهتره که در مورد «داستان برنامهنویس شدن خودم» پست بنویسم.
من کی هستم؟
من محمدرضا حقیری هستم. احتمالا خیلیها من رو از «پروژه جبیر» بشناسن. اگر ماجرای پروژه جبیر رو نمیدونید، باید بگم که شاید یکی از اولین پروژههای جدی من بود که خیلی استارتاپگونه پیش میرفت. اطلاعات بیشتری از این پروژه رو میتونید از این لینک بخونید. اما الان چطور؟
فکر کنم پس از حدود ۱۰ سال حضور مداوم در جامعههای مختلفی مثل نرمافزار آزاد، جامعه فارسیزبان اوبونتو، جامعه Open Street Map (که البته در این آخری حضورم خیلی کمرنگتر بود) و جامعه بینایی ماشین (لینک) دیگه الان بدونید که شخص «محمدرضا حقیری» یک برنامهنویسه که دستی بر لینوکس، BSD، پایتون، کمی سختافزار داره و تبحر خاصی هم در تپه نوردی!
اگر دوست دارید بیشتر از من بدونید، در روزی که این پست نوشته شده (یعنی ۱۱ مهر ۱۴۰۰ هجری خورشیدی)، من چندین ماه از بیست و ششمین سال زندگیم میگذشته و در حال کار روی یکی از پروژههای خیلی جدی بودم و این پست رو برای این نوشتم که این داستان رو با شما به اشتراک بذارم. خب، من رو شناختید؟ بیایید بریم سراغ داستان برنامهنویس شدنم.
شروع برنامهنویسی
ما یک سری کتاب برنامهنویسی ویژوال بیسیک ۶ (لینک) در کتابخونه داشتیم. فکر کنم اواسط یا اواخر سال ۸۶ بود که من شروع کردم به خوندن یکی از این کتابا. برام خیلی جالب بود که چطور اینقدر این زبان هلوئه 🙂 از اون جالبتر این که اون زمان Windows Form هم چیزی بود که خیلی رو بورس بود و خیلی از برنامهنویسها ازش استفاده میکردند. یادمه که همون دوران، شرکت «پرند» هم یک مجموعه به اسم «کینگ» داشت (و البته فکر کنم هنوز هم داره) که درونش هزاران نرمافزار وجود داشت.
در یکی از دیسکهای کینگ، یک کتگوری Programming بود که ذیل اون، ویژوال استودیو قرار داشت. یادمه که با استفاده از دیسک مربوطه، ویژوال استودیو رو نصب کردم و شروع کردم به پیاده کردن چیزایی که در اون کتاب نوشته بود. یک فرم ساختم و یک لیبل زدم و روی لیبل نوشتم Hello World و شاید ندونید؛ ولی اون لحظه حسی که داشتم با حس آرمسترانگ وقتی رسیده بود روی ماه برابری میکرد. خلاصه که بعد از این که دورهای افتخار رو زدم، نشستم به خوندن باقی کتاب. اما میدونید چی شد؟ کتاب با VB6 آموزش میداد و فکر کنم من ویژوال استودیو ۲۰۰۵ و چنین چیزی رو داشتم.
خیلی دنبال فایل نصبی و حتی دیسک ویژوال بیسیک ۶ گشتم اما چیزی نیافتم. خلاصه در همون دوران بود که با انتشارات کلید آموزش (لینک) آشنا شدم. اولین کتابی که ازشون خوندم «کلید فتوشاپ» بود. در لیست کتابهاشون گشتم و دیدم که «کلید ویژوال بیسیک» هم دارند. اون کتاب رو خریدم و شروع کردم به خوندن و یادگیری از روی اون. خلاصه، بعد از چند ماه کشتی گرفتن، با ویژوال استودیو یک عدد ماشین حساب ساختم و دیگه شما میتونید حدس بزنید چقدر خوشحال بودم.
خلاصه که سال تحصیلی بعدیش، من تا حد خوبی روی مهارتهای توسعهدهندگیم کار کردم. البته خیلی از ابزارهایی مثل Multi Media Builder که استفاده میکردم، ابزار برنامهنویسی محسوب نمیشدند، اما خب بهرحال برای این که در جشنوارههای دانشآموزی و … شرکت کنم، بد نبودن. خلاصه که گذشت و گذشت و گذشت و رسیدیم به سال سوم راهنمایی. سوم راهنمایی من، سال جنجالی ۸۸ بود. سالی که تا حد زیادی افراد برای آینده خودشون، نگران شده بودند و طبیعتا من و خانواده من هم از این قاعده مستثناء نبودیم.
در این سال، یه جو قشنگی روی مدرسه حاکم شده بود. به طرز عجیبی مدرسه ما، دوست داشت که قطب تولید نرمافزار دانشآموزی باشه، قطب رباتیک منطقه خودش باشه و … . حقیقتا من این فرصت رو غنیمت شمردم و با همون ابزارهایی مثل Multi Media Builder نرمافزارهایی برای درسهای علوم و عربی ساختم. خیلی از فرمولها و روشهایی که در کلاس ریاضی یادمون میدادن رو با ویژوال بیسیک تبدیل به نرمافزار میکردم. در همین حین، به سبب تمرکز مدرسه روی مسابقات دانشآموزی رباتیک، سی++ هم تا حد خوبی یاد گرفته بودم. از طرفی انتشارات کلید هم «کلید دلفی» رو منتشر کرده بود و این یعنی که در حال یادگیری دلفی هم بودم.
شاید بگید چقدر هندونه؟ خب این همیشه روش من بوده. همیشه هم نتیجه داده و همیشه هم ازش راضیم 😁. شاید بد نباشه که اشاره کنم که همزمان با این ماجرا، به سبب داشتن وبلاگ روی بلاگفا هم کمی جاوااسکریپت (زمانی که جاوااسکریپت هنوز انقدر گسترده نبود) یاد گرفته بودم …
شروع پروژه جبیر
حالا دیگه دبیرستانی شده بودم و دانش خوبی در زمینه برنامهنویسی داشتم. اما خب یک مساله خیلی مهم پیش آمده بود، از تهران مهاجرت کرده بودیم بندرعباس (که به نظر من یکی از زیباترین و دوستداشتنیترین شهرهای کشورمونه) و در بندرعباس هنوز دوست پایهای نداشتم که با هم نرمافزار و ربات و اینا بسازیم. پس باید چی کار میکردم؟ حقیقتا سال اول دبیرستان رو مجددا مشغول توسعه مهارتها و دانشم شدم. اما پس از گذروندن سال اول، مدرسهم عوض شد و اونجا با دوست جدیدی آشنا شدم.
اما حالا صحبت دوست جدید بمونه برای بعد، در تابستانی که بین سال اول و دوم دبیرستان داشتم، یادمه یک شماره از «مجله دانشمند» رو خریدم که در اون، کتاب «طراحی و پیادهسازی سیستمهای عامل» از «اندرو تننباوم» رو معرفی کرده بود. نکته اینجا بود که انتهای اون مقاله، در مورد لینوس تروالدزِ، خلق لینوکس و دعواهای معروفش با اندرو تننباوم هم نوشته بود و من اینجا جرقهای در ذهنم زده شد. من باید سیستمعامل میساختم! پس از گذشت چند ماه و مهاجرت به لینوکس و تحقیق در موردش و همچنین غرق شدن در دنیای اپل و زندگی شخصی استیو جابز و … (شاید بشه گفت جوگیریهای رایج دوره نوجوانی) بالاخره به این نتیجه رسیدم که بهتره که پایه سیستمعامل من هم لینوکس باشه.
بعد از مدتی، به ذهنم رسید که به کامیونیتی اوبونتو مراجعه کنم و اونجا بپرسم. به همین خاطر این پست رو ایجاد کردم و یه سری سوال پرسیدم. احتمالا در همون تاپیک بتونید راهنماییهای دانیال بهزادی رو ببینید که خب بعدتر در پروژه مشابهی حتی با هم همکاری هم کردیم 😂
بگذریم، بهار ۹۱ یک نسخه کاستومشده اوبونتو به اسم «جبیر او اس» منتشر شد که از قضا یک پروژه جنجالی هم شد. اما اثرات جانبی جالبی هم داشت. شاید بتونم مهمترین اثرش رو «ورود رسمی به جامعه نرمافزار آزاد» بدونم، اثر دیگرش هم این بود که مدیر مدرسه ما گیر داد که الا و بلا شما باید بیای این رو ببری جشنواره خوارزمی 🙂 بردیمش جشنواره خوارزمی ولی اونجا مقبول نیفتاد. حالا ماجرای خوارزمی رو یک بار باید اساسیتر تعریف کنم که در مقوله این مقاله نمیگنجه.
خلاصه پروژه جبیر تا حدود ۹۴ ادامه داشت و بعدش به کل رفت به تاریخ پیوست. دلایل متعددی هم داشتم براش، اما خب فعلا تا همین جاش رو قبول کنید ازم.
و این داستان ادامه دارد …
اول که شروع کردم به نوشتن این داستان، فکر میکردم که میتونم در یک پست جمعش کنم، ولی دیدم که خیلی پیچیدهتر از این حرفاست و شاید ۳-۴ قسمت ازش دربیاد. اما خب در کل، قصدم اینه که تا زمانی که وارد بازار کار شدم رو برای شما تعریف کنم (یعنی دو پست نگهش دارم) و بعدا سر فرصت مناسبی، تجربیات کاری خودم هم باهاتون به اشتراک بذارم.
پس، فعلا این پست رو از من داشته باشید و منتظر قسمت بعدی باشید، قسمت بعدی احتمالا خیلی جذابتر خواهد بود 😁
خیلی جالب بود و باعث شدی که من هم فکر کنم به اینکه داستان خودم رو بنویسم.
راستی هنوز هم بندرعباس هستی چون من فعلا یعنی تا چند سال اینده هستم و خوشحال میشم توی جلسات گروه نرمافزار آزاد ما شرکت کنی 🙂
سلام دوست عزیز.
خیر ۸-۹ سالیه تهران هستم.