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. Two themes are already available within the default Magento 2.x code structure: Blank theme and Luma theme. Refer to these default themes when creating custom themes.
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-4 compliant structure when building a module.