Seven Research-Based Tips For More Effective Teaching & Learning | How Learning Works

We look at how to more effectively teach and learn as software engineers learning new technologies or as developer advocates looking to educate the web3 space. Based on a review of the book.

Patrick Collins
4 min readDec 7, 2022
Seven Research-Based Principles for Effective Teaching & Learning

🧑🏽‍🏫 As a software engineer and web3 educator, I’m always looking to be more effective at teaching & learning.

I recently finished “How Learning Works: 7 Research-based principles for smart teaching” to level up these skills, and we discuss the learnings here.

Part of my learning journey is to write all my new information down somewhere, and I figured I’d share my learnings with you to help me learn!

👇 Here is the summary of the seven research-based tips for more effective learning and teaching. And of course, I highly recommend the book if you want to learn more.

🧠 1. Address Prior Knowledge

To learn, you MUST build on concepts you already deeply understand; if your foundation is weak, it’ll be hard to base the new knowledge in reality. Additionally, you’ll want to approach learning with a clear slate and be ready to challenge preconceived notions.

Action Items:

  • Make sure students have solid foundations before building on those concepts
  • Be sure to correct common misconceptions or incorrect prior knowledge
  • Get feedback from students on what their prior knowledge is

Example:

In blockchain, many people would learn to code smart contracts but don’t understand what problem smart contracts solve. Moving forward, in my longer courses, I explain “trust minimized agreements” so people understand their use case before trying to build applications.

đź“Š 2. Organize your knowledge

Think of your knowledge like a giant relational database. Or a graph. Or a board from those detective movies with a hundred threads of yarn and pins.

When you draw up your knowledge, the more connections you have between chunks of info, the easier it’ll be to process and draw conclusions.

Action items:

  • Draw connections between concepts so students can understand not only the concept but how that concept interacts with other concepts

Example:

When I want to explain the relationship between blocks and transactions in web3, I often go through an example of building a block. After, I send a tx and run over to Etherscan to show how the tx is going to be included in the eth block.

🥅 3. Dial in Goals & Motivation

Each student has a different rationale for wanting to learn something, and without this, all your teaching is worthless.

Action Items:

  • Show students the rewards of learning the material
  • Draw up attainable goals

Example:

At the start of my long web3 courses, I explain that many other students have used these courses to kick-start their web3 careers (the reward of learning) and that if they spend 25 minutes a day, they will be able to solve the smart contract challenges I give (attainable goals).

🤹 4. Acquire & teach component skills

Knowledge is never in a vacuum!

This is something I see FAR too much of — people teaching in a vacuum. To be successful and master a craft, you need to be good at several skills around a domain.

Action Items:

  • Teach & Acquire skills that are related to a topic

Example:

If you learn everything about Solidity but don’t understand git, consensus, how to ask questions on a forum, how to deploy your contracts, or why you’re even building smart contracts, all that information is worthless!

A great example is me teaching developers to understand that if they give out their private key, they should consider all the funds in that key compromised!

🏋️‍♂️ 5. Feedback-driven, sufficiently challenging goal-driven practice makes permanent

A take on “practice makes perfect.”

We don’t say it makes “perfect” because whatever you practice becomes a habit!

To learn, you need to repeat testing your skills and getting feedback on how you’re doing.

Action Items:

  • Give and do practice that will push your habits toward a goal

Example:

In every freeCodeCamp course, I gave little NFT puzzles on Arbitrum for people to practice their skills. This is an area that I want to have more of in future courses, give people more opportunities to practice and hone in their skills.

6. 👯‍♀️ Learning environment makes a big different

Students should feel welcome, accepted, and safe to fail in a learning environment. The more this is fostered, the better. Hostile learning environments can quickly end someone’s interest in a subject.

Action Items:

  • Make uncertainty or getting things wrong safe and accepted
  • Encourage disagreements and constructive discourse
  • Encourage students to challenge even your teachings

Example:

We made a GitHub discussions platform for students to interact with each other and get help. And just about every 30 minutes or so, I would say, “if you’re confused, that’s ok!”

⛅️ 7. Get good at meta-cognition

What does that mean?

Most courses don’t focus on this, but this focuses on teaching students how they can learn better (a good step is reading this thread). Being able to assess how long a task will take, plan out how they will approach a problem, or get into a good daily routine are things students will need to understand to learn more effectively.

Action Items:

  • Be extremely explicit as a teacher
  • Give feedback on how students strategize approaching problems
  • Give grading rubrics so students know how to do well on the projects

Examples:

In the middle of our course, we gave feedback on how students should debug issues. They should try to hone in on the exact problem and ask questions on stack exchange if they get blocked.

Summary

Hope your learned something from here, or if you’re an educator, I hope you take some of these principles into your next piece of content!

Follow me

Twitter

Medium

YouTube

--

--

Patrick Collins
Patrick Collins

Written by Patrick Collins

Lover of smart contract engineering and security

Responses (4)