The Drupal Platform has many additional modules able to satisfy most needs. To create a Drupal site with particular needs, it is however possible to program customized Drupal modules, developed on the basis of the User's requirements.
Modules
A module is nothing more than a set of functions that provide new functionalities to Drupal or adapt existing ones for their own purposes.
Inside the modules are defined the routing rules that lead to the controllers (or forms) and the various "hooks" that allow you to hook the module to the Drupal API and to define the various aspects that will characterize the module.
PHP Language
Oracle, Microsoft SQL Server, MySQL, ...
The Drupal Platform is designed to be extended with additional modules, which must be created respecting the framework and standards adopted by this CMS, in order to integrate correctly with the underlying architecture. In addition to knowing the PHP development language, it is necessary to have skills on numerous other tools and libraries (Symfony, Drush, Drupal API, etc.).