Books I Like


coding nerd

Books in 2022??

Books are good. I learned programming with books. Youtube wasn’t so big at the time.

I don’t read fiction and I don’t read books all that much, but I read more books than average. My time/boredom trick for books: Nobody said you have to read every word.

Here are some books I can personally recommend. I will give the Amazon Canada links.

Learn Programming

Find out more on this post from 5 years ago!

The most important link in the post: https://old.reddit.com/r/learnprogramming/wiki/faq


C++ Without Fear

Links: https://www.amazon.ca/Without-Fear-Beginners-Guide-Makes/dp/0134314301

This is not a well-known book, but I have to mention it as it is actually the book from which I started getting a good understand of programming. Variables, control structures, functions, arrays. OOP came later for me.


Programming: Principles and Practice Using C++

Link: https://www.amazon.ca/Programming-Principles-Practice-Using-2nd/dp/0321992784

This brick of scholarly babble is written by Bjarne Stroustrup, the author of C++. Within the context of its writer, it is actually quite practical. If you’re looking to understand programming/C++ comprehensively and you’re patient, this book pays off.


Head First Java

Link: https://www.amazon.ca/Head-First-Java-Brain-Friendly-Guide/dp/0596009208

Head First are a series of books designed to retain the reader’s attention. It emphasizes practice. Head First Java may not be the greatest for programming beginners, but it’s really good for understanding Java and object-oriented programming.

O’Reilly books are also generally really good in computer science and programming.


Head First Object-Oriented Analysis & Design

Link: https://www.amazon.ca/Head-First-Object-Oriented-Analysis-Design/dp/0596008678

The mix of Head First’s approach to human memory coupled with OOP’s human approach to code makes for a great book when big words like polymorphism are thrown around at cocktail parties.

If classes, interfaces, implementations, encapsulation and what’s the point of it all confuses you, this book will sort it out.

To LEARN programming: Books are nice, practice is better!


Software Engineering

These books are good once you have a solid grasp of how to solve programming problems, created something (like a Spigot plugin or Discord bot) or automated away your daily workflows.


Clean Code

Link: https://www.amazon.ca/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882

This is a famous book. A bit polarized actually, but I like it because it taught me a good justification to not put comments in my code. Joking aside it’s a yearly read for sure to remind yourself that you can do better.


Clean Architecture

Link: https://www.amazon.ca/Clean-Architecture-Craftsmans-Software-Structure/dp/0134494164

By the same author as Clean Code. This is way less practical, but if you’re a fan of big words, there’s stuff to learn here.


Code That Fits in Your Head

Link: https://www.amazon.ca/Code-That-Fits-Your-Head/dp/0137464401

This is a different author than Clean Code but in the same series and very recent (2021). The title reasonated with me as I thought it was about synthesis of code expression, but it’s actually a wealth of good advice about programming in an organization. Writing code for others to read, from team processes to java packages organization and a healthy dose of humanity.


Site Reliability Engineering

Link: https://www.amazon.ca/Site-Reliability-Engineering-Production-Systems/dp/149192912X

This is nearly an advertisement for working at Google, but there is sensible advice for organizations of smaller scale aswell. It’s essays rather than a guide, so it can serve as entertainment too!


Designing Data-Intensive Applications

Link: https://www.amazon.ca/Designing-Data-Intensive-Applications-Reliable-Maintainable

Most software out there doesn’t measure it’s userbase in concurrent users, but if you’re running a website, live service or Minecraft, this book showcases the big ideas behind scalability. Human aspect, databases, serialization, distributed systems, stream processing… it’s a bunch of words but with some knowledge of network development and http, words like “stream processing” turn into “Hadoop/MapReduce” and then the book is quite useful.


Soft Skills

Link: https://www.amazon.ca/Soft-Skills-software-developers-manual/dp/1617292397

This book isn’t really about coding. It has a lot of fluff. It’s been recommended to me and in that sense, maybe my entourage should tell you if it’s a good book or not. I liked it!


Specialized Programming

The following books are for more experienced developers looking to branch out into a new domain, or at least like me, get an overview of what it’s all about.


Learn OpenGL

Link: https://www.amazon.ca/dp/9090332561

It’s the paper version of this really good tutorial: https://learnopengl.com/

I am still in no way an expert on OpenGL. Implementing shaders still intimidate me as a lot of them are only shared in white papers with too many big words, but hey I can render cubes and mod Minecraft.


Computer Graphics with OpenGL

Link: https://www.amazon.ca/Computer-Graphics-Open-GL-4th/dp/0136053580

This large book goes at the root of computer graphics. In fact, the algorithm used in Pixel Painters to trace lines in-between interact packets was taken from this book. The book goes in depth on what work OpenGL is saving you.


Understanding Compression

Link: https://www.amazon.ca/Understanding-Compression-Data-Modern-Developers/dp/1491961538

This smol book offers down-to-earth explanations on compression algorithms from ye old and modern ones too. I like compression.


Logic and Computer Design Fundamentals

Link: https://www.amazon.ca/Logic-Computer-Design-Fundamentals-5th/dp/0133760634

This isn’t a book, it’s a university textbook. I picked it up used in some university library. What’s fascinating about this book is the raw density of information presented, as it’s meant to be accompagnied with classes. But if you instead try and apply its topics on redstone or some other game, it’s a weaponized brain squeezer.


Physics for Game Developers

Link: https://www.amazon.ca/Physics-Game-Developers-Science-realistic-ebook/dp/B00CB30Y46

This book for me is neither a reference or a guide, but rather a summary of what physics engines are saving me and thus how to use them and appreciate the features they provide. This book includes the physics classics like rigid bodies, collisions, projectiles and whatnot, but goes above and beyond including how to structure an engine and talking about hardware like touch screen, pressure screens and optical reading.


Game Hacking

Link: https://www.amazon.ca/Game-Hacking-Developing-Autonomous-Online/dp/1593276699

It’s a weird one for me to recommend, but starts from cheat engine and dives into the memory model of games and how to interact with it to modify software through reverse-engineering, code injection and even includes a pathfinding primer. The title/cover is a marketing thing but it has actual info inside.

My 2 cents is that it’s better to create games than to crack them.


Game Design

Books about game design are much rarer than programming books. It’s actually a newer field!

Level Up! The Guide to Great Video Game Design

Link: https://www.amazon.ca/Level-Guide-Great-Video-Design/dp/1118877160

This is a good starter on the kind of thinking required in game design. It reminds me of Extra Credits. This book can be read by literally anybody in any field.


The Art of Game Design: A book of Lenses

Link: https://www.amazon.ca/Art-Game-Design-Lenses-Third/dp/1138632058

The title is important here: Lenses. Basing the creative process on finding the box and thinking outside of it, looking at the box from as many angles as possible to find its limits is a must.


Gamification by Design

Link: https://www.amazon.ca/Gamification-Design-Implementing-Mechanics-Mobile/dp/1449397670

This isn’t a game design book, it’s a tiny primer about how to gamify non-gaming products. For example achievements on Khan Academy. It can be helpful within games to build a meta-game and a meta-meta-game, and also to keep in mind what is or isn’t annoying to players/users.


Pattern Language for Game Design

Link: https://www.amazon.ca/Pattern-Language-Design-Christopher-Barney/dp/0367367726

Much like lenses, this is about patterns, another way to describe open-minded ideation. Applying the ‘15 Fundamental Properties of Wholeness’ from an architecture book is a little bit too guru-lite for me. But, much like programming patterns, just keeping them in mind while creating stuff can help. Plus, this book is well sourced in a wealth of actual games.


Narrative Tactics for Mobile and Social Games

Link: https://www.amazon.ca/Narrative-Tactics-Mobile-Social-Games-ebook/dp/B08LG1KV6P

The title reminded me of “Don’t you guys have phones?”, but it’s actually a collection of PhD essays on storytelling in games. A lot of the content is applicable to all games.

Management

Eek!


Managing Humans

Link: https://www.amazon.ca/Managing-Humans-Humorous-Software-Engineering/dp/1484221575

This book is a fun read because you don’t actually need to be a manager of any kind of appreciate it. It can be used as entertainment!


Peopleware

Link: https://www.amazon.ca/Peopleware-Productive-Projects-Teams-3rd/dp/0321934113

It’s another fun read about understanding behavior of people, although it’s more from a HR point-of-view and slightly more formal than Managing Humans (which is from a dev pov). It’s a well-known book and has a wealth of topics and tidbits anyway.


The Phoenix Project

Link: https://www.amazon.ca/Phoenix-Project-DevOps-Helping-Business/dp/1942788290

This is actually a pseudo-narritive book about software projects. It’s like they took teachings from the Mythical Man Month, modernized it to a DevOps era (although it’s so much IT in there) and built a story of parables around it.

I guess it’s kind of like… the new testament?? Take some and leave some, but can be useful.


A Playful Production Process

Link: https://www.amazon.ca/Playful-Production-Process-Designers-Everyone/dp/0262045516

At the tri-section of design, development (incl. art) and management is production. There is weight to the words in this book because it’s clearly written by someone with experience in the role. Someone who maybe read or experienced Blood, Sweat and Pixels and decided to make a change. Beyond project management, it’s a book about how game design is entertwined in the production/iteration process and how to scale that process.


Quick Mentions

Books that aren’t education or development, but which I remember.


How to Teach RELATIVITY to Your Dog

Link: https://www.amazon.ca/How-Teach-Relativity-Your-Dog/dp/0465023312

Literally Einstein wrote about relativity. This is the simpler tutorial to Interstellar.


Never Split the Difference

Link: https://www.amazon.ca/Never-Split-Difference-Negotiating-Depended/dp/1847941494

It’s a bit like Carnegie’s famous book but without the backwards thinking. I don’t know much about negociating except that most people I know hate it. Might be because of the backwards thinking.


The Art of War

Link: https://www.amazon.ca/Other-Classics-Eastern-Philosophy-Leather-bound-ebook

It’s The Art of War, but this specific edition has other tales and old eastern philosophy texts. Sun Tzu’s book is actually relatively short and an easy read. What’s funny about this book is how some of the lessons in there are quite eternal. The main thing I learned for League of Legends is that victory is about making less mistakes than your enemy.


Maus

Link: https://www.amazon.ca/Complete-Maus-Survivors-Tale/dp/0679406417

It’s a great comic about a greatly uncomical event.


If you find me somewhere or maybe on Twitter, tell me if you got one of those books or if there’s a book you think I should get!