داستان و تجربه من بعد از سه سال برنامه نویسی

داستان و تجربه من بعد از سه سال برنامه نویسیداستان شروع برنامه نویسی من با جستجو در مورد نحوه توسعه بازی های ویدیویی شروع شد و از آنجایی که به دنیای کامپیوتر و وب علاقه داشتم وارد حرفه برنامه نویسی شدم.داستان زیر، داستان یکی از اعضا تیم سروتم است و از تجارب این فرد نوشته شده است.شروع داستانحدود چهار سال پیش بود که در حال انجام یک بازی ویدیویی بودم. به یاد نمیارم دقیقا کدوم بازی بود؛ اما فکر میکنم Warcraft 3 یا یک بازی از سری Stronghold بود.به فکرم رسید چطور این بازی ها طراحی میشن و دقیقا با چه ابزاری ساخته میشن. هیچ دانشی از برنامه نویسی نداشتم و هیچ چیز در مورد کد نویسی نمیدونستم. شروع کردم به جستجو تو موتور جستجو Google.اولین موردی که باهاش برخورد کردم "موتور بازی سازی" بود. بعد از مدتی دیگه ای جستجو با کلمه "برنامه نویسی" برخوردم. کلمه عجیب و نا آشنایی بود. البته زیاد توجه ای به کلمه برنامه نویسی نکردم و تمرکزم رو رو موتور بازی سازی قرار دادم.بعد از جستجو و تحقیق بیشتر در مورد توسعه بازی های ویدیویی با بخش های مختلف توسعه بازی های ویدیویی مثل گرافیک و موتور بازی سازی آشنا شدم و رفتم سراغ نصب یک موتور بازی سازی.بعد مطالعه چند مقاله به این نتیجه رسیدم که بهترین موتور بازی سازی، Unity Engine هست. رفتم سراغ نصب Unity. یونیتی رو دانلود کردم و نصب رو شروع کردم. زمانی که نوار وضعیت نصب به آخر نزدیک شد یه حسی بهم دست داد و گفتم:"آخیش... بالاخره تموم شد!"نصب نرم افزار تموم شد. با کلی شوق و ذوق نرم افزار رو باز کردم و... با یه ارور روبرو شدم!ارور رو تو گوگل سرچ کردم به نتیجه ای نرسیدم. گفتم حالا شاید فایل مشکل داشت. دوباره یونیتی از یه جای دیگه رو دانلود کردم دوباره نصب دوباره شوق و ذوق و دوباره ارور. این بخش رو دقیق به خاطر نمیارم اما فکر کنم ارورش با ارور قبلی متفاوت بود.چند بار دیگه فایل رو دانلود و نصب کردم اما اون حلقه(دانلود، نصب، شوق و ذوق و ارور) همش تکرار میشد. البته بار های آخر شوق و ذوقم کلا از بین رفته بود. آخرش دیگه کلا کلافه شدم و دو سه تا فحش آب دار به یونیتی و جاهایی که ازشون دانلود کرده بودم دادم و تمام.شروع برنامه نویسی منچند هفته گذشت. اینبار هم یه سوالی به فکرم رسید: چطور نرم افزار های یه سیستم عامل ساخته میشن؟دوباره رفتم پیش رفیق عزیزم Google. دوباره با کلمه "برنامه نویسی" برخوردم. با خودم گفتم این چیه دیگه هر سنگی بر میدارم باهاش روبرو میشم؟رفتم یکم تحقیق کردم و به یه نتیجه رسیدمبرنامه نویسی یعنی پیدا کردن یه ایده، کامل کردن ایده و زدن چهار تا دکمه رو کیبورد و چند تا کلیک موس و تمام!البته اینقدرا هم نتیجه گیریم ضایع نبود اما به هر حال، ادامه بدیم داستانوبا اسم چند تا از زبان های برنامه نویسی روبرو شدم. اسم زبان های خانواده C خیلی تو چشم بود. منظورم از خانواده C زبان های C، #C و ++C هست. اما نمیدونم چرا و به چه دلیل رفتم سراغ Java.اسم Java برام زیاد غریب نبود چون قبلا برای نصب بازی Minecraft رو سیستمم نصبش کرده بودم.با Java اصلا تجربه خوبی نداشتم. حدود 1 ماه در حال یادگیری بودم. منبع یادگیریم هم Youtube بود.نکتش اینکه بعد 1 ماه یادگیری حتی با حلقه های Java آشنا نشده بودم! نمیدونم مشکل از من بود، از آموزش بود یا از Java اما به هر حال خیلی ناجور بود.شروع برنامه نویسی وب1 2 ماه گذشت و تو این مدت ماه کلا در حال یادگیری زبان های مختلف بودم. یه هفته #C یاد میگرفتم یه هفته Python. کلا یه وضعی بود.گفتم اقا بسه دیگه. رفتم بالاخره یه تحقیق درست حسابی کردم و با زبان های مختلف برنامه نویسی آشنا شدم. با خودم گفتم: حالا که من و بقیه مردم برای پیدا کردن جواب سوالاتشون تو گوگل سرچ میکنن و وارد سایت ها میشن، چرا خودم یه سایت طراحی نکنم؟رفتم سراغ توسعه و برنامه نویسی وب. مثل بچه آدم اول رفتم سراغ HTML و CSS. دیگه هدفم مشخص شده بود.هنوز اولین فایل های HTML که نوشتم رو دارم. یادمه اولین تگ HTML که نوشتم تگ p و اولین Property های CSS که نوشتم Color و Background-color بودن.با HTML و CSS در حد متوسط آشنا شدم. البته هنوز توانایی طراحی یه قالب درست و حسابی رو نداشتم. به هر حال.دیدم کلا طراحی Static صفحات وب خیلی خسته کنندس و رفتم سمت بک اند. اولین زبان بک اند ام PHP بود. یه دوره آموزشی پیدا کردم و شروع کردم به دیدن اون. زمانی که در حال یادگیری PHP بودم یکم به یادگیری html و css هم میپرداختم.زبان برنامه نویسی PHPیک وقفه کوچک! پیام بازرگانیدوره آموزشی PHP که گفتم تموم شد. از مستندات خود سایت php و سایت های دیگه هنوز به یادگیری ادامه میدادم که یه دفعه خسته شدم. نمیدونم چرا اما با خودم گفتم برنامه نویسی وب برای من مناسب نیست.تو این وقفه اولین کاری که کردم یادگیری Wordpress بود. چیز جالبی بود. البته به نظرم واقعا خیلی نامردی بود. من اون همه زمان گذاشتم PHP یاد بگیرم تازه در حد مقدماتی. اما میتونستم با wordpress و افزونه هاش یه سایت چند برابر بهتر از چیزی که خودم با PHP خام میتونستم رو توسعه بدم؟البته اینکه با HTML، CSS و PHP آشنا بودم خیلی تو وردپرس بهم کمک کرد. پس اولین درسی که میگیریم اینکه قبل از اینکه بریم یه CMS یاد بگیریم بهتره با زبان برنامه نویسیش آشنا باشیم و اگه اولین بارمونه میخوایم یه CMS یاد بگیریم و چیزی از طراحی سایت نمیدونیم بهتره قبلش با HTML و CSS آشنا بشیم.سمت SEO هم رفتم. یه نکاتی در مورد SEO گوگل و مقاله نویسی یاد گرفتم.تو این مدت کار دیگه ای که کردم این بود که دوباره رفتم سمت Unity. از اونجایی که با PHP کار کرده بودم با حلقه ها، عملگر ها و بخش های اصلی دیگه یه زبان برنامه نویسی آشنا بودم.دو سه تا بازی ساده 2 بعدی با کمک Adobe Photoshop و Unity طراحی کردم و بازم خسته شدم!بازگشت به عقبدوباره رفتم سمت PHP. البته زمانی که در حال یادگیری PHP بودم هنوز با وردپرس کار میکردم. با OOP و MVC هم تو PHP آشنا شدم. سمت Laravel هم رفتم اما به نظرم زیاد خوب نبود. شاید من به چیزی فراتر از بهترین فریم ورک PHP نیاز داشتم.تقریبا همون زمانا بود که وارد تیم سروتم شدم.زمان مسخره بازی نبود. تمرکزم رو گذاشتم رو طراحی و توسعه وب. تو این زمان با Ajax، Javascript و API هم آشنا شدم.کلا چند تا درس مهم در مورد طراحی UI، افزایش فروش، برنامه نویسی وب و موارد مرتبط دیگه با توسعه وب یاد گرفتم:1- به کد هات اعتماد نکن2- به نظر مردم اعتماد نکن3- به آمار اعتماد نکن4- فقط به خودت اعتماد کن5- و در نهایت به اعتماد تکیه نکن!اعتماد به تنهایی کافی نیست. اما ممکن بپرسین زمانی که از چیزی مطمئن نیستم، دقیقا باید چی کار کنیم؟ خب، منم دقیق نمیدونم. شاید مطمئن نبودن به این معنی نیست که نباید آزمون خطا کرد.حال...الان در حال یادگیری NodeJS هستم چون احساس میکنم PHP برام کافی نیست. الان چیز خاصی جز یادگیری Node JS تو فکرم نیست. اما فکر نکنم این پایان این داستان باشه...