My favorite way to learn is to read other people's code. Find a fairly simple add-on, or one that seems to do something interesting to you, or one that does something similar to what you want to do. I also strongly recommend the
Zgoo add-on to see the environment in which you will be developing.