Ruby Programming

Summarized using AI

Perceptual Learning == More Ruby Experts?

Stefanni Brasil • November 08, 2022 • Denver, CO

In this talk, "Perceptual Learning == More Ruby Experts?" delivered at RubyConf 2021 by Stefanni Brasil, the concept of perceptual learning (PL) is explored as a method to accelerate expertise in Ruby programming. The speaker discusses how PL, which gained traction in the 1960s through psychologist Eleanor Gibson's work, improves information extraction through practice, thus playing a significant role in learning and skill acquisition. By the end of this session, attendees will understand the nature of expertise, the mechanisms of perceptual learning, and specific techniques that can be applied by Ruby developers to enhance their skills.

Key points discussed include:

- Definition of Expertise: Expertise involves the rapid and automatic recognition of important patterns and relationships within a domain. This includes distinguishing relevant from irrelevant information, which most novices struggle with.

- Connection between PL and Programming: Despite programming being perceived as a high-level task, perceptual learning principles apply and can assist in mastering programming domains like Ruby.

- Comparison of Experts vs. Novices: Experts quickly process information and see complex relationships that novices cannot, often relying on intuition rather than explicit reasoning when making decisions.

- Deliberate Practice: To develop expertise, learners must engage in deliberate practice, which includes:

- Identifying specific skills to master.

- Continuously measuring performance and modifying approaches based on outcomes.

- Exposure to a diverse range of examples and contexts to improve pattern recognition.

- Perceptual Learning Techniques: The speaker shares practical methods to improve programming fluency through PL, emphasizing the importance of structured learning that mixes both simple and complex examples to enhance understanding.

- Research Findings: Although specific research on PL in programming is limited, findings in other fields highlight the effectiveness of using visual presentations and structured lessons to aid retention and learning gains.

In conclusion, the presentation encourages Ruby developers to utilize perceptual learning techniques in their practice. By focusing on deliberate practice, exposure to diverse examples, and maintaining a growth mindset, anyone can develop their programming expertise. The session ends with a reminder to embrace discomfort in learning, as overcoming challenges is crucial to developing expert skills.

Perceptual Learning == More Ruby Experts?
Stefanni Brasil • November 08, 2022 • Denver, CO

ow do you become an expert? Why some Ruby developers can't explain what they know? Why some developers don't develop expert skills? What does it mean to be a Ruby expert?

To discuss these questions, we'll explore Perceptual Learning (PL) research. PL is a natural learning process that complements traditional Education. It accelerates expertise by speeding pattern recognition, intuition and fluency on a given subject.

In this talk, we'll learn how to create expertise based on PL's techniques, and how you can apply them to become an expert Ruby developer.

RubyConf 2021

00:00:13.679 Hello, welcome! I hope you're having a great time at RubyConf. I'm so happy that you tuned in for this talk.
00:00:30.160 My name is Stefanni Brasil, and I'm the co-founder of HexDevs, where I research, design, and develop programs to help you become an expert developer. I'm also a Ruby developer, and I love reading about cognitive science and modern neuroscience, specifically their applications in education.
00:01:00.399 Ever since I found out about perceptual learning in the book "Badass: Making Users Awesome" by Cathy Sierra, I became really curious to learn more about the science behind perceptual learning. I've been doing lots of research on this topic and its applications in education across various domains.
00:01:38.240 By the end of this talk, you will have learned what it means to be an expert, what perceptual learning is, how its techniques can accelerate expertise, and the perceptual learning techniques specifically for Ruby developers.
00:01:46.079 Perceptual learning emerged as a field of study in the 1960s, thanks to the work of psychologist Eleanor Gibson. Her research demonstrated that perceptual learning consists of improvements in information extraction as a result of practice. In fact, perceptual learning is a key component of learning and expertise.
00:02:14.480 For example, think back to when you were a child learning to identify what a dog is. You didn’t attend a class or lesson on what a dog is. Instead, you learned to classify dogs by observing many different dogs. When you encountered a new dog that was different from those you had seen before, you could still recognize it as a dog.
00:02:46.319 For the past two decades, perceptual learning has become a focal point in cognitive neuroscience, mainly due to its promising results in accelerating expertise.
00:03:05.120 At this point, you might be wondering what programming has to do with perceptual learning. Isn't programming a high-level cognitive task? Although programming might seem complex, recent studies suggest that perceptual learning is directly relevant to our understanding of more complex domains.
00:03:41.200 Even in high-level cognitive domains like mathematics learning, recent findings indicate that even short perceptual learning interventions can enhance the fluid use of structures. We’ve been discussing perceptual learning and expertise, but what is the relationship between the two?
00:04:15.599 Dr. Kerman is one of the lead researchers in this area. According to him, perceptual learning contributes to many, if not most, of the significant differences between experts and novices in any domain.
00:04:33.600 When we discuss expertise, it doesn’t take long before the case of chess players comes up. Chess experts are often thought to possess some mysterious talent because they cannot easily explain how they arrive at their decisions. If you ask them to verbalize their decision-making processes, they may struggle to provide detailed explanations.
00:05:24.480 Similarly, elite athletes are trained to rely on their instincts rather than conscious thought. For example, if you ask a tennis player to explain their decisions while playing, they may find that trying to articulate their actions disrupts their performance.
00:05:42.320 This demonstrates that the speed and accuracy of performance can indicate expertise in a specific domain. For instance, if you are a novice programmer working alongside a more experienced developer, you may struggle to understand their thought processes and often feel disappointed by their responses when you ask how they know what to do.
00:06:34.960 Experts often say, "Oh, I just know it; it comes with practice." But what does it mean to be an expert? Expertise can be defined as the rapid, automatic recognition of important patterns and relationships, including abstract ones, which characterize experts across many human domains.
00:07:22.320 Experts can quickly discern what is relevant and what is not, quickly recognize relationships invisible to novices, and extract information with minimal cognitive effort. Research demonstrates that novices struggle to differentiate relevant from irrelevant information, while experts can rapidly pick up critical insights about problems in their domain.
00:08:27.600 Have you ever felt overwhelmed when writing your first line of Ruby code? Remember how you had to figure out so many aspects at once, spending much more time than expected to resolve syntax issues and decode confusing error messages? If you find yourself in this challenging phase now, know that you are doing great! Embrace the discomfort; it is a natural part of learning a complex subject.
00:09:32.960 Dr. Ron Friedman mentions in his book "Decoding Greatness" that we grow best when we face challenges and even occasionally fail. Your brain does not perceive information the same way an expert does, even though both of you are presented with the same data. This means that when you feel lost or unsure, you just need to push through to that point where everything starts to click.
00:10:17.760 Take it easy, my friend. Not understanding programming in Ruby doesn't mean you lack the capability to become a developer. It could simply indicate that you haven't yet developed proficient pattern recognition skills—it's not a reflection of your potential. Remember that your brain is capable of much more than you think.
00:10:54.960 How can we develop these expert skills? We can achieve this by enhancing domain-specific techniques in information extraction. According to Kerman's research, when practice is approached correctly, the brain progressively optimizes its information extraction within any domain for improved task performance.
00:11:13.920 Perceptual learning yields effects that can be categorized into two main types: discovery, which includes identifying relevant information for a domain or classification, and fluency, which involves easier, quicker processes in extracting information or reducing cognitive load.
00:11:46.480 These skills can significantly lower the effort needed for tasks. Take, for example, a study focusing on perceptual learning in the context of fractions in algebra. Students participated in classes that did not just involve calculating solutions but focused on recognizing patterns and understanding structures within problems.
00:12:50.000 The results showed that the students who underwent perceptual learning training exhibited better performance than the control group, which only received traditional instructions. Notably, the improvements were retained even nine weeks after the training had been completed. This illustrates how well-structured perceptual learning can enhance understanding and application of abstract concepts.
00:14:33.440 Presenting both simple and complex examples can help students develop a broader understanding of how to address problems. The focus on identifying structural patterns instead of merely solving problems leads to a better grasp of concepts like fractions. Perceptual learning training can significantly augment traditional educational methods, highlighting that it is not a replacement but rather a beneficial supplement to classroom activities.
00:16:44.000 The brain is better understood as a pattern recognizer than a mere information container. I hope you find this perspective fascinating. I've only had time to share one practical example of perceptual learning training, and unfortunately, no research has yet been conducted specifically on programming.
00:17:28.800 However, there are important takeaways we can draw from studies across various fields. One key strategy is to practice deliberately. Begin by defining the topic you wish to master, and establish specific goals for your practice. Once you know what skill you are working on, engage in sets of deliberate practice to improve your ability to discern relevant information.
00:18:58.560 Exposure to a variety of quality examples, from simple to complex scenarios, will enhance your learning experience. Aim for a performance level of 95% reliability, which means producing consistent results in your practice. If you struggle to maintain this standard, break tasks down into smaller, manageable subtasks until you can successfully master them.
00:20:09.400 For example, in "Badass" by Cathy Sierra, consider mastering command line interaction with Ruby by creating simple programs that calculate and print values based on command line arguments. Start small and gradually increase your complexity; if it proves too challenging, simplify until you find an achievable target.
00:21:19.520 Make sure to focus on deliberate practice rather than just practicing for the sake of it. Quality practice involves exposure to diverse examples and contexts where you are implementing your skills. Take the time to master the basics thoroughly, as it will free up cognitive capacity for tackling advanced topics. But don’t rush; it’s cognitively challenging to master new concepts.
00:22:46.240 Embrace feelings of being stuck; they indicate areas where you have room for growth. When you encounter struggles, it usually signifies that you might be trying to rush through a topic. Ask yourself open-ended questions about what you may be missing, as this self-reflection will prompt your brain to pick up more on the subject matter.
00:23:52.640 Always keep sharpening your skills. Experts routinely identify areas where they can improve, regardless of how many years of experience they possess. To summarize the perceptual learning techniques applicable to programming, it is essential to find the right balance between introducing facts and concepts while enhancing pattern recognition and fluency.
00:24:53.760 This approach will likely yield considerable benefits not only in programming but also in mathematics and several other domains. I hope you're inspired to try applying these concepts in your learning journey.
00:26:22.400 In conclusion, we’ve learned that expertise is achievable for everyone. Expertise can be accelerated through deliberate practice in any domain, including programming.
00:26:49.920 I still have unanswered questions regarding how perceptual learning can be tailored for individuals with visual impairments. Additionally, I am excited to explore how perceptual learning might be applied in programming contexts in the future.
00:27:05.920 Congratulations on reaching the end of this talk! Don't be overwhelmed; take your time to process the information. Revisit this talk in a few days, and remember you know best how to leverage your cognitive resources.
00:27:42.960 Let me know what surprised you and what you're eager to experiment with in your learning journey. Thank you for watching, and a big thanks to my partner Thiago, the women community, and everyone for your continued support.
00:28:20.960 If you want to find the slides, resources, and a written version of this talk, you can visit hexdevs.com/rubyconf2021. See you next time!
Explore all talks recorded at RubyConf 2021
+91