Talks

UserMailer.with(user: myself).life_advice.deliver(5.years.ago)...

UserMailer.with(user: myself).life_advice.deliver(5.years.ago)...

by David McDonald

In this talk from RailsConf 2019, David McDonald addresses the challenges faced by newcomer developers in the tech industry. He reflects on his own journey and emphasizes the importance of embracing mistakes as a vital part of the learning process. McDonald begins by acknowledging the mixed feelings of inspiration and discouragement that often accompany attending conferences, particularly for junior developers dealing with imposter syndrome.

He shares his personal experiences and key points that are intended to offer encouragement and advice to those new in the field:

  • Embrace Mistakes: McDonald stresses that making mistakes is inevitable in both language learning and software development. Rather than letting mistakes demoralize you, they should be seen as opportunities for growth.
  • Learning Through Experience: He recounts his own journey of learning French while living in France, where he initially feared making mistakes. Over time, he learned to accept errors as part of the learning curve, leading to fluency and confidence.
  • Mentorship and Inclusion: McDonald encourages seasoned developers to offer guidance to newcomers, fostering an inclusive environment where mistakes are welcomed rather than stigmatized.
  • Overcoming Imposter Syndrome: Recognizing that anxiety and self-doubt are common in programming, he discusses how juniors can find solace in knowing that they are not alone and that others have faced similar challenges.

Throughout the talk, he reminds the audience that the tech community is a team sport, where collaboration is essential. He urges newcomers to understand that their presence and contributions are valuable, and that they should not shy away from challenges due to fear of failure.

To conclude, McDonald encourages junior developers to lean into their learning journey without fear of mistakes. His message is clear: the tech industry thrives on diversity and the unique perspectives of all its members. He invites all attendees to forge connections and support one another, offering a sense of community in the face of the learning struggles they all face together.

00:00:21.810 So, I never know how these conferences are going to go or what I'm going to walk away with. This year, I’ve walked away with a lot of insights about remote work. I’ve come to realize just how dominant Slack is in the market. Some years, I always see what’s going to be talked about, but you never really know what’s going to resonate with you. One thing is certain: you're going to feel inspired and equally discouraged.
00:00:38.100 You will meet amazing people, hear incredible things, and learn new concepts, but it can also be overwhelming. There’s so much information, which triggers my imposter syndrome. Lately, I’ve been thinking a lot about onboarding, as that has been one of my roles. When you engage in onboarding, you go back to when you were new at a company, as a developer, or even in high school. Putting yourself in another person's shoes is crucial since it helps you in the process of being a mentor.
00:01:01.020 As I prepare for this talk and reflect on my experiences, I remember when I was a junior developer attending my first conference. While I felt a lot of inspiration, the discouragement was palpable. Today, I’d like to address this talk to my past self. Don’t come to me with comments like 'that’s not the API for ActionMailer.' My hope is that simply hearing these words from someone who is now speaking from the stage will resonate with newcomers to the community.
00:01:36.630 I want people to feel more included and less alone. Here I am, and I used to be in your position. So if you're a junior developer, please know that this is for you. This isn’t a core article on how to be a 10x rockstar; rather, what follows are insights I wish someone would have shared with me when I was brand new.
00:02:03.670 All I can really speak about is my experience, so bear with me as I share it. I’ve worked many different jobs, from kitchens to cleaning toilets, to clerking in pharmaceuticals. As your typical millennial, today I'm an engineer at WeedMaps, primarily working on the back-end. We have a read API backed by Elasticsearch in a Rails 5 app. If you’re interested in learning about how that works, Alex Reef gave an excellent talk today.
00:02:40.710 Before my time at WeedMaps, when I was much younger, I decided to move to France, where I spent over five years. During that time, I taught English, worked as an English tutor for wealthy families, assisted photographers, and worked in photo studios and movies. I first touched code while trying to edit a photo portfolio website—it was one of those bespoke PHP CMSs where you could upload images and build a simple gallery. When someone I was with couldn't figure out how to get it working, I jumped in. My initial plan was to look at PHP, do some Googling, and before I knew it, I was hooked.
00:03:28.310 Eventually, I realized that I could only build so many static websites through YouTube tutorials. I truly wanted to join a development team. Immersing myself in a completely different culture taught me a lot. I had studied French a little in high school, but I didn’t actually speak any when I moved there. I was terrified of making mistakes and had to learn how to stick my neck out despite being scared.
00:04:35.030 When I moved there, life was a series of embarrassments and learning experiences. For about six months, I woke up, studied, and was horrified of making mistakes, only to go out and make many of them. The French are known for being blunt, and I did indeed receive corrections. Doing this for several months burnt me out quickly, watching other people in the same situations.
00:05:39.480 Eventually, I accepted that mistakes are inevitable. Learning the language required that I make millions of them. I discovered immersion was the most effective way to learn, and I had to reframe how I thought about mistakes. I learned from Stoic philosopher Epictetus that it's not about what happens to you, but how you react to it that matters. I tweaked that saying for myself: it’s not that you made a mistake but how you reacted to it that truly matters.
00:07:12.330 Looking back, I learned to accept my mistakes as part of the process. For example, when I began working as a junior developer on a team shortly after moving back to the United States, I was once again in a familiar situation, making tons of obvious mistakes. This time, however, thanks to the talk I’m giving today, I was indeed ready for it.
00:08:40.910 The advice I’d like to offer my previous self is not to allow mistakes to defeat you. Let them come, let them shape you. You will make mistakes constantly, but you can control your relationship with them. Someday, you'll be sitting somewhere, ordering a coffee, and the waiter will mistake your accent for Swiss, and you’ll laugh it off instead of feeling humiliated.
00:10:02.230 In closing, if you’re here and listening to this, you understand how compelling yet challenging this career can be. Learning to read and write code is one of the easier tasks we face, as this is a team sport. Embarrassing mistakes are inevitable and will happen more frequently for newcomers. Each time you gain new responsibilities, whether you’re a team leader or manager, those challenges will continue.
00:11:07.850 Imposter syndrome and anxiety are problems many face in this industry. Inclusivity remains an important issue. If anything, I hope this talk encourages someone to not fear making mistakes, but rather to lean into them. Let’s inspire senior developers to be mentors and not fear making mistakes themselves and be more encouraging when they see someone struggling.