1. You need to understand PHP.
2. You need to understand database Sql, relational database and how to setup some basic architecture.
4. You need to know the hooks system of drupal.
5. You need to know the naming conventions of hooks, themes, modules , functions etc.
Below are the some most important hooks in Drupal to develop a drupal module:
- hook_form_alter() – Perform alterations before a form is rendered.
- hook_menu() – Define menu items and page callbacks.
- hook_theme() – Register a module theme implementations.
- hook_nodeapi() – Act on nodes defined by other modules.
- hook_schema() – Define the current version of the database schema.
- hook_install() / hook_uninstall() – Perform setup tasks when the module is installed.
- hook_perm() – Define user permissions.
- hook_init() – Perform setup tasks for non-cached page requests.
- hook_user() – if you need to tap into user actions or modify the user object