Not a programmer, but a lot of what he said somewhat applies.
Whatever I can control, I should control. That means:
- Turning off notifications on my iPhone (this has the added benefit of increased battery life)
- Giving myself a reward for 3 hours of continuous coding [or testing, in my case] (usually in the form of “internet time” like checking Hacker News or twitter)
- Working from home when I really, really, need to get something done
- Investing in a
- Scheduling ‘no meeting’ times on my calendar. These are times shown as busy to everyone else. It’s my work time.
- Not getting into programmer arguments around the office; people have strong opinions, and the programmers who have arguments love to argue. If there’s an actual business problem that needs to be solved, let’s grab a conference room and come up with the advantages and disadvantages of each approach. Let’s get some data. Let’s not just argue.
- Position my desk in such a way that passersby aren’t distracting. [Well, i slouch so that i can’t see passersby. That’s not so healthy but that’s another topic.]
- Taking a first pass at the problem, and *then* asking another developer to walk me through the problem so that I can get a better understanding of what to do. This accomplishes two things: First, it allows me to get the ‘lay of the land’ so that I’ll at least have a basic understanding of the forces at work. Second, it allows me to ask more intelligent questions when I ask for help