The PHP Developer Guide contains information for developers who want to know more about developing or modifying Magento components. With this knowledge you can extend or customize any of the existing components in the Magento application. You can also create components that introduce new functionality and distribute them to merchants.
The Magento application is made up of Modules, Themes, and Language Packages:
Modules interact with other parts of the application to accomplish a particular business function or provide a feature. A module can contain a user interface for displaying information or interacting with the user. It can also contain application interfaces that another Magento module or code chunk might call.
Themes provide a personalized touch for each Magento installation by changing the look and feel of the storefront or Admin.
Language packages assist in internationalization(I18n) and localization by providing translations for strings that display on the storefront and Admin.
You must follow a PSR compliant structure when building a module.