Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Session Intro #2

Open
25 tasks
coryhouse opened this issue Apr 18, 2018 · 0 comments
Open
25 tasks

Session Intro #2

coryhouse opened this issue Apr 18, 2018 · 0 comments

Comments

@coryhouse
Copy link
Owner

coryhouse commented Apr 18, 2018

Intro

  • Who is this guy?
  • Name tags
  • Introductions
    • Name
    • Role
    • JS experience
    • React experience
    • Server side tech experience
    • What you're hoping to learn
  • What are you building?
    • Browser support
  • What is your development background?
    • Biggest frustrations with current dev setup
    • What is your current JS experience?
  • Why did you select React?
  • What do you already know about React? Are you comfortable with the prerequisites above?
  • What preferences do you already have?
    • Types
    • State management
    • Styling
    • Testing
    • Server rendering
    • Mobile

My Goals

Leverage what makes in-person training so effective:

  1. Encourage metacognition (thinking about thinking). Foster active thinking, structuring, and validating your understanding.
  2. Get you as excited to continue exploring on your own.
  3. You control your learning experience. Be interactive, like a video game. You help guide pace, implementation, and order.

The 6 Core Learning Techniques

  1. Retrieval - Practice recalling. Quiz yourself. "Our brains are like a forest. The memory is in there somewhere. Retrieving memories creates a path through that forest. The memory gets easier to retrieve each time we try to find it in the forest." Practicing retrieval makes memory stick far better than reviewing the material again.
  2. Spacing - Time between retrieval avoids forgetting. Short-term repetition is a waste of time. If it’s easy to recall because it was just taught, you’re not learning. You’re merely repeating. Memory is forged by spaced retrieval (Time in between quizzes). Retrieving memories changes the way they are later encoded. The harder something is to remember now, the better we will recall it in the future. The more we strain, the easier it will be in the future.
  3. Interleaving - Moving between topics aids retention because it naturally spaces out retrieval. Quit the current topic and move on to something else before you actually feel like you’ve mastered that topic. Yes, it’s frustrating to leave before you’re ready. This admittedly feels slower in the short-term. But doing so helps you learn. Making errors is an integral part of learning. Making errors is a sign that you’re on the right track and pushing.
  4. Variation - Retrieve in random order. Jump around. Shuffle quiz note cards. (Story: Students who practiced throwing bean bags at varied distances even beat those who practiced solely on 3 ft distance). The real world will present concepts in random order and contexts. So variation in examples, contexts, order, etc fosters the ability to recall what you’ve learned and recognize patterns in the real world. NFL players randomize plays and exercises during practice.
  5. Reflection - Think about how the concept fits within your existing knowledge. It’s easier to learn a new concept when we ground it in something we already know. What is this like? What can you compare to? What mistakes did you make? We learn better when we are presented with the challenge before being shown the solution. The act of trying to solve it helps us learn. It’s better to solve a problem then to memorize a solution. And it’s better to attempt a solution and provide the incorrect answer then it is to not make the attempt.
  6. Elaboration - Describe what you’re learning. Explain in your own words. Learning is an act of engagement. You learn by trying to make sense of something new. You don’t engage by watching. You engage by explaining in your own words and relating to what you already know. Embrace the Feynman technique: "If you can’t explain something in simple terms, you don’t understand it" - Richard Feynman. I am okay with asking questions and standing in silence while you think. The act of thinking is helpful. The act of explanation clarifies your understanding and exposes holes. Teaching exposes sloppy understanding.

image

My Teaching Technique

  1. Retrieval - I'll regularly ask the group questions. Write or type the answers.
  2. Spacing - We'll review at three points: After each topics, and at start and end of each day.
  3. Interleaving - We'll build something real that weaves the concepts together in varied order
  4. Variation - We'll implement the concepts in different ways and discuss the merits.
  5. Reflection - I'll ask the group questions to stir reflection. Write or type your answers first. I'll even ask you questions before I've shared the answer. An unanswered question creates a slot in your brain to fill. Trying to answer a question and failing leads to better retention than merely being given the answer.
  6. Elaboration - I'll ask the group for examples of elaboration. What is this? What is this like? Why are we doing this?

Learning Tips

  • Have a growth mindset. "If you're not failing, then you're not learning" - Louise O'Neill
  • Actively engage. To understand something, you must actively engage with it. Metacognition is active.

"The more students actively engage with subject matter, the better they master material and develop critical skills. Undergraduates learn most when they’re asked to solve problems, perform original research, work collaboratively - and receive regular feedback from the professor and their peers. The passive, impersonal lecture turned out to be the worst of all possible worlds. - Arthur Chickering and Zelda Gamson, “Seven Principles for Good Practice in Undergraduate Education.”

"Lab and project work are where students learn most. The school that adopted lab/projects as the core of their approach zoomed to the first position among American engineering schools." - Education is not about learning

"What I cannot create, I do not understand." - Richard Feynman

"To learn and not to do is really not to learn. To know and not to do is really not to know." - Stephen Covey

Daily Flow

Mostly conversation and code, rather than slides

  1. Ask a leading question - What if we want to do x? Honor the 5 second rule (no, not the one about dropping your sandwich on the ground 😂)- Wait 5 seconds before answering. Give people a moment to consider the answer.
  2. Introduce concept. - Take notes on paper - You'll remember more because you'll have to paraphrase. Write in your own words. We understand ideas by thinking carefully about them.
  3. Implement together - Pair seniors with juniors. You can implement separately, but consider yourselves a team. Help each other. This helps me scale. Details in coding flow below.
  4. Review - I'll walk through the diff. I'll ask the group questions. Answer questions by writing it down or typing it out. I will call on someone to ask what their answer is. If I get the wrong answer, I will call on someone else. This will be hard. That’s the point. The fact that it’s hard says that you’re learning. You learn through practiced retrieval, explaining things in your own words, spacing, and interleaving concepts over time.
  5. Individual exercise - Try on your own (Practice retrieval, interleave, typically later for spacing). The Fogo de Chao method: Place red post-it on your laptop lid when we start an exercise. Replace with green post-it when done. When 50% of the room is green, I'll implement.
  6. Start and end of day reviews - We'll review the days topics at the start and end of each day.

Coding Flow

Having problems? Ask why your code doesn't work. We can learn from mistakes.

Option 1: Fork (recommended)

  1. I'll create a GitHub repo.
  2. I'll push to master after reviewing a feature.
  3. Fork my repo.
  4. Open a PR to merge your fork into mine. This way you can easily see how your code differs. Just refresh the PR request page after I push.
  5. Want to merge my code into your fork? Sync my fork.

Option 2: Clone

  1. Create your own repo
  2. Separately, clone my repo
  3. Want my latest code? Do a git pull on your clone of my repo.
  4. Stuck? Stage your changes, then copy/paste my code into yours. Use VS Code's diff tool to see the difference.

Final details

  • Feedback form - You can start filling it out now 🙂
  • What should we build?
  • Review agenda
  • Breaks ☕️🍩🍕🏃‍♂️💨🍺
@coryhouse coryhouse mentioned this issue Apr 18, 2018
13 tasks
@coryhouse coryhouse changed the title Intro Session Intro Apr 19, 2018
@coryhouse coryhouse mentioned this issue Sep 8, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant