Ruby on Rails

Summarized using AI

Becoming a Software Engineer

Kinsey Ann Durham • February 19, 2014 • Earth

In the presentation titled "Becoming a Software Engineer" at RubyConf AU 2014, speaker Kinsey Ann Durham discusses the evolving pathways to becoming a software engineer, stressing the importance of alternative educational routes in fostering diversity and innovation in the tech industry. Durham shares her personal journey from an advertising major with no background in coding to a full-time software developer, highlighting that many assume a traditional computer science degree is necessary for success in software development.

Key Points Discussed:

  • Outreach Programs: Durham discusses programs like Railsbridge, which aim to lower barriers to entry in tech for underrepresented groups. She shares her success story of attending a Railsbridge workshop, where she built a Rails app in a day and met key mentors, demonstrating the program's effectiveness in increasing participation among women in tech.
  • Mentorship: Emphasizing its significance, Durham argues that mentorship is beneficial for both mentors and mentees, bolstering their skills and confidence. She discusses traits of effective mentors, such as the ability to explain concepts simply and with empathy, citing her need for patience while learning complex coding concepts.
  • Apprenticeship Programs: Durham advocates for intensive training programs that bridge the gap for individuals not yet prepared for full-time roles, mentioning thoughtbot’s Apprentice IO program as an example that nurtures coding talent through various stages of learning.
  • Developer Schools: Among the emerging educational alternatives, Durham notes coding boot camps like G School and Dev Bootcamp, which provide rigorous training and job placement guarantees. She argues that these programs are crucial for increasing diversity in tech by making software engineering more accessible.

Significant Examples:

  • Railsbridge and Testimonials: Testimonials from successful attendees, including Rachel Meers (GitHub) and Laur Stedman (Quora), illustrate the impact of these outreach programs.
  • Personal Anecdotes: Durham recounts her struggle and growth through mentorship and her experiences in workshops, emphasizing how support and camaraderie in these environments can help individuals succeed against the odds.

Key Conclusions:

  • To foster a more diverse tech community, the industry must embrace alternative educational pathways and mentorship programs.
  • The current landscape shows that diversity drives economic growth and innovation, essential for addressing the skills gap in technology.
  • Real change can occur through collaboration and outreach, bringing awareness to the needs of diverse learners and transforming perceptions about who can succeed in tech.

Durham concludes by encouraging individuals to pursue their passions in software engineering, regardless of their background, through the support of alternative programs and dedicated mentors.

Becoming a Software Engineer
Kinsey Ann Durham • February 19, 2014 • Earth

Becoming a Software Engineer: Insipring a New Generation of Developers
RubyConf AU 2014: http://www.rubyconf.org.au

In my wildest dreams, I never thought that I would become a software developer. I thought that I wasn't smart enough, that I needed a computer science degree and to have been writing code since I was young. But, the traditional path to becoming a developer is changing. This talk will focus on alternative and untraditional paths to becoming a developer such as programs like Railsbridge, mentorship and apprentice programs. These alternative paths ultimately foster a more diverse and inclusive community, which drives economic growth and produces more innovative solutions.
The objectives of the talk are:
to bring awareness to the educational alternatives to computer science degrees to encourage empathy when mentoring a beginner to get the audience to see a different perspective and embrace differences in the industry

RubyConf AU 2014

00:00:09.480 Hello! As Matt mentioned, I'm here to talk about inspiring a new generation of developers and alternative paths to becoming a software engineer. If you had told me a year ago that I would be standing here speaking at a Ruby conference, I would have laughed. I was an advertising major in college, and I grew up building Barbie's dream house instead of working with computers. I started working in ad agencies when I was 16, and I was good at it, so the thought of becoming a software engineer never crossed my mind. To me, the idea of being a software developer seemed straightforward — you either needed a computer science degree, had to drop out of one to write code for a company, or you had to be a self-taught programmer who had been coding since childhood.
00:00:39.600 However, recently, the community has seen a rise in non-traditional paths to becoming a software engineer. These paths are vital for building a diverse community and training the next generation of developers. Today, I'm here to argue that outreach programs, mentorship, apprenticeship programs, and developer schools are legitimate paths to becoming a software engineer. This alternative path has made me realize that something I thought was impossible is actually possible.
00:01:15.520 First, I want to talk about outreach programs. Railsbridge is a great example of an outreach program that's effective. How many of you have heard of Railsbridge or Rails Girls? Wow, that's a lot! Who here participated in a Rails Girls workshop? Awesome! I got started by attending a Railsbridge workshop in Denver, Colorado, which is similar to Rails Girls, where I built a basic Rails app and deployed it to Heroku in just one day. I was amazed that I could do it, and it really planted the seed for the career I had always dreamed of but hadn't fully realized.
00:01:43.000 At the workshop, I not only met Desie McAdam, who would become one of my greatest mentors, but I also discovered a passion for coding that I would have never found on my own. It taught me that writing code wasn’t scary, and within just a few hours, I deployed my first application and remember yelling to my best friend, who was at the workshop with me, that I was going to start writing code from that moment onward. Railsbridge was started in 2009 by Sarah May and Sarah Allen when the San Francisco Ruby community was 98% male and only 2% female. Their efforts to lower the barrier to entry led to a huge increase in women attending workshops, with the female ratio jumping from 2% to 18% in just one year.
00:02:23.599 I'm definitely not the only one who has pursued a career in web development thanks to Railsbridge. I have a few testimonials from individuals who attended the workshop and are now full-time engineers. Rachel Meers, now a developer at GitHub in San Francisco, mentioned that she got to meet others who were new, rather than people who had been coding since they were five. Laur Stedman, a developer at Quora, said attending Railsbridge was inspiring—not because of what she built, but because of the sincere enthusiasm of the volunteers who gave up their weekends to teach people coding for free. R. Aasi, another Railsbridge graduate, stated that she is now a full-time developer and appreciates the open environment for people who might otherwise self-select out of programming.
00:03:08.560 There are many outreach programs out there like Rails Girls and Black Girls Who Code, which are fantastic programs that need sponsors, teachers, and volunteers on an ongoing basis. If you're not involved with any of those and want to be, I highly recommend it. I'm also the coordinator for the Denver Women Who Code, and it’s truly amazing to see the impact that this group has had on our community over the past year. The most popular meetups we've had have been ones geared towards beginners wanting to break into the industry.
00:03:51.640 Next is mentorship, which is another crucial aspect of training the next generation of developers. Mentorship was beneficial for me because I looked to my mentors not only for technical skills but for soft skills and emotional support. Transitioning from attending a Railsbridge workshop to becoming a full-time software engineer was much more work than I had anticipated. There were days when I came home in tears, feeling frustrated about not understanding even the basic concepts. I was learning a whole new way of thinking while trying to grasp Ruby, test frameworks, and coding in general.
00:04:24.880 Mentoring is also beneficial to mentors, not just the mentees. My mentors frequently tell me how it ultimately makes them better developers because it solidifies their understanding of what they teach. John Foley, a developer at Pivotal Labs, told me that mentoring elevates one’s understanding from just thinking they know something to truly knowing it or realizing what they don’t know. Mentoring provides countless necessary benefits to both mentees, people like me, and mentors alike. Even advanced developers can learn new things by explaining them in a way that beginners can comprehend.
00:05:11.919 How many people here currently mentor someone? A few of you, awesome! And how many people have had someone mentor them? Wow, that’s a lot! Did it help you in your career? I see some nods in the back. So now, I'd like to shift gears and discuss what I believe it means to be a great mentor, as I think it’s really important.
00:05:54.560 I believe mentors need to be able to explain complex concepts simply. At RubyConf, Steve Harms used a Star Wars analogy that made something click for me. When mentors can provide real-life analogies, I understand the material better than when they use overly technical jargon. Awareness is another critical trait. A great mentor should always inquire about their mentee's learning style and how they learn best to tailor their support accordingly. Getting to know your mentee is paramount. In my case, I discovered that drawing things out on the whiteboard was beneficial for my understanding, while reading from textbooks, like the big Ruby Pickaxe book, felt nearly impossible.
00:06:35.040 Patience is essential if you want to be an effective mentor. If you’re an impatient person, it might not be the best path for you. Beginners often require repetitive explanations, and learning can be a slow process, so it's important to be patient and understanding when working with your mentee. This skill of patience is also something I had to learn while writing code. Many times, I would switch aggressively between a failing test and the text editor out of impatience without taking the time to read the error messages.
00:07:34.120 I found weekly retrospectives to be invaluable. Checking in with your mentors on a weekly basis, or at least monthly, about what went well and what didn’t helped me focus on my soft skills, like my patience issue. I think pairing is one of the best practices for developing technical skills. I definitely learn the most when working alongside others on client projects, and even during my own experiments with coding. Pair programming has been incredibly beneficial to my apprenticeship.
00:08:03.759 Empathy is the most important advice I can give to mentors. It’s incredibly discouraging for a mentee to hear comments like, 'You're learning so slowly—how do you not get this?' It can be deeply demotivating and lead them to consider if they are smart enough for the job. Encouragement and mindfulness about what you express toward your mentee is crucial as it can greatly influence their confidence.
00:08:42.080 The impact of my incredible mentors and my experience at Railsbridge has been life-changing, not just for me but for others as well, in a ripple effect. This is a photo of me with my two best friends who also attended Railsbridge. The friend on the left is now a front-end developer in San Francisco, and the friend on the right is attending a hacker school in New York. Additionally, my friend Zach, who is here in the audience today, recently picked up his life and moved to another state to attend a Dev Boot Camp and pursue a career in software engineering after he saw me coding one day in our kitchen.
00:09:20.480 Now that I’ve discussed outreach programs and mentorship, I want to talk about apprenticeship programs. These programs provide intense training that typically isn’t available at traditional universities. They can take a passionate learner and transform them into a competent and reliable software engineer. I was fortunate to partake in the thoughtbot Apprentice IO program. Thoughtbot is a consulting company known for its internship program, and 25% of its employees came through this apprenticeship.
00:10:05.600 Dan, the CMO, explains that the program was created to nurture talented individuals who weren’t quite ready to be full-time consultants. Chad, the CEO, stated that everyone in the program who was eligible for a job afterward secured a position, whether with Thoughtbot or another employer. Unfortunately, the thoughtbot Apprentice program is undergoing transitions and is now seeking more advanced engineers while developing a boot camp for beginners. I believe there needs to be more companies creating formal mentorship and apprenticeship programs for individuals who are beginner or intermediate rather than those who have been programming for several years.
00:10:53.160 A recent study indicated the benefits of apprenticeship programs outweigh the costs, and this is true across various fields, not just in technology. Why should companies invest in apprentice and mentorship programs? If companies nurture this talent, there will be highly trained and prepared candidates available to fill positions, ultimately benefiting both these companies and the wider industry. Corporate social responsibility (CSR) is also vital. 96% of people say they would have a more positive impression of a company engaged in CSR, which is a fantastic way to give back to the community. Many employees in different companies aspire to be mentors but often lack the opportunities to do so. Creating formal opportunities can help facilitate this.
00:11:49.200 The goodwill and positive image of your company can spread in the community. I’m here speaking about Thoughtbot and Railsbridge, both of which have significantly impacted my life. I believe that this goodwill can resonate throughout countless students if you choose to take a chance on them. Developer schools offer alternative educational opportunities, such as the intensive Ruby on Rails training programs at G School and Dev Bootcamp. My journey is currently leading me down this path. I work as a teaching assistant and developer for the G School program in Denver.
00:12:54.400 These programs are emerging everywhere and are critical for increasing diversity within the industry. G School is a six-month rigorous developer boot camp that guarantees a $60k job placement within three months of graduation. Most boot camps last three months and do not provide a job guarantee, so I find this quite impressive. Our first class, run by Pivotal instructors, is starting on March 3rd, which is exciting! Numerous other developer schools are popping up across the country and around the globe, and I chose to work at G School due to the program's length and the quality of its educators.
00:13:51.520 Again, I had the pleasure of meeting Victoria Freedman at RubyConf in Miami. She was an English major who experienced a midlife crisis post-graduation and had no idea what to do with her life. After attending the Flatiron School in New York, she is now a full-time developer at Time Inc. I was taken aback by her technical insight and her ability to articulate programming concepts so clearly. It was quite inspiring, especially given that she never thought she would enjoy coding as much as she currently does.
00:14:41.360 There are critiques surrounding developer boot camps, and I understand where they come from; going from having no coding background to becoming a full-time software engineer in just three months can seem daunting. It is possible that some boot camps may not provide value, so I recommend doing thorough research and speaking to recent graduates before enrolling. However, G School has had two classes so far, and they have achieved a 100% job placement rate, which is quite impressive. It could be a great way to jump-start your career.
00:15:37.440 Some online platforms rank these programs, where students can anonymously share their experiences. People often worry about the saturation of junior developers in the market and the shortage of senior developers to train them. I believe this could pose a significant issue in the future. So why is all of this important? Why do we need alternative paths to becoming a software engineer? I believe there are three key reasons: diversity, the lack of quality engineers, and failures in the education system.
00:16:29.720 NCW has stated that formal mentorship is essential for retaining and advancing underrepresented employees. Access to the internet is a privilege, and statistics show that white males have access to computers at an earlier and higher rate than females or individuals from diverse ethnic backgrounds. Boys typically get their first computer at age 11, girls by age 14, and for many people of color, it’s even later as they often have a higher adoption rate of smartphones compared to computers. Can you imagine trying to write code on a smartphone? Currently, 82% of CS graduates are male.
00:17:18.680 While females make up more than half of undergraduate graduates, only 18% graduate with a degree in computer science. There are significant barriers in the traditional computer science route, with little representation of women. A friend of mine at Pivotal told me that there were no women in his computer science classes at USC, and for the few who were there, their experiences were intimidating, leading many of them to drop out.
00:18:04.760 Moreover, he shared that his computer science degree did not prepare him for a career in his current role at Pivotal, as he felt unprepared to write production-level software. We encounter numerous difficulties: financial barriers, lack of encouragement, discrimination, and insufficient role models. To create diversity in the industry, we require educational pathways from diverse outreach programs, mentorship opportunities, apprenticeship programs, and boot camps that lower barriers to becoming a developer. This approach is essential for cultivating a diverse community, and I want to emphasize that while these educational avenues lower barriers, they should not lower standards.
00:18:59.240 Alternative education must be of high quality; developer boot camps, apprenticeship programs, and mentorship programs require focused attention to maintain industry standards. As we all know, diversity is crucial, driving economic growth and fostering innovation while enhancing the ability to solve problems. Another aspect to consider is that many of these programs are predominantly located in affluent areas, best suited for individuals of average or higher socioeconomic status.
00:19:59.039 It would be incredible to see mentorship, apprenticeship, and outreach programs established in rural areas with low socioeconomic status and ethnic diversity. Furthermore, the demand for quality engineers continues to rise. Many companies struggle to find engineers, and according to NCW, if current trends persist, by 2018, the information technology industry will only be able to fill half of its available positions.
00:21:03.200 There are many individuals who have never considered software engineering as a viable career path, either due to stereotypes or the feeling that they aren’t smart enough, often because they haven't had computer access in their formative years. However, many people can realize their passion through alternative programs and the ones I discussed earlier.
00:21:55.760 Finally, the traditional computer science degree doesn’t adequately prepare graduates for the needs of the industry. Most graduates are not ready for full-time engineering positions, and after spending four or more years obtaining their degree, they're often burdened by the hefty cost of tuition. Thanks to programs like Railsbridge, my wonderful mentors, and the thoughtbot Apprentice program, I'm having the opportunity to discuss the importance of alternative educational paths in software development.
00:22:36.560 I wouldn't be truthful if I said my journey to becoming a software engineer was easy or consistently rewarding. There have been moments when I was close to quitting, feeling devastated as I went home crying, frustrated about tests that wouldn't pass. Despite this, I love what I'm doing and refuse to quit. I know this passion drives me, as I feel a rush of exhilaration passing through me when I overcome challenges, refactor projects, and produce clean code. I want others who doubted their ability to become software engineers to be inspired by alternative education programs or influential mentors because they can discover not only that they can become great developers but also find joy in their work.
00:23:45.760 Thank you so much for your time today! Please feel free to reach out to me via email or Twitter if you have any questions. I'm excited to engage with you!
00:24:21.360 I now have time for questions, so if anyone has any, please feel free to ask!
00:24:26.760 Asking questions right now, someone over here?
00:25:35.760 You mentioned a study showing mentorship benefits outweigh costs. Did you reference the study on your last screen? I could share my work cited. There's ongoing research looking at people who graduate from university versus those who have taken alternative paths, but I couldn’t find any concrete statistics yet as these boot camps are relatively new.
00:26:42.720 Someone in the audience shared their experience dropping out of computer science after two years. I shifted paths but did end up programming successfully for over ten years through alternative paths. Those fresh out of uni versus a shorter 3–6 month intensive course can show quite the difference in passion and trajectory.
00:27:51.520 Another audience member asked about a mentoring experience and transitioning from corporate law to coding. They shared their vision and passion for improving systems but found themselves sometimes overwhelmed with challenges without someone to talk to. I highlighted that having a mentor can be life-changing, helping when working through complex problems.
00:29:03.239 As I wrapped up, I reiterated the resources to connect with mentors, suggesting everyone look around the room for those eager to help. It’s beneficial to not only have mentors but to take advantage of courses available or local events.
00:30:07.480 The final exchange focused on encouraging individuals transitioning careers. I expressed gratitude for the journey. It's key not to be discouraged by previous difficulties with math or programming. Letting them know there are resources available to support people in their journey is encouraging.
00:31:00.150 And with that, I was grateful for the opportunity to share my experience.
Explore all talks recorded at RubyConf AU 2014
+17