TL;DR - Early mornings are the best way to build something extra - for two weeks at a time. As a permanent mode, your quality dies.
If you want to get something additional done as a programmer - a side project next to your job - waking up early is absolutely the best thing you can do.
But it should be a two-week sprint, not an entire-life change. Run it permanently and your work turns into bad quality.
My cycle: two weeks of early sprint, one week of normal offload, then repeat. You can cycle through it for a long time and keep getting results. Sleep in on weekends if that's what recovers you.
For me, weekends aren't really for relaxing - I still work, just less, because I like producing. But the sprint-offload cycle is the part that transfers to anyone.