Jump to ratings and reviews
Rate this book

Naming Things: The Hardest Problem in Software Engineering

Rate this book
Naming is one of the most difficult and enduring challenges in software engineering, but few of us do it well. This practical and comprehensive book provides a set of principles, rules, and application guidelines for efficiently choosing good names in your code.

These skills can be used throughout your career, and they’re useful for every programming language, technical domain, and experience level. The book incorporates real-world examples to illustrate how to choose good names and avoid bad names.

This book for how to choose good names and avoid bad namesPrinciples to help you remember the general qualities of good namesReal-world examplesGuidelines on the application of these rules and principles, including balancing tradeoffs, renaming best practices, and choosing domain-specific namesTips on how to develop your naming skills throughout your career
Changes in the second concisenessRemoval of less important contentGrammatical improvementsFormatting improvements

100 pages, Kindle Edition

Published January 24, 2023

66 people are currently reading
274 people want to read

About the author

Tom Benner

1 book3 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
43 (35%)
4 stars
50 (41%)
3 stars
23 (19%)
2 stars
4 (3%)
1 star
1 (<1%)
Displaying 1 - 17 of 17 reviews
Profile Image for Vicki.
531 reviews241 followers
June 28, 2023
Really great concise read on all the rules we think about implicitly but don’t state.
Profile Image for Sebastian Gebski.
1,197 reviews1,372 followers
December 26, 2023
Nice, brief lecture on the common & widespread linguistic conventions for naming "things" while writing software. No, it's NOT a book on notations (Hungarian, etc.) - it's much more universal & also tech-agnostic. It does answer the question of how to properly name a variable, a function, or a class. But it covers the syntactic aspects, not semantics!

How useful is that?
1. on one hand - very useful because the rules presented here are easily comprehensible & non-controversial
2. on the other hand, I miss A LOT of practical issues when naming was some sort of an issue, e.g., how to name "connecting" tables in many:many relationships; such issues do happen all the time & some guidance here would be more than appreciated - especially for starters
3. personally, I think that the main issues with naming are caused by semantics - the only advice the book presents here is "try Domain Driven Design" - which may be a reasonable direction (Ubiquitous Language!), but DDD is very ethereal itself, so I'd expect some more practical guidance.

Good stuff, but slightly "oversold" (overpromised).
Profile Image for Bugzmanov.
234 reviews100 followers
December 27, 2023
More of a long blog post shaped as a book. Overall pretty pragmatic and prescriptive, but also very subjective and surface level. While I pretty much agree with most of it, I kept thinking "damn there is way more depth to this" or "this requires way more caveats".

Things I liked the most:
- mentioning that different languages and ecosystems have different conventions (the book mostly advocates for pythonic style)
- nice jab about java people writing enterprise java in any language they try.

For those who are interested in topic, following posts might be entertaining:
https://optimal-codestyle.github.io/
https://www.linguistic-antipatterns.com
https://www.pathsensitive.com/2022/03...
Profile Image for Héctor Iván Patricio Moreno.
433 reviews22 followers
November 27, 2023
Es una muy buena introducción a cómo crear nombres de identificadores que sean útiles, además de la importancia de hacerlos.

Creo que no estoy de acuerdo con algunos de ellos, porque, como todo en el desarrollo de software actualmente, creo que están sujetas a la experiencia de los que están dando el consejo. A pesar de eso, creo que da muy buenos argumentos para poner atención al nombrado de cosas e intenta soportar con buenos razonamientos y ejemplos las cosas que propone.

Al ser una lectura tan corta, la recomendaría a todos los desarrolladores de software que quieran escribir buenos programas.
Profile Image for Ravi Sinha.
317 reviews11 followers
July 14, 2023
Short, sweet, and complete. Nice to have a centralized coverage of this ever important topic. Took off one star because it's not all that original, and borrows heavily from other classics in the literature such as Code Complete, Clean Code, Refactoring, the Pragmatic Programmer, and the like. Does provide some good examples and unified guidelines though, so I appreciate the effort.
Profile Image for Jakub.
270 reviews
January 20, 2024
A blogpost that ended as 100page long book. It’s amazing how much we can write about something that could and should not be extended to that length.

I agree with what’s is said in the book, mostly, hance 3 starts. I think that making this more concise would greatly benefit a book/blog post.
Profile Image for Timon Ruban.
156 reviews26 followers
April 26, 2024
I feel that only people that already think naming is important will read this book and this book holds no surprises or insights for people that already think naming is important. Preaching to the choir.
144 reviews6 followers
December 17, 2024
A rather straightforward, if not too thorough, review of best practices for naming things while coding. Great on general philosophy, but short on practical steps as the rules of the language and codebase will ultimately provide some influence.
Profile Image for Juan Pedrajas Mendoza.
20 reviews
April 19, 2025
Información útil condensada y justificada con un enfoque extremadamente ingenieril. Trata un tema impresionante impactante de fotma accionable. Muy recomendado a cualquier ingeniero que trabaje con software.
9 reviews
May 26, 2025
Most stuff are things I already know. And lots of filler sentences. There are good principles, but lack in depth examples. For example, it mentioned calling out “courteously” when someone uses a wrong naming. But I’m curious what exactly is considered courteous.
Profile Image for Guillermo.
167 reviews9 followers
November 23, 2023
A small but basic booklet for a difficult subject. Not a difficult read, but a must for any would be or experienced programmer.
2 reviews
March 10, 2024
This book is a quick read, yet insightful and straightforward. Highly recommended, especially if you're new to software engineering.
Profile Image for Rajasuba Subramanian.
30 reviews4 followers
April 28, 2025
The core principles emphasized in this book are:

- Communicate Clearly and Concisely
- Maintain Consistency
- Prioritize Understandability

5/5, thoroughly enjoyed reading it.
8 reviews
June 5, 2025
A fun read, naming things in programming is an important thing for a developer to learn how to do, given it's a very short book, I would recommend it to anyone who is interested. A fun book to read
Profile Image for Lisa.
111 reviews1 follower
February 3, 2024
Yes. Names are hard, I could read this 10 times and still learn something new
Displaying 1 - 17 of 17 reviews

Can't find what you're looking for?

Get help and learn more about the design.