I have contributed many plugins to Moodle and am constantly developing new ones. To get started, select what kind of plugin you would like to do as the API is slightly different for each type of plugin. For the most part, mods and blocks are the likely plugins to be developed. However, I find myself developing Course formats, local plugins, reports, admin plugins and more.
In the links that mary has shared with you, you will find templates for modules (http://docs.moodle.org/dev/NEWMODULE_Documentation) and blocks (http://cvs.moodle.org/contrib/plugins/blocks/NEWBLOCK/). Local plugins follow the same basic structure as modules. The naming convention is where it changes the most. A really important thing to keep in mind is to use the DB class whenever you need to do DB functions. Do not use standard php mysql or other database calls. The DB class handles all the different types of DBs one can use, making your plugin compatible to all supported DBs.
Because plugins always follow the same structure (according to their type), it is easy to look at another contribution of the same kind and figure out how things work.
Essential reading: In order to be up and running quickly, and save the nightmares of trying to figure it out yourself, I suggest reading about Form definitions (http://docs.moodle.org/dev/lib/formslib.php_Form_Definition) and the File API (http://docs.moodle.org/dev/File_API). The file API can be tricky at first, but once your figure it out, it's quite powerful.
I hope this helps and I am looking forward to your contributions