This book lays out the general design of a game engine that can be used to make a classic side scroller, and provides you with a sloppy implementation of said engine. It also suggests some open source tools for level design and parsing.
The code in this book is buggy, the coding style is inconsistent, and there’s nothing about logging, testing, etc., so this book will not really teach you how to properly develop software, games or otherwise.
As far as I know this is the only book that teaches you game design using SDL2. It doesn’t do a great job at either, but since it’s the only book that does both, I think it’s still worth reading. But only if you have experience with neither game design or SDL2, you like to use open source libraries, and are comfortable enough with C++ development that you can debug and polish the code yourself.