Reading 04
Is Paul Graham’s version of a hacker compatible with Steven Levy’s description? Do his arguments for and description of the modern hacker change your mind about what it means to be a hacker or the desirability of being one?
I gotta say I hate the way Paul Graham describes static typing, and it’s people like him that write code that looks and reads like vomit.
”[A] programming language should, above all, be malleable. A programming language is for thinking of programs, not for expressing programs you’ve already thought of. It should be a pencil, not a pen. Static typing would be a fine idea if people actually did write programs the way they taught me to in college. But that’s not how any of the hackers I know write programs. We need a language that lets us scribble and smudge and smear, not a language where you have to sit with a teacup of types balanced on your knee and make polite conversation with a strict old aunt of a compiler.”
The way I see it, static typing verifies that you actually understand the process of the program at each step, and that you’re not just spewing spaghetti everywhere and beating it with a bat until it wiggles perfectly, luckily, coincidentally into place. If I can’t be certain of the data type of the data stored in a variable at all times during execution, I can’t guarantee I even know what the variable contains, and if I can’t guarantee what a variable contains, well what do I know at all about the code I am writing? Nothing.
But I digress. As funny as it is to write in hyperbole like Graham, the main topic of this blog is to compare Graham’s and Levy’s definition of a hacker.
Graham says that hackers are makers. Hackers learn by hacking. And this is true. Most professional programmers learn mostly from free online resources, according to Stack Overflow.
This brings me to another point I realized relatively recently. CS degree is not equal to a job in CS. A CS degree helps you get a job in CS, but it won’t fully qualify you for a software engineering job. CS is broad, so the degree gives you the foundation. The best way to get software engineering experience (beyond the degree) is self-learning through free online resources. This aligns with Graham’s opinion that hackers are makers.
But Graham writes about hackers as embodying Americanness too. He describes Americanness as a quality of unruliness and questioning authority. The latter is particularly similar to Levy’s description of hackers.
Unfortunately, even the Constitution of 1787 had a clause protecting the intellectual property of authors and inventors, such an ideal that the true hackers would not have stood by. In a loose sense, I see what Graham means, and it certainly imbues me with passion and good feelings of patriotism, but if I think about it objectively, there are differences.
Nonetheless, I believe Graham’s and Levy’s descriptions of a hacker are mostly compatible. I think Graham’s description is certainly more desirable than Levy’s description of the true hackers: those that go against the grain and fight for freedom; those that truly embrace the American ideal of freedom to its fullest. This definition does make me desire to be a hacker.