More on this book
Community
Kindle Notes & Highlights
When you’re forced to be simple, you’re forced to face the real problem. When you can’t deliver ornament, you have to deliver substance.
think it’s because humor is related to strength. To have a sense of humor is to be strong: to keep one’s sense of humor is to shrug off misfortunes, and to lose one’s sense of humor is to be wounded by them. And so the mark — or at least the prerogative — of strength is not to take oneself too seriously.
When you have to climb a mountain you toss everything unnecessary out of your pack.
Wild animals are beautiful because they have hard lives.
GOOD DESIGN IS REDESIGN. It’s rare to get things right the first time. Experts expect to throw away some early work. They plan for plans to change. It takes confidence to throw work away. You have to be able to think, there’s more where that came from.
Nothing is more powerful than a community of talented people working on related problems.
Intolerance for ugliness is not in itself enough. You have to understand a field well before you develop a good nose for what needs fixing. You have to do your homework. But as you become expert in a field, you’ll start to hear little voices saying, What a hack! There must be a better way. Don’t ignore those voices. Cultivate them. The recipe for great work is: very exacting taste, plus the ability to gratify it.
The high-level language that you feed to the compiler is also known as source code, and the machine language translation it generates is called object code.
And there is another class of problems that inherently have an unlimited capacity to soak up cycles: image rendering, cryptography, simulations.
Bill Woods once told me that, as a rule of thumb, each layer of interpretation costs a factor of ten in speed.
When you choose technology, you have to ignore what other people are doing, and consider only what will work best.
In business, there is nothing more valuable than a technical advantage your competitors don’t understand. In business, as in war, surprise is worth as much as force.
You can’t let the suits make technical decisions for you.
The most convenient measure of power is probably code size. The point of high-level languages is to give you bigger abstractions — bigger bricks, as it were, so you don’t need as many to build a wall of a given size. So the more powerful the language, the shorter the program (not simply in characters, of course, but in distinct elements).
what “industry best practice” actually gets you is not the best, but merely the average.
If you want to win in a software business, just take on the hardest problem you can find, use the most powerful language you can get, and wait for your competitors’ pointy-haired bosses to revert to the mean.
Of all tyrannies, a tyranny exercised for the good of its victims may be the most oppressive. — C.S.LEWIS
Users are interested in response time. But another kind of efficiency will be increasingly important: the number of simultaneous users you can support per processor. Many of the interesting applications written in the future will be server-based, and the number of users per server is the critical question for anyone hosting such applications. In the capital cost of a business offering a server-based application, this is the divisor.
some applications, the processor will be the limiting factor, and execution speed will be the most important thing to optimize. But often memory will be the limit; the number of simultaneous users will be determined by the amount of memory you need for each user’s data.
It’s not when people notice you’re there that they pay attention; it’s when they notice you’re still there.
Also, as a general rule, you can at any given time get away with changing more than you think. Introducing change is like pulling off a bandage: the pain is a memory almost as soon as you feel it.
The difference between design and research seems to be a question of new versus good. Design doesn’t have to be new, but it has to be good. Research doesn’t have to be good, but it has to be new. I think these two paths converge at the top: the best design surpasses its predecessors by using new ideas, and the best research solves problems that are not only new, but worth solving. So ultimately design and research are aiming for the same destination, just approaching it from different directions.
When you design something for a group that doesn’t include you, it tends to be for people you consider less sophisticated than you, not more sophisticated. And looking down on the user, however benevolently, always seems to corrupt the designer. I suspect few housing projects in the US were designed by architects who expected to live in them.
Building something by gradually refining a prototype is good for morale because it keeps you engaged.
Companies often wonder what to outsource and what not to. One possible answer: outsource any job that’s not directly exposed to competitive pressure, because outsourcing it will thereby expose it to competitive pressure. (I mean “outsource” in the sense of hiring another company to do it, not the more specific sense of hiring an overseas company.)
you want to create wealth (in the narrow technical sense of not starving) then you should be especially skeptical about any plan that centers on things you like doing. That is where your idea of what’s valuable is least likely to coincide with other people’s.