برای یادگرفتن برنامه نویسی و طراحی سایت از کجا شروع کنیم؟

معمولاً این سوال توسط کسانی که به طراحی و پیاده‌سازی وب‌سایت علاقه پیدا کرده‌اند مطرح می‌شود اما پیدا کردن پاسخ - اگر متخصصی در اطرافیانتان نداشته باشید - کمی دشوار به نظر می‌رسد. البته من نمی‌خواهم خودم را متخصص معرفی کنم اما با توجه به تجربه چند ساله‌ای که در این زمینه دارم پیشنهاد می‌کنم تا پایان این مطلب همراه من باشید.مراحل یادگیری طراحی و برنامه‌نویسی سایتیک سایت به نظر من می‌تواند در یکی از دو دسته‌بندی زیر قرار بگیرد:وب‌سایتمثل بلاگ، سایت‌های شرکتی و شخصیوب‌اپلیکیشنیا نرم‌افزار تحت وب که می‌تواند شامل یک فروشگاه اینترنتی یا هر سرویس آنلاین دیگری باشد.در این نوشته قصد ندارم درباره ویژگی‌ها و تفاوت‌های این دو حرفی بزنم؛ فقط دوست داشتم قبل از شروع یادآوری کنم که برای رسیدن توانایی ساخت هر کدام از این نوع سایت‌ها باید مسیری را که در ادامه معرفی می‌کنم طی کنید.دانش مورد نیاز برای طراحی و برنامه‌نویسی سایتما اصولاً در حوزه برنامه‌نویسی و پیاده‌سازی وب‌سایت‌ها و وب‌اپلیکیشن‌ها دو بخش متفاوت را با نام‌های بک‌اند (Back-end) و فرانت‎اند (Front-end) در نظر می‌گیریم. خلاصه بخواهم توضیح دهم، بک‎‌اند تمام آن چیزی است که از دید کاربر نهایی سایت (مثل بازدیدکننده یا مشتری فروشگاه اینترنتی) پنهان است و به سادگی قابل مشاهده و فهم نیست. اما فرانت‌اند شامل تمام مواردی است که کاربر با آن مواجه است. در ادامه چند نمونه از هر کدام از این دسته‌ها را می‌آورم:اصطلاحاً کدهای سمت سرور که منطق نرم‌افزار یا سایت ما را شامل می‌شود، همچنین پایگاه داده (محل ذخیره‌سازی اطلاعات) و چیزهایی از این قبیل مربوط به بک‌اند هستند.از آن طرف، رابط کاربری (UI) سایت یعنی تمام چیزهایی که کاربر آن را می‌بیند و با آن تعامل دارد (مثل تصاویر، دکمه‌ها، فرم‌ها و...) مربوط به بخش فرانت‌اند است.یک اصطلاحی هست که ذکر آن در این‌جا خالی از لطف نیست و آن توسعه‌دهنده فول‌استک (Full-Stack Developer) است. در یک جمله به برنامه‌نویسی که در هر دو حوزه بک‌اند و فرانت‌اند دانش و تسلط کافی داشته باشد گفته می‌شود.چه کسی می‌تواند برنامه‌نویس و طراح سایت شود؟این یک سوال خیلی کلیدی‌ست! شاید در نگاه اول این گونه سوالات پاسخ «همه» داشته باشد. اما تجربه ثابت کرده هر فردی که قصد تبدیل به یک برنامه‌نویس و طراح سایت شدن را دارد حداقل باید ویژگی‌های زیر را داشته باشد:صبر و حوصله زیادنه مسیر یادگیری برنامه‌نویسی هموار و سریع است و نه کل فرآیند برنامه‌نویسی. پس در این مسیر لطفاً عجول بودن را کنار بگذارید.ویژگی پویایی و جستجوگر بودنبرنامه‌نویسی هم در مرحله یادگیری و هم در مرحله پیاده‌سازی نیاز به فردی دارد که بتواند به خوبی دنبال جواب‌های خود و راهنمایی‌های لازم در سراسر اینترنت بگردد.آشنایی حداقلی با زبان انگلیسیچون بسیار یا شاید بهتر بگویم اکثر اشکالاتی که در فرآیند برنامه‌نویسی با آن مواجه می‌شوید جوابشان در گوگل و آن هم به زبان انگلیسی است. همچنین بسیاری از آموزش‌ها و مستندات نرم‌افزارها و زبان‌های برنامه‌نویسی همگی به انگلیسی هستند.توانایی خودیادگیری (Self-Learning) داشتنشما باید بتوانید با مشاهده/مطالعه آموزش‌ها و مستندات زبان‌های برنامه‌نویسی در هر یک رشد کنید.یادگیری از طریق اینترنتسایت‌های پر بازدید برای برنامه‌نویسی و طراحی سایتبدون شک با سایت گوگل به جهت جستجوی آموزش‌ها و مستندات زبان‌های برنامه‌نویسی تحت وب و نیز رفع اشکال کدهای خود یا یافتن راه حل برای انجام یک قصد خاص بسیار سر و کار خواهید داشت. پس لطفاً هم‌زمان با یادگیری برنامه‌نویسی، شیوه‌های درست جستجو (خصوصاً با زبان انگلیسی) در گوگل را نیز یاد بگیرید.سایت پر بازدید بعدی، که در اکثر جستجوهای سوالی شما برای حل مشکلات کدها یا ارائه راه حل با آن مواجه خواهید شد، استک‌اورفلو است. حتماً در نتایج جستجو اول به این سایت سر بزنید.سایت بعدی که به نوعی مرجع مستندات زبان‌های برنامه‌نویسی تحت وب و زبان‌های نشانه‌‌گذاری متن (مثل HTML) به حساب می‌آید دبلیوتری‌اسکولز است.با این که هر کدام از موارد مطرح شده در دسته‌بندی‌های بک‌اند و فرانت‌اند دارای لایه‌های ساده، متوسط، پیشرفته و فوق پیشرفته و دارای زبان‌ها،‌ فریم‌ورک‌ها و شاخه‌های متنوعی هستند. اما پیشنهاد می‌شود برای نتیجه‌گیری سریع‌تر و رسیدن به نقطه حداقلی کسب درآمد، مسیر زیر را پیش بگیرید.برای یادگرفتن برنامه‌نویسی و طراحی سایت از کجا شروع کنیم؟یادگیری اصول اولیه پیاده‌سازی فرانت‌اندالف) یادگیری HTML در سایت w3schools.comب) یادگیری CSS در سایت w3schools.comج) یادگیری JavaScript در سایت w3schools.com* توجه: یادگیری نرم‌افزارهای طراحی گرافیکی گرچه مفید است اما در این نوشته قصد راهنمایی شما به سمت برنامه‌نویسی را داشته‌ام که طراحی رابط کاربری (UI) شاملش نمی‌شود.تبدیل یک طرح ساده PSD یا Sketch که از پیش‌طراحی یا دانلود شده به کد‌‌های ‌HTML/CSSیادگیری زبان سمت سرور PHP در سایت w3schools.comیادگیری یک سیستم مدیرت محتوا (CMS یا Content Management System) ترجیحاً وردپرس ‌(Wordpress) با جستجوی ‌‌آموزش‌های آن در گوگلیادگیری راه‌اندازی یک سایت با وردپرسیادگیری مفاهیم اولیه در زمینه هاست (Host) و دامین (Domain) جهت بارگذاری سایت در شبکه اینترنتتوجه: در صورتی که قصد ندارید فول‌استک شوید می‌توانید بندهای ۱ و ۲ را برای فرانت‌اند و بندهای ۳ تا ۶ را برای بک‌اند به صورت مجزا یاد بگیرید.تأکید می‌کنم شما با فراگیری مراحل شش‌گانه بالا به یک برنامه‌نویس تازه‌کار تبدیل می‌شوید و تا کسب تجربه و مهارت‌های لازم راه درازی را در پیش خواهید داشت. یک نکته هم از قلم افتاد و آن این که می‌توان بدون دانش زبانِ سمتِ سرورِ PHP که در بند ۳ ذکر کردم، یک سایت وردپرسی کامل ساخت و تحویل مشتری داد اما چون بنای این نوشته، راه‌برد خواننده محترم به سمت برنامه‌نویسی‌ست، این بند نیز درج شده است.امیدوارم از این نوشته استفاده کافی برده باشید. با آرزوی موفقیت!