مسیر کامل فول استک شدن؛ از صفر تا ساخت پروژه واقعی
مسیر فول استک شدن از یادگیری HTML، CSS و JavaScript شروع میشود و با React، بکاند، Python، Django، دیتابیس، API و انتشار پروژه ادامه پیدا میکند. در این راهنما قدمبهقدم با مسیر یادگیری Full Stack و مهارتهای لازم برای ساخت یک پروژه واقع…
فول استک دولوپر دقیقاً چه کاری انجام میدهد؟
بیایید با یک مثال ساده جلو برویم. فرض کنید وارد یک فروشگاه اینترنتی شدهاید. عکس محصولات، منوها، دکمه خرید، فرم ورود و صفحهای که روی موبایل یا لپتاپ میبینید، همگی بخشی از Front-End هستند.
حالا روی دکمه «خرید» کلیک میکنید. اینجا دیگر فقط ظاهر سایت مطرح نیست. باید مشخص شود چه کسی وارد حساب شده، محصول موجود هست یا نه، سفارش کجا ذخیره شود و چه پاسخی دوباره به کاربر نمایش داده شود. این اتفاقها در Back-End رخ میدهند.
برنامهنویس فول استک دید نسبتاً کاملی از هر دو سمت دارد و میتواند ارتباط بین رابط کاربری، سرور و اطلاعات ذخیرهشده را مدیریت کند.
مسیر فول استک در یک نگاه
مفاهیم وب
اول باید بفهمید مرورگر، سرور و اینترنت چطور با هم ارتباط دارند.
فرانتاند
ظاهر سایت را با HTML، CSS و JavaScript میسازید.
بکاند
منطق برنامه، کاربران و پردازش اطلاعات را مدیریت میکنید.
دیتابیس
یاد میگیرید اطلاعات پروژه کجا و چگونه ذخیره شوند.
ابزارهای توسعه
Git، GitHub، Terminal و Linux کمکم وارد کارتان میشوند.
پروژه واقعی
در نهایت باید تمام این مهارتها را در یک پروژه واقعی کنار هم قرار دهید.
قبل از کدنویسی، کمی با دنیای وب آشنا شوید
لازم نیست در شروع کار متخصص شبکه باشید. حتی لازم نیست تمام جزئیات HTTP یا سرورها را حفظ کنید. چیزی که مهم است این است که بدانید وقتی آدرس یک سایت را در مرورگر وارد میکنید، پشت صحنه چه اتفاقی میافتد.
همین شناخت ساده بعداً کمک میکند مفاهیمی مثل API، هاست، دامنه و سرور برایتان یک مشت اصطلاح نامفهوم نباشند.
حالا وقت ساختن ظاهر سایت است
معمولاً اولین بخشی که یک تازهکار در برنامهنویسی وب با آن ارتباط خوبی میگیرد، فرانتاند است. دلیلش هم ساده است؛ کدی مینویسید و چند لحظه بعد نتیجهاش را جلوی چشم خودتان در مرورگر میبینید.
برای شروع، سه ابزار اصلی دارید:
اگر میخواهید این بخش را منظمتر و مرحلهبهمرحله یاد بگیرید، میتوانید مسیر آموزش برنامهنویسی فرانتاند وارناپاد را هم ببینید.
برای رفتن سراغ React عجله نکنید
دیدن پروژههای جذاب React ممکن است وسوسهتان کند خیلی زود JavaScript را کنار بگذارید و مستقیم وارد React شوید. این کار معمولاً بعداً دردسر درست میکند.
اگر Function، Array، Object، DOM، Promise، Async/Await و کار با API را خوب نفهمیده باشید، بسیاری از اتفاقاتی که در React میافتند برایتان شبیه جادو خواهند بود. پس اول JavaScript را بفهمید؛ بعد React خیلی منطقیتر میشود.
Git را نگذارید برای «بعداً»
خیلیها Git را ابزاری میدانند که فقط در شرکتها یا پروژههای خیلی بزرگ استفاده میشود. در حالی که بهتر است از همان پروژههای کوچک با آن کار کنید.
Git کمک میکند تغییرات کدتان را ثبت کنید، نسخههای قبلی را از دست ندهید و بفهمید چه چیزی را چه زمانی تغییر دادهاید. GitHub هم جای مناسبی برای نگهداری و نمایش پروژههای شماست.
حالا برویم سراغ پشتصحنه سایت
تا اینجای مسیر بیشتر با چیزهایی سروکار داشتید که روی صفحه دیده میشوند. در بکاند داستان کمی متفاوت است. اینجا قرار است منطق اصلی برنامه را مدیریت کنید.
مثلاً کاربری میخواهد وارد حسابش شود. بکاند باید اطلاعات را بگیرد، بررسی کند که کاربر واقعاً وجود دارد یا نه، رمز عبور را کنترل کند و در نهایت پاسخ مناسبی برگرداند.
برای بکاند انتخابهای زیادی دارید. لازم نیست همه را امتحان کنید. میتوانید یک مسیر مشخص مثل Python و Django را انتخاب کنید و همان را جدیتر ادامه دهید.
اگر به سمت سرور و منطق برنامه علاقه دارید، صفحه آموزش برنامهنویسی بکاند وارناپاد میتواند برای ادامه مسیر مفید باشد.
اطلاعات پروژه بالاخره باید جایی ذخیره شوند
فرض کنید فروشگاه اینترنتی شما هزار کاربر و صدها محصول دارد. مشخصات کاربران، قیمت محصولات، سفارشها و پرداختها را نمیتوان داخل چند متغیر ساده نگه داشت. اینجا پایگاه داده وارد ماجرا میشود.
برای شروع، SQL و یک دیتابیس رابطهای مانند PostgreSQL انتخاب خوبی هستند. لازم نیست از روز اول تمام دستورات SQL را حفظ باشید؛ مهم این است که ساختار دادهها و ارتباط بین آنها را بفهمید.
حالا فرانتاند و بکاند باید با هم حرف بزنند
فرض کنید کاربر در صفحه ورود ایمیل و رمز عبورش را وارد میکند. فرانتاند این اطلاعات را میگیرد و از طریق API برای بکاند میفرستد. بکاند آنها را بررسی میکند و نتیجه را دوباره برمیگرداند.
این همان نقطهای است که پروژه کمکم شبیه یک وباپلیکیشن واقعی میشود. در این مرحله مفاهیمی مثل REST API، JSON، Status Code و Token دیگر فقط اسم نیستند و کاربردشان را داخل پروژه میبینید.
امنیت چیزی نیست که بتوانید کاملاً نادیده بگیرید
قرار نیست با فول استک شدن یک متخصص امنیت سایبری هم بشوید. اما وقتی اطلاعات واقعی کاربران وارد پروژه میشود، بعضی اصول دیگر اختیاری نیستند.
پروژه را از لپتاپ خودتان بیرون بیاورید
تا وقتی فقط آدرس localhost را باز میکنید، پروژه شما عملاً فقط برای خودتان قابل استفاده است. مرحله جذاب بعدی زمانی است که آن را روی سرور قرار میدهید و یک آدرس واقعی به پروژه میدهید.
لازم نیست همان روز اول DevOps یاد بگیرید. آشنایی با Linux، سرور، Domain، DNS و SSL برای شروع کافی است. بعداً میتوانید سراغ Docker، CI/CD و ابزارهای حرفهایتر بروید.
فقط آموزش نبینید؛ چیزی بسازید
ممکن است ساعتها آموزش React، Django یا SQL ببینید و هنگام تماشا همهچیز هم ساده به نظر برسد. مشکل زمانی خودش را نشان میدهد که یک صفحه سفید جلوی شماست و باید خودتان پروژه را شروع کنید.
دقیقاً همین مرحله است که بیشترین یادگیری اتفاق میافتد. خطا میگیرید، جستوجو میکنید، ساختار را عوض میکنید و کمکم متوجه میشوید اجزای مختلف یک پروژه چطور واقعاً کنار هم قرار میگیرند.
اگر بخواهیم مسیر را خیلی خلاصه کنیم
لازم نیست ترتیب همه افراد دقیقاً یکسان باشد، اما برای یک مبتدی این مسیر میتواند نقطه شروع منطقی و قابل فهمی باشد:
چند اشتباه که میتواند مسیر را طولانیتر کند
مشکل بیشتر تازهکارها کمبود منابع آموزشی نیست؛ اتفاقاً منابع بیش از حد زیاد شدهاند. مشکل این است که مدام از یک مسیر به مسیر دیگری میپرند.
برای ورود به بازار کار، فقط اسم ابزارها کافی نیست
اینکه در رزومه بنویسید React، Django و PostgreSQL بلدید خوب است، اما کسی که رزومه را میبیند احتمالاً میخواهد بداند با این ابزارها چه چیزی ساختهاید.
یک پروژه ساده اما کامل، معمولاً ارزش بیشتری از دهها پروژه نصفهکاره دارد. پروژهای بسازید که بتوانید درباره تصمیمهایی که در آن گرفتهاید صحبت کنید.
بالاخره از کجا شروع کنیم؟
اگر هنوز هیچ تجربهای در برنامهنویسی وب ندارید، لازم نیست از همان ابتدا نگران Django، سرور یا دیتابیس باشید. HTML، CSS و JavaScript نقطه شروع منطقیتری هستند.
میتوانید ابتدا وارد مسیر آموزش فرانتاند شوید و زمانی که در ساخت رابط کاربری و JavaScript راحتتر شدید، سراغ بخش پشتصحنه بروید.
مرحله بعد میتواند آموزش برنامهنویسی بکاند باشد؛ جایی که Python، Django، API و کار با دیتابیس وارد مسیر شما میشوند.
چند سؤال رایج درباره فول استک شدن
اگر هیچ برنامهنویسی بلد نباشیم میتوانیم فول استک شویم؟
بله. فقط نباید همه مراحل را با هم شروع کنید. اول پایههای فرانتاند را یاد بگیرید و بعد بهتدریج مهارتهای دیگر را اضافه کنید.
اول فرانتاند بهتر است یا بکاند؟
قانون قطعی وجود ندارد، اما برای خیلی از تازهکارها فرانتاند شروع راحتتری است؛ چون نتیجه کد را همان لحظه در مرورگر میبینند.
آیا یک فول استک دولوپر باید همه زبانها را بلد باشد؟
نه. حتی چنین کاری منطقی هم نیست. بهتر است یک مجموعه مشخص از ابزارها را انتخاب کنید و در همان مسیر تجربه واقعی به دست بیاورید.
چه زمانی میتوان گفت وارد مسیر واقعی فول استک شدهایم؟
وقتی بتوانید یک پروژه را از رابط کاربری تا API، بکاند، دیتابیس و انتشار روی سرور جلو ببرید، دیگر فقط چند ابزار جداگانه یاد نگرفتهاید؛ شما دارید یک پروژه را بهصورت کامل میبینید.
فول استک شدن مسابقه جمع کردن زبان و فریمورک نیست
شاید در ابتدای مسیر فکر کنید باید HTML، CSS، JavaScript، React، Python، Django، SQL، Linux و دهها ابزار دیگر را هرچه سریعتر یاد بگیرید. این نگاه معمولاً فقط باعث سردرگمی میشود.
یک مهارت را شروع کنید، با آن چیزی بسازید و بعد سراغ مرحله بعد بروید. زمانی که فرانتاند را به بکاند وصل میکنید، اطلاعات را داخل دیتابیس ذخیره میکنید و پروژه را روی یک سرور واقعی بالا میآورید، معنی Full Stack کمکم برایتان کاملاً روشن میشود.
مهم نیست چند اسم مختلف در رزومه شما نوشته شده باشد. مهم این است که وقتی یک ایده جلوی شما قرار میگیرد، بتوانید آن را قدمبهقدم به یک محصول قابل استفاده تبدیل کنید.
