You should definitely read Paul Graham’s highly opinionated book, the one with the unlikely title of Hackers and Painters: Big Ideas from the Computer Age. But the first thing you have to know, if you’re not a computer geek, is that the title refers to “hackers” in the original meaning that it had before it was corrupted by Time Magazine and other popular media. A hacker is someone who loves working with computers, usually programming them. In the words of the Jargon File, the first definition of hacker is as follows:
A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary. RFC1392, the Internet Users’ Glossary, usefully amplifies this as: A person who delights in having an intimate understanding of the internal workings of a system, computers and computer networks in particular.
The popular press has conflated this with cracker, whose meaning has now become the meaning of hacker in most people’s minds:
One who breaks security on a system. Coined ca. 1985 by hackers in defense against journalistic misuse of hacker.
Anyhow, now that you’re straight on what Graham means by hacker, you’re going to start wondering whether painter also means something you didn’t expect. It all depends, of course, on what you expected: it’s painter in the sense of a visual artist, not in the sense of a house painter.
Computer programmers share some important characteristics with artists — much more than they share with accountants, say. Programming a computer is a creative act, having much in common with painting a picture. Read this book if you want to find out what it’s like to create and build a large software project — spam detection and online stores in Graham’s case, but those are more by way of example than major themes. The major themes are really the big ideas of software development. When you read the book, you’ll learn a lot about programming languages and other tools. Take Graham’s admittedly biased view with several grains of salt, but do realize that he speaks with the voice of experience in both software development and art, not with the voice of academia. I won’t disclose his biases here; suffice it to say that his professional experience leads him to some well-considered judgments on certain popular operating systems and programming languages.
Unfortunately Graham also takes several forays into the worlds of politics and philosophy, I say “unfortunately” because they will detract from the book if you’re turned off by his libertarian views. Don’t let Graham’s politics deter you from taking his software development ideas seriously: there’s only the most tenuous connection between his politics and his views on software. Read the book anyway, and just argue mentally with the author. You will still enjoy the large majority of the chapters, especially when you think about pointy-haired bosses and their ilk. Speaking of chapters, Hackers and Painters is really a collection of semi-independent essays rather than a monolithic book. The first essay, “Why Nerds are Unpopular,” is especially recommended to middle- and high-school teachers and students: Graham writes from his own experience from when he was a teenage nerd (or geek — take your pick), and his analysis definitely rings true. Other recommended essays include “What You Can’t Say,” which is mostly about political correctness; “Good Bad Attitude,” which argues in favor of breaking the rules; and “The Road Ahead,” which explores the idea of web-based rather than desktop-based software.
One customer on Amazon says that “These essays help me maintain my sanity and inspire me to produce beauty while I code.” What more could one want? I don’t usually recommended taking the time to read reviews on Amazon, but in this case they’re well worth reading, even though of course some of the reviewers’ opinions are incorrect.