To improve in any skill based activity, you need time, talent, opportunity, and drive.
Time: Free time to devote to the activity.
Talent: Natural affinity to learning the activity.
Opportunity: Access to the proper resources to improve.
Drive: Personal drive to improve yourself.