در این مقاله اختصاصی از وبسایت راکت قصد داریم تا شما را با نقشه راهی آشنا سازیم که در انتهای آن شما میتوانید با نهایت دانش در رابطه با مسیر یادگیری توسعه و طراحی وب خود فکر کرده و در نهایت گزینههای مناسب را انتخاب نمایید. این مقاله شامل تکنولوژیهای Front-End و Back-End میشود. همچنین برای آنکه شما را در بین لینکهای مختلف گمراه نکنم قصد دارم در کنار معرفی هر کدام از مراحل لینکهای آموزشی مناسب برای آن تکنولوژی را معرفی نمایم.
اگر شما در ابتدای مسیر یادگیری قرار دارید واقعیت آن است که نیازی به داشتن دانش تخصصی در هیچ زمینهای را نداشته و تنها چیزی که در این مقاله نیاز است یاد بگیرید موضوعات پایهای مربوط به وب است. در ادامه این مقاله شما در رابطه با جایگاه هر کدام از تکنولوژیها نیز آشنا خواهید شد و در پایان این شما خواهید بود که براساس منطق تصمیم خواهید گرفت که کدام مسیر را در پیش بگیرید.
توسعه وب
اولین سوالی که ممکن است به ذهنمان برسد و البته ممکن است شما هم نسبت به آن اطلاعاتی داشته باشید آن است که توسعه وب به چه معناست؟!
به صورت ساده تمامی وبسایتهایی که شما روی اینترنت مشاهده میکنید، در نهایت تنها شامل یکسری فایل میشوند که روی یک کامپیوتر که ما آن را سرور مینامیم قرار میگیرند. این سرور نیز با استفاده از اینترنت قابلیت دستیبابی به خودش را فراهم میسازد. شما نیزد در مقام کلاینت میتوانید با استفاده از مرورگر خودتان به این محتوا دسترسی پیدا کنید. هر آنچه که شما از طریق مرورگرتان به آن دسترسی پیدا میکنید دقیقا آن چیزیست که یک توسعهدهنده وب ایجاد کرده است.
تفاوت Front End و Back End
این دو اصطلاح ما را تنها به رابطه میان آنچه دیداری است با آنچه که کارایی وبسایت را تعیین میکند ارجاع میدهند. آنچه که شما به عنوان یک کلاینت در مرورگرتان مشاهده میکنید را Front-End مینامیم. حال Back-End به لایهای اشاره دارد که یکسری منطق و برنامهنویسی عموما مبتنی بر داده در آن انجام میشود.
برای درک بهتر یک رستوران را در نظر بگیرید که شما به عنوان مشتری تنها یک غذا را مشاهده میکنید و در حال میل کردن آن هستید اما شما فرایند ساختن آن غذا را نمیبینید چرا که در یک اتاق دیگر افرادی مشغول تهیه آن بوده و شما اجازه ورود به آنجا را نداشتید. در این حالت آن اتاق را لایه Back-End مینامیم.
البته در فرایند توسعه وبسایت شما بجای سر و کار داشتن با مواد پختنی با یکسری کد به صورت قسمت اصلی مواد اولیهتان سر و کار خواهید داشت. حال برای استفاده از این مواد نیز شما نیاز به ابزارهایی خواهید داشت که ما آن را ابزارهای توسعه مینامیم. سادهترین این ابزارها شامل کد ادیتورها خواهند شد که به ما قابلیت ایجاد و ویرایش کدهای مورد نظر را میدهند. Atom، Sublime Text، Visual Studio Code و… نامهای معروفترین این کد ادیتورها هستند.
حال که ما با ابتداییترین موارد مربوط به توسعه وب آشنا شدیم نیاز است که سراغ جزئیات موضوعات گفته شده شویم.
فرانت اند یا همان لایه کاربری
لایه کلاینت یا Front-End هر وبسایتی شامل سه قسمت کلی HTML، CSS و JavaScript میشود. این فایلها مواردی هستند که به صورت مستقیم روی مرورگر شما اجرا خواهد شد.
بیایید به صورت موردی با هر کدام از این سه مورد آشنا شویم.
HTML – زبان HTML که مخفف Hypertext Markup Language است یک زبان نشانهگذاری بوده و به عنوان پایهایترین جزو هر وبسایتی شناخته میشود. زمانی که شما یک وبسایت را مشاهده میکنید، تمام محتوایی که میبینید در یک فایل HTML به شما ارائه خواهد شد. HTML از قابلیتی به عنوان تگ برای نمایش شکلهای مختلفی از محتوا استفاده میکند. برای مثال زمانی که شما قصد دارید تا متنی را به عنوان سرتیتر قرار دهید باید از متن مخصوصی که HTML در اختیار شما قرار داده استفاده کنید.
CSS – CSS مخفف کلمات Cascading Style Sheets بوده و به صورت عمومی برای آرایش و نظم بخشیدن به محتویات خام HTML مورد استفاده قرار میگیرد. شما از طریق سیاساس میتوانید به صفحاتتان رنگهای بخصوصی بدهید، از فونتهای مورد علاقه استفاده کنید، اندازه المانها را تغییر دهید و هزاران کار دیگر. سیاساس یکی دیگر از دانشهای اساسیست که برای ایجاد وبسایت حتما به آن نیاز خواهید داشت.
JavaScript – جاوااسکریپت بر خلاف دو مورد قبلی، یک زبان برنامهنویسی است که میتواند روی مرورگر اجرا شود. با استفاده از جاوااسکریپت شما میتوانید وبسایت ثابت و ایستا خود را به یک وبسایت پویا و داینامیک تبدیل نمایید. برای مثال جاوااسکریپت به شما کمک میکند تا براساس دادههایی که از کاربران دریافت میکنید، شکل و حالت وبسایت را تغییر بدهید.
البته بحث کردن در مورد جاوااسکریپت نیاز به یک مقاله اختصاصی داشته و حجم این مقاله بصورتی نخواهد بود که شما بتوانید اختصاصا آن را درک کنید.
چگونه میتوان این سه مورد را یاد گرفت؟
خوشبختانه در وبسایت راکت ما دورههای آموزشی بسیار زیادی را در رابطه با توسعه لایه Front-End تولید کردهایم که به شما کمک میکند تا بینش بسیار عمیقی نسبت به هرکدام از این سه مورد پیدا کنید.
- آموزش HTML
- آموزش css
- آموزش جاوااسکریپت
- آموزش جاوا اسکریپت ES۶
- آموزش پروژه محور جاوا اسکریپت
همچنین در قسمت مقالات وبسایت راکت محتوای آموزشی بسیار زیادی وجود دارد که با توجه به دستهبندی موجود، میتوانید در رابطه با موضوع مورد نظرتان اطلاعات کاملی پیدا کنید.
بک اند یا همان لایه مخفی
در قسمت Back-End یا همان لایه مخفی که پیشتر از آن صحبت کردیم شما با سه قسمت کلی روبرو خواهید بود. سرور، برنامهنویسی سمت سرور و بانک اطلاعاتی یا همان دیتابیس.
سرور
همانطور که پیشتر از سرور صحبت کردیم، این قسمت به شما کمک میکند تا محتوای وبسایتتان را به دیگران نشان بدهید. در یک سرور تمام فایلهای موجود وبسایت و همچنین دیتابیس مربوطه وجود دارد.
در سرورهایی که به روش سنتی مدیریت میشود شما یک سیستم عامل (ویندوز یا لینوکس) را در اختیار دارید و امکاناتی که با استفاده از آن میتوانید فایلها را مدیریت کنید، امنیت را پیادهسازی نمایید و بانک اطلاعاتی ارتباط داشته باشید. تمام این کارها با یک مدیریت «مرکزی» انجام میشود.
با این حال سرورهای مدرن شما را از بخش بزرگ مدیریتی بی بهره میسازند که البته مهمترین مزیت آن صرفه جویی در زمان و هزینههای شماست. برای مثال شما در این حالت دیگر در ارتباط با امنیت نگرانی نخواهید داشت چرا که شرکت تامین کننده آن را در اختیار خواهد گرفت.
برای مطالعه بیشتر در ارتباط با سرورها میتوانید به این صفحه مراجعه کنید.
زبان برنامه نویسی
در کنار زبانهایی که برای طراحی صفحات و لایه کلاینت استفاده میکنیم، برای توسعه یک وبسایت نیاز است تا در رابطه با زبانهای برنامهنویسی سمت سرور نیز آشنایی پیدا کنیم. با استفاده از زبانهای برنامهنویسی سمت سرور شما میتوانید لایه منطقی و اصطلاحا مخفی وبسایتتان را ایجاد کنید. این زبانها با استفاده از سرور به مرحله اجرا و ترجمه درخواهند آمد.
برخی از زبانهای محبوب کنونی که در این زمینه فعالیت دارند عبارت هستند از پایتون، پیاچپی، سیشارپ و… . البته با استفاده از جاوااسکریپت و بهره بردن از تکنولوژی نودجیاس نیز میتوانید این قسمت را پیش ببرید.
پایتون – پایتون انتخابی بسیار مناسب برای افرادیست که قصد دارند وبسایتی امن در مقیاسی بزرگ ایجاد کنند. از آنجایی که پایتون دارای کتابخانههای بسیار زیادی است به شما سرعت عمل لازم در جهت ایجاد لایه بک-اند را میدهد. برای یادگیری پایتون میتوانید از دوره آموزشی «آموزش پایتون» استفاده کنید.
پیاچپی – پیاچپی گزینه مناسب دیگریست که برای توسعه لایه بک-اند وبسایتها استفاده میشود. در واقع در حال حاضر بیشتر وبسایتهای محتوا محور از پیاچپی استفاده میکنند. وجود سیستمهای مدیریت محتوا فراوانی که با استفاده از پیاچپی توسعه داده شدهاند به شما قدرت و سرعت کافی در جهت توسعه وبسایت را میدهد. (به کسی نگید ولی راکت هم با پیاچپی ساخته شده 😉 ) برای شروع یادگیری پیاچپی میتوانید از این صفحه استفاده کنید.
دیتابیس
دیتابیس یا همان پایگاه داده که از نامش نیز پیداست ابزاری برای ذخیرهسازی و مدیریت دادههای مورد نیازمان است. در دیتابیسهای سنتی که ما آنها را دیتابیس رابطهای مینامیم اطلاعات در مجموعهای از جداول، ردیفها، ستونها و سلولها ذخیره میشود. اگر تا به حال با Excel کار کرده باشید میتوانید توصیف بالا را در ذهنتان درست کنید. در بین دیتابیسهای سنتی MySQL یکی از محبوبترین آنهاست که سازگاری بسیار بالایی با زبان برنامهنویسی PHP نیز دارد.
دیتابیسهای مدرنتر که آنها را NoSQL نیز مینامیم اطلاعات را به شیوه جدیدی ذخیرهسازی میکنند، در این حالت دادههای بجای ذخیره شدن در جداول، فایلهایی با فرمت JSON ذخیره میشوند. MongoDB نام یکی از محبوبترین این دیتابیسهاست که با تکنولوژیهای جدیدی مانند نودجیاس سازگاری بالایی دارد.
در وبسایت راکت ما براساس نیاز کاربران آموزشهایی را هم برای دیتابیسهای رابطهای و هم دیتابیسهای NoSQL تولید کردهایم که برای استفاده از آنها میتوانید به لینک «آموزش mysql» یا «آموزش mongodb» مراجعه نمایید.
در کنار تمام موارد گفته شده در بالا، باید بگویم موضوعات و جزئیات بسیار زیاد دیگری وجود دارد که یادگیری آنها نیز به صورت قدم به قدم انجام خواهد شد. برای مثال فریمورکهای جاوااسکریپتی، ابزارهای مدیریت پروژه مانند گیت و… .
با عمیقتر شدن در موارد گفته شده میتوانید در آینده نزدیک با این جزئیات نیز به صورت قدم به قدم آشنا شوید.
خلاصه و چند نکته مهم!
همانطور که مشاهده کردید فرایند یادگیری توسعه وبسایت آسانتر از آنچیزیست که بسیاری فکرش را میکنند، با این حال نکاتی وجود دارد که پیش از هر چیزی باید بدانید.
۱- هیچگاه سعی نکنید همه چیز را با همدیگر یاد بگیرید. فرایند یادگیری مواردی که به صورت گزینههای متعدد موجود است نیاز به زمان و پله به پله حرکت کردن دارد.
۲- شاخه به شاخه نکنید. یکی از بزرگترین آفتهای شغلی یک برنامهنویس آن است که مدام در بین تکنولوژیها و ابزارها بدون پیدا کردن دانش کافی و کامل، حرکت کرده و هیچگاه به سر مقصد خاصی نمیرسد.
۳- انتظاراتتان را مدیریت کنید. فرایند یادگیری توسعه وب کاری زمان بر است به همین دلیل اگر ۶ ماه از فرایند یادگیریتان گذشت و هنوز احساس کردید که نیاز به آموزشهای دیگری دارید کاملا طبیعی بوده و نیازی به نگرانی نیست.
۴- تنها مشاهده ویدیوها کافی نیست. مشاهده منفعلانه بهترین اساتید دنیا هم نمیتواند کافی باشد، شما باید یاد بگیرید که خودتان کدنویسی کرده و مثالهای مختلف را انجام دهید.
این را هم به یاد داشته باشید که در تمام مراحل یادگیری وبسایت آموزشی راکت هوای شما را خواهد داشت 😉