Here are some interesting lists. Each of them is fleshed out in a blog post you really should read. I'll give you the lists so you know you want to read them.
First, Ted Neward on 10 Things To Improve Your Development Career:
10: Build a PC.
9: Pick a destination
8: Be a bell curve
7: Learn one new thing every year
6: Practice, practice, practice
5: Turn off the TV
4: Have a life
3: Practice on a cadaver
2: Administer the system
1: Cultivate a peer group
Some of those are metaphors: I'll let Ted explain them.
Then, we have Jim Carroll and How to Get Faster When the World is Faster:
- build up experiential capital
- master collaboration and share
- focus on tactical to strategic transitions
- fuse generational insight
- take on anticipatory projects
- be a farmer
- displace indecision
- implement quicker
- think bold
The advice is aimed at entire companies, but I think it can resonate well with an individual. Again well worth the read.
And then there's John MacIntyre and 11 Personal Programming Assumptions That Were Incorrect.
- The customer and user are the same person.
- You isolate and kill all bugs without exception.
- Writing beautiful software as an act of craftsmanship.
- Working 24/7 would be rewarded.
- Vendors can be believed.
- You are not actually working from the monitor.
- That I wasn’t a very good programmer.
- You need to / should grok a language or tool before you even
- You don’t say you know something unless you’ve grok’d it.
- Other programmers saw beauty in their work.
- The best programmer is recognized.
There's some cynicism in there, but others might call it realism. I suspect most of this you have to learn from experience, but perhaps you recognize a few?