More on this book
Community
Kindle Notes & Highlights
If you’re not working hard, you’re probably wasting your time.
Wild animals are beautiful because they have hard lives.
GOOD DESIGN LOOKS EASY. Like great athletes, great designers make it look easy. Mostly this is an illusion. The easy, conversational tone of good writing comes only on the eighth rewrite.
In science and engineering, some of the greatest discoveries seem so simple that you say to yourself, I could have thought of that. The discover...
This highlight has been truncated due to consecutive passage length restrictions.
Perhaps what practice does is train your unconscious mind to handle tasks that used to require conscious thought.
When people talk about being in “the zone,” I think what they mean is that the spinal cord has the situation under control. Your spinal cord is less hesitant, and it frees conscious thought for the hard problems.
It’s not cheating to copy.
Attitudes to copying often make a round trip. A novice imitates without knowing it; next he tries consciously to be original; finally, he decides it’s more important to be right than original.
I think the greatest masters go on to achieve a kind of selflessness. They just want to get the right answer, and if part of the right answer has already been discovered by someone else, that’s no reason not to use it.
if you just try to make good things, you’ll inevitably do it in a distinctive way,
Michelangelo was not trying to paint like Michelangelo. He was just trying to paint well; he couldn’t help painting like Michelangelo.
to make Leonardo you need more than his innate ability. You also need Florence in 1450.
Nothing is more powerful than a community of talented people working on related problems.
At any given time there are a few hot topics and a few groups doing great work on them, and it’s nearly impossible to do good work yourself if you’re too far removed from one of these centers.
theory. If you want to discover great new things, then instead of turning a blind eye to the places where conventional wisdom and truth don’t quite meet, you should pay particular attention to them.
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.
If you need code to be super fast, it’s better to stay close to the machine.
adding things without looking at what was already there tends to produce the same results in programs that it does in buildings.
For the little, everyday problems that programmers spend so much of their time solving, libraries are probably more important than the core language.
many historians believe that the wars were a byproduct of the forces that created the
staying close to the main branches is a useful heuristic for finding languages that will be good to program in now.
in buying a house you should consider location first of all. Everything else you can fix later, but you can’t fix the location.
Languages evolve slowly because they’re not really technologies. Languages are notation.
I can already tell you what’s going to happen to all those extra cycles that faster hardware is going to give us in the next hundred years. They’re nearly all going to be wasted.
I’m like someone who grew up poor and can’t bear to spend money even for something important, like going to the doctor.
An essay, in the original sense, is something you write to try to figure something out.
Inefficient software isn’t gross. What’s gross is a language that makes programmers do needless work.
it is true that there are a lot of things that those who teach can’t do.
the distinction between acceptable and forbidden topics is usually based on how intellectual the work sounds when described in research papers,
When you learn to drive, one of the principles they teach you is to align the car not by lining up the hood with the stripes painted on the road, but by aiming at some point in the distance. Even if all you care about is what happens in the next ten feet, this is the right answer.
We knew that everyone else was writing their software in C++ or Perl. But we also knew that that didn’t mean anything. If you chose technology that way, you’d be running Windows.
When you choose technology, you have to ignore what other people are doing, and consider only what will work best.
The problem here is, average performance means you’ll go out of business.
if you’re running a startup, you had better be doing something odd. If not, you’re in trouble.
when you’re writing software that only has to run on your own servers, you can use any language you want.
because Lisp was so high-level, we wouldn’t need a big development team, so our costs would be lower.
our development cycle was so fast that we could sometimes duplicate a new feature within a day or two of a competitor announcing it in a press release. By the time journalists covering the press release got round to calling us, we would have the new feature too.
We were just able to develop software faster than anyone thought possible.
there is nothing more valuable than a technical advantage your competitors don’t understand.
A startup should give its competitors as little information as possible.
language available. And the reason everyone doesn’t use it is that programming languages are not merely technologies, but habits of mind as well, and nothing changes slower.
if you have a choice of several languages, it is, all other things being equal, a mistake to program in anything but the most powerful
in general, for application software, you want to be using the most powerful (reasonably efficient) language you can get, and using anything else is a mistake, of exactly the same kind, though possibly in a lesser degree, as programming in machine language.
Blub is good enough for him, because he thinks in Blub.
programming languages are not just technology, but what programmers think in. They’re half technology and half
If you ever do find yourself working for a startup, here’s a handy tip for evaluating competitors. Read their job listings.
The first thing I would do, after checking to see if they had a live online demo, was look at their job listings.
The more of an IT flavor the job descriptions had, the less dangerous the company was. The safest kind were the ones that wanted Oracle experience. You never had to worry about those. You were also safe if they said they wanted C++ or Java developers.
The pointy-haired boss miraculously combines two qualities that are common by themselves, but rarely seen together: (a) he knows nothing whatsoever about technology, and (b) he has very strong opinions about it.
The pointy-haired boss believes that all programming languages are pretty much equivalent.