Chuck Jazdzewski has excellent Fatherly Advice for New Programmers (source). I’ve had an essay like this on my mind for a while, but he did a much better job of hitting the salient points. It has one of my favorite quotes about working in a high tech industry: “shipping a product feels good, like when someone stops hitting you.”
UPDATE 2007/01/23: Coding Horror has a decent follow-up. As does Mike-o-matic.
Here is the summary if you’re skimming. It’s worth reading in it’s entirety.
Keep Learning: Each new skill is one more tool in your tool chest that helps you tackle your next problem.
Learn To Communicate: Help people understand what you are doing. Break things into simple, understandable pieces. Communicate by analogy and symbolism.
Be Predictable: Wait to predict how long it will take you to complete a task until you understand it. Under-promise, over-deliver. People depend, schedule, and plan around your predictions.
Own Up To Your Mistakes: How you handle your mistakes is how you will be judged. Take ownership of your mistake or you will repeat it.
Never Let Bad Code Off Your Desk: It is much more expensive, and much harder, to find a problem once it leaves your desk than before. If you haven’t tested it, it doesn’t work.
Programming is Fun But Shipping is Your Job: Shipping isn’t fun. Your job is completing the product, fixing the bugs, and shipping. You don’t get paid to program, you get paid to ship.
What are you doing still reading this? Read Chuck’s article.