Should one take this book’s content at face? Is the author legit? It is normal to question the legitimacy of who pretend to give advice. So in order to help you gauging the credibility of this book, I think it is important to tell a bit about me.
First of all, I read a lot of code. I read code almost everyday, on GitHub, on blogs, on StackOverflow, Reddit, and on other forums. I read code written by me or others, from my personal projects, from my employer, or from random projects I find on the Internet. All this code is displayed either on my laptop, or in a terminal connected to a remote server, or on my phone. Reading is undoubtedly the main part of my programming activities.
On the productive side, I write code as a hobby since 1994, and professionally since 2005. I have at least half a million of C++ behind me, just counting the lines of code that survived in past projects I could find.
I also have coded a lot of Bash, a good share of Java, a bit of HTML and a bit of JavaScript. Additionally, in a more anecdotal way, I coded some C# programs, some ActionScript, some Pascal and Delphi ones, a small compiler in Eiffel, some pet projects in Visual Basic too, BASIC a long time ago, on a Commodore 128 and later under DOS. I also did a bit of Objective-C.
Let’s face it though, a good share of this code was crap.
Some code did end up well nonetheless. One project I am proud of is a mobile game written in C++, which was played by more than 500’000 people every day during more than three years. Aside from that, I also took part in projects that were struggling to start and brought them into a viable product. So I guess I made stuff that does not suck.
When I code I tend to think about long term and architecture. I try not to take any shortcut and to answer the problem without attempting to solve the future. I code in small boxes, many, with the intent that they can be broken, removed, replaced, without changing everything. It wasn’t always like that but that’s how I work today.
Finally, I am certainly not the type to rush for the new thing. I like tools and practices that have been well tested, so you probably won’t hear me telling you to use this new thing from C++42 because it’s new and it will show that you are modern and blah blah blah.
Convinced? Anyway, I hope you will find something useful in this book :)