Alternative to an Axiom 8. A Plan for Spam 9. Taste for Makers Programming Languages Explained Machine Language High-Level Languages Open Source Language Wars Abstractness Seat Belts or Handcuffs?
OO Renaissance The Hundred-Year Language Beating the Averages The Secret Weapon The Blub Paradox Aikido for Startups Revenge of the Nerds Catching Up with Math What Made Lisp Different Where Languages Matter Centripetal Forces The Cost of Being Average A Recipe Appendix: Power The Dream Language The smart ones learn who the other smart ones are, and together they cook up new projects of their own.
Because you can't tell a great hacker except by working with him, hackers themselves can't tell how good they are. This is true to a degree in most fields. I've found that people who are great at something are not so much convinced of their own greatness as mystified at why everyone else seems so incompetent. But it's particularly hard for hackers to know how good they are, because it's hard to compare their work. This is easier in most other fields.
In the hundred meters, you know in 10 seconds who's fastest. Even in math there seems to be a general consensus about which problems are hard to solve, and what constitutes a good solution. But hacking is like writing. Who can say which of two novels is better? Certainly not the authors. With hackers, at least, other hackers can tell. That's because, unlike novelists, hackers collaborate on projects. When you get to hit a few difficult problems over the net at someone, you learn pretty quickly how hard they hit them back.
But hackers can't watch themselves at work. So if you ask a great hacker how good he is, he's almost certain to reply, I don't know. He's not just being modest. He really doesn't know. And none of us know, except about people we've actually worked with. Which puts us in a weird situation: we don't know who our heroes should be. The hackers who become famous tend to become famous by random accidents of PR. Occasionally I need to give an example of a great hacker, and I never know who to use.
The first names that come to mind always tend to be people I know personally, but it seems lame to use them. But I have no idea if these guys are great hackers. I've never worked with them on anything. If there is a Michael Jordan of hacking, no one knows, including him. Cultivation Finally, the question the hackers have all been wondering about: how do you become a great hacker?
I don't know if it's possible to make yourself into one. But it's certainly possible to do things that make you stupid, and if you can make yourself stupid, you can probably make yourself smart too.
The key to being a good hacker may be to work on what you like. When I think about the great hackers I know, one thing they have in common is the extreme difficulty of making them work on anything they don't want to. I don't know if this is cause or effect; it may be both. To do something well you have to love it.
So to the extent you can preserve hacking as something you love, you're likely to do it well. Try to keep the sense of wonder you had about programming at age If you're worried that your current job is rotting your brain, it probably is. The best hackers tend to be smart, of course, but that's true in a lot of fields.
Is there some quality that's unique to hackers? I asked some friends, and the number one thing they mentioned was curiosity. I'd always supposed that all smart people were curious-- that curiosity was simply the first derivative of knowledge.
But apparently hackers are particularly curious, especially about how things work. That makes sense, because programs are in effect giant descriptions of how things work. Several friends mentioned hackers' ability to concentrate-- their ability, as one put it, to "tune out everything outside their own heads. And I've heard several hackers say that after drinking even half a beer they can't program at all.
So maybe hacking does require some special ability to focus. Perhaps great hackers can load a large amount of context into their head, so that when they look at a line of code, they see not just that line but the whole program around it. John McPhee wrote that Bill Bradley's success as a basketball player was due partly to his extraordinary peripheral vision.
Bill Bradley had 70; he could see the basket when he was looking at the floor. Maybe great hackers have some similar inborn ability. I cheat by using a very dense language, which shrinks the court. This could explain the disconnect over cubicles. Maybe the people in charge of facilities, not having any concentration to shatter, have no idea that working in a cubicle feels to a hacker like having one's brain in a blender. Whereas Bill, if the rumors of autism are true, knows all too well.
One difference I've noticed between great hackers and smart people in general is that hackers are more politically incorrect. To the extent there is a secret handshake among good hackers, it's when they know one another well enough to express opinions that would get them stoned to death by the general public. And I can see why political incorrectness would be a useful quality in programming. Programs are very complex and, at least in the hands of good programmers, very fluid.
In such situations it's helpful to have a habit of questioning assumptions. Can you cultivate these qualities? I don't know. But you can at least not repress them. So here is my best shot at a recipe. If it is possible to make yourself into a great hacker, the way to do it may be to make the following deal with yourself: you never have to work on boring projects unless your family will starve otherwise , and in return, you'll never allow yourself to do a half-assed job.
All the great hackers I know seem to have made that deal, though perhaps none of them had any choice in the matter. I wrote this on an IBM laptop. They shut down a few months later. Life isn't an expression; how could it have meaning? But it can have a quality that feels a lot like meaning. In a project like a compiler, you have to solve a lot of problems, but the problems all fall into a pattern, as in a signal. Whereas when the problems you have to solve are random, they seem like noise.
He had equity. I don't think it's publication that makes the best hackers want to work in research departments. I think it's mainly not having to have a three hour meeting with a product manager about problems integrating the Korean version of Word When you had a house built a couple hundred years ago, the local builders built everything in it.
But increasingly what builders do is assemble components designed and manufactured by someone else. This has, like the arrival of desktop publishing, given people the freedom to experiment in disastrous ways, but it is certainly more efficient. Probably more dangerous than any other company has ever been. Not least because they're determined to fight.
On their job listing page, they say that one of their "core values'' is "Don't be evil. But I think all of us in the computer world recognize who that is a declaration of war on. His no-nonsense evaluation of the software industry may irritate some pundits and therefore is well worth reading.
Even the footnotes are worth reading. Or just read, and listen, to everything he says. This guy is real good. That's a rare talent to find in writing these days.
Overall this works, because he is putting the case for craftsmanship, discipline, and originality. His lucid, humorous prose is brimming with contrarian insight and practical wisdom on writing great code at the intersection of art, science and commerce. He may even make you want to start programming in Lisp.
Thus, in the world of programming, the hero is the one who has great vision. Paul Graham is one of our contemporary heroes. He has the ability to embrace the vision, and to express it plainly. His works are my favorites, especially the ones describing language design. He explains secrets of programming, languages, and human nature that can only be learned from the hacker experience. This book shows you his great vision, and tells you the truth about the nature of hacking. It would certainly be apt.
That is the essence of hacking. And it is also the essence of Americanness. In those countries, people color inside the lines. I lived for a while in Florence. But after I'd been there a few months I realized that what I'd been unconsciously hoping to find there was back in the place I'd just left.
The reason Florence is famous is that in , it was New York. In it was filled with the kind of turbulent and ambitious people you find now in America. So I went back to America. It is greatly to America's advantage that it is a congenial atmosphere for the right sort of unruliness—that it is a home not just for the smart, but for smart-alecks.
And hackers are invariably smart-alecks. If we had a national holiday, it would be April 1st. It says a great deal about our work that we use the same word for a brilliant or a horribly cheesy solution.
But as long as it has the right sort of wrongness, that's a promising sign. It's odd that people think of programming as precise and methodical. Computers are precise and methodical. Hacking is something you do with a gleeful laugh. In our world some of the most characteristic solutions are not far removed from practical jokes.
IBM was no doubt rather surprised by the consequences of the licensing deal for DOS, just as the hypothetical "adversary" must be when Michael Rabin solves a problem by redefining it as one that's easier to solve. Smart-alecks have to develop a keen sense of how much they can get away with. And lately hackers have sensed a change in the atmosphere. Lately hackerliness seems rather frowned upon.
To hackers the recent contraction in civil liberties seems especially ominous. That must also mystify outsiders. Why should we care especially about civil liberties? Why programmers, more than dentists or salesmen or landscapers? Let me put the case in terms a government official would appreciate.
Civil liberties are not just an ornament, or a quaint American tradition. Civil liberties make countries rich. If you made a graph of GNP per capita vs. Could civil liberties really be a cause, rather than just an effect? I think so. I think a society in which people can do and say what they want will also tend to be one in which the most efficient solutions win, rather than those sponsored by the most influential people. Authoritarian countries become corrupt; corrupt countries become poor; and poor countries are weak.
It seems to me there is a Laffer curve for government power, just as for tax revenues.
0コメント