چطور فول استک شدم؟

دوره ی طراحی وب مقدماتی با ASP.NET رو رفته بودم. دوستش داشتم چون برای ساخت یک سایت معمولی، چند تا کلیک می‌کردم و سایتم ساخته می‌شد.چون خودش فرم های لاگین و لاگ اوت و اینا رو داشت.( تقریبا سال های 88 - 90 )پروژه ی فارغ التحصیلی مقطع لیسانسم، یه پرتال سازمانی بود.اون موقع استادمون گفت : عرفانی، این مایکروسافت یه محصولی به نام شیرپوینت داره ... برو ببین چیهما رفتیم و کلی شیرپوینت یادگرفتیم و بالاخره پروژه رو انجامش دادم و تمام... سال 90 رفتم سربازی تا 9292 برگشتم یه کم استراحت کردم و بعدش یه شرکتی آگهی استخدام { شیرپوینت کار } زده بود.چون خیلی مسلط بودم رفتمو قبول شدم.جالب اینجا بود که این شرکت، یک اتوماسیون می‌خواست داشته باشه، و به این نتیجه رسیده بود که از شیرپوینت استفاده کنه...کار نداریم... آقا شروع کردیم با اینفوپث و شیرپوینت دیزاینر و این جور چیزا، به توسعه ی شیرپوینت...تمام این کارهایی که میگم، با شیرپوینت 2010 انجامش دادم و بعده ها آموزش هایی تهیه کردم ازش و توی سایتم قرارش دادم. ( آموزش شیرپوینت 2010 )هر روز که می‌گذشت، چیزهای سخت تری ازم می‌خواستند که دیگه با فرم های معمولی قابل پیاده سازی نبود.گفتم باید وارد فاز کدنویسی شیرپوینت بشم.بعد از کلی تحقیق یاد گرفتم چطور میشه برای شیرپوینت با استفاده از اسکریپت ها، کدنویسی کرد.اون چیزهای سختی که ازم می‌خواستند، یکم انجامش برام راحت تر شده بود.مثلا یک سیستم برای ثبت ساعت ها و گرفتن مرخصی ساعتی و روزانه و اضافه کار و محاسبه حقوق و دستمزد و ... اونایی که توی این موضوع ورود کردند، می‌دونن چقدر داستان داره این { سیستم ورود و خروج پرسنل } (لینک آخرین نمونه ای که پیاده سازی شده است )با چه ذوق و شوقی، یک سیستم دبیرخانه پیاده سازی کردم که بیشترش کدنویسی شده بود و تا جایی که یادم میاد از فرم های آماده ی شیرپوینت یا فرم سازهای دیگه، استفاده نشده بود.این سیستم دبیرخانه هم خیلی جذاب بود واسم.برای همین شروع کردم به ضبط دوره ی آموزشی پروژه محور پیاده سازی دبیرخانه با شیرپوینت 2010باز چند سالی ادامه دادم و همینطور سیستم های مختلف پیاده سازی می‌شد و حجم کدها افزایش زیادی پیدا کرده بود.امکان دسترسی یکجا، به تمام کدهای نوشته شده، نداشتم. یعنی اگر یک جایی نیاز بود از ورژن جدیدتر یک کتابخانه استفاده کنیم، باید تک تک فایل ها رو باز میکردیم و اونها رو اصلاح میکردیم.کارم خیلی سخت شده بود.زود عصبی می‌شدم.هر درخواستی ازم می‌شد، موضع می‌گرفتم و زیاد اوضاع و احوال خوبی نداشتم.از دات نت نا امید شده بودم چون هر آپدیتی که می‌داد باید کلی زور می‌زدم که بدونم چه تغییراتی انجام شده.یادمه اون موقع تازه net core. اومده بود. و من که دیگه رمقی برای یادگیری و پنجه تو پنجه شدن با اون نداشتم.دائم فکر می‌کردم چه چیزی رو باید یاد بگیرم که بتونم پروژه های بزرگ رو هندل کنم.توسعه ی آسان و سریعی داشته باشه و خلاصه قابلیت انعطاف بالایی داشته باشه ... حدود سال 94 بود و تازه ازدواج کرده بودم و بیشتر توی همین فکرها بودم.هرچه بیشتر می‌گشتم، بیشتر سردرگم می‌شدم. یه پروژه ی بزرگ دیتابیسش چیه؟ بک اندش با چی زده شده؟ فرانت اندش با چه تکنولوژی ایه؟بعضی پروژه هایی که بهم پیشنهاد می‌شد، دنبال فرانت اند کار بودم تا کدشو بزنه.کسی هم به این راحتی پیدا نمی‌شد و پروژه می‌پرید.برای من همین درگیری با کدهای دیتابیس و مایگریشونو اینا، کلی دردسر داشت و حاضر نبودم سمت فرانت اند برم.بالاخره بعد از کلی کلنجار رفتن با خودم گفتم بزار در مورد فرانت هم یکم تحقیق کنم. 3 تا تکنولوژی روی بورس بودن اون موقعا 1- ری اکت 2- ویو 3- انگولاراز انگولار یه مقدار بدی، در موردش خونده بودم و سریع گذاشتمش کنار...بین اون 2 تای دیگه هم یکم در موردشون و سینتکس کدنویسیشون مطالعه کردم. مستندات ویو خیلی ساده همه چیز رو توضیح داده بود. خیلی ساده... این سادگی با روحم بازی کرد. انگار یه رفیق خیلی قدیمی رو تازه پیدا کرده بودم. یه کتابخونه بدون پیچیدگی خاصی... یادمه اون روزها سرچ می‌کردم که چطور میشه از JQuery داخل ویو جی اس استفاده کرد :) فکر می‌کردم که JQuery خیلی خوبه و حتی توی ویو هم باید ازش استفاده کرد :))روزهای سختی بود... فکر کن سرکار باید بری، شیرپوینت کار کنی...بعد باید فکر رفتن سرخونه زندگی هم می‌بودم.توی عقد بودیم و خب خانم هم ازمون انتظار داشت دیگه...بعد کلی هم خودخوری می‌کردم که چرا باید کدهایی رو باشیرپوینت بزنم که میدونم بعدا توسعشون خیلی سخته...ناامید که نشده بودم ولی خیلی فکرم درگیر این موضوع شده بود.می‌دونستم چیزی بارم نیست ولی نمیدونستم چی باید یاد بگیرم.خلاصه یکم بیشتر و عمیق تر توی VueJS رفتم و دیدم که بابا بیشتر مشکل من، از عدم آگاهی نسبت به فرانت اند بوده... (تا آخر داستان بخومید تا بدونید که از بک اند هم چیزی نمی‌فهمیدم :) )به نظر من بزرگترین، بزرگترین و بزرگترین مزیت بلد بودن یک فریم ورک فرانت اند، همین کامپوننتی کردن کدها بود. اصلا ساختار کدنویسی و ساختمان برنامه ی شما رو درست می‌کنه.اگر بخوام مثال بزنم یک ساختمان رو در نظر بگیرید که همه ازش وحشت دارند.از بس که زشت و بدسلیقه ساخته شده...حتی اگر فونداسیونش، بهترین و محکم ترین باشه، بازهم کسی حاضر به زندگی در اون ساختمان نیست.از اون طرف دیگه شما یک ساختمان خیلی زیبایی رو در نظر بگیرید که با اولین زلزله، در و پیکرش آوار میشه و با خاک یکسان میشه.از شیشه هاش باد میاد داخل و سرمایش و گرمایش مناسبی نداره.اینجاست که میگیم، بک اند هم باید قوی باشه.در واقع برنامه ی خوب، همه چیزش باید خوب باشه. هم ظاهر شیک و هم باطن عالیدر همین سالها بود که با NodeJS آشنا شدم و با دوره ی آموزشی nodejs سایت راکت آشنا شدم.خیلی دوره خوبی بود و خدا خیرشون بده آقای موسوی، موسس این سایت رو... اومدم یک سایت فروشگاهی درست کنم، دیدم تا الان هیچی از برنامه نویسی بکند یاد نداشتم.هرچی می‌رفتم جلوتر به خطاهایی برخورد می‌کردم که اصلا برام آشنا نبودند. برای رفع این خطاها کلی جستجو می‌کردم و تازه معنی و مفهوم بعضی اصطلاحات رو متوجه می‌شدم.اگر اون خطاها نبودند، معانی برخی اصطلاحات رو هرچی هم توضیح می‌دادند نمی‌فهمیدم. بوجود آمدن خطاها و باگ هایی که در طی این راه بوجود می‌آمد، باعث میشد بیشتر به مفاهیم پی ببرم.فرض کنید شما مریض هستید و هیچ علائمی از درد توی وجود شما نیست.طبیعیه شما هیچوقت برای درمان خود اقدامی نمی‌کنید و فکر می‌کنید سالم هستید.پس اولین قدم در رفع مشکلات، مشاهده و لمس کردن اون مشکل هست.یه معلمی داشتیم که می‌گفت، 50 درصد از حل مسئله، فهم مسئله است.خیلی از این اصطلاحات مثل cors یا csurf رو قبلا نشنیده بودم.چون ASP.NET خودش این چیزا رو هندل می‌کنه اما تو وقتی میخوای خودت وب سرور درست کنی، باید براشون یه راه حلی پیدا کنید.دیگه تازه خون برنامه نویسی داشت توی رگهام میدویید.من که زده شده بودم از هرچی برنامه نویسیه، و هر روز استرسم افزوده می‌شد، از اینکه تازه راه رو پیدا کرده بودم خیلی لذت می‌بردم و در حوزه ی فرانت اند و بک اند هر روز قوی تر می‌شدم.در نهایت چیزی که من رو تبدیل کرد به یک برنامه نویس فول استک، چیزی نبود جز تشنگی زیاد ...من سوالات رو می‌دونستم و تشنه ی جواب هاش بودم...که با دعای پدر و مادرم، خداوند منان دستم رو گرفت و من رو سیرابم کردم.الان مدتهاست با همین بستر NodeJS ، VueJS و MongoDB کار می‌کنم و سایت دکتر جی اس رو با هین تکنولوژی ها زدم.هرچند از گاهی هم یه دوره ی آموزشی رو در سایتم شروع می‌کنم.آخرین دوره ای هم که در حال برگزاری اون هستم { آموزش پروژه محور احراز هویت (Authentication) با JWT }فرانت این دوره با Nuxt 3 آموزش داده شده و برای بک اند، از ExpressJS استفاده کردیم. برای دوستانی که ویو جی اس کار هستند و از طرفی، سئو واسشون اهمیت زیادی داره، می‌تونه دوره ی خوبی باشه چون Nuxt ، سمت سرور اجرا میشه ... برخلاف Vuejs که در سمت کلاینت اجرا میشه.همچنین برای دیزاین پروژه، از فریم ورک tailwindcss استفاده شده که جذابیت این پروژه رو دو چندان می‌کنه.شاید لینک های زیر برای دوستانی که مثل گذشته های من در ابتدای مسیر برنامه نویسی هستند، دوره های زیر مناسب باشه...دوره های آموزشی فرانت انددوره های بک انددوره های دیتابیسدوره های پروژه محور