کتاب The C# Player’s Guide نسخه پنجم از سری جدید این کتاب است که در سال 2022 به چاپ رسیده است. این کتاب آموزش جامع زبان برنامهنویسی سیشارپ است که در 5 قسمت به آموزش مقدماتی تا بیان نکات پیشرفتهی آن خواهد پرداخت.
در ادامه مقدمهای از کتاب The C# Player’s Guide را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب The C# Player’s Guide:
بازی بزرگ برنامهنویسی
من یک باور شخصی قوی دارم که از دههها برنامهنویسی رشد کرده است: به معنای واقعی، برنامهنویسی یک بازی است. حداقل، میتواند مانند انجام یک بازی با طرز فکر درست باشد. برای من، صرف چند ساعت برنامهنویسی – ایجاد کدهایی که این دستگاههای محاسباتی شگفتانگیز را به میل من منعطف میکند و دنیایی از نرمافزارهای زنده را ایجاد میکند – سرگرمکننده و مفید است. این بازی با جستجو در Nether در Minecraft، ربودن آخرین کارت استان در Dominion، یا از بین بردن یک درو در Mass Effect رقابت میکند.
منظورم این نیست که برنامهنویسی یک سرگرمی بیفکر است. به ندرت اینطور است. بیشتر وقت شما صرف گیج کردن گام بعدی صحیح میشود یا اینکه چرا همهچیز آنطور که انتظار داشتید کار نمیکند. اما بخشی از چیزی که بازیها را جذاب میکند این است که آنها چالشبرانگیز هستند. تو باید برای آن کار کنی. شما خلاقیت را به کار میگیرید و احتمالات را کشف میکنید. شما تمرین میکنید و تواناییهایی به دست میآورید که به شما کمک میکند برنده شوید.
اگر با همین طرز فکر به برنامهنویسی نزدیک شوید، وضعیت خوبی خواهید داشت، زیرا برنامهنویسی به همین مجموعه مهارتها نیاز دارد. برخی از روزها، احساس میکنید که دارید Flappy Bird، Super Meat Boy یا Dark Souls را بازی میکنید – همه بازیهای بسیار دشوار – اما ایجاد نرمافزار از همه راههای درست چالشبرانگیز است.
“بازی” برنامهنویسی یک بازی انبوه چند نفره و جهان باز سندباکس با عناصر نقش آفرینی است. منظور این است:
• انبوه چند نفره: در حالی که ممکن است به طور مستقل با مشکلات خاصی مقابله کنید، هرگز تنها نیستید. اکثر برنامه نویسان به سرعت دانش و تجربیات خود را با دیگران به اشتراک میگذارند. این کتاب و اینترنت تضمین میکند که در سفر خود تنها نیستید.
• یک بازی sandbox جهان باز: محدودیتها یا محدودیتهای کمی دارید. میتوانید بسازید
چه، چه زمانی و چگونه میخواهید
• عناصر ایفای نقش: با تمرین، یادگیری و تجربه، مهارتها و ابزارهایی را که با آنها کار میکنید، بهتر میشوید، از یک سطح پایین مبتدی به یک استاد ارشد تبدیل میشوید، و مهارتها و تواناییهای خود را در حین حرکت تقویت میکنید.
اگر قرار است برنامهنویسی سرگرمکننده یا مفید باشد، یادگیری برنامهنویسی نیز باید چنین باشد. کتابی نادر است که بتواند یادگیری مباحث فنی پیچیده را بیش از خسته کننده کند. این کتاب سعی در انجام این کار دارد. اگر یک قاشق شکر میتواند به کاهش دارو کمک کند، پس باید ترکیبی از یازده گیاه و ادویه وجود داشته باشد که حتی پیچیده ترین موضوع فنی را نیز دارای عنصر سرگرمکننده، چالش و پاداش باشد.
در طول سالها، راهنماهای استراتژی، کتابچه راهنمای بازیکنان، و راهنمای بازیکن برای بازیهای محبوب ساخته شدهاند. این راهنماها به بازیکنان کمک میکند تا دنیای بازی و چالشهایی که با آنها مواجه خواهند شد را بیاموزند و درک کنند. آنها نکات و ترفندهای صرفهجویی در زمان را ارائه میدهند و به جلوگیری از گیر افتادن بازیکنان در هر جایی برای مدت طولانی کمک میکنند. این کتاب سعی دارد راهنمای آن بازیکن برای بازی بزرگ برنامهنویسی در سیشارپ باشد.
کتاب The C# Player’s Guide از نمونههای معمولی کسبوکار محور که در کتابهای دیگر یافت میشود، به نفع نمونههایی با کمی چاشنی بیشتر چشم پوشی میکند. بسیاری از آنها مربوط به بازی هستند، و بسیاری از چالشهای عملی شامل ساخت بازیهای کوچک یا تکههایی از بازیها است.
این سفر را سرگرم کننده تر و هیجان انگیزتر میکند. در حالی که C# یک زبان عالی برای توسعه بازی است، این کتاب به طور خاص یک کتاب برنامهنویسی بازی C# نیست. بدون شک ایدههایی برای امتحان کردن راههایی که انتخاب میکنید به ذهنتان خطور میکند، اما این کتاب بر مهارت داشتن در زبان سیشارپ تمرکز دارد تا بتوانید از آن برای ساخت هر نوع برنامه، نه فقط بازی، استفاده کنید. (اکثر برنامهنویسان حرفهای برنامههای کاربردی تجاری، برنامههای وب و برنامههای گوشیهای هوشمند را میسازند.)
کتاب The C# Player’s Guide بر روی برنامههای کنسول تمرکز دارد. برنامههای کاربردی کنسول، آن دسته از برنامههای مبتنی بر متن هستند که در آنها رایانه ورودی متنی را از کاربر دریافت میکند و پاسخهای متنی را در متن سفید کلیشه ای در یک پنجره پس زمینه سیاه نمایش میدهد. ما چیزهایی را یاد خواهیم گرفت تا برنامههای کنسول را رنگارنگ و هیجان انگیزتر کنیم، اما برنامههای کاربردی کنسول، مسلماً هیجان انگیزترین نوع برنامه نیستند.
چرا از چیزهای هیجان انگیزتر استفاده نمیکنید؟ دلیل اصلی این است که صرف نظر از اینکه میخواهید بازیها، برنامههای گوشی هوشمند، برنامههای وب یا برنامههای دسکتاپ بسازید، نقاط شروع در آن دنیا از قبل انتظار دارند که اطلاعات زیادی در مورد C# داشته باشید. به عنوان مثال، من فقط به کد شروع برای یک چارچوب خاص توسعه بازی C# نگاه کردم. از شما میخواهد از قبل بدانید که چگونه از موضوعات پیشرفته تحت پوشش در سطح 25 (وراثت)، سطح 26 (چند شکلی) و سطح 30 (عمومی) فقط برای شروع استفاده کنید!
در حالی که برخی از افراد با موفقیت شیرجه میزنند و شناور میمانند، معمولاً عاقلانهتر است که مهارتهای شنای خود را قبل از شنا کردن در اقیانوس خروشان در یک استخر تقویت کنید. شروع از اصول اولیه به شما پایه و اساس بهتری میدهد. پس از ساخت این پایه، یادگیری نحوه ساخت انواع برنامههای کاربردی بسیار روان تر خواهد بود. تعداد کمی از برنامههای کاربردی کنسول راضی میشوند، اما صرف چند هفته برای پوشش دادن اصول اولیه قبل از حرکت، روند یادگیری را بسیار آسانتر میکند.
ویژگیهای کتاب The C# Player’s Guide
ایجاد یک کتاب سرگرمکننده و مفید (یا حداقل نه یک کتاب کسلکننده و بیفایده) به معنای افزودن برخی ویژگیهاست که اکثر کتابهای برنامهنویسی ندارند. بیایید به چند مورد از این موارد نگاه کنیم تا بدانید چه انتظاری دارید.
اسپیدرانها
در ابتدای هر سطح (فصل) یک بخش Speedrun وجود دارد که نکات کلیدی شرح داده شده در سطح را مشخص میکند. این جایگزینی برای گذراندن کل سطح با جزئیات نیست، اما در چند موقعیت مفید است:
1. شما در حال بررسی مطالب هستید و میخواهید نکات کلیدی را یادآوری کنید.
2. شما در حال بررسی هستید تا ببینید آیا سطحی اطلاعاتی دارد که به زودی به آنها نیاز خواهید داشت یا خیر.
3. شما سعی میکنید به خاطر بسپارید که کدام سطح یک موضوع خاص را پوشش میدهد.
چالشها و غول آخر
در سراسر کتاب چالشهای عملی وجود دارد که به شما مشکل خاصی میدهد تا روی آن کار کنید. اینها در اوایل کتاب کوچک شروع میشوند، اما برخی از موارد بعدی بسیار بزرگ هستند. هر یک از این چالشها با نماد زیر مشخص شدهاند:
هنگامی که یک چالش به ویژه سخت است، به یک Boss Battle (غول مرحله آخر) ارتقا داده میشود، که با نماد زیر نشان داده شده است: Boss Battleها گاهی اوقات در چندین بخش تقسیم میشوند تا به شما اجازه دهند که آنها را یک مرحله در یک زمان انجام دهید.
من به شدت توصیه میکنم که این چالشها را انجام دهید. با خواندن راهنمای بازیکن، بازی را شکست نمیدهید. شما با خواندن کتاب برنامهنویسی را یاد نمیگیرید. تنها زمانی واقعاً یاد خواهید گرفت که بنشینید و برنامه ریزی کنید. همچنین توصیه میکنم به جای خواندن ده فصل و بازگشت به آنها، این چالشها را در حین مواجه شدن با آنها انجام دهید. مدل کمی بخوانید، کمی برنامهریزی کنید در یادگیری سریع به شما کمک میکند.
من همچنین احساس میکنم که این چالشها نباید تنها چیزهایی باشند که در حین یادگیری برنامهنویسی میکنید، به خصوص اگر در برنامهنویسی نسبتاً تازه کار هستید. نیمی از زمان برنامهنویسی شما باید از این چالشها و بقیه از تخیل شما باشد. کار کردن روی چیزهایی که اختراع خودتان است برای شما هیجان انگیزتر خواهد بود. اما همچنین، وقتی در آن طرز فکر خلاق هستید، از نظر ذهنی دنیای برنامهنویسی را بهتر کشف میکنید. به جای اینکه به شما بگویند: «برو از این ابزار به این روش خاص استفاده کن، به این فکر میکنی که چگونه میتوانی ابزارهایی را که آموختهایم در موقعیتهای جدید به کار ببری».
در حین انجام این کار، اندازه چالشهایی را که برای خود اختراع میکنید در نظر داشته باشید. اگر در حال یادگیری نقاشی هستید، سقفهای کلیسای کوچک هزار ساله را برای نقاشی پیدا نمیکنید (یا حداقل انتظار ندارید که مانند کلیسای سیستین باشد). چیزهایی را هدف قرار دهید که محدودیتهای شما را کمی افزایش میدهند، اما ترسناک نیستند. به خاطر داشته باشید که همه چیز کمی سخت تر از آنچه در ابتدا انتظار داشتید است. و از شیرجه رفتن و ایجاد آشفتگی نترسید. در ادامه قیاس هنری، اگر چند نقاشی زباله در کتاب طراحی خود نداشته باشید، یاد نمیگیرید. هر خط کدی که مینویسید شاهکار نخواهد بود. شما اجازه دارید کدهای عجیب، زشت و ناجور بنویسید.
اگر این چالشهای خاص سبک شما نیستند، از آنها بگذرید. اما آنها را با چیز دیگری جایگزین کنید. اگر ننشینید و کدی ننویسید چیز کمی یاد خواهید گرفت. وقتی چالش حاوی یک نکته باشد، اینها پیشنهادات یا احتمالات هستند، نه کارهایی که باید انجام دهید. اگر مسیر متفاوتی پیدا کردید که کار میکند، آن را دنبال کنید.
برخی از چالشها نیز شامل مواردی با عنوان پاسخ به این سؤال هستند. توصیه میکنم پاسخ خود را بنویسید. (نظراتی که در سطح 4 پوشش داده شده است، میتواند رویکرد خوبی باشد.) مغز ما دوست دارد به ما بگوید چیزی را میفهمد بدون اینکه ثابت کند آن را میفهمد. ما از نظر ذهنی از اثبات میگذریم، اغلب به ضرر خودمان. نوشتن آن تضمین میکند که ما آن را میدانیم. پاسخ به این سؤالات معمولاً فقط چند ثانیه طول میکشد.
من پاسخهایم به این چالشها را در وبسایت کتاب منتشر کردهام که بعداً در این مقدمه توضیح داده شده است. اگر راهنمایی میخواهید یا پاسخها را با هم مقایسه کنید، میتوانید کارهای من را مرور کنید. فقط به این دلیل که راه حلهای ما متفاوت است، راه حل شما را بد یا اشتباه نمیکند. من اشتباهات خود را زیاد مرتکب میشوم، ترجیحات خود را برای ابزارهای مختلف در زبان دارم، و همچنین مدت زیادی است که در C# برنامهنویسی میکنم. تا زمانی که راه حل کارآمدی داشته باشید، خوب کار میکنید.
یک مرور کلی
بیایید نگاهی به آنچه پیش رو داریم بیاندازیم. این کتاب دارای پنج بخش اصلی است:
• قسمت 1- مبانی. این بخش اول بسیاری از عناصر اساسی برنامهنویسی سیشارپ را پوشش میدهد. این برنامه بر روی برنامهنویسی رویهای، از جمله ذخیره دادهها، انتخاب و انتخاب خطوط کد برای اجرا و ایجاد تکههای کد قابل استفاده مجدد تمرکز دارد.
• قسمت 2-برنامهنویسی شیگرا. سی شارپ از رویکردی به نام برنامهنویسی شیگرا استفاده میکند تا به شما کمک کند یک برنامه بزرگ را به قطعات کوچکتر تقسیم کنید که هر کدام مسئول بخش کوچکی از کل برنامه هستند. این ابزارها برای شروع ساختن برنامههای بزرگتر ضروری هستند.
• قسمت 3-موضوعات پیشرفته. در حالی که بخشهای 1 و 2 به مهمترین عناصر زبان C# میپردازند، ویژگیهای زبان دیگری نیز وجود دارند که ارزش دانستن دارند. این بخش عمدتاً از موضوعات مستقل تشکیل شده است. میتوانید بپرید و یاد بگیرید که آنهایی را که فکر میکنید برایتان مهمتر هستند (یا برای مدتی به طور کامل از همه آنها صرفنظر کنید). از برخی جهات، میتوانید تمام قسمت 3 را یک Side Quest بزرگ در نظر بگیرید، اگرچه اگر همه آن را نادیده بگیرید، برخی از ویژگیهای جالب C# را از دست خواهید داد.
• قسمت 4 – پایان بازی. در حالی که چالشهای عملی در سراسر کتاب پراکنده است، بخش 4 شامل یک برنامه واحد، گسترده و نهایی است که دانش و مهارتهایی را که شما آموختهاید آزمایش میکند. همچنین کتاب را به پایان میرساند و شما را به سمت Lands Uncharted و جایی که ممکن است پس از اتمام این کتاب بروید، راهنمایی میکند.
• قسمت 5 – سطوح پاداش. انتهای کتاب شامل چند سطح جایزه است که شما را راهنمایی میکند که وقتی نمیدانید چه کار دیگری انجام دهید – مقابله با خطاهای کامپایلر و اشکالزدایی کدتان، چه کاری انجام دهید. واژه نامه و فهرست نیز در اینجا در انتهای کتاب آمده است. لطفاً احساس نکنید که باید جلد این کتاب را به روی جلد بخوانید تا ارزش آن را به دست آورید.
اگر در برنامهنویسی تازه کار هستید، توصیه میکنم در قسمتهای 1 و 2، سرعت آهسته و دقیقی داشته باشید، از Side Quests صرفنظر کنید و تنها زمانی پیشرفت کنید که احساس راحتی کنید قدم بعدی را بردارید. بعد از قسمت 2، ممکن است دوره خود را از طریق ویژگیهای پیشرفته قسمت 3 ادامه دهید، یا همچنین ممکن است انتخاب کنید که از آن استفاده کنید تا بدون پرداختن به عمق، طعم دیگری را که C# ارائه میدهد، به دست آورید.
حتی اگر قسمت 3 را نادیده بگیرید یا رد کنید، همچنان میتوانید نبرد نهایی را در قسمت 4 انجام دهید. اگر پیشرفت مداوم دارید و تمرین خوبی انجام میدهید، فرقی نمیکند پیشرفت شما کند باشد. اگر یک برنامهنویس باتجربه هستید، احتمالاً میتوانید در قسمت 1 مسابقه دهید، در قسمت 2 فقط کمی سرعت خود را کاهش دهید و یاد بگیرید که C# چگونه برنامهنویسی شی گرا انجام میدهد و سپس بیشتر وقت خود را در قسمت 3 صرف یادگیری چیزهایی که سی شارپ را منحصر به فرد میکند.
سفر را هر طور که صلاح میدانید تطبیق دهید. این کتاب و ماجراجویی شماست!
سرفصلهای کتاب The C# Player’s Guide:
- Acknowledgments
- Introduction
- Part 1: The Basics
- 1 The C Programming Language
- 2 Getting an IDE
- 3 Hello World: Your First Program
- 4 Comments
- 5 Variables
- 6 The C Type System
- 7 Math
- 8 Console 2.0
- 9 Decision Making
- 10 Switches
- 11 Looping
- 12 Arrays
- 13 Methods
- 14 Memory Management
- Part 2: Object-Oriented Programming
- 15 Object-Oriented Concepts
- 16 Enumerations
- 17 Tuples
- 18 Classes
- 19 Information Hiding
- 20 Properties
- 21 Static
- 22 Null References
- 23 Object-Oriented Design
- 24 The Catacombs of the Class
- 25 Inheritance
- 26 Polymorphism
- 27 Interfaces
- 28 Structs
- 29 Records
- 30 Generics
- 31 The Fountain of Objects
- 32 Some Useful Types
- Part 3: Advanced Topics
- 33 Managing Larger ProgramsPart 3: Advanced Topics
- 34 Methods Revisited
- 35 Error Handling and Exceptions
- 36 Delegates
- 37 Events
- 38 Lambda Expressions
- 39 Files
- 40 Pattern Matching
- 41 Operator Overloading
- 42 Query Expressions
- 43 Threads
- 44 Asynchronous Programming
- 45 Dynamic Objects
- 46 Unsafe Code
- 47 Other Language Features
- 48 Beyond a Single Project
- 49 Compiling in Depth
- 50 .NET
- 51 Publishing
- Part 4: The Endgame
- 52 The Final Battle
- 53 Into Lands Uncharted
- Part 5: Bonus Levels
- A Visual Studio Overview
- B Compiler Errors
- C Debugging Your Code
- Glossary
- Index
فایل کتاب The C# Player’s Guide را میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.