Hacker News new | past | comments | ask | show | jobs | submit login
PG's Rarely Asked Questions (paulgraham.com)
299 points by wallawe on Sept 18, 2011 | hide | past | web | favorite | 213 comments

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.

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.

Hrmm...while I haven't read all of those books - granted I am still relatively young (sub 30) - I too feel like I have no outlet to really debate various topics that I would love to.

People really aren't interested.

If there was some forum where people of like minds could get together and talk (verbally, not typing on a keyboard) say a Google Hangout or something, I think that would be awesome and definitely something I would be interested in.

Provided it can be moderated and organized and not be chaos (and focused on content, learning, expanding knowledge, etc.).

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.

I would add Jacob Burckhardt's The Civilization of the Renaissance in Italy to the book list. It appears to be a glaring omission.

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

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

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.

I've meant to compile this list, so you just inspired me. I wish the Durants had had the stamina for one more volume. I don't know much about the European revolutions of 1848 and would have like to read about that time from them. I already had read a lot of ancient Greek literature in translation as well as The Pentateuch, all the historical books of the Old Testament and the Gospels. Western Civilization springs from intellectual roots in Athens and Jerusalem, so any survey has to include that heritage. My degree is in Comparative Literature, so I put a lot of stock in origninal source material. The only languages I read are English and German, so everything is in English or translation except Faust, which IMO would be a waste in translation. The books I read for my survey (this was my survey to fill in my personal Bildungslöcke) are not all classics, and not even all to be recommended. It may appear surprisingly heavy on 20th century, but a lot of intellectual threads I thought I should understand better got kicked off in that century. In more or less chronological order by authorship or content (and I've probably forgotten a few):

Euclid The Elements

Arrian The Campaigns of Alexander

Garmonsway (trans.) The Anglo-Saxon Chronicle

Komroff (ed.) The Travels of Marco Polo

Haydn The Counter-Renaissance

Braudel The Mediterranean and the Mediterranean World in the Age of Phillip II, Vol I&II

Pascal The Thoughts

Spinoza The Ethics

Christianson In the Presence of the Creator: Isaac Newton & his Times

Newton Opticks

Newton Principia (get the modern English translation by U.C. Press)

Hampson The Enlightenment

Voltaire Candide

Rousseau The Social Contract

Boswell Life of Johnson

Goethe Faust

Phillips The Cousins' Wars

Schom Napoleon Bonaparte

Heidler & Heidler Old Hickory's War

Babbage On the Economy of Machinery and Manufactures

de Toqueville Democracy in America

Darwin On the Origen of Species

Foote The Civil War: A Narrative

Maurois Disraeli

Twain Life on the Mississippi

Spector Admiral of the New Empire, The Life and Career of George Dewey

Cardwell The Norton History of Technology

Abbott Flatland, A Romance of Many Dimensions

Meyer & Brysac Tournament of Shaddows, The Great Game and the Race for Empire in Central Asia

Doughty Travels in Arabia Deserta

Lefevre The Golden Flood

Massie Dreadnought, Britain, Germany, and the Coming of the Great War

Lawrence Seven Pillars of Wisdom

Durant The Story of Philosophy

Cardozo The Nature of the Judicial Process

Schapiro The Communist Party of the Soviet Union

Popper The Logic of Scientific Discovery

Kershaw Hitler: 1889-1936 Hubris

Blemenson (ed.) The Patton Papers (1940-1945)

Hayek The Road to Serfdom

von Mises Human Action

Skinner Walden Two

Chambers Witness

Kuhn The Structure of Scientific Revolutions

Guevara Guerrilla Warfare

Cleaver Soul on Ice

Lacey The Kingdom, Arabia & the House of Saud

Durant The Lessons of History

Hackworth Lessons Learned, Vietnam Primer

Quigley Tragedy & Hope: A History of the World in Our Time

EDIT: Just remembered two more

Hobbes Leviathan

Locke Two Treatises of Government

If you don't mind reading German then you might be interested in the the four volume series "Deutsche Gesellschaftsgeschichte" by Hans-Ulrich Wehler. Friends from Germany keep telling me that this is the reference about Germany's society. Parts II and III should cover 1848 and I figure there are similar texts for other European countries.

(Since you've read Faust and the intial post mentions Gibbon's Rise and Fall, you might be interested in Theodor Mommsen's "History of Rome" as well.)

Quick question: Is Origen really the name of Darwin's book, or is it just misspelled? You (mis?)spelled "Origin" the same way everywhere, which makes me wonder...

P.S. I'm heartened to see Mises and Hayek on your list. I recommend adding Burke and (especially) Carlyle. If you can fully digest Carlyle, your fear for democracy and republican government will turn to panic, and your journey to the Dark Side will be complete.

According to google image search, it's Origin: http://www.google.com/search?hl=en&q=On+the+Origin+of+Sp...

Misspelled. Caught me.

You may have seen Ideas: A History of Thought and Invention by Watson. Could be a good umbrella book to tie it all together.

I remembered another book from my survey of western civ:

Tuchman A Distant Mirror

Did you enjoy Spinoza's Ethics?

At the time I found it somewhat interesting, but it's one of the books that really didn't stick with me. as I progressed reading through the centuries it was more interesting within the developments of its time and immediately succeeding era. Reading the philosophers I have read, it always struck me they encapsulated a certain essence of the era that followed their time. Probably post hoc selection has a lot to do with why they are still remembered. I think PG is right about most philosophy. I haven't read any at all in over a decade.

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.

There are democratic countries where it is compulsory to vote .

This of course brings it's own set of problems...

In Australia it is compulsory to vote. Having lived here through four general elections, I actually believe it has a negative effect on democracy.

That is to say, compulsory voting forces the most disinterested and politically ignorant members of society into the polling booths. It usually favors the most conservative party. In Australia that translates to maintaining "old-fashioned" views on, most notably, processing of refugees.

Is that problem really caused by compulsory voting, or more Australian society in general?

Australia was sporting the White Australia policy up until about 30 years ago, and still requires citizen applicants to pass an 'English' test. It's rather primitive and discriminative processing of refugees (arriving by boat only!?) seems to fall in line with that as well.

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

This is a good program. It reminds me of the curriculum of St. John's College: http://en.wikipedia.org/wiki/St._John%27s_College_(United_St...

Perhaps I'm overly optimistic, but it seems plausible to me that there's a subreddit out there for people just like you.

I was contacted by St.John's as a high school senior, and thought their program looked really interesting, but my folks couldn't afford a private college for me. In those days a California resident could go to U.C. and it just cost living expenses and books.

Either DepthHub or TheAgora, maybe.

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.

Don't confuse knowledge with understanding. Almost all good things exhibit diminishing returns. One lesson of history is to gain deeper understanding of human nature. That is a big key to understanding politics in any age. Plenty of people become adept at politics knowing nothing of history. Another lesson of history is to understand the balance between conservatism and progressivism. Birds need left wings and right wings to fly. Healthy societies need conservatives and progressives, but the so-called left/right dynamic is only the most apparent dynamic in politics, the one with the most entertainment value; and so the entertainment industry exploits it and ends up devolving political discourse. Think of the carnival side-show 3 shell game. The shells moving around and the banter between the con-man and the shills distracts everyone and provides entertainment. Where the ball ends up is the libertarian/authoritarian dynamic of politics. Most people don't have a clue, but if you have gained understanding from history (which requires studying a balance of sources) you see it. History is only one course of study to gain understanding of human nature and balance.

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

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

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.

I don't understand why this crowd is more likely to hit the verbal 'dislike' button than average. Why do people think it's so important to share that they resist the attraction of something? The name-calling and prodding is especially disturbing.

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


So there is some discussion in the other thread, but I'll add my own. You ask that philosophy be useful. Here then, is a useful question:

Suppose that my mother has Alzheimer's disease, and that I find the prospect of caring for her inconvenient, undesirable, and/or expensive. Do I have a responsibility to care for her anyway?

It is "useful" because it could potentially describe a real-life situation in which one might have to make a decision. Analyzing this quickly leads one to a general discussion of ethics.

As you point out, definitions are imprecise. What does it mean to say I have a "responsibility", or that I "ought" to do something? Logic and observation can get one to "If I do nothing, then my mother will suffer and/or die", but this is not the heart of the matter.

I think there is no hope of a "solution", in the same way, say, that Fermat's Last Theorem was proved. But does that mean that studying ethics, and what the usual lineup of dead white males had to say about it, isn't worthwhile?

That sort of question is certainly important. I worry though that like most of ethics this is one of those cases where philosophers don't get any better answers than your grandmother.

Paul, I don't think my grandmother could give me a very good justification for why she eats meat. I, however, armed with Singer's arguments from Animal Liberation could show that eating meat needs to be justified and that I can't justify it. Same goes for whether profiting from closed source software is ethical. Same goes for whether homosexuality is evil. These are all cases in which it would be possible to show, systematically, how one's views are contradictory, or really empirical questions. This appears to be a philosophical task, not a common sense one.

Funny, then, that I, armed with the same arguments, just had a delicious steak for dinner. I imagine many a philosopher has considered Singer's arguments and had a delicious steak nonetheless; mathematicians and scientists don't have this problem.

The problem with ethics is that you can't show systematically that meat, closed source software, homosexuality, infanticide, government, self-defense, or torture are justified or unjustified. You have to have some type of basis for logic, and even if you come up with some sort of foundational principle, there's nothing special about foundational principles that makes one any more or less likely to reject them than the conclusions you reach from them. The history of ethics is a history of people working out logically consistent ethical systems only to discover that they justified things like kidnapping strangers and killing them for their organs, and based on the "moral intuition" that it's wrong to kidnap strangers and kill them for their organs, the logically consistent ethical system was amended. The history of philosophy is filled with this kind of thing, but let's think about what we're doing here! What do we need ethics for if all we're going to do is change them when they end up having unintuitive results?

You might read Reasons and Persons by Derek Parfit if you haven't already.

Not that he offers solutions per se, but he starts from a similar view of the subject.

> I, however, armed with Singer's arguments from Animal Liberation could show that eating meat needs to be justified and that I can't justify it.

The amount of philosophy needed is not too significant. One needs to know enough logic to show that inability to find a justification doesn't mean a justification doesn't exist.

So if someone is using Singer's arguments from Animal Liberation to persecute meat eaters and you want to do something about it, general skill at persuasion is more important than philosophy.

I glossed over some of the subtleties. To show that eating animals needs to be justified requires extending our ethical framework to animals beyond humans. Nobody feels the need to justify eating vegetables, for example, nor have compelling arguments been presented that this is unwarranted.

Also: most disciplines require "general skill at persuasion," philosophy being no exception.

Nobody feels the need to justify eating vegetables, for example,

To the contrary, almost every vegetarianism argument on the Internet has comments like "plants are living things which you slaughter for food", and they just get ignored.

I suspect because if you seriously believed killing living things for food is wrong, it would be suicide, so the only conceivable answer is to reason in such a way that it comes out with the answer you want - draw your arbitrary cutoff between important-living-things and not-important-living-things somewhere above plants and bacteria while staying comfortably below humans.

Then let the argument rage as if there was a real substantive difference between drawing the line above cow or below cow, or just diverting it around milk, or only around milk sourced in a particular way.

Anybody using that argument is talking nonsense. There is no evidence that cutting a cabbage causes it pain and suffering.

On the other hand, you can look at the vast similarities between our nervous systems and those of other vertebrates as well as their behavior under pain (squealing and so on) to reasonably conclude that these animals feel pain like we do.

There is no evidence that cutting a cabbage causes it pain and suffering.

We don't have as much evidence and the evidence we do have isn't as visceral or widely discussed. That doesn't mean there is no evidence.

You're distorting my position anyway. I'm not stating that it is categorically unethical to eat living things, only that any enjoyment we get out of meat over vegetables isn't worth animal suffering. In no way does a weak position that plant suffering is possible make a strong case for animal suffering inadmissable to our eating choices. That's simply absurd.

And you focusing on plant suffering is distorting my position. By killing plants, we stop them from being alive and furthering their goals, for our purposes.

By focusing on pain and suffering you are implicitly drawing the line I mentioned about important/non-important living things there, and calling other views 'absurd'. But you aren't objectively right.

I suspect because if you seriously believed killing living things for food is wrong, it would be suicide

I don't believe that killing living things for food is wrong. Of course you could be using the generic "you," in which case your point is irrelevant to the conversation.

so the only conceivable answer is to reason in such a way that it comes out with the answer you want

I don't disagree. If you find flaws in the reasoning by all means point them out.

- draw your arbitrary cutoff between important-living-things and not-important-living-things somewhere above plants and bacteria while staying comfortably below humans.

My cutoff isn't arbitrary (again I presume you are addressing me), and this is a mistaken presumption. If you endeavor to minimize suffering among things in the world capable of suffering, eliminating animal suffering is a net plus.

If you want to argue that since all living things suffer and therefore all of our food sources suffer and therefore any attempt to delimit an ethical food source is arbitrary, good luck. I eagerly await your finding that vegetables feel pain.

I eagerly await your finding that vegetables feel pain.

I will not be surprised when it happens. Plants have nervous systems and sophisticated sensory capabilities. They don't have voices and their body language moves too slowly for humans to make sense of it without looking for it deliberately (such as with time-lapse photography). Plants display a variety of defensive behaviors.


Although technically, vegetables probably don't feel pain in the same sense that meat doesn't feel pain.

Look at your assumptions: That suffering is a good measurement to use to draw the line, that large animal suffering is the place to argue about it, and that large animals yes/no is the granularity to use, and repeatedly coming back to whether I can demonstrate that plants feel suffering, despite my claimed disinterest in that point.

All of the above are arguable - why not argue that humans and cattle are inedible, but question where the line between insects and small mammal suffering is? Why not question whether stupid non-suffering cows are OK to kill? Or whether non-suffering humans are OK to kill and eat?

Even if you continue with your line, there are other ways you could argue it - if suffering is bad, then that doesn't mean eating animals is bad, you could tranquillise before killing and it would be OK. Or if you want to minimise suffering then wild animals aren't OK, and all animals should have a human managed lifespan from sedated birth to anaesthetised death followed by being eaten, and not-eating-animals but leaving them to die "naturally" is worse.

And there's room to step back and say suffering is a behaviour and thought pattern that's only of interest to the creature connected to that nervous system - otherwise of no interest, so why go for 'minimise suffering' at all? You could argue about methane emissions or water/other resource use, for why it's unethical to prioritise farming animals for food, or you could look at it as a social signalling - wanting to signal that we understand suffering and choose to avoid it or as a personal suffering (guilt) reduction aside from the animal suffering, or you could believe in a deity which punishes you after death for animal suffering you caused.

But however you look at it, you come back to: humans have to eat, so plants or animals have to be ethically OK to eat, and we don't want hurt selves or relatives and friends, so cannibalism can't be OK, but within that, whether extending compassion to animals is "right" or not, it's not objective - refusing to eat farm animals because the calculation on their methane emissions leading to global warming effects and future human suffering would be, but where the ethical line in farming living creatures for food is, is not. It's just arguable back and forth.

I eagerly await your finding that vegetables feel pain.

Even if they don't feel pain, they have a natural life, lifespan, life processes and reproduction which eating them stops. There is room for an ethos where doing that is wrong, you just dismissed it as daft.

I think it's important to distinguish Philsophy from Critical thinking here.

The practical skill Philsophy teaches is critical thinking and logical reasoning. But you don't need philosophy to learn either of those.

"general skill at persuasion" sounds more like sophistry/rhetoric...

> "general skill at persuasion" sounds more like sophistry/rhetoric...

Persuasive techniques can be used deceptively but that's hardly necessary. It's important to accept that people are emotional and simply proving them wrong is usually not sufficient to change their mind about something they've already decided.

In regards to philosophy having a 'use':

I think philosophy should have a function/use. But does it? I think its functional importance is in asking questions in such a way they can be answered by experiment.

So in the philosophy of mind, the functional role of philosophy is to refine concepts so there is a conceptual difference that makes a difference in experiment.

The problem is, there is no way to tell if you are doing useful philosophy if we define its function as creating the conditions for experiment to take over. We can only tell if philosophy is useful in retrospect, by the impact a work has. Philosophy is not like science, where we know we are 'doing science' by performing experiments. But it also is like science, in that we judge it's use retrospectively.

A good example of philosophy being useful is the case of Bertrand Russell's work on 'Russell's Paradox'. Russell's work in the Principia Mathematica was partially about formulating definitions that would free us of this paradox.

PG says "Outside of math there's a limit to how far you can push words; in fact, it would not be a bad definition of math to call it the study of terms that have precise meanings."

Surely there is use in forming these precise meanings in the first place. Some (not all) of that work is philosophy.

Russell's work was outside of math, or at a minimum it was 'Meta-math'. Russell was attempting to crystallize new logical definitions that could form precise definitions, and hence become mathematics. He was trying to create mathematics from philosophy.

Did it work? No. The Principia Mathematica was a failure. But the way it failed, it failed as a piece of mathematics, at the hands of Kurt Godel. Here is a case of philosophy becoming mathematics. In short, Godel's work leads to the work of Church and Turing, which leads to the computer.

So we can at least point to the concrete usefulness of some philosophy, retrospectively. This work was useful, even if its only effect was to shift around the conceptual landscape so non-philosophers could do 'serious work'.

Hm. I agree with your worry completely. Still, personally I found great value in studying the subject. I find it difficult to say precisely what, though.

I wrote a response to this (in defense of philosophy) a few years ago at http://jsomers.net/pg-philosophy.html.

And here's the yc discussion about it: http://news.ycombinator.com/item?id=404707.

I don't think you got much deeper in the long form.

From what I recall, these critiques of philosophy are well-known in philosophy, especially reactions to Aristotle. A inexperienced reader would get the impression that Aristotle and the mistakes he engendered went unchecked for a couple thousand years, until brought to bay by the sterling efforts of Bertrand Russell and Paul Graham.

From someone proposing a new approach to philosophy (!):

1. I would expect to see a little more on some of the less peculiar empiricists - Berkeley, in my dim memories, was the most obscure of that little grouping.

2. A less Cliff's Notes discussion of what's happened in analytic philosophy that strays beyond the brand names (Russell, Wittgenstein) wouldn't go astray either. Claiming it's all about 'language games' is a sophomoric 'out' to having to engage with any of the rest of analytic philosophy.

Can you give an example of something I wrote that you believe is false?

It's the omissions that are the problem, not errors. You have selectively ignored major areas of philosophy in order to make your ideas seem original and compelling.

Even omissions should cause sentences in the essay to be false though. Is there really not one sentence you believe is false?

(Also, would you mind being civil? I'm doing it; you can too.)

Hmm, I know I'll get downvoted for this, but I don't think he's being uncivil, pg. He made an accusation against you, but he didn't do it in an uncivil manner. Asking him to be civil strikes me as weird, and possibly that you're being too defensive?

The civil version (at least tolerably so) would be the first 17 words. The remaining 10 could be affixed to any criticism of any essay by anyone.

OK, I had to upvote this reply. Would figure. :)

PakG1, you have a good point. Accusing someone of "selectively ignoring" evidence is suggesting the person is not seeking truth at all. In civil discourse, one owes a response. In uncivil discourse, then the opponent often isn't asking a real question and the answer doesn't need to take it seriously. I think PG was taking onan_barbarian's comment seriously and asking a sincere question.

I do not suppose it to be possible to accuse anyone of anything in a civil manner. Accusation belongs to prosecutors, mothers in law, schoolteachers and other beings that are clearly on a higher plane than one.

Civility is a difficult, but simple, art, necessitating primarily that one should wish to get along with another: onan does not seem to be going out of his to make himself agreeable to pg or anyone else in this exchange.

Forking the conversation, but going out of your way to make yourself agreeable is not efficient conversation. Now, the workplace and an Internet forum may differ in terms of environment, but if I applied "going out of my way to be civil" to the workplace, it would make for a lot of inefficient conversation and meetings. Being direct is much more preferable in the workplace, and as long as you leave out insults and profanity, it can be quite civil. That is what I'd expect in everyday life as well. My standards of comparing the workplace and other environments may not be shared.

Perhaps you would prefer people use more phrases like "I think", "I feel like", or pose sentences as questions. I suppose that works well enough for me without destroying conversation efficiency too much.

The word "accusation" has a broad spectrum of emotion, but perhaps a very narrow emotive connotation when heard by the accused.

I don't understand why you are so keen to draw me into a line by line nitpick. You saw my objection to the essay. Address it or don't. I don't think your points in the essay can stand without both a discussion of empiricism and an examination of the broader analytic philosophy project. You obviously do, so I'm happy to leave it there.

I want to focus the discussion. When people complain about things I've written, often as not they're complaining about things they believe I think, rather than things I actually said. It's hard to have a meaningful conversation with that level of disconnection between the participants. So I usually ask people who disagree with something I wrote to tell me what specific sentence or passage they feel is false.

If I've said something false, I'd honestly like to know what it is. I wrote that essay, like most essays I write, to figure out things for myself. So if I've made a mistake I want to know what it is.

It is a bit sad to avoid the discussion with pg below (maybe it is in preparation?)

For me there is one (very excusable) "blind" point in pg's position, it's Eastern classic philosophy (hear Confucianism and a bit of Taoism). For some, it will not even be considered philosophy, because it do not ask questions about questions. It is closer to politics, because it tries to answer the one important question (in Eastern eyes), how to have human beings living together without too much blood. Answers are complex, and rely on ethics, self-cultivation, etc. Studying these Classics is not just for statisfying one's curiosity about past things, it will help understand the world, and what to be in the world, all of that without any "magic trick" (hear God, promise of the paradise).

I don't think the ommissions you are talking about are on these lines, so it would be nice to see where these ommission make pg's essay unfair.

Very interesting article; although here's what I think gets missed when folks teach and talk about Philosophy since Russell: anything that smells even vaguely religious just doesn't count -- don't read it -- too spooky, too irrational. The only reason Greeks get away with it is, I think, because nobody takes the Greek gods seriously anymore (or at least no one is worried about too many people doing so, and causing trouble in the name of Zeus!)

So no King Solomon, no Vedas and probably no Confucius either, as secular as he tended to be.

You mentioned at the end of the article that"...philosophy was hopelessly intermingled with religion. It didn't shake itself free till a couple hundred years ago..." I'd have to counter that philosophy without religion is generally new, hollow and unworthy of much study -- which in some ways I think is your point.

I'm genuinely curious: Why (or if) you think that this decoupling is a good thing? So few other disciplines (only Religious Studies, and perhaps The Arts) ever touch upon the idea of spirit at all -- which I think is at the core of Philosophy -- the nexus of Sapience and Sentience. If one is not a fan of religion on principle (its over-adherence to both dogma, and dominance are two criticisms that I have), then certainly this is a strength of Philosophy -- the decoupling of religion from matters of the spirit/soul. Spinoza's The Ethics; and Nietzsche's Beyond Good and Evil are two interesting books for students of Philosophy to consider.

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.

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.

I don't think this field escapes the problems of philosophy in general.

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.

Your definition of "important" is deeply subjective.

Here's a definition of "important" - as important as you had thought it might be when you selected the course. I'm guessing philosophy haters are like militant atheists - they don't really think it's an objectively terrible thing, they are just a bit bitter and disappointed.

The entire question is deeply subjective, which just underlines my bemusement at people accusing pg of ignorance for seeming to take a given position on the question.

When you talk like that you sound like someone who equates 'subjective' with 'useless'

The subjective is very important which is precisely the value of philosophy and other liberal arts.

In this regard, I found Talking Philosophy (http://www.amazon.com/Talking-Philosophy-Dialogues-Fifteen-P...) an excellent book, it consists of post-edited transcripts of interviews with leading philosophers on BBC. Prodded by Bryan Magee, the wise men in most cases come right to the point.

Mortimer Adler has written some philosophy books that are accessible, like How to Think About the Great Ideas: From the Great Books of Western Civilization.


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.

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

I am not so sure about that. I would say a distinguished manager who was a developer might satisfy your criterion. Social skills, leadership, empathy, and other such traits might be (perhaps even overwhelmingly) more important. That suggests an interesting application of the Peter principle. It seems to me quite possible that promoting the worst developers will lead to (on average) better managers, since we would not be removing the best developers from the development pool (and thus lowering the average competency of the developers), while--assuming people skills are in the large independent from coding skills and come from a normal distribution--the promotee's people skills will likely be better than their coding skills.

Really quite counterintuitive, but to me, a cool idea.

That's a much better point than the one I made.

My attitude is when you hire enough programmers that are better than you the best thing to do is get out of their way and focus on building the best environment for them. Call that role management if it helps.

I find this to be a fairly hostile attitude toward management roles and unfortunately it's one that many people share. And it's ruining part of this industry. Not every manager is a 20-year old MBA grad who's out to ruin your business.

What you're describing -- a small team of independent programmers -- accounts for only one part of software engineering projects: programmers are at the center of the efforts, everything else is just overhead.

Many projects are more complex. Development spans multiple long-termed iterations, is time and safety-critical, very expensive and only an integrated part of a larger development process (e.g. automotive, aeronautics, ...). A lot of the man hours on these projects go into tasks that don't directly include programming. These are not necessarily management roles. You have Architects, Test Designers, ... not to count all the roles that have nothing to do with IT at all (if you design a car, what percentage or project members are programmers?).

I personally think that anyone who works in software engineering should have a strong background in programming/development. But active programming is not necessarily part of many roles in many software engineering projects today.

If you don't wish to work in such an environment, no one is forcing you to. If you are, and you are unhappy, explore different options. But don't underestimate the incredible importance that non-programmer roles play in many, many, many projects.

> ... Architects, Test Designers...

The two examples you use, would have to be the best examples of 'waste' in the software industry.

I liken them to having someone on your team who is "The Debugger" where all he does is debug the developers code.

Developers should know how to test their code/app and should know how to design their app, and know how to debug their app. Sure they could 'specialise' one or more of these areas but they should all be able to build software (i.e write code).

Specialization is an adaptation that seems wasteful when it isn't needed but makes a huge increase to efficiency when it is.

Yes, architects and test designers can be a waste. But they can also act to make developer's lives easier.

Good architects can code, but usually act at a higher level - making sure different projects (a) know about each other, and (b) work together. That's important because teams tend to focus on their own success without always taking account of the bigger picture.

> Good architects can code...

Is synonymous with good developers are also good architects.

I think (if I can articulate my thoughts correctly) my meaning was, that there is an obsession with breaking tasks into specific roles that are then the sole responsibility of one person. To the point of inefficiency (given the number of people you have to talk to for a given feature).

I don't agree that specialisation is wasteful (for the project at least). If it isn't needed, the person can still be a 'standard' dev. But if it is needed, they contribute more. (The only waste is to the individual if they specialise in an un-needed skill).

> Is synonymous with good developers are also good architects.

But, most architects are lazy genius. Only way to utilize their skills is not allowing them to code, but letting them designs and coach.

I agree. Architects should just be senior coders - the people whose strategic decisions are usually right (mostly because they know how to test their assumptions). Having a specific person who doesn't do anything else but architect is broken - APIs are for programmers. If you aren't eating your own cooking you have absolutely no right to be claiming you did it well.

Similarly, you could hire a developer on the strength of their testing and get them to champion a stronger infrastructure but like the architect they need to be an active developer to judge the usefulness of their solutions.

I'd say managers (of coders) need to be coders too. They can survive not being if they're great managers, but they're doing it with a handicap of not being able to understand the tools and see the big-picture their team is missing. And the state of the art, not whatever they used in school twenty years ago.

But, conversely I think I was a lousy employee early on (in terms of value created for the core product / hours spent) because I wasn't thinking of the business aspects of the company. So while I think everyone needs active programming skills to participate meaningfully in programming, I also think those programmers need to be aware of the business they're in, the entire industry trends, and that of the problem domain the work is in. If you design/make/sell a farming GPS, for instance, you'd better have farming experience.

Perhaps the loosely overlapping networks of broadly-skilled individuals managing their own (but with input from an on the rest of the company) doesn't scale well, but I've yet to see a better idea.

I didn't intend it to be a hostile comment/attitude. It's just pragmatic. I can code, I can design and I can architect. That's great when it's me and a few others, but as a business scales up I should be able to recognise when there are better coders than me. If I refuse to get out of the way then I'm just a hindrance. Therefore I should adapt to the new business size and use my experience etc to help those better coders.

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.

This neither confirms nor infirms Paul Graham's thesis. In fact, while PG's assertion was a bit too specific--pointy-haired boss means in general "bad manager", not "programmer turned manager"--I don't think you can deny that people want promotions, and in some places the only way to get promoted is to go into management. PG is of course correct in suggesting that if you want to keep programming, don't accept a promotion to a non-programming role. However, if you find this stunts your career growth, you can either look for a job in a company that will allow you to grow as a programmer, or you can choose to go into management. That many programmers are averse to this doesn't make it a bad choice. You just have to know what you're getting into, and hopefully how to do it well.

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.

Depends on what your goal is. It's perfectly possible to build a good career without keeping up with the bleeding edge of research. You don't have to know what monads are to be well compensated (at least in a Western country). However, neither will you be the next Peter Norvig. If you want to make money, there's many ways to do that. If you want to eventually get a Turing Award... there's fewer ways to do that.

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.

A manager who is a good programmer will be golden at interview time. Whether he will also be a good lead is unclear. Like iand said, they should get out of the way and enable programmers to work optimally. As an aside, the structure of corporations and how it affects programming is an interesting topic worthy of its own discussion thread.

PG is of course correct in suggesting that if you want to keep programming, don't accept a promotion to a non-programming role.

That's not what he is suggesting though: His statement doesn't include "if you want". He formulates it as an at-all-costs mantra -- stay in programming, for the worst could happen. It can be absolutely horrid advice to a number of people who would excel even more at other IT roles or management roles (see interesting comment from robertk [1]). I myself was long not considering applying to non-development roles, because many of those great opportunities are more and more looked down upon as "not programming". I know some people who've come as far as "Be Mark Zuckerberg or die trying", completely rejecting any business model that isn't two guys coding in a garage. I didn't actually read PG's comment like that -- I have the utmost respect for PG; but this is the background for why I authored such an opposing comment. I don't actually think the RAQs we are discussing were designed to be put under lawyer-like scrutiny ;)

Depends on what your goal is

Completely agree. Casual focus will rarely lead to greatness.

they should get out of the way and enable programmers to work optimally

For someone to get out of the way, he first has to be in the way. You make the general assumption that a manager is bad unless he actively changes his style. I cannot challenge this assumption for I have no data or ideas on where to find some concerning if managers are universally good or bad. And even then employee satisfaction might not be the only metric to measure success. Although I do think that having fun at work is one of the most, if not the most important metric. Many things would be better if everyone enjoyed their work.

[1] http://news.ycombinator.com/item?id=3012765

I know some people who've come as far as "Be Mark Zuckerberg or die trying", completely rejecting any business model that isn't two guys coding in a garage.

I believe the idea behind that perspective is that the aggressive startup model will lead to either failure or fabulous success, whereas a more traditional career will lead to only incremental improvements to your lot in life. Some people are attracted to that.

For someone to get out of the way, he first has to be in the way. You make the general assumption that a manager is bad unless he actively changes his style. I cannot challenge this assumption for I have no data or ideas on where to find some concerning if managers are universally good or bad. And even then employee satisfaction might not be the only metric to measure success. Although I do think that having fun at work is one of the most, if not the most important metric. Many things would be better if everyone enjoyed their work.

No no, that was merely short-hand. To say "they should get out of the way" is to say the manager should create a good working environment for the programmers, while not micro-managing. So yes on the nice office with few distractions, yes on the manager being the sole gateway between the team and the rest of the company, no on the manager dictating what sorting algorithm to use. See for instance this article by Joel Spolsky: http://www.joelonsoftware.com/items/2009/03/09.html

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

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.

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.

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

I wasn't actually arguing that people are born to be better at anything, although I suppose this is the general consensus.

Talent = "a special natural ability or aptitude" (http://dictionary.reference.com/browse/Talent)

Aptitude = "capability; ability; innate or acquired capacity for something" (http://dictionary.reference.com/browse/aptitude)

Like tentonwire argued, whether it's nature or nurture, people are better at some things than others.

From what I understand, you are effectively making the argument that anyone can excel at anything. In this case, I also concur with tentonwire, that the burden might be on you to prove that hypothesis.

Couldn't you add something equivalent to Lisp macros to languages like Perl or Python?

Yes, see Io:




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.

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.

Also see metalua.

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

There's a flaw in his reasoning here that comes from working with extremely talented people. When you work with such people process is frequently irrelevant, because no matter what process is used they will find some way to get things done and done well. This can lead you into a false sense of victory about whatever process you happened to be using, even though it was the people who were the decisive factor in success.

The real problem with consensus is that all members have to be well above average in several categories (skill, experience, communication, risk/fission making, passion, determination, etc). That is much rarer think most suppose (cause the only startups/teams You hear about are the ones with that, the rest fail and are never known). It is impossible to scale.

At scale you try to find above avg leaders who know how to solicit input and sell ideas.

Yes, you're right. I was implicitly assuming the startup never gets big enough that you have to become a real manager. Obviously in the unlikely event the startup turns out to be Google or Facebook, consensus may no longer work.

>I think it ultimately leads to cultures like Google's, where every decision requires a room full of engineers to agree.

What is this fantasy Google? The Google I interned at was highly hierarchical, with enough meddling managers to drive this whole thread insane.

Agreed. It's essentially design by committee, which may work well when there's only a handful of you, but consensus of several individuals is difficult to reach, and the obvious or safe choice is accepted with little insight or vision. Committees create divisiveness and perpetuate a loss of vision. They exist only because individuals are taught that consensus is more important than making the right decision.

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

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

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

Google has had both success and failure. The successes have paid for the failures and then some, but the failures did happen.

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.

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.

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:


(I designed a nested version of the Tractatus if you're interested: http://tractatuslogico-philosophicus.com/)

I spotted two mistakes:

it says somewhere "thought it need not be red"; should be "though".

Proposition 4.022 should be called 4.002, according to my edition and another edition on the web I checked.

Perhaps the Gutenberg edition you used is not as properly proofread as one would hope.

Mentioning the source on the site is probably a good idea, for those not inclined to open up the source and hunt for it.

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.

Can you give any further reading/info on family resemblance as used by Google?

I don't have the specific page citation but I read it in Levy's In the Plex.

You can see that Kindle users have highlighted the passage here: https://kindle.amazon.com/work/in-the-plex-ebook/B003QJNVO4/...

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.

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

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.

The downvotes are likely because your position consists of little more than "google why he's wrong". If you wish to refute pg's statement you should explain what's right about your position, such as why camlp4's macros aren't just a prettier syntax on top of a LISP-like abstract syntax tree as the Wikipedia article states.

Easy reason: camlp4's macros are typechecked. Meaning, it's impossible to build an invalid syntax tree using them.

My personal opinion is that a type system on top of macros needs types that are too painful for anyone to actually use. The winning element of Lisp macros is that they are dirt simple and untyped, which makes them easier to write (but makes run-time errors more likely).

At a meta level, you might as well argue that Python programmers should be using ML instead, since the features are similar but ML is statically typed so more errors can be found at compile-time. The logic of the argument is correct, and yet Python (and Ruby and Javascript and so on) win. Again, I think its to do with easy of expression and less thought up front, but I'm not really sure.

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

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+!

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.

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

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.

I guess I do both. While I haven't been doing a lot of real painting recently (working on other projects) I certainly do. I have some paintings on Picasa (https://picasaweb.google.com/105616061675197682498) but I'm working on some sculptural work currently that lets me both program and make art (building some cellular automaton related stuff, see https://github.com/Wollw/Automaton-AVR).

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

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.

Not exactly the same thing, but this does remind me of a quote from I'm Feeling Lucky: The Confessions of Google Employee Number 59:

"I didn't trust Larry and Sergey as coders," said Craig Silverstein. "I had to deal with their legacy code from the Stanford days and it had a lot of problems. They're research coders: more interested in writing code that works than code that's maintainable." According to Jeff, one of the quirks in the early Stanford version of Google was that when something unusual happened the program would print out an error message without any explanation. The message read simply, "Whoa, horsey!"

7 years ago i would have called myself similar.Though i was just graduating and could have hardly called it research. But 3 years working in the industry with Big blue and i see i have got OCD with maintainability. Heck, i wouldn't even have noticed, if i hadn't quit and went to do a master's. But 4 years since, and i still haven't quite undone the OCD, mitigated yes, but not back to the get shit done passion....I keep working on it...so, i will qualify that 6 months to start a startup, with something about the type of product you aim to build. - May be something along the lines of the impact you expect to make with it.

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.

I know that's a sentiment that's thrown around here, but I think it's simplistic.

I live in Israel, where a very common path to an Exit is to build some sophisticated technology, then sell it after a few years to a larger company. So it is a very possible path you can take. It has its own advantages and disadvantages over the much more visible, much more HN-friendly, "Consumer Internet Startup".

The exit and valuation models for these two approaches are also different. In the former, some company buys you because they want to use your technology in their own products, in the latter, some company buys you to get your customers/users.

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

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!

What I think, for what you may think it's worth, is that you should climb the highest hills, that you'll have to climb, right away. Best to know you can do it before wasting time.

But, that you should look for the easiest way to success. It'll take months for a large company to have the meetings to acknowledge your niche, let alone try to serve it. The only thing you have to fear is another startup and you're at the advantage is that situation.

Building huge walls or picking a niche with a large cost to serve, is like wasting time on DRM for your game, instead of working on marketing and having someone actually buy it.

The usual advice seems odd to me. There are two extremes: you can invent something technically trivial and take the market risk, or you can invent something that's technically challenging but with obvious marketability.

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

That may be appropriate for patio11. Not to demean the guy but let's be clear, he runs an online bingo service. It's my understanding that he makes much more money from consulting gigs leveraged from this modest endeavour.

Rest assured that if your ambition is to write the next Dropbox or, hell, any YC company, at least 50% of your founding team will need to be very good programmers indeed.

In one of his three (3) lines of actual- money- earning- businesses, he managed to factor the "product programming" component down to a kind of minima, allowing him to channel all his effort into engineering his marketing systems. As a result, he was able to use a program that can charitably be described as "Hello World" hooked up to a random number generate to eclipse his full time salary.

If you can't see the pure hack value in that, you may be commenting on the wrong message board.

The conclusion you think you can draw about Patrick and "programming" from the nature of his first product: you can't draw that conclusion.

I'm writing this not to offend Patrick (he could care less about threads like this), but because you are taking exactly the wrong lesson about what Patrick did and then broadcasting it to the rest of the community. Stop, please? :|

I'm a systems programmer, since 1995. The list of YC companies that involve "real programming" to me is pretty short. Dropbox qualifies, but how many from the rest of their class would? Which is to say: "technical impressiveness is both subjective and a stupid metric for a business".

What does "good" really mean here ?

I've been inspired by Gladwell's more general answer from the book Outliers:

"Gladwell repeatedly mentions the "10,000-Hour Rule", claiming that the key to success in any field is, to a large extent, a matter of practicing a specific task for a total of around 10,000 hours." http://en.wikipedia.org/wiki/Outliers_(book)

At an average of 50 hrs/week this means it would take you close to 4 years to achieve mastery. pg is certainly correct that you can be productive before this point, but I do believe mastery is much less a function of calendar time, and much more a function of how many coding hours you can get under your belt as the days fly by.

Like most of Gladwell's ideas, it falls apart under the least examination. Consider a neurosurgeon. Perhaps after ten thousand hours of surgery she was an expert in surgery. But perhaps only a quarter of that time was spent performing neurosurgery. Does that mean she's not an expert neurosurgeon? Perhaps, then, after ten thousand hours of neurosurgery she has become an expert neurosurgeon. But maybe only 5% of that time consisted of excising glioblastomas from the anterior cingulate cortex. Does she need to spend ten thousand hours doing ACC glioblastomectomies in order to be an expert at that task?

In short, because what we normally mean by "tasks" or "fields" can be broken down into smaller tasks or fields, the statement is self-contradictory if they mean what they normally means. But if we search for a definition of "task" that makes the statement true, we can trivially find a circular one: a "field" is something that a talented person can achieve mastery of in about ten thousand hours of practice.

Once reformulated that way, it becomes clear that this is not a statement about human expertise or expert performance, but about the economic structure of current society, and in particular our degree of specialization: most people (within the professional class Gladwell finds interesting, anyway) work in jobs that require about ten thousand hours of focused practice by a talented person to reach mastery.

(I should point out that this occurred to me when I saw Jeff Fox (RIP: http://groups.google.com/group/comp.lang.forth/browse_thread...) claiming that the research Gladwell summarized meant that you needed about ten thousand hours of programming in Forth to be good at programming in Forth, so you shouldn't put too much stock in the opinions of experienced programmers who didn't have much Forth experience.)

Once stated this way, we can formulate interesting hypotheses about the cause: perhaps when a field starts to require substantially more than ten thousand hours of practice to master it, its practitioners start to specialize in a part of it, so that they can reach mastery sooner.

Is it unreasonable to think that if someone has put in ten thousand hours into a general field such as programming (across various languages, as opposed to just focus on one language) that there are enough general principles to extrapolate for them to be considered an expert programmer? Is your argument against Gladwell's idea (not really even his idea) that the professions he site has too many sub-components that under such a definition no one could achieve ten thousand hours of mastery? Perhaps I'm not understanding your argument.

Regardless, it's interesting that you bring up the example of the neurosurgeon because Gladwell's specifically written about the mastery of expert surgeons including the example of Charlie Wilson, a highly regarded neurosurgeon. Included in his telling of the 2987 transsphenoidal resections of pituitary tumors that Wilson performed, Galdwell highlights the seemingly thousands of hours Wilson practiced surgical procedures on rats early in his career. You can read the article here: http://gladwell.com/1999/1999_08_02_a_genius.htm

> Is it unreasonable to think that if someone has put in ten thousand hours into a general field such as programming (across various languages, as opposed to just focus on one language) that there are enough general principles to extrapolate for them to be considered an expert programmer?

Well, maybe. But maybe Jeff Fox is right, and you really need ten thousand hours of programming in Forth to perform at an expert level programming in Forth. And, given IBM's historical turnover, it wouldn't be surprising if performing at an expert level maintaining DB2 required not just ten thousand hours of programming, but ten thousand hours of programming in PL/M on DB2, in order to know your way around that particular codebase well enough to perform well. Certainly the ramp-up time is likely to be longer on that codebase than on something more modern.

But maybe we should go in the other direction — maybe Bill Gates is right, and it only takes a year or two of programming to perform within an epsilon of your best possible performance, and it's really something broader, like "engineering design of artifacts with human users", that needs a whole ten thousand hours of practice to master — not merely programming as such.

My point is that these can't all be correct. Being an expert at engineering design of artifacts with human users implies that you're an expert at programming, which implies that you're an expert at programming in any context: in Forth, in PL/M in the core of DB2, on the space shuttle. Being an expert surgeon entails being expert at tying sutures, but it surely doesn't entail spending ten thousand hours practicing the tying of sutures.

I think you're correct and I still don't think you invalidate Gladwell's point. Remember Gladwell originally proposed his idea on what it takes to become a "genius" to dispel the conventional notion of what it takes to become the Bill Gates's, Wayne Gretzkys, and Mozarts of the world. He's challenging the notion that these geniuses achieved their success by way of some innate talent in their fields. Whereas, he applies the ten thousand hours theory to show that the idea of some innate genius is a myth, but rather requires much work to achieve that level of success (not that profound). I think it's hard to argue with this point.

Where you (and many other people including myself) find trouble in Gladwell's work is that it's too cursory and often overreaching. It's true that he's doesn't go into the specifics of various fields in defining the specific areas that each requires to achieve that genius level. But such a study would be extremely exhausting, if not impossible. It's also not where Gladwell sees his role; he's a pop scientist, not an academic. His job isn't to take academic studies and dig deeper. Quite the opposite. As a pop scientist, he takes academic research proposed in academic fields such as psychology, sociology, and anthropology and he extrapolates these ideas into popular culture to cater to a much broader audience. Taken in this context, I think you'll have a much different experience reading his work.

Oh, I love reading his work; I think he's the best storyteller alive today. I've just been caught taking his stories a little too seriously a few times, and I want to save other people from the same fate.

I think that question was included ironically- I.e., he's only been asked a handful of times. His sample size reflects the dearth of "learning how to program to build a viable webapp" stories and comments here. I don't even know if noob questions are accepted here- I've never seen one. I don't post them because I feel I should be finding answers on google rather than degrading the quality of this board.

The decision to learn enough programming to build what I want stemmed from the realization that understanding how my webapp will work at the technical level significantly refines my vision for the product- bringing it much closer to reality. Whereas before I was talking to recommendation engine people because I wanted "recommendation features like Hunch," now I'm working in PHP/SQL and getting exactly what I want. My current strategy is to talk to the CTO's and creators of similar webapps to understand their technology and language choices (e.g. GAE or MAMP, SQL or Solr), go as far as I can on my own, and then work with a tutor for an hour or two to get momentum and correct my architecture mistakes.

I am also fueled by his answer here. I guess that learning parameter depends on your teacher - the better the teacher, the better and faster you learn.

I just started learning HTML, CSS, jQ, PHP recently , and I found myself advancing at surprisingly high pace (now watching jQ new_boston tutorials on youtube).

Main problem for me is finding good material to learn from, since I only learn from the internet.

You have any advice considering good online sources for a total beginner to learn coding really well ?

It has taken me considerably longer than a year. But I might not be smart. And I've tried to do it on my own, rather than taking a job (see prior sentence).

Caveat: I'm not a developer, so my comments about learning how to program should be taken with considerable skepticism. But I have some opinions based my effort to learn.

For me, programming syntax is less a problem for me than poorly organized code, poor grasp of problems and poorly thought out solutions. Design is a subtle and important topic that does not lend itself to the shorter coverage typical of internet material. Book-length immersion in the concepts is only a beginning to an understanding. So I think your "internet only" restriction is a severe constraint.

But it isn't as if there are many design books for beginners. These generally target people who've mastered some languages and know the design-problem space. "Pragmatic Programmer" was a big help.

I have found test-driven development an enormous help. It feels cumbersome, but you always know what problem you're trying to solve. "Test Driven JavaScript Development", Johansen, is an excellent overview of the approach. I'm also trying to work through Beck's "Test Driven Development By Example" doing the exercises in Ruby, but it's a side project that hasn't gotten much attention.

I repeat: I'm not a developer. Hopefully this is thought-provoking, but I'm no authority.

"How to Design Programs" (http://htdp.org/) is aimed at beginners. I haven't read it, but the people behind it are top quality.

I'm going through the Eloquent JavaScript book at the moment and am finding it slow but rewarding (there's a free HTML version of the book online). It's probably the next step after mastering jQuery...

http://www.w3schools.com is pretty informative if you haven't already checked that out.

The best thing to do, especially if you are on a budget is spend a few hours in a bookstore each week reading over various books on various subjects. I found this a lot more helpful.

Well, if you look at w3schools, you might want to look at w3fools.com first. It is a criticism of w3schools and recommends htmldog and dev.opera among others.

I would recommend htmldog.com above w3schools for HTML and CSS. For javascript eloquentjavascript.net is good, and sqlzoo.net is good for SQL (or so I have heard). No doubt there are also some spectacular books for all of these. Please reply with recommendations.

In my opinion, developer.mozilla.org has the best online documentation on common web technologies for programmers.

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

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.

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

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


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.

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.

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

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

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

PG's requirements; public ally exposed parse tree and ability to manipulate it before "compiling" doesn't python provide already? It just seems more in your face and 1st class sin lisp.

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

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?

Music has a lot more to do with math, logic, structure, and other technical skills and requirements than most other forms of art.

Well, people call me a hacker and I do paint. I don't claim that I'm good, I'm just an amateur, but I am doing it! Take a glimpse of my work: http://imgur.com/a/6BdJS#TmmoJ

I also play piano, compose music and write (bad) poetry! I have a small sample of my music here: http://soundcloud.com/mournfulempathy/empathy-intro .

I don't think I'm good as a painter but it is a hobby I enjoy greatly!

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

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.

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

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

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.

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.

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

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

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

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

Start with 1995 - 2001.

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

(You too, Peter Norvig.)

http://wayback.archive.org/web/*/http://www.paulgraham.com/r... crawled 130 times going all the way back to February 7, 2004

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.

I was going to look up most of them anyway, so I went ahead and made a list. No affiliate link though, but I don't mind.


I am open to suggestions for changes, since some of the books are older there are multiple versions or translations available. Some of these are freely available as well - Franklin's autobiography and Caesar's Gallic Wars, for example.

I haven't read any of these particular books but I have read a great deal of other history books covering some of the same topics... this is a very good list though and now my to-read stack is going to be even higher :)

I threw together a page with each of the books individually. Hopefully, this will make getting your hands on them a bit more efficient. Enjoy.

PG's RAQ History Books - Home http://bit.ly/qRK15K (Use the bit.ly link so I can track. 39)

Otherwise, the site is: http://thebooksofhistory.weebly.com/

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!

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

"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!

I got a good laugh out of this. Thanks

Just in case anyone took the above seriously, please keep in mind the author was joking.

Not sure what you mean by this:

"Twelve year old boys, BELIEVE this!"

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.

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.

Lesson 1 is that you don't make an A. The girls get an A from you. I know girls want me, and I make them chase me. Combine that with the basics (dress well and go out and talk to girls) and you're halfway there. But don't think "basics" means easy; you'll be surprised at the number of excuses a perfectly normal guy will make not to say hi to that girl.

Man up, walk over to her, and say "Hi. I thought you looked cute and wanted to meet you. I'm Robert." Repeat times 1000. That was your warm-up. Now things should feel much more natural and you will understand a whole lot more about social interaction.

I wasn't trying to be comprehensive at all on women! I was just joking that PG's post omitted a big topic -- women! I did give a few remarks on women that would be good for a guy 12 to know, but, again, I was not at all trying to be comprehensive.

Your remark might be good and, thus, a good contribution to some Web site that tries to provide advice "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."

For making an A in Women 101-102, right, the grade is to come from some unnamed course professor and not from the women the man wants to meet!

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

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

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

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

I neglected to respond to your:

"There are, believe it or not, entire web development frameworks where you don't actually need to manage the TCP/IP sockets yourself."

Actually, what I'm doing with TCP/IP is the easy way to proceed!

You interpreted what I wrote as working with TCP/IP for the Web page Internet communications. Sure, I let Windows and IIS handle that!

But, consider a Web page that needs to execute a SQL query. SQL Server runs in a different 'process', likely in a different address space, maybe on a different machine, real or virtual. So, how does the Web page communicate with SQL Server? Sure: That's already worked out by Microsoft. BUT: There IS communications, and it is 'asynchronous'.

Okay. What holds for a Web page getting to SQL Server can also hold for a Web page getting to some other software possibly particular to the Web site.

So, suppose the design of the Web site has a program that needs to run as a 'service' and be accessed from the Web pages 'asynchronously'. So, how to do that communications?

I looked into Windows 'remoting' (now considered obsolete by Microsoft), the Windows version of old remote procedure call (RPC), Windows Communications Foundation (WCF), Windows pipes (on the same machine), and old TCP/IP sockets. Just to investigate these may have involved over 100 Web pages at MSDN.

I settled on old TCP/IP sockets. For the data to be sent/received, to convert to/from instances of classes, I settled on 'serialization'.

So, I got (back) into TCP/IP sockets. I've done socket programming for over 20 years. To get started with sockets on Windows, I started with some simple socket code in the scripting language Rexx. I got both the 'client' and 'server' sides working with each other. Then I wrote the server side in Visual Basic .NET (the Microsoft 'managed code' version of their TCP/IP) and got that working with the client side code in Rexx. Then I wrote the client side code in VB.NET and got it working with the server side code in both Rexx and VB.NET.

Now the TCP/IP code is ready to drop into the VB Web page code and the VB 'remote server' code.

But using TCP/IP and serialization for this communications was the easy way.

Net, all your criticisms have turned out to be unjustified. I've done nothing wrong. What I wrote to begin with was right on target. Being so consistently wrong you should fear will hurt your credibility. It's not good to be so consistently wrong.

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


"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

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.


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


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


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

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.

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.


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

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.

Same to you.

> Web development on Windows is JUST what I'm doing

Surprise, there are more environments that you could do web development on and quite a few of them are a lot easier to master than the one you describe.

I was addressing the original question of the guy who wanted to learn to program for a startup. So, he needs to know more than just any 'Web development environment'.

Also important is scalability. Some 'development environments' that are easy to get started with have bad reputations for 'scalability'.

Another practical issue is, is the guy just a developer in a group where he can draw on others in the group or is he really, now, and during most of his development, just one guy and not funded and has to do nearly everything alone? To do it all as just one guy means he needs to know a LOT about computing a bit far from just Web development alone.

Actually, I omitted a lot: For a Web startup, usually need something like relational database, e.g., SQL Server. If the startup gets very far into production, then he will need some background in SQL Server management and administration, e.g., performance, backup, and recovery, and I omitted such topics.

I gave a description of some of what is important if developing on Windows. Here at HN, Windows is not the most popular option. But if you have some alternatives in mind, then describe them,

No one who "wants to do a startup" and wants to learn how to program should even think about using Microsoft tools. Microsoft tools are complicated and expensive. The educational resources are expensive or non-existent. The incidence of Microsoft tools in startups is very low (in the Bay Area they are non-existent).

Registration is open for Startup School 2019. Classes start July 22nd.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact