More on this book
Community
Kindle Notes & Highlights
Someone who thinks his feet naturally hurt is not going to stop to consider the possibility that he is wearing the wrong size shoes.
most schools do such a bad job of teaching that the kids don’t really take it seriously — not even the smart kids. Much of the time we were all, students and teachers both, just going through the motions.
justin spratt liked this
The problem with most schools is, they have no purpose. But hierarchy there must be. And so the kids make one out of nothing.
the twin horrors of school life, the cruelty and the boredom, both have the same cause.
Misrule breeds rebellion; this is not a new idea. And yet the authorities still for the most part act as if drugs were themselves the cause of the problem. The real problem is the emptiness of school life.
School is a strange, artificial thing, half sterile and half feral.
for whom computers are just a medium of expression, as concrete is for architects or paint for painters. It’s as if mathematicians, physicists, and architects all had to be in the same department.
Good software designers are no more engineers than architects are.
But for the hackers this label is a problem. If what they’re doing is called science, it makes them feel they ought to be acting scientific.
The way to create something beautiful is often to make subtle tweaks to something that already exists, or to combine existing ideas in a slightly new way.
Over time, beautiful things tend to thrive, and ugly things tend to get discarded.
Hackers need to understand the theory of computation about as much as painters need to understand paint chemistry.
the best sources of ideas are not the other fields that have the word “computer” in their names, but the other fields inhabited by makers.
You should figure out programs as you’re writing them, just as writers and painters and architects do.
Everyone in the sciences secretly believes that mathematicians are smarter than they are.
Universities and research labs force hackers to be scientists, and companies force them to be engineers.
Only a small percentage of hackers can actually design software, and it’s hard for the people running a company to pick these out.
If you want to make money at some point, remember this, because this is one of the reasons startups win. Big companies want to decrease the standard deviation of design outcomes because they want to avoid disasters. But when you damp oscillations, you lose the high points as well as the low. This is not a problem for big companies, because they don’t win by making great products. Big companies win by sucking less than other big companies.
if you can figure out a way to get in a design war with a company big enough that its software is designed by product managers, they’ll never be able to keep up with you.
The place to fight design wars is in new markets, where no one has yet managed to establish any fortifications.
having the same people both design and implement the product.
have a benchmark for this, because I once had to leave a board meeting to have some cavities filled. I remember sitting back in the dentist’s chair, waiting for the drill, and feeling like I was on vacation.
Prices are determined by supply and demand, and there is just not as much demand for things that are fun to work on as there is for things that solve the mundane problems of individual customers.
Acting in off-Broadway plays doesn’t pay as well as wearing a gorilla suit in someone’s booth at a trade show.
You learn to paint mostly by doing it. Ditto for hacking.
Maybe it would be good for hackers to act more like painters, and regularly start over from scratch, instead of continuing to work for years on one project, and trying to incorporate all their later ideas as revisions.
The other way makers learn is from examples.
Hackers, likewise, can learn to program by looking at good programs
Another example we can take from painting is the way that paintings are created by gradual refinement. Paintings usually begin with a sketch.
It’s unrealistic to expect that the specifications for a program will be perfect.
I think we should be just as worried about premature design
Relentlessness wins because, in the aggregate, unseen details become visible.
All those unseen details combine to produce something that’s just stunning,
Great software, likewise, requires a fanatical devotion to beauty.
When it comes to code I behave in a way that would make me eligible for prescription drugs if I approached everyday life the same way.
Sometimes you get excited about a new project and you want to work sixteen hours a day on it. Other times nothing seems interesting.
The right way to collaborate, I think, is to divide projects into sharply defined modules, each with a definite owner, and with interfaces between them that are as carefully designed and, if possible, as articulated as programming languages.
Understanding how someone else sees things doesn’t imply that you’ll act in his interest; in some situations — in war, for example — you want to do exactly the
people are what people are interested in.
One way to tell how good people are at empathy is to watch them explain a technical matter to someone without a technical background.
Programs should be written for people to read, and only incidentally for machines to execute.
Fashion is mistaken for good design; moral fashion is mistaken for good.
do you have any opinions that you would be reluctant to express in front of a group of your peers?
If you believe everything you’re supposed to now, how can you be sure you wouldn’t also have believed everything you were supposed to if you had grown up among the plantation owners of the pre-Civil War South, or in Germany in the 1930s — or among the Mongols in 1200, for that matter?
The statements that make people mad are the ones they worry might be believed. I suspect the statements that make people maddest are those they worry might be true.
My hypothesis is that the side that’s shocked is most likely to be the mistaken one.
It’s easier to get people to fight for an idea.
The people you can say heretical things to without getting jumped on are also the most interesting to know.
But that disobedience is a byproduct of the qualities that make them good programmers.