The Problem With Software: Why Smart Engineers Write Bad Code (The MIT Press)
Rate it:
Kindle Notes & Highlights
8%
Flag icon
“It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.”
11%
Flag icon
Learning “in the streets,” textbooks as “little more than reference manuals”—indeed! Weinberg was making the same point I am making in this book, forty-plus years later: most programmers are not properly educated in how to program, and it shows in their code.
14%
Flag icon
Modifying existing code is what a professional programmer spends the vast majority of their time doing, but my work at school gave me little preparation for sitting down with a large program and figuring out what the heck the original author was thinking—or if they had done something right, using their code as an example.
16%
Flag icon
Unfortunately, humility is not something that programmers tend to have thrust on them. Which brings us to the real problem with programmers being self-taught: it makes them arrogant.
77%
Flag icon
Knuth, Mills, and Brooks all had PhDs in mathematics. As the son of a mathematician, I can state with confidence that despite possibly having a reputation for thinking deep thoughts in isolation, mathematicians are extremely collaborative and spend a lot of time meeting to exchange ideas, almost always building on the work of those who have gone before.15
82%
Flag icon
“values of safety and conscientiousness prevailed, and the rock star status of the test pilots was gone.”6 The universe applies a natural corrective to test pilots who fail to adapt, but no such effect exists in software; the middle and upper management of software companies are full of successful self-taught programmers.
82%
Flag icon
Failures of ignorance we can forgive. If the knowledge of the best thing to do in a given situation does not exist, we are happy to have people simply make their best effort. But if the knowledge exists and is not applied correctly, it is difficult not to be infuriated. … It is not for nothing that philosophers gave these failures so unmerciful a name—ineptitude.7
87%
Flag icon
“We live in countries where you need a license to cut hair, but you don’t need anything to write code for safety critical software or other mission critical software.”46 McConnell helpfully supplied a list of over thirty professions that require licensing in the state of California, including custom upholsterer and mule jockey.