Pair Programming

Summarized using AI

Ruby Makes My Brain Happy

Bianca Power • February 16, 2023 • Melbourne, Australia

In her presentation "Ruby Makes My Brain Happy," Bianca Power explores the relationship between individual cognitive processing styles and programming language preferences, particularly her affinity for Ruby over JavaScript and Python. Bianca shares her journey from academia to coding, highlighting her experience at a coding bootcamp where she discovered her passion for Ruby.

The talk is structured around two main ideas:
- The Appeal of Ruby: Ruby is described as a fun and intuitive language that facilitates a sense of flow in coding. Bianca emphasizes the joy and familiarity she feels with Ruby, which enhances her productivity and creativity in software development.
- Cognitive Diversity: The notion that different people have diverse learning styles and cognitive frameworks, impacting their programming preferences. Bianca refers to established educational theories, particularly those of Jean Piaget, discussing concepts of schemas and how we adapt to new information.

Ruby Makes My Brain Happy
Bianca Power • February 16, 2023 • Melbourne, Australia

Why is Ruby more fun than JS or Python? Why might a JS dev disagree? Different people have different ways of processing the world - does that mean there's a language that `best fits` your brain? Let's explore this idea, touching on learning theories and implications for getting people into coding.

Having learnt and taught Ruby, Python, JavaScript, and a bit of C to hundreds of career changers - and teaching alongside dozens of experienced developers over the years - I have seen over and over the passion that someone can feel for one particular programming language over another. I've also felt it myself - when I'm coding in Ruby, I can feel it fitting in my brain, and I can feel it actually making me happier in a way that no other language quite does.

Drawing on my background in education and experience teaching and managing coding bootcamps, this talk will explore the relationship between how we as individuals see and process the world around us, and the languages and paradigms we work in as developers.

Implications for how we understand and work with our colleagues will be discussed - both those new to the industry and seasoned professionals, as well as how this can help us to understand ourselves as developers and lifelong learners.

RubyConf AU 2023

00:00:00.000 With a PhD in education and seeking something new, Bianca enrolled in a six-month web development boot camp and fell in love with Ruby on Rails, never looking back. The question is: does she also pair program?
00:00:06.540 I heard she does! Pair programming is a fantastic way to learn more about a language, and it provides a great opportunity to share with others the things you love about it.
00:00:28.439 Thank you! Thank you for that introduction. It's fantastic to be here with you all in person today and to talk about Ruby.
00:00:40.020 To share a little about where I'm coming from, I've spent a bit over 17 years working in education. My undergraduate degree was in teaching primary school. I then went on to do a PhD in education and have taught in various ways throughout that time.
00:00:58.260 As I was finishing my PhD, I experienced a bit of burnout and felt the pressure of the 'publish or perish' mentality in academia. I really wanted to do something that genuinely made a difference in the world.
00:01:16.380 I had been playing around with learning to code for a few years by that point, but I kept hitting a wall when trying to learn on my own. Long story short, I found a coding boot camp at a place called Coder Academy and I joined in July 2017.
00:01:31.020 At the boot camp, we learned Ruby, Rails, and a JavaScript stack. I absolutely fell in love with coding, particularly in Ruby. After six months as a boot camp student, I had the opportunity to stay on and teach.
00:01:49.020 I spent a total of five years at Coder Academy, which was an amazing time for me, meeting a diverse range of developers at various stages in their careers. I was part of the journey of hundreds of students coming through, and we also had experienced industry professionals come in to teach.
00:02:07.160 Some of these professionals had just finished boot camps recently, while others had been working with Rails as long as it had existed. This variety created really cool interactions for me.
00:02:20.640 Last year, I transitioned into industry and began working as a full stack Rails developer. While I referred to myself as a Rails developer, my actual role was a mix of Rails and reactive technologies.
00:02:38.660 The topic of my talk is "Ruby Makes My Brain Happy," and I will base it on my experiences coding and observations of developers I've worked with over the past five years.
00:02:51.560 This talk revolves around two main ideas: the awesomeness of Ruby itself and how our brains work differently. As I wrote this talk, I kept returning to the topic of cognitive differences and how those impact our programming preferences.
00:03:11.280 I will share my own experiences, discuss what makes us unique as individuals, touch on some theories around cognitive development, and explore the significance of happiness in our programming. I'll also explain how these concepts can be beneficial in our daily lives.
00:03:28.260 To further illustrate my experiences learning to code, I'll start by mentioning some false starts along the way. I dabbled with C++ and then faced further challenges when my laptop was stolen, and I didn't know about Git yet—an experience that didn’t go well.
00:03:40.320 The first programming language where I genuinely felt I was coding—able to express myself and build applications—was Ruby. I also became reasonably competent in JavaScript and even learned some Python, C, and Bash scripting along the way.
00:03:55.740 However, I always found myself wanting to return to Ruby, especially during the boot camp. While we also learned JavaScript, I consistently felt drawn back to Ruby at every opportunity.
00:04:10.020 In the programming community, there is significant discourse about how JavaScript is the future of web development. While I agree that as web developers it’s essential to know JavaScript, I often felt guilty when focusing on Ruby.
00:04:27.760 Whenever I coded for fun, I would always choose Ruby. This tension of what I should be focusing on while learning was frustrating. One thing I want to advocate today is that it's important to embrace the things you enjoy.
00:04:46.680 I've learned a lot about JavaScript even while coding in Ruby. The more you code, the more you learn about programming concepts as a whole. So, there's significant value in pursuing what you enjoy the most.
00:05:06.240 As one of four siblings, three of us work as developers. I would love to gather data on whether that's a commonality among developers. I really love working in Ruby, while my brother Theo works in Elixir, passionately discussing functional programming as he tries to convert me.
00:05:21.480 My younger brother Logan works in Python and agrees with me that what I do is better than the widespread reliance on JavaScript. Our youngest brother Alex hasn't yet ventured into coding—he's only 19, so I predict it will only be a matter of time.
00:05:38.559 While this is a small and biased sample, it's important to highlight that over the five years working in a coding boot camp, I had the opportunity to work with hundreds of developers, from newbies learning their first programming language to seasoned pros.
00:05:57.420 Most of my talk today is centered around how we are all different in our programming journeys. However, I have noted one common thread that ties developers together: we are all opinionated! Whether it's about the text editors we use, the operating systems we prefer, or the languages we code in, developers tend to be an opinionated bunch.
00:06:23.160 These opinions can sometimes seem intense due to the emotional investment we place in defending our tools. It makes sense because we devote so much time and brain capacity to these languages and environments that we naturally want to work with the ones that fit our thought processes best.
00:06:46.500 Let's dive deeper into what makes us unique. We are all uniquely different, and the concept of neurodiversity is widely accepted today. There were great talks on this topic yesterday that I'm not going to rehash, but I want to remind you that neurodiversity is a real aspect of our identities.
00:07:05.460 You've likely heard of nature versus nurture—the idea that our individual traits come from a mix of genetics and experiences throughout our lives. While we might be born with predispositions, it is also agreed that our perspectives shift over time.
00:07:23.880 Additionally, when we think about learning styles or preferences, there’s a bit of controversy in education surrounding these terms. Nonetheless, the core idea—that we all think differently and absorb information in various ways—is largely accepted.
00:07:36.660 Consider how you and others you know prefer to learn. Some might excel with reading, while others prefer watching videos or listening to audiobooks. However, technology learning often combines these preferences.
00:07:51.420 What's great today is the internet offers diverse options for learning, allowing us to discover methods that are effective for us. Just as various programming languages exist, we have many frameworks and tools to choose from.
00:08:08.280 Let's take a moment to discuss some theories on brain function and educational psychology without diving too deep. Piaget is a founding father of cognitive development theories, focusing on how we adapt to new knowledge.
00:08:22.260 He discussed concepts of assimilation and accommodation—ideas that explain how we process new information. Essentially, we have a container of existing knowledge, and when we encounter a new idea, we try to fit it into this container.
00:08:39.120 Imagine a child who has a pet dog; they see a horse for the first time and confidently call it a dog because it's the closest category they know. They enter a state of disequilibrium, realizing it doesn't quite fit. Fortunately, if an adult corrects them, they can accommodate the new information, restructuring their understanding.
00:08:59.520 Once they redefine their knowledge, they return to equilibrium. Piaget called this concept 'schemas,' which resonates with how we, as developers, continually adjust schemas to fit new information.
00:09:17.520 Like database schemas, our understanding evolves as we learn new structures and adapt to changes. We need to accommodate this new information as we encounter it.
00:09:30.840 As lifelong learners, developers are constantly problem-solving, learning new technologies, and adapting to new codebases. While I emphasize doing things that make our brains happy, it's equally important to push ourselves outside our comfort zones.
00:09:48.780 By understanding what brings us happiness and comfort, we can push boundaries in ways that bolster our learning.
00:10:06.600 Regarding happiness and the essence behind my talk, "Ruby Makes My Brain Happy," let's delve into what that actually means. Before discussing Ruby, I want to address the question: what is happiness? It might not have a single definition.
00:10:16.620 For each of us, happiness varies depending on individual differences and experiences. Referring back to what I mean when I say Ruby makes my brain happy, there are several key aspects.
00:10:32.460 First, Ruby is genuinely fun. I fully acknowledge that this is a biased opinion, but Ruby provides a more enjoyable development experience than other languages. Coding for fun or during challenges, my choice is always to use Ruby, as it brings a sense of joy.
00:10:57.240 Secondly, familiarity makes our brains happy. It breeds a sense of comfort and understanding. While my familiarity stems from experience, I also notice distinct differences between working in Ruby and JavaScript—Ruby feels like home.
00:11:10.560 Another important aspect is that happiness doesn't have to be an active state. It can also manifest as a comfortable sense of contentment, which reflects how our brains feel about our working environments.
00:11:27.120 Finding a state of flow is crucial. When coding in Ruby, I find it easier to enter and maintain this state compared to other programming languages, partly due to familiarity with Ruby.
00:11:42.840 Lastly, trust plays a significant role. It may sound odd to discuss trust in relation to programming languages, but when I work with Ruby, I trust that it will make sense in the end—even when I face challenges or bugs.
00:11:59.700 This trust fosters my ability to keep going, knowing I can seek help if needed, and aids in my overall progress. Our brains work best when they get what they need.
00:12:10.560 Sometimes our brains are a bit vague about their needs, leading to preferences—like specific coding tools or even food choices—while navigating our environment.
00:12:24.060 Understanding our preferences for coding languages and approaches can greatly enhance our development experiences and decision-making.
00:12:37.440 Though preferences can stem from a place of laziness, it's crucial to balance doing things our brains enjoy and challenging ourselves to grow. As we adapt our internal schemas with new information, we enhance our cognitive development.
00:12:50.820 Pushing our brains to learn constructs a positive feedback loop, where growth feeds back into general happiness.
00:13:03.840 Our environments—computers, text editors, and programming languages—should feel like extensions of ourselves. They should enable a natural flow where we can focus on the right tasks.
00:13:19.620 The more we align our work methods with our preferences, the more productive we will be.
00:13:35.640 For me, coding in Ruby feels like having a great conversation—it's intuitive, engaging, and yields wonderful results.
00:13:57.020 Let's talk specifically about what makes Ruby special. To quote Matt, the creator of the Ruby programming language: "I believe that the purpose of life is at least in part to be happy. Based on this belief, Ruby is designed to make programming not only easy but also fun."
00:14:10.560 Ruby enables developers to focus on creativity with less stress, prioritizing programmer happiness through simple, natural language and clean syntax.
00:14:21.540 With a focus on simplicity and productivity, Ruby facilitates the rapid development of applications and encourages writing clean, understandable code.
00:14:39.300 I believe that the points I've mentioned echo throughout the conversations we've had during RubyConf, showing a shared understanding of Ruby's benefits.
00:14:55.920 Another quote reinforces this sentiment.
00:15:07.500 An important aspect of Ruby's specialness is its creator's understanding that not every language works for everyone. He aimed to develop a language that brought him joy in coding.
00:15:20.160 This focus on personal happiness fosters a language that resonates with many, yet it may not suit everyone.
00:15:34.920 Ruby makes my brain happy, and I recognize that this may resonate with many here today, but I also welcome discussion on varying opinions.
00:15:52.260 Now, how can we apply what I've discussed today? While it's great that I can share my experiences, the takeaway should be useful for you.
00:16:05.400 Gaining insights into what brings us joy allows us to navigate better pathways in our coding journey. For example, understanding my preference for Ruby compared to JavaScript equips me to manage my learning better.
00:16:19.680 As I struggle with JavaScript, informing myself about my preferences makes me more self-aware and ultimately allows me to make better decisions.
00:16:33.720 Our brains carry valuable information, and recognizing when we are comfortable or uncomfortable aids in determining growth opportunities.
00:16:47.460 As we collaborate with others in our workplace, it's crucial to remember everyone is different. I believe this understanding fosters better dialogue and enriches our interactions.
00:17:00.300 Recognizing that others have different frameworks informing their opinions helps cultivate empathy and teamwork. For instance, my strong affinity for Ruby doesn't diminish the value of alternatives.
00:17:15.420 Open-mindedness is essential, especially in encouraging newcomers to coding. Based on my experience, conversations often center on whether JavaScript, Ruby, or Python is the best language to start with.
00:17:28.080 While these debates occur regularly, exposure to various programming languages—whether Ruby, Python, or others—can lead to discovering what genuinely resonates.
00:17:42.900 Offering a variety of languages can make an enormous difference in encouraging burgeoning developers. Inclusivity leads to a broader understanding and fosters interest.
00:17:56.400 Additionally, embracing new concepts allows for cognitive schema development. As we adapt to new frameworks and languages, our critical thinking expands.
00:18:10.440 Lastly, an encouraging community built around a language—like Ruby—imparts safety in experimentation, fostering resilience.
00:18:24.360 Finding balance between growth and happiness is essential at every experience level, ensuring we're both challenged and fulfilled.
00:18:39.420 To conclude, there are multiple lenses through which to view a programming language. We can look at what can be achieved, but it's equally important to consider our feelings while coding.
00:18:53.520 Today, I advocate for doing what aligns with our passions, not just what the industry prescribes. While engaging with trending technologies is exciting, finding fulfillment in coding must also be prioritized.
00:19:07.020 Ultimately, Ruby makes my brain happy, and I believe brain happiness is crucial. It translates to mental health, productivity, and overall fulfillment.
00:19:20.280 When we learn in environments that align with our instincts, we learn better and stave off burnout.
Explore all talks recorded at RubyConf AU 2023
+11