کتاب سیپلاسپلاس ۲۶ برای تنبلها: سریع، ساده و سرگرمکننده برای مبتدیان) یک منبع عالی و متفاوت برای یادگیری زبان C++ است که مخصوص کسانی طراحی شده که میخواهند با کمترین زحمت و بیشترین لذت، برنامهنویسی را شروع کنند. کتاب C++26 for Lazy Programmers با لحن طنزآمیز و شوخطبعانه نوشته شده تا خواننده را واقعاً به ادامهی مطالعه و انجام تمرینها ترغیب کند؛ به جای کلاسهای خشک و سنگین، اینجا همه چیز سریع، ساده و سرگرمکننده پیش میرود.
در ادامه مقدمهای از کتاب C++26 for Lazy Programmers را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب C++26 for Lazy Programmers:
حتماً کمبود کتابهای مقدماتی C++ وجود ندارد. چرا باید یکی دیگر نوشت؟ خوشحالم که پرسیدی. از زمانی که از پاسکال به C++ مهاجرت کردم (دورانهایی که دایناسورها روی زمین پرسه میزدند)، همیشه از منابع موجود ناامید بودهام. من چیزی میخواستم که عجیبوغریب و سرگرمکننده باشد برای خواندن، با پوشش کافی و شبیه به کتاب قدیمی «Oh! Pascal!» نوشتهٔ کوپر و کلنسی.
حتی یک متن کاملاً دقیق با پوشش گسترده، اگر هنگام خواندن به خواب بروی، هیچ فایدهای ندارد. خوب، هیچی جز گردندرد! اما دلیل دیگر، البته، ترویج تنبلی است. همهٔ ما دوست داریم پروژههایمان سریعتر تمام شوند، با کمتر ناله و زاری و دندانقروچه. گاهی میگویند باید بینیات را به سنگ آسیاب بچسبانی. شاید، اما من بینیام را خیلی دوست دارم که این کار را بکنم. ترجیح میدهم کارها را به روش آسان انجام دهم.
اما روش آسان، به تعویق انداختن و لَم دادن نیست: بلکه پیدا کردن چیزی است که عاشق انجامش هستم و آنقدر خوب انجامش دهم که نسبتاً بیزحمت به نظر برسد. تولید چیزی به اندازهٔ کافی مقاوم که وقتی خراب میشود، دقیقاً به من بگوید مشکل چیست، تا مجبور نباشم یک هفته التماس کنم تا خودش را توضیح دهد. نوشتن کدی که بارها و بارها بتوانم از آن استفاده کنم، و تطبیقش با کاربرد جدید در چند ساعت به جای چند روز.
در کتاب C++26 for Lazy Programmers چه انتظاری میتوانی داشته باشی:
- تجربهٔ خواندن دلپذیر.
- پوشش کافی مطالب.
- بازیها، یعنی استفاده از کتابخانهٔ گرافیکی SDL (Simple DirectMedia Layer) که باعث میشود برنامههای گرافیکی سریع راه بیفتند. عادلانه نیست که فقط پایتون و ویژوال بیسیک همهٔ شیرینیهای چشمی را داشته باشند.¹ کتابخانهٔ SDL تا فصل ۱۲ استفاده میشود. بعد از آن بیشتر از ورودی/خروجی استاندارد استفاده میکنیم تا تمرین با برنامههای کنسولی رایجتر داشته باشیم. ¹«شیرینی چشمی» (Eye candy): چیزهایی که روی صفحه زیبا به نظر میرسند. ببینید: The New Hacker’s Dictionary، در زمان نگارش در www.catb.org/jargon/ موجود است.
- معرفی آسان به جادوی گرافیکی SDL، با استفاده از کتابخانهٔ SSDL (در ادامه ببینید).
- مثالهای کافی، و همهشان دربارهٔ جدولهای بیمهٔ عمر یا سازماندهی دفترچهٔ آدرس نیستند (ببینید «تجربهٔ خواندن دلپذیر» بالا).
- بخشهای ضدباگ در سراسر متن برای اشاره به خطاهای رایج یا سختردیابی – و چگونگی پیشگیری از آنها.
- برای برنامهنویسان g++، دستورالعمل استفاده از g++، سیستم دیباگر ddd/gdb، و Makefileها؛ برای ویژوال استودیو، استفاده از دیباگر و فایلهای پروژه.
- انطباق با C++26، آخرین استاندارد، و برخی از شیرینیهای آن.
- تجربهٔ عملی با انواع دادهٔ پیشرفته مثل رشتهها، صفها، بردارها و لیستها – نه با خواندن دربارهشان، بلکه با ساختن خودشان.
- قدردانی از تنبلی.
- عنوان باحال.
شاید میتوانستم سعی کنم کتابی در سبک «For Dummies» بنویسم، اما بعد از دیدن «Bioinformatics for Dummies»، مطمئن نیستم آنچه لازم است را داشته باشم.
چرا SDL؟
مطمئناً لذتبخشتر است که برنامههایی با گرافیک و تعامل به سبک WIMP² بسازی تا فقط چیزها را تایپ کنی و چاپ کنی. کتابخانههای گرافیکی متنوعی وجود دارد. SDL³ یا Simple DirectMedia Layer، محبوب است، نسبتاً آسان برای یادگیری، قابلحمل بین پلتفرمها، و به اندازهٔ کافی سریع برای کارهای واقعی، همانطور که استفادهاش در بازیهای منتشرشدهٔ واقعی مثل بازی در شکل ۱ نشان میدهد.
چرا SSDL؟
هرچند SDL نسبتاً آسان است، برای روز اول برنامهنویسی با C++ به اندازهٔ کافی ساده نیست. SSDL – Simple SDL – تو را از نیاز به دانستن چیزهایی که تا فصل ۱۴ نمیرسیم نجات میدهد، قبل از انجام کارهای پایهای مثل نمایش تصاویر (فصل ۲) یا حتی چاپ یک سلام (فصل ۱).
همچنین کدهای مقداردهی اولیه و پاکسازی را که تقریباً هر بار یکسان هستند پنهان میکند و مدیریت خطا را کمتر دستوپاگیر میکند. ممکن است بعد از تمام کردن کتاب C++26 for Lazy Programmers بخواهی همچنان از SSDL همانطور استفاده کنی، اما اگر تصمیم بگیری با SDL ادامه دهی، میبینی که خیلی از آن را از قبل میدانی، و تقریباً چیزی برای فراموش کردن نداری: بیشتر نام توابع SSDL همان نامهای SDL هستند با یک «S» اضافه در ابتدا. در فصل ۲۹ عمیقتر به انتقال به SDL میپردازیم.
(نرمافزارهای رایگان) که نیاز داری:
در زمان نگارش، Microsoft Visual Studio (نسخهٔ Community) برای ویندوز کاملاً رایگان است، و g++ همیشه رایگان است. همینطور کتابخانههای SSDL و SDL2. برای کمک به نصب این موارد ضروری به فصل ۱ و پیوست A مراجعه کن.
برنامهنویسی با صدا ممکن است در اتصالات ریموت عملی نباشد به خاطر دشواری استریم صدا. اگر از شبیهساز یونیکس استفاده میکنی، قابلیت صدای شبیهساز را چک کن – مثلاً با پخش یک ویدیو – و آگاه باش: شبیهسازی همه چیز را کند میکند. این شامل WSL هم میشود.
اگر کتاب C++26 for Lazy Programmers برای یک درس است:
در کتاب C++26 for Lazy Programmers تا اشارهگرها، اضافهبارگذاری عملگرها، توابع مجازی، قالبها، استثناها، STL – همه چیز منطقی که ممکن است در دو ترم C++ انتظار داشته باشی – به علاوهٔ اضافیهای انتهایی را پوشش میدهد. کتابخانهٔ SSDL کمی زمان میگیرد، اما تمرکز محکم روی نوشتن برنامههای خوب C++ است، و SSDL فقط برای لذتبخشتر کردن برنامهها آنجا است.
چند تا آزمایشگاه یا پروژه داری که سخت باشه متوقفش کنی. ممکن است با همهٔ مسائل اینطور نشود، اما من دیدهام که اتفاق میافتد. SSDL همچنین معرفی ملایمی به برنامهنویسی مبتنی بر رویداد میدهد. در ۱۲ فصل اول کتاب C++26 for Lazy Programmers، تأکید روی توسعهٔ الگوریتم و سبک برنامهنویسی است، شامل معرفی زودهنگام ثابتها. بعد از فصل ۱۲، مثالها عمدتاً با ورودی/خروجی استاندارد هستند، هرچند SSDL هنوز گزینهای برای چند تمرین است و در فصل ۲۱ و بخشهایی از فصلهای ۲۴–۲۷ استفاده میشود.
یک توالی دوترمی معمولی تقریباً باید موارد زیر را پوشش دهد:
- ترم اول: فصلهای اول تا ۱۲ کتاب C++26 for Lazy Programmers، با استفاده از SSDL؛ فصل ۱۳، معرفی ورودی/خروجی استاندارد. با برخی استثناها (& پارامترها، stream I/O، constexpr)، این خیلی شبیه به C است و شامل متغیرها، عبارات، توابع، ساختارهای کنترلی، آرایهها و stream I/O میشود.
- ترم دوم: فصلهای ۱۴–۲۳ کتاب C++26 for Lazy Programmers، با ورودی/خروجی استاندارد، پوشش اشارهگرها، حافظهٔ پویا، آرایههای کاراکتری، کلاسها، اضافهبارگذاری عملگر، قالبها، استثناها، توابع مجازی، وراثت چندگانه (به طور مختصر)، و چشیدن از کتابخانهٔ قالب استاندارد (STL) با استفاده از بردارها و لیستهای پیوندی.
فصلهای بعدی کتاب C++26 for Lazy Programmers مطالبی را پوشش میدهند که به راحتی در دو ترم جا نمیگیرند، از جمله بیشتر STL، برنامهنویسی به سبک C، و موضوعات پیشرفته شامل آرگومانهای خط فرمان، رشتههای فرمت، و برنامهنویسی به سبک تابعی.
سرفصلهای کتاب C++26 for Lazy Programmers:
- Introduction
- Chapter 1: Getting Started
- Chapter 2: Images and Sound
- Chapter 3: Numbers
- Chapter 4: Mouse and if
- Chapter 5: Loops, Input, and char
- Chapter 6: Algorithms and the Development Process
- Chapter 7: Functions
- Chapter 8: Functions, continued
- Chapter 9: Using the Debugger
- Chapter 10: Arrays, Spans, and enum
- Chapter 11: Animation with structs and Sprites
- Chapter 12: Making an Arcade Game: Input, Collisions, and Putting It All Together
- Chapter 13: Standard I/O and File Operations
- Chapter 14: Character Arrays and Dynamic Memory
- Chapter 15: Classes
- Chapter 16: Classes, continued
- Chapter 17: Strings, and Operators
- Chapter 18: String Views, Exceptions, Move Semantics, and O Notation
- Chapter 19: Templates, Including vector
- Chapter 20: Inheritance
- Chapter 21: Virtual Functions and Multiple Inheritance
- Chapter 22: Linked Lists
- Chapter 23: The Standard Template Library and Functional-Style Programming
- Chapter 24: Functional-Style Programming, continued
- Chapter 25: Esoterica (Recommended)
- Chapter 26: Esoterica (Recommended), Continued
- Chapter 27: Esoterica (Not So Recommended)
- Chapter 28: Building Bigger Projects
- Chapter 29: C
- Chapter 30: Moving on with SDL: Help with Setup
- Appendix A: Help with Setup
- Appendix B: Operators
- Appendix C: Fundamental Types
- Appendix D: Common Escape Sequences
- Appendix E: Basic C Standard Library
- Appendix F: Common Debugger Commands
- Appendix G: SSDL Reference
- References
- Index
جهت دانلود کتاب C++26 for Lazy Programmers، پس از انجام پرداخت میتوانید فایل را دریافت کنید.

دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.