برنامه نویسی چیست؟

اگر در گوگل سرچ کنید برنامه نویسی چیست‌ ، با دنیایی از مقالاتی مواجه میشوید که برنامه نویسی را بسیار پیچیده و سخت معرفی کرده‌اند. گاهی خواندن این مقالات پیچیده، افراد مبتدی را میترساند و هیچوقت نمیتوانند به سمت یادگیری برنامه نویسی بیایند. زیرا فکر میکنند که برنامه نویسی یک علم بسیار پیچیده است و برای یادگیری آن فقط باید نابغه بود ! در این مقاله ، میخواهیم درباره‌ی برنامه نویسی صحبت کنیم و به سوال برنامه نویسی چیست ، به زبان ساده و کاربردی پاسخ دهیم. پس با ما همراه باشید.

توجه داشته باشیم که یک برنامه ی کامپیوتری چیزی بیش از حل یک مسأله نیست. به عبارت دیگر، نرم‌افزارها یا اپلیکیشن ها به منظور حل یک مشکل خاص طراحی شده و به بازار عرضه می شوند. حال هرچه این مشکل بزرگ‌تر و جهانی تر باشد، آن نرم‌افزار هم کاربردی‌تر و معروف تر خواهد شد.

در حقیقت، کسانی که علاقمند به برنامه نویسی هستند می بایست سعی کنند یکی از دغدغه ها یا مشکلات جامعه ی خود را برطرف سازند تا نرم‌افزار ایشان با اقبال عمومی رو به رو شود. یک برنامه نویس پیش از شروع به کدنویسی و انجام پروژه، دقیقاً می بایست بداند که قرار است چه مشکلی را حل نماید و مهم تر از یافتن مشکل، این مسئله که آیا مشکلی که وی در صدد حل آن است آیا واقعا دغدغه درصد قابل توجهی از جامعه است یا گروهی کوچکی از کاربران را پوشش می دهد.

هر برنامه کامپیوتری یا به عبارتی هر نرم افزار مجموعه ای از دستوراتی است که به ترتیب خاصی به کامپیوتر داده می شوند و یکی پس از دیگری اجرا می شوند. به طور مثال یک ویروس -که یک برنامه ی مخرب کامپیوتری است- دستوراتی بر مبنای تخریب و یا از بین بردن بخشی از اطلاعات ذخیره شده روی کامپیوتر را دارا است. برای روشن تر شدن مطلب، نرم افزار را به یک مثال از زندگی روزمره مان تشبیه می کنیم. فرض را بر این بگذاریم که خودروی شخصی شما خراب می شود و شما مجبور می شوید که آن را نزد مکانیکی ببرید. مکانیک پس از عیب یابی خودروی شما از شاگرد خود می خواهد که موارد ذیل را به ترتیب اجرا کند:

اول ماشین را خاموش کند. دوم کاپوت ماشین را بالا بزند. سوم روکش انژکتور را بردارد. چهارم پس از باز کردن انژکتور سوزن سوم آن را تعویض کند. پنجم انژکتور را مجدداً سوار کند. ششم روکش آن را نصب کند. و در نهایت کاپوت ماشین را بسته و استارت بزند.

در مثال فوق مکانیک به منزله برنامه نویس است و شاگرد هم به منزله اجرا کننده و یا همان کامپیوتر. مفهوم تعمیر شدن ماشین را نیز می توان به عملیاتی تشبیه کرد که یک نرم افزار انجام می دهد. هر یک از دستوراتی را که مکانیک به شاگردش می دهد همانند همان دستوراتی است که ما به عنوان برنامه نویس به کامپیوتر می دهیم تا کاری را انجام دهد. حال اگر این دستورات به نحوی باشند که کار مثبتی صورت گیرد ما یک نرم افزار تولید کرده ایم و چنانچه این دستورات موجب ایجاد خللی در سیستم شوند و به جایی صدمه بزنند ما یک بدافزار یا ویروس طراحی کرده ایم (در مثال تعمیر خودرو، شاگرد مکانیک می توانست به جای تعوض سوزن انژکتور، نه تنها سوزن را تعویض نکند بلکه از عمد به مابقی سوزن ها هم صدمه بزند!)

در برنامه نویسی اصطلاحاً به هر دستوری که می خواهیم اجرا شود یک Statement گفته می شود. حال برای نوشتن تعدادی Statement ما نیاز به یک ویرایشگر متن داریم تا بتوانیم دستورات مد نظر را در آن وارد سازیم.

خوشبختانه برنامه نویسی مهارتی است که الزاماً نیاز به دانشگاه رفتن ندارد و هر کسی که صرفاً علاقمند به یادگیری آن باشد می‌تواند ظرف مدت چند ماه -و نهایتاً یک سال- به یک برنامه نویس در حوزه ای که به آن علاقمند است مبدل شود.

برخی از افراد بر این باورند که برای برنامه نویس شدن نیاز است تا تحصیلات دانشگاهی داشت یا یک متخصص علم ریاضیات بود. درست است که داشتن ذهن ریاضیاتی و تحلیلی به هرچه بهتر شدن شما به عنوان یک برنامه نویس کمک می کند، اما این اصلاً بدان معنا نیست که اگر شما متخصص ریاضیات نباشید نمی‌توانید به یک برنامه نویس موفق مبدل شوید (در واقع این باور نادرست شبیه به آن است که یک زن و شوهر برای بچه‌دار شدن، هر دو می بایست لیسانس بیولوژی داشته باشند!)

نرم افزارها و اپلکیشن‌ها

ممکن است بپرسید که نرم افزارها و اپلیکیشن هاچیستند و چه کاربردی دارند؟ سوال بسیار خوبی است.

همانطور که گفتیم، برای اینکه بخواهیم یک ماشین کارهایی برای ما انجام دهد، باید به آن ماشین دستوراتی بدهیم. و گفتیم که این دستورات را از طریق مجموعه کدها به آن ماشین میدهیم. و مجددا گفتیم که هر ماشینی به زبان خاص خودش صحبت میکند، همانطور که هر جامعه‌ای زبان خاص خودش را دارد. ما وقتی مجموعه دستوراتی را برای یک ماشین مینویسیم، معمولا آن‌را در قالب یک اپلیکیشن یا نرم افزار (یا …) در می‌آوریم و تقدیم آن ماشین میکنیم! برای مثال از تلفن همراهمان میخواهیم که وقتی کاربری اپلیکیشن x را باز کرد، یک فیلم به او نشان داده شود. برای اینکا مجموعه کدهایی را مینویسیم و به یک اپلیکیشن (مثلا اندروید)‌ تبدیل میکنیم. سپس کاربر میتواند آن اپلیکیشن را نصب کند، آن‌را اجرا کند و آن فیلم را مشاهده کند.

نرم افزارها، مجموعه دستورات ما هستند که میخواهیم توسط یک ماشین اجرا شوند.

نرم افزارها و اپلکیشن‌ها به چه دلیلی نوشته میشوند؟

اگر بخواهیم به سوال برنامه نویسی چیست پاسخ دهیم، باید با کاربرد اصلی اپلیکیشن ها و نرم افزراها آشنا شویم. در اپلیکیشن ها و نرم افزارها (که اپلیکیشن نیز خود یک نوع از نرم افزار است) همه چیز به ساختچیزی که یک فیلم ساده را نمایش بدهد ختم نمیشود. نرم افزارها و اپلیکیشن ها کارهای بسیار مهم تری میتوانند انجام دهند. در واقع برنامه نویسی و برنامه نویسان کارهای بسیار مهم تری میتوانند انجام دهند. یکی از دلایلی که هر نرم افزاری نوشته میشود، حل یک مشکل است. نرم افزارها آمده‌اند که زندگی را برای ما راحت تر کنند. اگر بخواهیم چند مثال بزنیم میتوانیم به نرم افزارهای زیر اشاره کنیم:

  • نرم افزاری که امکان سفارش انلاین غذا را از داخل منزل برای ما فراهم میکند
  • نرم افزاری که امکان گرفتن تاکسی اینترنتی را فراهم میکند.
  • نرم افزاری که کمک میکند هر آن چیزی که میخواهید را در خانه و از طریق اینترنت یاد بگیرید.
  • نرم افزاری که کمک میکند در خانه باشید و سفارش دهید یا بیایند و اتومبیل‌تان را تمیز کنند.
  • و هزاران نرم افزار کاربردی دیگر …

نرم افزارها آمده‌اند که زندگی را برای ما راحت‌تر کنند و مشکلات ما را حل کنند.

وظیفه‌ی یک برنامه نویس

فکر میکنم تا الان توانستیم پاسخ مناسبی برای سوال برنامه نویسی چیست پیدا کنیم. حالا میخواهیم به این موضوع بپردازیم که وظیفه‌ی یک برنامه نویس چیست؟

یک برنامه نویس خوب و حرفه‌ای، باید مشکلات زندگی انسان‌ها، شرکت‌ها، سازمان‌ها و… را پیدا کند و از طریق طراحی و برنامه نویسی سیستم‌هایی، آن مشکلات را حل کند. بطور خلاصه، وظیفه‌ی اصلی یک برنامه نویس، حل مشکلات موجود است. که با استفاده از تخصصی که دارد، میتواند این مشکلات را حل کند.

انواع زمینه‌های برنامه نویسی

بسیاری از دوستان در کلاس ها و کارگا‌ه‌های آموزشی ما این سوال را مطرح میکنند که «کدام زبان برنامه نویسی رو انتخاب کنم؟» و من همیشه برای این سوال یک پاسخ دارم: بستگی به این دارد که چه کاری میخواهید انجام دهید.

شما نمیتوانید به دنبال بهترین زبان برنامه نویسی باشید و این سوال را مطرح کنید که بهترین زبان برنامه نویسی چیست. هر زبان برنامه نویسی در یک محیط خاص و برای کار خاصی ساخته شده است.

برای اینکه بخواهید اقدام به یادگیری یک زبان برنامه نویسی کنید، اول باید تصمیم بگیرید که در چه حیطه‌ای میخواهید کار کنید؟

آیا میخواهید یک طراح وب باشید؟ یا دوست دارید به یک برنامه نویس وب تبدیل شوید. شاید هم بخواهید یک برنامه نویس فول استک باشید. یا شاید به طور کلی علاقه‌ی شما سمت ساخت اپلیکیشن های موبایلی باشد. شما با توجه علاقه‌تان باید انتخاب کنید که کدام زبان برنامه نویسی را میخواهید یاد بگیرید.

یک زبان برنامه نویسی عالی نداریم. زبان های برنامه نویسی مختلف در زمینه‌های مختلف میتوانند عالی باشند. پس سوال «بهترین زبان برنامه نویسی چیست؟» یک سوال اشتباه است که بجای آن مثلا برای بپرسیم که «بهترین زبان برنامه نویسی برای ساخت اپلکیشین های اندرویدی چیست؟»