- By Paul Graham
Hackers & Painters is a philosphical read not about Computer Science, but about Computer Science.
Like a relational Databases Paul Graham draws connections between art, programing, childhood nostalgia, Humme like Philospy, in a cohisive meme worthy prose
The strength of Hackers & Painters, is the barrier of entry. There is none. If you are a up and comming programmer making your way up to runs of coding, or a seasoned developer, who dreams in binary. You will find snippets of wisdom you can return to time and time again.
"Strangely enough, if you want to make something that will appeal to future generations, one way to do it is to try to appeal to past generations. It’s hard to guess what the future will be like, but we can be sure it will be like the past in caring nothing for present fashions. So if you can make something that appeals to people today and would also have appealed to people in 1500, there is a good chance it will appeal to people in 2500."
"Good design is often slightly funny."
"In most fields the appearance of ease seems to come with practice. Perhaps what practice does is train your unconscious mind to handle tasks that used to require conscious thought. In some cases you literally train your body. An expert pianist can play notes faster than the brain can send signals to his hand. Likewise an artist, after a while, can make visual perception flow in through his eye and out through his hand as automatically as someone tapping his foot to a beat."
"Unknowing imitation is almost a recipe for bad design. If you don’t know where your ideas are coming from, you’re probably imitating an imitator."
"Nothing is more powerful than a community of talented people working on related problems."
"Today’s experimental error is tomorrow’s new 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."
" Languages evolve slowly because they’re not really technologies. Languages are notation. A program is a formal description of the problem you want a computer to solve for you. So the rate of evolution in programming languages is more like the rate of evolution in mathematical notation than, say, transportation or communications. Mathematical notation does evolve, but not with the giant leaps you see in technology. "
You should figure out programs as you’re writing them, just as writers and painters and architects do.
"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.
"The place to fight design wars is in new markets, where no one has yet managed to establish any fortifications. That’s where you can win big by taking the bold approach to design, and having the same people both design and implement the product. "
"Because painters leave a trail of work behind them, you can watch them learn by doing. If you look at the work of a painter in chronological order, you’ll find that each painting builds on things learned in previous ones. When there’s something in a painting that works especially well, you can usually find version 1 of it in a smaller form in some earlier painting."
"The fact that hackers learn to hack by doing it is another sign of how different hacking is from the sciences. Scientists don’t learn science by doing it, but by doing labs and problem sets. Scientists start out doing work that’s perfect, in the sense that they’re just trying to reproduce work someone else has already done for them. Eventually, they get to the point where they can do original work. Whereas hackers, from the start, are doing original work; it’s just very bad. So hackers start original, and get good, and scientists start good, and get original."