My notes so far from Hackers & Painters: Big Ideas From The Computer Age by Paul Graham.
The purpose of school is to keep kids locked up in one place all day so adults can get things done. Two problems with this: 1) kids aren’t told about this, and 2) just like how inmates run prisons, schools are run by the students. These students are trapped in a bubble where nothing they do has more than a local effect. Most schools have no real purpose, but groups create hierarchies. Without meaningful criteria to determine ranking, the situation degenerates into a popularity contest.
Smart kids aren’t popular because they want to be smart more than they want to be popular. Popularity is a goal that requires full time focus to succeed at, and nerds tend to be more focused on the goal of being smart.
In any social hierarchy, people unsure of their position will try to emphasize it by bullying people who they think rank below them. Because nerds are usually unpopular, they’re also often bullied. Nerds tend to be a step ahead of other kids, as the nerds are wondering about the real world (what matters in it) instead of playing the popularity game.
When trying to account for why teenagers are unhappy and treat each other badly, we tend to blame hormones. We say that all kids are miserable at that age, even though this wasn’t considered to be a universal fact until the twentieth century. Yet teenagers are unhappy because they’re cooped up together for years with nothing real to do.
People tend to think hacking and painting are very different kinds of work, but they have a lot in common. Hackers and painters are both makers.
Computers science is a grab bag of tenuously related terms thrown together. At one end you have mathematicians, in the middle you have people working on things like studying the history of computing, and on the other end you have hackers who are trying to write interesting software. Bundling all of these under the umbrella of computer science is confusing. For hackers, computers are just a medium of expression, as paint is for painters. Hackers need to understand the theory of computation as much as painters need to understand paint chemistry.
Often the way to build something beautiful is to make subtle tweaks to something that already exists, or to combine existing ideas in a slightly new way.
Hacking at a company means implementing software, not designing it. Big companies do this. Advantage of a startup is hackers can design good software. This doesn’t matter for big companies, as they win not by making great products but by sucking less than other big companies. It’s hard to get into a design war with a big company. Try to fight design wars in new markets where no one has built fortifications. Take the bold approach to design and have the same people both design and implement.
All makers face this problem: there is not as much demand for things that are fun to work on, as there is things that solve the mundane problems of individual customers. The answer to this for makers is the day job, while working on projects on the side. Example: devs contributing to open source.
What painting can teach us about hacking:
- You learn to paint by painting—same with coding.
- Learn from examples. Painters have museums to reference, devs have opens source code.
- Gradual refinement. Write programs in a way that allows specifications to change on the fly.
- Have a fanatical devotion to beauty.
- Work comes in cycles. Inspired to code some days, others not. Save up easy tasks (such as debugging) for days when you’re not inspired.
- Collaborate by diving projects into sharpy defined modules, each with a clear owner.
- Have empathy, see from the user’s point of view.
We look back at old fashions and cringe at what we decided to wear at the time. There are moral fashions too. In every time period, violating a moral fashion could get you fired, ostracized or killed. In the 17th century, Galileo got in trouble for saying the earth moves.
Conformity test: If you have no opinions you’d be reluctant to share in front of your peers, that’s not coincidence. You think what you’re told to think. If you believe everything you are supposed to, you likely would have believed everything you were supposed to if you’d grown up among the plantation owners of the pre-Civil War south, or in Germany in the 1930s.
How do we figure out what we can’t say?
- Look at ideas that people get in trouble for and ask if they might be true. The statements that make people mad are the ones they worry might be true. If Galileo had said people were 10 feet tall, he would’ve been seen as a harmless eccentric. Look for labels that get appended to statements to shoot them down before anyone has a chance to ask if they’re true.
- Diff present ideas against those of various cultures as well as past cultures. In one culture it might be shocking to think X, but in another it might be shocking not to.
- Look at how taboos are created. Groups purposefully launch taboos, and the prohibition is strongest when the group is nervous. These groups are strong enough to launch a taboo but weak enough to need one.
Why should you figure out what you can’t say?
- To find out if you’re mistaken or not. If, like other eras, we believe things that later seem ridiculous, you can figure out what they are now and avoid believing them.
- To do good work you need a brain that can go anywhere. If you can think things so outside of the box that they’d make people’s hair stand on end, you’ll have no trouble with the small trips outside the box that people call innovation.
Knowing what you can’t say, what should you do?
Pick your battles. Draw a line between thoughts and speech. Encourage outrageous thoughts but don’t say them. Have trusted friends to speak with so your ideas can benefit from discussion.
If you do fight back, you can disagree, but not specifically. Ratchet the debate up one level of abstraction. You can also use metaphors or humor.
It’s the nature of fashion to be invisible. People who are bad at open-mindedness don’t know it.
Always Be Questioning
To see moral fashions, always be questioning. If a statement is false, that’s the worst thing you can say about it. If it’s false, it shouldn’t need to be suppressed.
Distance yourself from the mob and watch, but learn to distance yourself from your own thoughts and watch as well.
Join my coding club.
The CodeBookClub is a club for new and intermediate developers. We host live events such as a bi-monthly book club meeting and group programming. Sign up to become a member of the club and learn with us.