That would be a theoretical approach. I think both theoretical, and practical approaches should be taken.
I'm currently working on learning all the ins and outs of WLAN pentesting and I'm actively testing my home network with Kali, and studying at the same time. I'm learning very efficiently, and am having no problems retaining knowledge. I know a lot more now than I would if I would have spent the time to learn to code, code my own aircrack suite, and test with my own tools. By using already compiled tools, it lets users focus on learning theory, and application of theory altogether, rather than focusing solely on theory for a long time, then move on to practical applications.