Part 4 of the Series: Increase Your Stock by Investing in Your Future Some people naturally form mentor-mentee relationships. For the rest of us, we must learn how to cultivate that relationship. Even if you are the mentor, you need to put in the effort. The mentor-mentee relationship is hard and throwing technology in is […]
Some people naturally form mentor-mentee relationships. For the rest of us, we must learn how to cultivate that relationship. Even if you are the mentor, you need to put in the effort.
The mentor-mentee relationship is hard and throwing technology in is like adding fuel to a wildfire.
Have you ever wondered why the mentor-mentee relationship is so difficult to establish? Because everyone is different, and each individual connects to others in a different way; to quote Theodore Roosevelt, “People don’t care how much you know until they know how much you care.” Finding a mentor who is highly technical and has good soft skills is rare. If you fall into that category, you must develop your interpersonal skills to be successful.
When I first start working with a new mentee, my goal is to understand who they are and how our personalities mesh. Also, I evaluate the current status of their technical skills. I must use my words and actions to prove to them I can work with them, regardless of their skill level. I’m not here to judge, but to help them grow professionally. Once I understand where they are, I can start charting a path to where they need to be.
I start with a new mentee by providing an environment in which they can fail, and learn from that failure.
Yes, you read that right: they need to fail, and understand that failure happens. If you can create a safe environment that allows your mentee to fail quickly (like having short feedback loops), they can learn from their failures.
Who knew mentoring the next generation of tech talent would require so many non-technical skills?
Let’s talk about technology. I often find people asking me, “What is the best programming language to learn?”, or, “How many programming languages should I learn?”. My response to them is, “You are asking the wrong questions”. It is not about learning a specific language or having a specific skill related to a specific language; rather, it is the skill of learning new languages.
While working with mentees, I encourage them to learn industry best practices – the skills that span across multiple programming languages or technologies. This works for all industries, but in the software development industry it starts with learning best practices, such as design patterns, following S.O.L.I.D. principles or test-driven development (TDD), the list goes on. I utilize many, if not all, processes from the Agile Scrum methodologies (you can learn more about Agile methodologies here). The idea is to spend time teaching skills that span the whole industry. When it comes time to learn a new language, your mentee can learn it more quickly because they already understand the associated best practices.
Let’s explore some of the benefits to this approach. You and a colleague are attempting to architect a new feature. You explain that using the “strategy pattern” in combination with the “visitor pattern” is the way to go. They agree, but want to explore the advantages of using the “unit of work pattern” and you spend 20 minutes discussing the pros and cons before deciding. Since both of you understand design patterns, you conclude this session in about 20-30 minutes. If one of you were unfamiliar with design patterns, this meeting would take hours to explain each other’s design, and implementation details will still be vague.
In doing this, you build a stronger trust between you and your mentee, plus this helps move them forward to becoming a mentor themselves because the cycle must continue. This approach can also help your mentee learn new languages very quickly. While attempting to learn new technologies or frameworks you can guide your mentee through a new language they have never worked with before rapidly because they are already familiar with best practices utilized on the project. For example, you notice the existing code has implemented the “repository pattern” for connecting to the database. You then reveal to the mentee they already know the repository pattern and all of a sudden, they are excited to explore how this new language utilizes the repository pattern. This has dramatically sped up their understanding of both the language and code base you are using because they understand the repository pattern.
I heavily utilize the above technique when working with mentees to help build the next generation of tech talent. When you do this, not only are you teaching them new technologies that every software developer should know, but you are teaching them how to learn new technologies more quickly.
There is the added side benefit of connecting with your mentee as well. Without forcing interpersonal skills, you are working to build a stronger relationship through exploring an industry best practice together. This effect can also be achieved with a book club or code kata’s (where you practice coding, and then talking about what you learned, liked or disliked. Encourage your mentee to imagine how they think a given design pattern might best be used, or how they can implement multiple design patterns in a specific language to help learn that tech stack. Once you understand these best practices, implementing them in new languages becomes fairly easy.
Where might software development/architecture be if we all had great mentors? What if we all become great mentors? Now that you understand what makes a great mentor, go mentor others on your team! You don’t have to know it all, you just have to start somewhere. The challenge has been issued, where will it take you?
This blog post is part of our “Increase Your Stock by Investing in Your Future” series. Here, mentors at the Exelaration Center (XC) at Virginia Tech share their experiences developing an award winning internship program, lessons learned, and tips you can apply when building your own program!
Technology is always changing, and will always be booming. That’s because it represents whatever’s new....
An internship can transform an entry-level professional or student into a job-ready professional. Graduating with...