Too Long; Didn't Read
Developers often talk about software’s “most difficult problems”: cache invalidation and naming things. It’s a tongue-in-cheek joke with a lot of truth. It’s very difficult to take an abstract concept and boil it down to a single name, and that’s something that developers have to do <em>constantly</em> in their day to day work. Be it code they write or talking to a colleague or a group, one of the most important things a developer can do is learn to articulate abstract ideas—so important in fact, it’s often something that’s tested in interviews.