Thoughts on structuring the topic.
Begin with
Drupal is a
- dispatch-driven (core, theme, form)
- state change machine (data model)
- with a service-oriented architecture (modules; hooks)
- display structures (view modes, views, panels,display suite)
- form structures
- database structures (field api, entity construction kit)
- data models, and sub-models (form api, field api)
- templating (render arrays)