GoRuCo 2015

Common Pitfalls of Junior Developers

@rwarbelow
The learning curve to becoming a great developer is incredibly steep, especially when starting with no background knowledge. And it's not a smooth ride, either - trying to learn tools, concepts, syntax, and best practices simultaneously will inevitably result in hiccups along the way. As a DevBootcamp alumnus, Rachel knows what it's like to go from zero to developer in a very short time frame and the challenges that journey can present. Now as an instructor at the Turing School of Software and Design, she draws on her years of experience in the classroom to employ strategies that allow her students just the right balance between hand-holding and struggling. In this talk, Rachel will share tips to help people who are just getting started with programming overcome common struggles while also sharing proven teaching techniques that will help more experienced developers become effective mentors.

Talk given at GORUCO 2015: http://goruco.com

GoRuCo 2015

00:00:14.000 Hi, I'm Rachel Warbelow, and here is my Twitter and email contact information. As Luke mentioned, in my past life, I taught elementary and middle school for seven years. Now, I teach software development at the Turing School of Software and Design in Colorado.
00:00:21.680 Over the course of seven months, we turn people into developers and then release them into the world of programming. We hear many stories about the wonderful experiences they encounter as junior developers and the challenges they face when trying to integrate into the field.
00:00:39.379 Today, I would like to discuss the common pitfalls of junior developers. However, I've realized that simply making people aware of these pitfalls won't necessarily lead to change. Instead, we will focus on how software development teams and mentors can prevent these problems from arising in the first place.
00:01:01.969 Preventing these issues can be challenging because being an expert doesn’t always mean someone is a good teacher or mentor. An experienced developer might write clean and efficient code but may lack the strategies necessary to help junior developers effectively. Additionally, experienced developers might find it hard to recall the struggles they faced as junior developers.
00:01:40.250 To address this, I spoke with various junior developers, senior developers, and those in between to understand what strategies worked and what didn’t. From these discussions, three key points emerged. My hope is that today, you will not only think about these challenges but also take away strategies you can apply to support junior developers.
00:02:32.480 One common frustration expressed was a lack of structure. Many companies claim they can onboard a junior developer, but that can sometimes be misleading. A lack of structure can be overwhelming; sending a junior developer to tackle a random task can cause stress and lead to reduced productivity. So, what structures can we implement to boost productivity and reduce stress?
00:03:39.310 I recommend creating a long-term plan that outlines the minimal essential skills a junior developer needs. What should they be able to do by next week, next month, and next year, and how will we help them achieve that? This roadmap benefits both the company and the junior developer. Additionally, establish a pairing structure: how often will junior developers pair with more experienced colleagues, and with whom?
00:04:17.570 Pairing juniors with each other can be beneficial, as they often share similar thought processes and skill levels while bringing distinct skill sets to the table. Tagging tasks in project management tools as 'junior level' can help ensure that these tasks are both challenging yet achievable. However, we don't want juniors to remain stuck on simpler tasks indefinitely, so ensure they also get the opportunity to pair with seniors.
00:05:14.370 The goal of a junior-senior pair should not be solely about productivity but about the learning experience for the junior developer. Lastly, create a consistent structure for feedback, such as regular code reviews and one-on-ones, where juniors can both provide and receive feedback. This structure helps juniors get acclimated to the environment and start contributing effectively.
00:06:01.600 Another common issue is the pressure to excel immediately. Junior developers often enter environments where their colleagues have extensive experience, leading to feelings of inadequacy. This mindset can cause them to hesitate in asking for help, which ultimately hinders their growth. It's crucial to cultivate an environment where juniors feel comfortable asking questions and addressing gaps in their knowledge.
00:07:05.910 When onboarding junior developers, quickly communicate that it’s okay to ask for help when they encounter struggles. It’s expected and even encouraged. Show patience and actively listen to their inquiries. Additionally, set realistic expectations about productivity, clarifying that it’s not fair to compare their early productivity to that of more experienced developers.
00:08:00.240 Moreover, allow junior developers to witness their colleagues, including seniors, struggling with challenges. This helps eliminate the stigma that only they face difficulties; programming is inherently challenging for everyone. It fosters a supportive culture where asking for help is normalized.
00:08:31.810 A frequent misconception is that coding is merely about memorizing implementations, but true mastery requires deeper understanding. Without this, it’s challenging to differentiate between varying qualities of code. Having only a surface-level understanding can lead to significant problems, particularly in debugging or when implementing slightly different features.
00:09:11.140 The goal should be to guide junior developers toward a deeper understanding of their work. This can be achieved through effective teaching techniques, such as creating visual aids, which prompt a different processing of information. Using analogies helps connect abstract concepts to familiar situations, thereby aiding comprehension.
00:09:35.900 I challenge you all to engage with a colleague during your tea time. Share mentoring strategies and discuss how your company currently provides support to junior developers. If you're accompanied by coworkers, outline what you plan to implement and the outcomes you hope for.
00:09:37.960 Additionally, seek out someone who could benefit from mentoring. This is particularly relevant for those newer to development. Although it may feel counterintuitive, reflecting on your own recent learning experiences can enhance your ability to mentor others effectively.
00:09:58.690 In closing, I'd like to express my gratitude to Will, Andrew, Try, Steve, Jason, Aaron, and John for sharing their insights with me for this talk. Please feel free to reach out to me on Twitter or via email. Enjoy the rest of your afternoon tea, and thank you!