1,235 karma · joined August 13, 2007
I can't argue on any objective basis on the financial motivation point. (How would I measure that? How did -you- measure that?) I will say that in my experience my coworkers are primarily motivated by the ability to have a outsized impact and the ability to work with great independence.
Facebook has a crazy-passionate hacker culture. Tons of engineers have really neat side projects, and plenty of these ship. Every six weeks or so we have (voluntary) all night hackathons, where there is plenty of food and drink, and the agreed task is simply to build something cool not related to our usual work.
Finally, P(Could work at Google | Works at Facebook) is really high. As evidenced by a recent news article, hundreds of Facebook people are actually Google alumni. I know many of my coworkers turned down Google offers to come here, and it's practically routine for new grad hires to have a Google offer as leverage in coming to FB.
But yes, it's an annoyingly volatile standard-in-progress.
The trouble with "Be reasonable" is that's it's the advice equivalent of a tautology. Of course we should be reasonable when interviewing. But I don't think there's widespread agreement about how to operationalize that. I'd be curious for more detail about how you would do it---you seem to have strong, well-informed feelings on this issue.
To my knowledge, there's basically no publicly-available research on tech interview factors and how they correlate with on-the-job performance. The good big employers do this research internally and keep it to themselves. The rest of us are stuck with assumptions, intuitions, logic and argument. So unfortunately I don't think we'll be able to get the debate into the realm of interpreting real data anytime soon.
Some companies ask for a small code sample "that you're proud of" in advance of onsite interviews, I think that's another good practice.
"Interview for Smart and Gets Things Done" is an accurate explanatory abstraction over what good interviewers do, but it's not prescriptive enough to tell people what questions to ask and how to judge the results.
Conducting good interviews is hard. Watching someone attack a problem or write some whiteboard code is a not-bad system. Pick a problem that's too small or familiar and you're not filtering enough. Pick problems that are too hard or long and nobody will succeed. It's a balancing act.
To illustrate: You have some piece of state y, and you have x = f(y) that means "x is always the value of f(y), when y changes, update x." Furthermore x is shared state across many users. On the server side you want that statement to generate code for synchronizing values of x and y across users. On the client side you want to generate code for pushing and pulling Ajax/Comet updates from the others.
The Wikipedia link isn't terribly informative, but there's a ton of more relevant literature tied in with functional reactive programming. (That's the FRP in their to-do list). In particular, there's a research project called Flapjax that you can play with right now that drives home how nice it could be to program in this paradigm.
I have two worries about Luna, though. It doesn't look like they're using a nice type system, which will be a pain for larger apps. And I can't say I like that "Finish patent documentation for incremental computing framework" to-do item.
A minority of voters (you and I included) think copyright should be changed. But we're not big enough to make the change happen. You might think this is a bug worth fixing. "can't vote directly" implies that you think more direct democracy would solve the problem, but I claim the cure would be worse than the disease. There are major unsolved problems with allowing small highly interested groups to influence policy too much, since the system can't tell whether they're (we're) right or not.
By contrast, even if censorship were a major issue on the minds of non-free citizens, they would be powerless to change it. Furthermore, censorship is an auto-immune disease: It harms the system's ability to fix itself and permits many more severe problems. Broken copyright isn't the same. (Corporate sponsorship of politicians, however, is an auto-immune disease too, and broken copyright is a symptom.)
Among the various kinds of power, force is special, because force is the only power that involves active harm. As political scientists see things, the fundamental role of government is to maintain a monopoly on the use of force.
We distinguish liberal democracies from other governments based on how they distribute the authority to use force. Liberal democracies are systems designed to treat each citizen as equal. We treat factors that oppose this equality as bugs[1]. We build subsystems that permit transfer of this authority without the use of force.
Both democracies and other governments use force to maintain their monopoly on force. (Though democracies tend not to need to use it as much.) The difference is that democracies use this force with authority that was freely given to them.
Copyright was created in the belief that it would increase the wealth of a society. It is enforced with authority. If a majority of the population felt strongly that it wasn't working properly, there is a mechanism for changing it that does not involve the use of force. We treat factors that interfere with this mechanism, such as corporate sponsorship of politicians, as bugs.
Censorship by government is a kind of force designed to preserve the monopoly on force. Copyright is not an exercise of power, censorship is. The use of power involved in enforcing copyright isn't designed to preserve the power itself. (Disney doesn't run the police yet.) Finally, if the citizens of a liberal democracy doesn't like censorship, they can elect a new government that does away with it. Citizens under other forms of government have no such recourse.
Moral relativism gets my heckles up.
[1]: Newspapers are our bug tracker, and an unsolved problem is to figure out how to build a new bug tracker.