Select a Resource
All the links below are ordinary links. We don’t earn any affiliate commisions when you click through and make a purchase using these links.
The first book in this list is one that I wrote. It takes the online classes I've been teaching and puts everything into a book.
Following my book are the books I've found most useful. You can read my comments about each one.
I hope you get as much benefit from these books as I have over the years,
This is a physical hardcover book. Start from the beginning by getting your computer ready for coding. You can use a desktop or laptop computer running Windows or Linux, or…
This is a downloadable PDF eBook. Start from the beginning by getting your computer ready for coding. You can use a desktop or laptop computer running Windows or Linux, or…
C++ Programming Language
Click here to get this book 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 same edition published in 2014 and find it very useful even though it's getting a bit old. You'll find answers in this book that will help explain questions when you can't find the answer anywhere else.
C++ Crash Course
Click here to get this book. I first came across this book at CppCon 2019 and was impressed with a presentation by the author. You can even listen to an interview with the author, Josh Lospinoso, here.
This book is written in a different style than I'm normally used to. Instead of introducing a topic just to put it off until several chapters later, Josh takes a more linear approach to explaining topics. I like it. I hope this book benefits you too.
I also noticed right away how complete this book is. This is one crash course that doesn't cut any corners!
C++17 The Complete Guide
Click here to get this book. This is another book that I first encountered at CppCon in 2019. In fact, this book is related to CppCon. I also had the chance to talk with the author, Nicolai Josuttis. He has been involved with every C++ standard since the beginning and you can listen to how the standardization process has changed over the years here.
I have to say that Nicolai really knows what he's talking about and I learned something new within the first 5 minutes of reading this book. That's exciting! Make sure to get this book and the one below both from the same author.
C++ Standard Library
Click here to get this book. It's 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.
Click here to get this book on Design Patterns. I first read this book in the mid 1990's and recommend this book to everybody who wants to create better designs. 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.
If you haven't read this book yet, click above to 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++
Click here to get this book. This 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
Click here to get this book and extend your knowledge of design 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
Click here to get this book. 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 read How to Solve 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. This link will take you 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 online 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.
Normal stores don't keep it in stock. You can get it online 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 started using 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.
Another thing to remember with the ATR2100 is that you'll get a low recording level when connecting the microphone directly to your computer over USB. This is not a defect. It seems to be done on purpose from the manufacturer. All you have to do is record very close to the microphone. That's why the pop filter is so important.
And then you'll need to amplify the recording in your audio recording software so the playback volume is loud enough to hear. I've not had any problems with quality. It's just an extra step that needs to be done.
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 and headphones.
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. They can work a little as a pop filter but they're better with wind. And if you want even better wind protection, then get one of the furry covers.
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 helps you record better audio,