پاسخ به سوالات معمول
در اولین فصل این کتاب، با پاسخ به سؤالات معمول و مهم، اهمیت و کاربرد برنامهنویسی برای افراد مختلف بررسی میشود. این فصل را حتماً مطالعه کنید.
برنامه نویسی چیست؟
برای صحبت با کامپیوتر باید برنامهنویسی کنیم تا بتوانیم دستورالعملهای دقیقی را به آن بدهیم که مطابق آن کاری را انجام دهد. برای مثال، بگوییم که در چه شرایطی چه کارهایی را انجام دهد، کاری خاص را به تعداد مشخص تکرار کند، در موقعیتهای خاص چه رفتاری انجام دهد و غیره. درواقع، برنامهنویسی توانایی حل مسئله است. برنامهنویس با استفاده از قدرت تفکر و خلاقیت خود دستورالعملهایی برای کامپیوتر تعریف میکند. برای نمونه، با برنامهنویسی میتوانیم انواع بازیهای کامپیوتری و تلفن همراه را تولید و هر نوع وبسایتی را طراحی کنیم. همچنین تمام نرمافزارهایی که روی کامپیوتر، تلفن همراه، تبلت، ساعت هوشمند، تلویزیون، و غیره میبینید و روزانه با آنها کار میکنید، همگی با برنامهنویسی درست شدهاند. بعضی از نرمافزارهای معروف که با آنها آشنایی داریم مانند سیستم عامل ویندوز، سیستم عامل اندروید و آی.او.اس، مرورگرهای مختلف مثل کروم و فایرفاکس، مجموعه نرمافزارهای آفیس، ماشین حساب ویندوز، فتوشاپ، شبکههای اجتماعی، و هرچیزی که بهصورت دیجیتال است، برنامهنویسی شده است.
چرا برنامه نویسی کنیم؟
در صورتی که بخواهیم نرمافزارهای مختلف، وبسایتهای متنوع اینترنتی، بازیهای ویدیویی، یا هر آنچه در دنیای دیجیتال مشاهده میکنیم تولید کنیم، نیاز به برنامهنویسی داریم. در هر شغل و جایگاهی میتوانیم ابزارهای خاص خودمان را بسازیم تا کارهای تکراری را انجام ندهیم، سرعت و دقت در کارها را افزایش دهیم، و خطای انسانی کمتری مرتکب شویم.
از مزایای دیگر برنامهنویسی میتوانیم به موارد زیر اشاره کنیم:
1. تقویت قدرت استدلال و منطق؛
2. افزایش توانایی در حل مسائل؛
3. افزایش توانایی تجزیه و تحلیل مسائل، توجه بیشتر به جزئیات، و توانایی تبدیل یک مسئلۀ بزرگ و پیچیده به مسئله های کوچکتر و سادهتر؛
4. لذت ساختن محصولی کاربردی؛
5. افزایش خلاقیت در نوع نگاه به مسائل گوناگون و ارائۀ راهحلهای متفاوت.
از جنبههای مثبت دیگر برنامهنویسی نیاز تمام صنایع به نرمافزارها، امکان فعالیت در صنایع گوناگون، و عدم اشباع برنامهنویس و نیاز همیشگی به نرمافزارهای گوناگون و کاربردی است.
آیا با وجود هوش مصنوعی ، برنامه نویسی فایده دارد؟
نتایج برنامهنویسی بیشتر از نوشتن کد است و باعث فراگیری مهارتهای گوناگون میشود که در زمینههای غیر از برنامهنویسی هم کاربرد دارد؛ مانند مهارت حل مسئله و دقت به جزئیات. برنامهنویسی به خلاقیت، فهم دقیق مسئله، یافتن و پیادهسازی راهحل اختصاصی نیاز دارد که این موارد از توانایی هوش مصنوعی خارج است، زیرا هوش مصنوعی براساس کدهای برنامهنویسی، که قبلاً برنامهنویسان دیگر تولید کردهاند، آموزش دیده است. همچنین، کدهایی که تولید میکند فقط از سوی یک برنامهنویس قابل فهم و درک و احیاناً تغییر است. عدم اطمینان از صحت کدهای تولیدشده بهدلیل ماهیت هوش مصنوعی خیلی مهم است و در اینجا فقط برنامهنویس میتواند این اطمینان را بهدست آورد که کد تولیدشده از سوی هوش مصنوعی درست است یا نیاز به بهبود دارد و آن را اصلاح کند.
هوش مصنوعی میتواند کدنویسی کند، اما مفاهیم و اصول و همچنین دلیل استفاده از آن را نمیداند. برنامهنویس باید راهحلی مفید، کاربردی، و مناسب نیاز کاربر ارائه دهد. هوش مصنوعی نمیتواند اینچنین آنالیز و تفسیر انجام دهد. برای استفاده از هوش مصنوعی باید توضیحات کامل و دقیقی ارائه دهیم تا جواب مناسبی دریافت کنیم و در صورتی که عدم دقت یا عدم شفافیت در توضیحاتمان باشد، پاسخهای نامرتبط دریافت میکنیم. برنامهنویسی درک سیستمهای پیچیده است که در توانایی هوش مصنوعی نیست.
از جمله تواناییهای هوش مصنوعی در برنامهنویسی میتوان به موارد زیر اشاره کرد:
1. هوش مصنوعی برای برنامهنویس نقش دستیار را بازی میکند؛
2. از آن میتوانیم برای انجام برخی کارهای تکراری استفاده کنیم؛
3. سرنخی برای شروع آشنایی با مفهومی جدید باشد؛
4. در بعضی موارد قطعه کدهایی تولید کند و یا کدهای ما را بهینهسازی کند؛
5. برخی از خطاهای احتمالی در کد را تشخیص دهد؛
6. بعضی از کدها را به زبان انسان توضیح دهد؛
7. این فرصت را به برنامهنویس میدهد تا بر جنبههای پیچیدهتر و مهمتر برنامهنویسی تمرکز کند؛
همیشه احتمال خطا در پاسخهای هوش مصنوعی وجود دارد؛ پس با دقت و بازبینی مجدد تمام کدهایی که هوش مصنوعی تولید میکند، احتمال بروز خطا در برنامهها کمتر میشود.
در مجموع، هوش مصنوعی میتواند بهرهوری برنامهنویس را افزایش دهد، اما چنانچه به سطح دانش و تجربۀ کم در برنامهنویسی قانع باشیم، بهراحتی با هوش مصنوعی جایگزین میشویم.
نکتۀ آخر اینکه، هوش مصنوعی، گرچه از هوش انسان الهام گرفته شده، در واقع مجموعهای از الگوریتمها و مدلهای ریاضی است که به آن توانایی انجام وظایف خاصی را میدهد. هوش مصنوعی دربارهی کاری که اجرا میکند، درک و آگاهی صریح مانند انسان ندارد، اما بر اساس دادهها و الگوهایی که آموزش دیده، عمل میکند.
این کتاب برای چه افرادی مناسب است؟
اگر شما هم جزو افرادی هستید که تاکنون تجربۀ برنامهنویسی نداشتهاید، یا در زبانهای برنامهنویسی دیگر تجربه دارید و میخواهید به زبان C# برنامهنویسی کنید، یا در گذشته با زبان C# برنامهنویسی کردهاید و فکر میکنید که از تغییرات و پیشرفتهایی که در نسخههای جدید رخ داده است بیاطلاع ماندهاید، این کتاب همراهی جذاب، دقیق، و کاربردی برای شما خواهد بود که با هم قدم به قدم مسیر کشف قدرت و انعطافپذیری C# را میپیماییم.
شاید شروع برنامهنویسی پیچیده و چالشبرانگیز بهنظر برسد، اما این کتاب با زبانی ساده مفاهیم پایهای برنامهنویسی با C# را توضیح میدهد.
ممکن است بهنظر برسد که این کتاب فقط برای افراد تازهکار به زبان C# مناسب است، اما اگر شما تجربهای از برنامهنویسی با زبانهای دیگر دارید، با استفاده از مفاهیمی که در این کتاب میآموزید و با تکیه بر تجربههای قبلی خود بهراحتی میتوانید به C# مهاجرت کنید. این کتاب به شما کمک میکند بهسرعت با ویژگیهای C# آشنا شوید و از اطلاعاتی که قبلاً در اختیار داشتهاید، برای خلق برنامههای شگفتانگیز با این زبان استفاده کنید.
ما در این کتاب C# را آموزش میدهیم و هدف اصلی آن ایجاد پایهای قوی در اصول برنامهنویسی با استفاده از C# است. در ادامۀ مسیر با مفاهیم ابتدایی تا پیشرفتهترین مباحث این زبان آشنا میشوید.
مهمترین نکته اینکه، تمرکز کتاب بر آموزش مهارتهای توسعه و برنامهنویسی با C# است و به طور خاص به توسعۀ وبسایت، اپلیکیشن تلفن همراه، یا بازی نمیپردازیم. در صورتی که بهدنبال کتابی برای آموزش این مفاهیم هستید، این کتاب مناسب شما نیست.
چرا با سی شارپ (#C) برنامه نویسی کنیم؟
انتخاب زبان برنامهنویسی مناسب بسیار بااهمیت است. این انتخاب میتواند تأثیر چشمگیری در تجربۀ کاری و کیفیت نرمافزارهای توسعهیافته از سوی توسعهدهندگان داشته باشد. در این زمینه، زبان سیشارپ (C#) یکی از زبانهای برنامهنویسی مهم و پرکاربرد است که مجموعهای از قابلیتها، ویژگیها، و مزایای بینظیر خود را دارد و به ما انگیزه میدهد تا این زبان را برای توسعۀ نرمافزارهای متنوع انتخاب کنیم.
برخی انواع نرمافزارهایی که با C# میتوان تولید کرد، در لیست زیر میبینید:
- میتوانید انواع سایتهای اینترنتی مانند سایتهای فروشگاهی، خبری، تفریحی، و هر نوع وبسایتی که در اینترنت میبینید، بسازید؛
- میتوانید انواع برنامههای تحت ویندوز که روی سیستم عامل خودتان میبینید، بسازید؛
- میتوانید برنامههایی برای دستگاههای جدید هوشمندی مانند تلفنهای هوشمند و تبلتها توسعه دهید؛
- می توانید برنامه هایی برای دستگاههای اینترنت اشیا (IoT) توسعه دهید؛
- میتوانید بازیهای ویدیویی جذاب و باکیفیت بسازید و از قدرت و انعطافپذیری C# در توسعۀ بازیها بهرهبرداری کنید؛
- می توانید برنامههای مبتنیبر هوش مصنوعی را توسعه دهید و مدلهای یادگیری ماشین را آموزش دهید؛
همانطور که دیدید، با استفاده از C# میتوانیم طیف گستردهای از نرمافزارها را تولید کنیم، البته در برخی موارد، مانند اپلیکیشنهای موبایل، استفاده از زبانهای برنامهنویسی مخصوص انعطاف بیشتری در نرمافزار ایجاد میکند، اما دست برنامهنویس C# باز است و میتوان با آن اپلیکیشنهای مختلفی ایجاد کرد و لزومی به یادگیری زبانهای برنامهنویسی دیگر، برای موبایل نیست.
برخی از ویژگیهایی که باعث میشود از رشد و پیشرفت زبان برنامهنویسی C# و پشتیبانی دقیق و حرفهای از آن اطمینان پیدا کنیم، در لیست زیر مشاهده میکنید:
- مایکروسافت مدام C# و موارد مرتبط را بهروزرسانی میکند تا امکانات و امنیت آنها را بهبود دهد. این بهروزرسانیها معمولاً شامل افزودن ویژگیهای جدید و بهبود کارایی موجود است؛
- اصلیترین محیط توسعۀ برنامههایی با زبان C# ، که Visual Studio نام دارد، امکاناتی فوقالعاده در اختیار برنامهنویس قرار میدهد تا تمام مواردی که در قبل، حین، و بعد از توسعۀ نرمافزار به وجود میآید، پوشش دهد؛
- C# زبان برنامهنویسی قدرتمند و منعطف است که مدام کاملتر شده است. افزوده شدن ویژگیهای جدید و پیشرفتهای زبانی آن را در خطر تبدیل شدن به زبانی قدیمی و منسوخ قرار نمیدهد؛
- جامعۀ C# بسیار بزرگ و فعال است و منابع آموزشی متنوع و باکیفیت برای یادگیری این زبان وجود دارد. از دورههای آموزشی تا انجمنها و وبسایتهای معتبر، همیشه امکان یادگیری و بهروزرسانی مهارتها وجود دارد؛
- C# به عنوان زبانی از پلتفرم داتنت (در ادامه با این مفهوم بیشتر آشنا میشویم) توسعه داده شده است و این به معنای امکان استفاده از ابزارهای قدرتمند داتنت است. سازگاری کامل با پلتفرم داتنت باعث میشود تا بهراحتی با دیگر زبانها و تکنولوژیهای مرتبط با داتنت ارتباط برقرار کنید و بهدلیل طراحی اصولی و مهندسیشده داتنت این ارتباط به بهتر شدن و اصولی شدن کدها میانجامد.
- در صنعت این زبان بهمنزلۀ زبانی قدرتمند و قابل اعتماد شناخته شده است و تقاضای زیادی برای افراد آشنا به این زبان وجود دارد.
- در زبان برنامهنویسی C# امکانات زیادی در نظر گرفته شده است. ساختار قوی آن باعث میشود تا کدهای نوشتهشدۀ شما مرتب، قابل فهم، خوانا، و واضح باشند و کدهایی با پیچیدگی کمتر تولید کنید. این ویژگی برای تیمهای توسعۀ بزرگ و پروژههای پیچیده اهمیت بالایی دارد و از اشکالات عادی حین برنامهنویسی کاسته میشود. برخی از آنها برای اجرای کد هستند که لازمۀ هر زبان برنامهنویسی است؛ برخی دیگر برای خوانایی بیشتر و راحتتر به C# اضافه شدهاند؛ برخی بهعلت کم کردن خطا در برنامهنویسی به وجود آمدهاند؛ برخی بهعلت کوتاهتر کردن کدها؛ و بعضی موارد بهعلت افزایش کارایی. مجموع این موارد راندمان و کارایی برنامه و برنامهنویس را افزایش میدهد.
چگونه از این کتاب استفاده کنیم؟
در این کتاب بعضی از مفاهیم را در چند فصل جداگانه توضیح دادهایم و برای بعضی از مفاهیم یک فصل کافی بوده است. یکی از دلایلی که برخی مفاهیم در چند فصل توضیح داده شدهاند و درواقع در هر فصل در مقایسه با فصل قبل تکمیلتر شدهاند، این است که بین مفاهیم مختلف وابستگی وجود دارد و برای آشنایی با یک مفهوم گاهی لازم است که مفهوم دیگری توضیح داده شود و این وابستگی از طریق چندفصلی کردن یک مفهوم مدیریت شده است. ضمن اینکه، برخی از مفاهیم بزرگی یا پیچیدگی خاصی دارند و بهدلیل اینکه این کتاب خودآموز است، قصد داریم قدم به قدم و از مباحث آسانتر شروع کنیم و به موارد پیچیدهتر برسیم.
برای استفادۀ راحتتر از این کتاب، در برخی از قسمتها از تصویر استفاده شده است تا بهتر با کتاب ارتباط برقرار کنید. بخشهای گوناگون تصویر با اعداد مشخص شدهاند تا ارتباط متن و تصویر واضحتر شود.
بعضی از نکات بسیار مهم هستند و در صورت رعایت نکردن آنها کد اجرا نمیشود و به شکل زیر نمایش داده میشوند:
نکات مهم به این صورت نمایش داده میشوند.
در برنامهنویسی مواردی وجود دارند که قانون نیستند، اما اغلب با رعایت کردن آنها به نتایج بهتری دست مییابیم. بیشتر اوقات برای کد تمیز، خوانا، با قابلیت نگهداری بالا و بهبود و تغییر راحتتر در آینده، استفادۀ مجدد از کد و بررسی سریعتر توصیه شده است که معمولاً براساس تجربه بهدست آمدهاند. بهتر است آنها را در نظر بگیرید. این موارد شامل نکات هم میشوند که آنها را بهصورت زیر نمایش میدهیم:
پیشنهادها و نکات در این کادر نوشته میشوند.
البته اگر این موارد را خوب درک نکردید، نگران نباشید. این موارد تجربههای برنامهنویسی است که با گذشت زمان و انجام پروژههای گوناگون با آنها آشنا میشوید.
در برخی از قسمتهای کتاب برای تسلط بیشتر به مفاهیم تعدادی تمرین آوردهایم. این تمرینها بهصورت زیر نمایش داده میشوند:
تمرین
1. تمرینها به این شکل نمایش داده میشوند.
2. تمرینها به این شکل نمایش داده میشوند.
3. تمرینها به این شکل نمایش داده میشوند.
البته دو فصل مجزا برای تمرینهای بیشتر در نظر گرفته شده است تا بیشتر با مفاهیم و کاربردهای آنها آشنا شوید.
در صورتی که نتوانستید تمرین(ها) را حل کنید، بههیچوجه نگران نباشید و با مرور مجدد تمرینها را راحتتر حل کنید. در ضمن، در سایت کتاب میتوانید پاسخ تمام تمرینها را پیدا کنید.
تمامی کدهایی که در این کتاب وجود دارند در کادر مخصوص نمایش داده میشود. این کدها قابلیت اجرا دارند که بهصورت زیر نمایش داده میشوند:
کدهای واقعی در این کادر نمایش داده میشوند. بعضی از کدها به رنگهای مختلف است که این رنگها به محیطی که در آن برنامهنویسی میکنیم، بستگی دارند.
بهدلیل محدودیت در نسخۀ چاپی کتاب، کدها بهصورت سیاه و سفید هستند، اما در نسخۀ دیجیتال کتاب، کدها رنگی نمایش داده میشوند تا درک بهتر و راحتتری از کدها داشته باشیم.
در برخی موارد دو قطعه کد با هم برابرند. برای نمایش این موارد قطعۀ کدها با یک خط از هم جدا میشوند که در واقع دو کد مجزا هستند و بهصورت زیر نمایش داده میشوند:
قطعۀ کد اول
---------------------
قطعۀ کد دوم
نتیجۀ یک عبارت یا عبارتی که نمایش داده میشود در جلوی آن و بعد از علامت // نوشته میشود که در ادامۀ مسیر با این مفهوم بیشتر آشنا میشویم.
Console.WriteLine(1 + 2); // 3
برخی کدها قابلیت اجرا ندارند، به این معنی که در صورتی که از کد مورد نظر استفاده کنید اجرا نمیشود و خطا میدهد. البته بعضی از کدها هم هستند که اجرا میشوند، اما نتیجۀ درستی ندارند. تمام این موارد بهصورت زیر نمایش داده میشوند:
این کد دارای خطاست و اجرا نمیشود یا نتیجۀ درستی ندارد
تمام مواردی که قابلیت اجرا ندارند، اما به فهم راحتتر کد کمک میکنند، در کادر مخصوص نمایش داده میشوند:
تعاریف، الگوریتمها و شبهکدها در این کادر نمایش داده میشوند. (به بیان دیگر کد واقعی نیستند و فقط برای فهم راحتتر میباشند)
بهمنظور تأکید روی یک عبارت و افزایش توجه به آن یا تعریف یک مفهوم یا عبارت جدید، عبارت مورد نظر بهصورت زیر نمایش داده میشود:
در این جمله این عبارت مهم است و باید به آن دقت بیشتری شود. بیشتر کلمات جدید بهصورت کلمهای که در فارسی بیشتر استفاده میشود (معادل انگلیسی) مشخص شده است برای نمونه، کنسول (Console) که در فارسی به همان صورت انگلیسی استفاده میشود. متغیر (Variable) که در این حالت در فارسی علاوهبر تلفظ انگلیسی کلمۀ متغیر هم زیاد استفاده میشود.
ممکن است برخی از کلماتی که به عنوان معادل انگلیسی استفاده شده است، دقیقا ترجمه همان کلمه نباشد و برای فهم و آشنایی ساده تر و سریع تر انتخاب شده است برخی از کلمات هم به همان شکلی که در انگلیسی استفاده می شوند به کاررفته اند.
در برخی موارد برای دستهبندی سریعتر مطالب از جدول استفاده میکنیم تا تمام اطلاعات ساختاریافته و یکجا نمایش داده شوند:
عنوان | عنوان | عنوان |
مورد 1 | توضیح | توضیح |
مورد 2 | توضیح | توضیح |
در برخی موارد از تصویر استفاده شده است تا انتقال مفاهیم سادهتر باشد.
در هر قسمت مثالهایی آورده شده است تا نشاندهندۀ تنوع کارکرد C# باشد. این مثالها در زمینههای مختلفی مثل سایتهای اینترنتی، بازیهای کامپیوتری، و محاسبات ریاضی هستند.
سعی شده است تمام نکات در مثالهای این کتاب اجرا شوند و مثالهای کاربردی و واقعی را بررسی کنیم. تمام حروف و علائم موجود در قطعه کدهایی که نوشته میشود بادقت بررسی کنید، زیرا علائمی مانند ;{}=$@_ اهمیت زیادی دارند. لطفاً مثالها را بادقت مطالعه کنید.
راه اندازی محیط برنامه نویسی اولیه
برای اجرای کدهای کتاب به محیط برنامهنویسی مناسب نیاز داریم. بهدلیل تمرکز ما روی آموزش زبان برنامهنویسی C#، ابتدای مسیر از وبسایت زیر استفاده میکنیم:
هنگامی که سایت را باز میکنید، تصویر بالا نمایش داده میشود. دقت کنید که اطلاعات بخش 1 دقیقاً مانند این عکس باشد. در بخش 2 کدهای خودمان را مینویسیم. این کدها میبایست در قسمت 3 بین دو علامت {} و به جای عبارت Console.WriteLine("Hello World"); نوشته شود، مگر اینکه بهصراحت گفته شود که جای دیگری باید نوشته شود. سپس دکمۀ 4(Run) را کلیک میکنیم و نتیجه در بخش 5 نمایش داده میشود. به این بخش اصطلاحاً کنسول (Console) گفته میشود. هنگام کدنویسی در این محیط با استفاده از دکمۀ 6 (Tidy Up) کدهای نوشتهشده بهصورت خوانا نمایش داده میشود. توضیح دربارۀ بقیۀ اطلاعات صفحه را در حال حاضر میتوان نادیده گرفت.
در هر قسمتی که کد مینویسیم و باید نتیجه آن را ببینیم برای اجرای برنامه دکمۀ Run را کلیک کنید تا نتیجه در کنسول نشان داده شود. و برای ساخت یک فایل جدید بر روی دکمه New کلیک کنید.
در فصول بعد با محیط اصلی توسعۀ نرمافزار با C# آشنا میشویم و با آن کار خواهیم کرد. در صورتی که به هر دلیلی نمیخواهید از این روش استفاده کنید، به آن بخش مراجعه کنید تا نحوۀ نصب ابزار اصلی را ببینید.
چگونه در تماس باشیم؟
برای این کتاب وبسایتی طراحی و تولید شده است که از طریق آدرس https://csharpbook.ir میتوانید به آن دسترسی داشته باشید.
در تولید این کتاب تمام تلاشمان را برای حصول اطمینان از صحت و دقت محتوای اطلاعات به کار بردیم، اما امکان اشتباه یا عدم صحت اطلاعات در هر موضوعی وجود دارد، بنابراین خوشحال میشویم در صورت یافتن هرگونه خطایی از طریق سایت کتاب با ما در ارتباط باشید تا در اصلاح آن اقدام کنیم.