curriculum/challenges/english/blocks/learn-how-to-clarify-misunderstandings/67e94922f19f97037dbf2a33.md
Read the text and answer the question below.
After his conversation with Sophie, Mark decided to write to his mentor David to reflect on what he had learned.
Hi David,
I just wanted to share a quick update. After sitting in on a recent code review, I finally feel like I'm starting to understand some key programming concepts.
Sophie explained terms like polymorphism, encapsulation, inheritance, and abstraction. For example, I saw how encapsulation helps with keeping details hidden and making the code easier to work with. I also noticed polymorphism in a method that changes behavior depending on the input.
I tried writing a small class using these ideas — focusing on clean code structure, reusing properties and methods, and simplifying functionality.
Does it mean I'm on the right track if I can explain these terms and apply them in a simple project?
Thanks for explaining these things over time. I appreciate the explanations and all your support.
Best,
Mark
What helped Mark begin to understand programming concepts more clearly?
Writing unit tests for a legacy system.
There's no mention of testing or legacy systems in the email.
Joining a code review and talking with Sophie.
Debugging a major error on his own.
Mark learned from reviewing and discussing code — not from debugging by himself.
Rewriting the entire codebase from scratch.
The email doesn't mention rewriting code.
2
Mark mentions sitting in on a code review and learning from Sophie.
This experience helped him better understand programming terms, which makes it the most relevant detail.