I have a background in modern web development using Laravel (PHP) and Angular (JS.TypeScript) and feel very comfortable on the front end and back end side of things. I also have Java experience and am comfortable reading and writing it (at least up to an intermediate level). Given this type of background (no experience with JCRs, CMS, etc), what is the most effective way to come to grips with AEM and become proficient with it from a developer standpoint?
I have worked through the getting started material from Adobe and it either leaves much to be desired or I'm just not getting it. Aside from the very basics, I don't feel like I'm taking anything away from the training (in terms of being able to dive into a big existing project and get stuff done). Is this because I don't have a firm understanding of some underlying technologies or something? My goal is to really understand AEM and how it works as well as be able to proficiently develop new functionality while maintaining/fixing existing functionality.
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.
As Scott, Jorg and Ratna answered, please register your self in solution partner site. and start with learning of AEM with given videos.
Also please try to answer in Forum question, you will know the issues which world wide developer faces. Additionally refer the helpx articles where you will know about the use case and can do hands on work.
If you will face any difficulty feel free to post your question in forum.
You are right - the AEM Docs are just the beginning of AEM. They teach you how to use the AEM UI and tasks that you can perform from that UI - like uploading Assets, setting permissions, authoring tasks, etc.
However - the community has a lot of information. There are many end to end AEM HELPX articles (we have over 200 and community has many more) that will teach you how to perform specific use cases.
You need to understand many things both on the back end and front end. For example:
Taking the time to explore the content that i have listed and doing them will get you educated enough where you can join our ranks of AEM super users and know AEM enough to pass the certification exam. We have many community experts that started like you and are now certified.