I've spent the better part of my professional career in some form of teaching, mentoring, or advisory role. As a freshman in college, I was a TA and student tutor of the Computer Science course for a program designed to prepare underserved HS students for college. After landing my first programming job and moving to San Francisco, I became a volunteer instructor for CodeNow. Currently, I am a mentor and advisor to aspiring & current software engineers, as well as startup founders.
I gravitate towards these positions, because I love taking learnings from my experiences and sharing them with folks in similar positions as I have been, in an effort to make things easier for them. During many parts of my life, I could have benefited from the advice of someone in a position I was working towards, and I think their advice would have saved me a lot of wasted time and energy. Ultimately, I did fine, but I can't help but feel like I should pay it forward and help other folks reach their goals faster.
My approach isn't perfect by any means, and there are situations where I feel like I may have let down a mentee or given them more value in the time I had with them. Mentorships, much like any relationship is an iterative process where both parties should constantly listen to one another, ask questions, and evaluate each other's perspectives and approaches. I have reflected on many of those situations and as I strive to become a better advisor and mentor, I have noticed patterns over time that can help mentees derive more value from their mentors.
Trust that your mentor has your best interest at heart, and is genuinely looking to use their perspective and experience to help you get ahead by saving you time and helping you focus your energy and efforts on the most impactful things for your situation. This is especially true of mentors that ask for nothing material in return for their time. The more honest and open you are with them, the more effective they can be with the advice they give.
The more I know about where you've been, where you are, and where you're headed, the more targeted advice I am able to give. It's also easy to think that someone may only have advice to share in one specific area, but they are more relatable than you think, and have likely encountered a wide range of situations in order to get to where they are. By being more open with them, there is an increased likelihood that they can share experiences and advice outside of the initial scope that can also be just as impactful.
This should go without saying, but if someone sets aside time to help you, you should try your best to honor that. It's okay if you want to reschedule or if things come up, but you should reach out to them as soon as you are aware of it. This will show them that you are serious, and will also allow them to reclaim that time for themselves (which I would especially appreciate). If your mentor is completely inflexible about this sort of thing, you may want to consider finding someone else to work with, but most of the time, this should not be an issue as long as you are communicative, respectful, and careful not to do it too often.
Have a plan for how you intend to work with this mentor, the value you are hoping to derive from your interactions with them, how much of their time you need, and how often you need it. As everyone's time is valuable (including your own!), having a plan and making the most of the time you have with them will be very important. This will also help them plan around these expectations, and make sure they can avail themselves to you when needed.
Also, when working towards a long-term goal, the earlier you are in that process, the more likely you are to pivot onto something else. As you learn more about the field you are pursuing, you will ultimately learn more about yourself and whether or not you feel like it's for you. It's important to know if you are feeling discouraged vs actually feeling like your time can be better spent doing something else.
Whatever you are feeling, you should communicate that to your mentor. They want to make sure they are providing you the most impact and the most value with the time you spend together as possible, and if you are having doubts about your path, you should express that as soon as you are feeling it. Feeling discouraged when taking on something new is normal, especially when it's difficult and we have no idea where things will lead. Ask your mentor how to evaluate if you are on the right track, and if you aren't, how you can find your way back.
The best conversations I've had with mentees were ones where they send me questions and concerns ahead of time. This gives me a chance to think things through and come prepared to drop some knowledge right away—no time wasted. It's fine if you don't want to do that, but you should at least have a few questions prepared to help guide the conversation to make sure you get all of the information you need in the time you have.
The more specific the question is, the easier it will be to answer. I have felt myself ramble at times in response to a vague question, and I often have to stop and ask if they're finding value in what I'm saying.
Be attentive! If you ask for someone's time to pick their brain about their experiences and expertise, it would be rude not to pay them the attention they deserve. It's entirely possible for a mentor to bring up strategies, people and resources (websites, books, etc.) that have worked for them, and if you aren't capturing it in some way, you're missing out on a lot of potential value. You also don't want to diminish the relationship or waste time by asking them to repeat themselves unnecessarily, so be prepared. If you find it difficult to maintain a conversation while jotting down notes, just express that to your mentor, and they should be more than willing to give you the time and space you need to make sure you are capturing the things you need from them.
However, not everything that works for someone else will work for you, so while it's important to listen to what they say, it's equally important to weigh the merits of it as it pertains to your life and just take what you need. A good mentor should not take offense if you don't follow their advice to the letter, as long as you properly and fairly evaluated it—remember, they went out of their way to help you.
Once you've had a chance to distill the information you've gotten from your mentor, try to close the loop with them by offering feedback on their advice and approach. I have recently gotten into the practice of asking folks for direct feedback about the things I have done or said that they found particularly valuable or invaluable, as well as things they think I could have done or said to improve my impact.
The relationship you have with your mentor should be bi-directional, so the more interactive and engaging you can be, the more value you are likely to get, and the more rewarding it feels for them. Providing open and honest feedback will not only help them calibrate their efforts for you, but also for themselves! Nobody wants to be a bad mentor or give bad advice, so you're really doing everyone a favor by sharing the things that work, don't work, or could be introduced.
We all have implicit biases (to understand yours better, try this quiz), and they play a role in everything we do—especially if we are unaware of them. The more unique and diverse perspectives you can find on the same subject matter, the more of an informed perspective you will have of it. Someone's advice to you will be rooted in their experiences, beliefs, triumphs and pitfalls, but that will differ from person to person, so try to adjust for bias by seeking different perspectives.
Because I am self-taught and spent a long time doing client work on a freelance basis, I never really knew how I stacked up against my classically trained programming peers. In my first professional role as a programmer, I was always incredibly nervous of putting my work out there in front of my colleagues, afraid that they would ridicule my work or see me as incompetent. Luckily, I wound up on a series of great teams with brilliant engineers that I was able to learn from. Most of the technical mentorship I received over the years was on the job, through code review.
Recently, an software engineering mentee had a project he built and was looking for ideas on how to improve it. I asked him to make me a contributor on the project so I could provide more meaningful feedback on his work. I created a new branch, refactored the app, created a pull request, and annotated it with links to blog posts, library documentation, and explanations behind my implementation decisions. It wasn't a major time investment for me, and it was a great way for him to gain insight into the types of things more senior engineers tend to look for, and consider when architecting a web app.
That said, if you're learning how to code or simply looking to get better, one of the highest-leverage things you can do is find a mentor in your discipline to review code you've written. This includes coding challenges for job interviews, projects you've built for a bootcamp, an app you might be building in your free time, or even help with something you're implementing at work. Try to get as many eyes on your code as possible, and get in the habit of receiving feedback on it. Be sure to find someone with a deep understanding of the languages you're learning or the vertical/industry you want to enter to ensure they can provide the most valuable and targeted advice.
My name is Rich Smith. I'm an investor, and Senior Software Engineer @ Netflix. I'm passionate about building for the web, and helping people reach their potential through a better understanding of themselves and the people around them. I'm always happy to connect with new folks and see what kind of value we can add to each other's lives, so don't hesitate to reach out. You can find me on Twitter and LinkedIn.