Summarized using AI

New dev, old codebase: A series of mentorship stories

Ramón Huidobro • June 09, 2021 • online • Talk

In the talk titled "New dev, old codebase: A series of mentorship stories," speaker Ramón Huidobro shares his experiences and insights on mentorship within the software development community. Delivered at the EMEA on Rails virtual mega-meetup, the talk emphasizes the importance of mentorship as a reciprocal learning experience that benefits both mentors and mentees.

Key Points Discussed:

- Personal Journey: Ramón begins with his professional background, detailing his journey from a novice developer to a freelance software developer and mentor. He highlights a pivotal moment in his early career when he received guidance and resources from a more experienced developer named Philip, which bolstered his confidence.

- Definition of Mentorship: He discusses mentorship as a relationship where a knowledgeable individual guides a less experienced one, emphasizing that mentorship is not one-directional; both parties can learn from each other.

- Forms of Mentorship: Ramón illustrates that mentorship takes many forms, including pull requests, meetups, workshops, and teaching coding to children. He shares photos from various mentorship events he participated in, emphasizing the value of community learning.

- Benefits of Being a Mentor: Ramón references a mentorship guide to describe how mentorship aids the mentor, the mentee, and the broader community. It not only helps mentees advance in their careers but also enriches mentors’ understanding and fosters community growth.

- Distinction Between Mentoring and Teaching: He explains how mentorship allows for a bi-directional flow of learning, contrasting it with traditional teaching methods that often see knowledge transfer only in one direction.

- Advice for Mentorship: Ramón shares tips for successful mentorship, such as setting clear goals, exhibiting empathy, providing constructive feedback, and learning alongside the mentee. He highlights the power of asking guided questions to facilitate deeper understanding.

- Mindfulness in Mentorship: He discusses the importance of recognizing personal limits as a mentor to ensure effective and sustainable relationships with mentees.

Conclusions and Takeaways:

- Mentorship is a valuable avenue for professional growth and community building, and everyone, regardless of their experience level, can serve as a mentor.

- The act of mentoring not only fosters individual growth but also strengthens the tech community by encouraging inclusivity and collaboration.

Ramón concludes by encouraging attendees to explore mentorship opportunities, emphasizing that sharing the joy of knowledge is fundamental to thriving in the technology landscape.

New dev, old codebase: A series of mentorship stories
Ramón Huidobro • online • Talk

Date: June 09, 2021
Published: unknown
Announced: unknown

Mentorship in software development carries a lot of responsibility, but plays an integral part in making tech communities as well as individuals thrive.

In this talk, we'll go over some of my mentorship experiences, adopting techniques and learning to teach, so we can teach to learn. Anyone can be a great mentor!

This talk was delivered at EMEA on Rails, a virtual mega-meetup which took place on June 9, 2021.

EMEA on Rails 2021

00:00:19.119 sorry i'm just gonna yeah start up the open captions hi everybody um yeah thank
00:00:25.359 you so much for that lovely introduction and thank you all for joining and thank you to the team from emea on rails for
00:00:32.880 inviting me today um i'm so excited to tell you a little bit of the
00:00:38.239 stories of mentorship that i've had and the things that i've learned along the way that i hope to share with that i
00:00:43.360 hope to can inspire you to try your hand at mentorship today um so couple things before we get
00:00:49.600 started um if you would like to follow my slides along i've left a link at the bottom of this
00:00:54.800 slide uh ramonh.dev slash mentorship dash stories
00:01:01.199 dot pdf um go ahead and use that and you'll have a copy to follow along on your device uh if you prefer
00:01:07.680 so let's dive right into it i'm gonna tell you a little bit about myself um
00:01:13.040 i'm ramon my pronouns are he him i'm originally from chile but i'm living in austria for a very long time so i can't
00:01:19.439 really say i'm chilean anymore um i'm i've been freelancing as a software developer for many many years mostly in
00:01:26.640 ruby and javascript lately some rust as well which has been a lot of fun and community has been a huge part of that
00:01:34.000 for me um being able to empower one another being able to learn from one another has been
00:01:39.759 a significant joy that i've that i've gotten out of it and has really been some of the best lessons i've learned
00:01:46.399 in technology in com and you know dealing in
00:01:52.320 interacting with people and being a better human being um excuse me and uh
00:01:58.960 i've been part of this wonderful community for the last couple years called the mozilla took speakers program which is just one of my favorite
00:02:05.200 experiences ever and um i've also been a coding coach for for children in the
00:02:11.840 past which kind of plays into my uh kind of plays into my uh story that i'm going to be telling you about today
00:02:18.319 um lately i've joined the team at code c as a developer advocate where my job has
00:02:24.560 been to help empower folks in collaborating and understand understanding
00:02:30.239 complex code bases so going to stick to me for just a tad longer so please bear with me i'm going
00:02:37.040 to tell you the story of how my interaction with mentorship really began in my career
00:02:43.120 and to give you a little context for that i was studying software engineering at
00:02:48.160 the technical university of vienna and um i was ready to move out and live with my
00:02:54.319 partner and i had absolutely no experience so i was looking for jobs in things
00:03:01.200 related to caring for children or that sort of thing and my partner found a post on one of these
00:03:08.560 websites for jobs since what that said freelance mac os developer mac os x
00:03:13.840 sorry that's back when it's called os x mac os osx developer uh is being looked
00:03:19.200 for now at the time i had installed code uh uh xcode on my
00:03:25.840 computer which is the uh suite for developing mac os apps but i didn't have really any practical
00:03:32.560 experience but through the encouragement of my partner and i guess a rush of
00:03:38.080 self-confidence which is not terribly common for me i
00:03:44.000 applied and i said hey you know here's my cv i would love to try out for
00:03:49.440 this and i got a response i got a positive
00:03:55.280 response where um the person who was looking for a developer said all right
00:04:00.400 tell you what let's meet up next monday this was on a friday so i was like oh my goodness okay so we met at the cafe
00:04:07.519 mozart which i know is very vienna but it it's there
00:04:12.959 um so there we are we're at the cafe mozart everything's
00:04:18.000 everything's going well i'm there i'm very nervous and he we had a very friendly introduction and
00:04:25.120 uh this clip he said so ramon i've taken a look at your cv and i i had to ask you
00:04:31.280 why are you applying for this job you don't have any practical experience
00:04:37.199 and this was an incredible luck on my side that i was able to
00:04:44.240 somehow say something again something like hey look i've been
00:04:50.160 i really like what you posted really liked i really like what i've been learning in software
00:04:55.759 development i i had just purchased my first macbook so i was like this was back in 2008 and i was 2000 sorry 2010.
00:05:04.880 um gosh time flies um and i was just super excited about um yeah the the platform and learning
00:05:12.240 how to program and he said look i'll tell you what i can't hire you just yet
00:05:18.720 but here's a book and he gave me this the name of this book
00:05:24.479 um it's called coco programming for mac osx by aaron hilligas from big nerd ranch
00:05:31.840 and this book was kind of my first step into professional software development and he
00:05:37.520 said look read this book i will then hire you to do a very small task a very small bug fix for one of my
00:05:44.320 apps and then let's go from there so he kind of took a chance on me
00:05:50.560 along the way he was also teaching me things like publishing apps he was teaching me ruby
00:05:56.960 uh the the the tooling that he wrote to be able to automatically generate these these mac
00:06:03.360 app bundles was written in ruby so i was getting my experience with ruby there he was recommending me books he was
00:06:09.759 recommending me best practices and even code editors he got me on vim
00:06:16.000 and slowly i came i got more comfortable and we started a working relationship which actually
00:06:21.759 persists to this day but for me the most unforgettable day was about
00:06:26.960 two weeks in three weeks in where he sent me an email with the subject
00:06:32.160 highly pleased with your work and this was game changing for me
00:06:38.080 because i felt i can do this it was like a jolt in motivation
00:06:44.400 and many years later as i've been doing things related to mentorship i kind of
00:06:49.759 realized that philip here was and in several ways still is my mentor
00:06:56.080 and i'm extremely grateful for that so this is going to be the part of the talk
00:07:01.360 where we go into a definition of mentorship which of course i grabbed from the internet um so i'm going to
00:07:06.639 read it to you here mentorship is a relationship between two people where the individual with more experience
00:07:12.960 knowledge and connections is able to pass along what they have learned to a more junior individual within a certain
00:07:18.720 field which is all well and good there's a couple of things that this
00:07:24.960 definition because it's a definition doesn't go into that i really want to expand upon today
00:07:30.400 one of them is that mentorship big and small depend this the scale doesn't
00:07:35.759 really matter it's kind of happening everywhere be it for example i'm going to show you some examples
00:07:42.000 be it on a pull request here's a pull request from
00:07:47.120 three years ago that i made to the rails girl summer of code code base rails
00:07:52.319 girls summer of code was a program for helping uh underrepresented folks get into open
00:07:57.919 source software development that i helped organize for many years more on that later
00:08:02.960 and um what i what i loved about this is that i i made my pull request and as you
00:08:08.240 can see at the bottom here claphadler commented this looks solid i added some
00:08:13.520 small comments here and there i think it would be a good opportunity to clean up and remove some and i didn't i couldn't
00:08:18.879 screenshot all of it but it was some constructive feedback and this was in several ways a form of mentorship
00:08:26.479 mentorship is not just of course online but also in person what you see here is a photo from a
00:08:33.599 meetup this in particular is the vienna rb meetup which is
00:08:39.200 organized of course here in vienna i'm told one of the i or i hope one of the organizers is here one of the organizers
00:08:46.160 is here as well um i cannot see um this photo is
00:08:52.720 this is from 2014 2015. it's a long time ago and here we what we're doing at a meetup
00:08:59.279 like we are today is sharing knowledge sort of learning from one another um
00:09:05.440 talking giving feedback construct constraints together and actually i'm in this photo too you can
00:09:11.600 see me with much shorter hair right there mentorship can happen in the form of
00:09:16.640 workshops um this is a photo from a workshop in about the same time 2014 2015
00:09:24.320 of from the django girls meetup doing an introduction to flask
00:09:29.680 for those of you who are more familiar with ruby flask is kind of equivalent to sinatra
00:09:35.760 so it's a it's an a web it's a lightweight um web framework and these are these are all kinds of
00:09:42.160 workshops where folks can come in and be act as those mentors to come in and
00:09:47.360 help folks get either introduced or unstuck with several problems related to the content of a hack of a workshop
00:09:55.360 so in this context we've got mentors come in and be and help out with learning flask
00:10:01.760 they're of course equivalents for other for other programming languages there's rails girls rails bridge
00:10:08.240 rust bridge these are all workshops for uh in at least in these examples for
00:10:13.760 um encouraging underrepresented folks to get into these specific uh programming languages and frameworks
00:10:20.800 but mentorship doesn't happen only with adults mentorship happens with children um what you see here is a photo with
00:10:27.680 permission of course taken from an after-school activity that we used to run uh you can see my you can
00:10:33.200 see my my spouse there we were teaching um where we would teach kids to program
00:10:38.720 gay games this was called computer game programming we had a lot of fun doing so and it was sort of a one-hour weekly
00:10:46.000 session where we would get together and learn to code mentorship happens over long periods of
00:10:53.200 time mentorship happens over shorter periods of time this photo brings me so much joy this is a photo of the team
00:10:59.839 from 2015 of rails girls summer of code where i was one of the coaches my job
00:11:05.440 was to help the help the two under the the team of two um
00:11:11.519 uh learn to learn to get unstuck with specific programming challenges or even learn introduce them
00:11:18.000 to specific coding concepts excuse me
00:11:24.320 mentorship doesn't happen just over text or over in person
00:11:30.560 mentorship happens over video chat as well what you see here is also from rails girl summer of code with
00:11:36.560 different teams that i mentored over the years going clockwise top left
00:11:41.600 we've got teams from all over the world going clockwise from the top left we've got colombia we've got india and we've
00:11:46.959 got vienna it's been an incredible journey and some of the memories that i cherish the most
00:11:52.880 are from rails girls summer of code and of course mentorship doesn't just happen with
00:11:58.399 with software engineering specifically you know as coding as a as a practice specifically it also happens with things
00:12:04.720 related to tech like speaking what you see here is a photo from the
00:12:10.560 2020 edition of global diversity cfp day which is one of my favorite yearly events at the moment wherein folks can
00:12:17.680 come in and learn to pitch give
00:12:23.279 prepare slides for different programming talks and it's one of my favorite things to do
00:12:28.480 and i just some of my favorite people i've met here so
00:12:33.760 those are the different those those are some of the different forms that mentorship can take next to answer the question would be so
00:12:40.320 why be a mentor and instead of answering that question myself i'm going to let
00:12:45.680 the mentorship guide which i link here written by guilis cardenas
00:12:51.040 answer that much better than i can because there are three groups of people that mentorship helps
00:12:57.839 it of course helps others the person you're mentoring can help get a boost in their career their education maybe help
00:13:05.360 them with combating imposter syndrome help helping them get it unstuck in projects or how to communicate
00:13:11.600 effectively but being a mentor also helps you you learn more about yourself you expand
00:13:18.160 your worldview you make a new friend ally or supporter um you feel good you get this really
00:13:24.399 positive feeling about giving back you find knowledge gaps in your own thinking i found that really taking the
00:13:31.200 time to explain to try and verbalize something that i'm you know trying to get unstuck on can really help the other
00:13:37.200 per can really help me understand that concept a lot better and of course by be trying to mentor somebody on something
00:13:43.199 that might be less familiar to you you can learn something new as well but
00:13:48.240 as a community mentoring really helps us all to encourage each other
00:13:53.440 to collaborate and to be inclusive to be able to make to show others what it is like to be an
00:14:00.320 effective positive mentor and we all sort of give each other a leg up
00:14:06.320 so i want to take a second to make a distinction between mentoring and teaching um teaching from my experience this is
00:14:13.360 purely a opinion based from my experience in teaching i think of school
00:14:19.279 where i think teaching goes in where the knowledge kind of transfers in one direction the teacher teaches the
00:14:25.760 students the teacher would teach me french fabian not very well
00:14:33.040 anyway um my french that is the teacher was great um whereas mentoring i like to think of
00:14:40.399 being unidirectional but many bi-directional yeah going both ways
00:14:46.480 so the mentee that is the person that's getting mentored can also learn can also teach the mentor by asking questions by
00:14:54.399 having an open communication so next and i realize i've been going
00:14:59.440 for a while i want to um offer some of the pieces of advice that
00:15:04.560 i'd like to give that i like to give myself when entering a new when entering a new mentorship relationship
00:15:10.880 the first one would be to open with to when i started a mentoring relationship with somebody to really start at the
00:15:16.880 beginning and let them lead ask them what are your goals what is it
00:15:22.000 that you as a mentee hope to get out of this relationship right let them verbalize help them verbalize maybe it
00:15:29.360 helps them understand better what they need what exactly help them understand better what
00:15:35.279 what it is that they need by allowing them to verbalize that and i think the other thing that's important to bear in mind with that is
00:15:41.680 that over time this might change as they learn with you as as you learn from
00:15:47.279 one another as time goes on it's important in my opinion to have to make this a regular thing to
00:15:54.000 check in every few months depending of course on the nature of this relationship every certain amount of time and say hey is this what what does
00:16:01.600 your goal look like that has it changed has has has things changed do you have your priorities changed um yeah
00:16:09.839 let's let's talk about habits and i'm not going to talk about best practices per se
00:16:16.639 in terms of technology but in terms of how to be a community member for example a
00:16:22.480 community member and um a technologist i'll you'll see what i mean
00:16:28.480 um one good habit to to exhibit as a mentor is to ha is to
00:16:34.560 show empathy for your mentee the great thing about mentorship is that as a mentor you're in you're already
00:16:40.880 exhibiting empathy by helping the other person learn by guiding them by putting yourself in their shoes and by showing
00:16:47.839 that you can help the other person develop that habit of empathy as well
00:16:54.959 by being a mentor you can also show your mentee how to be an effective communicator by showing them your
00:17:02.320 problem solving um your problem solving by showing them your communication skills by showing them how you talk to
00:17:08.240 others you can you can ins you can inside good habits as to how to for
00:17:13.600 example communicate when something isn't going um as per the plan for example as a
00:17:19.280 freelancer when i'm behind schedule to say this is why i'm behind schedule this is how much time i think i'll need and
00:17:25.760 to be okay with that these things happen um yeah and and by and by
00:17:32.720 these these sort of these sorts of habits that one picks up i want to really emphasize they're not short-term
00:17:38.400 they are long-term because by being a mentor you're also teaching a mentee how
00:17:43.600 to be a mentor so you know by by by ins by by instilling these good
00:17:50.320 habits you then pass him on not just to the person that you're mentoring not just to your mentee but to the mentee of
00:17:57.039 that mentee the the grand mentee in a way um yeah by and and these really go a
00:18:04.960 long way towards helping the community grow
00:18:10.320 asking challenging narrowed questions i think is another really good habit to have that you can pass on to your mentee
00:18:16.960 when they ask you questions maybe you can help them narrow those questions down for example one question that i get
00:18:22.640 very often is something like hey ramon which programming language is the best language to learn if i want to work as a
00:18:28.880 web developer and of course with experience we kind of realize we realize that
00:18:34.240 there's no really clear answer to that because it depends not just on context but on time you know
00:18:41.440 so maybe a better question would be something like hey which programming language should i learn first
00:18:48.480 if i want if i want to work as a web developer better yet maybe not one which is best but what's a
00:18:54.880 good programming language to learn first if i want to work as a developer and by narrowing down this question it also
00:19:01.440 helps the mentee sort of understand that there's a lot more going on than one would realize at first glance
00:19:08.880 so on that notion of habits let's talk about um
00:19:14.080 opinions everybody loves the mit that's what people say isn't it that the myth that developers are
00:19:20.400 opinionated i want to i want to encourage i like to encourage myself when i'm mentoring
00:19:25.520 someone to instead of instead of just saying this is the best practice to show them why i
00:19:32.400 like this not impose it on them but to expose them to it and i
00:19:39.039 was um alluding i was talking about this earlier for example when philip was showing me
00:19:45.200 which why he liked vim that's why i liked vim same goes for programming languages when
00:19:51.120 philip showed me why he liked ruby i kind of went thinking like ah yeah i like ruby a lot and the same goes for
00:19:57.280 things like coding styles or or even technology some people prefer macbooks some people
00:20:02.960 prefer linux and so on and so forth some people prefer a track pad i like a vertical mouse and a clicky clacky
00:20:09.039 keyboard you know um i think 2020 has been a really good year
00:20:14.080 for for people to experiment with they like to do with their screens and stuff um
00:20:19.360 yeah for example i've got one horizontal and one vertical just trying it out
00:20:24.640 by showing people different things like for example that different projects are going different software projects are
00:20:29.760 going to have different get history styles instead of instead of saying this is
00:20:34.880 what this is it and this is this is the way it is to say these are ways that it can be done and these are ways this is
00:20:41.760 why i like this is why i like this methodology better can help a mentee
00:20:46.880 come to their own decision but also you know impart your wisdom
00:20:52.000 speak of wisdom let's talk about being supportive because oftentimes with mentor-mentee
00:20:58.080 relationships imposter syndrome is gonna play a role when it comes to software development
00:21:04.240 especially in my experience i've always struggled with imposter syndrome imposter syndrome
00:21:09.840 by the way in case you in case you're not familiar with the term this notion that some people get when they've reached somewhere in their career or
00:21:17.120 other otherwise where they kind of feel like a fraud and they're scared of being found out
00:21:22.240 may you know why have i been hired as a junior developer i'm no good i i'm having i recently having started doing
00:21:30.000 developer advocacy i kind of had a resurgence of that imposter syndrome
00:21:35.360 and to be able to empathize with your mentee and show them and show them that
00:21:41.360 maybe it doesn't go away and my in my experience impostor syndrome never really goes away it just you learn to
00:21:46.960 handle it or you learn or you either um yeah you deal with it in different
00:21:52.240 ways depending on how it comes in we you know depending on mood depending
00:21:58.000 on situation mood and all that um but i think it's important to also remember when you're
00:22:05.039 in a mentor mentee relationship that these perspectives are not the end-all-be-all these are the
00:22:10.480 perspectives from your experience as i was saying earlier with um in terms of votes i think the same thing plays a
00:22:16.799 role for perspective so explaining to making it clear to your mentee look this is the way i experienced x y or z this
00:22:24.320 is what these are the techniques that worked for me these are the communication techniques that helped me get out of this or uh come out better
00:22:31.760 this this is this is the algorithm that i coded in order to come out to incor in
00:22:37.200 order to solve this problem this is the solution that i went with
00:22:42.799 it's important to bear in mind that this comes from your experience and to really drive that home to your mentee as well
00:22:48.240 and on that note of salute same goes for feedback giving constructive feedback as a mentor is
00:22:55.919 critical because i'm sure we've all had situations in our career where we've either made a pull request or submitted
00:23:01.760 something uh submitted a a piece of work where instead of being given the
00:23:06.880 constructive feedback that we needed in order to improve that piece of work we were instead told this is we were
00:23:12.559 instead given distract this is terrible this is rubbish um close pr closed this is a waste of my
00:23:19.520 time and as a mentor taking the time to explain to someone how something can be can be
00:23:25.760 done better really helps um really helps encourage them really gives them that jolt and motivation as i alluded to
00:23:31.840 earlier to keep going to work past these feedback and
00:23:37.039 you know it's not like that constructive feedback can't be um
00:23:42.720 can't be difficult to work through sometimes getting that feedback can be very scary i'm like i'm oftentimes to
00:23:49.120 this day still scared of receiving um feedback just be kind of imposter syndrome i suppose
00:23:55.760 um one technique that i've picked up for giving constructive feedback is this concept of asking guided questions that
00:24:01.679 is questions that kind of lead into a discussion where you encourage your mentee to think critically and think
00:24:08.320 okay what what instead of giving them the answer you let them come to the answer themselves
00:24:15.200 so i'm going to show my two slides with code on them one of my two slides with code on them
00:24:21.919 so here we have an erb view in rails now what it does it's a it's a header
00:24:28.880 that shows a transl a localization for week as well as the week number
00:24:35.039 for this for the current week for the for a given date range so this is part of a pull request i was
00:24:42.720 given by my mentee and asked to please uh review it and um at first glance a couple things
00:24:50.159 that that come out to me as a as a as a as a person who has some experience developing rails for a while i noticed
00:24:56.240 for example there's strength concatenation going on which you which kind of is a in my experience a bit of a
00:25:02.080 code smell um but instead of strange going straight at that i instead
00:25:08.559 sat down with with my mentee and just asked these guided questions for example in this in
00:25:14.320 in this example with weak numbers i would say what happens if we had a spoken language look locale for which
00:25:21.679 the week number is in the middle of a sentence instead of at the end as you see here
00:25:32.240 so what we did with my mentee was we sat down we went through the rails guides we looked at at how the
00:25:38.279 internationalization the i18n gem which is the ruby
00:25:43.919 framework or library for how for how that goes how that works and we following we came up with a
00:25:50.320 solution together where we said okay we can have this locale and give it
00:25:55.679 that we can then use inside the locale at our own discretion so there's no more string concatenation
00:26:02.000 we just use that that this um i think it's called the local local variable in the context of
00:26:08.320 that lookout which was phenomenal and i did no coding myself i didn't do any
00:26:14.720 i didn't take over the keyboard i let my mentee drive by asking these guided questions
00:26:20.799 the last part that in my opinion is important about being supportive is this notion of maximizing help but at the
00:26:26.880 same time minimizing harm um will larson who wrote this incredible
00:26:32.480 blog post that i'll link at the end at the end here wrote this blog book called mentoring
00:26:37.919 from privilege and for me as a white cis man it's super
00:26:42.960 important to when i'm mentoring someone to stand that privilege to not give advice about things that i don't know
00:26:48.799 about right for example i for uh i myself don't have a very helpful perspective on
00:26:55.279 breaking into the technology interest industry from another one having studied comp uh software engineering at the
00:27:02.159 at the uni technical university um and in these cases to offer alternate values for
00:27:08.880 mentorship or learning possibilities when possible of course to ground my stories in the context of
00:27:14.960 my privilege as opposed to generalizing them and just saying something oh that's that's just what that's just the way
00:27:20.240 things are and as a mentor to explicitly as as um as i
00:27:26.080 learned from kim creighton recently to to gather my people to call out behaviors or experiences that i
00:27:32.720 understand to have hinged heavily upon in my privilege and would be risky if performed with less
00:27:39.600 with less with less of that with less privilege to really i said minimize that harm
00:27:47.440 let's move on to the to another tip which is to be attentive of
00:27:53.520 course when it comes to mentorship the mentor will do a lot of the talking but so will the mentee as i've been
00:27:59.679 getting at and i think it's incredibly important i like to think of myself when i'm mentoring to kind of think of myself
00:28:05.919 as a on-demand rubber duck if you're not familiar with it rubber ducky programming is
00:28:12.080 is this concept where you take a rubber dick i don't have a rubber ducky i've got this i've got this little penguin dog
00:28:17.760 that i will often talk to um where i explained my to whom to whom i explain my programming
00:28:24.880 challenges and hope by that by verbalizing them i can understand them better
00:28:30.799 um and i think it's super important even though for example if i'm in a situation where my with my
00:28:37.279 mentee where they're showing me a solution which i think is completely
00:28:42.320 incorrect or or wrong um even if i 100 disagree with them i think it's super
00:28:49.039 critical to let them voice out this full explanation patiently understanding
00:28:54.480 where they're coming from it's again this thing of empathy and going at it so that you can say
00:28:59.919 great and then asking those guided questions once again to get to a solution that
00:29:05.200 is maybe they could maybe by hearing them out you might realize that as a mentor
00:29:10.960 they have a better they have a better idea of how to implement or solve a solution and solve a problem than i
00:29:16.399 would going in so on that note of of of listening and
00:29:21.679 picking up on on issues um i think it's super important to go into mentorship with a mentality of
00:29:28.559 we're going to learn together as i was saying before with my on my slide with
00:29:33.840 minimizing harm i think it's important to avoid giving advice on topics that i'm not familiar with so i've even
00:29:41.279 though it's a little bit scary uh like with like when doing q and a at a conference and then you know you're like
00:29:46.480 oh my gosh what if they asked me a question that i don't know the answer to one of my favorite things to do in a
00:29:52.000 mentorship relationship is when somebody asked me a question that i don't know the answer to
00:29:57.120 to just straight away go ha you know what i don't know let's find out
00:30:03.279 and actually one of my i have a very one of my favorite stories that i've ever had in my career i got from teaching
00:30:09.120 kids to code so i'm going to show you um an example of that so what you see here is a very well
00:30:16.640 drawn i'm sorry i'm not a very i'm not very good at drawing a window of a game that i've been programming with the kids
00:30:22.159 and what we've been doing is learning to draw graphics on screen right so i tell the kids okay here you go uh here's your
00:30:29.279 character on screen and the the position of your character is determined by two coordinates the coordinate which goes
00:30:36.480 along the horizontal axis axis and the y coordinate that goes along the vertical
00:30:42.320 axis now these the the bigger these the bigger or
00:30:47.360 smaller these values are it'll look like your character is moving on the game now
00:30:52.399 when both are zero then in this context the position of our character will be at the top left of the
00:30:59.360 window and i'll never forget one of my kids one of the kids that i was teaching he was like oh hold on hold on sorry i
00:31:04.640 hit the microphone hold on hold on um that doesn't seem right and the kid goes like when we learned
00:31:10.720 this in um we learned graphs and that when y is zero it should be at the
00:31:17.519 bottom why is this framework why are you computer people doing it this way and i
00:31:23.120 had never stopped to think about why and i remember being stumped and i remember being tempted to just be like
00:31:30.080 come on it's just the way it is right i mean we've all been there um but i took a step back and i said you
00:31:37.039 know what ha you know what i don't know let's find out and so we did some searching and we we actually learned
00:31:44.000 together what the solution was i'm going to share with you because it's quite interesting um what you see here is um
00:31:50.000 an illustration of an old computer monitor or crt which stands for cathode
00:31:55.120 ray tube monitors and we learned me and this and the children was that the way
00:32:00.799 these old monitors would render an image on screen was by illuminating these
00:32:06.960 cathode ray tubes very very quickly from top one row at a time top to bottom and from
00:32:13.279 left to right so it just goes it's and this is why it was more convenient
00:32:19.440 for for for the programming frameworks to start from there which which we found fascinating and i actually have
00:32:26.480 i have uh an example of it running for you from um i from a youtube video that i that i've
00:32:32.960 got linked here it is incredible so i've got a gift coming up so
00:32:38.000 what you see here is the game super mario brothers played i believe at 10 000 no
00:32:45.679 10 000 times slower right than than you would normally see
00:32:50.799 and you can kind of see there it's going line by line from left to right it is
00:32:56.320 it's hauntingly beautiful um and again taking these opportunities
00:33:02.240 to go on a searching journey with your mentee is incredibly helpful because you also get to show them the skill of
00:33:08.880 looking stuff up for example here's a screenshot from duckduckgo how to exit vim
00:33:14.240 i've googled that a couple times i've searched that a couple of times um by showing them how you go on this
00:33:20.080 process you you kind of you also demystify a little bit this knowledge gap
00:33:26.480 one of my favorite questions that i was ever asked at a rails girls workshop again something i'd never wondered
00:33:32.240 before they go like they one of one of the uh one of the people attending the the workshop flagged me over like hey
00:33:37.600 ramon i got a question why is it called a div why is the html element called a div
00:33:44.080 and again i guess because i had been in it for a while in the in the game of
00:33:49.519 software development for a while i hadn't stopped to wonder why and i didn't know turns out it's divider
00:33:55.919 by the way we learned that together and again
00:34:01.519 using guided questions to help these mentees get to their answers is
00:34:06.559 something that's super valuable and it gives you an opportunity
00:34:12.720 when you don't know something or when you're stuck on something to show them how you
00:34:17.919 with your experience solve that problem one of my favorite experiences i think
00:34:24.480 was two years ago was walk watching um watching west boss's react introduction
00:34:32.480 guide because um in it he left in his mistakes and i
00:34:38.639 loved this because i would find myself following along and being like hold on
00:34:43.919 that looks like a typo is this gonna break and he just kept going and it would and it would
00:34:49.520 indeed break and instead of editing that out as is probably tempting i'd be tempted to edit
00:34:56.639 out my mistakes instead of editing it out he went oh no it's broken let's go and fix it and he
00:35:01.920 showed us how he fixed those problems and he talked out loud as he did it this is something that i really like about
00:35:07.359 streaming as well we no longer have that that that um
00:35:13.359 that ability to to edit out our mistakes and by showing how we solve those problems i think we also have an
00:35:19.920 opportunity to demystify what is mystical um
00:35:25.280 which is just fancy me being silly and fancy just being like to to to really
00:35:31.040 take away some of some of the to not let things just be magic
00:35:37.520 and so and every now and then when a topic comes up that i that i think hey this could be really interesting to go
00:35:43.440 into it's it's a good idea every now and then to check in and say hey how about we go into a deep dive of this concept
00:35:50.400 for example i have in several rails girls workshops just take in an opportunity with my mentee and just say
00:35:55.680 like hey let's learn how an http request works how how does that client-server
00:36:01.280 relationship look like i apologize this drawing is it's i'm i'm working on it i'm i've been
00:36:08.240 working on my drawing skills um but yeah by taking that opportunity to show them and draw a diagram with
00:36:14.720 them and show them hey this is this is how things work you also have that opportunity to also show them resources
00:36:20.160 and games i love games games that can help demystify these more complex subjects for example something i
00:36:27.359 love is this game here called regex crossword uh which is a lot of fun and
00:36:32.720 and helps you learn and get more comfortable with regular expressions and there's a lot of these i'm going to
00:36:38.079 show you a couple um css diner i love css diner so much
00:36:43.839 this is a game that helps folks learn and unders and better understand how to work with complex css selectors so you
00:36:50.720 know you select plates select the fancy plate select the apple that's on both plates and so on it's super fun and
00:36:57.200 there's a bunch of these there's flexbox froggy to help you learn um flexbox which is a css layouting
00:37:04.720 tool um there's not just games of course there's books i keep recommending
00:37:09.760 practical object-oriented design by sandy metz it is one of the best books that i've read on rails um
00:37:17.200 and i don't know where my copy is actually i probably lent it to somebody
00:37:22.400 um and by going on that i think another thing that i want to touch upon with with mentorship is that it's this is all
00:37:29.359 relative the what what the fact that a mentor has more experience in an area
00:37:34.400 than a mentee does not mean that that mentor has to be an expert and i'll explain what i mean in just a second i'm going to tell a story about my sister
00:37:40.640 pilar who attended a rails girls workshop and a few months after that
00:37:46.480 workshop she got called up hey do you want me maybe it was a few weeks
00:37:52.000 sorry she got called up and was asked hey do you wanna do you wanna be a ment a coach a mentor at one of these
00:37:57.920 workshops and pilar said but i just did this workshop a few months ago
00:38:03.200 and and the men and the organizer told us something that i really carry with me to
00:38:08.480 this day and that is that you have the best experience for being able to mentor
00:38:13.760 because you have that fresh perspective of trying to learn and understand what is rails
00:38:19.280 as as a concept nowadays what it is like to learn web development at this point
00:38:24.720 in time and i think having that experience closer to that of newcomer can be extremely valuable and conversely
00:38:32.240 can be applied at a higher seniority level just because i've been
00:38:37.520 developing software for 10 years doesn't mean that i cannot have a
00:38:42.880 mentor-mentee relationship where i'm the mentee and i learn from someone who's more experienced in something than i am
00:38:48.560 it doesn't necessarily have to be someone with more years of experience but just more time and experience at us
00:38:54.160 in a specific area say from in my case graphics programming is something that i
00:38:59.280 could stand to learn a lot more about so i realize i'm going for a while
00:39:05.200 there i'm almost done um i really want to touch upon as fun as it is meant as
00:39:10.480 mentorship is it is extremely important to bear in mind that as humans we have energy limits and we need to be
00:39:16.880 conscious of those because i have found in over time that if i'm doing too much
00:39:23.599 if i take on too many mentees at a time i will not be as effective the quality
00:39:29.040 of my mentorship will suffer so it's important for me as a person and for you as a mentor to take care of yourself and
00:39:35.920 to know and to be aware and respect those those limits that can that are malleable over time
00:39:42.880 so where can i so working so you might be wondering where can i go to mentor folks
00:39:48.720 and here's when i where last couple tips i want to give um find a local organization or event um
00:39:55.359 there's a ton of them here in vienna for example there's the veenkota ko vin koda dojo there's i said lots of there i
00:40:02.880 there's uh lots of rails girls workshop there's railsbridge rust i mentioned a couple of these there's there's also a bunch of others go check
00:40:09.839 them out they're online there's also some locally um one thing that i have been really
00:40:15.839 enjoying um doing over the internet is hosting open advice one on ones that this was
00:40:22.240 something recommended to me to my by my friend jess who um at least when i started
00:40:28.400 i'm gonna say hi hi jess she's here um yeah uh she gave she actually open sourced a
00:40:35.760 bunch of tips and advice for starting your open advice one-on-ones where you can just talk to folks and
00:40:41.520 in and just hear them out a lot of the time folks just want to be listened to
00:40:46.880 um other ways you can do this is by tagging your open source issues if you have a open source project tag some
00:40:53.359 issues if you have the time and of course uh the resources to do so and say hey i would love to pair with you on
00:40:58.720 this i'm available for pairing with you on this issue um lastly it's also totally cool to not
00:41:05.839 lastly sorry um to see if you're check out your if your workplace has an internal mentorship
00:41:11.520 programming a program and if not propose one um one thing that i've been doing for a
00:41:16.800 long time that i also really enjoy is uh this is the term that i got from from my friend joe nash um it's called start is
00:41:24.400 called a community of practice um which is something that i learned about from the book uh building successful online
00:41:31.200 communities so this is this is just a get-together kind of a meet-up kind of like we're doing now where folks just get together
00:41:38.000 and just learn stuff together on their computers bring their own open source project bring their homework bring their
00:41:43.920 bring whatever they're working on and just hang out and code together um we've been doing these online as well it's
00:41:49.760 been a lot of fun that's another talk of mine that i um happy to give sometime
00:41:55.200 um so we started our own it's called study jams it's it's a bit of a misnomer now because
00:42:01.359 it's not a coding community in vienna because right now it's online um and it's incredibly fun
00:42:07.280 um another thing you can do is learn in public oh there's this book i'm gonna
00:42:12.480 recommend it now um it's called working in public the making and maintenance of open source software by nadia agbal it
00:42:19.520 is fantastic and learning in public is something that's because that's becoming quite popular nowadays where you just
00:42:24.960 either stream yourself or write up your thoughts as you go learning stuff i'm told that jess might be streaming soon
00:42:31.760 about herself doing the free code camp um
00:42:37.280 lessons so that's definitely something worth doing and checking out so to conclude
00:42:43.760 as much as i like that definition of mentorship from the beginning i've come to think of mentorship not
00:42:50.240 just as the sharing of knowledge but sharing the joy of sharing knowledge
00:42:57.119 and i highly encourage you if you can if you want to to give it a try as as i hope to have uh illuminated it's
00:43:05.920 regardless of of skill level regardless of levels of experience because all these perspectives matter
00:43:12.560 and so does yours so folks here's the resources i promised check them out i highly recommend the
00:43:19.599 mentorship guide it's open source um there's just jess's open advice one
00:43:24.800 on ones the games the books um and other stuff i just want to say thank you so
00:43:31.119 much for joining me today and uh yeah if you want to get in touch you can write to me i'm at hola soy milk on twitter and um yeah
00:43:40.000 have a great rest of your day everybody thank you so much for a great talk ramon
00:43:46.880 um that was really wonderful so do we have any questions
00:43:54.960 thanks for coming chat which is great uh
00:44:02.560 sorry thank you very much i just realized my headphones were off thank you for having me
00:44:08.640 okay great uh so again maybe i'll start off
00:44:15.040 um i guess you mentioned also taking care of yourself not having too many mentees
00:44:20.839 uh how do you balance what do you choose as kind of too many um do you kind of set a certain
00:44:28.079 amount of time say per month for mentoring activities or per year or
00:44:34.000 something like this yeah different different folks will try different things i know that some folks
00:44:47.760 where they that they do that so i for example try to do that i'll i'll i'll sort of book i'll sort of tell i'll give
00:44:53.359 them um i'll use something called calendly which helps folks um coordinate ointments so you could you
00:44:59.839 could they can sort of pick a slot from your time from your that's synced with your calendar and then you can sort of come to a different time there and just
00:45:06.000 pick a day where you just do a bunch of those um yeah that that's that's what works for me
00:45:15.200 right thank you so have a question in the chat from jess uh can you talk to common concerns or
00:45:22.000 fears that hold people back from trying mentorship ah thank you for the question yeah um
00:45:29.119 totally i think i think from my experience uh so for example in in the story that from my from my sister pilar
00:45:36.079 wanting to go into it i think that i think this this notion of imposter syndrome was really holding her back um
00:45:42.000 which is something that held me back for a long time too um where it was just like why would anybody want to know from from me what
00:45:48.960 do i have to offer i think i think i think it's quite common for us not to
00:45:55.599 really realize how much we've learned how much we how much we can we can offer as
00:46:01.119 um as as mentors um as mentors uh sorry i kind of lost my
00:46:08.800 track i kind of i should i'm reading the chat at the same time my mistake
00:46:14.640 um uh yeah you know i think i think i think a lot
00:46:19.839 of folks will will find themselves thinking like am i good enough or um
00:46:24.960 either that or trying to bite off more than they can chew in terms of in terms of taking on too many mentees
00:46:31.839 at once or i said before trying to talk about topics with a with a certain level of
00:46:38.560 with a certain thinking that thinking that i'm with talking about topics that they might not know all that well
00:46:44.400 um being scared of leaving the bad impressions this is something that that that holds me back a lot as well is
00:46:50.800 having that fear of giving someone advice that might not be all that positive
00:46:57.200 instilling negative habits discouraging somebody i am very afraid of discouraging a mentee and these are
00:47:04.079 things that i think one just has to be aware of when working on a mentor-mentee
00:47:10.079 relationship i hope that answers your question thank
00:47:15.200 you feel free also for not so many so um
00:47:23.040 i guess there's one last question uh from joshua
00:47:28.720 uh how do you find out whether you're actually empathetic we work with things how are we supposed to work with people
00:47:34.960 could i be an npc imposter that is a terrific question um
00:47:42.720 yeah that i
00:47:47.760 don't know i i don't i don't know if i have uh an adequate answer for that from my
00:47:54.079 experience i have in the past found myself thinking that i'm
00:47:59.599 certainly let's say not empath empathic or not
00:48:04.640 empathetic story i don't know what empathetic um where i've thought from myself thinking i i haven't
00:48:10.079 but in certain situations been called out and thought no in fact in this situation you're not exhibiting empathy
00:48:17.040 and in those moments i think i think what truly what truly sets the bar
00:48:23.200 is to take that moment take that failure recognize it in my experience to take that in that
00:48:28.880 failure and learn from it and say wow you know what you're right i was not have exhibiting empathy at this time i
00:48:36.160 will do better in the future and turn that into actionable items that you can then say hey um
00:48:42.559 this is how to be to exhibit that empathy moving forward um
00:48:48.880 hope that answers your question
Explore all talks recorded at EMEA on Rails 2021
+4