Paul Buchheit, an early Google engineer and creator of Gmail, writes short essays on startups, products, and thinking.
HN commenters repeatedly link his post 'If your product is Great, it doesn't need to be Good' and also cite his other essays as great reads.
This is a great question. I'll share a couple thoughts and experiences.
1. A great post was written by Paul Buchheit that called things like fear of public speaking, which may be an inflamed variation of fear of conversation, 'ego-fear'. While this may not be technically correct, it could be a useful psychological framework. See post here: http://paulbuchheit.blogspot.com/2010/10/serendipity-finds-you.html.
2. When I was young I was very nervous around girls, and hated public speaking. Along the way I became pretty good with girls and captain on my debate team. The key ingredients were a willingness to keep trying to improve and being willing to shrug off failure. The first times I approached women I was an absolute fool but I eventually improved by gaining a sense of what's socially viable. With regards to public speaking, I was very nervous when I started out. But, once I had looked like a quite a few times, I got pretty good and ended up being the leader of several organizations in high school and college.
3. A friend of mine who is quite brilliant but very introverted suggested the book "The Game," which basically describes how to hack romance. I wouldn't suggest applying this book to your love life, but some of its insights might be worth checking out. When you understand that your interactions with other people of the same sex are often as complex as those of the opposite, it becomes a fundamentally different (and often more tractable) problem. My friend…
> Opening a file and reading from it takes tens of lines in Java,
Some of the bad Java is because of missing abstractions, most of it is because of badly designed api.
http://paulbuchheit.blogspot.in/2007/05/amazingly-bad-apis.html
For your particular example, the api has been better since Java 5.
import java.util.Scanner;
import java.io.*;
public class ScannerTest {
public static void main(String[] args) throws FileNotFoundException {
Scanner in = new Scanner(new File("some_file"));
while (in.hasNextLine()) {
System.out.println(in.nextLine());
}
}
}
> You don't learn Java these days, you just learn eclipse. Much of the magic is happening in auto complete.
I code in vim with eclim. There is nothing to be gained by manually writing the code for getter setter, or find-replace an identifier, or write placeholders for n methods of an interface...
> I am not sure who picks up a book to learn java these days.
It was some time ago(about 8 years ago), but I learned Java from a book(multiple books; I liked Core Java best http://www.amazon.com/Core-Java-Volume-I-Fundamentals-Edition/dp/0132354764)
Also, what good would eclipse do to someone who doesn't know what to write? Consider my example above. Unless you know how to read a file, how can eclipse generate the code for you?
Or consider generics. How will eclipse help you understand what does <T extends Comparable<? super T>> mean?…
This deserves another mention: http://news.ycombinator.com/item?id=469940
Is K. right? Maybe. That depends on what context he's thinking about - the kind of startups he's done, probably. I suspect that he's likely making an attempt (a regretful one, I must add) to generalize whatever it is he's learnt, and apply that to every single bloody startup there is out there.
Because almost everything he's saying is utter rubbish, applied to web startups. The context isn't right. Google won because of cleaner design? Right. Sure. The iPod was a lousier product? Right. Sure. Microsoft and Windows as an example of how to do things? I'm not sure if that's the right advice he should be giving to a young student-entrepreneur. 'Be like Microsoft' doesn't make much sense when you consider the fact that Microsoft wasn't much like Microsoft when they first started out.
Paul Buchheit has an opposing view point (http://paulbuchheit.blogspot.com/2010/02/if-your-product-is-great-it-doesnt-need.html) that you should consider - one of the many people who say things that run contrary to K.'s advice, I must add. (See also pg's How to Start a Startup http://www.paulgraham.com/start.html)
I suppose it all boils down to: a) what kind of business do you want to build? Because that determines b) who you listen to. If you want to get into K.'s space, that's fine. He's probably right. But if you want to build a Google, or an Apple - heck, even a Microsoft ... well you should consider looking elsewhere.
It's often said that you should "Do what you love", but that's mostly bad advice. It encourages people to grind away their lives in pursuit of some mostly unattainable goal, such as being a movie star or a billionaire startup founder. And even if they do make it, often the reality is nothing like they imagined it would be, so they're still unhappy.
Do what you love is in the future. Love what you do is right now. As with the other patterns, it's meant to guide the small decisions that we make every moment of every day. It's less about changing what you do, and more about changing how you do it.
"Do what you love" treats "what you love" as a fixed thing, but it's not. I used to hate running. I would sometimes force myself to run a few miles because it's supposed to be healthy, but I never liked it. Then I read a book that said we are born to run, and that it can be fun. Inspired, I decided to try running just for fun, focus on the quality of every step, and forget about the goal completion aspect of it. Very quickly, I learned to enjoy running, and over time I've transformed my entire relationship with fitness and exercise to be oriented more toward enjoyment.
Naturally, this more intrinsic approach ultimately improves the quality of our efforts, which generally leads to greater extrinsic rewards as well. Intrinsic motivation and extrinsic motivation are best when they are both pointed in the same direction. ...
Real work always seems to involve a certain amount of…
I met Nikki while I lived at a Hacker House in Mountain View for a few weeks in January 2012, having recently moved to the Bay Area. I remember being impressed at the time by her intensity, and by the fact that she actually had a real product with real users that solved a real problem.
An audible "oh no" came out of my lips when I clicked this link and realized I was reading about someone I had shared a few dinners with.
It's important for little pieces of history such as this one to be recorded. For the founders, to whom it gives a sense of closure, and for the community. So that we don't forget our comrades who didn't make it to the other side, but still have insightful lessons to share.
The press likes to glorify the AirBnBs, the Googles, the Facebooks - but as founders, I think it's important for us to be realize that this is only a tiny visible part of the iceberg, and that at the end of the day, there are so many factors at play that it would be foolish for us to focus solely on the "how many millions did they make". Human stories are never boring, and experience is one of the most precious thing others can share.
Thanks for taking the time and effort to write this, Nikki. We're with you.
---
"Investing money, creating new products, and all the other things we do are wonderful games and can be a lot of fun, but it's important to remember that it's all just a game. What's most important is that we are good too each other, and…
Paul Buchheit wrote a good essay on identity called "I am nothing" which is closely related to "don't become anything": http://paulbuchheit.blogspot.ca/2011/08/i-am-nothing.html
I think that's the best part of this article. The criticism of Jeff Atwood's post is off the mark. Atwood wasn't being elitist, he was pointing out flaws in the theory that everybody ought to "learn to code" at a superficial level by putting in a few hours learning Javascript. For many people, more abstract problem solving skills would be more useful and the technical details will change or be forgotten.
The criticism of K&R C and so on also rubbed me the wrong way. That is a great, concise book that is still relevant in a lot of ways. If you're really good with high-level languages like Javascript or Ruby you might be able to do some good work but, all else being equal, you're more limited than somebody who also understands a wider array of programming concepts and more fundamental aspects of how computers work.