00:00:06.180
Okay, let's get started. Hello there, and thank you so much for joining my talk.
00:00:11.340
Today, I'm really excited to be here and share with you some of the stories of mentorship that I have, as well as some tips and tricks I've picked up over the years.
00:00:16.500
My goal with this presentation is to hopefully inspire you to try your hand at mentorship or perhaps get back into it if you've been out of the game for a while.
00:00:22.619
This is my first ever RailsConf, and while I hope to be there someday in person, I am honored to be here today.
00:00:34.140
Before we get started, I just wanted to share that if you would like to follow along with my slides on your device, I've prepared a URL.
00:00:39.840
You can download them from https://RamonH.dev/mentorship-stories.pdf.
00:01:01.440
So a little bit about me: my name is Ramón, and what you see here is a photo of me presenting a Raspberry Pi dance mat at a conference.
00:01:07.380
I'm originally from Chile but currently living in Austria, where I've been for quite a long time. I'm a Developer Advocate at Code C, and I am also a software development contractor.
00:01:18.780
I've been working for a long time with Ruby and JavaScript and have more recently started to work with Rust and get into those communities.
00:01:30.360
Communities are really important to me. I love getting involved, seeing what people are up to, and getting empowered by their motivation.
00:01:42.479
I believe by listening, sharing, and learning together, we become more powerful as a result. I've been a part of several communities, organized meetups locally, and even organized some conferences.
00:01:55.399
More recently, I've also been a Mozilla Tech Speaker, which is a more informal group of folks, and it's just a lot of fun.
00:02:01.380
One thing I will discuss a little bit later is my experience teaching kids coding or coaching them, which, as you can imagine, plays into mentorship.
00:02:09.060
I want to take you further back and share my experiences getting started—my origin story, if you will. Long ago, when I was in university at the Technical University of Vienna studying software engineering, I was going through a tough time.
00:02:42.300
This was mainly my own fault; I wasn't very motivated. Since German is not my first language, taking complex courses in German such as mathematics, statistics, algorithms, and data structures was significantly more difficult.
00:02:53.280
At that time, I was also looking into moving in with my girlfriend, which meant searching for apartments and figuring out a source of income to afford our new life.
00:03:20.400
I didn’t think I was qualified for a job; I had limited experience in software development. However, my girlfriend was very encouraging and found a freelance Mac OS X developer position.
00:03:35.160
Not being Austrian, freelance work was attractive to me since it eased the legal paperwork, so I decided to give it a try. Feeling a bit cheeky, I sent off an application despite my CV looking quite empty.
00:03:53.820
The person looking for a candidate got back to me and suggested we meet for coffee at Café Mozart. A week later, we met up at this famous coffee house, and I was, of course, pretty nervous.
00:04:20.040
As we sat down and ordered our coffees, he looked at me and asked, 'Ramon, I've seen your CV. You don’t have any practical experience, so why are you applying for this job?' I was unprepared for this question.
00:04:42.780
But somehow, I felt an odd sense of confidence and told him I could learn quickly. For context, I had just gotten my first-ever MacBook and was thrilled about Mac OS programming.
00:05:15.960
He mentioned a book called "Cocoa Programming for Mac OS X, Third Edition" by Aaron Hillegass, which illustrated many best practices.
00:05:35.280
He not only recommended this book but also shared his insights on best practices and introduced me to the build tool chain for Mac OS apps, which was actually written in Ruby.
00:06:05.160
Over time, he would call me, guiding me in solving problems, showing me the complexities of using Git, and introducing me to practices like rebasing.
00:06:26.460
What really stood out was an email he sent weeks later, titled 'Highly Pleased With Your Work.' This struck me like a ton of bricks; I was unprepared for the surge of pride, confidence, and motivation.
00:06:54.240
A few years later, I realized he had effectively acted as my mentor, and we are still collaborating today, with me helping him stay updated on Rails best practices.
00:07:17.460
Now, I want to transition into a commonly held definition of mentorship, which is a learning relationship between a more knowledgeable person guiding someone with less experience.
00:07:30.479
Mentorship is happening everywhere in our communities, whether we realize it or not. It can be a formal relationship or occur informally, such as in a pull request.
00:08:04.020
Looking at a pull request I made three years ago to the Rails Girls Summer of Code team's app, I received feedback that exemplifies informal mentorship.
00:08:29.639
Additionally, I have participated in meetups like the local Vienna art.rb Ruby User Group. These meetups allowed us to share knowledge, enjoy snacks, and collaborate.
00:09:00.300
We have also seen workshops such as the Pie Ladies Flask workshop, aimed at empowering underrepresented folks to learn Python programming.
00:09:34.320
In my first experience with mentorship, I taught children coding. Before attending meetups, I tried starting an after-school program at my high school to teach kids coding, which we called Computer Game Programming.
00:10:09.360
The kids helped each other and me, showing great enthusiasm. A few years later, a former student contacted me for help with the Unreal Engine.
00:10:34.260
This experience showed me that the kids had also picked up mentoring techniques as they taught me about the Unreal Engine.
00:10:52.620
Long-term relationships have also blossomed out of these experiences. An example would be the Rails Girls Summer of Code program, which empowers individuals in open source software development.
00:11:17.220
In workshops, we would gather to code JavaScript and Rails together, and it was an incredible learning experience for everyone involved.
00:11:32.820
These sessions were not only in-person but also remote. We had several online hangouts where we connected with teams from all over the world.
00:12:05.220
These activities encourage mentorship not only in programming but also in skills like public speaking. One of my favorite events is the Global Diversity CFP Day.
00:12:27.660
This yearly event encourages individuals to develop their proposal writing skills for conferences.
00:12:57.540
So you might wonder why we should be mentors. It comes with great responsibility, but I believe there are multiple groups that benefit from mentorship.
00:13:07.379
The most obvious recipient is the mentee; you can assist in their career, education, and personal projects, helping them find direction.
00:13:32.580
However, mentorship also benefits you as a mentor. Being exposed to someone with less experience grounds your knowledge, allows for friendship, and broadens your worldview.
00:13:47.520
Moreover, the process helps identify knowledge gaps you might have and encourages learning new things together. When we mentor others, we inspire them to become mentors as well.
00:14:06.780
Understanding the distinction between teaching and mentorship is essential. Teaching often involves knowledge transfer in one direction, whereas mentorship encourages reciprocal knowledge exchange.
00:14:33.960
Having said that, I want to share tips and tricks for being a good mentor. The first key point is to start the mentor-mentee relationship by asking about their goals.
00:15:00.660
It's crucial not just to focus on short-term goals but long-term ones as well. Checking in regularly about these goals can help adapt and evolve the mentorship.
00:15:28.740
Encouraging good habits, including good technical and empathetic skills, is vital. Demonstrating empathy helps to show the mentee its significance in personal and professional development.
00:15:53.760
Effective communication is imperative for mentorship and software development. As a contractor, I find it essential to convey ideas succinctly to my clients, and I strive to pass this skill to my mentees.
00:16:11.280
Lastly, mentorship is a long-term commitment. Helping someone with immediate challenges is just as important as fostering their long-term development.
00:16:34.200
Encourage your mentee to challenge you, ask tough questions, and engage in open discussions. It's essential to create an environment where critical thinking thrives.
00:17:05.199
Another frequently asked question is, 'Which programming language should I learn first for web development?' Encourage them to refine this question further.
00:17:35.220
Use this opportunity to expose your mentee to a variety of technologies instead of imposing your preferences on them. Show them the diversity of tools and techniques available.
00:18:03.600
Being supportive is also key in mentorship. You want to create a safe space where mentees feel comfortable sharing their issues.
00:18:19.840
Let's discuss imposter syndrome for a moment. It's common among newer programmers who feel unqualified for their positions.
00:18:39.740
As a mentor, it’s your job to help them realize that these feelings are prevalent, share your experiences of overcoming them, and reassure them.
00:19:12.180
Finally, offering constructive feedback is vital to keep your mentee motivated. It's important to approach critiques positively and use guided questions rather than harsh judgments.
00:19:36.060
For instance, if discussing code, ask guiding questions that prompt your mentee to critically think about their solutions rather than outright criticism.
00:20:07.560
It's important in these discussions to maximize support while minimizing harm. As mentors, we must understand our privileges and take care to direct mentees to the right resources.
00:20:29.760
Listening is an art of mentorship. It is just as important as speaking. I try to serve as an on-demand rubber duck, allowing my mentee to express their ideas fully.
00:20:50.220
Even if I disagree with their perspective, I respect their input and let them explore it themselves. Mentorship is about learning together.
00:21:21.480
You don’t need to have all the answers. If you don’t know something, express your curiosity and willingness to explore the topic alongside your mentee.
00:21:44.520
I recall a moment while teaching kids coding when a child questioned why the origin in programming was at the top left instead of the bottom left, as they learned in math class.
00:22:18.240
This curiosity led us to discover together the historical context of screen rendering that dictated that programming framework design.
00:22:46.020
Encouraging this kind of exploration fosters a culture of curiosity. It's important to show your mentee how you tackle questions and challenges.
00:23:13.680
Occasionally, engaging with a topic deeply can spark interest. Always look for opportunities to dive deeper into subjects, demonstrating your own eagerness to learn.
00:23:35.520
Moreover, positioning mentorship as a pathway to continued learning, both for you and your mentees, establishes a collaborative and reciprocal environment.
00:24:11.040
You should recommend engaging resources and learning activities. It's important to share educational materials like games and books that can make learning enjoyable.
00:24:32.640
Games like Regex Crossword, CSS Diner, and Flexbox Froggy facilitate skill-building in a fun format. Share your recommendations that enriched your learning experiences.
00:24:57.540
Books like 'Practical Object-Oriented Design' by Sandy Metz are invaluable. Share books and online resources that you refer to for guidance, demonstrating your commitment to continuous learning.
00:25:22.680
A key point is to understand that relative experience matters in mentorship. You don't need to be an expert; recent experiences can provide fresh insights.
00:25:50.460
An example of this is my sister, who became a mentor after participating in a Rails Girls workshop. Her perspective as a recent learner was invaluable in guiding others.
00:26:17.640
Even those with more experience should not hesitate to seek out mentorship themselves. The learning journey is continuous, and everyone can benefit from it.
00:26:41.640
However, it's essential to recognize your limits. Taking on too many mentees could dilute your effectiveness as a mentor.
00:27:12.240
Make sure you're well-rested and prepared to support your mentees. It's perfectly acceptable to decline requests when your capacity is full.
00:27:39.960
If you're looking to help others in a structured way, consider local organizations or tech meetups that seek mentors. Initiatives like CoderDojo and Rails Girls exist globally.
00:28:01.380
Offering free one-on-one sessions for mentorship has been rewarding for many, and you can share your experiences and offers online.
00:28:27.840
Encourage your workplace to launch mentorship programs or informally discuss the value of mentorship. Create a space where mentors and mentees can connect.
00:28:57.300
Lastly, learning in public can also be an avenue for mentorship. Sharing thoughts, experiences, and questions in public spaces can attract others to engage with you.
00:29:25.620
Books like 'Working in Public' outline how collaboration in open source can lead to mentorship opportunities. It's important to remember that the desire to mentor stems from a passion for sharing knowledge.
00:29:53.640
I am grateful for your presence today, and I hope you take away the importance of mentorship as a way not just to pass on knowledge, but also to share joy.
00:30:16.060
Please check out these resources and reach out if you’re interested in discussing mentorship. My name is Ramón, and you can find me on Twitter at @olasoymilk.
00:30:45.660
Thank you so much for listening, and enjoy the rest of RailsConf!