مقدمه‌ای بر برنامه‌نویسی و زبان سی‌شارپ


(مارگارت همیلتون از نخستین برنامه‌نویسان جهان، در کنار کدهایی که برای ماموریت آپولو ۱۱ ناسا نوشته شده است؛ کدهایی که انسان را به ماه فرستاد. این کدها به تازگی توسط دختر او در دسترس عموم قرار گرفته و در گیت‌هاب قابل مشاهده‌اند.)

 

بسیاری از افراد برنامه‌نویسی را به عنوان امری بسیار دشوار می‌دانند؛ چرا که هنگام مواجهه با یک کد کاراکترهایی بی‌معنی را در برابر خود می‌بینند که به نظرشان عجیب‌وغریب و پیچیده بوده و درکشان ممکن نیست.

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

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

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

عناوین آموزشی مثل «یادگیری برنامه‌نویسی در ۲۱ روز» فریبنده هستند و بیشتر جنبه‌ی تبلیغاتی دارند. یکی از راه‌های یادگیری برنامه‌نویسی در ۲۱ روز در زیر توضیح داده شده است:

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

مسئله‌ای را تصور کنید که از برنامه‌نویس خواسته تا اعداد اول قبل از x (متغیر) را مشخص کند. حل این مسئله ربط چندانی به برنامه‌نویسی ندارد. برنامه‌نویس برای حل این مسئله ابتدا به این نکته توجه می‌کند که عدد ۱ نه اول است و نه مرکب؛ بنابراین از دور خارج می‌شود. در مرحله‌ی بعد تک تک اعداد را از ۲ تا x-1 بررسی می‌کند که اول هستند یا خیر؛ اگر اول هستند اعلام شوند و در غیر این صورت نادیده گرفته شوند.

این مسئله یک زیرمسئله در درون خود دارد که آن هم باید حل شود؛ چگونه بفهمیم که یک عدد اول است؟ پاسخ این است که آن عدد (مثلاً y) باید تنها دو مقسوم‌علیه (۱ و y) داشته باشد. پس برای بررسی این که یک عدد اول است یا خیر کافی است به ازای هر عدد متغیری به نام n در نظر گرفته و آن را برابر ۰ قرار دهیم. سپس عدد را تقسیم بر اعداد ۱ تا y کنیم و به ازای هر بار که باقیمانده‌ی تقسیم صفر شد، یکی به n اضافه کنیم. در نهایت در صورتی که n=2 بود نتیجه می‌گیریم که y عدد اول است.

این یک روش حل مسئله‌ی فوق است. بدیهی است که بیشمار روش دیگر نیز برای حل این مسئله وجود دارد. حل مسئله به زبان برنامه نویسی ارتباطی ندارد.

انجام عملیاتی خاص به روشی که برنامه‌نویس در ذهن دارد مستقل از زبان برنامه‌نویسی است.

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

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

خوشبختانه syntax زبان سی‌شارپ شباهت زیادی به syntax سایر اعضای خانواده‌ی C از جمله سی‌پلاس‌پلاس، جاوا، پی‌اچ‌پی، اکما اسکریپت (زبانی که جاوا اسکریپت از آن تکامل یافته است و به مرور جایگزین آن شده است) و… دارد و این بدان معنی است که با یادگیری syntax یکی از این زبان‌ها، می‌توان به سایر زبان‌های خانواده‌ی C تسلطی نسبی یافت و از آن‌جا که زبان ++C در دانشگاه‌های ایران تدریس می‌شود دانشجویان رشته‌های مهندسی می‌توانند از تجربیات خود در این زمینه استفاده کنند.

برگه‌ها : 1 2 3 4 5 6 7