Cognitive Load Theory is all about efficiency where efficiency is defined in terms of learner performance and learner mental effort. CLT suggests that we have only a limited amount of cognitive capacity for solving problems in our short term working memory (as opposed to long term memory for information storage). The higher the learner performance and the lower the learner mental effort (which occurs in the short term working memory), the better! According to CLT, there are three main types of cognitive load when one tries to learn something: intrinsic load (due to the complexity of the content to be learned), germane load (due to the instructional activities), and extraneous load (due to wasted mental resources on irrelevant material). Thus, in a first year computer programming course, learning to program in Java imposes the intrinsic load, providing worked examples on a variety of programming tasks contribute to the germane load, and requiring students to work within a complex integrated development environment (IDE) impose extraneous load on the students. Efficient instruction maximize germane load and minimize extraneous load.
Cognitive load depends on the interaction of three components: the learning goal and its associated content, learner's prior knowledge, and the instructional environment.
Clark, R.C., Nguyen, and F., Sweller, J. (2006). Efficiency in Learning. San Francisco: Pfeiffer.