
PG's Rarely Asked Questions - wallawe
http://www.paulgraham.com/raq.html
======
jackfoxy
_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
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.

~~~
jackfoxy
Zed, You are one of the interesting people I would like to meet someday. I
will eventually get in touch. My job (among other distractons) is sapping me
right now, but I hope to get back to real life by mid-November. Likewise I can
be reached jacfoxy at gmail dot com.

~~~
wyclif
I would add Jacob Burckhardt's _The Civilization of the Renaissance in Italy_
to the book list. It appears to be a glaring omission.

~~~
brndnhy
This was one of my favorite college texts. I'm really disappointed that I'd
forgotten about it until your comment. Thanks.

~~~
wyclif
Thanks. BTW, Caesar's _The Gallic Wars_ is available online from MIT:
<http://classics.mit.edu/Caesar/gallic.html>

------
onan_barbarian
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).

~~~
pg
It's hard to get that deep in a couple paragraphs. But there is a longer
version here:

<http://paulgraham.com/philosophy.html>

~~~
YuriNiyazov
Do you believe that most of the stuff covered under philosophy of mind
(Dennett, Searle, Block, Chalmers, Jackson, etc.) is not worth studying?

Edit: reduce strength of statement.

~~~
forensic
An easy way to show the importance of philosophy is to show all the powerful
sciences it spawned and provided theoretical underpinnings for. Not the least
of which is cognitive neuroscience.

------
sthlm
_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.

~~~
Volpe
> Almost anyone can learn playing the guitar, but it takes a special talent to
> excel at it.

Curious about this notion of 'special talent' - So some people are just born
to be better guitar players? Are you saying that something in the brain is
pre-wired to be a better guitar player?

I'd say for a claim like that, you need a citation (preferably multiple).

In my opinion: You can excel at anything you like, you just have to work at it
(it helps if you do it when you're really young, as your brain has higher
plasticity). Get rid of this "special talent" notion.

~~~
tentonwire
I partially agree with the GP, except I would say it takes a special talent to
excel at it in a given amount of time. A "special talent" in this case would
be a predisposition to learning how to play a guitar.

>Are you saying that something in the brain is pre-wired to be a better guitar
player?

Yes, whether due to nature or nurture, I would say certain people will be
faster at learning how to play the guitar, and thus, be a better guitar player
given an equal amount of exposure. Of course, you could always put more time
into it, but there is only a finite amount of time available to a given
individual.

No citations, but I believe this agrees with the general consensus. In fact, I
would be greatly interested if anyone could provide studies showing the
contrary.

~~~
robertk
What about Salman Khan's TED talk, where he shows that it is a frequent
occurrence that kids stumble on a math concept, but then rapidly catch up or
exceed their peers. If learning as a general phenomenon occurs in plateaus,
but turns out linearly the same in the long run for most everybody (like a
graph of the prime counting function seems choppy up close but a line out
far), perhaps it is the case we intuitively think some people have a talent,
because they didn't experience any early plateaus, but experience some later
instead, when they aren't under as careful scrutiny. In other words, it might
be a statistical phenomenon of the learning progression (assuming the plateaus
are uniformly randomly distributed). Having thought a lot about this issue, I
think it is closer to the truth.

In any case, I second the request for more studies.

~~~
sthlm
What you're talking about is known generically as the General Learning, which
is an aptitude in itself. Some people learn better than others. It also
depends on what you learn.

Nurture: At various ages, the ability to learn changes
([http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.88....](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.88.2958&rep=rep1&type=pdf)).
It might well be true that there is a lot of optimization to be done in the
way we teach -- something that Salman Khan illustrates well with his new
teaching methodologies. That doesn't necessarily mean however that at all
stages, ages, circumstances, people will be equally able to learn something.

Nature: Some people have an innate aptitude; I won't look for papers, as I
find this to be truly obvious.

------
richcollins
_Couldn't you add something equivalent to Lisp macros to languages like Perl
or Python?_

Yes, see Io:

<http://iolanguage.com/>

[http://www.reddit.com/r/programming/comments/64mgk/why_io_ha...](http://www.reddit.com/r/programming/comments/64mgk/why_io_has_a_very_clean_mirror_on_the_io/)

[http://web.archive.org/web/20090427182332/http://hackety.org...](http://web.archive.org/web/20090427182332/http://hackety.org/2008/01/05/ioHasAVeryCleanMirror.html)

~~~
thisrod
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.

------
dgreensp
>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.

~~~
frisco
Are you saying that Google is anything other than one of the world's most
wildly successful companies of the last decade?

~~~
sjtgraham
No, he is saying operating by consensus doesn't scale.

~~~
tarmstrong
"Scale" is a funny word. It doesn't scale in terms of decision making speed.
But it does scale in terms of decision making _quality_. Obviously if social
cohesion within the group is too high, or if the people present cross too many
hierarchical levels, the group won't use its diversity to make excellent
decisions. But if done properly, including more people in decision making
results in good decisions.

This is one of the ways that you can get over narrow-minded specialists making
decisions that work for them but screw everybody else.

------
siglesias
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
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.

~~~
hnhg
I agree. Philosophy is great for exposing how uncertain we are about things we
believe we know for sure. He are some simple games that help demonstrate this:

<http://www.philosophersnet.com/games/>

------
rwmj
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.

~~~
zedshaw
You questioned PG and LISP in one comment then advocated another language with
a lesser Nerd Lore Composite Score. About the only thing you could have done
worse is to admit you wrote a child porn site in both and found LISP's
parentheses to be annoying. :-)

~~~
Goladus
PG's assertions are often hard to question, probably because he studied
philosophy and is very good at logic. He doesn't say it's impossible and his
definition of lisp is very inclusive.

I read some of the docs for camlp4. It looks like a library for extending
ocaml using syntax grammars, similar to Langscape(formerly EasyExtend) for
Python. It's not clear whether that really addresses PG's point (a). It would
be really nice if rwmj would make his point explicit instead of whining about
downvotes and telling people to go slog through camlp4's incomplete, broken-
english documentation.

------
urza
I clicked through to the Return of the Mac [1] article and it would be of
interest to me to know how this community and PG sees the Macs today? Recently
some people on HN said that they dont like where the Lion is heading [2] or
that OS X is goining to be more closed than open [3]. So.. what are you
hacking on today?

[1] <http://www.paulgraham.com/mac.html>

[2] <http://news.ycombinator.com/item?id=2933895>

[3] <http://news.ycombinator.com/item?id=2368932>

------
denisonwright
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
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.

------
muhfuhkuh
" _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.

~~~
edanm
Note: he means "good enough", _not_ good.

Which brings to mind patio11's constant reminders, that running a successful
software business has very very little to do with programming well.

Which means that pg thinks that 6 months is the level you need to be at to be
able to start a startup. This seems intuitively right to me, especially these
days.

~~~
_delirium
In fact the usual advice is that you _shouldn't_ be doing something
technically virtuosic in a startup. If your startup's critical path includes
writing something as technically impressive as the Glasgow Haskell Compiler,
you might have trouble...

Though there are a few people around here who've built software businesses
around things that are also nontrivial technical advances; cperciva comes to
mind.

~~~
gbog
It seems all or most pg's articles just say the opposite: a startup should
climb the highest hills, and can do so faster the big corporations because
they are light-weight. If I'm not mistaking, "climbing" here do not mean find
a genius idea or a disrupting design for a search field, it means developping
something hard in software.

The conclusion should be that a startups that is not doing something
technically hard should be considered in trouble (because so easy to clone).

~~~
Aga
I think it does not have to mean "developing something hard in software", but
more like "finding an unsolved problem and using software to solve it." It
does not have to be hard to solve in the software side. I guess the hardest
part is finding the right problem to solve!

------
breck
> 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
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
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...

~~~
delano
That question is a reference to this essay (and later, book of the same name):

<http://www.paulgraham.com/hp.html>

------
shin_lao
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
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
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

      > 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...

~~~
apgwoz
How does 2to3 help you with this? If you intend to port macros, you're sort of
out of luck in python.

------
draegtun
_Couldn't you add something equivalent to Lisp macros to languages like Perl
or Python?_

Perl6 comes with full _Lisp-like_ macros:
<http://en.wikipedia.org/wiki/Perl_6#Macros>

See previous HN discussion on this:
<http://news.ycombinator.com/item?id=1279238>

------
corin_
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?

~~~
Samuel_Michon
_"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?

~~~
corin_
Yeah my bad, wasn't specific enough - I meant painters, sculpters and the
like.

In my head they are called "art", I have to make an active decision to think
of "art" as "the arts" including other things - guess just the way I learned
the vocab. as a kid. So it was already a step to edit from "art" to "visual
art".

Perhaps I should have gone with "static visual art that is created for the
sake of being art"?

As to your examples, I suspect the main reason that there's such a link is
(obviously) the big crossover. If you're an artist who wants to make money
making websites, or videos, or whatever, it makes sense to learn at least some
of the technology related to it to help you. And if you're, say, a website
developer, it sometimes makes sense to go the other way too.

~~~
Samuel_Michon
_"I meant painters, sculpters and the like."_

I don't believe there's a difference. All the good graphic designers I know
don't only do applied design for clients, they also create "static visual art
that is created for the sake of being art". On the other hand, most sculptors
I know mostly create statues for banks and local governments.

Having attended art school, I can tell you there is little art free from
commerce and it mostly is no good. Having some constraints actually helps the
quality of the work.

~~~
corin_
Once again I think my wording rather than my point is the problem - by
"created for the sake of being art" I didn't mean in terms of whether there
was monetary gain for the artist, I meant how it is to be used.

You create a website, your aim isn't generally to have people stand around and
admire the art, that's a side effect. (And sure, sometimes maybe it's the
strongest influence when a designer is making a website, but it isn't meant to
be - it's meant to be a part of making something functional).

~~~
Samuel_Michon
Not to make this into a long debate, but I don't think your wording is the
problem.

Plenty of websites have no commercial goal, they're just meant to be gawked
at. All the major contemporary art museums have websites, photos and posters
in their collections.

Also, many sculptures found in museums weren't made to be used as art - they
were meant as tools or status symbols, for communication, sexual arousal or
worship.

To be a 'real' artist isn't determined by the medium one uses, but by the
quality of the work created. I enjoy the work of Dieter Rams, Saul Bass and
Dick Bruna just as much as that of Vincent van Gogh and Jackson Pollock.

~~~
corin_
I certainly didn't mean to imply that some art is not "real art", if anything
I have a lot more respect for video editors, web designers, marketing
designers than I do for most modern painters (from a very subjective quality
of work point of view).

All I was trying to do was find a decent way to seperate art that isn't
related to anything technical, of the type that (loosely speaking) has been
being produced for centuries(/more), and stuff like video, web etc.

As to not thinking my wording is the problem - your replies have showed that
the impression I gave you wasn't at all what my thoughts were, so clearly that
was the problem.

------
ekm2
All of you have covered Western History extremely well.Which are the best
books to study Asian and African History?

------
larrys
"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.

------
shoham
"I'm about to become a teacher. How can I be a good one?"

Also, be ready to put up with bullshit from parents, admins and other teachers
who insist on the path of least resistance.

------
seanmccann
How important is knowledge of history when it comes to building a startup?
What are the most important periods of time to learn about?

~~~
biot
Start with 1995 - 2001.

------
shithead
I wish some people would bless us with dates on their timeless essays.

(You too, Peter Norvig.)

~~~
jed_s
[http://wayback.archive.org/web/*/http://www.paulgraham.com/r...](http://wayback.archive.org/web/*/http://www.paulgraham.com/raq.html)
crawled 130 times going all the way back to February 7, 2004

------
zackattack
If somebody compiles the history books into an Amazon shopping list, I would
gladly use your affiliate link. I haven't read any of them, which is shameful.

~~~
portman
[http://www.amazon.com/Civilisation-Kenneth-
Clark/dp/07195684...](http://www.amazon.com/Civilisation-Kenneth-
Clark/dp/0719568447/)

[http://www.amazon.com/Medieval-Technology-Social-Change-
Whit...](http://www.amazon.com/Medieval-Technology-Social-Change-
White/dp/0195002660/)

[http://www.amazon.com/Penguin-Atlas-Ancient-History-
Hist/dp/...](http://www.amazon.com/Penguin-Atlas-Ancient-History-
Hist/dp/0140511512/)

[http://www.amazon.com/New-Penguin-Atlas-Medieval-
History/dp/...](http://www.amazon.com/New-Penguin-Atlas-Medieval-
History/dp/0140512497/)

[http://www.amazon.com/World-We-Have-Lost-
Explored/dp/0415315...](http://www.amazon.com/World-We-Have-Lost-
Explored/dp/0415315271/)

[http://www.amazon.com/Extension-Man-History-Physics-
Quantum/...](http://www.amazon.com/Extension-Man-History-Physics-
Quantum/dp/0262523868/)

[http://www.amazon.com/Autobiography-Benjamin-
Franklin/dp/161...](http://www.amazon.com/Autobiography-Benjamin-
Franklin/dp/1612930131/)

[http://www.amazon.com/Life-English-Country-House-
Architectur...](http://www.amazon.com/Life-English-Country-House-
Architectural/dp/0300058705/)

[http://www.amazon.com/Mohammed-Charlemagne-Henri-
Pirenne/dp/...](http://www.amazon.com/Mohammed-Charlemagne-Henri-
Pirenne/dp/159740487X/)

[http://www.amazon.com/Fall-
Constantinople-1453-Canto/dp/0521...](http://www.amazon.com/Fall-
Constantinople-1453-Canto/dp/0521398320/)

[http://www.amazon.com/Guns-Sails-Empires-Technological-
Innov...](http://www.amazon.com/Guns-Sails-Empires-Technological-
Innovation/dp/089745071X/)

[http://www.amazon.com/History-Rome-Origins-Roman-
Historians/...](http://www.amazon.com/History-Rome-Origins-Roman-
Historians/dp/B000KTLMLC/)

[http://www.amazon.com/Art-War-Middle-
Ages-378-1515/dp/080149...](http://www.amazon.com/Art-War-Middle-
Ages-378-1515/dp/0801490626/)

[http://www.amazon.com/Lives-Artists-Oxford-Worlds-
Classics/d...](http://www.amazon.com/Lives-Artists-Oxford-Worlds-
Classics/dp/0199537194/)

[http://www.amazon.com/Golden-Trade-Moors-Kingdoms-
Fourteenth...](http://www.amazon.com/Golden-Trade-Moors-Kingdoms-
Fourteenth/dp/1558760911/)

[http://www.amazon.com/Gallic-Wars-Caesars-Account-
Conquest/d...](http://www.amazon.com/Gallic-Wars-Caesars-Account-
Conquest/dp/1934941425/)

[http://www.amazon.com/Copernican-Revolution-Planetary-
Astron...](http://www.amazon.com/Copernican-Revolution-Planetary-Astronomy-
Development/dp/0674171039/)

Note that about half of these are out of print.

------
NY_Entrepreneur
Nice. He covers several topics that would be good to have covered on some
"What I wish my father had explained to me when I was 12, however, I've come
to expect that mostly he didn't understand very well.". But among topics it
would have been good to have had Dad cover, PG omits the biggie, especially
for hackers, maybe for painters -- how to make an A in Women 101-102!

~~~
larrys
"how to make an A in Women 101-102!"

My initial reaction to this was to agree with the statement. And I still sort
of do.

But I think women (or men) can be a big distraction if you are trying to
create something. That being said the correct woman or men can help you
achieve as well if the relationship is stable. The statement "behind every
great man" there is a ... is basically true from my experience.

~~~
NY_Entrepreneur
"Behind every great man is a woman"? Maybe! In the case of FDR, Ike, Patton,
and McArthur, I suspect it was more their mothers than their wives! Few men
have such helpful mothers!

Then there is your "if the relationship is stable". Well, yes, and
'effective'! So, and especially for the huge fraction of men who don't have
mothers as helpful as FDR's, how to get such a 'relationship'????!!!! May I
suggest Women 101-102!!!!

Otherwise, yup, "can be a big distraction if you are trying to create
something". Twelve year old boys, BELIEVE this!

Indeed, one of the first lessons in Women 101-102 is: Since the sixth grade or
so, you REALLY wanted the girls to like you, right? So, you did this and that
and it didn't work very well, right? Well, heavily what the girls want to see
in a boy or man is someone strong, capable, and confident who understands the
emotions of girls and women and is nice to them. For a while, being a
successful quarterback on the varsity football team can work well. But, big
secret: What REALLY works well is to be out of school, have a good career
going, have plenty of money in your pocket, have a nice car, say, a recent
Corvette, have a house bought, and have plenty of money to be able to support
a wife and children. Then a large fraction of the females will, to exaggerate
a little, do 'just ANYTHING' to be 'friendly'! Usually they won't even be able
to help themselves! Uh, that reaction is a 'built-in function'! With these
advantages in place, your brand of aftershave, blue jeans, shoes, cell phone,
manner, tone of voice, pickup lines, even height and weight, etc. won't much
matter! How 'bout that!

In particular, largely f'get about females your own age. Instead, in your
teens, go for girls 1-4 years younger than you are. If she is 13 and you are
16, then she can be REALLY impressed that you have your own car but won't
expect you to have a good career or a house yet!

Next, as from an expert on females, "Of COURSE, women are MUCH more emotional
than men. That's the cause of all the problems.". Yup, not exactly right, but
close! In a 101 level description, what rationalism and logic are for a hacker
programming, fixing a car, diagnosing a network problem, etc. emotions are for
females. In simple terms, first-cut, at the level males need to understand
starting at age 12, the life of a female is all about emotions. Even when she
is doing math or science, mostly she is seeking good 'emotions' from praise,
acceptance, and approval from others she wants to please!

That's enough!

~~~
larrys
Not sure what you mean by this:

"Twelve year old boys, BELIEVE this!"

~~~
NY_Entrepreneur
The "this" was "can be a big distraction if you are trying to create
something". Or, put more clearly, 12 year old boys need to understand that (1)
it is getting time for them to start to take the rest of their life seriously,
(2) for that seriousness, it is time for them to get into some hard work
learning and doing, (3) being 'creative' eventually is important, and it is
not too soon to get started, (4) for this seriousness, getting much involved
with females can be a distraction from a little bit with little harm and maybe
some benefit up to too much and a lot of harm.

~~~
larrys
Ok I see what happened. When I read the statement for some reason I missed the
comma.

So I read it like "12 year old boys believe this!!!" (mocking)

rather than

"12 year old boys need to understand this!!"

Good points and the inverse is true for women. My sister spent much of high
school being popular and although she was smart (and later got a Masters) she
didn't achieve as much as she could have had she not been as popular and
attractive and good personality. No question in my mind about that.

------
NY_Entrepreneur
"I want to start a startup, but I don't know how to program. How long will it
take to learn?"

A year? Depends! To be very useful on Windows, really need to be okay on the
content of several books, each about 1000 pages long, have worked through
about 2500 Web pages of documentation at Microsoft's MSDN, along with more
pages from other sources. Then need to write some code, at least as exercises,
using what learned. For writing code, need to learn either an integrated
development environment (IDE), e.g., Visual Studio, or get good with a
powerful text editor (I use KEdit) and its macro language (I have about 150
such macros) and a scripting language. And need to get good with Windows,
e.g., have traversed much of the obscure tree of things to click on. And need
to be good at software installation, e.g., .NET Framework, service packs, IIS
(for a Web server), Internet Explorer and some other Web browsers, likely some
version of Office, maybe Knuth's TeX, SQL Server or some alternative, etc.
Should learn some Word, Excel, and PowerPoint. Should learn some T-SQL, HTML,
CSS, ASP.NET, and ADO.NET. Also need to be good at backup and recovery,
ESPECIALLY of the operating system and boot drive. A year? Want to give up
sleep for a year?

~~~
pbreit
For web development, you don't need any of that. And anyone taking up pg's
suggestion should not be using anything from Microsoft.

~~~
NY_Entrepreneur
"For web development, you don't need any of that."

For Web development on Windows, that is a good list of a minimal list of
EXACTLY what is needed. Web development on Windows is JUST what I'm doing, and
that list of topics is JUST what is centrally involved.

What are you going to leave out? T-SQL? OS backup and recovery? Good skills
with an IDE or editor?

Yes, learning most of, say, Visual Basic by itself is easy. The 'rub' is that
for anything at all serious in Web development or just software development,
it is just crucial to make good use of .NET, and that is HUGE. For a long
time, nearly each time you turn around, you will need to use another .NET
class, and that will take you 1-3 dozen Web pages at MSDN to find, download,
save, index, abstract, and read. The total of MSDN Web pages needed adds up
quickly: I have over 2500 now, and it grows quickly. Just yesterday I
downloaded a lot just for 'request data validation'. Before that, the topics
were HtmlEncode and UriEncode. Before that, TCP/IP sockets. Before that,
Windows Communications Foundation. Before that Windows 'remoting'. Before
that, Windows remote procedure call. Before that, a LOT on SQL Server
administration and mangement. And on and on and on. It's ENORMOUS.

~~~
philwelch
> For writing code, need to learn either an integrated development environment
> (IDE), e.g., Visual Studio, or get good with a powerful text editor (I use
> KEdit) and its macro language (I have about 150 such macros)

All you need at first is something you can type text into that knows how to
highlight syntax. You don't even need to know the features of that particular
editor, aside from stuff like "save" and "open".

> and a scripting language.

For what, exactly?

> And need to get good with Windows, e.g., have traversed much of the obscure
> tree of things to click on. And need to be good at software installation

Why? How does this actually help? How is this actually difficult?

> Should learn some Word, Excel, and PowerPoint.

None of that has anything to do with programming. And how is this actually
difficult?

> Should learn some T-SQL, HTML, CSS, ASP.NET, and ADO.NET.

Well, you need HTML and CSS for sure, and you need SQL. And I think you're
going about it the wrong way if you try and comprehensively read and memorize
the API documentation for every single framework call you make. Any programmer
looks up what he needs on a case by case basis and over time comes to remember
the stuff he uses a lot.

But I think you're just making it harder on yourself using the Microsoft
stack. There are, believe it or not, entire web development frameworks where
you don't actually need to manage the TCP/IP sockets yourself.

> Also need to be good at backup and recovery, ESPECIALLY of the operating
> system and boot drive.

This is part of owning a computer, not programming. It's also not difficult.

~~~
NY_Entrepreneur
The question was:

"I want to start a startup, but I don't know how to program. How long will it
take to learn?"

So, he wants to "learn" "how to program". Good objective, clearly stated.

For your

"All you need at first is something you can type text into that knows how to
highlight syntax. You don't even need to know the features of that particular
editor, aside from stuff like 'save' and 'open'."

Your

"All you need at first"

is not very relevant to the clearly stated objective of learn to program for a
startup. You just ran off the subject to try to find something to object to.

From your statement, it would appear that even Notepad would be sufficient,
but it is not. Instead for anything productive even just in the learning, what
I wrote is on the center of the target.

Actually, the editor I use, KEdit, does know "how to highlight syntax", and I
think so little of that I keep it turned off and don't use it. I didn't go
into what makes a good editor or IDE, but there's a LOT to it even when "how
to highlight syntax" doesn't make the list.

For your

"> and a scripting language.

For what, exactly?"

If not using an IDE, then need a scripting language for common tasks otherwise
done by the IDE. Or maybe you would expect the poor student to type

    
    
        C:\Microsoft.NET\Framework\v2.0.50727\vbc.exe
    

each time they wanted to do a Visual Basic compile? For the Microsoft C/C++
compilers used outside of an IDE, generally need to set up a lot of
environment variables, and want those in a script. Once actually see how to
build a DLL, want that in a script so have some good documentation of just
what did and don't have to look it up, make it work, and type it in all over
again. For running T-SQL, don't want to type in

    
    
         C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE
    

so want that in a script, along with some more options. And DO want to do a
LOT with T-SQL instead of, say, SQL Server Management Studio (SSMS) because
(1) the documentation of T-SQL is much better, (2) get an explicit record of
just what did, (3) get to put comments in the file with the T-SQL (no place
for comments when using a GUI) so that six months later can understand what
did, (4) some of the most competent documentation for how to do system
management and administration of SQL Server is in terms of T-SQL and not
clicks on SSMS.

What I wrote is correct: If don't depend on an IDE for essentially everything
in the development, then need a scripting language.

For

"> And need to get good with Windows, e.g., have traversed much of the obscure
tree of things to click on. And need to be good at software installation

Why? How does this actually help? How is this actually difficult?"

If get very far with it, then it's horrendous. The clicking and clicking and
clicking goes on and on. There's next to nothing good in documentation. Much
of what need to learn is just by trying, e.g., for everything in sight on the
screen right click, left click, double right click, double left click and see
what the heck happens.

"> Should learn some Word, Excel, and PowerPoint.

None of that has anything to do with programming. And how is this actually
difficult?"

If they don't know how to program, then maybe they won't know these tools,
either. If they are doing a startup, then they should know them. Word is a
pain in the back side, very poorly documented, and commonly takes about two
weeks to get good enough to do, say, a document good enough to be, say, a
'business plan' or a report to the Board. Similarly for writing letters to the
government, lawyers, etc.

Excel, if get far enough to do some financial projections for fund raising or
the Board the first time takes some days or weeks.

Once are okay with Word and Excel, then PowerPoint can go quickly, say, the
first good 'foil deck' takes a few days wrestling with PowerPoint.

And I omitted Outlook: Back when I was on OS/2, I wrote my own POP3 e-mail and
used it for years as a great tool. But with Outlook, I commonly yell and
scream myself hoarse in frustration. Outlook is awash in serious problems:
E.g., the PST files are by default in a hidden directory deep in the directory
tree on the boot drive; takes a while to discover this and how to put the PST
files in a decent place. "Decent"? Yes: DO want to backup the PST files as
part of daily incremental backup, but do NOT want the boot partition as part
of the daily incremental backup. So, have to get the Outlook PST files OFF the
boot partition. Next, starting a new PST file commonly causes Outlook to lose
the Contact List, and to get back the list have to discover a certain Web page
at Microsoft and go through an obscure dance of about 12 steps. If have more
than one PST file seen by Outlook, then on each use of Outlook it will set the
archive bits of all the PST files so that they all get backup in incremental
backup. So need to find a workaround or can have the daily incremental backup
start at 500 MB or so. The options in Outlook are horrendous to get set
appropriately; I finally traversed the whole tree of menus, set everything,
and documented each click. We're talking DAYS of work. It's super tough to
find old e-mail in Outlook. And those are just some of the problems; I omitted
security issues and much more.

"And I think you're going about it the wrong way if you try and
comprehensively read and memorize the API documentation for every single
framework call you make. Any programmer looks up what he needs on a case by
case basis and over time comes to remember the stuff he uses a lot."

I wrote nothing that suggested I "comprehensively read and memorize ..." You
are straining to get off the subject to find things to criticize. Indeed, I
wrote that I "index, abstract" the documentation, of course "to look up" as
needed. Still, at least the first time, have to read the pages downloaded.
And, again, to get very far with the goal

"I want to start a startup, but I don't know how to program. How long will it
take to learn?"

especially for "a startup", really WILL need MORE than 2500 such Web pages. To
pull this all off in one year, we're talking ballpark 10 Web pages a day, on
top of the rest. It's beginning to look like a busy year.

For

"But I think you're just making it harder on yourself using the Microsoft
stack."

there are pros and cons going with Microsoft. While there are alternatives,
net it's not a bad decision. It's not the more popular decision here at HN,
but it's still okay, and it's the one I selected so can write about. If some
alternatives are much faster, fine, but for the goal

"I want to start a startup, but I don't know how to program. How long will it
take to learn?"

especially for "a startup", my main point is correct: Going with Microsoft,
one year is FAST.

For

"> Also need to be good at backup and recovery, ESPECIALLY of the operating
system and boot drive.

This is part of owning a computer, not programming. It's also not difficult."

It's also commonly neglected, especially by people who are not yet deep enough
into computing to program. So, it is reasonable to believe that the person
might have to learn. For a startup, it's IMPORTANT.

And, as I wrote, for

ESPECIALLY of the operating system and boot drive

it IS difficult. It's a self-inflicted, unanesthetized root canal procedure,
at least.

Oh, it's easy if don't do it. And it's easy if do it but don't test to see if
it actually works, that is, results in a bootable partition with everything
back where it was. But if do it and confirm that it actually works, then it's
TOUGH. Just the testing requires running experiments where have to reinstall
the OS, likely several times.

There may be some easy ways to proceed, with some special third party programs
or some newer versions of Windows, but for XP SP3 and using NTBACKUP, we're
DEFINITELY talking a self-inflicted, unanesthetized root canal procedure, at
least. Why? The relevant documentation for NTBACKUP totally sucks: About all a
user can do is just guess and try. Getting a good solution to backup and
restore of a bootable XP SP3 partition with NTBACKUP is a real accomplishment,
1-2 weeks of work. But NTBACKUP does have some highly desirable functionality:
It can do a 'shadow copy' where it backs up the boot partition while the
partition is booted and running. And it can restore to another disk partition
(with the same drive letter) of a different size.

As I discovered the hard way, the testing to be sure the are doing the backup
so that a restored partition actually is bootable is just CRUCIAL.

Actually, in the end, NTBACKUP can be okay, but the documentation is so bad
that lots of experiments are needed to get the procedure working correctly and
test it to be sure it is working correctly. The main problem is just the
documentation. If someone hands you some good documentation, say, in a well
documented script, then you can be okay right away. Then you can save 1-2
weeks.

~~~
philwelch
You're making things unnecessarily difficult for yourself, and I don't know if
it's because you're ignorant of other options, because you lack the ability to
figure out better solutions to your problems, or because you have an
irrational compulsion for unproductive busywork. I've never heard of anyone
actually documenting every click it takes to configure Outlook. I don't even
know what you're talking about when you say you "index" and "abstract" API
docs--I just keep them open in a browser window and search for things I don't
remember offhand. Maybe all this busywork is a coping strategy for being out
of your depth, but it still isn't productive.

Here's how I solved the backup problem: I bought an external hard drive,
connected it to my Mac, and clicked "yes" when my Mac asked if I wanted to use
it for backups. Here's how I solved my email problem: I set up Google Apps on
my domain, which took a total of maybe 30 minutes (though I'm sure you'd go
through and document every single click it took to configure the DNS
settings). Here's how I got my first editor: I got TextMate and started using
it, and was productive from the first second. As far as scripting languages
for building code, I think I learned how to use make and that's about it.
_That's all I needed to do to be productive_. I can, and in many cases have,
wasted time wanking over configuring everything in finer detail, but that's
not a useful mentality.

It's probably not even about Microsoft at this point. There are lots of
programmers who are productive on Microsoft (though I've never met a serious
programmer who actually uses Visual Basic). You just don't seem to be one of
them if it's as much of an ordeal for you as you make it out to be.

~~~
NY_Entrepreneur
You are uninformed, have some problems with reading comprehension, have too
little knowledge of computing, or are just trying to criticize for no good
reason.

Everything I said is well informed and well justified.

While you were not clear on just what you did on a Mac, for your

"Here's how I solved the backup problem: I bought an external hard drive,
connected it to my Mac, and clicked "yes" when my Mac asked if I wanted to use
it for backups."

on Windows XP SP3 that in no way addresses the problem I explained now twice:
Back up a bootable partition so that it can be restored and bootable.

One severe problem with such backup is backing up a booted partition as it is
running. As I explained, NTBACKUP has this problem solved, with 'volume shadow
copy', but the solution is involved. You didn't describe how Mac has this
problem solved.

As I explained, the problem with NTBACKUP is the documentation and getting the
options so that the backup can be restored and be bootable. Due to the
documentation problems, that is NOT easy.

And once you have such a backup of a bootable partition, how do you restore
it? I do have a solution, have tested it, and have shown that it WORKS.

Again, yet again, there can be solutions with third party software and/or
versions of Windows after XP SP3, but for that version of Windows what I wrote
is a very accurate description of what HAS to be done if just using
Microsoft's software.

Your claim that I am making things too difficult in backup is just flatly
WRONG -- uninformed, misinformed, and just plain WRONG.

For Outlook, your solution was to use gmail. That has some pros and cons, and
I don't like the cons.

For writing down all the clicks in configuring Outlook, you don't have a
better solution. There are a LOT of options for Outlook -- a LOT. Some of them
are important for security. About the only way to get all the options right is
to do JUST what I did. Security problems with bad options in e-mail programs
have been grim for years; maybe most Outlook users without a support group to
set all the options have some security holes.

Your claim that I am making things too difficult in Outlook is just flatly
WRONG -- uninformed, misinformed, and just plain WRONG.

Heck, I even omitted describing setting options for Internet Explorer and
Firefox. For Firefox, a default option is to PERMIT running Java in a Web
page. OUTRAGEOUS security hole: Java can do ANYTHING. If a user is not REALLY
careful with Firefox options, then they will have Java enabled.

Your

"though I've never met a serious programmer who actually uses Visual Basic"

taken literally means nothing but suggests something misinformed, uninformed,
and just plain wrong: In fact, on Windows, the .NET version of Visual Basic is
fine: It gives essentially full access to the basic 'common language runtime'
(CLR) and .NET; it has full 'managed code' including its memory management;
using another language on the CLR is mostly just a matter of different
syntactic sugar. An advantage of Visual Basic is that the syntax is easy to
read and not borrowed from the too sparse and idiosyncratic C/C++ tradition as
in C#.

When I hire people, I will have them start on Visual Basic because it is
easier to get going with than C#.

On Windows, what language would you use? C/C++? That's not Windows 'managed
code', and managed code is IMPORTANT. So your main options will be C# or
Visual Basic. You could use either one, but working for me I'd ask you to use
Visual Basic. You would not be able to use C/C++.

Your claim that I am doing something wrong using Visual Basic .NET is just
flatly WRONG -- uninformed, misinformed, and just plain WRONG.

For your

"I don't even know what you're talking about when you say you "index" and
"abstract" API docs--I just keep them open in a browser window and search for
things I don't remember offhand."

your confession that you don't know is on target. As I wrote, I have something
over 2500 Web pages of Microsoft MSDN documentation. For those 2500 pages,
what you described is not a solution. For a solution, my "index" and
"abstract" are a good solution: So, I have some simple, 'flat ASCII' files. I
have one for each of Visual Basic, Windows, ASP.NET, and SQL Server. Typically
I have about two of these files open in my favorite editor. For an issue, say,
about ASP.NET or related parts of .NET or communications, I start with the
file for ASP.NET. In that file each Web page of documentation has a few lines.
Some of the lines give the title of the Web page; another line gives the tree
name of that Web page on my system; those two lines form the 'index' and are
an appropriate use of 'index'. Also there are a few more lines that say a
little more about what is in the page, typically copied from the first
paragraph or two of the page. If the page is a good 'root' page for a larger
topic, then that is noted. Those extra lines are the 'abstract'. And there can
be some additional notes of mine.

To find something, I just use the 'locate' command of my editor. Then to open
the Web page, in my editor I give one keystroke on the line with the tree
name.

Works fine.

But there's no way, as you suggest, to have all 2500 Web page files open at
once, and your solution said nothing about how to find the right one of the
2500 pages but my solution did. And there is no XP SP3 'search' function
nearly as effective as what I have with the four files and my editor.

Your solution with 2500 Web pages would be much less productive, not more.

Same for using a weak editor, C/C++, MAKE instead of a scripting language, and
more. And your suggestion for backup on XP SP3 has little chance of resulting
in being able to restore the boot partition so that it will boot.

Your claim that I am doing something wrong with my indexing and abstracting of
those 2500 Web pages is just flatly WRONG -- uninformed, misinformed, and just
plain WRONG.

For your "ignorant", "irrational compulsion", "unproductive busywork", those
are all insulting, uninformed, misinformed, and just plain WRONG.

Again, yet again, one more time, the original question, go back and read it
for yourself, was:

"I want to start a startup, but I don't know how to program. How long will it
take to learn?"

and you responded with

"That's all I needed to do to be productive"

which does not answer the original question.

E.g., you said nothing about SQL Server. Hmm .... So, yes, from a plugin in a
Web browser, I got a virus. Right: Now I keep nearly all plugins disabled.
Have to work at this since some software installs and enables browser plugins
without notice. That virus was from one use of the Akamai download manager to
get a PDF file on a motherboard from an Asus Web site. Bummer.

So, to be sure to solve the virus problem, I reinstalled Windows, Office .NET,
TeX, SQL Server, etc.

Then I wanted SQL Server to read my old database, which was not on the boot
drive and not damaged in the reinstallation. So, I used the T-SQL CREATE with
ATTACH. This didn't work (for complicated reasons, not my fault). Finally, in
trying to get SQL Server to use my old database, SQL Server got 'sick' and
quit doing much of anything. So, I tried to uninstall SQL Server. It wouldn't.
I tried to 'repair' it; it wouldn't repair. I tried to reinstall SQL Server;
it wouldn't. Basically SQL Server had just wiped out my boot drive, and I had
to start over with the boot drive. BUMMER.

Now I have a backup, bootable, of my boot partition with everything installed
EXCEPT SQL Server so that if SQL Server ruins my boot partition again I will
be able to restore the boot partition from just before SQL Server and then
reinstall SQL Server. Some of what is important with Windows and SQL Server
'administration and management'.

Yes, I have more than one bootable partition!

One of the problems was that when I installed SQL Server as I had before the
virus, what was installed was different -- strongly against my wishes, I ended
up with two versions of SQL Server with 'side by side' installation. Well,
apparently 'side by side' is just awash in bugs so that can't uninstall,
repair, or reinstall.

I finally got through it, but it was NOT fast.

You didn't mention SQL Server. But for the original question, SQL Server or
some substitute stands to be important.

So, what you are doing that is "productive" does not answer the original
question. I answered the original question, and you didn't.

On what I'm doing, you are WRONG, consistently, 100% WRONG.

That's enough of responding to your errors.

~~~
ehsanu1
Hey mods, please hellban this guy. I keep a short list of users I see who've
been hellbanned, but have generally nice comments, because it always bothered
me a bit, but sometimes it's warranted.

~~~
NY_Entrepreneur
Same to you.

