I'm just starting to appreciate getting up really early. I think it's wonderful, but I don't think my programming ability is really maximized at that time, that always seems to happen at night.
It takes a while to develop the habit. The biggest part is forcing yourself to go to bed early. :-) I used to be a "Do things until they're done" in the evening person, but switched to a morning routine when I got into management. Part was that my days had too many interruptions (which was the job) and I was frequently waiting for that 1 person who owed me something in the evening. It was better to start fresh in the morning quiet.
This isn't for everyone or every task. For very monotonous work that only I can do (reviewing 200 resumes because I don't trust the automated screener) I will do it at night with a beer in hand. The beer doesn't work so well before breakfast.