Pioneering Education Strategies in Software Developer Bootcamps: The Reflective Coder

This article is part of the Follow the Science series where I share our team's journey in developing a learning experience based on modern cognitive science, learning science, and educational psychology.


In today's rapidly evolving world, the ability to learn effectively is not just a skill but a necessity, especially in fields like software development. Our exploration into the cognitive benefits of reflective learning has unveiled meaningful benefits to our learning experience, reshaping our understanding of how people learn and grow. Reflective learning, a metacognitive task, is not merely about reviewing what one has learned; it's about diving deep into the 'why' and 'how' of our learning processes.

In this article, we'll uncover how reflective learning enhances problem-solving skills and critical thinking in software development, transcending beyond mere pattern recognition to a deeper understanding of concepts. We'll explore the benefits of reflective practices, from enhanced understanding and improved decision-making to increased retention and heightened self-awareness.

Further, we delve into the practical implementation of reflective learning in educational settings, discussing innovative strategies and addressing the challenges faced in integrating these practices. The insights shared here are grounded in our extensive research and hands-on experiences, offering valuable takeaways for educators, learners, and professionals alike.


Reflection is the cognitive process of thinking critically about one's own learning and experiences. It involves analyzing how one approached a problem, what strategies were used, what was successful, what failed, and how one's understanding of a subject has changed or grown. This metacognitive process is fundamental to deep learning and is a core component of developing problem-solving skills.

Intentional reflection provides many benefits.

  1. Enhanced Understanding: Reflection helps learners understand the deeper principles underlying their actions, leading to a richer understanding of the subject matter.
  2. Critical Thinking: By reflecting on their experiences, students can develop a more nuanced approach to problem-solving that involves critical thinking and self-questioning.
  3. Better Decision Making: Regular reflection allows learners to pause and consider their learning journey, which can lead to better decisions about future learning paths and problem-solving approaches.
  4. Increased Retention: The act of reflecting on learned material can aid in the retention of information by reinforcing the memory trace in the brain. Read more about the benefits of Retrieval.
  5. Self-Awareness: Reflective practices cultivate self-awareness, helping learners recognize their strengths and areas for improvement.

Implementation of Reflection

In our learning experience, once the students have completed the projects in the first section, they are asked to reflect on their understanding - and not through writing code. They are asked to reflect on the why of the code, or the benefits of specific strategies.

For example, understanding functions is a core learning objective of the first section of the course. Yes, a student must have the ability to use the correct syntax for defining and invoking a function, but they are also asked this.

Explain why a function that works correctly with one set of arguments might not work with another. How would you go about troubleshooting this?

This ensures that their focus is not just on "I got it to work", but rather on "this is why it works and why it might not". When the focus is just on producing working code, a learner misses the opportunity to deepen problem solving abilities. It also leads a learner down the path of exploring the uncertain, rather than focusing on the certain.

Once each learner has spent time reflecting on their current competencies and comprehension, time is schedule with an instructor to report their observations and the two people can work together to devise a strategy for the learner to fill in any gaps. At that point, the learner has complete ownership of, and accountability for, following that strategy.

Another strategy that we use is deconstruction. There are opportunities for learner to examine an existing project, and then deconstruct it into its individual components and algorithms. One such scenario is covered in the Cultivating Problem Solvers article. This requires that the learners reflect on strategies that have been learned, and use analytical thinking to determine which ones were used to build the project.

Challenges of Reflective Learning

There are challenges that you must be aware of if you plan on integrating reflective practices into your learning experience.

Past Traumas

Some learners have such poisonous past experiences where judgement of their abilities leave them unable to open up with a coach and be objective about their understanding. You must be willing to have the patience to slowly build trust with those learners.

You need to constantly acknowledge that being a beginner is difficult, and have the ability to meet the learner where they are without judgement.

Timing is Everything

Spacing the opportunity for reflecting on understanding of concepts is a challenge. If a learner spends a significant amount of time and cognitive effort on a large set of objectives, it can be hard for them to reflect on the whole set. If you space them too quickly, then the power of metacognitive task of Retrieval is not utilized.

You'll Make Mistakes

It requires adequate training and experience for a coach/instructor to be able to help a learner be accountable to meeting goals without having the learner feel harshly judged. This can be a challenge for a new coach/teacher/etc.

Take some time to learn about the basics of cognitive load theory, and then read a wonderful overview of how to account for working memroy limits in a learning environment in the Cognitive-Load Theory: Methods to Manage Working Memory Load in the Learning of Complex Tasks

The Future of Learning: Reflection at the Core

By utilizing the power of reflection, education would emphasize not just the acquisition of knowledge but also the process of learning itself. Students would be trained to think about how they think, leading to better problem-solving and analytical skills.

As students reflect on their learning journeys, they become more adept at self-assessment and self-directed learning, skills crucial for lifelong learning - an admirable goal for any educator.

In the coming years, as artificial intelligence grows in adoption, the tools could be used to analyze students' reflective writings and provide personalized feedback or learning recommendations. Education would increasingly tailor to individual learning styles and needs. Reflective practices encourage learners to understand their own learning processes, leading to more personalized and effective learning strategies.

Reflection in Cognitive Science

If you want to learn more about cognitive science research into the power of reflection, here are some articles to investigate.

Schön, Donald A. (1983). "The Reflective Practitioner: How Professionals Think in Action."

Schön's work is seminal in the field of reflective practice. He explores how professionals, particularly in design and management, learn from their experiences in real-time. This book is a foundational text in understanding the role of reflection in professional development.

Mezirow, Jack. (1990). "How Critical Reflection triggers Transformative Learning." In J. Mezirow & Associates (Eds.), "Fostering Critical Reflection in Adulthood."

Mezirow's work on transformative learning emphasizes the role of critical reflection in facilitating significant personal change and learning. This study is especially relevant in adult education.