Select a Resource
These are the books I've found most useful. You can read my comments about each one. Most of the links will take you to Amazon in a separate tab where you can see the prices and different formats each book is available in.
I hope you get as much benefit from these books as I have over the years,
The C++ Programming Language (4th Edition)
The C++ Programming Language book is written by the creator of C++, Bjarne Stroustrup. I consider it to be the definite guide to the language and I refer to this book whenever I have a question about some dark corner of C++.
I also have this 4th edition published in 2014 and find it very useful even though it's about 5 years old now. You'll find answers in this book that will help explain questions when you can't find the answer anywhere else.
The C++ Standard Library: A Tutorial and Reference (2nd Edition)
The C++ Standard Library book is a bit different from a reference book. That's because half the book is intended to be read while the other half is actually the reference section.
This book fills in a gap that will help you make use of the standard library. A lot of what you'll be working with is not really part of the core C++ language but is instead part of the standard library that comes with C++.
This is probably the book I refer to the most. It's also useful for you when you're just starting as long as you keep in mind that you might not understand everything yet. This is well worth the investment because you'll likely keep this book open next to you while coding.
I always say that learning a language syntax and grammar is half of what you need to program in that language. The other half is learning the library. The C++ Standard library is powerful but does take some getting used to. I think that's why the first half of this book explains how the library works.
Design Patterns: Elements of Reusable Object-Oriented Software
I first read this book in the mid 1990's and recommend Design Patterns: Elements of Reusable Object-Oriented Software to everybody who wants to create better designs. That's a long title so I usually just call this book Design Patterns. The authors became famous as the Gang Of Four, or GoF, because of this book.
Design Patterns invented the idea of design patterns and software design has never been the same since. The book shows and explains common solutions that every coder eventually needs to solve. The solutions you'll learn about are so common and widely applicable that understanding the pattern behind the solution will not only save you countless hours of design, but you'll end up with a better design too.
That's because these patterns are common for a reason. They work. If you've never read this book before, then my advice here is the same as I'd give to my best friends.
Go get this book right now.
Seriously. It's important enough that you really need to read this book before you do anything else.
Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14
Effective Modern C++ is probably the book I've read the most in this list. I don't even know how many times I've read this book. I ordered this book when a friend of mine showed me his copy. I forget now what we were discussing. But I remember buying this book the same day.
I especially like how Effective Modern C++ is divided into small items. I used to think of these as chapters. But they're shorter than chapters. I've read many items in about 10 minutes while riding the bus to work.
Game Programming Patterns
I'm a big fan of design patterns. And because I like to help you learn how to code through games, then game design patterns are a must. Game Programming Patterns fills this need perfectly. You'll not only learn some of the original patterns from the GoF in a new light, you'll learn about some new ones just for games.
Patterns like the Game Loop and Dirty Flag will help you understand and program better games. If you can create a game, then you can create any type of software application. That's because most software has lots of time to do things.
Because of the high frame rates needed to make games look good, you have to be extra careful to write high-performance code with a game. If not, your game will drop frames and will look bad. The patterns in this book will help you to write code that runs faster.
How to Solve It: Modern Heuristics
How to Solve It is a special book to me. I'll admit it's rather strange. You probably won't find this book on anybody else's list of recommended books. But it's been fundamental in changing how I think about and approach programming.
You might never need some of the chapters in this book and that's okay. And some of the topics can be a bit hard to understand. The bigger lesson you'll learn from this book goes beyond any specific chapter. You'll learn how to think better and, well, how to solve problems. Stop relying on cookbooks to give you solutions and start figuring out how things really work.
I recommend you get How to Solve It and read it and skip anything you don't understand at first. You can always come back later. This book will grow with you because you'll keep getting value from it as your skills increase.
Mazes for Programmers
Mazes for Programmers is just a fun book. It's not available on Amazon so this link will take you directly to the publisher, The Pragmatic Bookshelf, where you can choose to get this book in either paper or electronic form. Or you can do what I did and get both.
This is a short and entertaining book that shows you how to write software to create mazes. You'll learn how to create several different types of mazes. Not just square, circle, and other shapes. But different mazes that are sometimes easy to solve and sometimes completely random. You'll learn how to make mazes that have long winding passages or mazes that have lots of short dead ends.
You can then include these mazes in your applications to give your customers a fun experience.
I've made a lot of podcast episodes and started out with a nice microphone called a Blue Snowball. It's one of the better USB microphones you can buy at your local electronic stores or on Amazon with this link. And you can use it to get great recordings. It's also not always blue. Mine is white.
The Blue Snowball microphone is super easy to use. It's USB so you just plug it into your computer and you're ready to record.
But it has a problem. Or not, depending on your needs. You see, the Blue Snowball picks up every sound in the room. So if your chair squeaks, then that squeak is going to be heard in your recording. Maybe this is exactly what you want. It can work really well when you want to record a group conversation and don't want to be passing around a microphone.
I thought that the more professional microphones were beyond my budget at the time. I'm really glad to have found this next microphone. It changed my whole approach to podcasting. And the recordings sound even better.
It's about the same price as my Blue Snowball microphone. But normal stores don't keep it in stock. You can get it on Amazon with the following link.
One of the really nice things about this ATR2100 microphone is that it has two types of connectors. You can either use the traditional microphone connector that professional recording equipment expect. Or you can do what I do and use it as a USB microphone that connects directly to your computer.
With the ATR2100 microphone that I use now for my podcasting, I need to make sure to speak directly into the microphone. You'll probably want to use a pop filter with this mic or your recording will have loud P and B sounds. Just saying the word "potato" into this mic without a pop filter will be unpleasant to listen to.
With the pop filter, though, you'll get a rich sound and you might even wonder if that's really your voice that you're hearing. This microphone is the secret to getting awesome and recording-studio quality recordings that don't have the background noise of the Blue Snowball.
The one secret to recording directly from your computer with any microphone that I've found after a lot of tries is how to eliminate strange clicking sounds. It's weird. The clicking will creep into the recording and would sometimes be so bad that I had to throw away the recording and start over.
It turned out to be nothing with the microphone. It was my computer downloading updates while I was recording. The computer would get busy and couldn't handle the recording at the same time. I found that just turning off my wifi during the recording stopped the problem.
If you need to keep your wifi turned on, then consider disabling auto updates when you need to record. And exit other applications so your computer will be able to devote as much time as possible to recording.
If you ever need to record sounds. Either because you're producing audio like in a podcast. Or you just need some sound effects for your game. Then consider either of these microphones. Just remember they have very different uses.
If you want to go out in the woods to record a background nature track for a game, then get the Blue Snowball. And if you want to speak directly into the microphone so it ignores anything else, then get the ATR2100 with a pop filter.
If you don't know what a pop filter is, it's really simple. It's not the foam cover. A lot of people think that's a pop filter. Foam covers are good for blocking out wind noises.
A pop filter is just a small screen type material stretched tight. It's usually round and held in place so it stays between the microphone and your mouth. Its job is to absorb the explosive P and B sounds so they don't arrive at the microphone like a shock wave.
I hope this help you record better audio,
I read a lot. And to get the most out of your learning, you'll be reading a lot too. Do you really want to carry around a book? Some of the books I recommend are heavy. They're great for keeping next to your desk. But you probably don't want to carry even one of them around.
I like Kindle books. And I use the Kindle app on my phone. It's almost always with me and I can read a few pages on the bus or train. Perfect.
Until you try to do this in the sun. Sometimes I like to read outside. Yes, coders do go outside sometimes.
A phone is just too reflective. I'm sure it's not just my eyes. You'll probably have the same problem. You just can't read on a phone in direct sunlight.
That's where having an actual Kindle will help you. These things, it's like they were made to read in the sun. The more light, the better. But they also work really great in the dark too. Try that with your phone.
This link will take you to Amazon where you can check on the current prices for the Kindle. It really is a great addition to your gadgets.
Here's to more comfortable reading,
P.S. The Kindle is called Paperwhite because the screen is just like white paper. You won't get color pictures on the Kindle but you can get pictures that are still easy to look at. The images will be in shades of grey instead of full color.
And the battery life is amazing on these things... Wow! My Kindle will stay charged for many days or even weeks before it needs to be charged again. It's perfect for traveling when you need several books but still need to travel light.