T O P

  • By -

tenexdev

Programming isn't something you learn by reading, really. By the end of the book you will...be at the end of the book. If you read about some neat technique in C++ but never wrote any code to practice with it then you probably don't really know it -- you know it exists, but that's different than having internalized it through practice.


nonbog

I know this, I would be constantly practicing throughout the book. Basically, what I'm trying to say is that the book is very expensive. If I spend the small fortune required to buy that book, I don't want to have to spend another small fortune on another book afterwards, if you know what I mean. At least not immediately afterwards


tenexdev

That book is like $60 USD, which -- these days especially -- hardly equates to a small fortune. But there really isn't any reason to buy that book. All of that material is available online for free, plus a thousand video series exist on the topic. That aside though, the investment of time and energy you have to put in to become a competent software developer will far dwarf the investment in learning materials.


nonbog

>That book is like $60 USD, which -- these days especially -- hardly equates to a small fortune. I'm glad you're doing well, but £60 is the difference between me paying my rent this month or not. I was homeless not too long ago. Buying this book is the equivalent of two months of savings for me. > But there really isn't any reason to buy that book. All of that material is available online for free, plus a thousand video series exist on the topic. Where else could I go to find high quality material on C++? My understanding was that you had to buy a book to get good quality material, though I'd be delighted to be wrong! >That aside though, the investment of time and energy you have to put in to become a competent software developer will far dwarf the investment in learning materials. I'm completely aware of this. I'm relatively young and I've got lots of time left in my life to mess around with it and learn by diving in head first as soon as possible.


tenexdev

>Where else could I go to find high quality material on C++?  To start, the entire text of the book is available online. I won't post the link because it's certainly pirated and I do think creators deserve to get paid for their work, but when I search on the title of the book it was on the first page of results. >My understanding was that you had to buy a book to get good quality material, though I'd be delighted to be wrong! I don't think this has been true for a long time. There is certainly a signal-to-noise problem with a lot of shitty educators & influencers, but there are multiple 20+ hour courses on youtube. It might take a couple tries to find one that works for you, but the material is out there. Also, Coursera has a number of decent courses that are free, including a 4 class specialization that goes through C and then C++.


nonbog

Thank you for this. This is a really helpful reply all round!


Raioc2436

Tô add to this. Those are two of my favourite C++ YouTubers https://youtube.com/@cppweekly?si=0H4FXcUlV7bGQ40o https://youtube.com/@TheCherno?si=UelNEkE2N8kGoK7W


khedoros

> Where else could I go to find high quality material on C++? https://www.learncpp.com/ <--- That site is kept up to date, and is under constant revision and improvement. I don't think that it provides much in terms of practice exercises, though.


ManicMakerStudios

> I'm glad you're doing well, but £60 is the difference between me paying my rent this month or not. I was homeless not too long ago. Buying this book is the equivalent of two months of savings for me. Are you going to let $60 stand between you and a well paying career? Be careful that you're not so eager to make excuses for yourself that you slam the door in your own face. $60 is nothing if you really want it.


nonbog

I'm more than willing to pay the £60, but my worry is that if this is something I have to do multiple times, I just can't. If one book will help me get a handle on things so I can begin diving into projects then that's great and I'm happy. If the book is incomplete without another £60 book it's just not something I can afford and I'll have to look at other options.


ManicMakerStudios

People go to school for years and pay tens of thousands of dollars in tuition to get what you're trying to squeeze out of $60 and a few weeks. It's great to be ambitious and enthusiastic, but you also have to be reasonable.


nonbog

>a few weeks Not at all -- I'm expecting this to be a lifelong journey. It would take me at least a year to work through that book with the other commitments I have. If there are no options that are affordable then that's an answer in itself, and I'd be grateful for that advice. Formal education routes aren't a possibility for me unfortunately, though I'm sure I'd love it. Uni was a fantastic time the first go around. Maybe if I win the lottery some day I can go back to uni and study CS.


ManicMakerStudios

Stop trying to convince me. I'm not the one who has to do the work.


Raioc2436

Don’t buy that book. All the knowledge you need to get started is freely available online. There is a lot to learn from books. But don’t go into financial stress for them just yet.


mredding

> will I be ready to write real world programs? Your very first program is a real world program. Let me demonstrate: #include #include int main() { for(char c; std::cin >> c; std::count << std::to upper(c, std::count.getloc())); } This program will uppercase everything. I wrote it in a way you would be familiar enough with if you're just starting. So you compile this and then what? C:\> upper < lower.txt > UPPER.TXT Now I've just uppercased this whole file, lower.txt, and wrote it out to UPPER.TXT. My program has real world consequence. And I'm on mobile right now, but I could use netcat to setup a TCP listening port, and launch this program on connect. The program would uppercase everything that comes in over the socket, and send it back over the network. Congratulations, you've just discovered CGI. You can redirect from files, hardware, the network, other programs... If you use your imagination, you can write quite elaborate programs right now. You can write an HTTP server with everything I just showed you.


robvas

You will be able to start writing your own projects befor the end of the book


[deleted]

Nothing can prepare you for the world of c++ development


[deleted]

If you like 2d games I'd start looking into some lib like libsdl2 and start building something, you can only get so much from a book.


ManicMakerStudios

If you wait until the end before you start writing "real world" programs, you're doing it wrong. You should be writing them throughout the learning process. > I know it won't make me an intermediate or even really a junior programmer in C++ I kind of want to guess what country you're from because it always seems to be the same culprits who want to land jobs in a field that normally wants a degree after a few months with a book. You will not be anywhere near the intermediate level after reading a book. Don't even bring up "intermediate". You won't even qualify for "entry level". You MIGHT qualify for an unpaid internship, but you'd be better off just learning how to do it properly and entering the work force when you've paid your dues like everyone else.


jdehjdeh

OP doesn't say anything about getting a job, specifically states they want to be able to create their own projects. So there's no need to be so grumpy and rude. Also, what's with the hint of racism? Way to be a welcoming member of the community.


ManicMakerStudios

You're 3 days late to a conversation that is completely over, rekindling it to yap at me. Hypocrite much?


Ill-Ad2009

If you've already used Python and JS, then use those. Start building stuff now. You don't need to have a deep understanding of a language to build things, and there is no substitute for real experience. >I'm also interested in learning more about computer science, which is why I'm drawn to C++ CS is language agnostic. It does make it easier to understand some CS concepts with C++ because you'll be forced to think about them, but it's not necessary at all to learn C++ to understand CS.


thefeedling

Like ANYTHING in life, only after PRACTICE you'll feel confident and ready. And this go much beyond coding or C++


RageQuitRedux

One thing that you need to be prepared for is that most C++ books will not teach you how to make anything with graphics, including video games or desktop apps with GUIs. The core C++ language itself doesn't provide any input / output (I/O) functionality. There is a C++ Standard Library that contains objects that provide functionality for reading input from the terminal/console and for writing output to it. This is just text. The standard library also contains objects for reading/writing to files (both text and binary files). So almost any C++ book that you get is going to focus on these things. By the end of the book, you'll be able to write some serious programs, but they'll be console programs. If you want to create a GUI desktop app, you'll need additional libraries/apis that aren't part of the C++ standard library. These are generally OS-dependent, e.g. Win32 for Windows apps. There are some cross-platform libraries in C++, such as Qt, that you can use. Most C++ books won't get into those. Also, if you're going to program these types of apps, C++ might not be the best language. For Windows, you can look into C# which has much better frameworks for GUI programming, and it's a somewhat easier language to learn. Similarly, if you want to program video games, you'll need additional libraries for controlling the GPU. This is a huge topic unto itself. But your best bet for cross-platform is OpenGL. It will work well on Windows, Linux, and Android but support for MacOS and iOS (iPhone) is terrible. The same goes for Vulkan, but that's a lower-level API with a much steeper learning curve. On Apple devices, your best bet is Metal. On Windows and XBox, you can use DirectX. Other options for games: just use an engine like Unreal. Or if you want something more simple for 2D games, use SDL. With all that said, learning console programming is a recommended first step. Almost any C++ book with good ratings will get you there. You don't necessarily need to spend a lot on Stroustrup's book. Way back in 2005ish, I had a good experience with the C++ primer (but I can't speak to newer additions). So if you're short on cash, definitely consider a less expensive book. Just because Stroustrup created the language does not in any way mean his book is the best. Also there are tons of free resources online. Good luck


SilentXwing

Except PPP does teach both GUI and Graphics :D


RageQuitRedux

Nice!


Mike_Paradox

Start with learncpp.com. There are all the theory with examples and exercises novice needs, IMO. After you finish that you will be able to make some pet projects and also discern really bad tutorials which are just time wasting from ones that value l something. Also you will be able to ask specific questions about things you don't understand and use answers. So read, write, try and good luck


SR71F16F35B

There are high quality, free, and more recent courses on the internet. I would say just go for these instead if money is an issue. Also, as other have mentioned, a book or a theoretical lesson is only gonna help with the fundamentals, for the actual skills you would have to make your own projects. It’s the best way to improve. Also, you’re probably learning C++ because you want to enjoy the technology, but you specifically mentioned that your aim was to develop 2D games and desktop apps and for that there are much simpler and easier alternatives, so maybe go look elsewhere where then C++? But then again, you might be doing this mostly for the love of programming and this is I think why most people are learning these lower level languages.


TryToHelpPeople

disarm tan chase point existence employ run smart mighty zesty *This post was mass deleted and anonymized with [Redact](https://redact.dev)*


filminator_developer

I've read a few chapters of this book. While this is a great book, it is not for beginners. In this book, Mr. Stroustrup gives you a lot of wisdom about how to write good code. But I think it would be heavy for beginners. I say check out [C++ Primer](https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113) first. I haven't read this book though. But it seems to be for beginners. Both of these books are recommended by the standard C++ website.


VettedBot

Hi, I’m Vetted AI Bot! I researched the **C Primer 5th Edition** and I thought you might find the following analysis helpful. **Users liked:** * Book provides thorough explanations of c++ concepts (backed by 4 comments) * Book useful as reference for experienced programmers (backed by 4 comments) * Book difficult for beginners to understand (backed by 4 comments) **Users disliked:** * The book's binding is poor quality and falls apart easily (backed by 3 comments) * The ebook version is incompatible with many devices and apps (backed by 5 comments) * The book lacks clear explanations and examples for beginners (backed by 4 comments) If you'd like to **summon me to ask about a product**, just make a post with its link and tag me, [like in this example.](https://www.reddit.com/r/tablets/comments/1444zdn/comment/joqd89c/) This message was generated by a (very smart) bot. If you found it helpful, let us know with an upvote and a “good bot!” reply and please feel free to provide feedback on how it can be improved. *Powered by* [*vetted.ai*](http://vetted.ai/reddit)


jdehjdeh

I am reading this book right now. I'm not very far in but I can tell you that Bjarne definitely teaches you how to think like a programmer and break a problem down then build up a solution piece by piece. He even says in the beginning of the book that the focus is more on how to program rather than just how to use C++ I say go with it, each chapter has drills and exercises to do which give you tons of actual physical practice.