Modules are lightweight and flexible extensions used for page rendering. These modules are often “boxes” arranged around a component on a typical page. A well-known example is the login module. Modules are assigned per menu item, so you can decide to show or hide (for example) the login module depending on which page (menu item) the user is currently on. Some modules are linked to components: the “latest news” module, for example, links to the content component (com_content) and displays links to the newest content items. However, modules do not need to be linked to components; they don't even need to be linked to anything and can be just static HTML or text.
Modules are managed in the Joomla! Administrator view by the Module Manager. More information about module management can be found on the appropriate version help screens.
A module position is a placeholder in a template. Placeholders identify one or several positions within the template and tell the Joomla! application where to place output from modules assigned to a particular position. The template designer has complete control over module positions, creating variations between templates and the respective Joomla! default positions assigned to modules in the installation sample data.
For example, the module position Left could be defined to be on the left side of the template to display a site navigation menu. So if a module is assigned the Left position, it will be displayed wherever the designer puts that Left module position - not necessarily the left side of the page.
Modules are one of the simplest parts of Joomla and a great entry point for people learning to use the system (the equivalent of widgets in wordpress). They can be displayed just about anywhere on a page (in all the positions a template allows as well as in the main content area using the loadmodule plugin for the com_content component).
To understand how to install and use a module in Joomla it is recommended to read Administration of a Module in Joomla
Creating a simple module for Joomla is one of the simplest development steps you can do - and the creating a simple module tutorial is designed to take you through this. It starts with a simple module and then shows a few things you can then do with the module.
Introduced into Joomla 3.2 is a hidden component that allows modules to create AJAX requests. You can find documentation about using the AJAX component to help you create even better modules.
Joomla! is packaged with many modules, more are available on the JED(Joomla! Extension Directory). Here are the standard modules available in a new Joomla! installation.