On hard work
Great people get shaped by their achievements
- There's Thomas Edison who developed countless prototypes before selling a single light bulb.
- The unemployed Joanne K. Rowling writing Harry Potter in a Cafe while caring for her child.
- Steve Wozniak creating the first personal computer in his spare time while working at HP.
What do they have in common?
They all lived through frustration and contempt but still reached their goals, even though the chances for success were low. These people are stemming their strong will from an intrinsic curiosity.
Sure, I love what I do. I want to be a programmer for the rest of my life, but sometimes it seems simply too hard to finish a project. I get scared by the big picture and fear that I won't finish on time. What I need is a different mindset.
Dhanji R. Prasanna, a former Google Wave team member made this observation
And this is the essential broader point--as a programmer you must have a series of wins, every single day. It is the Deus Ex Machina of hacker success. It is what makes you eager for the next feature, and the next after that.
While Google Wave has not been commercially successful, it sure was a technical breakthrough -- and it was a drag to push it out into public. We always have to see our goal right in front of us, as we take a billion baby steps to reach it. This is true for any profession. Winners never give up.
Today it is easier to accomplish something meaningful than ever before.
If you are reading this, you have access to a powerful instrument -- a computer with an Internet connection. We live in a time where a single person can accomplish miracles without hard physical labor. A time where billions of people can grow a business from their desk, get famous in minutes, publish books in seconds and have instant access to large amounts of data. The most powerful development over the last 100 years has been the reduction of communication costs. Transferring a bit of information to the other end of the world is virtually free and takes fractions of a second. While proper education was a privilege of a lucky few well into the 20th century, learning new things is now mostly a question of will.
Nevertheless, learning is still a tedious task, requiring patience and determination. As the amount of information has increased, so have the ways of distraction. Losing focus is just a click away.
Everybody can start something. Few will finish anything. That's because getting things done is hard, even if you love what you're doing. (Watch the beginnings of There Will Be Blood and Primer for a definition of hard work.)
No matter what they tell you, achieving anything sustainable means hustling. It means making sacrifices. It means pushing through. It means selling something even though it isn't perfect. Your elegant project might turn into an ugly groundhog in the end. Put makeup on it and get it out the door.
On a report about Quake's 3D-Engine, developer Michael Abrash says:
By the end of a project, the design is carved in stone, and most of the work involves fixing bugs, or trying to figure out how to shoehorn in yet another feature that was never planned for in the original design. All that is a lot less fun than starting a project, and often very hard work--but it has to be done before the project can ship. As a former manager of mine liked to say, "After you finish the first 90% of a project, you have to finish the other 90%." It's that second 90% that's the key to success.
A lot of programmers get to that second 90%, get tired and bored and frustrated, and change jobs, or lose focus, or find excuses to procrastinate. There are a million ways not to finish a project, but there's only one way to finish: Put your head down and grind it out until it's done. Do that, and I promise you the programming world will be yours.
That last part has influenced me a lot. The dedication, the urgency to reach your aims must come from within you. It's your raw inner voice speaking -- don't let it fade away. And when you are close to giving up, stop thinking so hard. Just try to push forward and make a tiny step in the right direction. You can't lose.