This tutorial will show you how to set up your development environment, create an empty plugin template, and the basic principles of building, debugging, and testing a plugin. It will take you through the prerequisites and introduce you to some of the resources that Atlassian provides for plugin developers.
These documents are specifically about plugins for Confluence. There's a page for each plugin module type that Confluence supports. You can combine multiple plugin modules inside a single plugin to accomplish complex tasks.
These documents go some of the way to explaining what's really going on inside Confluence. Some of this information is useful to plugin developers. Other pieces are more relevant to the Confluence development team, but we've published them here in the spirit of open documentation.