Ruby on Rails
RailConf 2015 - Crossing the Canyon of Cognizance: A Shared Adventure

Summarized using AI

RailConf 2015 - Crossing the Canyon of Cognizance: A Shared Adventure

Pamela O. Vickers • May 08, 2015 • Atlanta, GA

In her talk at RailsConf 2015, Pamela O. Vickers addresses the challenges faced by new developers in navigating the coding community, focusing on the essential learning stages and the importance of mentorship. The primary theme centers around the transition from unconscious incompetence to conscious competence, a process filled with discomfort and confusion for many learners.

Key Points Discussed:
- The Learning Stages: The talk introduces the four stages defined by psychologist Noel Burch: unconscious incompetence, conscious incompetence, conscious competence, and unconscious competence. These stages illustrate the journey of a new developer, represented in the character Tenderfoot.
- Tenderfoot's Journey: Tenderfoot begins her journey in a dark forest, symbolizing her initial ignorance about coding. Her travels through this forest provide a metaphor for the challenges new learners face when seeking direction in coding.
- Community's Role: Vickers emphasizes the importance of experienced developers as mentors who can guide newcomers. She illustrates how supportive interaction can help new learners feel welcomed and understood, contrasting this with the harshness often encountered in forums or communities.
- Building Bridges: A significant focus of the talk is on how to effectively communicate with beginners and assist them in their development journey. Using examples like Tenderfoot sending a note for assistance, Vickers highlights the nuances of crafting encouraging and constructive responses to newcomers.
- Encouragement and Visibility: Vickers stresses that mentors and senior developers should frequently visit lower levels of the learning mountain to guide others and become part of the supportive community. The visibility of diverse voices in this space enriches the experience for all.

Conclusions and Takeaways:
- The learning experience in programming is a shared adventure, and the coding community thrives when it collaborates and supports each other.
- Kind and clear communication is vital to foster an inclusive environment that welcomes new learners.
- Everyone in the tech community has the potential to act as a mentor, contributing to the development of future generations of programmers.
- Realizing that struggles are normal in the learning process can help build a more robust and encouraging community.

RailConf 2015 - Crossing the Canyon of Cognizance: A Shared Adventure
Pamela O. Vickers • May 08, 2015 • Atlanta, GA

By, Pamela O. Vickers
Most of the four learning stages - unconscious incompetence, conscious incompetence, conscious competence and unconscious competence - are bridged by acquiring experience. But the gap between unconscious incompetence to conscious competence is where the most discomfort and discouragement occurs. Helping new developers bridge the void ensures a vibrant, accessible community, and having visible members/mentors in each stage encourages newcomers' learning. This talk illustrates (literally!) how to help new colleagues build this bridge and prevent losing them in the what-do-I-even-Google abyss.

RailsConf 2015

00:00:12.160 Hello everyone, I'm Pamela Vickers. I hope you all are having a really great time at RailsConf; I know I am.
00:00:18.320 Do you all remember when Jeff Atwood's article filled your Twitter timelines? People had strong opinions about it, either love or hate. In the article, Atwood asserted that the numerous efforts for everyone to learn to code are fundamentally flawed as they assume that having more code in the world is inherently desirable, treating coding as the goal rather than a means to an end. It places method before problem, suggesting that simply adding naïve novice coders to the workforce is a net positive and that there's an easy transition from learning to programming to getting paid for it. Some of his points hold weight, but it reads as if there are government checkpoints ensuring you've completed your yearly hour of code. The last two points stood out to me because they are concerned with how we introduce new coders to the workforce and the community.
00:01:07.280 People who understand new developers tend not to like the post very much. Zed Shaw, for instance, famously wrote a blog post saying, 'Please don't become anything, especially not a programmer,' and he dramatically disagrees with Atwood. The few people who agreed with Atwood were mostly seen in the comments, not in spaces where I circulate. Many of them only know about these new learners abstractly; they heard of the ‘Hour of Code’ and think it's odd—but they don't know any new developers personally. These new learners are not just drones typing meaningless words into bad websites; they are individuals with ideas, life experiences, and value. Our community will only benefit by welcoming them. I'm not saying everyone should learn to code, but I believe anyone should be able to. How we, as more experienced people in the industry, greet these new learners will shape the developers they will become. They need us just as much as we need them. The journey to becoming a good developer is a shared adventure between learners and teachers.
00:01:38.079 Helping them overcome the first major hurdle is key to their ongoing education. Let's illustrate this journey by introducing Tenderfoot, our character whose experience represents what learning this tough skill can feel like. Different people might have varying experiences, but most have navigated through these stages. Tenderfoot's ultimate aim is to scale this mountain, but she starts down in the dark forest. Before achieving her goal, she must traverse multiple levels, with each level signifying a stage in her learning process. Psychologist Noel Burch defined four stages in the 1970s: unconscious incompetence, where you don’t know that you don’t know; conscious incompetence, where you know what you don’t know; conscious competence, where you know what you know; and unconscious competence, where you don’t know what you know. Tenderfoot's journey begins in the forest, which symbolizes her initial stage of learning. At this point, she is unaware of how to even reach the mountain.
00:03:14.879 Tenderfoot cannot see the mountain from her spot in the dark and foggy forest. She knows in theory that a mountain exists, but in the dense fog, she cannot ascertain whether she is even in a cave. She must navigate her way out of the forest before she can get to the canyon. This is often the challenging moment for beginners when they first search for answers, such as 'How do I learn to code?' Entering the journey with her is her companion, Bengal. Tenderfoot can ask Bengal any question, and Bengal will provide information, although without context or understanding of Tenderfoot's goals. Therefore, while Bengal can be supportive, at times, it's overwhelming—much like the Scarecrow in 'The Wizard of Oz.' When asking Bengal for directions on learning to code, she receives countless conflicting answers.
00:04:49.199 Unfortunately, at this moment, Tenderfoot must independently decide on her first steps. Raven Covington, a Rails Girls member from Atlanta, once shared how she found tremendous resources online, which was both exciting and overwhelming. It was a struggle for her to chart her course and understand where to proceed next. Like Raven and Dorothy, Tenderfoot must choose a direction somewhat arbitrarily and pursue it. If you are stuck in a dark forest attempting to cross a canyon and ascend a mountain, you need to escape the forest, regardless of whether you go left or right. Simply start walking, and along the tree line, you might eventually see the mountain.
00:05:39.760 Tenderfoot chooses a direction in the darkness and slowly makes her way to the edge of the trees. Now let's talk about the mountain on the other side of the canyon. Like most mountains, it slopes upward into the clouds. We, as experienced developers, are like climbers located at various points on this mountain. Those at the pinnacle, the unconscious competence level, are often oblivious to their own journey. They exist in the cloud, enjoying their craft without recalling their ascent. Occasionally, they may come down to connect with others, but typically only a few can retrace the steps they took to reach the peak. This also includes those who have reached level five learning, significantly reflective competence, where they better understand their own learning journey.
00:07:03.680 You may have worked with someone at level four who is knowledgeable and excellent in their craft. They can advise you on tools or technologies, providing exceptional code reviews. However, when it comes to grasping fundamental concepts, they may struggle, having been so far removed from the learning process that they forget what it felt like. Occasionally, you may have the privilege of working with someone at level five; these individuals make excellent mentors, genuinely thoughtful about how best to communicate ideas and patiently encourage you to catch up.
00:08:01.039 While many on our mountain cycle between conscious incompetence and conscious competence, they often love ‘climbing’ and going back down to climb again, learning and relearning in various ways. These mountaineers frequently visit the canyon edge to see who might be beginning their journey on the other side. If you're junior to mid-level, you may feel you're in level two or three, traversing between conscious incompetence and conscious competence, always on a steep learning curve.
00:09:03.280 More senior developers would likely find their place closer to the top. Some may be self-aware enough to recognize they dwell in the clouds, without understanding their learning journey. Regardless, many of us should strive toward becoming part of the level five community, mingling at the top while regularly visiting lower levels to help guide others upward.
00:09:45.160 As Tenderfoot traverses the dark forest, it is vast but not particularly frightening. Stephanie Maria captured this feeling well in her blog about learning Ruby on Rails, stating, 'Rails isn't easy; it's approachable.' Recognizing this truth can assist us in maintaining encouragement for others as they navigate struggles. Tenderfoot has been seeking guidance from Bengal on achieving her goals. She's learning various languages, including JavaScript, Python, Ruby on Rails, HTML, and CSS. Her knapsack is filling up with resources, which is a bit overwhelming.
00:10:45.080 So as she reaches in to grab something, she might pick the wrong tool and not even realize it, given her limited context for what she's learning. Her route via Bengal is imperfect and indirect, yet she eventually finds herself at the edge of the forest, greeted by a glimmer of light. She hikes up to the canyon ledge and spots a few mountaineers on the opposite side, feeling hopeful this could be where she finds closure to her struggles. Eager to engage, she tries to catch their attention but is ignored, leading her to send a note via a paper airplane, asking how to cross the canyon.
00:12:23.360 We've all seen this scenario: the uninformed question on Stack Overflow, where an eager newcomer asks vague and overwhelming questions, which could represent their first interaction with the developer community. That can be alarming. While the subreddit 'learn programming' seems supportive, even well-meaning members can discourage new learners. Imagine if Tenderfoot had expressed on this platform, 'I want to dive deep into programming, but I feel overwhelmed.' It’s not uncommon to have those feelings when surrounded by technical jargon, especially if someone struggles with math.
00:13:47.680 Responses from well-meaning users might initiate with a recycled set of questions about their skills, which can inadvertently push away someone looking for support. Instead, what if new learners were to encounter a supportive narrative telling them that programming does not need to equate to math? If Tenderfoot had read Sarah May's insights on programming being more about making websites, she might have felt encouraged, realizing that diverse backgrounds contribute successfully to programming.
00:14:54.400 This support is crucial, as responses can dictate whether a beginner feels good about engaging or crushed. Treating each inquiry as a sensitive endeavor is vital; our replies might be the first and last assistance a tenderfoot may receive. So, upon receiving a reply that instructs her to 'build a bridge,' she might initially feel disappointed and embarrassed, thinking, 'Shouldn't I have known that?' But, it’s essential to recognize that the journey is challenging, and many have felt lost along the way.
00:15:46.720 Tinderfoot might stumble upon another post stating, 'Why are experienced programmers so harsh on beginners?' This can leave learners frustrated, feeling misunderstood and disregarded. They seek guidance to navigate their learning paths, but experiences like this can erode their confidence. Instead of merely pointing out a lack of personal research, we could guide tenderfoots by sharing our own challenges, reinforcing that struggles are a natural part of the learning experience.
00:16:40.920 This ties back to the importance of crafting insightful, kind responses that consider where the learner currently is and meet them there. The feedback they receive may shape their confidence and perception of the community profoundly. Employing grounded frameworks can assist in ensuring that responses are not dismissive or condescending. With thoughtful communication, we can engage with newcomers effectively.
00:17:45.360 Tinderfoot decides to take a moment before drafting a new note. This time, she conveys a clear and concise inquiry explaining where she is on her journey and what she needs. Her message includes her resources and directs her thoughts to building a bridge toward the other side. As a result, this refined communication yields a more actionable response on how to proceed.
00:18:37.440 Now, having successfully borrowed the first step, she realizes the journey won't be straightforward. Learning programming is akin to navigating through new terrain, with many obstacles along the way. As an inexperienced coder, Tenderfoot feels overwhelmed by the sheer volume of information and terms. Within this chaos, she split her attention into various areas, trying to comprehend everything simultaneously.
00:19:52.800 This ‘drinking from a fire hose’ feeling is typical for new learners navigating the web of programming languages and concepts. Early phrases like 'It's easy!' or 'You just do this!' can undermine a learner’s confidence, leading to self-doubt in their abilities. We need to redefine how we discuss programming to minimize discouragement and promote engagement based on meaningful learning journeys.
00:21:08.400 Sarah Simon’s experience reminds us that it’s critical to gain fluency with the vocabulary of programming. When someone lacks the lexicon to articulate their needs, it hinders their ability to connect with mentors who can provide help. Yet, both mentees and mentors have responsibilities when it comes to communication. When mentors provide accurate definitions and context about programming terminology, they lessen presumptions and foster a supportive atmosphere.
00:21:56.639 Tenderfoot diligently parses each reply and begins to grasp the meanings, though some concepts still loom. For instance, the idea of ‘grabbing your foo’ remains perplexing, but she understands the mechanics behind it. This phase underscores a familiar labyrinth faced by learners who are often overwhelmed, hitting roadblocks when trying to grasp tools and installations. The frustration might incite feelings of isolation and despair if struggles go misunderstood; nonetheless, persistence is crucial.
00:23:18.560 When faced with complex installation queries, it's beneficial to view those asking for guidance as, essentially, people who love programming but are lost in the mazes of installation. Being mindful of the experiences we share with new coders can highlight how the programming community navigates complications too. Engaging with the teaching process allows tenderfoots to understand that challenges are commonplace, and we're all learning to move forward.
00:24:32.799 As Tenderfoot inquires about the missing foo, she wonders about the guidance she receives. Valuable takeaways often come when they understand that, much like past explorers, they are on a unique journey. All of these little steps are part of learning to put together pieces that inform them as they climb forward.
00:25:30.560 So as she refines her instruction and learns to ask clearer questions, she begins to bridge the gap across the canyon. While she carefully gathers information, she also builds her confidence and skills. The process is not instantaneous, but her growth is tangible as she begins crossing the bridge, step by step.
00:26:48.480 Each interaction fuels her motivation to keep pushing forward and continue climbing, which keeps her from feeling overwhelmed. She starts developing the ability to reproduce skills accurately, transitioning towards a place of precision and independence. By understanding the foundation of programming, she recognizes that she now possesses the necessary tools to ask the right questions.
00:27:37.120 Now, reflecting on her journey, as new learners develop their skills, the community can grow. Junior developers today can set the stage for future generations while fostering connections rich in mentorship and collaboration. Tenderfoot’s journey encourages all of us to examine how we can help others. Whether through expert mentorship or simple friendly encouragement, we can all contribute to lifting others up.
00:28:29.440 Indeed, as she bridges this canyon of cognizance, she realizes the importance of the community in shaping not only her journey but those of others like her. The journey is ongoing and every step is an opportunity. As she encounters challenges ahead, she knows she is not entirely alone. Staying grounded in this community enriches her experiences, reinforcing the value of learning as a collective.
00:29:22.920 It's critical to view the learning process as collaborative, inviting those around us to share their own experiences. By integrating various perspectives, everyone's voice can contribute toward a larger narrative of progress. With diverse viewpoints, we not only elevate individual success but also inspire collective exploration.
00:30:16.360 As Tenderfoot prepares for her next steps, she reflects on how she can help future travelers cross their own canyons. Through this reflection, she understands how essential visibility is in communities striving for diversity. Everyone's presence adds value, and sharing stories can instill hope and courage in those feeling lost in their journeys.
00:30:59.120 So, let's lift each other up and become the bridges ourselves. What we do in these moments can lead to positive outcomes echoing far beyond our immediate communities. As mentors or as peers, we have the opportunity to make pivotal connections that impact lives.
00:31:47.120 Thank you for listening today! I appreciate all the feedback and interactions we've had. A big thank you to my co-worker and friend, Tam, for their fantastic doodles that illustrate these concepts beautifully. I regret I do not have time for questions, but feel free to catch me in the hallway or reach out to me online.
00:32:30.000 I'm everywhere, just not on that old forum from years ago. But, in any case, thank you to Blue Bottle and Rails Girls for greatly enriching my development journey. That's all I have for you today!
Explore all talks recorded at RailsConf 2015
+122