top | item 3010290

PG's Rarely Asked Questions

299 points| wallawe | 14 years ago |paulgraham.com | reply

213 comments

order
[+] jackfoxy|14 years ago|reply
What should I read to learn more about history?

I used to consider my knowledge of history better than at least 95% of the population, but while reading The Decline and Fall of the Roman Empire I realized how sketchy my view of history really was. So at the ripe old age of 35 I set off on a course of study centered on two series of books, The Story of Civilization, by Will and Ariel Durant, and Timeframe, a Time-Life series focusing on a timeframe in human history and what was going on in all parts of the world inhabited by man: lots of pictures and of course superficial, but it painted in a lot of gaps I othewise would have never covered. The Timeframe series starts much earlier than the Durant's, but once both series were in sync I would read the books in both series for an epoch, as well as at least two other books, either written in the era or about the era, drawing mostly from science, culture, and biography. For instance I read all the books of Euclid, Newton's Optiks and Principia (I slogged through the Motte transaltion before the first modern English translation became available), The Wealth of Nations, Shelby Foote's 3-volume history of the Civil War, and The Origen of Species. (It's real easy for me to spot folks who spoot-off about Wealth or Origen who have not actually read the books.) My program culminated with Tragedy and Hope, which being such an inflammatory work, I did not trust to read without the full background of history. The process was like watching Western Civilization unfolding.

Now for the unintended consequences: I became a bore at cocktail parties. I wanted to talk about the ideas in the fascinating book I was reading. I used to love arguing politics. Even with my prior knowledge it was hard enough finding opponents who would engage in rational discourse, now it is impossible. It's been so long my debating skills have totally gone down the tubes. The sad thing is I believe my problem is really society's. Political correctness (among other problems) in academia, has produced a generation of intellectually crippled intellectuals; and the entertainment industry, including the 24-hour news cycle as entertainment, has just stupefied people. I fear for democracy and republican government.

[+] zedshaw|14 years ago|reply
The force is strong with this one.

I'd love to debate random topics with you. Assuming you've actually read everything you claim, I think you'd be a refreshing change from the vast majority of people who simply regurgitate whatever their heroes say.

If you're interested, email me sometime: zedshaw at zedshaw.com.

[+] mdiep|14 years ago|reply
I'd love to see a full list of all the books you read and the order in which you read them. I recently started reading The Story of Civilization and augmenting it with other works seems like a wonderful idea.
[+] Willwhatley|14 years ago|reply
I've wondered about variants on democracy. The parliamentary and constitutional forms seem to me to incentivize (for those who want power) going along to get along. Sophists, flatterers, demagogues; there is no good incentive to vote, only the strong disincentive of some other party's bums overseeing you rather than ones you know.

There's a Twain short story about folks who get more than the initial vote, in proportion to their accomplishments. So a propertied or moneyed man is so much more enfranchised, a doctor of philosophy has a couple more votes, and so forth. The incentive there for demagogues would seem to weight one even more firmly than presently in favor of the rich and the academic guild. I don't support any scheme that brings us closer to a plutocracy than we already are--merely mention this as a starting point.

And then there is government by lot; the next dogcatcher, etc. to be selected in some randomized fashion, perhaps confine the pool to certified catchers of dogs, treason for tampering, and so forth. The incentive becomes enormous to raise the general quality of the citizens in proportion to how broad the pool of candidates is; and, of course, to monkey with the criteria for candidates to benefit oneself and disadvantage one's adversaries.

[+] derrida|14 years ago|reply
"It's real easy for me to spot folks who spoot-off about Wealth or Origen who have not actually read the books." What is sad is that I recall realizing at University that certain graduate students had not read some of the books they were teaching! I think the humanities are vitally important, but the academic humanities, unfortunately, sometimes breed a certain kind of person who wants to get a job in academia for impure reasons.
[+] Alex3917|14 years ago|reply
Do you find that at some point reading more history has diminishing returns in terms of your ability to understand current politics?

It seems like having good political sense requires two things: having a solid understanding of the current state of people and assets, and having a good understanding of the impacts of policy. (As well as having some understanding of the whole human experience thing.)

While history is obviously important for understanding this stuff, it seems like after a certain point one would get more insight from other places. I don't doubt that most people don't know enough of history to understand politics, but at the same time most people don't know enough of anything else to understand politics either.

[+] maw|14 years ago|reply
Now for the unintended consequences: I became a bore at cocktail parties.

I dunno, I think it'd be more interesting to talk with you than to talk with people about what they drank at the last party they went to--especially since "what" usually just means "how much".

[+] onan_barbarian|14 years ago|reply
The tendentious answer on philosophy is an invitation for what would be another "Dabblers and Blowhards" drive-by shooting.

It's not enormously surprising that this question is 'rarely asked'. One would learn a lot more about philosophy ("what questions are these guys asking?" "what are some of the answers they've come to?") from even a mediocre introductory text or a chat with a TA/tutor, than by assuming that this rather sophomoric answer represents a reasonable response to the entire field. Calling it 'sophomoric' doesn't properly engage with the claims, but the claims are so smug, random and content-free:

"Books on philosophy per se are either highly technical stuff that doesn't matter much, or vague concatenations of abstractions their own authors didn't fully understand (e.g. Hegel)... It can be interesting to study ancient philosophy, but more as a kind of accident report than to teach you anything useful."

... that I can't find anything remotely meaningful to engage with.

Someone recommended Russell's History of Western Philosophy as an option; this isn't bad (although its treatment of Continental philosophy is hopelessly biased, it would still be enough to get you oriented).

The fact that whenever PG makes statements on some area I understand more about (philosophy, politics, economics) seem to be incredibly shallow, juvenile crowd-pleasers, makes me wonder at his expertise in areas that I don't know much about (history, painting).

[+] forensic|14 years ago|reply
What kind of people does pg draw in?

Its mainly naive young programmers (socially stunted nerds) who believe they are smarter than everyone and have everything figured out.

I believe nerd hubris comes from a fundamental lack of empathy; an inability to put themselves in the shoes of people who are different.

People who lack perspective are easy pickings for silver tongued writers who make emotionally-potent audience-felating oversimplifications.

[+] philwelch|14 years ago|reply
It's interesting how a concise conclusion you disagree with is evidence of ignorance. I don't know how much you know about philosophy, but from what I picked up during my bachelor's, it turned out to be interesting but all in all not too important. The central problem is still there: anything that's rigorous enough that it might be true is narrowly scoped and doesn't come to a wide enough conclusion to be interesting, and anything that's especially vast in terms of implications is usually vague bullshit.
[+] sthlm|14 years ago|reply
The pointy-haired boss is a manager who doesn't program. So the surest way to avoid becoming him is to stay a programmer. What tempts programmers to become managers are companies with old-fashioned corporate structure, where the only way to advance in salary and prestige is to go into management.

I have to disagree with that. I've met many people, especially in larger enterprises, who started in development but then became more abstract over time. They weren't bad people, in fact, they were excellent at their job.

Programming to me has never been something that has to be continually pursued in order to stay fluent or able, but merely something that reflects your more basic skills and talents.

It's like playing a musical instrument. Almost anyone can learn playing the guitar, but it takes a special talent to excel at it. For the guitar this requires hearing, sense of rhythm, and others; for programming, this is analytical thinking, systematic thinking, and more. Some people will try to program but never be really good at it. I studied with people like that. It's not their fault, their skills are just in another area. Some others are great at it. Once they learned, it doesn't matter if they don't develop anything for 3 years; after their break, they look at a piece of code / framework / technology, understand what it does, and continue programming.

And the traits that make you a good programmer help you in other fields, even management. Yes, large corporations have structures, but we need structure to manage them. And we need managers. And a manager who was a distinguished developer will be much better suited for leading a team of developers -- even if he doesn't program any longer. This is a valid career path, and an interesting one at that.

My general opinion is that if you want to stay a programmer, find yourself a role where you can do that. If not, don't bother pursuing programming at all costs. It won't lead you in the right direction.

[+] richcollins|14 years ago|reply
[+] thisrod|14 years ago|reply
Also see Smalltalk, for contrast. Lisp's uniform syntax lets the interpreter rewrite parts of programs; Smalltalk's uniform semantics let programs rewrite parts of the interpreter. PG's discussion of objects overlooks that.

OMeta looks like a combination of the two. It sounds really interesting, but I suspect it's for people smarter than me.

[+] phaedrus|14 years ago|reply
I was about to say the same thing. Since Io represents the program as an expression tree of messages, you can write macros to operate on the message tree, and they work for Io's syntax as easily as Lisp macros work for Lisp syntax.
[+] dgreensp|14 years ago|reply
>I never had to manage anyone in our startup, even though I was the president. The other hackers were my peers, and would have given me the raspberry if I'd tried to "manage" them. We operated by consensus. And the rest of the company reported to our experienced COO, who was also more of a peer.

Operating by consensus and not valuing the role of "manager" only goes so far. It may work when you're a few people living together, but I think it ultimately leads to cultures like Google's, where every decision requires a room full of engineers to agree.

[+] siglesias|14 years ago|reply
Re: philosophy, I think understanding the difference between representing the world in language and representing it in logic is critically important to programmers. It has implications for natural language processing as well as artificial intelligence. I personally recommend to anyone endeavoring to understand Wittgenstein's transition from Tractatus Logico Philosophicus to Philosophical Investigations. In fact, Google used the family resemblance concept from PI to inform its search algorithm early on to attribute diffent meanings to the same search term.

What you take away is a very precise way to pose questions that make sense and to avoid questions that don't make sense.

[+] chernevik|14 years ago|reply
I disagree with pg about the use of philosophy. If nothing else, Plato should disabuse anyone of the notion that what's obvious to them isn't really that solid. Aristotle at least demonstrates your point about just how hard it is to think systematically about this stuff.

The humility gained from those encounters would do a great deal to open people's minds that "there's more on heaven and earth than are dreamt of in your philosophy". Maybe people would less adamant, and pay more attention to why they hold their opinions. If everyone did that, we'd have far more productive discussions.

[+] marquis|14 years ago|reply
I completely agree. I would also recommend reading books and watching films about philosophers, novels and plays written by philosophers that is intended to be read as a narrative , and especially conversations with philosophers. You get a feel about how they came about their conclusions - what I am interested in is how a certain idea was arrived at, and philosophy can really give you some great analytical tools.
[+] simonb|14 years ago|reply
Can you give any further reading/info on family resemblance as used by Google?
[+] rwmj|14 years ago|reply
He's really wrong about LISP macros. Would suggest pg takes a look at camlp4.

Edit: maybe instead of downvotes, you could reply explaining what's wrong with this position. Or just look at camlp4 and see how it provides macros that are better (with a better underlying language) than LISP. And yes, I've written a LISP compiler.

[+] denisonwright|14 years ago|reply
Interesting, now that I think of it, I have never met someone (except pg) who is a painter and programmer. I've met several programmers who are writers, musicians, carpenters, etc, but never painters.

I draw cartoons/caricatures (examples here: http://www.smileecards.com) and have painted a few times, but I don't quite call myself a painter.

About teachers, I totally agree that good teachers earn the respect of the students by having high standard, calling students out on bad quality work. I once suspected a teacher only read the beginning and the end of essays, so I submitted a 4 page essay that contained a recipe for banana cake in the second and third pages; I received a B+!

[+] _delirium|14 years ago|reply
Harold Cohen is probably the most famous example--- a painter who also programs AI systems (which are themselves painters...): http://crca.ucsd.edu/~hcohen/

Although, looking for painters who are also programmers, but programmers of things other than computer-art systems is also an interesting question. Likewise with musicians, people who are musician-programmers in computer music, and people who are musicians and also programmers separately, might be interesting to consider as different groups.

[+] yannis|14 years ago|reply
I am a Mech Engineer with a passion for programming. I used to paint when I was a kid, but that was a long time ago. Now what I find interesting is that without having read the PG article, I tell people that I program using the water-color technique. I 'sketch' quickly the code and then go back and fill the 'colors' the small refinements for completion and over write a little bit. Now I know other people they code like Architects, have master plans draw out all the details and then code, perhaps Djikstra was one of them and then there are the oil painters (possibly Knuth's style). Reminds me of Michelangelo where he had a great vision but had a lot of assistants to fill some parts (think of all the Ph D students slaving away).
[+] RodgerTheGreat|14 years ago|reply
I'm a programmer and an artist- my art is mostly done in traditional media like ink, which I consider close enough to paint for comparison. If you pore over my photobucket (http://s280.photobucket.com/home/RodgerTheGreat/index) you'll find a blend of my drawings and screenshots of projects I've worked on.

I think part of this comes from my interest in video games. If you find yourself working as a one man show you'll quickly start developing skills with pixel art (or modeling and texturing if you work in 3D), much as programmers interested in webdev frequently start to pick up skills in graphic design. It would be nice to collaborate with other people and outsource some of these skills, but at the end of the day the best way to get precisely the results you have in mind is to be able to build every component of a project.

[+] muhfuhkuh|14 years ago|reply
"I want to start a startup, but I don't know how to program. How long will it take to learn?

I would guess a smart person can learn to hack sufficiently well in 6 months to a year."

Hmm... interesting take considering the source, especially when contrasted with the general mentality that programming and software development is the finest of all trades and takes a near preternatural mastery only found elsewhere in classical musicianship 300 years ago. I quite enjoy the feeling that I could be good in a year.

[+] breck|14 years ago|reply
> The pointy-haired boss is a manager who doesn't program. So > the surest way to avoid becoming him is to stay a programmer.

I agree. One of the absolute worst pieces of advice I got over and over again was "don't go into programming. It's all being outsourced overseas anyway. Just learn how to manage programmers." Luckily for some reason I finally decided to ignore that advice and strive to become a great programmer myself. One of the, if not the, best decisions in my entire life.

Even now, although I certainly could become more of a "manager", I choose to stay in the pit coding. Although I now do tasks that can be called "managing" such as helping out other coders with their bugs and problems, mentoring, communicating with people outside of engineering, recruiting and interviewing, the biggest chunk of my time is spent programming and working on my skills.

It's worked for PG. It's worked for Paul Farmer(replace "programming" with "doctoring"). I'd bet it's worked for nearly every master of their field. I think it's an essential rule to follow.

[+] kemiller|14 years ago|reply
Those task are not just things that could be called "managing" they ARE managing. I think it's funny that programmers think of managing as this horrid thing outside their realm, but really, it's just the skill of working with others and extending your reach beyond your own fingers.

To that end, I think PG is dead wrong. Programmers can make great managers, and find it very rewarding, even if they're not in code all day. There's as much variation in that end of the business as their is in the coding. Would you go into programming if you believed that ever job was a dead-end VB jockey? Of course not. The way to avoid being a PHB is to avoid behaving like a PHB.

[+] ecocentrik|14 years ago|reply
PG lost me at the first question. A better answer would be; they are both highly technical skills with almost no overlap that take boatloads of time to master. We all know the bene gesserit mantra...
[+] shin_lao|14 years ago|reply
I'm not sure the advice about "not becoming a pointy haired boss" is any good.

Not all structures can stay small enough to avoid management. The startup phase is just an initial phase that will dysfunction as the number of employees grow.

Additionally, I don't think that having a manager who programs is a way to increase management quality.

So how do you get good management? There's no simple answer to that, it's a central problem to all companies as they grow.

[+] extramoose|14 years ago|reply
I must say that one of the things I value most is the fact that as a Hacker, I have also worked extensively in Landscaping, Kitchens, Coffe houses & Hotels. A wide range of interactions & processes in one's past can always be used as perspective when approaching the next fork in the road.
[+] moomin|14 years ago|reply
Bertrand Russell's History of Western Philosophy is a great place to start. Of course, it's as much an introduction to his thinking as anyone else's, but it's accessible and thoughtful. Memorable for the phrase "existence is not a predicate".
[+] Estragon|14 years ago|reply

  > Couldn't you add something equivalent to Lisp macros to languages like
  > Perl or Python?
  >
  > Not without turning them into dialects of Lisp. Real macros need to
  > operate on the parse tree of the program.
  
Actually, I've thought about porting some of On Lisp to python using lib2to3 (http://docs.python.org/library/2to3.html) It's probably an obscenely bad idea, but I keep getting drawn back to it...
[+] corin_|14 years ago|reply
Does anyone have any insight into why painters are less common among hackers than other artistic persuits, such as music?

I've never met anyone who bridged visual art with anything tech-related, but composers, singers, pianists, orchestra members... hell yes.

Is it just that painters are less common that musicians and that ratio stays true in the tech world?

[+] earbitscom|14 years ago|reply
Music has a lot more to do with math, logic, structure, and other technical skills and requirements than most other forms of art.
[+] Samuel_Michon|14 years ago|reply
"I've never met anyone who bridged visual art with anything tech-related"

You've never met a web designer, video editor, 3D artist or graphic designer?

[+] ekm2|14 years ago|reply
All of you have covered Western History extremely well.Which are the best books to study Asian and African History?
[+] larrys|14 years ago|reply
"Two startups want to hire me. Which should I choose?

The one with the most determined and smartest founders (in that order) is the more likely to succeed. "

All else being equal this is true and it's good advice.

But unfortunately when you are choosing from two startups to work for all else is not equal.