Software craft
The Pragmatic Programmer
Andrew Hunt and David Thomas
Orthogonal systems reduce change risk and coordination cost; disciplined craft keeps that advantage intact.
14 Readwise highlights · In book order
Highlights
As a programmer, you are part listener, part advisor, part interpreter, and part dictator.
You shouldn't be wedded to any particular technology, but have a broad enough background and experience base to allow you to choose good solutions in particular situations.
We who cut mere stones must always be envisioning cathedrals. —Quarry worker's creed
"Kaizen" is a Japanese term that captures the concept of continuously making many small improvements. It was considered to be one of the main reasons for the dramatic gains in productivity and quality in Japanese manufacturing and was widely copied throughout the world. Kaizen applies to individuals, too. Every day, work to refine the skills you have and to add new tools to your repertoire.
"When I use a word," Humpty Dumpty said, in rather a scornful tone, "it means just what I choose it to mean—neither more nor less." • Lewis Carroll, Through the Looking-Glass
“you can change your organization or change your organization.”
One broken window, left unrepaired for any substantial length of time, instills in the inhabitants of the building a sense of abandonment—a sense that the powers that be don't care about the building. So another window gets broken. People start littering. Graffiti appears. Serious structural damage begins. In a relatively short space of time, the building becomes damaged beyond the owner's desire to fix it, and the sense of abandonment becomes reality.
Don't leave "broken windows" (bad designs, wrong decisions, or poor code) unrepaired.
An investment in knowledge always pays the best interest. • Benjamin Franklin
In computing, the term has come to signify a kind of independence or decoupling. Two or more things are orthogonal if changes in one do not affect any of the others.
You get two major benefits if you write orthogonal systems: increased productivity and reduced risk.
Tools amplify your talent. The better your tools, and the better you know how to use them, the more productive you can be.
modern computer systems are still limited to doing what you tell them to do, not necessarily what you want them to do.
It doesn't really matter whether the bug is your fault or someone else's. It is still your problem.