There is a lot more to being a programmer than writing code but this week was particularly busy on the code front. The main lesson, relearned, is to communicate. When you are head down in a problem that isn't shifting there are people unsure if you're doing anything. Beginning of the day, end of the day, just give them an update however little progress has been made. If you don't do this you create an information vacuum which people will attempt to fill.