چی شد برنامه نویس شدم

حدود پنج ساله پیش به برنامه نویسی علاقه مند شدم و حدود یه سال و خورده ای حرفه ای وب کار میکنم و خب خیلی زمان گذشته اما تاجایی که هر چیزی یادم باشه رو مینویسم. از شما هم دعوت میکنم داستان خودتون رو بنویسین.بخش اول غیر برنامه نویسی:شدیدا پیشنهاد میکنم اگه حوصله ندارین خاطرات بچگی منو بخونین مستقیم برین بخش دو رو بخونین?یادم میاد بچه که بودم حدودا 6 سالم بود حدودای سال 82 بابام برام یه میکرو کیبورد دار خریده بود یه چیزی شبیه ایناین به تلویزیون وصل میشد و بازی میکردم. خیلی ذوق کرده بودم.از اونجا که ما مستاجر بودیم تو اسباب کشی این گم شد و هیچوقت هم دیگه پیدا نشد.بعد اون یه دوستی داشتم که چند باری منو به خونش دعوت کرد و با کامپیوترش GTA vice cityبازی میکردیم کلا شاید سه چهار بار بازی کردم ولی خیلی محو این بازی شده بودم.یادمه این دوستم علاقه خاصی به قایق سواری داشت و برای دزدیدن قایق روی یه پلی تو شهر وایمیستاد و از روی پل میپرید روی قایق ها و مشکل اصلی اینجا بود همونطور که میدونین تو این بازی اگه میافتادین توی آب میمردین! و من با خودم فکر میکردم چرا کسی که بازی رو ساخته نتونسته کاری کنه که توی آب بتونیم شنا کنیم! ( اولین جرقه ها بوده ها ?)از اون دوره مدت ها گذشت و حدودای 10 سالگیم با گیم نت آشنا شدم و علاقه عجیبی به گیم نت رفتن پیدا کردم و بازی های مورد علاقه مGTA san andreasو Counter StrikeوNFS Undergroundبودن! ( میدونم مناسب سن من نبودن اما اینجا ایرانه ?)تو این دوره ها یه گوشی K310 سونی اریکسون هم داشتم که توش بازی های مثل Cannonball 8000وRally Mastersخیلی بازی میکردم. و ......حالا شاید براتون سوال پیش بیاد این چرت و پرت هایی که دارم میگم چه ربطی به علاقه مند شدن من به برنامه نویسی داره. میگم براتون...بخش دوم علاقه مندی به برنامه نویسی:حدودای 14 سالگی این ایده به ذهنم رسید چرا من خودم یه بازی نسازم. مثلا بشینم جی تی ای بسازم خیلی خوبه ( میدونم آدم ابله و خیال پردازی بودم ?) اون موقع هنوز کامپیوتر نداشتم ولی با گوشیم سرچ کردم ببینم چجوری میشه یه بازی ساخت. خیلی زیاد جاهای مختلف رو گشتم و با پدیده ای به نام یونیتی آشنا شدم.فکر میکردم GTA san andreas رو هم با همین ساختن. گفتم پس منم حتما میتونم یکی بسازم. گشتم ببینم چجوری میشه بازی رو از صفر تا صد ساخت. تو این وسطا بین مدل سازی و تکسچرینگ و اینا اولین بار با واژه برنامه نویسی آشنا شدم. اینطوری برداشتم کردم برنامه نویسی یعنی مثلا برای اینکه به CJ بگی برو اون مرد رو بکش باید براش کد بنویسی و بهش دستور بدی! برای مدل سازی و اینا متوجه شدم مدل آماده زیاد موجوده و من لازم نیست براشون زحمت بکشم (و من غافل از اینکه باید ریگ و انیمیشن هم انجام بدم و مدل خالی کافی نیست) و اینجوری بود که به برنامه نویسی علاقه مند شدم.با بابام قرار گذاشتم اگه خوب درس بخونم و معدلم بالا شه برام یه کامپیوتر بخره و معدله بالا شد! :).بخش سوم کد:تو 15 سالگی بلاخره به آرزوم رسیدم یه کامپیوتر! تابستون همون سال شروع کردم. با تحقیقاتم متوجه شدم یونیتی با C# , Javascript , Boo کار میکنه و من فقط لازمه یکیشون رو یاد بگیرم با سرچ کردن تو گوگل یه جایی خوندم سی شارپ بهترینشونه منم رفتم دنبالش. دنبال جزوه های مختلفی میگشتم اما چیز خوبی تو اینترنت برای سی شارپ نتونستم پیدا کنم (یادم نیست چرا نتونسته بودم) تحقیق کردم و متوجه شدم C++ اگه یاد بگیرم C# هم میتونم یاد بگیرم و اینا شبیه همدیگه هستن (???) کتاب جعفر نژاد قمی رو پیدا کردم و شروع کردم به خوندنش( یکی از بزرگترین اشتباهات و حماقت های زندگیم). تابستون گذشت و من نتونستم اون قدری که باید از این کتاب لعنتی یاد بگیرم و بازی ساختن رو شروع کنم. پس گشتم دنبال راه حل غیر برنامه نویسی با یه پکیج یونیتی به نام Play makerآشنا شدم که بدون کد زدن باهاش میتونستم بازی بسازم. باهاش یه چیزایی انجام دادم اما به این نتیجه رسیدم این اون قدرها هم دست آدم رو باز نمیذاره.پس سعی کردم راه حل دیگه ای پیدا کنم که همون موقع ها با UDKآشنا شدم.Unreal Engine 3مجانی که ابزاری به اسم Kismet داشت.همین بهانه من شد برای شروع یادگیری این انجین و اولین باری بود که متوجه شدم انجینی به جز یونیتی هم هست و چون نمونه های آماده و بازی های ساخته شده باهاش خیلی ظاهر قشنگی داشتن من فکر میکردمGTA IVبا این ساخته شده !گفتم من که قراره GTA بسازم پس بذار یه خفن ترش رو بسازم! (???)بعد دانلود و چند روز ور رفتن با این لعنتی عملا هیچ کار خاصی نتونستم انجام بدم بس که سخت بود برام و کم آوردم. همون موقع ها به این نتیجه رسیدم بهتره به جای یادگیریUScriptبرگردم به همون سی پلاس پلاس.اولین تصمیم دور ریختن کتاب جعفر نژاد قمی و گشتن دنبال یه کتاب دیگه بود که با کتاب دیتیل آشنا شدم.اگرچه ترجمه فارسی این کتاب خیلی روون نبود اما با هزار بد بختی و بعد حدودا شش ماه تونستم سی پلاس پلاس رو در حد کار راه بنداز یاد بگیرم. اونجا نقطه شروع بود برای یونیتی. طی گذر زمان فهمیده بودم ساخت GTA اونقدرا هم ساده نیست پس سطح توقعم پایین تر اومده بود. یه آموزش ساخت بازی شوتر اول شخصبا یونیتی فارسی پیدا کرده بودم با کمک همون تونستم کمی سینتکس سی شارپ رو یاد بگیرم و در کنارش هم بازی پیاده سازی کنم. ساخت اولین بازی و کد نوشتن براش مثل روز برام قضیه رو روشن کرد که بازی ساختن کار یه نفر نیست و باید تیم داشته باشی و ...همچنین در کنار این ها تصمیم گرفته بودم سعی کنم یه انجین خودم بسازم تا تجربه ش کنم و خب چیزایی مثل Direct3D 9 و OpenGL 3.3رو این وسط تا حدودی در حد مکعب زدن و جابه جایی دوربین و نور و اینا کار کردم و خب باعث شد بفهمم به گرافیک کار کردن خیلی علاقه دارم با اینکه ریاضیات خیلی توش دخیله و منم از ریاضیات فراری! (خیلی خلاصه گفتم حوصله تون سر نره!).من برنامه نویسی رو یاد گرفته بودم اما خب دیگه 17 سالم بود و پسرا تو این سن خیلی به فکر این هستن از لحاظ مالی از پدرشون مستقل شن. به خصوص اینکه بابای من از اینکه من هر روز زمان زیادی رو با کامپیوتر میگذروندم و نمراتم توی مدرسه چندان جالب نبودن خیلی از دستم ناراحت بود.من کد میزدم اما خب میومد بهم میگفت "خجالت نمیکشی یکسره داری بازی میکنی جای اینکارو پاشو برو یه کم درس بخون".اونجا اولین جرقه های پول در آوردن از برنامه نویسی به سرم زد. بعد یه مدت تحقیق به این نتیجه رسیدم پول تو وبه و منم باید برم این سمت.بخش چهارم در جستجوی پول: من PHPرو انتخاب کردم چون میدونستم هاست های ارزون یا حتی مجانی میشه براش پیدا کرد بر خلاف سایر تکنولوژی ها مثل asp.net .میدونستم برای اینکه بتونم کار پیدا کنم باید نمونه کار داشته باشم. پس دنبال یه ایده خوب گشتم برای پیاده سازی. اون اوایل برای استارت زدن از نصب کردن وردپرس روی هاست های مجانی شروع کردم و علاقه به وبلاگ نویسی هم داشتم. واسه وردپرس یادگرفتن دلیلم این بود که سرویس هایی مثل رز بلاگ و بلاگفا تبلیغ توی وبلاگم میذاشتن و من از این موضوع خوشم نمیومد پس بهانه ای شد برای وبلاگ نویسی و نصب وردپرس.بعد یه مدت متوجه شدم وبلاگم بازدیدی نداره و تحقیق کردم درباره راه های افزایش بازدید سایت که این مابین با این سایت آشنا شدم. https://www.traffboost.net/ خودش بود! ایده ای که در به در دنبالش میگشتم.این سایت این شکلی کار میکنه که شما میری توش سایت دیگران رو بازدید میکنی و امتیاز جمع میکنی برای خودت. با امتیاز جمع شده میتونی سایتت رو توی لیست قرار بدی دیگران بیان سایتت رو ببینن و در ازاش تو امتیاز هایی که جمع کردی رو بدی به اونا.این عکس رو امروز گرفتم اون موقع ظاهرش خیلی داغون بود!تصمیم به شروع یادگیری چیزایی مثل PHP/HTML/CSS/JS کردم که این سایته رو با امکاناتی بیشتر مثل لایک کردن سایت ها و کامنت گذاشتن واسشون بزنم.بعد یه مدت نسخه ابتدایی سایت با PHP خام و بدون هیچ فریمورک بک اندی آماده شد.آپلودش کردم و اون موقع تلگرام گروه های 200 نفره زده بود و منم تصمیم گرفتم در مورد سایتم نظر بپرسم توی یه گروه برنامه نویسی (شاید یه اشتباه بزرگ جلوتر میگم چرا) . یکی از اون وسط پیدا شد و کاری کرد که سایت دیتابیسش پر شه از کاربرای فیک و هاست مجانی سایت من رو حذف کنه و من حسابی از این قضیه ناراحت شدم که چرا اینقدر باید امنیت سایتم پایین باشه. توی اون گروه تلگرام هم هر کی نظر داد میگفت این سایت چرته و بیخوده و ... و کلا من رو قهوه ای کردن!این همه زحمت کشیده بودم برای ساختش و حس داغونی داشتم که هیچکس با اولین سایت کدنویسی شده توسط من حال نکرده.حالا چرا اشتباهم بزرگ بود چون متوجه شدم یه سایتی دقیقا مشابه این سایت ساخته شده در صورتی که من قبلش کل اینترنت چرخیده بودم و سایت های افزایش ترافیک ایرانی همشون اتوماتیک کار میکردن و خودشون کلیک میکردن و ... و سایت ایرانی لنگه این وجود نداشت اما سایتی رو دیدم که دقیقا مشابهشه و حتی آیکون ها رو هم از این سایته کپی کرده! یه جورایی حدس میزنم این ایده از همون گروه تلگرام در رفت! (شایدم توهمی بیش نیست) http://www.traffiset.ir/ این ماجرا هم گذشت و من تصمیم گرفتم تواناییم تو امنیت رو افزایش بدم که این مابین با فریمورک ها آشنا شدم.فریمورک PHP زیاد بود و من بین دو تا کله گنده یعنی YIIو Laravelشک داشتم که تصمیم گرفتم لاراول رو انتخاب کنم.با اینکه میدونستم ایده ام دیگه خاص نیست اما تصمیم گرفتم اولین سایتی که با لاراول پیاده سازی میکنم دوباره همین سایته باشه.تو این دوران تصمیم گرفتم یه نسخه از کدم رو نگه دارم تا برام خاطره بشه.هر وقت هم مغرور شدم برگشتم و اون کد ها رو دیدم و گفتم منم روزگاری یه احمق بودم!واقعا هم بودم هر موقع کد هاش رو نگاه میکنم میگم برنامه نویس این عجب احمقی بوده! https://github.com/amir9480/Traffic-booster اگر چه یه بار دیگه هم خواستم این ایده رو پیاده سازی کنم اما خب دیگه میدونستم این قضیه به سرمایه گذاری و تبلیغات احتیاج داره و کلا بی خیالش شدم.بخش پنجم استخدام:تخته های اتو, تخته های موج سواری هستن که رویاهاشون رو کنار گذاشتن و شغل برای خودشون پیدا کردن قسمت تلخ داستان اینجاست... من شهر آمل زندگی میکنم. اینجا شهر نسبتا کوچیکیه و کار برنامه نویسی خیلی کم پیدا میشه. به سختی یه جایی کار پیدا کردم که من رو قبول کنه. یه تیم شش نفره کوچیک بودیم و ایده استارتاپمون هم تو حوزه ویلا و اینا بود دو ماه اول رو مفت کار کردم ( خر حمالی ) و برنامه نویسی که زیر دستش بودم چیزای جدید زیادی بهم یاد نداد و بعدش هم حدود یه سال دیگه هم براش سایت خودش و مشتریاش رو میزدم.بعد مدتی به خاطر حقوق خیلی کم ( سه روز در هفته در ازای ماهی 500 تومن! و بعد یه سال یه ذره هم اضافه نشد) از اونجا اومدم بیرون. الان هم تو سن 21 سالگی جای دیگه ای هستم یه تیم حدودا 15 نفره ایم و هنوز هم حقوق پایین (سه روز در هفته در ازای ماهی 800 تومن) همچنان "خرحمالی(برده داری عصر مدرن)" ولی خب اموراتم میگذره. قدم بعدیم رو وقتی که دانشگاهم ( که به اصرار پدرم درس میخونم ) تموم شه برای رویای یه برنامه نویس بازی(گرافیک) شدن دنبال خواهم کرد یا حتی شاید خدا اونقدری عمر/شرایطش رو بهم نده که دیگه بتونم این رویا رو دنبال کنم.?مرسی از اینکه این نوشته رو خوندین.نوشت های مشابه دوستان ویرگولی: https://virgool.io/@mostafa_salehi/%D9%85%D8%B5%D8%B7%D9%81%DB%8C-%D8%B5%D8%A7%D9%84%D8%AD%DB%8C-%D9%BE%D9%88%D8%B1-%D8%AF%D8%A7%D8%B3%D8%AA%D8%A7%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D8%B4%D8%AF%D9%86%D9%85-puinxzuotglc https://virgool.io/@mdisefr/%D8%B9%D9%84%D8%A7%D9%82%D9%87-%D9%85%D9%86%D8%AF-%D8%B4%D8%AF%D9%86-%D9%85%D9%86-%D8%A8%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C%D9%82%D8%B3%D9%85%D8%AA%DB%B1-rolqejrndewf https://virgool.io/@fflanyy/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D9%85%D9%86-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84-otyyidfpoilq