What is focus? It means extreme concentration on a given task. In other words, I don't know what distraction is like, no other emotion is bothering me, afraid of nothing, nothing matters but the current task -- I am in the flow.
What is dedication? It means practice, practice, and practice, non-stopping. I can recall my goal at every waking moment in the morning(like playing FFVII), and I know what is the next small step I have to do to achieve your huge, specific goal.
How to become a great programmer? It requires focus, dedication, knowing your (language, platform, domain), learning the new technology that can do the job faster(learning a new language), design patterns, algorithms. Write down and repeat anything I am not very comfortable yet. In short, massive reading and code like there is no tomorrow.
What are steps to do everyday? Pick a problem/algorithm early and think about it through out the day. Inner review at bed before falling asleep, blog the new lessons, set a feature to learn for (C++, C#, WPF, Python, Algorithm, and Design Pattern). Remember to code these features. Jogging and heavy lifting. Measure and estimate the time, avoid distraction, 精神, and repeat!
How to measure every week? List features/algorithm/book_reading I want to achieve this week. Estimate and make sure I am on track.
Have I achieved my goal yet? I can code as fast I can think.
C++: repeat language features (like C++ in a nutshell), STL, Boost, Template
C#: assembly, LINQ
WPF:control, data-binding, style
Python: repeat language features, standard library,
MySQL:normalization, stored procedure, basic query, join
Algorithm: search and sort, combinatorial algorithm, graph algorithm
Design Pattern: recall and implement