In terms of customising calibre as a programmer I found the links is this thread very helpful:
https://www.mobileread.com/forums/sho...d.php?t=155899
and since I wanted some UI plugins it was most appropriate.
If you're not already familiar with Python but do program in other languages then I found this site very good:
https://docs.python.org/2.7/