معمولاً این سوال توسط کسانی که به طراحی و پیادهسازی وبسایت علاقه پیدا کردهاند مطرح میشود اما پیدا کردن پاسخ - اگر متخصصی در اطرافیانتان نداشته باشید - کمی دشوار به نظر میرسد. البته من نمیخواهم خودم را متخصص معرفی کنم اما با توجه به تجربه چند سالهای که در این زمینه دارم پیشنهاد میکنم تا پایان این مطلب همراه من باشید.
یک سایت به نظر من میتواند در یکی از دو دستهبندی زیر قرار بگیرد:
در این نوشته قصد ندارم درباره ویژگیها و تفاوتهای این دو حرفی بزنم؛ فقط دوست داشتم قبل از شروع یادآوری کنم که برای رسیدن توانایی ساخت هر کدام از این نوع سایتها باید مسیری را که در ادامه معرفی میکنم طی کنید.
ما اصولاً در حوزه برنامهنویسی و پیادهسازی وبسایتها و وباپلیکیشنها دو بخش متفاوت را با نامهای بکاند (Back-end) و فرانتاند (Front-end) در نظر میگیریم. خلاصه بخواهم توضیح دهم، بکاند تمام آن چیزی است که از دید کاربر نهایی سایت (مثل بازدیدکننده یا مشتری فروشگاه اینترنتی) پنهان است و به سادگی قابل مشاهده و فهم نیست. اما فرانتاند شامل تمام مواردی است که کاربر با آن مواجه است. در ادامه چند نمونه از هر کدام از این دستهها را میآورم:
اصطلاحاً کدهای سمت سرور که منطق نرمافزار یا سایت ما را شامل میشود، همچنین پایگاه داده (محل ذخیرهسازی اطلاعات) و چیزهایی از این قبیل مربوط به بکاند هستند.
از آن طرف، رابط کاربری (UI) سایت یعنی تمام چیزهایی که کاربر آن را میبیند و با آن تعامل دارد (مثل تصاویر، دکمهها، فرمها و...) مربوط به بخش فرانتاند است.
یک اصطلاحی هست که ذکر آن در اینجا خالی از لطف نیست و آن توسعهدهنده فولاستک (Full-Stack Developer) است. در یک جمله به برنامهنویسی که در هر دو حوزه بکاند و فرانتاند دانش و تسلط کافی داشته باشد گفته میشود.
این یک سوال خیلی کلیدیست! شاید در نگاه اول این گونه سوالات پاسخ «همه» داشته باشد. اما تجربه ثابت کرده هر فردی که قصد تبدیل به یک برنامهنویس و طراح سایت شدن را دارد حداقل باید ویژگیهای زیر را داشته باشد:
با این که هر کدام از موارد مطرح شده در دستهبندیهای بکاند و فرانتاند دارای لایههای ساده، متوسط، پیشرفته و فوق پیشرفته و دارای زبانها، فریمورکها و شاخههای متنوعی هستند. اما پیشنهاد میشود برای نتیجهگیری سریعتر و رسیدن به نقطه حداقلی کسب درآمد، مسیر زیر را پیش بگیرید.
توجه: در صورتی که قصد ندارید فولاستک شوید میتوانید بندهای ۱ و ۲ را برای فرانتاند و بندهای ۳ تا ۶ را برای بکاند به صورت مجزا یاد بگیرید.
تأکید میکنم شما با فراگیری مراحل ششگانه بالا به یک برنامهنویس تازهکار تبدیل میشوید و تا کسب تجربه و مهارتهای لازم راه درازی را در پیش خواهید داشت. یک نکته هم از قلم افتاد و آن این که میتوان بدون دانش زبانِ سمتِ سرورِ PHP که در بند ۳ ذکر کردم، یک سایت وردپرسی کامل ساخت و تحویل مشتری داد اما چون بنای این نوشته، راهبرد خواننده محترم به سمت برنامهنویسیست، این بند نیز درج شده است.
امیدوارم از این نوشته استفاده کافی برده باشید. با آرزوی موفقیت!