بسیاری از علاقه مندان این سوال را از من می پرسند که برنامه نویسی را از
کجا و چطور شروع کنیم. قبل از پاسخ به این سوال برای افراد مبتدی که تا به
حال با هیچ نوع برنامه نویسی آشنا نیستند، باید به این سوال پاسخ داد که
هدف شما از برنامه نویسی چیست؟ چون امروزه گستره برنامه نویسی خیلی وسیع
است. در واقع برنامه نویسی یک ابزاری است در حوزه های مختلف استفاده می
شود. برای مثال آیا هدف شبیه سازی یک فرایند یا اصطلاحا حل عددی (CFD) است؟
یا تولید نرم افزار موبایل. یا تولید یک وب سایت، یا یک برنامه ویندوزی
(دسکتاپ)؟ من در ادامه چند کاربرد نمونه از برنامه نویسی را توضیح میدهم.
برنامه نویسی برای حل مسائل ریاضی و شبیه سازی
بسیاری از دانشجویان رشته های مهندسی مثل مهندسی شیمی، مکانیک، عمران و
... که با مدل سازی و شبیه سازی یا کنترل سر و کار دارند، به برنامه نویسی
نیاز دارند. اگر قصد شما از برنامه نویسی برای پروژه درسی یا پایان نامه
خود با چنین هدفی است به شما توصیه میکنم سراغ برنامه نویسی به زبان های
پایه مثل ++C یا حتی #C و Java نروید. دلیل آن هم مشخص است. زبان MATLAB
(متلب) مخصوص همین کار توسعه پیدا کرده است. دلیل ندارد چرخ را از اول
اختراع کنید.در کتابخانه متلب تقریبا برای همه رشته های مهندسی ابزار وجود
دارد. ابزار های حل معادلات دیفرانسیل و بهینه سازی،الگوریتم ژنتیک، شبکه
عصبی، مدل سازی و کنترل و ... خیلی ابزارهای دیگر.
البته این طور نیست که چنین ابزارهایی را نتوان در زبان های دیگر پیدا
کرد، بلکه توسعه برنامه در چنین محیطی بسیار ساده تر است و زمان کمتری می
گیرد.
عموما طبق تجربه شخصی من در کارهای پژوهش محور مهندسی اگر بخواهیم نرم
افزار مستقل از متلب ایجاد کنیم معمولا قبل از برنامه نویسی سطح پایین کدها
را در متلب پیاده سازی و تست می کنیم و در صورت موفق بودن، معادل آن را
در زبان های سطح پایین تر مثل C یا Java (بر اساس نیاز) باز نویسی می کنیم.
برنامه نویسی تحت وب
در ادامه مطلب
برنامه نویسی تحت وب
برنامه نویسی تحت وب اصطلاحی است که به برنامه هایی گفته می شود که از دو
بخش کلاینت و سرور تشکیل شده اند و توسط پروتکل های وب (مثل HTTP) با هم
ارتباط دارند. نمونه بارز آن کلیه وب سایت هایی هستند که شما در سراسر دنیا
مشاهده می کنید. مثلا زمانی که شما آدرس وب سایت zatkhahi.ir را در مرورگر
خود می زنید، مرور گر به سرور مربوطه طبق پروتکل های مشخصی دستورات لازم
را ارسال می کند، و برنامه ای روی سرور اجرا می شود و یک یا چند خروجی متنی
تولید می کند. مرورگر همه این خروجی های متنی را دریافت کرده و پس از
اجرای برنامه هایی روی سیستم شما در قالب نمایشی مناسب به شما نشان می دهد.
در این فرایند ۲ برنامه اجرا می شود. اول برنامه ای است که روی سرور قرار
دارد و دوم برنامه هایی هستند که پس از دانلود توسط مرورگر روی سیستم خود
شما توسط مرورگر اجرا می شوند. سرور که معنایش مشخص است یعنی کامپیوتری که
برنامه وب سایت روی آن قرار دارد و شما از طریق اینترنت به آن وصل می شوید و
کلاینت هم یعنی سیستم خود شما که برنامه های دریافت شده را اجرا می کنید.
طبق همین مفهوم برنامه نویسی تحت وب هم عموما به دو بخش کلی تقسیم میشود:
برنامه نویسی تحت سرور (back-end) یا برنامه نویسی سمت کلاینت که به آن
front-end می گویند.
برنامه هایی که تحت سرور هستند می تواند هر زبان برنامه نویسی باشد، ولی
معروف ترین زبان های برنامه نویسی دنیا که مخصوص این کار طراحی شده اند
PHP، #C ، Python و Java هستند. البته هر کدام از این ها کتابخانه های
(Framework) متعدد و طرفداران خاص خود را دارند. که توضیح راجع به انواع
کتابخانه های موجود را ان شاء الله در نوشته دیگری توضیح خواهم داد.
کسی که برنامه تحت سرور می نویسد عموما باید با پایگاه داده هم آشنا باشد.
امروزه ساده ترین برنامه های تحت وب (مثل همین وب سایت) هم نیاز به ذخیره
سازی و مدیریت اطلاعات دارند. برای مثال در همین وب سایت، تصور کنید
بخواهید پست های ایجاد شده، دیدگاه های هر پست، اطلاعات کاربرهای وب سایت،
منوها و ... را در جایی ذخیره کنید. پایگاه داده مبحث خیلی گسترده ای است
ولی در حد یک تعریف ساده برای حل نیاز ما، برنامه ای است که کلیه اطلاعات
روی سرور را در قالب جداول مختلف و ارتباطلات بین آن ها مدیریت می کند.
معروف ترین پایگاه داده دنیا که رایگان هم هست MYSQL است. برنامه نویس تحت
سرور باید با زبان SQL آشنا باشد تا بتواند اطلاعات را توسط این دستورات
ذخیره و دریافت کند.
برنامه تحت سرور باید خروجی های صحیح به فرمت HTML و CSS تولید کند که
قابل فهم برای مرورگر ها می باشد. پس برنامه نویس تحت سرور باید با دستورات
HTML، CSS آشنا باشد.
برنامه نویسی تحت کلاینت عموما هدفش طراحی ظاهر وب سایت مثل قالب، رنگ
بندی، فونت ها، منوها، نمایش اسلاید و ... است. همه کدهایی که برنامه نویس
کلاینت می نویسد روی سیستم کاربر توسط مرورگر اجرا می شود. این کدها عموما
شامل HTML، CSS و JavaScript هستند. در نتیجه ذوق و سلیقه هنری هم در طراحی
سمت کلاینت خیلی حائز اهمیت است. و برنامه نویس کلاینت باید با انواع
کتابخانه های جاوا اسکریپت و CSS مثل JQuery و Angular JS و Bootstrap
آشنا باشد.
پس اگر شما بخواهید برنامه نویس تحت سرور باشید کار شما سخت تر است. چون
علاوه بر زبان برنامه نویسی (PHP یا C# مثلا) و SQL باید با کتابخانه های
کلاینت هم آشنا باشید. معمولا back-end کار ها افراد با سابقه کار بیشتری
هستند.
پس اگر کسی بخواهد یک وب سایت ساده مشابه همین وب سایت راه اندازی کند،
باید حداقل این چند زبان برنامه نویسی و کتابخانه های مرتبط را یاد بگیرد.
البته برای راه اندازی یک وب سایت راه ساده تری نیز وجود دارد. می توانید
از برنامه های آماده (سامانه مدیریت محتوی) استفاده کنیم. برنامه هایی مثل
Joomla و Wordpress یا Drupal. با استفاده از نصب این برنامه ها بدون نیاز
به هیچ برنامه نویسی می توان یک وب سایت را راه اندازی نمود. برای مثال
همین وب سایت با استفاده از مدیریت محتوی Drupal راه اندازی شده است. که با
استفاده از آن همه برنامه های کلاینت و سرور قبلا نوشته شده است و فقط
توسط کاربر تنظیم می شود. باید توجه داشته باشید که این برنامه های مدیریت
محتوی یا CMS هم کلیه این کتابخانه ها را شامل می شوند. برای مثال در راه
اندازی دروپال از موارد زیر استفاده شده است:
-
هسته برنامه سرور با استفاده از Php
-
پایگاه داده Mysql
-
Javascript و JQuery
-
CSS
-
HTML
در صورتی که شما بخواهید که قابلیت های جدید به وب سایت اضافه
کنید یا تغییری در سامانه وب سایت ایجاد کنید، مثلا رنگ و وفونت قالب را
تغییر دهید، باید فهم درستی از HTML و CSS داشته باشید. یا مثلا بخواهید
برنامه بنویسید که از کاربرهای سایت یک نظرسنجی خاص را انجام دهد، باید با
استفاده از Php و Mysql این کار را انجام دهد.
این که چطور یک وب سایت را سریع و بدون دانش برنامه نویسی با
استفاده از سامانه های مدیریت محتوی راه اندازی کنیم، هدف من از این نوشته
نیست. ان شاءالله در نوشته ای جداگانه به این مساله خواهم پرداخت.
هدف از این نوشته این است که شما با ابعاد مختلف برنامه نویسی
آشنا بشوید و اگر دوست دارید در این مسیر گام بردارید بدانید از کجا شروع
کنید و باید چه چیز هایی را یاد بگیرید.
شاید الان برای شما این سوال پیش بیاید که این همه مطلب و
زبان و کتابخانه را باید یاد بگیرم و کار دشواری است. اما اصلا این طور
نیست. برنامه نویسی کار بسیار جذاب و شیرینی است. و برای انجام چنین
کارهایی حتی لازم نیست حتما تحصیلات مهندسی کامپیوتر داشته باشید. تنها
چیزی که لازم دارد علاقه و پشتکار است. این طور هم نیست که طی چند جلسه همه
این موارد را یاد بگیرید، بلکه برای هر کدام باید با حوصله وقت بگذارید و
تمرین کنید و یاد بگیرید. نمی شود عدد دقیقی گفت که چند ماه یا سال طول می
کشد بستگی به توانایی و میزان زمانی دارد که برای برنامه نویسی می گذارید.
ولی فکر می کنم یک شخص معمولی طی ۳ سال بتواند در طی پروژه های مختلف به
همه این مباحث مسلط شود. برای اینکه بیشتر خیال تان راحت شود برای مثال
خدمت شما عرض می کنم که خود من فارغ التحصیل رشته مهندسی شیمی هستم ولی طبق
علاقه ای که داشتم به صورت خود آموز و طی چندین سال همه این موارد رو یاد
گرفتم. البته اگر بخواهید در موضوع های مختلف عمیق تر شویم باید مطالعه
بیشتری انجام بدهیم و خوشبختانه منابع موجود در اینترنت بسیار می باشد.
هم چنین توصیه می کنم به افراد مبتدی که قصد دارند برنامه
نویسی وب را به صورت حرفه ای یاد بگیرند از برنامه نویسی front-end یا سمت
کلاینت شروع کنند. ان شاءالله در نوشته های بعدی مطالبی در مورد منابع و
نحوه مطالعه این موضوعات خدمت عزیزان ارایه خواهم کرد و درباره مدل برنامه
نویسی های دیگر مثل دسکتاپ و موبایل توضیحاتی خواهم داد.
منبع:zatkhahi.ir/node/28