مسیر یادگیری برنامه نویسی فرانت اند

برنامه نویس فرانت اند کسی است که بخش ظاهری و تعاملی وب سایت یا اپلیکیشن را طراحی و پیاده‌سازی می‌کند. اگر شما هم به طراحی و پیاده‌سازی ظاهر وب سایت‌ها، تجربه کاربری جذاب و خلاقانه و استفاده از زبان های برنامه نویسی مدرن علاقه‌مند هستید، برنامه نویسی فرانت اند می‌تواند یک گزینه شغلی مناسب برای شما باشد

📚 10 دوره آموزشی
🗺️ 10 گام یادگیری

نقشه راه تعاملی برنامه نویسی فرانت اند

برنامه نویسی فرانت اند چیست؟

توسعه‌دهنده نرم‌افزار فردی است که با نوشتن کدهای کامپیوتر، برنامه‌ها، وب‌سایت‌ها و سامانه‌های دیجیتال را خلق و نگهداری می‌کند.

روز کاری و فعالیت‌های اصلی: روز کاری شامل بررسی کدهای قبلی، حل باگ‌های گزارش‌شده، پیاده‌سازی ویژگی‌های جدید، شرکت در جلسات کوتاه همگام‌سازی تیم و بازبینی کد همکاران است.

مراحل و سرفصل‌های یادگیری برنامه نویسی فرانت اند

برای تسلط کامل بر برنامه نویسی فرانت اند، این نقشه راه به مراحل مشخص تقسیم شده است. پیشنهاد می‌کنیم مراحل را به ترتیب و همراه با تمرین عملی طی کنید:

مرحله 1

مرحله 1: دوره ۰: شروع برنامه‌نویسی و آشنایی با وب

فصل ۱: دنیای وب

• اینترنت چیست؟

درس 1: اینترنت چیست؟

• سایت چگونه باز می‌شود؟

درس 2: سایت چگونه باز می‌شود؟

• مرورگر، سرور و دامنه

درس 3: مرورگر، سرور و دامنه

• تفاوت سایت و برنامه تحت وب

درس 4: تفاوت سایت و برنامه تحت وب

• فرانت‌اند، بک‌اند و طراحی UI

درس 5: فرانت‌اند، بک‌اند و طراحی UI

فصل ۲: ابزارهای برنامه‌نویس

• فایل و پوشه

درس 1: فایل و پوشه

• پسوند فایل‌ها

درس 2: پسوند فایل‌ها

• نصب و آشنایی با VS Code

درس 3: نصب و آشنایی با VS Code

• کار با مرورگر

درس 4: کار با مرورگر

• آشنایی با Developer Tools

درس 5: آشنایی با Developer Tools

فصل ۳: اولین کد

• ساخت پوشه پروژه

درس 1: ساخت پوشه پروژه

• ساخت فایل index.html

درس 2: ساخت فایل index.html

• نوشتن اولین متن

درس 3: نوشتن اولین متن

• بازکردن پروژه در مرورگر

درس 4: بازکردن پروژه در مرورگر

• تغییر و مشاهده نتیجه

درس 5: تغییر و مشاهده نتیجه

فصل ۴: روش یادگیری برنامه‌نویسی

• برنامه‌نویس چگونه مسئله حل می‌کند؟

درس 1: برنامه‌نویس چگونه مسئله حل می‌کند؟

• خطا چیست؟

درس 2: خطا چیست؟

• چگونه سؤال فنی بپرسیم؟

درس 3: چگونه سؤال فنی بپرسیم؟

• استفاده صحیح از جست‌وجو و هوش مصنوعی

درس 4: استفاده صحیح از جست‌وجو و هوش مصنوعی

• کپی‌کردن کد در برابر فهمیدن کد

درس 5: کپی‌کردن کد در برابر فهمیدن کد

فصل ۵: پروژه اول

• طراحی صفحه معرفی

درس 1: طراحی صفحه معرفی

• اضافه‌کردن عنوان و تصویر

درس 2: اضافه‌کردن عنوان و تصویر

• بررسی کد

درس 3: بررسی کد

• ارائه پروژه به کلاس

درس 4: ارائه پروژه به کلاس

مرحله 2

مرحله 2: دوره اول: HTML و ساختار صفحات وب

فصل ۱: ساختار اولیه HTML

• HTML چیست و مرورگر چگونه آن را می‌خواند؟

درس 1: HTML چیست و مرورگر چگونه آن را می‌خواند؟

• تگ، ویژگی، مقدار و محتوا

درس 2: تگ، ویژگی، مقدار و محتوا

• تگ باز، تگ بسته و تگ‌های بدون محتوا

درس 3: تگ باز، تگ بسته و تگ‌های بدون محتوا

• ساختار استاندارد سند HTML

درس 4: ساختار استاندارد سند HTML

• تودرتویی عناصر و تورفتگی کد

درس 5: تودرتویی عناصر و تورفتگی کد

فصل ۲: متن و محتوای صفحه

• عنوان‌های h1 تا h6

درس 1: عنوان‌های h1 تا h6

• پاراگراف و شکستن خط

درس 2: پاراگراف و شکستن خط

• تأکید معنایی روی متن

درس 3: تأکید معنایی روی متن

• فهرست مرتب و نامرتب

درس 4: فهرست مرتب و نامرتب

• نقل‌قول و کد در صفحه

درس 5: نقل‌قول و کد در صفحه

فصل ۳: لینک و تصویر

• ساخت لینک

درس 1: ساخت لینک

• لینک داخلی و خارجی

درس 2: لینک داخلی و خارجی

• مسیر نسبی و مطلق

درس 3: مسیر نسبی و مطلق

• اضافه‌کردن تصویر

درس 4: اضافه‌کردن تصویر

• متن جایگزین تصویر

درس 5: متن جایگزین تصویر

• ساخت منوی ساده بین صفحات

درس 6: ساخت منوی ساده بین صفحات

فصل ۴: HTML معنایی

• تفاوت ظاهر و معنا در HTML

درس 1: تفاوت ظاهر و معنا در HTML

• عناصر header، main و footer

درس 2: عناصر header، main و footer

• عناصر nav، section و article

درس 3: عناصر nav، section و article

• دکمه در برابر لینک

درس 4: دکمه در برابر لینک

• ساختار صحیح عنوان‌ها

درس 5: ساختار صحیح عنوان‌ها

• بازنویسی یک صفحه با HTML معنایی

درس 6: بازنویسی یک صفحه با HTML معنایی

فصل ۵: جدول و داده

• ساخت جدول

درس 1: ساخت جدول

• سطر، ستون و سلول

درس 2: سطر، ستون و سلول

• عنوان جدول

درس 3: عنوان جدول

• ادغام سلول‌ها

درس 4: ادغام سلول‌ها

• جدول چه زمانی نباید استفاده شود؟

درس 5: جدول چه زمانی نباید استفاده شود؟

فصل ۶: فرم‌ها

• فرم چیست؟

درس 1: فرم چیست؟

• ورودی متن و رمز عبور

درس 2: ورودی متن و رمز عبور

• ایمیل، عدد و تاریخ

درس 3: ایمیل، عدد و تاریخ

• Checkbox و Radio

درس 4: Checkbox و Radio

• Select و Textarea

درس 5: Select و Textarea

• ارتباط label با ورودی

درس 6: ارتباط label با ورودی

• اعتبارسنجی اولیه HTML

درس 7: اعتبارسنجی اولیه HTML

• ساخت فرم ثبت‌نام

درس 8: ساخت فرم ثبت‌نام

فصل ۷: پروژه نهایی HTML

• طراحی سایت چندصفحه‌ای شخصی و علایق

درس 1: طراحی سایت چندصفحه‌ای شخصی و علایق

مرحله 3

مرحله 3: دوره دوم: طراحی صفحات با CSS

فصل ۱: شروع CSS

• CSS چیست؟

درس 1: CSS چیست؟

• اتصال فایل CSS به HTML

درس 2: اتصال فایل CSS به HTML

• قانون، انتخابگر و ویژگی

درس 3: قانون، انتخابگر و ویژگی

• انتخابگر تگ، کلاس و شناسه

درس 4: انتخابگر تگ، کلاس و شناسه

• انتخاب چند عنصر

درس 5: انتخاب چند عنصر

• استفاده از Developer Tools برای CSS

درس 6: استفاده از Developer Tools برای CSS

فصل ۲: آبشار و اولویت‌بندی

• مفهوم Cascade

درس 1: مفهوم Cascade

• Specificity

درس 2: Specificity

• Inheritance

درس 3: Inheritance

• ترتیب قوانین

درس 4: ترتیب قوانین

• مشکل !important

درس 5: مشکل !important

• حل تعارض استایل‌ها

درس 6: حل تعارض استایل‌ها

فصل ۳: رنگ و تایپوگرافی

• روش‌های تعریف رنگ

درس 1: روش‌های تعریف رنگ

• پس‌زمینه

درس 2: پس‌زمینه

• فونت و خانواده فونت

درس 3: فونت و خانواده فونت

• اندازه و وزن متن

درس 4: اندازه و وزن متن

• فاصله خطوط و حروف

درس 5: فاصله خطوط و حروف

• خوانایی متن فارسی

درس 6: خوانایی متن فارسی

• ساخت پالت رنگ ساده

درس 7: ساخت پالت رنگ ساده

فصل ۴: Box Model

• Content، Padding، Border و Margin

درس 1: Content، Padding، Border و Margin

• عرض و ارتفاع

درس 2: عرض و ارتفاع

• box-sizing

درس 3: box-sizing

• واحدهای px، %، rem و vh

درس 4: واحدهای px، %، rem و vh

• Overflow

درس 5: Overflow

• تمرین ساخت کارت محصول

درس 6: تمرین ساخت کارت محصول

فصل ۵: نمایش و موقعیت

• Block و Inline

درس 1: Block و Inline

• display

درس 2: display

• Position Relative

درس 3: Position Relative

• Position Absolute

درس 4: Position Absolute

• Fixed و Sticky

درس 5: Fixed و Sticky

• z-index

درس 6: z-index

• ساخت منوی چسبان

درس 7: ساخت منوی چسبان

فصل ۶: Flexbox

• محور اصلی و فرعی

درس 1: محور اصلی و فرعی

• justify-content

درس 2: justify-content

• align-items

درس 3: align-items

• فاصله‌گذاری با gap

درس 4: فاصله‌گذاری با gap

• شکستن ردیف‌ها

درس 5: شکستن ردیف‌ها

• ترتیب و اندازه اعضا

درس 6: ترتیب و اندازه اعضا

• ساخت Navbar

درس 7: ساخت Navbar

• ساخت مجموعه کارت‌ها

درس 8: ساخت مجموعه کارت‌ها

فصل ۷: CSS Grid

• سطر و ستون در Grid

درس 1: سطر و ستون در Grid

• تعریف ستون‌ها

درس 2: تعریف ستون‌ها

• fr و repeat

درس 3: fr و repeat

• فاصله‌گذاری

درس 4: فاصله‌گذاری

• ترکیب چند سلول

درس 5: ترکیب چند سلول

• Grid خودکار

درس 6: Grid خودکار

• ساخت گالری تصاویر

درس 7: ساخت گالری تصاویر

• ساخت داشبورد ساده

درس 8: ساخت داشبورد ساده

فصل ۸: طراحی واکنش‌گرا

• واکنش‌گرایی چیست؟

درس 1: واکنش‌گرایی چیست؟

• Mobile First

درس 2: Mobile First

• Media Query

درس 3: Media Query

• تصاویر واکنش‌گرا

درس 4: تصاویر واکنش‌گرا

• منوی موبایل

درس 5: منوی موبایل

• تست صفحه در اندازه‌های مختلف

درس 6: تست صفحه در اندازه‌های مختلف

• بازطراحی یک صفحه دسکتاپ برای موبایل

درس 7: بازطراحی یک صفحه دسکتاپ برای موبایل

فصل ۹: افکت و کامپوننت‌های بصری

• Border Radius و Shadow

درس 1: Border Radius و Shadow

• Gradient

درس 2: Gradient

• Transition

درس 3: Transition

• Transform

درس 4: Transform

• Animation ساده

درس 5: Animation ساده

• متغیرهای CSS

درس 6: متغیرهای CSS

• ساخت Button، Card و Badge قابل‌استفاده مجدد

درس 7: ساخت Button، Card و Badge قابل‌استفاده مجدد

مرحله 4

مرحله 4: دوره سوم: مبانی برنامه‌نویسی با JavaScript

فصل ۱: اولین برنامه JavaScript

• JavaScript چه کاری انجام می‌دهد؟

درس 1: JavaScript چه کاری انجام می‌دهد؟

• اتصال JavaScript به HTML

درس 2: اتصال JavaScript به HTML

• Console

درس 3: Console

• دستور و عبارت

درس 4: دستور و عبارت

• Comment

درس 5: Comment

• خواندن خطاهای Console

درس 6: خواندن خطاهای Console

فصل ۲: متغیر و نوع داده

• متغیر چیست؟

درس 1: متغیر چیست؟

• let و const

درس 2: let و const

• String

درس 3: String

• Number

درس 4: Number

• Boolean

درس 5: Boolean

• null و undefined

درس 6: null و undefined

• تشخیص نوع داده

درس 7: تشخیص نوع داده

• تبدیل نوع داده

درس 8: تبدیل نوع داده

فصل ۳: عملگرها

• عملیات ریاضی

درس 1: عملیات ریاضی

• باقی‌مانده تقسیم

درس 2: باقی‌مانده تقسیم

• مقایسه

درس 3: مقایسه

• برابری دقیق

درس 4: برابری دقیق

• عملگرهای منطقی

درس 5: عملگرهای منطقی

• ترکیب شرط‌ها

درس 6: ترکیب شرط‌ها

فصل ۴: تصمیم‌گیری

• if

درس 1: if

• else

درس 2: else

• else if

درس 3: else if

• شرط تودرتو

درس 4: شرط تودرتو

• عملگر سه‌تایی

درس 5: عملگر سه‌تایی

• switch

درس 6: switch

• پروژه تشخیص وضعیت نمره

درس 7: پروژه تشخیص وضعیت نمره

فصل ۵: حلقه‌ها

• چرا به حلقه نیاز داریم؟

درس 1: چرا به حلقه نیاز داریم؟

• حلقه for

درس 2: حلقه for

• حلقه while

درس 3: حلقه while

• شمارنده

درس 4: شمارنده

• break و continue

درس 5: break و continue

• حلقه روی آرایه

درس 6: حلقه روی آرایه

• ساخت جدول ضرب

درس 7: ساخت جدول ضرب

فصل ۶: تابع

• تابع چیست؟

درس 1: تابع چیست؟

• تعریف و اجرای تابع

درس 2: تعریف و اجرای تابع

• ورودی تابع

درس 3: ورودی تابع

• خروجی با return

درس 4: خروجی با return

• متغیر محلی و Scope

درس 5: متغیر محلی و Scope

• Function Expression

درس 6: Function Expression

• Arrow Function

درس 7: Arrow Function

• تقسیم مسئله به توابع کوچک

درس 8: تقسیم مسئله به توابع کوچک

فصل ۷: آرایه

• ساخت آرایه

درس 1: ساخت آرایه

• خواندن و تغییر اعضا

درس 2: خواندن و تغییر اعضا

• اضافه و حذف عضو

درس 3: اضافه و حذف عضو

• طول آرایه

درس 4: طول آرایه

• جست‌وجو در آرایه

درس 5: جست‌وجو در آرایه

• پیمایش آرایه

درس 6: پیمایش آرایه

• map

درس 7: map

• filter و find

درس 8: filter و find

فصل ۸: شیء

• شیء چیست؟

درس 1: شیء چیست؟

• ویژگی و مقدار

درس 2: ویژگی و مقدار

• خواندن و تغییر ویژگی

درس 3: خواندن و تغییر ویژگی

• آرایه‌ای از اشیا

درس 4: آرایه‌ای از اشیا

• شیء تودرتو

درس 5: شیء تودرتو

• تبدیل مسئله واقعی به مدل داده

درس 6: تبدیل مسئله واقعی به مدل داده

• ساخت اطلاعات محصولات

درس 7: ساخت اطلاعات محصولات

فصل ۹: اشکال‌زدایی

• خطای Syntax

درس 1: خطای Syntax

• خطای Runtime

درس 2: خطای Runtime

• خطای منطقی

درس 3: خطای منطقی

• استفاده از console.log

درس 4: استفاده از console.log

• Breakpoint

درس 5: Breakpoint

• خواندن Stack Trace

درس 6: خواندن Stack Trace

• ساخت فرایند شخصی رفع خطا

درس 7: ساخت فرایند شخصی رفع خطا

مرحله 5

مرحله 5: دوره چهارم: JavaScript در مرورگر

فصل ۱: DOM

• DOM چیست؟

درس 1: DOM چیست؟

• انتخاب عنصر

درس 2: انتخاب عنصر

• انتخاب چند عنصر

درس 3: انتخاب چند عنصر

• تغییر متن

درس 4: تغییر متن

• تغییر کلاس

درس 5: تغییر کلاس

• تغییر ویژگی

درس 6: تغییر ویژگی

• ساخت عنصر جدید

درس 7: ساخت عنصر جدید

• حذف عنصر

درس 8: حذف عنصر

فصل ۲: رویدادها

• Event چیست؟

درس 1: Event چیست؟

• رویداد Click

درس 2: رویداد Click

• رویداد Input

درس 3: رویداد Input

• رویداد Submit

درس 4: رویداد Submit

• شیء Event

درس 5: شیء Event

• جلوگیری از رفتار پیش‌فرض

درس 6: جلوگیری از رفتار پیش‌فرض

• Event Delegation

درس 7: Event Delegation

• ساخت منوی تعاملی

درس 8: ساخت منوی تعاملی

فصل ۳: فرم و اعتبارسنجی

• دریافت مقدار فرم

درس 1: دریافت مقدار فرم

• کنترل خالی‌بودن

درس 2: کنترل خالی‌بودن

• کنترل طول

درس 3: کنترل طول

• نمایش پیام خطا

درس 4: نمایش پیام خطا

• پاک‌کردن خطا

درس 5: پاک‌کردن خطا

• اعتبارسنجی چند فیلد

درس 6: اعتبارسنجی چند فیلد

• ساخت فرم عضویت تعاملی

درس 7: ساخت فرم عضویت تعاملی

فصل ۴: ذخیره اطلاعات

• حافظه موقت و دائمی

درس 1: حافظه موقت و دائمی

• Local Storage

درس 2: Local Storage

• ذخیره String

درس 3: ذخیره String

• JSON چیست؟

درس 4: JSON چیست؟

• JSON.stringify

درس 5: JSON.stringify

• JSON.parse

درس 6: JSON.parse

• ذخیره آرایه و شیء

درس 7: ذخیره آرایه و شیء

• نگهداری تکالیف بعد از بستن مرورگر

درس 8: نگهداری تکالیف بعد از بستن مرورگر

فصل ۵: ماژول‌ها و ابزار پروژه

• چرا کد را چندفایلی می‌کنیم؟

درس 1: چرا کد را چندفایلی می‌کنیم؟

• Export و Import

درس 2: Export و Import

• آشنایی با Package

درس 3: آشنایی با Package

• npm چیست؟

درس 4: npm چیست؟

• package.json

درس 5: package.json

• ساخت پروژه با Vite

درس 6: ساخت پروژه با Vite

• اجرای Development Server

درس 7: اجرای Development Server

• ساخت نسخه Production

درس 8: ساخت نسخه Production

فصل ۶: برنامه‌نویسی غیرهمزمان

• کد همزمان و غیرهمزمان

درس 1: کد همزمان و غیرهمزمان

• Promise به زبان ساده

درس 2: Promise به زبان ساده

• async و await

درس 3: async و await

• درخواست با fetch

درس 4: درخواست با fetch

• دریافت JSON

درس 5: دریافت JSON

• نمایش وضعیت Loading

درس 6: نمایش وضعیت Loading

• مدیریت Error

درس 7: مدیریت Error

• نمایش Empty State

درس 8: نمایش Empty State

• لغو یا نادیده‌گرفتن درخواست قدیمی

درس 9: لغو یا نادیده‌گرفتن درخواست قدیمی

فصل ۷: پروژه نهایی JavaScript

• ساخت اپلیکیشن مدیریت تکالیف با LocalStorage

درس 1: ساخت اپلیکیشن مدیریت تکالیف با LocalStorage

مرحله 6

مرحله 6: دوره پنجم: Git، GitHub و روش کار تیمی

فصل ۱: کنترل نسخه

• چرا نسخه‌های مختلف پروژه مهم‌اند؟

درس 1: چرا نسخه‌های مختلف پروژه مهم‌اند؟

• Git چیست؟

درس 2: Git چیست؟

• Repository

درس 3: Repository

• Working Directory و Staging

درس 4: Working Directory و Staging

• init، status و add

درس 5: init، status و add

• ساخت Commit مناسب

درس 6: ساخت Commit مناسب

فصل ۲: تاریخچه و شاخه‌ها

• مشاهده تاریخچه

درس 1: مشاهده تاریخچه

• بازگشت به تغییرات قبلی

درس 2: بازگشت به تغییرات قبلی

• Branch چیست؟

درس 3: Branch چیست؟

• ساخت و تغییر Branch

درس 4: ساخت و تغییر Branch

• Merge

درس 5: Merge

• حل تعارض ساده

درس 6: حل تعارض ساده

فصل ۳: GitHub

• ساخت حساب و مخزن

درس 1: ساخت حساب و مخزن

• اتصال پروژه محلی

درس 2: اتصال پروژه محلی

• Push و Pull

درس 3: Push و Pull

• Clone

درس 4: Clone

• نوشتن README

درس 5: نوشتن README

• تصویر و توضیحات پروژه

درس 6: تصویر و توضیحات پروژه

فصل ۴: همکاری تیمی

• Issue

درس 1: Issue

• تقسیم کار

درس 2: تقسیم کار

• Pull Request

درس 3: Pull Request

• Code Review

درس 4: Code Review

• دریافت و اعمال بازخورد

درس 5: دریافت و اعمال بازخورد

• قوانین نام‌گذاری Commit

درس 6: قوانین نام‌گذاری Commit

فصل ۵: انتشار پروژه

• تفاوت توسعه و انتشار

درس 1: تفاوت توسعه و انتشار

• Build

درس 2: Build

• انتشار سایت استاتیک روی GitHub Pages

درس 3: انتشار سایت استاتیک روی GitHub Pages

• خطاهای مسیر فایل

درس 4: خطاهای مسیر فایل

• به‌روزرسانی نسخه منتشرشده

درس 5: به‌روزرسانی نسخه منتشرشده

مرحله 7

مرحله 7: دوره ششم: مبانی React

فصل ۱: ورود به React

• مشکل پروژه‌های بزرگ JavaScript

درس 1: مشکل پروژه‌های بزرگ JavaScript

• React چه مسئله‌ای را حل می‌کند؟

درس 2: React چه مسئله‌ای را حل می‌کند؟

• ساخت پروژه React با Vite

درس 3: ساخت پروژه React با Vite

• ساختار پوشه پروژه

درس 4: ساختار پوشه پروژه

• اجرای پروژه

درس 5: اجرای پروژه

• اولین تغییر در App

درس 6: اولین تغییر در App

فصل ۲: JSX

• JSX چیست؟

درس 1: JSX چیست؟

• تفاوت JSX و HTML

درس 2: تفاوت JSX و HTML

• استفاده از JavaScript در JSX

درس 3: استفاده از JavaScript در JSX

• Attributeهای JSX

درس 4: Attributeهای JSX

• Fragment

درس 5: Fragment

• خطاهای متداول JSX

درس 6: خطاهای متداول JSX

فصل ۳: کامپوننت

• کامپوننت چیست؟

درس 1: کامپوننت چیست؟

• ساخت اولین کامپوننت

درس 2: ساخت اولین کامپوننت

• نام‌گذاری کامپوننت

درس 3: نام‌گذاری کامپوننت

• استفاده چندباره از کامپوننت

درس 4: استفاده چندباره از کامپوننت

• تقسیم صفحه به کامپوننت

درس 5: تقسیم صفحه به کامپوننت

• Component Tree

درس 6: Component Tree

فصل ۴: Props

• ارسال اطلاعات به کامپوننت

درس 1: ارسال اطلاعات به کامپوننت

• دریافت Props

درس 2: دریافت Props

• Propsهای مختلف

درس 3: Propsهای مختلف

• ارسال شیء و آرایه

درس 4: ارسال شیء و آرایه

• مقدار پیش‌فرض

درس 5: مقدار پیش‌فرض

• Composition با children

درس 6: Composition با children

• ساخت کامپوننت Card عمومی

درس 7: ساخت کامپوننت Card عمومی

فصل ۵: نمایش شرطی و فهرست

• نمایش شرطی با if

درس 1: نمایش شرطی با if

• نمایش شرطی با عملگر سه‌تایی

درس 2: نمایش شرطی با عملگر سه‌تایی

• نمایش با &&

درس 3: نمایش با &&

• رندر آرایه با map

درس 4: رندر آرایه با map

• مفهوم key

درس 5: مفهوم key

• نمایش Empty State

درس 6: نمایش Empty State

• ساخت فهرست محصولات

درس 7: ساخت فهرست محصولات

فصل ۶: رویداد و State

• Event Handler

درس 1: Event Handler

• State چیست؟

درس 2: State چیست؟

• useState

درس 3: useState

• تغییر State

درس 4: تغییر State

• State و Render مجدد

درس 5: State و Render مجدد

• به‌روزرسانی براساس مقدار قبلی

درس 6: به‌روزرسانی براساس مقدار قبلی

• State آرایه

درس 7: State آرایه

• State شیء

درس 8: State شیء

• جلوگیری از تغییر مستقیم State

درس 9: جلوگیری از تغییر مستقیم State

فصل ۷: فرم در React

• Controlled Input

درس 1: Controlled Input

• مدیریت چند ورودی

درس 2: مدیریت چند ورودی

• ارسال فرم

درس 3: ارسال فرم

• اعتبارسنجی

درس 4: اعتبارسنجی

• نمایش خطا

درس 5: نمایش خطا

• پاک‌کردن فرم

درس 6: پاک‌کردن فرم

• ساخت فرم اضافه‌کردن محصول

درس 7: ساخت فرم اضافه‌کردن محصول

فصل ۸: تفکر کامپوننتی

• تحلیل طرح قبل از کدنویسی

درس 1: تحلیل طرح قبل از کدنویسی

• تشخیص مرز کامپوننت‌ها

درس 2: تشخیص مرز کامپوننت‌ها

• ساخت نسخه ثابت رابط

درس 3: ساخت نسخه ثابت رابط

• پیدا‌کردن State

درس 4: پیدا‌کردن State

• تعیین محل State

درس 5: تعیین محل State

• ایجاد جریان داده

درس 6: ایجاد جریان داده

• بازسازی پروژه با ساختار بهتر

درس 7: بازسازی پروژه با ساختار بهتر

مرحله 8

مرحله 8: دوره هفتم: ساخت اپلیکیشن واقعی با React

فصل ۱: طراحی صحیح State

• چه چیزی باید State باشد؟

درس 1: چه چیزی باید State باشد؟

• State محاسبه‌شدنی

درس 2: State محاسبه‌شدنی

• جلوگیری از State تکراری

درس 3: جلوگیری از State تکراری

• بالا بردن State

درس 4: بالا بردن State

• ارتباط کامپوننت‌های خواهر

درس 5: ارتباط کامپوننت‌های خواهر

• Controlled و Uncontrolled Component

درس 6: Controlled و Uncontrolled Component

• Reset کردن State

درس 7: Reset کردن State

فصل ۲: Reducer و Context

• چه زمانی useState کافی نیست؟

درس 1: چه زمانی useState کافی نیست؟

• Action و Reducer

درس 2: Action و Reducer

• useReducer

درس 3: useReducer

• Context چیست؟

درس 4: Context چیست؟

• ساخت Provider

درس 5: ساخت Provider

• ترکیب Reducer و Context

درس 6: ترکیب Reducer و Context

• ساخت مدیریت سراسری ساده

درس 7: ساخت مدیریت سراسری ساده

فصل ۳: ارتباط با سیستم‌های خارجی

• Effect چیست؟

درس 1: Effect چیست؟

• چه زمانی Effect لازم نیست؟

درس 2: چه زمانی Effect لازم نیست؟

• اتصال به API

درس 3: اتصال به API

• Dependency

درس 4: Dependency

• Cleanup

درس 5: Cleanup

• جلوگیری از حلقه بی‌نهایت

درس 6: جلوگیری از حلقه بی‌نهایت

• مدیریت درخواست‌های همزمان

درس 7: مدیریت درخواست‌های همزمان

• Loading، Error و Empty State

درس 8: Loading، Error و Empty State

• لغو یا نادیده‌گرفتن درخواست قدیمی

درس 9: لغو یا نادیده‌گرفتن درخواست قدیمی

فصل ۴: Custom Hook

• منطق تکراری چیست؟

درس 1: منطق تکراری چیست؟

• ساخت اولین Custom Hook

درس 2: ساخت اولین Custom Hook

• نام‌گذاری Hook

درس 3: نام‌گذاری Hook

• Hook برای Local Storage

درس 4: Hook برای Local Storage

• Hook برای Fetch

درس 5: Hook برای Fetch

• جداسازی UI از منطق

درس 6: جداسازی UI از منطق

• تست دستی Hook

درس 7: تست دستی Hook

فصل ۵: مسیریابی (React Router)

• SPA چیست؟

درس 1: SPA چیست؟

• مسیر و URL

درس 2: مسیر و URL

• ساخت Router

درس 3: ساخت Router

• تعریف Route

درس 4: تعریف Route

• Link و NavLink

درس 5: Link و NavLink

• مسیر پویا

درس 6: مسیر پویا

• دریافت پارامتر مسیر

درس 7: دریافت پارامتر مسیر

• مسیر تودرتو

درس 8: مسیر تودرتو

• صفحه Not Found

درس 9: صفحه Not Found

• جابه‌جایی برنامه‌نویسی‌شده

درس 10: جابه‌جایی برنامه‌نویسی‌شده

فصل ۶: فرم‌های واقعی

• طراحی State فرم

درس 1: طراحی State فرم

• اعتبارسنجی چندمرحله‌ای

درس 2: اعتبارسنجی چندمرحله‌ای

• نمایش خطای هر فیلد

درس 3: نمایش خطای هر فیلد

• وضعیت ارسال

درس 4: وضعیت ارسال

• جلوگیری از ارسال تکراری

درس 5: جلوگیری از ارسال تکراری

• پیام موفقیت

درس 6: پیام موفقیت

• فرم ویرایش اطلاعات

درس 7: فرم ویرایش اطلاعات

• ساخت فرم چندمرحله‌ای ساده

درس 8: ساخت فرم چندمرحله‌ای ساده

فصل ۷: معماری پروژه

• مشکل فایل‌های بزرگ

درس 1: مشکل فایل‌های بزرگ

• ساختار پوشه Components

درس 2: ساختار پوشه Components

• Pages و Layouts

درس 3: Pages و Layouts

• Hooks و Services

درس 4: Hooks و Services

• Constants و Utilities

درس 5: Constants و Utilities

• جداسازی درخواست API

درس 6: جداسازی درخواست API

• نام‌گذاری فایل‌ها

درس 7: نام‌گذاری فایل‌ها

• حذف کد تکراری

درس 8: حذف کد تکراری

• Refactoring

درس 9: Refactoring

فصل ۸: تجربه کاربری اپلیکیشن

• Loading مناسب

درس 1: Loading مناسب

• Skeleton

درس 2: Skeleton

• Empty State

درس 3: Empty State

• پیام خطا

درس 4: پیام خطا

• تأیید عملیات خطرناک

درس 5: تأیید عملیات خطرناک

• غیرفعال‌کردن دکمه

درس 6: غیرفعال‌کردن دکمه

• Toast و پیام بازخورد

درس 7: Toast و پیام بازخورد

• طراحی برای صفحه‌کلید

درس 8: طراحی برای صفحه‌کلید

• تست اپلیکیشن با کاربر دیگر

درس 9: تست اپلیکیشن با کاربر دیگر

مرحله 9

مرحله 9: دوره هشتم: TypeScript با React

فصل ۱: شروع TypeScript

• TypeScript چیست؟

درس 1: TypeScript چیست؟

• خطای زمان اجرا و خطای بررسی نوع

درس 2: خطای زمان اجرا و خطای بررسی نوع

• ساخت پروژه React TypeScript

درس 3: ساخت پروژه React TypeScript

• Type Inference

درس 4: Type Inference

• نوع‌های اصلی

درس 5: نوع‌های اصلی

• خطاهای ساده نوع داده

درس 6: خطاهای ساده نوع داده

فصل ۲: تابع، آرایه و شیء

• نوع پارامتر

درس 1: نوع پارامتر

• نوع خروجی

درس 2: نوع خروجی

• آرایه تایپ‌شده

درس 3: آرایه تایپ‌شده

• نوع شیء

درس 4: نوع شیء

• Property اختیاری

درس 5: Property اختیاری

• Type Alias

درس 6: Type Alias

• Interface

درس 7: Interface

• تفاوت Type و Interface در سطح مقدماتی

درس 8: تفاوت Type و Interface در سطح مقدماتی

فصل ۳: Union و Narrowing

• Union Type

درس 1: Union Type

• Literal Type

درس 2: Literal Type

• Narrowing با typeof

درس 3: Narrowing با typeof

• بررسی Property

درس 4: بررسی Property

• Discriminated Union

درس 5: Discriminated Union

• مدل‌کردن وضعیت Loading، Success و Error

درس 6: مدل‌کردن وضعیت Loading، Success و Error

فصل ۴: TypeScript در React

• تایپ Props

درس 1: تایپ Props

• تایپ children

درس 2: تایپ children

• تایپ State

درس 3: تایپ State

• تایپ Event

درس 4: تایپ Event

• تایپ فرم

درس 5: تایپ فرم

• تایپ آرایه کامپوننت‌ها

درس 6: تایپ آرایه کامپوننت‌ها

• تایپ Context

درس 7: تایپ Context

• تایپ Reducer

درس 8: تایپ Reducer

فصل ۵: API و داده

• تعریف مدل پاسخ API

درس 1: تعریف مدل پاسخ API

• داده قابل‌اعتماد و غیرقابل‌اعتماد

درس 2: داده قابل‌اعتماد و غیرقابل‌اعتماد

• تایپ تابع Fetch

درس 3: تایپ تابع Fetch

• Propertyهای اختیاری

درس 4: Propertyهای اختیاری

• مدیریت null

درس 5: مدیریت null

• تبدیل داده API به مدل رابط

درس 6: تبدیل داده API به مدل رابط

• نمایش خطای داده ناقص

درس 7: نمایش خطای داده ناقص

فصل ۶: Generic مقدماتی

• مشکل توابع تکراری

درس 1: مشکل توابع تکراری

• Generic Function

درس 2: Generic Function

• Generic Type

درس 3: Generic Type

• کامپوننت فهرست عمومی

درس 4: کامپوننت فهرست عمومی

• Hook عمومی دریافت داده

درس 5: Hook عمومی دریافت داده

• چه زمانی Generic استفاده نکنیم؟

درس 6: چه زمانی Generic استفاده نکنیم؟

فصل ۷: بازنویسی پروژه

• تبدیل پروژه React به TypeScript (مدل‌های داده، Props، State، Context)

درس 1: تبدیل پروژه React به TypeScript (مدل‌های داده، Props، State، Context)

مرحله 10

مرحله 10: دوره نهم: کیفیت، انتشار و ورود به بازار کار

فصل ۱: دسترس‌پذیری (Accessibility)

• دسترس‌پذیری چیست و چرا اهمیت دارد؟

درس 1: دسترس‌پذیری چیست و چرا اهمیت دارد؟

• HTML معنایی و استفاده کامل با صفحه‌کلید

درس 2: HTML معنایی و استفاده کامل با صفحه‌کلید

• Focus، Label فرم و متن جایگزین تصویر

درس 3: Focus، Label فرم و متن جایگزین تصویر

• کنتراست رنگ و پیام‌های خطای قابل‌فهم

درس 4: کنتراست رنگ و پیام‌های خطای قابل‌فهم

فصل ۲: عملکرد و بهینه‌سازی

• عملکرد وب چیست؟ بررسی Network

درس 1: عملکرد وب چیست؟ بررسی Network

• کاهش حجم تصویر و Lazy Loading

درس 2: کاهش حجم تصویر و Lazy Loading

• کاهش JavaScript غیرضروری و رندرهای اضافه

درس 3: کاهش JavaScript غیرضروری و رندرهای اضافه

• اندازه‌گیری قبل از بهینه‌سازی

درس 4: اندازه‌گیری قبل از بهینه‌سازی

فصل ۳: امنیت مقدماتی فرانت‌اند

• داده کاربر قابل‌اعتماد نیست

درس 1: داده کاربر قابل‌اعتماد نیست

• اطلاعات محرمانه و Environment Variables

درس 2: اطلاعات محرمانه و Environment Variables

• خطر نمایش API Key و خطرات XSS

درس 3: خطر نمایش API Key و خطرات XSS

• اعتبارسنجی سمت کاربر و سرور

درس 4: اعتبارسنجی سمت کاربر و سرور

فصل ۴: پروژه نهایی و نمونه‌کار

• انتخاب مسئله و پیاده‌سازی پروژه جامع

درس 1: انتخاب مسئله و پیاده‌سازی پروژه جامع

• ساخت نمونه‌کار، README حرفه‌ای و رزومه

درس 2: ساخت نمونه‌کار، README حرفه‌ای و رزومه

• آماده‌سازی برای مصاحبه فنی و ورود به بازار کار

درس 3: آماده‌سازی برای مصاحبه فنی و ورود به بازار کار

پروژه‌های پیشنهادی برای ساخت نمونه‌کار

🛠️ ساخت صفحه شخصی تعاملی یا کارت ویزیت دیجیتال

با استفاده از HTML و CSS و چند خط JavaScript ساده یک کارت ویزیت آنلاین با دکمه‌های تعاملی بساز.

مراحل اجرای پروژه آزمایشی:

  • یک فایل HTML بساز و نام و بیوگرافی خود را بنویس.
  • با CSS ظاهر دکمه‌ها و رنگ‌ها را زیبا کن.
  • با دکمه دارک‌مود یا انیمیشن ساده به آن رفتار تعاملی بده.

بازار کار و فرصت‌های شغلی برنامه نویسی فرانت اند

🎯 راه‌های ورود به بازار کار

  • پروژه فریلنسری کوچک
  • کارآموزی در شرکت‌های نوپا
  • ساخت نمونه‌کار در گیت‌هاب

⏱️ زمان و هزینه موردنیاز

۴ تا ۶ ماه یادگیری مداوم روزانه ۲ ساعت (با استفاده از منابع رایگان یا دوره‌های اقتصادی)

شیوه‌های کاری: امکان فریلنسری بسیار بالا، استخدام حضوری و دورکاری گسترده در ایران و جهان.

سوالات متداول و باورهای غلط درباره برنامه نویسی فرانت اند

خیر! این تصور یکی از باورهای اشتباهی است که افراد تازه‌کار درباره برنامه نویسی فرانت اند دارند. با آموزش گام‌به‌گام موازی و تمرین مستمر، هر علاقمندی می‌تواند بر مفاهیم تسلط پیدا کند.

خیر! این تصور یکی از باورهای اشتباهی است که افراد تازه‌کار درباره برنامه نویسی فرانت اند دارند. با آموزش گام‌به‌گام موازی و تمرین مستمر، هر علاقمندی می‌تواند بر مفاهیم تسلط پیدا کند.