|
|
|
@ -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 |
|
|
|
|