diff --git a/content/reviews/books/97-things-every-programmer-should-know.md b/content/reviews/books/97-things-every-programmer-should-know.md index 4dd6beb..81e3550 100644 --- a/content/reviews/books/97-things-every-programmer-should-know.md +++ b/content/reviews/books/97-things-every-programmer-should-know.md @@ -1,6 +1,7 @@ +++ title = "97 Things Every Programmer Should Know: Collective Wisdom from the Experts - Kevlin Henney" date = 2020-03-22 +updated = 2020-10-26 [taxonomies] tags = ["books", "reviews", "it", "3 stars", "2020 challenge"] @@ -35,6 +36,48 @@ some pointers on where to start, but for people who are in the area for some time (and may already read some books/posts about the topics), it may feel a bit like a waste of time. +## Highlights + +> Repetition in Process Calls for Automation + +> Repetition in Logic Calls for Abstraction + +> learn much faster by writing test code + +> ANYONE WHO HAS WORKED IN SOFTWARE LONG ENOUGH has heard questions like this: +> I’m getting exception XYZ. Do you know what the problem is? + +*Note*: I get that *a lot*! + +> As you work on a project, you will understand more of the problem domain +> and, hopefully, find more effective ways of reaching the goal + +> Hint: Write code because it adds value, not because it amuses you.) + +*Note*: Well, and what actually "adds value"? Does refactoring something adds +value, if the only thing it does is making it easier for *me* to understand? + +> That isn’t YAGNI. If you don’t need it right now, don’t write it right now.) + +> The primary purpose of software estimation is not to predict a project’s +> outcome; it is to determine whether a project’s targets are realistic enough +> to allow the project to be controlled to meet them + +> Try to learn from other people’s mistakes, so that your code won’t contain +> the same ones. + +*Note*: Work on new mistakes :) + +> IN ALL BUT THE SMALLEST DEVELOPMENT PROJECT, people work with people. + +> Compared to “hard” engineering, the software development world is at about +> the same place the bridge builders were when the common strategy was to +> build a bridge and then roll something heavy over it. If it stayed up, it +> was a good bridge. If not, well, time to go back to the drawing board + +> A bridge builder would never hear from his boss, “Don’t bother doing +> structural analysis on that building—we have a tight deadline. + --- [^1]: No, I'm not saying that Uncle Bob isn't worth getting 3 spots, so maybe