Atwood gives a collection of career advice as a programmer, the advice falls into several categories. Many advice not only applies to programmers but other profession as well.
In the end, Atwood explores the topic of happiness, and tackle the hard question of how to be happy. Approaching it as a programmer, he laid out a list of rules he developed over the years.
Communication
Great programmers can communicate their ideas. By persuading other people, they get leverage.
Strike a mindful balance between practicing your craft and thinking about how you practice your craft.
Coding
Programming is the kind of task where you have to keep a lot of things in your head at once.
No matter what the problem is with your software — maybe it’s not in your code in the first place — always assume the problem is in your code and act accordingly.
Most of the time, what inexperienced developer considers beautiful is superficial, and what they consider ugly, is battle-hardened production-ready code from master hackers.
Performance is a feature, I simply like using faster website than slower website.
It’s been shown time and time again there is no correlation between years of experience and skill in programming.
Your app is a collection of details.
For users, UI is the application.
Decision making (in life)
Be bold, figure out what you’re good at, and pursue it aggressively.
Speak of iteration beats quality of iteration.
There are good fast decisions but no good slow decisions.
We typically overestimate how much we’ll actually get done.
Innovation is not about saying yes to everything, but saying no to all but most crucial features.
Every decision we make is a trade-off, to be a master programmer is to understand these trade-offs.
Quality
People are often successful not despite their dysfunctions but because of them. Obsessions are one of the greatest telltale signs of success.
Have a rock-solid vision statement from day one.
Be humble, always first presume you’re wrong.
Success is rarely determined by the quality of your ideas, but rather frequently determined by the quality of your execution.
Team
If your team manager isn’t dealing with the bad apple on your project, he is not doing her job.