The Feynman Technique, a namesake of Richard Feynman (a Nobel Prize-winning theoretical physicist) is a popular learning approach that validates someone's grasp and retention of a subject with their ability to explain it simple, digestible terms. In other words, if you can explain it to a kindergartener and they understand what you're saying, you're golden.

Derivatives in calculus. Photosynthesis in biology. Supply and demand in economics. Dictionaries in Python. The Feynman Technique will work smoothly to help you comprehend centralized, multi-dimensional topics like these. So, definitely use it for any anything in the language of computers you're having trouble understanding. But if you want to fully master these concepts, there is still ways to go.

Let's look at learning curve for understanding new material.

Writing down the material, explaining it, finding your knowledge gaps, and then filling them does let you increase your proficiency of an area but soon leads you to a plateau. From this plateau, you are at a sort of crossroads.

Path 1: You can either garner more theoretical and abstract knowledge, slowly incrementing your graph in the plateau.

Path 2: Or, you can move beyond memorization into actually applying and exercising your skills and attain that desired peak proficiency.

The Learning Curve Theory from Valamis Hub.

Path 2 would mean writing mathematical proofs, observing plants with scientific experiments, drawing supply and demand curves, and actually coding a program that uses a dictionary.

Although this path looks like it will require more time and effort, it's worthwhile. And trust us when we say, it's a decision that would set you apart from every programmer out there.  

Coding projects enhance your entire learning experience, allowing you to naturally:

  1. Recall basic programming concepts
  2. Explain the ideas to yourself as you apply them
  3. Use your information in new surroundings
  4. Find connections and patterns among the ideas
  5. Evaluate the situation with the work you've produce
  6. Receive inspiration to build novel, original things on your own

Projects help you learn faster, smarter, and better.

A lot of you might be worrying on how to go about finding actual coding projects to do or discovering ones that make your effort worth it. Whatever project you decide to choose, try to see if it covers the seven essential elements for the Gold Standard PBL, a research-informed educational model for project based learning.

  1. Student Choice: You as a programmer should have a sense of freedom about the project, including a choice on the scope and design, how to pace yourself, and what to do with the result.
  2. Challenge: It should be structured to engage you and push you to learn more. If the project feels difficult, it might mean you're actually learning a lot more.
  3. Authenticity: Certain features of the project should be able to be personalized. In other words, the project can be yours somehow and no one else will ever have the same thing.
  4. Sustained Inquiry: A wide range of material and coding tools should be explored. Even the smallest implementations of something you've never seen before would make you more knowledgeable.
  5. Revision: It's fine if there's room for error or improvement within the project. Learning how to fix unexpected and making the code more adaptable and efficient makes you a stronger programmer.
  6. Final Product: The resulting product should matter to you or someone else that matters to you. It should be something you're proud of, no matter what it is.
  7. Reflection: This is more about the programmer and not the project. Know that whatever you will build will have potential. It could make you more equipped to handle your next project or inspire you to build creative, original work in the future.
According to Gold Standard PBL, these are the seven essential project design elements.

Conclusion

Projects can be created around just about anything. There is flexibility in the content area, design, use, and complexity you pick. There is versatility in the tools, interfaces, and technology you involve. Plus, they can be tailed to your real passions and interests. When you have a personal investment in something, you're more curious and excited to pursue it and keep learning– almost like a form of internal motivation. And that is the best kind. And that is what will let you grow as a programmer, student, and learner.


Hi! I'm Sreya and I work on building the community and vision at TheCodex. Thanks for reading!

The Codex specializes in project based learning because we recognize its value. We want students to complement their foundational education of Python material with the building of practical, relevant, and functional projects. Visit https://thecodex.me/ to start mastering your Python skills in a fun and enjoyable way.