RailsConf 2014

Panel: Teaching the Next Great Developers

Panel: Teaching the Next Great Developers

by Noel Rappin, Dave Hoover, Jeff Casimir, and Ben Orenstein

Summary of "Teaching the Next Great Developers" Panel

The panel discussion titled "Teaching the Next Great Developers" features experts including Noel Rappin, Jeff Casimir, and Jen Myers, among others, who share insights on how best to guide and train new developers entering the tech field. The conversation revolves around effective educational methodologies, fostering confidence in new developers, and how to cultivate the right skills necessary for success in the industry.

Key Points Discussed:

  • Importance of Ongoing Learning:
    • Jen Myers emphasizes that teaching new developers to love learning and equipping them with skills to continue self-education is crucial.
  • Breaking Down Problems:
    • Jeff Casimir explains that teaching students to deconstruct complex technical issues into smaller, manageable parts is essential for their growth.
  • Asking Questions:
    • Liz Abanante discusses the value of teaching students how to ask questions effectively, which fosters an environment of open communication and ongoing learning.
  • Building Confidence:
    • The panelists address issues like impostor syndrome and highlight the importance of admitting one doesn’t understand something, which can enhance learning and relationships.
  • Value of Small Victories:
    • Celebrating small milestones helps students reinforce positive experiences in their learning journey.
  • Diversity of Experience:
    • They note that many students are career changers who bring valuable perspectives from their previous fields, which can enrich their contributions to tech.
  • Interpersonal Skills & Mentorship:
    • Developing interpersonal skills alongside technical abilities is vital. The panel discusses the significance of mentorship and how these relationships can positively impact students' lives.
  • Onboarding Challenges:
    • The conversation touches on the difficulties of onboarding new developers in a tech environment that often lacks structure.
  • Real-World Interview Processes:
    • The panel discusses the pitfalls of traditional interviewing methods and advocates for more practical, relevant assessment styles, like pair programming or take-home assignments that allow developers to showcase their skills more effectively.

Conclusions/Takeaways:

  • The panelists consensus is that producing capable and well-rounded developers involves not only teaching technical skills but also nurturing soft skills and adaptability.
  • They emphasize the importance of validating students’ experiences and providing supportive environments that encourage continuous learning.
  • The need for companies to develop structured onboarding processes is critical to both student success and overall industry health.

Ultimately, the discussion reveals that while traditional educational paths have their place, innovative and supportive training environments that recognize the diverse backgrounds of new developers are key to fostering the next generation in tech.

00:00:16.680 Hey everybody, I think we'll get started. We have a lot of people here who are all going to want to talk, and we don't have that much time.
00:00:24.199 I'm going to quickly introduce the panel for this discussion on teaching the next great developers. I have a panel of experts here, and I’ll let them briefly introduce themselves before we dive in.
00:00:36.000 I’m Noel Rappin, a senior developer at Table XI, and I’ll be representing traditional CS education if that topic arises at any point over the next 40 minutes.
00:00:50.280 First up, we have Jeff.
00:01:00.440 Hi, my name is Jeff Casimir. I run a company called Jumpstart Lab, and I recently started a training program called Turing School of Software and Design.
00:01:06.240 I mixed that up; it's not called Jumpstart Labs. Sorry about that!
00:01:13.320 Hi, I’m Bri Thomas, a developer at a company called iTriage and a recent graduate of Turing School.
00:01:28.840 Hi, my name is Jen Myers, and I’m part of the team at Dev Bootcamp here in Chicago. I'm filling in at the last minute for Dave Hoover, who couldn't make it due to a family emergency.
00:01:36.200 I’m Liz Abinante, a developer at Instructure, and I also co-lead the Girl Develop It chapter here in Chicago.
00:01:48.560 Hi, my name is Katie, and I’m the co-leader of the Girl Develop It Chicago chapter. I started with Girl Develop It in Columbus, and currently, I’m a software engineer at a company called Fuda 600 West.
00:02:07.959 Hi, I’m Ben. I work at Thoughtbot in Boston, where I run our program for training developers called Learn. I write code, talk to people, and participate in discussions like this.
00:02:21.160 I want to start this discussion by noting that we have a couple of different kinds of programs represented. We have two boot camps that are somewhat similar in structure but differ in length. We also have Girl Develop It, offering shorter interventions aimed at bringing novices into the field.
00:02:43.640 Additionally, we have online interventions that are more in-depth. I’d like to ask: what do you think is the most important part of your program when teaching novice developers, and how does that fit into bringing in the next generation of developers?
00:03:03.400 Anyone can feel free to answer. Jen has the mic—what's the most important outcome for Dev Bootcamp students? If they came out knowing one or two things, what would those be?
00:03:15.799 Honestly, I think the most important thing we foster is a love for learning and the ability to learn how to learn. Our goal is to produce individuals who know enough about Ruby on Rails to get jobs where they can continue to learn and develop.
00:03:34.159 We aim to ensure people build the skills and mindset to keep learning for the rest of their careers and lives.
00:03:40.640 In a similar vein, I would say that the most important outcome for students is understanding how to take difficult technical problems and break them down into smaller, more manageable components. We happen to do this with Ruby and Rails, but it is validating when our students apply those same patterns to different languages and frameworks.
00:04:11.680 At Girl Develop It, we approach things from a different angle because we primarily work with complete novices across a wide range of classes. I'm currently involved in classes teaching programming to students here in Chicago. I find that one of the most important lessons is teaching students how to ask questions, where to ask them, and who to approach.
00:04:41.520 We also discuss what constitutes a good response versus a bad one, as well as the importance of acknowledging that some answers may originate from unreliable sources.
00:05:03.280 Another critical point is about the willingness to admit you don't understand something. I’ve seen many developers feel the pressure to act like they know what's going on. As someone who has struggled with this personally, I encourage more openness in admitting confusion because that is part of the learning process.
00:05:20.800 Not admitting to not understanding something can cheat both you and your colleagues out of valuable learning opportunities. In fact, do we have any questions from the audience? I have prepared some questions, but if you want to ask something, feel free. This would be more fruitful if we engage you right from the start.
00:06:01.919 How do you help people build confidence, especially when many believe they are terrible at programming, sometimes for years after starting?
00:06:10.039 Fantastic question! I still grapple with the feeling of being a good programmer and believe this is widespread. Imposter syndrome is real and prevalent, particularly in an intellectually based field.
00:06:36.280 I emphasize humility: I try to maintain that perspective because I understand how it feels to not fully comprehend a topic. It helps to convey that confusion is a normal state of being and that you should not associate it with a lack of capability.
00:06:46.560 This situation is common; as instructors, we strive to reassure students that being confused is typical. Taking that fear out of learning is crucial.
00:07:05.360 I wanted to backtrack on something Liz said. Many of our students genuinely believe they are incapable of learning programming, rather than faking their confidence. We work hard to create an encouraging environment to dispel that notion.
00:07:37.520 For instance, we encourage students to ask questions, ensuring they feel safe to do so without fear of judgement. Validating every question reinforces that it is okay not to know, and we might not have answers either.
00:08:14.599 Providing constructive feedback in a positive framework is essential for building confidence. Celebrating small victories, giving quick wins, and guiding students are very helpful.
00:08:43.440 From my perspective as someone who felt overwhelmed when I was a student, instructors must adapt to different learning styles. They should recognize when a student requires a shift in focus, particularly those at risk of falling behind.
00:09:05.920 We should emphasize that students are not terrible if they achieve even the smallest success. Students often must not compare themselves against their peers, but rather celebrate their own learning milestones.
00:09:51.600 Concerning imposter syndrome, we must ensure that novices do not compare themselves against industry heroes. This mindset can lead to frustration.
00:10:04.640 As mentioned earlier, it's easy for newcomers to feel overwhelmed, and this can hinder their progress. They should focus on their unique journey and celebrate their achievements.
00:10:23.840 I feel that fostering a sense of collaboration and connection among newcomers is vital. Building camaraderie will support their development in technical roles.
00:10:39.079 Next, is teaching the next generation of developers even the right goal? This question opens a critical discussion regarding our focus on developing skills or just encouraging participation.
00:11:55.920 Many students aspire to become great developers, but the reality is that many may take different paths within technology outside of just coding. It’s essential to cultivate their potential and guide them toward fulfilling roles in technology.
00:12:41.279 We believe that developers with diverse backgrounds enrich products and contribute positively to teams. Teaching them to communicate effectively is key.
00:13:17.759 So the real question is what we define as greatness: it’s not solely technical prowess, but the ability to contribute alongside diverse perspectives.
00:14:05.600 The importance of applied programming as a superpower can’t be understated. Many of the most impactful developers I know leveraged their programming skills to drive change in other fields.
00:14:32.480 Creating a supportive and engaging culture where developing interpersonal skills is a focus can significantly impact programming education today.
00:15:19.200 One topic we can address is the interpersonal skills necessary for developers to become leaders and mentors.
00:15:30.800 I believe that sharing personal stories and lessons learned while transitioning into tech roles can create a space for discussion and camaraderie.
00:15:56.800 This initiative extends beyond teaching coding; it’s about building an inclusive community united around mutual growth.
00:16:36.560 We encourage them to support each other through peer mentoring and creating a foundation for empathy within our coding community.
00:16:54.360 At Dev Bootcamp, we emphasize 'engineering empathy' in our curriculum.
00:17:03.200 This includes sessions on feedback and communication, which helps develop better team dynamics and well-rounded individuals.
00:17:29.760 We also focus on building a support structure that ensures everyone is on board with fostering this empathy through the entire program.
00:17:53.680 Overall, students and instructors must communicate openly and share growth experiences as part of their learning journey, breaking down the traditional teacher-student barriers.
00:18:38.560 Is everyone aware of the dynamics involved when novice learners interact in team projects? Supportive groups can make all the difference in their confidence and development.
00:19:02.280 Recognizing that the early experiences are crucial in shaping future industry leaders, we must all guide them effectively.
00:19:14.200 Let’s discuss how we can best onboard new developers and foster their growth, especially as they enter a challenging industry.
00:19:44.160 The reality is many organizations struggle with onboarding new talent, making it essential to create robust entry points for novices.
00:20:26.960 By ensuring students know how to own their learning and communicate effectively, we can improve the onboarding experience for new developers.
00:20:50.640 Addressing these issues before they leave the programs is essential, as it can set them up for failure or success on their new path.
00:21:34.760 It's vital to pair novice developers with seasoned professionals to guide their transitions into firms that can nurture their growth and learning capabilities.
00:22:05.840 Companies must recognize the importance of investing in the development of junior talent to create a more sustainable workforce.
00:22:25.120 The future of any organization relies on its ability to cultivate a healthy mix of experiences, ensuring that knowledge is shared and grows.
00:23:02.000 By mentoring within your organization, you prepare each level for future challenges, creating a cycle of growth.
00:23:27.640 As we address the evolving nature of onboarding processes, this crucial discussion will help determine how to bring out the best in future developers.
00:23:47.680 Next, let us consider the urgency of bringing more people into the field and how addressing the growing demand for developers is essential.
00:24:08.640 The reflection begins on how to satisfy and maintain the balance between demand for skilled developers and the supply of well-trained individuals.
00:24:29.080 Ultimately, fostering an environment where new learners are nurtured will lead to a thriving professional landscape in programming.
00:24:54.680 Okay, it’s important to understand where we can best place graduates within organizations.
00:25:07.760 We want to help our students find roles where they can thrive while senior talent guides them.
00:25:20.800 While it may seem that certain environments are better suited than others, we can train students to identify what they need to flourish.
00:25:48.520 By bridging the gap between realistic expectations and the support systems in place, we empower our students to find their rightful place in tech.
00:26:10.440 Concerning the gaps in companies looking to hire, we must address how established companies can bring in apprentices and learn from them.
00:26:28.360 Seeing how companies evolve through internships and mentorship can be invaluable.
00:26:46.000 Jesus, I’m almost scared. A great developer doesn’t need to be the best at anything—they need to have a growth mindset.
00:27:05.040 Particularly in tech, where many evolve through learning, being willing to experiment can create opportunities for individual growth.
00:27:18.520 But we must also strengthen the ability to tap into available networks, as this contributes to skill growth.
00:27:30.680 Understanding the application of technical skills is crucial; there are many ways to use them in learning environments.
00:27:58.560 Mentors must identify how to assist students in aligning their learning with company needs, fostering a trusting relationship.
00:28:09.440 Moving forward with adaptable goals can create a pathway for shared successes between students and organizations.
00:28:30.160 Let’s continue discussing how to help new developers set those reasonable expectations and help them gain confidence in their abilities.
00:29:16.200 As we prepare learners for interviews, creating honest dialogues to convey strengths and weaknesses is essential in managing goals.
00:29:57.480 At the very least, communication should focus on setting realistic expectations for students within their technical journeys.
00:30:33.479 Starting with small successes and facilitating a growth mindset will create a foundation for continued skill development.
00:30:47.560 Education allows students the opportunity to learn and make mistakes, leading to growth rather than fear of failure.
00:31:18.680 Ultimately their greatest takeaway is the ability to tackle new challenges fearlessly and collaboratively within diverse teams.
00:31:52.639 The discourse must continue moving towards creating a collaborative environment. It seems that scaling this is the key.
00:32:10.840 Facilitating technical interviews leads to identifying talent and ensuring that the field evolves alongside the demands of industry.
00:32:44.280 Finding ways to enhance the interview process for all parties will yield positive outcomes for everyone involved.
00:33:13.080 Ultimately, we can better support outcomes for developers and companies when we focus on building relationships and recognizing mutual successes.
00:34:21.520 Lastly, nurturing positive environments for discussions on growth will ensure that future technical generations feel empowered.
00:35:05.520 It's clear that creating an inclusive space for novices is the key to developing talent that will sustain our industry moving forward.
00:35:54.680 I appreciate everyone’s insights today. Thank you all for being part of this vital discussion.