مسیر کامل فول استک شدن؛ از صفر تا ساخت پروژه واقعی
مسیر فول استک شدن از یادگیری HTML، CSS و JavaScript شروع میشود و با React، بکاند، Python، Django، دیتابیس، API و انتشار پروژه ادامه پیدا میکند. در این راهنما قدمبهقدم با مسیر یادگیری Full Stack و مهارتهای لازم برای ساخت یک پروژه واقع…
فول استک دولوپر دقیقاً چه بخشهایی از یک پروژه را میشناسد؟
برای اینکه موضوع سادهتر شود، یک فروشگاه اینترنتی را تصور کنید. عکس محصولات، منوها، دکمه خرید، فرم ورود و صفحهای که روی موبایل یا لپتاپ میبینید، همگی بخشی از Front-End هستند.
حالا روی دکمه «خرید» کلیک میکنید. اینجا دیگر فقط ظاهر سایت مطرح نیست. باید مشخص شود چه کسی وارد حساب شده، محصول موجود هست یا نه، سفارش کجا ذخیره شود و چه پاسخی دوباره به کاربر نمایش داده شود. این اتفاقها در Back-End رخ میدهند.
یک فول استک دولوپر لازم نیست در تمام بخشها متخصص مطلق باشد، اما باید تصویر خوبی از کل پروژه داشته باشد و بتواند ارتباط بین رابط کاربری، سرور و اطلاعات ذخیرهشده را مدیریت کند.
مراحل یادگیری فول استک از ابتدا تا ورود به پروژه
مفاهیم وب
قبل از شروع کدنویسی، بهتر است بفهمید مرورگر، سرور و اینترنت چطور با هم ارتباط دارند.
فرانتاند
اینجا یاد میگیرید ظاهر و رفتار صفحات وب را با HTML، CSS و JavaScript بسازید.
بکاند
در بکاند با منطق برنامه، کاربران، درخواستها و پردازش اطلاعات سروکار دارید.
دیتابیس
در این مرحله مشخص میشود اطلاعات پروژه کجا ذخیره شوند و چطور دوباره به آنها دسترسی پیدا کنیم.
ابزارهای توسعه
کمکم ابزارهایی مثل Git، GitHub، Terminal و Linux هم وارد جریان واقعی کار میشوند.
پروژه واقعی
در نهایت باید همه این مهارتها را داخل یک پروژه واقعی کنار هم قرار دهید؛ جایی که تازه ارتباط بین بخشها کاملاً روشن میشود.
قبل از کدنویسی، بفهمید وب چطور کار میکند
برای شروع لازم نیست متخصص شبکه باشید و قرار هم نیست تمام جزئیات HTTP یا سرورها را حفظ کنید. چیزی که مهم است این است که بدانید وقتی آدرس یک سایت را در مرورگر وارد میکنید، پشت صحنه چه اتفاقی میافتد.
همین شناخت اولیه باعث میشود وقتی بعداً به مفاهیمی مثل API، هاست، دامنه و سرور میرسید، برایتان یک مشت اصطلاح نامفهوم نباشند.
حالا میتوانید چیزی بسازید که در مرورگر دیده میشود
برای خیلی از افراد، فرانتاند اولین بخشی است که ارتباط خوبی با آن برقرار میکنند. فرانتاند است. دلیلش ساده است؛ کدی مینویسید و چند لحظه بعد نتیجه را جلوی چشم خودتان در مرورگر میبینید.
برای شروع، سه ابزار اصلی دارید:
اگر میخواهید این بخش را منظمتر و مرحلهبهمرحله یاد بگیرید، میتوانید مسیر آموزش برنامهنویسی فرانتاند وارناپاد را هم ببینید.
قبل از React، JavaScript را واقعاً یاد بگیرید
دیدن پروژههای جذاب 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 کمکم برایتان کاملاً روشن میشود.
تعداد اسمهایی که در رزومه مینویسید تعیینکننده نیست. مهم این است که وقتی یک ایده جلوی شما قرار میگیرد، بتوانید آن را قدمبهقدم به یک محصول قابل استفاده تبدیل کنید.
