I released my first module a few weeks ago: http://drupal.org/project/library
The library module was the result of many months of writing and re-rewriting. While I had claimed to know PHP prior to developing this module, my work with the library module really helped to clarify a few concepts that I hadn't fully understood before.
Update on my decisions:
I've recently been doing research into other modules that are commonly used by libraries and that have functionality that would be useful in combination with the library module that I'm writing. One module that looks particularly interesting is the Bibliography Module.
There are a handful of functions that any module developer needs to know to get started developing for Drupal. In my perspective, functions fall into 4 categories: PHP functions (not specific to Drupal), general Drupal functions not associated with a specific module (such as database and error functions), hooks, and core module functions (often overwritten hooks).