Programming -- Principles and Practice Using C++ (3rd Edition)
- Addison-Wesley द्वारा प्रकाशित "Programming -- Principles and Practice Using C++ (3rd Edition)" अप्रैल 2024 में प्रकाशित होने वाली है
- ISBN: 978-0-13-830868-1
- प्रकाशक की वेबसाइट से सीधे खरीदी जा सकती है
किताब का परिचय
- यह किताब मेहनत करने वाले किसी भी व्यक्ति को programming के बुनियादी सिद्धांत सीखने और वास्तविक programming के लिए आवश्यक व्यावहारिक कौशल विकसित करने में मदद करेगी
- पिछले editions का सफलतापूर्वक उपयोग हज़ारों छात्रों ने किया है
- इस revised edition की विशेषताएँ इस प्रकार हैं:
- यह मानकर चलती है कि पाठक का लक्ष्य ऐसे पर्याप्त अच्छे programs लिखना है जिन्हें दूसरे लोग उपयोग और maintain कर सकें
- अस्पष्ट language-technology details की बजाय बुनियादी concepts और techniques पर ध्यान देती है
- यह programming language का परिचय नहीं, बल्कि procedural, object-oriented और generic programming सहित programming in general का परिचय है
- hardware का कुशल उपयोग करने के लिए आवश्यक low-level techniques और आधुनिक high-level techniques दोनों को कवर करती है
- उपयोगी, सटीक और सुरक्षित types का उपयोग और maintenance करने तथा efficient code लिखने के लिए मज़बूत आधार प्रदान करती है
- मुख्य रूप से बिना programming अनुभव वाले लोगों के लिए डिज़ाइन की गई है, लेकिन अनुभवी programmers ने भी पिछले editions को अधिक प्रभावी concepts और techniques के परिचय के रूप में उपयोगी पाया
- आवश्यक concepts, design और programming techniques, language features और libraries को व्यापक रूप से कवर करती है
- नवीनतम C++ (C++20 और C++23) का उपयोग करती है
- input, output, calculation और simple graphics/GUI के साथ built-in types और user-defined types के design और उपयोग को कवर करती है
- C++ standard library containers और algorithms का परिचय देती है
लेखक परिचय
- Bjarne Stroustrup, C++ के designer और मूल implementer हैं, और "The C++ Programming Language", "A Tour of C++" तथा कई लोकप्रिय और academic publications के लेखक हैं
- वे New York City स्थित Columbia University में computer science के professor हैं
- Dr. Stroustrup, U.S. National Academy of Engineering के सदस्य हैं और IEEE, ACM तथा CHM fellow हैं
- उन्हें 2018 का Charles Stark Draper Prize, IEEE Computer Society का 2018 Computer Pioneer Award, और 2017 IET Faraday Medal मिला है
PPP3 परिचय
- "Programming: Principles and Practice using C++ (3rd Edition)" (PPP3) बिना programming अनुभव वाले लोगों के लिए programming की शुरुआती किताब है
- यह उन लोगों के लिए भी उपयोगी होगी जिन्हें थोड़ा programming अनुभव है और जो अपनी style और technique सुधारना चाहते हैं या बस आधुनिक C++ सीखना चाहते हैं
- इसे classroom उपयोग के लिए डिज़ाइन किया गया है, लेकिन tutorial के दृष्टिकोण से लिखा गया है
- इस किताब के पिछले versions का उपयोग Texas A&M University और कई अन्य स्थानों पर electrical engineering, computer engineering और computer science के छात्रों की पहली programming class की नींव के रूप में किया गया था
- PPP2 देखने वालों को लगेगा कि PPP3 का आकार लगभग आधा है। भार कम करने के लिए किए गए काम इस प्रकार हैं:
- C++20 और C++23 के core हिस्सों का उपयोग करके उन foundational chapters को मज़बूत किया गया है जिन्हें आमतौर पर एक semester course में पढ़ाया जाता है, और portability के लिए graphics/GUI chapters के code को Qt आधारित रूप में फिर से लिखा गया है (जैसे browser और phone)
- अधिक specialized chapters (PPP2 में जिन्हें "widening the scope" कहा गया था) आवश्यकता अनुसार उपयोग के लिए web पर रखे गए हैं
- pure reference material हटा दिया गया है। अब web पर अधिक और अधिक up-to-date सामग्री मिल सकती है (जैसे cppreference.com)
- PPP2 की support materials अभी भी उपलब्ध हैं (lecture slides, code आदि)
PPP3 samples
- Preface: यह किताब क्या वादा करती है और क्या नहीं करती
- Table of contents
- Chapter 0: पाठकों के लिए कुछ बातें। इस किताब में अपनाए गए approach पर कुछ notes
- Chapter 10: Display model. Sample chapter. अगर आप पूर्ण beginner हैं, तो इस chapter को अभी मत पढ़िए। इसे teachers और अनुभवी पाठकों को यह दिखाने के लिए प्रकाशित किया गया है कि यह किताब लगभग 5 हफ्तों में (मान लें प्रति सप्ताह दो chapters) कहाँ तक पहुँचती है। साथ ही थोड़ा आधुनिक C++ दिखाने के लिए भी
support जानकारी
- C++ implementations और software development environments के links (और शुरुआत के लिए कुछ सलाह)
- modules का उपयोग कैसे करें (PPP_support.h का उपयोग करके PPP module build करने का विवरण सहित)
- जब modules उपलब्ध हों, उसके लिए PPP module
- module std और PPP को सबसे आसानी से उपयोग करने के लिए "PPP.h" header
- जब फिर से header files के उपयोग पर लौटना पड़े, उसके लिए "PPPheaders.h" header
- PPP3 की graphics/GUI user interface library सहित GUI support (Chapters 10-14 में)। इस code को चलाने के लिए Qt install करना होगा। user manual देखें
- कई chapters के sample code (TBD)
- Errata
- PPP पर आधारित और PPP3 के लिए update किए गए lecture slides
- PPP coding style guide
- अभ्यास सामग्री (TBD)
PPP2 के chapters
- ये chapters C++23 की बजाय C++14 का उपयोग करके लिखे गए थे, लेकिन अब भी सही हैं और विषयों का उचित परिचय देते हैं
- Chapter 1: Computer, people, and programming
- Chapter 11: Input/output customization
- Chapter 22: Ideals and history
- Chapter 23: Text processing
- Chapter 24: Numerical computation
- Chapter 25: Programming embedded systems
- Chapter 26: Testing
- Chapter 27: The C programming language
- Glossary
अनुवाद संस्करण
- अभी नहीं हैं। पिछले edition के translations के लिए लेखक के book cover page को देखें
GN⁺ की राय
- PPP programming beginners के लिए एक मशहूर किताब रही है, और अब इसका तीसरा edition C++20/23 का उपयोग करते हुए सामग्री को काफ़ी व्यवस्थित और संक्षिप्त करके आ रहा है। यह स्वागतयोग्य खबर है।
- खासकर GUI हिस्से को Qt आधारित रूप में पूरी तरह पुनर्गठित करना यह दिखाता है कि Qt, C++ जगत के de facto standard GUI framework के रूप में स्थापित हो चुका है।
- लगता है कि इसमें modularization जैसी आधुनिक C++ techniques को सक्रिय रूप से शामिल किया गया है और web के साथ integration भी मज़बूत किया गया है। खासकर अगर ऐसा version है जिसे सीधे web browser में चलाया जा सकता है, तो वह शिक्षा के लिए बहुत उपयुक्त लगेगा।
- हालांकि आधुनिक C++ के उपयोग से beginners थोड़ा भ्रमित भी हो सकते हैं। अब भी शुरुआती लोगों के लिए C-style C++ से शुरुआत करना बेहतर हो सकता है।
- लेखक Bjarne, C++ के creator हैं और standardization का नेतृत्व करते रहे हैं, इसलिए यह सबसे authoritative किताबों में से एक लगती है। beginners ही नहीं, experts भी Bjarne द्वारा चुनी गई best practices और उपयोगी tips सीख सकेंगे।
1 टिप्पणियां
Hacker News राय
इस बात को लेकर चिंता जताई गई कि C++20 modules फीचर अभी तक ज़्यादातर compilers में पूरी तरह supported नहीं है, इसलिए
import std;काम नहीं करता। इससे beginners भ्रमित हो सकते हैं.GUI chapter में FLTK की जगह Qt का इस्तेमाल एक बड़ा बदलाव है, और क्योंकि industry में Qt का व्यापक उपयोग होता है, इसे अच्छी प्रतिक्रिया मिलने की उम्मीद है। हालांकि, इसका learning curve पर क्या असर पड़ेगा, यह स्पष्ट नहीं है.
Stroustrup के code में
using namespace std;का उपयोग किया गया है, जिससेstd::prefix छोड़ा जा सकता है और code readability बेहतर होती है.Stroustrup के code में
#includeके बाद space का लगातार उपयोग न करने पर सवाल उठाया गया है.पहले C++ का उपयोग UI, API parsing आदि लगभग हर चीज़ के लिए किया जाता था, लेकिन अब development stack में C++ की स्थिति नीचे खिसक गई है.
इस किताब के पिछले संस्करण का गहराई से अध्ययन करने का अनुभव साझा किया गया, और यह C++ की समझ बढ़ाने में बहुत मददगार रही। हालांकि, ऐसे भी बहुत लोग थे जो इस तरह की किताबें पढ़े बिना C++ code लिखते थे.
C++ की ताज़ा जानकारी देने वाली
C++ Annotationsनाम की किताब का परिचय कराया गया है.तीसरे संस्करण के pages और weight, दूसरे संस्करण की तुलना में लगभग आधे रह गए हैं.
दूसरे संस्करण का
Part IV: Broadening the Viewsection हटा दिया गया है, इसलिए मात्रा कम हुई है, और संबंधित सामग्री online देखी जा सकती है। C++11/14 का उपयोग करने वाले विषय अब भी प्रासंगिक हैं.C++20 को support करने वाला IDE या compiler ढूंढना कठिन होने के कारण
import std;के काम न करने की समस्या पर सलाह मांगी जा रही है.