Is LDD still up to date?
When I was first learning to write kernel drivers, I had LDD open on one screen and the kernel source code open on the other. You can usually look for examples in the source that will help you figure out the “modern” ways of doing things. LDD is indispensable for giving you a solid footing so that you’re not wading into the Linux kernel totally unequipped.