Reddit Reddit reviews Programming: Principles and Practice Using C++

We found 25 Reddit comments about Programming: Principles and Practice Using C++. Here are the top ones, ranked by their Reddit score.

Computers & Technology
Books
Computer Programming
Microsoft C & C++ Windows Programming
Microsoft Programming
Programming: Principles and Practice Using C++
Check price on Amazon

25 Reddit comments about Programming: Principles and Practice Using C++:

u/Mydrax · 118 pointsr/learnprogramming

Well, this is usually because C++ is not really a beginner friendly language. You need to understand the architecture/fundamentals of a computer system at times to understand certain concepts and are often difficult to understand ex: pointers, dynamic memory allocation etc. and with C++ you never finish learning!

Yes, you are very correct about understanding basics before doing actual game-based programming, C++ Primer is pretty old but it's definitely a golden book alongside it though for someone like you I will suggest some of the books I read a couple years back and some that I believe are better for beginners:

Accelerated C++: Practical Programming by Example

Programming: Principles and Practice Using C++

The C++ Programming Language, 4th Edition- Very big book, read this after you've read the rest.

And a book that I've heard is pretty good for game development with c++: https://www.amazon.com/Mastering-Game-Development-professional-realistic/dp/1788629221

u/khedoros · 9 pointsr/learnprogramming

This book was written by the author of the C++ programming language, and it's designed for a student to begin learning to program using C++.

C++ isn't an easy language, and it's not one that I'd usually recommend as a first language to learn....but it's doable.

u/[deleted] · 7 pointsr/programming

Learn C. Some good beginner books are Programming in C
and C Programming A Modern Approach

If you're really dedicated to learning with C++ first I would recommend Programming: Principles and Practice Using C++ its a great book for determined beginners, its not a C++ language manual instead it's a book on programming.

u/NowTheyTellMe · 5 pointsr/UCI

So this is what I would consider the "Core" reading list for anyone interested in programming games. None of this is really game specific though. These are just the fundamentals you need in order to be an effective Software Engineer.

Learn about...

C++ syntax: Programming: Principles and Practice Using C++ by Bjarne Stroustrup

Software Engineering: Code Complete by Steve McConnell

C++ gems: Effective C++ by Scott Meyer

Software Teams: The Mythical Man-Month by Frederick P. Brooks Jr.

Why we love Joel: Joel on Software by Joel Spolsky

Problem Solving: The Pragmatic Programmer by Andrew Hunt

Common Code Solutions: Head First Design Patterns by Eric Freeman

Pearls!: Programming Pearls by Jon Bentley

I'll do a supplemental on this in a few days that dives into specific topics related to engine development. All of this is generic enough that it will help you regardless of what you do. You'll notice that very little here is actually language specific. Almost all of this is about the art of making software and process of working with a team. These 8 books alone will make you think about making software in a whole new way.

u/Canadana · 4 pointsr/learnprogramming

Don't be too hard on yourself, C++ is a tough language. Its a good sign that you are struggling, it means that you are human. You might want to take a look at Programming: Principles and Practice Using C++. It was written by the creator of the language and its good for beginners.

Good luck!

u/_rere · 3 pointsr/cscareerquestions

Hi there, fellow EE.

We should make a club :)

I believe you can do a crash course into software development and catch up later when it comes to be a better software developer, since you've already been in the market for 4 years I'm sure you know exactly what I'm talking about (job has nothing to do with education, and you can learn as you go), and I know its the same in CS, a lot of companies just want you to do specific thing, and they don't really care about your theoretical knowledge or your full knowledge with software development life cycle.


Since you are an EE graduate I think you can relatively easily land a c++ software development job, but the problem with c++ is that there is a lot of theoretical knowledge is expected from you.

Still I believe if you set aside 3 months of your lifetime and study the following:

Programming: Principles and Practice Using C++

Code Complete

introduction to algorithms

Optional:

Software Engineering

Java Heads first

C# in a nutshell

Note, half of these books will bore you to death, but you have to power through.
Also there will come times where you don't understand what you are reading, I find it best is just to keep going, eventually things will make sense.

I personally find books is the fastest way to learn, and give you the deepest knowledge and always access to awesome tips and tricks that you can't learn at class or from a video.

If you pick those books, you can read from them in parallel, make a habit of finishing a chapter per 24/48 hour and practice 1-2 hours of programming (of what you've learned) I'm sure by the end of the 3 months you will be better than a lot of CS graduates

u/InsidetheCentre- · 3 pointsr/learnprogramming

Me and a couple of others are learning C++ with this book, and have a study group where we discuss content & problems here. If you fancy joining feel free.

u/jesyspa · 3 pointsr/learnprogramming

First of all, ask yourself why it is you want to do C++. It isn't the easiest or most convenient language; unless there's some specific reason you want to focus on it, there's a pretty good chance that you should (first) learn something else. If you're not sure, try this page.

As for where to learn it, the only worthwhile resources available at this moment are good books. If you have little experience with programming, I'd recommend starting with C++ Primer or Programming: Principles and Practice using C++.

u/Gankbanger · 2 pointsr/learnprogramming

Programming: Principles and Practice Using C++ by Bjarne Stroustrup, the creator of C++.

He wrote this book for an entry level engineering course he teaches at Texas A&M University.

The table of contents of this book look very similar to the contents on your class, plus some more:

Chapter 1: Computers, People, and Programming 17
1.1 Introduction 18
1.2 Software 19
1.3 People 21
1.4 Computer science 24
1.5 Computers are everywhere 25
1.6 Ideals for programmers 34
Part I: The Basics 41
Chapter 2: Hello,World! 43
2.1 Programs 44
2.2 The classic first program 45
2.3 Compilation 47
2.4 Linking 51
2.5 Programming environments 52
Chapter 3: Objects, Types, and Values 59
3.1 Input 60
3.2 Variables 62
3.3 Input and type 64
3.4 Operations and operators 66
3.5 Assignment and initialization 69
3.6 Composite assignment operators 73
3.7 Names 74
3.8 Types and objects 77
3.9 Type safety 78
Chapter 4: Computation 89
4.1 Computation 90
4.2 Objectives and tools 92
4.3 Expressions 94
4.4 Statements 99
4.5 Functions 112
4.6 Vector 116
4.7 Language features 123
Chapter 5: Errors 131
5.1 Introduction 132
5.2 Sources of errors 134
5.3 Compile-time errors 134
5.4 Link-time errors 137
5.5 Run-time errors 138
5.6 Exceptions 144
5.7 Logic errors 152
5.8 Estimation 155
5.9 Debugging 156
5.10 Pre- and post-conditions 161
5.11 Testing 164
Chapter 6: Writing a Program 171
6.1 A problem 172
6.2 Thinking about the problem 173
6.3 Back to the calculator! 176
6.4 Grammars 186
6.5 Turning a grammar into code 193
6.6 Trying the first version 201
6.7 Trying the second version 206
6.8 Token streams 207
6.9 Program structure 213
Chapter 7: Completing a Program 219
7.1 Introduction 220
7.2 Input and output 220
7.3 Error handling 222
7.4 Negative numbers 227
7.5 Remainder: % 228
7.6 Cleaning up the code 231
7.7 Recovering from errors 238
7.8 Variables 241
Chapter 8: Technicalities: Functions, etc. 253
8.1 Technicalities 254
8.2 Declarations and definitions 255
8.3 Header files 261
8.4 Scope 264
8.5 Function call and return 269
8.6 Order of evaluation 287
8.7 Namespaces 290
Chapter 9: Technicalities: Classes, etc. 299
9.1 User-defined types 300
9.2 Classes and members 301
9.3 Interface and implementation 302
9.4 Evolving a class 304
9.5 Enumerations 314
9.6 Operator overloading 316
9.7 Class interfaces 318
9.8 The Date class 328
Part II: Input and Output 337
Chapter 10: Input and Output Streams 339
10.1 Input and output 340
10.2 The I/O stream model 341
10.3 Files 343
10.4 Opening a file 344
10.5 Reading and writing a file 346
10.6 I/O error handling 348
10.7 Reading a single value 352
10.8 User-defined output operators 357
10.9 User-defined input operators 359
10.10 A standard input loop 359
10.11 Reading a structured file 361
Chapter 11: Customizing Input and Output 375
11.1 Regularity and irregularity 376
11.2 Output formatting 376
11.3 File opening and positioning 384
11.4 String streams 390
11.5 Line-oriented input 391
11.6 Character classification 392
11.7 Using nonstandard separators 394
11.8 And there is so much more 401
Chapter 12: A Display Model 407
12.1 Why graphics? 408
12.2 A display model 409
12.3 A first example 410
12.4 Using a GUI library 414
12.5 Coordinates 415
12.6 Shapes 416
12.7 Using Shape primitives 417
12.8 Getting this to run 431
Chapter 13: Graphics Classes 437
13.1 Overview of graphics classes 438
13.2 Point and Line 440
13.3 Lines 443
13.4 Color 445
13.5 Line_style 448
13.6 Open_polyline 450
13.7 Closed_polyline 451
13.8 Polygon 453
13.9 Rectangle 455
13.10 Managing unnamed objects 459
13.11 Text 462
13.12 Circle 464
13.13 Ellipse 466
13.14 Marked_polyline 468
13.15 Marks 469
13.16 Mark 470
13.17 Images 472
Chapter 14: Graphics Class Design 479
14.1 Design principles 480
14.2 Shape 485
14.3 Base and derived classes 496
14.4 Benefits of object-oriented programming 504
Chapter 15: Graphing Functions and Data 509
15.1 Introduction 510
15.2 Graphing simple functions 510
15.3 Function 514
15.4 Axis 518
15.5 Approximation 521
15.6 Graphing data 526
Chapter 16: Graphical User Interfaces 539
16.1 User interface alternatives 540
16.2 The “Next” button 541
16.3 A simple window 542
16.4 Button and other Widgets 548
16.5 An example 552
16.6 Control inversion 556
16.7 Adding a menu 557
16.8 Debugging GUI code 562
Part III: Data and Algorithms 567
Chapter 17: Vector and Free Store 569
17.1 Introduction 570
17.2 vector basics 572
17.3 Memory, addresses, and pointers 574
17.4 Free store and pointers 577
17.5 Destructors 586
17.6 Access to elements 590
17.7 Pointers to class objects 591
17.8 Messing with types: void* and casts 593
17.9 Pointers and references 595
17.10 The this pointer 603
Chapter 18: Vectors and Arrays 611
18.1 Introduction 612
18.2 Copying 613
18.3 Essential operations 620
18.4 Access to vector elements 625
18.5 Arrays 627
18.6 Examples: palindrome 637
Chapter 19: Vector, Templates, and Exceptions 645
19.1 The problems 646
19.2 Changing size 649
19.3 Templates 656
19.4 Range checking and exceptions 668
19.5 Resources and exceptions 672
Chapter 20: Containers and Iterators 685
20.1 Storing and processing data 686
20.2 STL ideals 690
20.3 Sequences and iterators 694
20.4 Linked lists 698
20.5 Generalizing vector yet again 703
20.6 An example: a simple text editor 704
20.7 vector, list, and string 711
20.8 Adapting our vector to the STL 715
20.9 Adapting built-in arrays to the STL 718
20.10 Container overview 719
Chapter 21: Algorithms and Maps 727
21.1 Standard library algorithms 728
21.2 The simplest algorithm: find() 729
21.3 The general search: find_if() 732
21.4 Function objects 734
21.5 Numerical algorithms 738
21.6 Associative containers 744
21.7 Copying 757
21.8 Sorting and searching 762
Part IV: Broadening the View 769
Chapter 22: Ideals and History 771
22.1 History, ideals, and professionalism 772
22.2 Programming language history overview 783
Chapter 23: Text Manipulation 813
23.1 Text 814
23.2 Strings 814
23.3 I/O streams 819
23.4 Maps 820
23.5 A problem 828
23.6 The idea of regular expressions 830
23.7 Searching with regular expressions 833
23.8 Regular expression syntax 836
23.9 Matching with regular expressions 844
23.10 References 849
Chapter 24: Numerics 853
24.1 Introduction 854
24.2 Size, precision, and overflow 854
24.3 Arrays 859
24.4 C-style multidimensional arrays 859
24.5 The Matrix library 861
24.6 An example: solving linear equations 872
24.7 Random numbers 877
24.8 The standard mathematical functions 879
24.9 Complex numbers 880
24.10 References 882
Chapter 25: Embedded Systems Programming 887
25.1 Embedded systems 888
25.2 Basic concepts 891
25.3 Memory management 897
25.4 Addresses, pointers, and arrays 905
25.5 Bits, bytes, and words 916
25.6 Coding standards 935
Chapter 26: Testing 949
26.1 What we want 950
26.2 Proofs 952
26.3 Testing 952
26.4 Design for testing 978
26.5 Debugging 979
26.6 Performance 979
26.7 References 983
Chapter 27: The C Programming Language 987
27.1 C and C++: siblings 988
27.2 Functions 994
27.3 Minor language differences 1002
27.4 Free store 1009
27.5 C-style strings 1011
27.6 Input/output: stdio 1016
27.7 Constants and macros 1020
27.8 Macros 1021
27.9 An example: intrusive containers 1025

u/ChristianTaz · 2 pointsr/learnprogramming

Actually I think the book he's referring to may be Programming Principles and Pratice written by the original designer of C++. Many consider it one of the best books for beginners to learn programming principles and the C++ language. The author also explicitly says it is not a reference book and that it is best to go through chapter by chapter.

Of course, I could also be assigning meaning to nothing. I'm just going off the fact that the book is like 1300 pages and is popular for people trying to learn C++.

But the answer to this would still be no. You would need to code a lot in addition to reading the 1300 page tome.

u/MarioV2 · 2 pointsr/unt

Linux Journey is pretty good. I think the "Grasshopper" section should be more than enough for 1030. You can skip the getting started part and follow this guide to get a linux distribution on your Windows 10.
If you don't have windows 10 then ¯\_(ツ)_/¯


And I think the book for that class is Programming: Principles and Practice Using C++ by Stroustrup. You can probably find a .pdf of it online though.

u/xRehab · 2 pointsr/personalfinance

And if that is what you want to do then there will always be jobs that require you to write code, but those aren't the only jobs available to people with a CS degree. I got my degree with no intent of writing code in the long term, I've always loved the analytics side of things and the systems integrations; the actual use between client, employee and system. And CS degrees teach more than how to program, they teach how to think logically like a programmer which is a huge boost to everything else you'll do later on.

Personally haven't used the Harvard site before but if you want to learn it yourself try and pick up Stroustrup's book on C++ programming.. One of my favorite books I have ever used, cheap, and written by the guy who literally invented modern day C++. If you can successfully implement the first half of his book, and understand why it all works, you'll be way ahead of most CS students. After that it's just applying OOP to other languages and practicing with bigger personal projects that use new languages/tech until you've sampled a ton of stuff and built a few multilayered projects.

u/obiwan90 · 2 pointsr/cpp_questions

Stroustrup's "Programming - Principles and Practice Using C++", starting at $5.40 used at Amazon

u/apokorney · 1 pointr/learnprogramming

Thanks, I've got Principles and Practice using C++ by Bjarne Stroustrup ordered, however code doesn't exactly match from the texts I have read to VB. I was just trying to get some definitions, so I can recognize how to identify code in the future. Thanks

u/bogo_sort · 1 pointr/cpp_questions

up

dammit. Thanks for taking the time to explain that to me.


This

>is a valid URL. The code doesn't limit the protocol to just "http", anything before a "://" will be accepted.



and that


>getline(inFile, sentence); will discard the ending newline,


are really good to know.


> paragraph.assign(std::istreambuf_iterator<char>{inFile},
std::istreambuf_iterator<char>{});

thx.


This book is like Jesus to those people at learnprogramming however I think I may pick up a different one.

How's this one book

u/memeHUSK · 1 pointr/learnprogramming

I just finished this book and highly recommend it as a starting point.

u/serados · 1 pointr/gamedev

A proper infix calculator program that can read something like 5*(3.5-1.2)/15+2.9 and give the correct answer isn't simple at all. It requires the creation of a parser, and to write a parser you'll need to know what grammar you're working with. The type of thinking needed to write a calculator is a step up from something simpler like a temperature converter, Tic Tac Toe or even Minesweeper even if it may not seem so.

Bjarne Stroustrup's Programming: Principles and Practice Using C++ devotes two chapters to making a complete console-based calculator with proper error checking and recovery in Chapters 6 and 7, which also happens to be where the difficulty of the book spikes considerably. He doesn't use a stack, which would be conventional for a calculator program, because stacks have not been covered at that point. Instead, he chooses to use repeated pushing and getting from a custom token stream to solve the problem.

If you're looking for a book that teaches you how to program and runs you through the thought process of a programmer as he builds a program, I recommend Stroustrup's book. It's not that suitable for an absolute beginner and his chapter organization seems slightly haphazard, but that doesn't take it away from being an excellent guide. It happens to use C++, but it teaches programming and does not teach a programming language. I suspect a book like that is what you want.

His (deliberately bug-filled as an exercise) solution at the end of Chapter 6 can be found here. Yes, it's hard to understand.

u/Gunslinging_Gamer · 1 pointr/cpp

Bjarne Stroustrup - Programming: Principles and Practice Using C++ (Amazon Link) would be my first recommendation.

It gives clear and detailed instruction right from the start. It's a lot of work, but it's well worth it. Buy a physical copy if you can; it's far better to work from a book.

u/LainIwakura · 1 pointr/learnprogramming

I know you said online, but I'd highly recommend this book- by the creator of C++ himself. (Bjarne Stroustrup)

http://www.amazon.com/Programming-Principles-Practice-Using-C/dp/0321543726/ref=sr_1_1?ie=UTF8&qid=1300905008&sr=8-1

It's not as heavy as one of his other books, and is a good introduction to programming in general.

u/nmtake · 1 pointr/programming_jp

ああーストラウストラップじゃなくてビューティフルコードでしたか
言われてみれば鳥の数がちょっといやだいぶ違うような・・・

https://www.amazon.co.jp/Programming-Principles-Practice-Developers-Library/dp/0321543726/

u/MooseDog00 · 1 pointr/news

My first CS prof, Bjarne Stroustrup, actually did the same sort of thing. (Minus the e-book part)

He told us his book is made a little more cheaply to better be affordable for us. Check out how cheap the 1.2k page book is (Under $50) http://www.amazon.com/Programming-Principles-Practice-Using-C/dp/0321543726

And honestly, the build quality is fine. I paid the same for a 120 page year book and had pages fall out day 1, but this text was lugged around campus and thrown about and had no issues whatsoever. I also got it used...

u/last_useful_man · 1 pointr/cpp

For what it's worth Stroustrup has another C++ book, /to learn programming with/, ie it goes more gently and has more examples.

I indeed wouldn't try to learn programming with the 3rd edition main C++ book, but then I'm not sure I'd try to learn programming with C++, either (Python). He uses the linked book above to teach, it's probably suitable to learn from.

u/cisnotation · 1 pointr/AskReddit

I don't have a book to recomend but I have a book that you should not read. DO NOT USE THIS BOOK It was written buy the creator of c++ himself and it sucks. I think I fell asleep in Stroustrop's lecture while in this intro to c++ class...

u/mvpete · 1 pointr/cpp_questions

Give the guy a break. He's clearly learning and the last thing someone who is learning needs is to be ridiculed for trying. I get that he's being a bit cocky, but maybe he's coming from a different language, where he was strong, or something and doesn't quite the get the idiosyncrasies of C++. If you put yourself, someone who has some, moderate, maybe even decades of experience in his shoes, you might think twice about being so blatantly disrespectful. You followed it up with good instruction, but why put the guy down? You don't have to be an asshole to help the guy.

As for /u/roflmaohaxorz, you might want to check out some beginner books like Programming: Principle and Practice using C++. Maybe, take a look at using std::string, instead of trying to manage your strings raw. Then I'd suggest reading up on how the standard input and output streams work. Maybe some investigation into primitive data types to understand the difference between arrays, pointers and values. Keep trying, but be modest. Try to understand likely you don't know, what you don't know. Lastly, have fun!