Learning to program in a programming language is a difficult task for Computer Science students. Vygotsky's constructivism theory states that learning is unavoidably done through association of new concepts with existing ones. Based on this theory, students must build upon life experience concepts, abstract computer concepts (like memory indirection and execution threads), and programming language concepts (like pointers and threads). We hypothesize that we can ease the association process and improve the learning of abstract concepts by using metaphors, letting students program them directly through gamified development environments. We propose a methodology to design gamified development environments supporting the concept association principle. We provide an example of a gamified development environment idea using metaphors for learning abstract programming concepts reported as difficult to learn in a student survey. The gamified development environment idea was validated by Programming II (CS2) professors through two focus groups with slightly positive results.