Hooks can be thought of as internal Drupal events. They are also called callbacks, but because they are
constructed by function-naming conventions and not by registering with a listener, they are not truly
being called back. Hooks allow modules to “hook into” what is happening in the rest of Drupal.
Suppose a user logs into your Drupal web site. At the time the user logs in, Drupal fires hook_user_login.
That means that any function named according to the convention module name plus hook name will be called. For example, comment_user_login() in the comment module,
locale_user_login() in the locale module, node_user_login() in the node module, and any other
similarly named functions will be called.
If you were to write a custom module called spammy.module and
include a function called spammy_user_login() that sent an e-mail to the user, your function would be
called too, and the hapless user would receive an unsolicited e-mail at every login.
The most common way to tap into Drupal’s core functionality is through the implementation of
hooks in modules.
You have to use coding to implement hooks and you need to know PHP.
For more details about the hooks Drupal supports, see the online documentation at
http://api.drupal.org/api/7, and look under Components of Drupal, then “Module system (Drupal hooks).”