  Programming is a craft which often demands that learners engage in a
significantly high level of individual practice and experimentation in order to
acquire basic competencies. However, practice behaviours can be undermined
during the early stages of instruction. This is often the result of seemingly
trivial misconceptions that, when left unchecked, create cognitive-affective
barriers. These interact with learners' self-beliefs, potentially inducing
affective states that inhibit practice. This paper questions how to design a
learning environment that can address this issue. It is proposed that
analytical and adaptable approaches, which could include soft scaffolding,
ongoing detailed informative feedback and a focus on self-enhancement alongside
skill development, can help overcome such barriers.
