داستان برنامه‌نویس شدن من – قسمت دوم

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

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

ورود به دانشگاه

در طی این سالها، یعنی از حدود ۹۱ تا ۹۳ راه‌های زیادی رو رفتم که سرویس‌ها و نرم‌افزارهای خاصی رو طراحی کنم و خب دروغ چرا، تا حد زیادی هم رویای استیو جابز یا زاکربرگ شدن هم در سر داشتم و خب کارهای مختلفی مثل ایجاد انجمن‌های اینترنتی مختلف (ایران‌بی‌اس‌دی، ایران‌هکینتاش و …) گرفته تا برپا کردن شبکه‌های اجتماعی و نرم‌افزارهای آنلاین دیگر (اکسوال، نکست‌کلود و …) رو انجام می‌دادم. راستش این راه‌ها من رو به قول خارجی‌ها Satisfy نمی‌کرد و همچنان دنبال این بودم که یک سیستم عامل خوب بسازم!

خلاصه شد سال ۹۲ و ما از شهر بندرعباس به تهران برگشتیم. اون سال، سال پیش‌دانشگاهی من بود (و بد نیست این داستانکم رو هم پیرامونش بخونید) و اون سال، یک تصمیم بزرگ هم گرفتم. تصمیمم این شد که جبیر به جای این که مبتنی بر اوبونتو (یک توزیع از گنو/لینوکس)، یک نسخه شخصی‌سازی‌شده از FreeBSD باشه. از همین رو، شروع کردم به رفتن به IRC های مختلف، سوال پرسیدن و مستندات خوندن. بعد از چندین ماه مطالعه، وضعیت اینترنت خونه و خودم تا حد خوبی پایدار شد و بعد شروع کردم به انجام تغییرات روی کد FreeBSD.

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

داستان برنامه‌نویس شدن من - محمدرضا حقیریشرکت در لاگ‌ها و رویدادها و آخر و عاقبت پروژه جبیر

حضور در تهران و دانشجو شدن، به من کمک کرد که وارد جامعه بشم و در رویدادهای نرم‌افزار آزاد و متن‌باز و سایر رویدادها (مثل PyCon و …) شرکت کنم. اولین رویدادی که شرکت کردم، رویدادی بود به اسم «جامعه رایانش ابری آزاد». در اون رویداد با KVM و Docker آشنا شدم و تا حد زیادی هم دانشم در زمینه Containerها و مجازی‌سازی تا حد خوبی بالا رفت.

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

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

داستان برنامه‌نویس شدن من - محمدرضا حقیری

یادگیری روبی، ورود به حوزه سخت‌افزار و دیگر هیچ!

مهرماه ۹۳ بود که من خیلی جدی تصمیم گرفتم حداقل یک زبان برای توسعه وب رو جدی یاد بگیرم. قبل‌ترش، کتاب «از این پس پایتون» رو خونده بودم و به همین خاطر هم کمی با پایتون و فلسک آشنا بودم. دوستی یک کتاب جنگو هم برای من ارسال کرد. اما در همون هنگام در بحثی در IRC که دقیق یادم نیست مربوط به occc بود یا لاگ کرج، دوستی به من پیشنهاد کرد که روبی و روبی‌آن‌ریلز رو یاد بگیرم. در ادامه‌ش، توصیه کرد که حتما با دیتابیس‌ها آشنا شم و کمی هم مهندسی نرم‌افزار یاد بگیرم.

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

خب همونطوری که ابتدای متن گفتم، من گرایش سخت‌افزار بودم و حقیقتا این وسط به سرم زده بود دانش سخت‌افزاری خودم رو هم بالا ببرم. به همین خاطر ترم ۳ یا ۴ که بودم، قبل از این که به مدار منطقی برسم، خودخوان شروعش کردم. برام جالب بود و خب در عین حال ریاضیات گسسته هم برای من داشت مرور می‌شد. این مرور، در کنار دانش مدار منطقی من رو وادار کرد که کمی بیشتر بخوام در این حوزه ورود کنم. به همین خاطر، معماری کامپیوتر و ریزپردازنده رو هم حتی پیش از این که درسم بهشون برسه، مطالعه کردم.

وقتی به نتایج جالبی رسیدم، تصمیم گرفتم دوباره دانشم رو با مردم به اشتراک بذارم. به همین خاطر، این بار هم محتوا رو به زبون انگلیسی تولید کردم (لینک) و به رایگان در نسخه انگلیسی همین وبلاگ منتشرش کردم. خلاصه که اینجا تموم نمیشه. در اون سالها، بازار «اینترنت چیزها» یا IoT هم داغ بود و خب طبیعتا شروع کردم به یادگیری آردوینو، رزبری‌پای و … و پروژه‌های جالبی هم با اونها انجام دادم. البته خیلی از این پروژه‌ها رو هنوز که هنوزه عمومی نکردم.

خلاصه این مورد هم گذشت و رسیدیم به شهریور ۹۶. یعنی جایی که من خیلی جدی و رسمی وارد بازار کار شدم.

داستان برنامه‌نویس شدن من - محمدرضا حقیری

ورود به بازار کار

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

اما شهریور ۹۶ یکی از دوستانی که در همون استودیو مشغول بود، برای یک بازی دیگر من رو دعوت کرد به همکاری. یک مصاحبه ریزی داشتیم و پس از اون مصاحبه، قرار شد من برم و همکاری کنم. پس از این ماجرا، من رسما وارد اکوسیستم و بازار کار شدم تا به امروز.

سخن آخر

خب، در این مطلب هم مثل مطلب قبلی حجم خوبی از خاطرات من رو شاهد بودید. کل حرفی که می‌خواستم بزنم این بود که دوستان، از تجربه کردن و حتی شاخه شاخه پریدن؛ نترسید. این پرش‌ها به خودی خود باعث میشن که شما در کارتون – حتی کارهای فریلنسری و پروژه‌ای – به شدت موفق‌تر عمل کنید. یادتون باشه که زندگی، فان‌تر از اونیه که بخواید با زیادی جدی گرفتن؛ خرابش کنید.

موفق باشید 🙂

 

Share

داستان برنامه‌نویس شدن من – قسمت اول

مدت زیادیه که در نظر دارم مطلبی در مورد این که چطور برنامه‌نویس شدم رو قلمی کنم. مطالبی از این دست، نوشتنشون بسیار سخت‌تر از چیزیه که فکرش رو هم بکنید. چرا که باید به گذشته‌های دور سفر کنیم و خیلی از خاطرات گذشته رو هم مرور کنیم. بخصوص وقتی قراره در مورد چیزی مثل همین برنامه‌نویسی، بنویسیم. من قبل‌تر در همین وبلاگ، در مورد این رشته کامپیوتر چیه توضیح داده بودم (لینک). زمانی که اون پست رو نوشتم، فکر کنم دم‌دمای اعلام نتایج کنکور سراسری بود و طبیعتا خیلی‌ها، دوست داشتن که با رشته تحصیلیشون آشنایی پیدا کنند. خلاصه، خواستم در این پست هم چیزی شبیه به همین موضوع بنویسم ولی با خودم گفتم بهتره که در مورد «داستان برنامه‌نویس شدن خودم» پست بنویسم.

من کی هستم؟

من محمدرضا حقیری هستم. احتمالا خیلی‌ها من رو از «پروژه جبیر» بشناسن. اگر ماجرای پروژه جبیر رو نمی‌دونید، باید بگم که شاید یکی از اولین پروژه‌های جدی من بود که خیلی استارتاپ‌گونه پیش می‌رفت. اطلاعات بیشتری از این پروژه رو می‌تونید از این لینک بخونید. اما الان چطور؟

فکر کنم پس از حدود ۱۰ سال حضور مداوم در جامعه‌های مختلفی مثل نرم‌افزار آزاد، جامعه فارسی‌زبان اوبونتو، جامعه Open Street Map (که البته در این آخری حضورم خیلی کم‌رنگ‌تر بود) و جامعه بینایی ماشین (لینک) دیگه الان بدونید که شخص «محمدرضا حقیری» یک برنامه‌نویسه که دستی بر لینوکس، BSD، پایتون، کمی سخت‌افزار داره و تبحر خاصی هم در تپه نوردی!

اگر دوست دارید بیشتر از من بدونید، در روزی که این پست نوشته شده (یعنی ۱۱ مهر ۱۴۰۰ هجری خورشیدی)، من چندین ماه از بیست و ششمین سال زندگیم می‌گذشته و در حال کار روی یکی از پروژه‌های خیلی جدی بودم و این پست رو برای این نوشتم که این داستان رو با شما به اشتراک بذارم. خب، من رو شناختید؟ بیایید بریم سراغ داستان برنامه‌نویس شدنم.

داستان برنامه‌نویس شدن من - محمدرضا حقیری

شروع برنامه‌نویسی

ما یک سری کتاب برنامه‌نویسی ویژوال بیسیک ۶ (لینک) در کتابخونه داشتیم. فکر کنم اواسط یا اواخر سال ۸۶ بود که من شروع کردم به خوندن یکی از این کتابا. برام خیلی جالب بود که چطور اینقدر این زبان هلوئه 🙂 از اون جالب‌تر این که اون زمان Windows Form هم چیزی بود که خیلی رو بورس بود و خیلی از برنامه‌نویس‌ها ازش استفاده می‌کردند. یادمه که همون دوران، شرکت «پرند» هم یک مجموعه به اسم «کینگ» داشت (و البته فکر کنم هنوز هم داره) که درونش هزاران نرم‌افزار وجود داشت.

در یکی از دیسک‌های کینگ، یک کتگوری Programming بود که ذیل اون، ویژوال استودیو قرار داشت. یادمه که با استفاده از دیسک مربوطه، ویژوال استودیو رو نصب کردم و شروع کردم به پیاده کردن چیزایی که در اون کتاب نوشته بود. یک فرم ساختم و یک لیبل زدم و روی لیبل نوشتم Hello World و شاید ندونید؛ ولی اون لحظه حسی که داشتم با حس آرمسترانگ وقتی رسیده بود روی ماه برابری می‌کرد. خلاصه که بعد از این که دورهای افتخار رو زدم، نشستم به خوندن باقی کتاب. اما می‌دونید چی شد؟ کتاب با VB6 آموزش می‌داد و فکر کنم من ویژوال‌ استودیو ۲۰۰۵ و چنین چیزی رو داشتم.

خیلی دنبال فایل نصبی و حتی دیسک ویژوال بیسیک ۶ گشتم اما چیزی نیافتم. خلاصه در همون دوران بود که با انتشارات کلید آموزش (لینک) آشنا شدم. اولین کتابی که ازشون خوندم «کلید فتوشاپ» بود. در لیست کتابهاشون گشتم و دیدم که «کلید ویژوال بیسیک» هم دارند. اون کتاب رو خریدم و شروع کردم به خوندن و یادگیری از روی اون. خلاصه، بعد از چند ماه کشتی گرفتن، با ویژوال استودیو یک عدد ماشین حساب ساختم و دیگه شما می‌تونید حدس بزنید چقدر خوشحال بودم.

خلاصه که سال تحصیلی بعدیش، من تا حد خوبی روی مهارت‌های توسعه‌دهندگیم کار کردم. البته خیلی از ابزارهایی مثل Multi Media Builder که استفاده می‌کردم، ابزار برنامه‌نویسی محسوب نمی‌شدند، اما خب بهرحال برای این که در جشنواره‌های دانش‌آموزی و … شرکت کنم، بد نبودن. خلاصه که گذشت و گذشت و گذشت و رسیدیم به سال سوم راهنمایی. سوم راهنمایی من، سال جنجالی ۸۸ بود. سالی که تا حد زیادی افراد برای آینده خودشون، نگران شده بودند و طبیعتا من و خانواده من هم از این قاعده مستثناء نبودیم.

در این سال، یه جو قشنگی روی مدرسه حاکم شده بود. به طرز عجیبی مدرسه ما، دوست داشت که قطب تولید نرم‌افزار دانش‌آموزی باشه، قطب رباتیک منطقه خودش باشه و … . حقیقتا من این فرصت رو غنیمت شمردم و با همون ابزارهایی مثل Multi Media Builder نرم‌افزارهایی برای درس‌های علوم و عربی ساختم. خیلی از فرمول‌ها و روش‌هایی که در کلاس ریاضی یادمون می‌دادن رو با ویژوال بیسیک تبدیل به نرم‌افزار می‌کردم. در همین حین، به سبب تمرکز مدرسه روی مسابقات دانش‌آموزی رباتیک، سی++ هم تا حد خوبی یاد گرفته بودم. از طرفی انتشارات کلید هم «کلید دلفی» رو منتشر کرده بود و این یعنی که در حال یادگیری دلفی هم بودم.

شاید بگید چقدر هندونه؟ خب این همیشه روش من بوده. همیشه هم نتیجه داده و همیشه هم ازش راضیم 😁. شاید بد نباشه که اشاره کنم که همزمان با این ماجرا، به سبب داشتن وبلاگ روی بلاگفا هم کمی جاوااسکریپت (زمانی که جاوااسکریپت هنوز انقدر گسترده نبود) یاد گرفته بودم …

داستان برنامه‌نویس شدن من - محمدرضا حقیری

شروع پروژه جبیر

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

اما حالا صحبت دوست جدید بمونه برای بعد، در تابستانی که بین سال اول و دوم دبیرستان داشتم، یادمه یک شماره از «مجله دانشمند» رو خریدم که در اون، کتاب «طراحی و پیاده‌سازی سیستم‌های عامل» از «اندرو تنن‌باوم» رو معرفی کرده بود. نکته اینجا بود که انتهای اون مقاله، در مورد لینوس تروالدزِ، خلق لینوکس و دعواهای معروفش با اندرو تنن‌باوم هم نوشته بود و من اینجا جرقه‌ای در ذهنم زده شد. من باید سیستم‌عامل می‌ساختم! پس از گذشت چند ماه و مهاجرت به لینوکس و تحقیق در موردش و همچنین غرق شدن در دنیای اپل و زندگی شخصی استیو جابز و … (شاید بشه گفت جوگیری‌های رایج دوره نوجوانی) بالاخره به این نتیجه رسیدم که بهتره که پایه سیستم‌عامل من هم لینوکس باشه.

بعد از مدتی، به ذهنم رسید که به کامیونیتی اوبونتو مراجعه کنم و اونجا بپرسم. به همین خاطر این پست رو ایجاد کردم و یه سری سوال پرسیدم. احتمالا در همون تاپیک بتونید راهنمایی‌های دانیال بهزادی رو ببینید که خب بعدتر در پروژه مشابهی حتی با هم همکاری هم کردیم 😂

بگذریم، بهار ۹۱ یک نسخه کاستوم‌شده اوبونتو به اسم «جبیر او اس» منتشر شد که از قضا یک پروژه جنجالی هم شد. اما اثرات جانبی جالبی هم داشت. شاید بتونم مهم‌ترین اثرش رو «ورود رسمی به جامعه نرم‌افزار آزاد» بدونم، اثر دیگرش هم این بود که مدیر مدرسه ما گیر داد که الا و بلا شما باید بیای این رو ببری جشنواره خوارزمی 🙂 بردیمش جشنواره خوارزمی ولی اونجا مقبول نیفتاد. حالا ماجرای خوارزمی رو یک بار باید اساسی‌تر تعریف کنم که در مقوله این مقاله نمی‌گنجه.

خلاصه پروژه جبیر تا حدود ۹۴ ادامه داشت و بعدش به کل رفت به تاریخ پیوست. دلایل متعددی هم داشتم براش، اما خب فعلا تا همین جاش رو قبول کنید ازم.

داستان برنامه‌نویس شدن من - محمدرضا حقیری

و این داستان ادامه دارد …

اول که شروع کردم به نوشتن این داستان، فکر می‌کردم که می‌تونم در یک پست جمعش کنم، ولی دیدم که خیلی پیچیده‌تر از این حرفاست و شاید ۳-۴ قسمت ازش دربیاد. اما خب در کل، قصدم اینه که تا زمانی که وارد بازار کار شدم رو برای شما تعریف کنم (یعنی دو پست نگهش دارم) و بعدا سر فرصت مناسبی، تجربیات کاری خودم هم باهاتون به اشتراک بذارم.

پس، فعلا این پست رو از من داشته باشید و منتظر قسمت بعدی باشید، قسمت بعدی احتمالا خیلی جذاب‌تر خواهد بود 😁

 

Share