
راهنمای سوالات متداول
در شروع روند هر کاری ممکن است پرسش هایی در ذهنمان شکل بگیرد که یافتن پاسخ مناسب برای آنها در تصمیم گیری و طی مسیر آینده راهگشا باشد، فراگیری زبان های برنامه نویسی خواه به صرف داشتن علاقه، یادگیری مهارت جانبی یا کسب شغل حرفه ای (و البته اغلب با ترکیب همزمان این دلایل) از این قاعده مستثناء نیست، در ادامه سوالاتی که به دفعات توسط علاقمندان به فراگیری دانش برنامه نویسی وب مطرح شده و می شود را همراه با پاسخ هایی در حد مقدور تجمیع کرده ایم به این امید که کمی از سردرگمی های احتمالی گام نهادن در این مسیر کاسته باشیم.
یادگیری برنامه نویسی وب چه فایده ای دارد؟
یادگیری هر زبان برنامه نویسی با هدف رفع نیازهای مرتبط با آن زبان انجام می شود، به طور مثال اگر بخواهیم برای گوشی هوشمندمان اپلیکیشن اختصاصی طراحی کنیم ناگزیر باید زبان برنامه نویسی متناسب با پلتفرم گوشی را فرا بگیریم مانند Java برای سیستم عامل Android، چون تنها با این ابزار است که می توانیم ایده های ذهنی خود را به زبان ماشین تبدیل کنیم، در خصوص وب هم شرایط به همین صورت است، هرگونه امکانی که در مرورگرها قابل نمایش یا مرتبط با سرور باشد به نحوی با زبان های برنامه نویسی وب ارتباط دارد که این خود طیف وسیعی از امکانات را شامل می شود، به طور مثال اتوماسیون های اداری تحت شبکه، سیستم های آنلاین رزرو بلیط، فروشگاه های خرید آنلاین، بازی های آنلاین یا آفلاین مبتنی بر پلتفرم وب، سایت ها، وبلاگ ها، شبکه های اجتماعی و اغلب برنامه ها و بازی های تلفن همراه در بخش سرور نیاز به آشنایی و تسلط بر برنامه نویسی وب دارند، در واقع با آنلاین یا مبتنی بر شبکه بودن بسیاری از برنامه ها رد پای برنامه نویسی وب در اغلب پروژه ها دیده می شود.
برای برنامه نویس وب شدن از کجا شروع کنیم؟
برای برنامه نویس وب شدن باید قبل از هر چیز مبانی وب را بشناسیم، در خصوص واژه هایی مانند اینترنت، مرورگر، سرور، آدرس URL، سایت، وبلاگ و کدنویسی HTML اطلاعات فنی اولیه داشته باشیم، در گام دوم باید دو دسته از زبان های برنامه نویسی را یاد بگیریم، زبان های سمت کاربر (برای شروع HTML) و زبان های سمت سرور (مانند زبان برنامه نویسی PHP)، در کنار این دو دسته یادگیری فناوری های بینابینی مانند Ajax هم ضروری خواهند بود.
چرا در وب دو دسته زبان برنامه نویسی باید یاد بگیریم؟
ساختار وب به نحوی است که از دو بخش سمت کاربر و سمت سرور تشکیل شده است یعنی اطلاعاتی که ما به دنبال آنها هستیم معمولا در جایی دور از ما بر روی سرورها قرار دارند و پس از ارسال درخواست از طریق مرورگر نتیجه از سرور دریافت و در صفحه مرورگر نمایش داده می شود، لذا برای مدیریت این دو قسمت به مرور دو طیف مختلف (سمت کاربر و سمت سرور) اما مرتبط از زبان ها شکل گرفته و توسعه داده شده تا به وضعیت فعلی برسیم.
در وب چه زبان های برنامه نویسی را باید یاد بگیریم؟
این زبان ها در سمت کاربر شامل موارد زیر است که بهتر است به ترتیب یاد گرفته شوند:
- HTML، زبان پایه کدنویسی وب است و تقریبا هر آنچه که در مرورگرها می بینیم در نهایت باید با قوانین این زبان نوشته شده باشند، شاید بپرسیم ما که در مرورگرها چیزی جزء متن، تصویر و... نمی بینیم پس زبان HTML کجا استفاده شده است؟! در پاسخ به این سوال کافی است در صفحه وب کلیک راست کرده و گزینه ی View HTML Source یا View Page Source را انتخاب نمائیم، خواهیم دید که در پشت صفحات ساده ای که در حال مرور آنها هستیم مجموعه ای از کدهای برنامه نویسی قابل روئیت است که این کدها برای مرورگرها قابل تشخیص و پردازش هستند و در نهایت ساختار کلی صفحه را شکل می دهند، HTML زبان شیرین و ساده ای است و بیشتر شامل یک سری قواعد نشانه گذاری (Markup) می شود و اصول خیلی پیچیده ای ندارد.
- CSS، در کنار HTML و معمولا پس از فراگیری آن باید با زبان استایل نویسی دیگری تحت عنوان CSS آشنا شویم، HTML به تنهایی صرفا اسکلت بی جان صفحات وب را ایجاد می کند، برای دمیدن روح به این اسکلت بی جان باید از CSS استفاده کنیم، با CSS می توانیم هرآنچه که به رنگ و فرم مربوط می شود را در صفحات وب پیاده سازی کنیم، یادگیری CSS در مقایسه با HTML کمی زمانبر است و تبحر در آن نیازمند کسب تجربه تدریجی و آزمایش و خطا دارد.
- JavaScript، گفتیم که HTML ساختار ساده ای دارد و نمی توانیم با آن ساز و کارهای پیچیده ای طراحی کنیم، به فرض نمی توانیم عرض صفحه نمایشگر کاربر را تشخیص داده یا مقادیر وارد شده در یک فرم را به صورت پیشرفته اعتبارسنجی کنیم، برای موارد اینچنینی و تقریبا هرآنچه که به قابلیت های تعاملی در صفحه مرورگر مربوط می شود نیازمند ورود به دنیای حرفه ای برنامه نویسی جاوا اسکریپت هستیم، جاوا اسکریپت زبان قدرتمندی است که برای ایجاد امکانات سمت کاربر بسیار کاربرد خواهد داشت و علاوه بر وب در بسیاری از پلتفرم های دیگر نیز استفاده می شود، برای یادگیری جاوا اسکریپت باید وارد دنیای هوش منطقی شویم که بسیار شیرین و جذاب است، فراگیری این زبان اندکی از دو مورد بالا زمانبرتر و پیچیده تر خواهد بود.
پس از فراگیری سه مورد اشاره شده در بالا نوبت به فراگیری زبان های سمت سرور زیر است:
- PHP، زبان قدرتمند و فراگیر برای نوشتن کدهایی است که در سرور قابل اجرا هستند، همان طور که گفتیم پس از ارسال درخواست دریافت محتوای یک صفحه این درخواست به سرور میزبان آن صفحه ارسال می شود و سرور با توجه به برنامه ای که ما برایش تعریف می کنیم به درخواست کاربر پاسخ خواهد داد که این برنامه با زبان های برنامه نویسی مانند PHP قابل تعریف است، انتخاب PHP اجباری نیست و انتخاب های دیگری مانند ASP.NET، Python، Java و... وجود دارد، اما برای کاربردهای متداول به جهت سادگی و در عین حال قدرتمندی، متن باز (Open-source) بودن، جامعه کاربران فراوان، سهولت استفاده، نصب و راه اندازی ارزان و مطمئن و مواردی از این دست پیشنهاد ما این است که حداقل به عنوان پایه کار حتما PHP را یاد بگیرید، بسیاری از برنامه های معروف مانند وردپرس، جوملا، دیتالایف و... با این زبان نوشته شده اند، یادگیری PHP در مقایسه با سایر زبان های مشابه بسیار شیرین و آسان است و اصول اولیه کار با آن را به سرعت فرا خواهید گرفت.
- MySQL، یک زبان برنامه نویسی نیست بلکه سیستم مدیریت پایگاه داده است که با زبان های برنامه نویسی مانند PHP در تعامل است، امروزه اطلاعات رد و بدل شده در برنامه های تحت وب عموما بر روی پایگاه داده نگهداری می شوند و برای دسترسی و مدیریت این پایگاه های داده نیاز به سیستم های خاصی مانند MySQL است، MySQL بیشترین سازگاری را با PHP دارد و می توانیم با کدنویسی به صورت حساب شده و منظم موارد را در پایگاه داده ذخیره یا از آن استخراج کنیم، در صورت آشنایی با PHP یادگیری استفاده های اولیه MySQL بسیار ساده خواهد بود.
و در نهایت فناوری های بینابینی:
- Ajax، منظور از بینابینی این است که کدهای ای جکس در مرورگر کاربران اجرا می شود اما درخواست را به سرور ارسال کرده و نتیجه را از سرور دریافت و در صفحه مرورگر پردازش یا نمایش می دهد، Ajax فناوری نوینی است که باعث می شود بدون نیاز به رفرش صفحات وب بتوانیم در پس زمینه اطلاعات را رد و بدل کنیم که در اغلب برنامه ها کاربردی و مورد نیاز است، تکنولوژی Ajax ترکیبی از JavaScript و XML است و یادگیری آن زمان کمی می برد.
صرف یادگیری زبان های اصلی وب کفایت می کند؟
برنامه نویسی وب مستقل از سایر مفاهیم دنیای کامپیوتر و پلتفرم های دیگر نیست، لذا در کنار زبان های سمت سرور، سمت کاربر و زبان های بینابینی باید با مباحث و قابلیت های دیگری مانند XML، JSON، SVG، Regular Expressions، htaccess، HTTP و مواردی از این دست آشنا باشیم، اینها مفاهیمی کلی هستند که در سایر پلتفرم ها نیز کاربرد خواهند داشت.
چه سیستم و نرم افزارهایی برای برنامه نویسی وب مورد نیاز است؟
خوشبختانه برنامه نویسی وب نیاز به سیستم سخت افزاری خیلی خاصی ندارد، با یک سیستم معمولی و صفحه نمایش با ابعاد متوسط نیز می توانیم کدنویسی وب را شروع کرده و نتیجه را در مرورگر مشاهده کنیم، در مورد نرم افزار نیز اگرچه با برنامه Notepad ساده ویندوز هم می توانیم کدنویسی کنیم اما در پروژه های حرفه ای برنامه های پیشرفته و قوی مانند PhpStorm، Notepad++، Dreamweaver و برای طراحی وب Photoshop، Illustrator، IconWorkshop و مواردی از این دست مورد نیاز خواهند بود، پیشنهاد ما در زمینه کدنویسی پیشرفته PhpStorm و برای انجام کارهای سریع و ساده برنامه ++Notepad است.
نیاز است که حتما آنلاین برنامه ها را اجرا کنیم؟
خیر، برای کدنویسی و اجرای برنامه های تحت وب هیچ نیازی به اتصال به اینترنت و آنلاین بودن نیست، حتی کدهایی که در سرور اجرا می شوند نیز با نصب برنامه سرور مجازی در سیستم عامل قابل اجرا هستند، تنها زمانی که بخواهیم برنامه ها به صورت آنلاین قابل استفاده باشند باید آنها را به هارد دیسک سرور منتقل کنیم.
یادگیری برنامه نویسی وب چقدر زمان می برد؟
پاسخ روشنی نمی توانیم به این سوال بدهیم! بسته به میزان آشنایی قبلی با دنیای برنامه نویسی، هدف، مدت زمان صرف شده در روز و استعداد و علاقه این زمان بین افراد مختلف متغیر خواهد بود، به فرض اگر بخواهید برنامه نویسی وب را در حد طراحی قالب یک وبلاگ بیاموزید قطعا زمان بسیار کمتری نسبت به حالتی که می خواهید یک سیستم مدیریت محتوای شخصی طراحی کنید مورد نیاز است، به طور معمول برای کسی که می خواهد صفر تا صد کار را یاد بگیرید و از سطح پایه به سطح پیشرفته برسد شاید زمانی در حدود 1 تا 3 سال در صورت کار مداوم و 2 تا 5 سال در صورت کار متناوب مورد نیاز است.
برنامه نویسی وب می تواند درآمدزا باشد؟
در کل بر روی کاغذ مهارت هایی مانند برنامه نویسی وب جزء فرصت های مناسب برای کسب درآمد محسوب می شوند اما در عمل این موضوع بستگی زیادی به شناخت واقعیت های موجود و فرصت ها و محدودیت ها دارد، صرف یادگیری یک زبان برنامه نویسی در صورتی که نتوانیم بازار هدف را شناسایی کرده یا ایده ناب و جدیدی داشته باشیم شاید خیلی به کسب درآمد منتهی نشود، از طرفی نگاه افراطی به این مقوله و اصرار بر کسب درآمد خود می تواند نتیجه معکوس داشته باشد، در هر صورت مشاغلی مانند برنامه نویس پروژه های تحت وب به طور مثال اتوماسیون های اداری، طراحی سایت ها در زمینه های مختلف، پشتیبانی و نگهداری برنامه های مدیریت سایت، طراحی ریزبرنامه ها و افزونه های مستقل یا وابسته به سایر برنامه ها، طراحی قالب های وب و مواردی از این دست جزء دورنمای کاری کسب درآمد از برنامه نویسی وب محسوب می شود، اما مهمتر از اینها استفاده از این پتانسیل برای تبدیل ایده ذهنی به واقعیت عینی است، به طور مثال اگر قصد راه اندازی سرویس آنلاین اشتراک ویدئو، ایجاد فروشگاه آنلاین اختصاصی، طراحی اپلیکیشن های پیشرفته و... را داشته باشیم برنامه نویسی وب می تواند یکی از مهم ترین ابزارهای ما در این راه باشد و بیشترین اهمیت زبان های برنامه نویسی در این زمینه ها خود را نشان می دهد، در مجموع فضا و فرصت های بزرگی در این عرصه مهیا است مهم این است که بتوانیم از این شرایط با چاشنی خلاقیت استفاده کنیم.
یادگیری زبان های وب خیلی پیچیده است؟
یادگیری زبان های وب هم می تواند خیلی پیچیده باشد و هم نه! گفتیم که ساختار وب به نحوی است که از دو بخش سمت کاربر و سرور تشکیل شده است، این دو بخش به شدت به هم مرتبط هستند و برای فراگیری باید حتما به صورت سلسله وار و تدریجی طی مسیر کنیم، متاسفانه برخی از نوآموزان بدون کوچکترین آشنایی با HTML به سراغ PHP می روند و مشخص است که در این شرایط درک بسیاری از مفاهیم سخت و پیچیده خواهد بود، از این حالت بدتر اینکه برخی اصرار دارند مباحث یک زبان برنامه نویسی را پس و پیش یاد بگیرند و به فرض هنوز با مفهوم متغیر آشنا نشده به مبحث آرایه ها می رسند، تمام این موارد اشتباه است و کاربر را دچار خستگی و سردرگمی می کند، به تجربه بهتر است که از زبان های ساده تر و مقدماتی تر شروع کرده و در هر زبان ترتیب مباحث را از پایه به پیشرفته رعایت کنیم، در اینصورت سختی های کار را حس نمی کنیم و روز به روز تسلطمان بیشتر شده و از آموخته هایمان لذت خواهیم برد، فرآیند یادگیری زبان های برنامه نویسی بی شباهت به بالا رفتن و پائین آمدن از قله کوه نیست، تا جایی باید خیلی آهسته و پیوسته پیش برویم، زمانی که به نقطه تسلط نسبی رسیدیم معمولا روند یادگیری مباحث جدید سریع و پر شتاب خواهد شد.