Zach is apparently too lazy to prep his own lectures for the last few days of his intro to web programming class. After bringing his students from zero to database-backed web-apps, he asked Matt do JavaScript and me to introduce WordPress as an application platform.
The WordPress API makes it easy to write plugins that modify WordPress’ behavior with filters and action hooks. Additionally, shortcodes allow you to put small bbcode-like tokens in your WordPress posts and pages that are replaced with by functionality defined in your plugins. Finally, the Widgets API allows you to make tiny applications/gadgets that users can configure and position on their site.
Understanding WordPress means understanding its hooks and filters; however, tracing those hooks and filters isn’t as easy as cross-referencing function calls. Mark Jaquith and Adam Brown each offer databases to help explain the hooks and filters. Brown’s is a little more up to date and includes code references, Jaquith’s includes some detailed descriptions to explain a handful of the hooks. And once you make sense of those hooks and filters, you have to realize that WordPress uses them internally for its default behavior, and just as you can register a hook of your own, you can unregister the default hooks (and filters).
I’ve already deleted my code examples, so the above intro is pretty much all I can offer as a take away.