
استاد وارد کلاس شد و بالاخره بعد از احوال پرسی شروع کرد به تدریس اما خیلی با چیزی که توقع داشتیم متفاوت بود. استاد میخواست پایه برنامهنویسی و اصل چیستی برنامه رو بهمون توضیح بده برای همین با مثال تلفن سکهای شروع کرد و گفت
- در واقع هنر برنامه نویس این هست که بتونه یک مسئله رو تحلیل کنه و اون رو به مسائل کوچک تر خرد کنه برای حل، مثلا فرض کنید تصمیم داریم با یک تلفن سکهای یک تماس بگیریم برای این کار باید چندین مرحله رو طی کنیم
- باید گوشی تلفن رو برداریم
- سکه رو بندازیم
- منتظر بوق آزاد بمونیم
- شماره رو بگیریم
- منتظر بمونیم و اگر بوق تماس خورد که تماس حاصل شده و اگر بوق اشغال خورد ممکنه بخوایم دوباره مراحل رو تکرار کنیم.
استاد ریز به ریز این مثال رو تشریح کرد و توضیح داد تا کلاس به پایان رسید و بعد از ظهر باز کلاس داشتیم رفتیم سلف دانشگاه غذا گرفتیم و خوردیم ولی اصلا کیفیت نداشت کلی با بچهها گپ زدیم و باز برگشتیم سر کلاس.
استاد بعد از ورودش باز رفت سراغ همون مثال و بدیهیات رو توضیح میداد و انقدر روی این مثال مانور داد که کلاس بعد از ظهر هم تموم شد. ما توقع داشتیم برنامهنویسی یاد بگیریم ولی دو تا موضوع اتفاق افتاد یکی این که استاد خیلی بدیهیات رو توضیح میداد و یکی این که ما توقع داشتیم خود برنامهنویسی رو یاد بگیریم ولی این مبانی خیلی پایهای تر بود. چند روز بعد کتاب رو تهیه کردم و نشستم به خوندن توی یکی دو هفته نصف کتاب رو خونده بودم و شروع کرده بودم به کد زدن البته استاد تازه به بخش فلوچارت رسیده بود و داشت با وسواس شدید این موضوعات رو توضیح میداد ولی دیگه خیلی اذیت نمیشدم چون میتونستم خودم مسیر رو ادامه بدم. وقتی یکم برنامه نوشتم رسیدم به این که دنبال ایده میگشتم که پیاده کنم کلی مثال و تمرین انجام دادم تا این که رسیدم به این که باید یه بازی بنویسم با رضا این تصمیم رو گرفتیم و سعی کردیم هرکدوم یه بازی بنویسیم من بازی مار رو و رضا بازی 2048 رو اتخاب کرد و شروع کردیم به نوشتن اوایل روی سیستم خونه کد میزدم ولی بعدش یه لپتاپ توپ خریدم Asus N56JK A که تقریبا یکی از بهترینهای بازار بود اون زمان و از اون به بعد خیلی جدیتر شروع کردم به تمرین کردن. بازی مار رو نوشتم ولی توی نوشتن یک قسمتش با چالشی مواجه شدم اونم این بود که خب مار بازی من حرکت میکرد ولی نمیشد این رو پیاده کرد که کاربر همزمان با حرکت مار بتونه توی کنسول ورودی بده در واقع من اون زمان راهی براش سراغ نداشتم رفتم سراغ مدیرگروه ازش سوال کردم گفت به یه چیزی به اسم نخ نیاز دارم و مطمئن نیست ولی فکر میکنه سی پلاس پلاس هم از نخ پشتیبانی میکنه. من هم حسابی دنبالش گشتم ولی چیز پیچیدهای بود و نمیشد خیلی راحت باهاش کار کرد.
بعد مدتی کار کردن یه حس عجیبی داشتم در واقع هر کاری میخواستم میتونستم با زبان سی پلاس پلاس اجام بدم ولی همیشه یه جاهایی مثل مورد نخ توی بازی مار گیر میکردم که نمیشد کار رو ادامه داد ترم دوم که شد مدیرگروهمون مدام توی گوشمون میخوند که سی پلاس پلاس زبان مقدماتی هست و باید برای برنامهنویسی پیشرفته بریم سراغ سیشارپ من یکبار سعی کردم باهاش برنامه بنویسم و یک برنامه با رابط کاربری باهاش نوشتم ولی اصلا بهم نچسبید به همین خاطر رفتم جستجو کردم دیدم زبانهای دیگه توی کاربردهای دیگه هستند که دارند گل میکنند مثلا برای اندروید میشد با جاوا برنامه نوشت به همین خاطر با چند نفر از رفقا رفتیم سایت https://androidkade.com که اون زمان آموزش برنامهنویسی اندروید با جاوا رو شروع کرده بود و چند قسمتی که از دورش آماده شده بود رو تهیه کردیم ولی با جاوا هم خیلی رضایت نداشتم تا این که دیدم مهبوب ترین زبان دنبا پایتون هست و نشستم پای یادگیری پایتون و اون رو کامل یاد گرفتم بعد میخواستم یه سری برنامه بنویسم که رابط کاربری گرافیکی داشتند ولی خیلی آموزشی پیدا نمیکردم تا بالاخره یه دوره آموزش tkinter پیدا کردم و یاد گرفتم چطور میشه با پایتون برنامه با رابط کاربری گرافیکی نوشت ولی محدودیتهایی داشت که باعث میشد اصلا مناسب کار تجاری نباشه البته من یک سری آموزش ازش تهیه کردم و توی وبلاگم منتشر کردم توی زمانی که پایتون کار میکردم خیلی توی گروه تلگرامی که برای پایتون بود فعال بودم و پیشنهاد مدیریت گروه رو از سمت مدیر اصلی گروه دریافت کردم ولی بهش گفتم چون خیلی وقت ندارم نمیتونم بپذیرم. بعد از کمی گشتن دنبال یک راه برای نوشتن برنامههای گرافیکی با python بودم که رسیدم به pyqt که گویا پورت فریمورک Qt برای پایتون بود و البته چالشهایی هم بر سر پرفورمنس پایتون برای کارهای گرافیکی با دوستان داشتم که باعث شده بود کمی از پایتون برای این کار نا امید بشم و فقط از پایتون برای راه اندازی وبسایت استفاده کنم. بعد از آشنایی با کیوت و پای کیوت به این نتیجه رسیدم که بهترین گزینه برای برنامههای گرافیکی همون سی پلاس پلاس هست و اینبار کیوت رو با سی پلاس پلاس شروع کردم نتایج خوبی هم گرفتم چون داشتم با رابط گرافیکی برنامهنویسی میکردم حس بهتری داشتم و میتونستم خیلی کارهای بیشتری بکنم اما مشکل از جایی شروع شد که سعی کردم پروژه بگیرم ...
قسمت بعد «قیر بود قیف نبود»