Hi Keith,
The Developer training gives you insight into the basic concepts and the philosophy of the product. It cannot tell you about all the APIs and functionality in the product.
AEM is a big product, cotains a lot of functionality and provides even more APIs. To really understand AEM I would do this:
* get an understanding what JCR is: spend a day on reading the specification (you don't need to know anything by heart, but you need just an impresssion what it can and what it does)
* get to know Sling! Sling is used a lot throughout the product, and in most cases the source code is very readable. That's also a good way to learn how to develop with OSGI.
* Get the source of ACS AEM Commons, pick a random feature and look how it is implemented. Have a look at the product API used in this feature.
* Learn HTL and Sling Models.
And for the next level you need experience. You need to learn when to use which feature. You need to learn about the importance of content structures and ACLs. I would expect that after a year and maybe 2 completed projects you know pretty much about the strengths and weaknesses of AEM.
Hope that helps,
Jörg